系统辨识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章模型参考自适应控制

[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;参数辨识;最小二乘法;辅助变量法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仿真系统辨识是一门评估和改进系统性能的研究领域,它利用外部观测数据对系统进行建模,使用这种模型来识别系统行为以及建议改进措施。
它结合了计算机科学、工程学、统计学和应用数学等多种学科的方法。
系统辨识的方法可以用于分析机器人系统、有限元素模型、分散系统和非线性系统等。
系统辨识理论是现代工程中最重要的技术,它能够有效地分析和模拟系统,以解决重大工程挑战。
系统辨识理论的基础可以回溯到20世纪40年代,当时大量研究的重点在于控制系统的设计与形成。
随着进步,它拓展到多种应用,其中包括一般系统建模和优化,以及系统健康监测,智能控制系统,复杂过程建模等等。
Matlab是一种基于矩阵的编程语言,它可以提供强大的工具来支持系统辨识理论的应用。
利用Matlab,可以非常方便地实现模型建模、数据处理、数值求解以及可视化等功能。
此外,它还提供了大量预定义函数,可以极大地简化系统辨识理论中所需要实现的功能,如参数估计、优化、数据验证等。
系统辨识理论和Matlab仿真在工程实践中应用十分广泛,其中最值得一提的有:(1)机器人控制:利用系统辨识理论和Matlab仿真,可以对机器人运动特性进行模型建模,并实现复杂的运动控制;(2)流体动力学:利用系统辨识理论和Matlab仿真,可以对流体动力学进行建模和模拟,以便改善和优化系统性能;(3)模糊控制:利用系统辨识理论和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程序注释与剖析

第二部分程序注释及运行结果读者须知:为了便于读者理解,现将光盘上第一部分可直接在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实现

实用标准文案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进行系统辨识与模型建模,并探讨其在实际应用中的意义和局限性。
一、系统辨识的基本原理1.1 系统辨识的概念及意义系统辨识是指通过对已有数据的分析和处理,建立描述该系统行为的数学模型的过程。
在实际应用中,系统辨识可以帮助我们了解系统的结构和特性,预测系统的行为,并为系统控制、优化提供依据。
1.2 系统辨识的方法系统辨识的方法主要包括参数辨识和结构辨识两种。
参数辨识是指通过拟合已知数据,确定数学模型中的参数值的过程。
常用的参数辨识方法有最小二乘法、极大似然估计法等。
结构辨识是指通过选择适当的模型结构和参数化形式,使用已知数据确定模型结构的过程。
常用的结构辨识方法有ARX模型、ARMA模型等。
二、MATLAB在系统辨识中的应用2.1 数据准备与预处理在进行系统辨识之前,我们首先需要准备好相关的数据。
数据的质量和数量对系统辨识的结果有着重要的影响,因此在数据准备阶段应尽量确保数据的准确性和完整性。
MATLAB提供了丰富的数据处理和分析函数,可用于数据预处理、数据清洗、数据归一化等操作,以提高数据的质量和可用性。
2.2 参数辨识的实现参数辨识是系统辨识的重要步骤之一,其主要目标是通过适当的数学模型拟合已知数据,确定模型中的参数值。
在MATLAB中,我们可以使用curve fitting工具箱中的函数,如fit、cftool等,来进行参数辨识的实现。
同时,MATLAB还提供了最小二乘法等常用的参数辨识算法,方便我们根据实际需求进行选择和应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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却进一步增大幅度误差,从这里看出所辨识模型的泛化性并不好,即随着输入信号的增大,模型与系统的幅度差值增大。