系统辨识MATLAB仿真

合集下载

系统辨识最小二乘Matlab仿真

系统辨识最小二乘Matlab仿真

系统辨识和最小二乘参数估计Matlab仿真一、系统辨识在控制系统的分析中,首先要建立系统的数学模型,控制系统的数学模型是定量描述系统或过程内部物理量(或变量)之间关系的数学表达式。

一般来说,建立控制系统数学模型有两种基本方法:(1)机理建模(白箱模型):即根据系统内在运行机制、物料和能量守恒等物理学、化学规律建立系统的数学模型,一般步骤如下:Step1:根据系统工作原理及其在控制系统中的作用,确定输入和输出;Step2:根据物料和能量守恒等关系列写基本方程式;Step3:消去中间量;Step4:获得系统模型;(2)实验法建模(黑箱模型):即对于机理尚不清楚或机理过于复杂的系统,可以人为的对其施加某种测试信号,并记录其输出响应,或者记录正常运行时的输入输出数据,然后利用这些输入输出数据确定系统模型结构和参数。

多年来,系统辨识已经发展为一门独立学科分支,通过系统辨识建立一个对象的数学模型,通常包括两方面的工作:一是模型结构的确定(模型的类型、阶次),二是模型参数估计。

根据时间是否连续,参数模型又可以分为连续时间系统模型和离散时间系统参数模型,这两类模型均可采用输入输出模型和状态空间模型描述,离散系统采用差分方程描述,以单输入单输出(SISO)离散系统参数模型为例。

1.确定性模型SISO系统确定性模型可表示为:u(k)和y(k)分别为输入和输出,d为纯延时。

2.随机性模型如果受到随机扰动,则式子可写为:为系统随机扰动,其结构如图:系统辨识的一般步骤如图:从图中可以看出,利用辨识的方法建立系统数学模型,从实验设计到模型获得,需要这些步骤。

二、最小二乘参数估计1.批处理最小二乘考虑以下CAR模型:为白噪声,结构参数na、nb和d已知,参数估计的任务就是根据可测量的输入输出,确定如下参数:仿真实例:式中,为方差为1的白噪声,选用幅值为1的逆M序列作为输入,LS算法进行参数估计,仿真结果如图:仿真程序(Matlab):%批处理最小二乘参数估计(LS)clear all;a=[1 -1.5 0.7]'; b=[1 0.5]'; d=3; %对象参数na=length(a)-1; nb=length(b)-1; %na、nb为A、B阶次L=500; %数据长度uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)yk=zeros(na,1); %输出初值x1=1; x2=1; x3=1; x4=0; S=1; %移位寄存器初值、方波初值xi=randn(L,1); %白噪声序列theta=[a(2:na+1);b]; %对象参数真值for k=1:Lphi(k,:)=[-yk;uk(d:d+nb)]'; %此处phi(k,:)为行向量,便于组成phi矩阵y(k)=phi(k,:)*theta+xi(k); %采集输出数据IM=xor(S,x4); %产生逆M序列if IM==0u(k)=-1;elseu(k)=1;endS=not(S); M=xor(x3,x4); %产生M序列%更新数据x4=x3; x3=x2; x2=x1; x1=M;for i=d+nb:-1:2uk(i)=uk(i-1);enduk(1)=u(k);for i=na:-1:2yk(i)=yk(i-1);endyk(1)=y(k);endthetae=inv(phi'*phi)*phi'*y' %计算参数估计值thetae2.递推最小二乘在批处理最小二乘法时,由于每次处理的数据量较大,而且常常要求对象参数能够在线实时估计,解决的方法就是将其化成递推算法,其基本思想为:算法介绍:仿真实例:式中,为方差为0.1的白噪声,取初值,选择方差为1的白噪声作为输入信号u(k),采用RLS算法进行参数估计,仿真结果如图:仿真程序(Matlab):%递推最小二乘参数估计(RLS)clear all; close all;a=[1 -1.5 0.7]'; b=[1 0.5]'; d=3; %对象参数na=length(a)-1; nb=length(b)-1; %na、nb为A、B阶次L=400; %仿真长度uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)yk=zeros(na,1); %输出初值u=randn(L,1); %输入采用白噪声序列xi=sqrt(0.1)*randn(L,1); %白噪声序列theta=[a(2:na+1);b]; %对象参数真值thetae_1=zeros(na+nb+1,1); %thetae初值P=10^6*eye(na+nb+1);for k=1:Lphi=[-yk;uk(d:d+nb)]; %此处phi为列向量y(k)=phi'*theta+xi(k); %采集输出数据%递推最小二乘法K=P*phi/(1+phi'*P*phi);thetae(:,k)=thetae_1+K*(y(k)-phi'*thetae_1);P=(eye(na+nb+1)-K*phi')*P;%更新数据thetae_1=thetae(:,k);for i=d+nb:-1:2uk(i)=uk(i-1);enduk(1)=u(k);for i=na:-1:2yk(i)=yk(i-1);endyk(1)=y(k);endplot([1:L],thetae); %line([1,L],[theta,theta]); xlabel('k'); ylabel('参数估计a、b');legend('a_1','a_2','b_0','b_1'); axis([0 L -2 2]);。

系统辨识与自适应控制MATLAB仿真第5章模型参考自适应控制

系统辨识与自适应控制MATLAB仿真第5章模型参考自适应控制

[ky]
k
(t)
(t)
(5-13)
10
由式(5-13)和上式有
(t) k(t) (t)
(5-14)
式中,k(t) k(t) k。 于是可以看到,当 k(t) k 时, (t) 0
现给出规范化的性能指标函数:
J
(k)
1 2
2 (t)
m2
式中,m 1 2(t) 为规范化信号。
按优化理论,k变化使 J (k) 极小的方向应按负梯度确定:
梯度设计法来叙述。
例5.1.3 设有被控对象式(5-1),仍采用参考模型式(5-2)
和控制器结构式(5-6)。设aˆp (t) 是未知对象参数 ap的估计值,式
(5-6)中的 k(t) 由下式计算:
k(t) aˆp (t) am
(5-16)
为了产生参数估计aˆp (t) ,选择一个稳定的滤波器
系统辨识与自适应控制 MATLAB仿真
第5章模型参考自适应控制
1
模型参考自适应控制是一种不同于自校正控制的另一类自适应 控制形式。根据被控对象结构和控制要求,设计参考模型,使其输 出表达对输入指令的期望响应,然后通过模型输出与被控对象输出 之差来调整控制器参数,使差值趋向于零,也就是使对象输出向模 型输出靠近,最终达到完全一致。根据控制器参数更新方法的不 同,模型参考自适应控制可分为直接自适应控制和间接自适应控制 两种。推演参数自适应规律的方法有两种:梯度法和稳定理论法。 5.1简单自适应控制系统
本节目的:1)给出直接自适应控制和间接自适应控制的概 念;2)自适应控制系统的两种基本设计方法:李亚普诺夫法和2梯
度法。
5.1.1直接自适应控制
直接自适应控制是指控制器参数直接从一个自适应规律中获取

基于Matlab系统辨识的参数辨识与仿真

基于Matlab系统辨识的参数辨识与仿真

基于Matlab系统辨识的参数辨识与仿真【摘要】论述了系统辨识的基本理论,分别用最小二乘法参数辨识和辅助变量法参数辨识。

根据Matlab系统辨识工具箱中的一些基本函数,结合实例来熟悉基于系统辨识工具箱的建模方法。

【关键词】Matlab;参数辨识;最小二乘法;辅助变量法1.系统辨识的基本理论系统辨识是根据系统的输入输出的时间函数来确定描述系统行为的数学模型,是现代控制理论中的一个分支。

对系统进行分析的主要问题是根据输入时间函数和系统的特性来确定输出信号。

它包括确定系统数学模型结构和估计其参数的方法。

系统辨识的流程如图1所示。

图1 系统辨识过程流程图2.模型参数辨识的方法系统辨识包括模型阶次辨识和参数辨识。

经典参数辨识的方法主要有他包括脉冲响应法、阶跃响应法、频率响应法、最小二乘法、相关分析法、谱分析法和极大似然法等,其中最小二乘法是最基本和最经典的,也是其他方法基本的思想的来源。

比如辅助变量法。

2.1 最小二乘法辨识考虑如下CAR模型:(1)参数估计的任务是根据可测量的输入和输出,确定如下个参数:对象(1)可以写成如下最小二乘形式:(2)现有L组输入输出观测数据:利用最小二乘法得到系统参数的估计值为:(3)2.2 辅助变量法辨识当为有色噪声时,利用最小二乘法进行参数辨识时往往得不到无偏一致的参数估计量。

在这个时候可以引入变量,然后利用最小二乘法进行辨识就可得到无偏一致的参数估计量。

因此,对于线性或本质线性系统,其过程的模型都可以化成最小二乘形式,考虑如下所示的模型方程:(4)将上式写成最小二乘格式,则得:假定存在一个辅助变量矩阵,维数与H相同,它满足以下极限特性:式中Q是非奇异矩阵。

如果辅助变量满足上述条件,则有:(5)图2 系统仿真图3.建模实例3.1 非参数模型辨识某被控对象的数学模型可以表示为:,式中:;为白噪声,编制MATLAB程序,分别对上述对象进行ARX建模和辅助变量法建模,并比较两种方法得到的脉冲响应。

系统辨识理论及matlab仿真

系统辨识理论及matlab仿真

系统辨识理论及matlab仿真系统辨识是一门评估和改进系统性能的研究领域,它利用外部观测数据对系统进行建模,使用这种模型来识别系统行为以及建议改进措施。

它结合了计算机科学、工程学、统计学和应用数学等多种学科的方法。

系统辨识的方法可以用于分析机器人系统、有限元素模型、分散系统和非线性系统等。

系统辨识理论是现代工程中最重要的技术,它能够有效地分析和模拟系统,以解决重大工程挑战。

系统辨识理论的基础可以回溯到20世纪40年代,当时大量研究的重点在于控制系统的设计与形成。

随着进步,它拓展到多种应用,其中包括一般系统建模和优化,以及系统健康监测,智能控制系统,复杂过程建模等等。

Matlab是一种基于矩阵的编程语言,它可以提供强大的工具来支持系统辨识理论的应用。

利用Matlab,可以非常方便地实现模型建模、数据处理、数值求解以及可视化等功能。

此外,它还提供了大量预定义函数,可以极大地简化系统辨识理论中所需要实现的功能,如参数估计、优化、数据验证等。

系统辨识理论和Matlab仿真在工程实践中应用十分广泛,其中最值得一提的有:(1)机器人控制:利用系统辨识理论和Matlab仿真,可以对机器人运动特性进行模型建模,并实现复杂的运动控制;(2)流体动力学:利用系统辨识理论和Matlab仿真,可以对流体动力学进行建模和模拟,以便改善和优化系统性能;(3)模糊控制:利用系统辨识理论和Matlab仿真,可以实现模糊控制系统的建模和仿真,用于实现智能控制等。

系统辨识理论和Matlab仿真的研究成果不仅可以改善系统性能,还可以用于展示系统原理及其实现。

以上是我关于系统辨识理论及Matlab仿真的研究结果及其应用。

经过以上介绍,可以看出系统辨识理论及Matlab仿真在工程应用中有重要的作用,它们为解决复杂工程问题提供了可行的解决方案。

然而,在实际应用过程中,系统辨识理论及Matlab仿真也存在一定的不足,比如误差控制方面的困难,这就要求我们不断改进和完善理论和技术,以提高系统的有效性和可靠性。

系统辨识理论及matlab仿真

系统辨识理论及matlab仿真

系统辨识理论及matlab仿真现今,随着电子技术的发展,在计算机上实现系统辨识问题变得日益重要。

因此,本文将介绍系统辨识理论及matlab仿真。

要完成这一任务,首先必须掌握辨识过程中涉及到的有关知识,然后才能对系统进行辨识,找出系统的主要特征,从而判断系统属于何种类型。

为了使读者易于接受并容易理解这些知识,在这里给出了一个简化的系统辨识方法。

对该方法的应用还需读者结合系统的具体情况和现有的设备仪器等来分析。

这里仅举例说明辨识过程。

1。

为了提高系统辨识的效率,一般采用的是分层次的方法,即:( 1)层1:列出所要辨识的所有系统元件。

( 2)层2:给出每个系统元件的状态变量值,其含义就是它的各个可能状态;( 3)层3:指出系统元件某一状态变量值与其他状态变量值之间的关系式。

如果在层2和层3之间加入一个自学习控制过程,则被辨识系统可以简化为两部分:前面提到的第1和第2部分。

2。

列出全部系统元件的状态变量,这里不难看出每一层次的系统元件都有它们各自的可能状态。

同时也可列出最坏情况下所有元件的状态变量,即:。

由状态变量与可能状态,可以很方便地推导出系统的属性值,进而确定该系统属于何种类型。

下面将分别作以介绍。

3。

系统根据可能状态组成的三角形可以看成三种可能的系统结构:( 1)原型:简单系统结构,有3个独立元件,一个是原点,另两个是控制点,相当于节点,且在原点处可以设置任意一个输入,也可以设置任意一个输出。

( 2)星型结构:星型结构可以看成四个独立元件,有一个或多个中心节点,每个节点都可以被设置成输入或输出,且可以沿连线选择任意两个元件做连接,若这样选择,则系统可以看成环状结构。

4。

基于系统结构的辨识方法5。

基于系统状态变量的辨识方法7。

基于状态变量的辨识方法。

把系统的状态空间描述为状态向量空间,把描述系统的状态转移矩阵与其描述的状态向量组成一个多项式,利用矩阵的运算来辨识系统,在大多数情况下都可以得到比较满意的辨识结果。

Matlab_系统辨识_仿真_CH2,CH5,CH7程序注释与剖析

Matlab_系统辨识_仿真_CH2,CH5,CH7程序注释与剖析

第二部分程序注释及运行结果读者须知:为了便于读者理解,现将光盘上第一部分可直接在MATLAB6.I 下运行的MATLAB程序的编号和书本上的内容对应如下,每个程序题目括号内的file.m是对应书本上的内容在光盘上第一部分的程序编号。

第二章的随机序列产生程序例2.1 用乘同余法产生随机数(见光盘FLch2sjxleg1.m)①编程如下:A=6; N=100; %初始化;x0=1; M=255;for k=1:N %乘同余法递推100次;x2=A*x0; %x2和x0分别表示x i和x i-1;x1=mod (x2,M); %将x2存储器的数除以M,取余数放x1(x i)中;v1=x1/256; %将x1存储器的数除以256得到小于1的随机数放v1中;)存放在矩阵存储器v的第k列中,v(:,k) v(:,k)=v1; % 将v1中的数(i%表示行不变、列随递推循环次数变化;x0=x1; %x i-1= x i;v0=v1;end %递推100次结束;v2=v %该语句末无‘;’,实现矩阵存储器v中随机数放在v2中,%且可直接显示在MA TLAB的window中;k1=k;%grapher %以下是绘图程序;k=1:k1;plot(k,v,k,v,'r');xlabel('k'), ylabel('v');tktle('(0-1)均匀分布的随机序列')②程序运行结果如图2.5所示。

图2.5 采用MA TLAB产生的(0,1)均匀分布的随机序列图③产生的(0-1)均匀分布的随机序列在程序运行结束后,产生的(0,1)均匀分布的随机序列,直接从MATLAB的window 界面中copy出来如下(v2中每行存6个随机数):v2 =0.0234 0.1406 0.8438 0.0820 0.4922 0.96090.7852 0.7266 0.3750 0.2578 0.5508 0.31640.9023 0.4336 0.6094 0.6680 0.0234 0.14060.8438 0.0820 0.4922 0.9609 0.7852 0.72660.3750 0.2578 0.5508 0.3164 0.9023 0.43360.6094 0.6680 0.0234 0.1406 0.8438 0.08200.4922 0.9609 0.7852 0.7266 0.3750 0.25780.5508 0.3164 0.9023 0.4336 0.6094 0.66800.0234 0.1406 0.8438 0.0820 0.4922 0.96090.7852 0.7266 0.3750 0.2578 0.5508 0.31640.9023 0.4336 0.6094 0.6680 0.0234 0.14060.8438 0.0820 0.4922 0.9609 0.7852 0.72660.3750 0.2578 0.5508 0.3164 0.9023 0.43360.6094 0.6680 0.0234 0.1406 0.8438 0.08200.4922 0.9609 0.7852 0.7266 0.3750 0.25780.5508 0.3164 0.9023 0.4336 0.6094 0.66800.0234 0.1406 0.8438 0.0820第二章的白噪声产生程序例2.2 用乘同余法产生(见光盘FLch2bzsheg2.m)①编程如下:A=6; x0=1; M=255; f=2; N=100;%初始化;x0=1; M=255;for k=1: N %乘同余法递推100次;x2=A*x0; %分别用x2和x0表示x i+1和x i-1;x1=mod (x2,M); %取x2存储器的数除以M的余数放x1(x i)中;v1=x1/256; %将x1存储器中的数除以256得到小于1的随机数放v1中;)减去0.5再乘以存储器f中的系数,存放v(:,k)=(v1-0.5 )*f; %将v1中的数(i在矩阵存储器v的第k列中,v(:,k)表示行不变、列随递推循环次数变化;x0=x1; % x i-1= x i;v0=v1;end %递推100次结束;v2=v %该语句后无‘;’,实现矩阵存储器v中随机数放在v2中,且可直接显示在MA TLAB的window中;k1=k;%grapher %以下是绘图程序;k=1:k1;plot(k,v,k,v,'r');xlabel('k'), ylabel('v');tktle(' (-1,+1)均匀分布的白噪声')②程序运行结果如图2.6所示。

(完整版)系统全参数辨识matlab实现

(完整版)系统全参数辨识matlab实现

实用标准文案4. 设某物理量Y 与X 满足关系式Y=aX 2+bX+c ,实验获得一批数据如下表,试辨识模型参数a ,b 和c 。

(50分)报告要求:要有问题描述、参数估计原理、程序流程图、程序清单,最后给出结果及分析。

(1)问题描述:由题意知,这是一个已知模型为Y=aX 2+bX+c ,给出了10组实验输入输出数据,要求对模型参数a ,b ,c 进行辨识。

这里对该模型参数辨识采用递推最小二乘法。

(2)参数估计原理对该模型参数辨识采用递推最小二乘法,即RLS ( recurisive least square ),它是一种能够对模型参数进行在线实时估计的辨识方法。

其基本思想可以概括为:新的估计值)(ˆk θ=旧的估计值)1(ˆ-k θ+修正项 下面将批处理最小二乘法改写为递推形式即递推最小二乘参数估计的计算方法。

批处理最小二乘估计θˆ为Y T TΦΦΦ=-1)(ˆθ,设k 时刻的批处理最小二乘估计为:k T k k T k Y ΦΦΦ=-1)(ˆθ令111)]1()()1([)()(----+-=ΦΦ=k k k P k P T kT k ϕϕ K 时刻的最小二乘估计可以表示为kT k Y k P k Φ=)()(ˆθ=)]()()[(11k y k Y k P k T k ϕ+Φ-- =)]1(ˆ)()()[()1(ˆ--+-k k k y k K kT θϕθ ;式中)()()(k k P k K ϕ=,因为要推导出P(k)和K(k)的递推方程,因此这里介绍一下矩阵求逆引理:设A 、(A+BC )和(I +B CA 1-)均为非奇异方阵,则111111)()(------+-=+CA B CA I B A A BC A 通过运用矩(3)程序流程图(如右图1所示)递推最小二乘法(RLS)步骤如下:已知:n、b n和d。

aStep 1 :设置初值)0(ˆθ和P(0),输入初始数据;Step2 :采样当前输出y(k)、和输入u(k)Step3 :利用上面式①②③计算)(k K、)(ˆkθ和)(k P;Step4 :k→k+1,返回step2,继续循环。

如何使用MATLAB进行系统辨识与模型建模

如何使用MATLAB进行系统辨识与模型建模

如何使用MATLAB进行系统辨识与模型建模引言:近年来,随着科学技术的飞速发展,各行各业都在努力寻求更高效、更智能的解决方案。

系统辨识与模型建模作为一种重要方法和工具,被广泛应用于控制系统、信号处理、机器学习等领域。

在这些领域中,MATLAB作为一款功能强大的数值计算软件,为我们提供了丰富的工具和函数,可用于进行系统辨识与模型建模的分析和实现。

本文将详细介绍如何使用MATLAB进行系统辨识与模型建模,并探讨其在实际应用中的意义和局限性。

一、系统辨识的基本原理1.1 系统辨识的概念及意义系统辨识是指通过对已有数据的分析和处理,建立描述该系统行为的数学模型的过程。

在实际应用中,系统辨识可以帮助我们了解系统的结构和特性,预测系统的行为,并为系统控制、优化提供依据。

1.2 系统辨识的方法系统辨识的方法主要包括参数辨识和结构辨识两种。

参数辨识是指通过拟合已知数据,确定数学模型中的参数值的过程。

常用的参数辨识方法有最小二乘法、极大似然估计法等。

结构辨识是指通过选择适当的模型结构和参数化形式,使用已知数据确定模型结构的过程。

常用的结构辨识方法有ARX模型、ARMA模型等。

二、MATLAB在系统辨识中的应用2.1 数据准备与预处理在进行系统辨识之前,我们首先需要准备好相关的数据。

数据的质量和数量对系统辨识的结果有着重要的影响,因此在数据准备阶段应尽量确保数据的准确性和完整性。

MATLAB提供了丰富的数据处理和分析函数,可用于数据预处理、数据清洗、数据归一化等操作,以提高数据的质量和可用性。

2.2 参数辨识的实现参数辨识是系统辨识的重要步骤之一,其主要目标是通过适当的数学模型拟合已知数据,确定模型中的参数值。

在MATLAB中,我们可以使用curve fitting工具箱中的函数,如fit、cftool等,来进行参数辨识的实现。

同时,MATLAB还提供了最小二乘法等常用的参数辨识算法,方便我们根据实际需求进行选择和应用。

Matlab 系统辨识 仿真 CH3,CH4,CH6程序注释与剖析

Matlab 系统辨识 仿真 CH3,CH4,CH6程序注释与剖析

第3章程序及注释例3.3 考虑仿真对象)()2(5.0)1()2(7.0)1(5.1)(k v k u k u k z k z k z +-+-=-+-- (3.41) 其中,)(k v 是服从正态分布的白噪声N )1,0(。

输入信号采用4阶M 序列,幅度为1。

选择如下形式的辨识模型)()2()1()2()1()(2121k v k u b k u b k z a k z a k z +-+-=-+-+ (3.42)设输入信号的取值是从k =1到k =16的M 序列,则待辨识参数LSθˆ为LS θˆ=L τL 1L τL z H )H H -(。

其中,被辨识参数LSθˆ、观测矩阵z L 、H L 的表达式为⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=2121ˆb b a a LSθ , ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=)16()4()3(z z z L z , ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡------=)14()2()1()15()3()2()14()2()1()15()3()2(u u u u u u z z z z z z L H (3.43) 程序框图如图3.2所示。

Matlab6.0仿真程序如下:%二阶系统的最小二乘一次完成算法辨识程序,在光盘中的文件名:FLch3LSeg1.mu=[-1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,1,1]; %系统辨识的输入信号为一个周期的M序列z=zeros(1,16); %定义输出观测值的长度for k=3:16z(k)=1.5*z(k-1)-0.7*z(k-2)+u(k-1)+0.5*u(k-2); %用理想输出值作为观测值endsubplot(3,1,1) %画三行一列图形窗口中的第一个图形stem(u) %画输入信号u的径线图形subplot(3,1,2) %画三行一列图形窗口中的第二个图形i=1:1:16; %横坐标范围是1到16,步长为1plot(i,z) %图形的横坐标是采样时刻i, 纵坐标是输出观测值z, 图形格式为连续曲线subplot(3,1,3) %画三行一列图形窗口中的第三个图形stem(z),grid on %画出输出观测值z的径线图形,并显示坐标网格u,z %显示输入信号和输出观测信号%L=14 %数据长度HL=[-z(2) -z(1) u(2) u(1);-z(3) -z(2) u(3) u(2);-z(4) -z(3) u(4) u(3);-z(5) -z(4) u(5) u(4);-z(6) -z(5) u(6) u(5);-z(7) -z(6) u(7) u(6);-z(8) -z(7) u(8) u(7);-z(9) -z(8) u(9) u(8);-z(10) -z(9) u(10) u(9);-z(11) -z(10) u(11)u(10);-z(12) -z(11) u(12) u(11);-z(13) -z(12) u(13) u(12);-z(14) -z(13)u(14) u(13);-z(15) -z(14) u(15) u(14)] %给样本矩阵H L赋值ZL=[z(3);z(4);z(5);z(6);z(7);z(8);z(9);z(10);z(11);z(12);z(13);z(14);z(15); z(16)] % 给样本矩阵z L赋值%Calculating Parametersc1=HL'*HL; c2=inv(c1); c3=HL'*ZL; c=c2*c3 %计算并显示θˆLS%Display Parametersa1=c(1), a2=c(2), b1=c(3),b2=c(4) %从θˆ中分离出并显示a1、a2、b1、LSb2%End程序运行结果:>>u =[ -1,1,-1,1,1,1,1,-1,-1,-1,1,-1,-1,1,1]z =[ 0,0,0.5000,0.2500,0.5250,2.1125,4.3012,6.4731,6.1988,3.2670,-0.9386,-3.1949,-4.6352,6.2165,-5.5800,-2.5185]HL =0 0 1.0000 -1.0000-0.5000 0 -1.0000 1.0000-0.2500 -0.5000 1.0000 -1.0000-0.5250 -0.2500 1.0000 1.0000-2.1125 -0.5250 1.0000 1.0000-4.3012 -2.1125 1.0000 1.0000-6.4731 -4.3012 -1.0000 1.0000-6.1988 -6.4731 -1.0000 -1.0000-3.2670 -6.1988 -1.0000 -1.00000.9386 -3.2670 1.0000 -1.00003.1949 0.9386 -1.0000 1.00004.6352 3.1949 -1.0000 -1.00006.2165 4.6352 1.0000 -1.00005.58006.2165 1.0000 1.0000ZL =[ 0.5000,0.2500,0.5250,2.1125,4.3012,6.4731,6.1988,3.2670,-0.9386,-3.1949,-4.6352,-6.2165,-5.5800,-2.5185]Tc =[ -1.5000,0.7000,1.0000,0.5000]Ta1 = -1.5000a2 = 0.7000b1 = 1.0000b2 =0.5000>>-11-1010-10010从仿真结果表3.1可以看出,由于所用的输出观测值没有任何噪声成分,所以辨识结果也无任何误差。

系统辨识及其MATLAB仿真

系统辨识及其MATLAB仿真
必须有一个对辨识所得到模型的验证评价
对辨识所得到模型的验证是系统辨识的重要环节。验证的目的是为了确定该 模型是否是模型集中针对当前观测数据的最佳选择。验证的方法主要有
利用先验知识验证,即根据对系统已有的知识来判断模型是否实用。 利用数据检验。当利用一组数据辨识得到一个模型之后,通常希望用另 一组未参与辨识的数据检验模型的适用性。如果检验结果失败,可能存在的问题 是:辨识所用的一组数据包含的信息不足或所选模型类不合适。另外,也可以用同
图表模型。它以图形或表格的形式来表现过程的特性。如阶跃响应、脉 冲响应和频率响应等,也称非参数模型。
数学模型 。它用数学结构的形式来反 映实际过程的行为特性 。常用的有 代 数 方 程、微 分 方 程、差 分 方 程 和 状 态 方 程 。
经济学上的
产生关系模型(代数方程)
式中, 为产值; 为劳动力; 为资本。 微分方程
入输出模型或状态空间模型、确定性模型或随机模型、线性模型或非线性模型等。
模型类的规定是根据人们对实际系统的了解以及建立模型的目的设定的。规定了
模型类后,再由输入输出数据按结构辨识的方法确定系统的结构参数,并且用参数
辨识的方法辨识系统的参数。
根据定义,我们所建立的模型必须与被测系统在某种意义上是等价的。
第 4 页
设 表示被测系统的一个模型,并且满足
是具有某种属性的模型类。一个系统可看做是从系统允许的输人空间 到输
出空间 的一个算子 相当于对象
属于某个算子类 。系统辨识的问题
是指对于一个给定的算子类 和一个对象
,确定一个模型类 及它的一
个元素
可以认为 是 的一个子集),使得 尽可能的逼近 。在 实
用已知的运动机理和经验确定系统的结构和参数(即确定模型)。

系统辨识MATLAB仿真

系统辨识MATLAB仿真

设一非线性系统如下所示:()()()()()111y k y k e u k k βαε--=-+-+0.75α= 0.35β=0.25γ=,()k ε是零均值,方差为0.01的噪声序列(均匀白噪声)。

(1)试设计一种激励信号能持续激励系统的各工作点(平衡点)(2)用适当的方法辨识出系统的等价模型(用另一组数据来检验模型的泛化性) 说明:下面讨论的都是离散系统,所以时间坐标均采用离散时间节点k 。

解:(1) 线性化处理寻找系统的合理输入信号 可以求得系统的平衡点为:()0.75y k α== (1.1) 按题意要求最后系统必须收敛于平衡点附近,即:()lim 0.75k y k →∞= (1.2)为了找出系统的合理输入信号,使得系统最终工作在平衡点附近,这里可以将系统线性化处理,将上述非线性系统进行泰勒展开得:()()()()()()()2323111111112!3!!n n y k y k y k y k y k u k k n αβαβαβαβγε--+---++-=-+因为 ,后面()1y k -的高阶项都可以扔掉(只作为寻找输入信号使用), 所以系统可以化为下式:此时不妨设系统输出()y k 的最后的极限为A , 从式1.2得0.75A =。

那么应该满足()()lim lim 1k k y k y k A →∞→∞=-= (1.5)从而有 ()()()11A u k k αβγε-=-+ (1.6) 同时为了抵消系统的部分噪声,这里采用MA TLAB 软件编程产生另一服从同一分布的均匀噪声()1k ε,将式1.6变形得:()()()01111u k u k k αβεγγ--=-(1.7)式1.7中()0u k 是一个最后收敛于系统平衡点0.75的基本信号,这里可以采用一阶线性系统的阶跃响应曲线作为基本信号()0u k ,同时考虑系统的平衡点,即设计为:()/00.75k Tu k e-=- (1.8)T 是一阶线性系统对应的时间常数,反应到输入基本信号()0u k 上就是过零点作()0u k 对应()()()()11y k y k u k k αβγε--=-+01αβ<(1.3)(1.4)曲线的切线的斜率1K T=。

系统辨识与自适应控制matlab仿真_概述说明

系统辨识与自适应控制matlab仿真_概述说明

系统辨识与自适应控制matlab仿真概述说明1. 引言1.1 概述在控制系统中,系统辨识与自适应控制是两个重要的研究领域。

系统辨识是指通过实验数据来推断和建立数学模型,以揭示被控对象的动态特性和行为规律。

而自适应控制则是基于辨识模型预测,并根据外部环境变化及时调整控制策略,以实现对系统稳定性、鲁棒性和性能的优化。

本文将围绕系统辨识与自适应控制在Matlab仿真环境中的应用展开讨论。

首先,我们会介绍系统辨识和自适应控制的基本概念以及其在工程领域中的重要性。

然后,我们会详细介绍常用的系统辨识方法和自适应控制算法,并通过具体示例来说明它们的实际应用价值。

最后,我们会重点讲解如何利用Matlab进行仿真实验,并分享一些Matlab编程与仿真技巧。

1.2 文章结构本文共分为五个主要部分:引言、系统辨识、自适应控制、Matlab仿真以及结论与展望。

在引言部分,我们将介绍文章的背景和目的,以及整体结构安排。

接下来的三个部分将重点讨论系统辨识和自适应控制两个主题,并具体阐述各自的概念、方法、应用以及仿真结果分析。

最后一部分则是对全文进行总结回顾,并展望未来研究方向和发展趋势。

1.3 目的本文旨在通过对系统辨识与自适应控制在Matlab仿真环境中的研究与应用进行概述说明,帮助读者深入了解该领域的基本理论和实践技巧。

同时,在介绍相关概念和算法的同时,我们也希望能够启发读者思考并提出对未来研究方向和发展趋势的建议。

通过本文的阅读,读者将能够全面了解系统辨识与自适应控制在工程领域中的重要性,并学会利用Matlab进行仿真实验,从而加深对这一领域的理解与认知。

2. 系统辨识2.1 系统辨识概念系统辨识是指通过观测系统输入与输出之间的关系,以及对系统内部状态的估计,来建立数学模型以反映实际物理系统行为的过程。

在控制工程领域中,系统辨识是一种常用的方法,用于从已知输入与输出数据中推断出未知系统的特性和参数。

在系统辨识过程中,我们通常假设被研究的系统是线性、时不变且具有固定结构的。

第1章 绪论 [系统辨识理论及Matlab仿真]

第1章 绪论  [系统辨识理论及Matlab仿真]
分析进行建模,则系统可以称为“白箱”。如果对系统的客观规律 不清楚,只能从系统的试验中测量系统的响应数据,应用辨识方法 建立系统的数学模型,则称系统为“黑箱”。如果已知系统的某些 基本规律,但又有些机理还不清楚,则称系统为“灰箱”。
(2)按概率角度分:确定性的、随机性的 确定性模型所描述的系统,当状态确定后,其输出响应是唯一
系统辨识是根据系统的试验数据来确定系统的数学模型,必须 存在实际系统的输入输出数据。
6
1.1 建立数学模型的基本方法
(1)理论分析法 这种方法主要是通过分析系统的运动规律,运用已知的定律、
定理和原理,例如力学原理、生物学定律、牛顿定理、能量平衡方 程、传热传质原理等,利用数学方法进行推导,建立系统的数学模 型。
(4)按时间刻度分:连续的、离散的 用来描述连续系统的模型有微分方程、传递函数等,用来描
述离散系统的模型有差分方程、状态方程等。
(5)按参数与时间的关系分:定常的、时变的
定常系统的模型参数不随时间的变化而改变,而时变系统的
模型参数随时间的变化而改变。
19
(6)按参数与输入输出关系分:线性的、非线性的 线性模型用来描述线性系统,其显著特点是满足叠加原理和
则。一般采用输出误差准则,即当实际系统的输出和模型的输出
分别为 yk 和 ymk 时,输出误差为
k yk ymk
28
1.7 系统辨识的分类
系统辨识的分类方法很多,根据描述系统数学模型的不同可分 为线性系统和非线性系统辨识、集中参数系统和分布参数系统辨识; 根据系统的结构可分为开环系统与闭环系统辨识;根据参数估计方 法可分为离线辨识和在线辨识等。另外还有经典系统辨识和近代系 统辨识、系统结构辨识和系统参数辨识等分类。其中离线辨识与在 线辨识是系统辨识中常用的2个基本概念。

系统辨识与自适应控制matlab仿真代码

系统辨识与自适应控制matlab仿真代码

系统辨识与自适应控制Matlab仿真代码一、引言系统辨识与自适应控制是现代控制理论的重要分支之一,它能够对未知的系统进行建模和控制,具有广泛的应用前景。

Matlab作为一款强大的数学软件,具有丰富的工具箱和仿真功能,可以方便地进行系统辨识和自适应控制的仿真实验。

本文将介绍如何使用Matlab进行系统辨识和自适应控制的仿真实验。

二、系统辨识系统辨识是指根据系统的输入和输出数据,推导出系统的数学模型。

在Matlab中,可以使用System IdentificationToolbox进行系统辨识。

下面以一个简单的例子来说明如何使用System Identification Toolbox进行系统辨识。

例:假设有一个未知的二阶系统,其输入为正弦信号,输出为系统的响应。

采样频率为10 0Hz,采样时间为10秒。

输入信号的频率为2Hz,幅值为1。

1. 生成输入信号在Matlab中,可以使用如下代码生成输入信号:t = 0:0.01:10; % 采样时间u = sin(2*pi*2*t); % 2Hz正弦信号2. 生成输出信号假设系统的传递函数为:G(s) = K / (s^2 + 2ζωs + ω^2)其中K、ζ、ω为未知参数。

可以使用如下代码生成输出信号:K = 1;zeta = 0.2;omega = 2*pi*2;sys = tf(K, [1 2*zeta*omega omega^2]);y = lsim(sys, u, t);3. 进行系统辨识使用System Identification Toolbox进行系统辨识,可以得到系统的传递函数模型:G(s) = 0.9826 / (s^2 + 0.7839s + 12.57)其中,0.9826为K的估计值,0.7839为2ζω的估计值,12.57为ω^2的估计值。

可以看出,估计值与实际值比较接近。

三、自适应控制自适应控制是指根据系统的输入和输出数据,实时调整控制器的参数,以达到控制系统稳定的目的。

在Matlab中进行模拟系统建模与仿真

在Matlab中进行模拟系统建模与仿真

在Matlab中进行模拟系统建模与仿真简介MATLAB(Matrix laboratory)是一种高级计算环境和编程语言,广泛用于工程、科学和数学领域的数据分析、可视化和算法开发。

在MATLAB中,我们可以使用各种工具箱和功能来进行系统建模和仿真。

本文将介绍一些MATLAB中进行模拟系统建模与仿真的方法和技巧,以帮助读者更好地理解和应用这个强大的工具。

一、系统建模1. 确定系统的输入和输出在进行系统建模之前,首先要明确系统的输入和输出。

系统的输入是指进入系统的外部信号或变量,而系统的输出是指系统产生的响应或结果。

了解系统的输入和输出有助于我们理解系统的工作原理并进行模型构建。

2. 建立传递函数模型传递函数模型是系统建模中常用的一种数学模型。

它通过输入和输出之间的关系来描述系统的动态行为。

在MATLAB中,我们可以使用tf函数来建立传递函数模型。

例如,假设有一个二阶系统,可以通过以下代码建立其传递函数模型:```matlabnum = [1];den = [1, 1, 1];sys = tf(num, den);```3. 建立状态空间模型状态空间模型是描述系统动态行为的另一种常用模型。

它通过系统的状态变量和输入之间的关系来表示系统的行为。

在MATLAB中,我们可以使用ss函数来建立状态空间模型。

例如,假设有一个二阶系统,可以通过以下代码建立其状态空间模型:```matlabA = [0, 1; -1, -1];B = [0; 1];C = [1, 0];D = 0;sys = ss(A, B, C, D);```二、系统仿真1. 时域仿真时域仿真是通过对系统输入信号进行时间积分来模拟系统的行为。

在MATLAB中,我们可以使用sim函数来进行时域仿真。

例如,假设有一个输入信号u和一个系统sys,可以通过以下代码进行时域仿真:```matlabt = 0:0.01:10; % 时间范围u = sin(t); % 输入信号[y, t] = sim(sys, t, u); % 仿真结果```2. 频域仿真频域仿真是通过对系统输入信号进行傅里叶变换,并与系统的传递函数进行频域计算来模拟系统的行为。

系统辨识及其matlab仿真)

系统辨识及其matlab仿真)

系统辨识及其matlab仿真)系统辨识是指利用已知的输入和输出数据,通过建立数学模型来描述和预测系统行为的过程。

它在工程领域中具有广泛的应用,包括控制系统设计、信号处理、通信系统等领域。

系统辨识可以分为参数辨识和非参数辨识两种方法。

参数辨识是指通过确定系统模型的参数来描述系统行为,常用的方法有最小二乘法、极大似然法等。

非参数辨识则是通过估计系统的输入输出关系函数来描述系统,常用的方法有频域方法、时域方法等。

在系统辨识过程中,噪声是一个不可忽视的因素。

噪声的存在会对辨识结果产生影响,因此需要对噪声进行建模和处理。

常用的噪声模型有高斯白噪声模型、AR模型、MA模型等。

在实际应用中,通常需要根据实际情况选择合适的噪声模型来进行系统辨识。

Matlab是一种常用的数学软件,它提供了丰富的工具箱和函数,可以方便地进行系统辨识的仿真。

在Matlab中,可以使用System Identification Toolbox进行系统辨识的建模和仿真。

该工具箱提供了多种辨识算法,包括线性和非线性的参数辨识方法。

在使用Matlab进行系统辨识仿真时,首先需要准备好输入输出数据。

对于已知系统,可以通过实验或者模拟得到系统的输入输出数据。

对于未知系统,可以通过对系统加入一定的激励信号,然后获取系统的响应数据来进行辨识。

接下来,可以使用Matlab提供的辨识函数进行系统辨识的建模。

对于线性系统,可以使用ARX模型、ARMAX模型、OE模型等进行建模。

对于非线性系统,可以使用非线性ARX模型、非线性ARMAX模型等进行建模。

这些辨识函数可以根据输入输出数据自动估计系统的参数,并生成系统模型。

在得到系统模型后,可以利用仿真工具对系统进行仿真分析。

例如,可以通过对系统模型进行输入信号的仿真,得到系统的输出响应,并与实际数据进行比较,验证辨识结果的准确性。

总之,系统辨识及其Matlab仿真是一种重要的工程方法,可以帮助我们理解和预测系统的行为。

系统辨识的Matlab实现方法(手把手)

系统辨识的Matlab实现方法(手把手)

最近在做一个项目的方案设计,应各位老总的要求,只有系统框图和器件选型可不行,为了凸显方案设计的高大上,必须上理论分析,炫一下“技术富”,至于具体有多大实际指导意义,那就不得而知了!本人也是网上一顿百度,再加几日探索,现在对用matlab 实现系统辨识有了一些初步的浅薄的经验,在此略做一小节。

必须要指出的是,本文研究对象是经典控制论理最简单最常用的线性时不变的siso 系统,而且是2阶的哦,也就是具有如下形式的传递函数:121)(22++=Ts s T s G ξ 本文要做的就是,对于有这样传递函数的一个系统,要辨识得到其中的未知数T , ξ!!这可是控制系统设计分析的基础哦,没有系统模型,啥理论、算法都是白扯,在实际工程中非常重要哦! 经过总结研究,在得到系统阶跃响应实验数据之后(当然如果是其他响应,也有办法可以辨识,在此还是只讨论最简单的阶跃响应实验曲线,谁让你我是菜鸟呢),利用matlab 至少可以有两种方法实现实现(目前我只会两种,呵呵)!一、函数法二、GUI 系统辨识工具箱下面分别作详细介绍!一、 函数法看官别着急,先来做一段分析(请看下面两排红*之间部分),这段分析是网上找来的,看看活跃一下脑细胞吧,如果不研读一下,对于下面matlab 程序,恐怕真的就是一头雾水咯!*******************************************************************************G(s)可以分解为:))((1)(212ωω++=s s T s G其中, [][]11112221--=-+=ξξωξξωTT1ω、2ω都是实数且均大于零。

则有:211ωω=T ,21212ωωωωξ+=传递函数进一步化为:))(()(2121ωωωω++=s s s G 因此,辨识传递函数就转化为求解1ω、2ω。

当输入为单位阶跃函数时,对上式进行拉普拉斯反变换,得系统时域下的单位阶跃响应为:tteet y 212111221)(ωωωωωωωω---+--=即 tteet y 21211122)(1ωωωωωωωω-----=-令1ω=2ωk )1(>k,得tk t ek e k k t y 22111)(1ωω-----=-⎥⎦⎤⎢⎣⎡--=---t k t e k e k k 2)1(2111ωω 对上式两边取以e 为底的对数得[]⎥⎦⎤⎢⎣⎡-+--=---t k e k t k k t y 2)1(211ln 1ln )(1ln ωω 当∞→t 时,⎥⎦⎤⎢⎣⎡---t k e k 2)1(11ln ω0→,则上式化简为[]t k k t y 21ln )(1ln ω--=-该式的形式满足直线方程b at t y +=)(*其中,)(*t y =[])(1ln t y -,1ln ,2-=-=k kb a ω)1(>k通过最小二乘算法实现直线的拟合,得到a ,b 的值,即可得到1ω、2ω的值,进而可得系统的传递函数。

系统辨识地Matlab实现方法(手把手)

系统辨识地Matlab实现方法(手把手)

最近在做一个项目的方案设计,应各位老总的要求,只有系统框图和器件选型可不行,为了凸显方案设计的高大上,必须上理论分析,炫一下“技术富”,至于具体有多大实际指导意义,那就不得而知了!本人也是网上一顿百度,再加几日探索,现在对用matlab 实现系统辨识有了一些初步的浅薄的经验,在此略做一小节。

必须要指出的是,本文研究对象是经典控制论理最简单最常用的线性时不变的siso 系统,而且是2阶的哦,也就是具有如下形式的传递函数:121)(22++=Ts s T s G ξ 本文要做的就是,对于有这样传递函数的一个系统,要辨识得到其中的未知数T , ξ!!这可是控制系统设计分析的基础哦,没有系统模型,啥理论、算法都是白扯,在实际工程中非常重要哦! 经过总结研究,在得到系统阶跃响应实验数据之后(当然如果是其他响应,也有办法可以辨识,在此还是只讨论最简单的阶跃响应实验曲线,谁让你我是菜鸟呢),利用matlab 至少可以有两种方法实现实现(目前我只会两种,呵呵)!一、函数法二、GUI 系统辨识工具箱下面分别作详细介绍!一、 函数法看官别着急,先来做一段分析(请看下面两排红*之间部分),这段分析是网上找来的,看看活跃一下脑细胞吧,如果不研读一下,对于下面matlab 程序,恐怕真的就是一头雾水咯!*******************************************************************************G(s)可以分解为:))((1)(212ωω++=s s T s G其中, [][]11112221--=-+=ξξωξξωTT1ω、2ω都是实数且均大于零。

则有:211ωω=T ,21212ωωωωξ+=传递函数进一步化为:))(()(2121ωωωω++=s s s G 因此,辨识传递函数就转化为求解1ω、2ω。

当输入为单位阶跃函数时,对上式进行拉普拉斯反变换,得系统时域下的单位阶跃响应为:tteet y 212111221)(ωωωωωωωω---+--=即 tteet y 21211122)(1ωωωωωωωω-----=-令1ω=2ωk )1(>k,得tk t ek e k k t y 22111)(1ωω-----=-⎥⎦⎤⎢⎣⎡--=---t k t e k e k k 2)1(2111ωω 对上式两边取以e 为底的对数得[]⎥⎦⎤⎢⎣⎡-+--=---t k e k t k k t y 2)1(211ln 1ln )(1ln ωω 当∞→t 时,⎥⎦⎤⎢⎣⎡---t k e k 2)1(11ln ω0→,则上式化简为[]t k k t y 21ln )(1ln ω--=-该式的形式满足直线方程b at t y +=)(*其中,)(*t y =[])(1ln t y -,1ln ,2-=-=k kb a ω)1(>k通过最小二乘算法实现直线的拟合,得到a ,b 的值,即可得到1ω、2ω的值,进而可得系统的传递函数。

5.4-1 闭环系统频域测试及辨识 [系统辨识理论及Matlab仿真]

5.4-1 闭环系统频域测试及辨识  [系统辨识理论及Matlab仿真]
图1 闭环系统测试框图
2
设闭环系统输入指令信号为:
yd t Amsin(t)
(1)
其中 、 Am 分别为输入信号的幅度和角频率。
位置跟踪误差为:
et yd t yt
在闭环系统内,采用P控制,控制律为:
ut kpet
3
由于闭环系统是线性的,则其角位置输出可表示为:
10
Mag.(dB.)
0
-0.5
-1
-1.5
0
1
2
10
10
10
rad./s 0
-20
-40
-60
-80
0
1
2
10
10
10
rad./s
Phase(Deg.)
图2 实际传递函数与拟合传递函数的Bode图比较
11
x 10-4 2
Mag.(dB.)
Phase(Deg.)
0
0
10
20
30
40
50
60
-4
x 10
rad./s
5
0
-5
0
10
20
30
40
50
60
rad./s
图3 频率特性拟合误差曲线
12
闭环系统辨识仿真程序 chap5_5a.m chap5_5b.m
13
附:最小二乘参数辨识法
假设一个变量 y 与一组变量 X x1 x2
xn 有线性关系,即
y 1x1 2 x2 n xn
取 w 2πF ,利用Matlab函数 invfreqs hp, w, nb, na ,可得
到与复频特性 hp 相对应的、分子分母阶数分别为 nb 和 na 的 传递函数的分子分母系数 bb 和 aa ,从而得到闭环系统辨识的
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

设一非线性系统如下所示:()()()()()111y k y k e u k k βαε--=-+-+0.75α= 0.35β=0.25γ=,()k ε是零均值,方差为0.01的噪声序列(均匀白噪声)。

(1)试设计一种激励信号能持续激励系统的各工作点(平衡点)(2)用适当的方法辨识出系统的等价模型(用另一组数据来检验模型的泛化性) 说明:下面讨论的都是离散系统,所以时间坐标均采用离散时间节点k 。

解:(1) 线性化处理寻找系统的合理输入信号 可以求得系统的平衡点为:()0.75y k α== (1.1)按题意要求最后系统必须收敛于平衡点附近,即:()lim 0.75k y k →∞= (1.2)为了找出系统的合理输入信号,使得系统最终工作在平衡点附近,这里可以将系统线性化处理,将上述非线性系统进行泰勒展开得:()()()()()()()2323111111112!3!!n n y k y k y k y k y k u k k n αβαβαβαβγε--+---++-=-+因为 ,后面()1y k -的高阶项都可以扔掉(只作为寻找输入信号使用), 所以系统可以化为下式:此时不妨设系统输出()y k 的最后的极限为A , 从式1.2得0.75A =。

那么应该满足()()lim lim 1k k y k y k A →∞→∞=-= (1.5)从而有 ()()()11A u k k αβγε-=-+ (1.6)同时为了抵消系统的部分噪声,这里采用MA TLAB 软件编程产生另一服从同一分布的均匀噪声()1k ε,将式1.6变形得:()()()01111u k u k k αβεγγ--=-(1.7)式1.7中()0u k 是一个最后收敛于系统平衡点0.75的基本信号,这里可以采用一阶线性系统的阶跃响应曲线作为基本信号()0u k ,同时考虑系统的平衡点,即设计为:()/00.75k Tu k e-=- (1.8)T 是一阶线性系统对应的时间常数,反应到输入基本信号()0u k 上就是过零点作()0u k 对应()()()()11y k y k u k k αβγε--=-+01αβ<(1.3)(1.4)曲线的切线的斜率1KT =。

图1 基本信号产生框图很显然有()lim0.75tu k→∞=(1.9)从而最后的输入信号设计为:()()()011111u k u k kαβεγγ-=+-+(1.10)式1.10中,,αβγ题中已知,()1kε满足:()1E kε=⎡⎤⎣⎦,()10.01D kε=⎡⎤⎣⎦,()u k 的产生参照图1。

代入式1.8得:()()(1)/111(0.75)1k Tu k e kαβεγγ-+-=--+(1.11)产生()u k过程中的时间常数T由仿真效果决定,如果从系统的性能指标而言,T尽可能小,仿真如下:图2 噪声随机抵消情况下的原系统响应曲线系统输入基本信号()u k阶跃信号11Ts+图3噪声完全抵消情况下的原系统响应曲线仿真分析:图2与图3中都是原非线性系统的响应曲线图,两者的输入信号有差别,分别为()()12,u k u k ,如下式表示:()()()1011111u k u k k αβεγγ-=+-+ (1.12)()()()201111u k u k k αβεγγ-=+-+ (1.13)()0u k 参照式1.8。

式1.12中()11k ε+是MA TLAB 中产生的符合同一均匀分布的给定随机噪声,从而式1.12中输入信号()1u k 实现噪声随机抵消,结果系统的响应()y k 呈现出很大的噪声干扰,这是符合对未知系统认识的逻辑过程的,如果要得出理想的响应曲线,也就是要求系统最终在平衡点附近趋于稳定,那么需要设计相应的滤波器,这里不再讨论,后续会尝试设计滤波器滤波。

式1.13中()1k ε+是系统给定的噪声,那么设计的输入信号()u k 实现了对噪声的完全抵消,得到的理想响应曲线如图3所示,从图3中可以看出,()y k 很快的收敛于0.75附近,且上升时间以及超调量等性能指标均符合理想响应要求,这里就没有具体计算,显然符合控制系统的快稳准的三要素。

(2) 最小二乘法辨识模型通过MATLAB 编程从原非线性系统中采集一些输入输出数据,利用最小二乘法辨识出系统近似的线性模型,实现框图如图4。

时不变SISO 系统动态过程的数学模型为()()()()()11A z y k B z u k k ε--=+ (2.1)其中()u k 是系统的输入,()y k 是系统的输出,()()11,B A z z --的展开式分别如下:()112121a a n n A z a z a z a z ----=+++ (2.2) ()11212b b n n B z b z b z b z ----=++ (2.3)参数1212,,,,,,,a b n n a a a b b b 待辨识。

式2.1写成最小二乘格式()()()Ty k hk k θε=+ (2.4)式2.4中:()()()()()[y 1,,y ,u 1,,u ]T a b h k k k n k k n =------ (2.5)1212,,,,,,,a b Tn n a a a b b b θ⎡⎤=⎣⎦ (2.6)对于1,2,,,k L =方程2.4构成一个线性方程组,可以把它写成式2.7,L L L Y H E θ=+ (2.7)其中()()()1,y 2,,y TL Y y L =⎡⎤⎣⎦ (2.8) ()()()1,2,,TL E L εεε=⎡⎤⎣⎦ (2.9)()()()()()()()()()()()()()()()101011212211T a b T a b L T a b h y y n u u n y y n u u n h H y L y L n u L u L n h L ⎡⎤----⎡⎤⎢⎥⎢⎥----⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥------⎣⎦⎣⎦ (2.10)由题意知()k ε为均匀分布的噪声所以{}(){}(){}(){}120L E E E E E L εεε⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎢⎥⎣⎦(2.11){}{}(){}()(){}()(){}()(){}(){}()(){}()(){}()(){}(){}22221121212212T L L L E E E L E E E L Cov E E E E I E L E L E L εεεεεεεεεεεσεεεεε⎡⎤⎢⎥⎢⎥===⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦(2.12)式中20.01εσ=,I 是单位矩阵。

这里认为噪声()k ε与输入()u k 是不相关的,从而()(){}0,,E k u k l k l ε-=∀ (2.13)这里需要考虑的是记忆长度的选择,上述矩阵方程包含()a b n n +个未知数,一般要求a b L n n >+,这样才可能确定一个“最优”的模型参数θ,而且为了保证辨识的精度,L 必须充分大,由AIC 定阶准则知L 同样决定着所辨识系统的阶次,下面会阐述相应理论。

定义准则函数:()()()()21LTk J k y k h k θθ=⎡⎤=Λ-⎣⎦∑ (2.14)其中()k Λ是加权因子,它衡量的是采样数据的可信度,这里对数据的可信度难以肯定,就简单的将取()1k Λ=。

将准则函数写成二次型的形式如式2.15。

()()()TL L L L J Y H Y H θθθ=-- (2.15)设wls θ∧使得()|min wls J θθ=()()()||0T T L L L L wls wls J Y H Y H θθθθθθθ∧∧∂∂=--=∂∂ (2.16) 利用下面的两个向量微分公式展开得()()2T TT T x xx Ax x A x αα∂⎧=⎪⎪∂⎨∂⎪=⎪∂⎩(2.17) 其中A 是对称阵,得到正则方程()TTwls LL L L HH H Y θ∧= (2.18)当TL L H H 为正定矩阵时,有:()1T Twls L L L L H H H Y θ∧-= (2.19)从而()22|20wlsTL L J H H θθθ∧∂=>∂ (2.20) 结合式2.16到2.20知,wls θ∧使()|min wls J θθ=,并且wls θ∧是唯一的。

从而求得最小二乘估计值 ()1T T LS LLL L H H H Y θ∧-= (2.21)定阶:系统的等价线性模型的阶次确定可以基于AIC 准则来确定,首先将系统写成如式2.7的形式。

输出变量在n θ条件下的似然函数为:()()()22212exp 2L T n n n n n n n L Y H Y H θπσθθσ-∧∧⎧⎫⎛⎫⎪⎪=---⎨⎬ ⎪⎝⎭⎪⎪⎩⎭(2.22) 对应的对数似然函数为:()()()()221ln ln 2ln 222Tn n n n n n n n L L L l Y H Y H θθπσθθσ∧∧==----- (2.23) 其中L 是数据长度,根据极大似然原理得到模型参数θ及白噪声()k ε方差的极大似然估计值如下:()121T TML n n n n T ML ML n n n n H H H Y Y H Y H L θσθθ∧-∧∧∧⎧=⎪⎪⎨⎛⎫⎛⎫⎪=-- ⎪ ⎪⎪⎝⎭⎝⎭⎩(2.24) 将ML θ∧与2σ∧回代式2.23可得:2ln 2ML L l const θσ∧∧⎛⎫=- ⎪⎝⎭(2.25)AIC 准则的标准式为:2ln 2ML AIC N L N θ∧∧∧⎛⎫⎛⎫=-+ ⎪ ⎪⎝⎭⎝⎭(2.26)将式2.25代入AIC 准则的标准式2.26中得到:2ln 4AIC n L n σ∧∧∧⎛⎫=+ ⎪⎝⎭(2.27)上面各式中n ∧表示的就是模型要估计的阶次,最后找到使min AIC n ∧⎛⎫= ⎪⎝⎭的n ∧作为模型的阶次。

本次辨识采样的数据长度1000L =, 很显然2σ∧足够小,当数据长度取定时,显然n ∧可以尽可能的小,暂且取n ∧=4。

仿真分析:图5 定4阶情况下系统的辨识效果图6 定4阶情况下更换输入为原来的14情况下系统的辨识效果图7 定4阶情况下更换输入为原来的4倍情况下系统的辨识效果图5与图6及图7中分别给出了定4阶情况下的系统利用最小二乘法辨识的结果,图5中的辨识效果在幅值上出现减小,有一定的误差,但基本可以与原系统同步,为了检验模型的泛化性,在MATLAB编程过程中,将输入信号减小为原来的14以及增大为原来的4倍,图6中得到了较好的辨识效果,但图7却进一步增大幅度误差,从这里看出所辨识模型的泛化性并不好,即随着输入信号的增大,模型与系统的幅度差值增大。

相关文档
最新文档