基于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建模和辅助变量法建模,并比较两种方法得到的脉冲响应。

程序:
clf;
A=[1 -0.5 0.7];B=[0 1 0.5];
tho=poly2th(A,B)
u=idinput(300,’rbs’);
y=idsim([u,randn(300,1)],tho);
z=[y u];
ir=iv4(z,[2 2 1])
Discrete-time IDPOLY model:A(q)y(t)=B(q)u(t)+e(t)A(q)=1-0.5328 q1+0.691 q2
B(q)=0.9245 q1+0.4155q2
Estimated using IV4 from data set z
Loss function 1.04941 and FPE 1.07777
Sampling interval:1
th=arx(z,[2 2 1])
Discrete-time IDPOLY model:A(q)y(t)=B(q)u(t)+e(t)A(q)=1-0.4918 q1+0.7088 q2
B(q)=0.9307 q1+0.4477 q2
Estimated using ARX from data set z
Loss function 1.03855 and FPE 1.06662
Sampling interval:1
imp=[1;zeros(19,1)];
irth1=idsim(imp,ir);
irth=idsim(imp,th);
plot(irth1)
hold on
plot(irth,’r’)
title(‘impulse responses’)
系统仿真图如图2所示。

利用GUI图形用户界面进行辨识,如图3所示:
图3 GUI for identification
在Import输入输出数据后就可以在主界面的Estimate下拉列表中选择Parame-terMpdels命令进入模型辨识界面.在模型辨识界面可以进行模型选择,模型阶次的选择,当选择好参数后进行Estimate,得到辨识结果(如图4、图5所示):
图4 辨识结果
图5 辨识结果
可以看到辨识结果同直接输入命令得到的结果相同,原因在于图(下转封三)(上接第199页)形界面调用的命令和程序代码调用的命令是一样的。

3.2 参数模型辨识
对时间序列:
分别采用最小二乘法估计、辅助变量法进行AR模型估计,并绘制频谱图.式中为有色噪声。

程序:
v=randn(501,1);
y=sin([1:500]’*1.2)+sin([1:500]’*1.5)+0.2*v([1:500’])+0.1*v([1:500]);
thiv=ivar(y,4);
thls=ar(y,4);
giv=th2ff(thiv);
gls=th2ff(thls);
figure(1)
bodeplot(gls,’--’)
hold on
bodeplot(giv,’r’)
系统仿真图为:
图6 系统仿真图
4.结论
通过介绍系统辨识基本理论,最小二乘辨识和辅助变量辨识方法。

利用MTALAB系统辨识工具箱进行了实例仿真,通过两种不同的方法得到了相同的辨识结果。

引用的例子辨识结果较好,如果改变模型参数,辨识精度将会受影响,辨识结果受模型结构以及噪声的影响较为严重,具体内容不在本文内容研究之内。

在具体辨识时要根据具体情况采用不同的方法。

参考文献
[1]潘立登,潘仰东.系统辨识与建模[M].北京:化学工业出版社.
[2]齐晓慧,黄建群,董海瑞,杨志军.现代控制理论及应用[M].北京:国防工业出版社.
[3]郑征,田书.基于Matlab的辅助变量法参数辨识与仿真[J].计算机应用与软件,2004,21(7):127-129.
[4]齐晓慧,田庆民,董海瑞.基于Matlab系统辨识工具箱的系统建模[J].兵工自动化,2006,25(10):88-90.
[5]刘数军,盖晓华,樊京,崔世林.MATLAB7.0控制系统应用与实例[M].北京:机械工业出版社,2006.。

合集下载

最小二乘参数辨识的matlab仿真程序注释与剖析

最小二乘参数辨识的matlab仿真程序注释与剖析

最小二乘一次完成算法的MATLAB 仿真 例2-1 考虑仿真对象)()2(5.0)1()2(7.0)1(5.1)(k v k u k u k z k z k z +-+-=-+-- (2-1)其中,)(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 +-+-=-+-+ (2-2)设输入信号的取值是从k =1到k =16的M 序列,则待辨识参数LS θˆ为:LSθˆ=L τL 1L τL z H )H H -( (2-3)其中,被辨识参数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(2-4)例2-1程序框图如图2.1所示:例2-1Matlab仿真程序如下:%二阶系统的最小二乘一次完成算法辨识程序,文件名: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、b2LS%End例2-1程序运行结果: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 =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.19490.9386 -1.0000 1.00004.63523.1949 -1.0000 -1.00006.21654.6352 1.0000 -1.00005.58006.2165 1.0000 1.0000(14*4)ZL =[ 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]T (14*1)c =[ -1.5000,0.7000,1.0000,0.5000]Ta1 = -1.5000 a2 = 0.7000 b1 = 1.0000 b2 =0.5000-101-10010-10010对比:)()2(5.0)1()2(7.0)1(5.1)(k v k u k u k z k z k z +-+-=-+-- (2-1) 可以看出,由于所用的输出观测值没有任何噪声成分,所以辨识结果无任何误差。

系统辨识与自适应控制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 实现

实用标准文案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 时刻的最小二乘估计可以表示为k T k Y k P k Φ=)()(ˆθ=)]()()[(11k y k Y k P k T k ϕ+Φ-- =)]1(ˆ)()()[()1(ˆ--+-k k k y k K k Tθϕθ;式中)()()(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系统辨识尝试之详细过程1

Matlab系统辨识尝试之详细过程1

Matlab系统辨识尝试之详细过程1前面介绍了Matlab系统辨识工具箱的一些用法,这里拿一个直观的例子来尝试工具箱的具体用法。

比较长,给个简单目录吧:1.辨识的准备2.辨识数据结构的构造3.GUI辨识4.辨识效果5.对固有频率的辨识6.结构化辨识7.灰箱辨识8.加入kalman滤波的灰箱辨识1.辨识的准备在辨识前,首先要根据自己辨识的情况,确定要辨识的状态空间模型的一些特点,如连续还是离散的;有无直通分量(即从输入直通到输出的分量);输入延迟;初始状态等。

了解了这些情况就可以更快速的配置辨识时的一些设置选项。

2.辨识数据结构的构造使用原始数据构造iddata结构:data=iddata(y,u,Ts);这里以一个弹簧质量系统的仿真为例代码如下,其中用到了函数MDOFSolve,这在之前的博文介绍过(/?p=183),拿来用即可。

如果发现运行有错误,可以将MDOFSolve函数开头的一句omega2=real(eval(omega2));注释掉。

%弹簧质量系统建模clcclearclose allm=200;k=980*1000;c=1.5*1000;m1=1*m;m2=1.5*m;k1=1*k;k2=2*k;k3=k1;%%由振动力学知识求固有频率M=[m10;0m2];K=[k1+k2-k2;-k2k3+k2];[omega,phi,phin]=MDOFSolve(M,K);fprintf('固有频率:%fHz\n',subs(omega/2/pi));%%转化到状态空间innum=2;outnum=2;statenum=4;A=[0100;-(k1+k2)/m10k2/m10;0001;k2/m20-(k3+k2)/m20];B=[00;1/m10;00;01/m2];C=[1000;0010];D=zeros(outnum,innum);K=zeros(statenum,innum);mcon=idss(A,B,C,D,K,'Ts',0);%连续时间模型figureimpulse(mcon)%%信号仿真,构造数据供辨识n=511;%输入信号长度Ts=0.001;t=0:Ts:(n-1)*Ts;u1=idinput(n,'prbs');%输入1为伪随机信号u2=zeros(n,1);%输入2为空u=[u1u2];simdat=iddata([],u,Ts);%形成输入数据对象e=randn(n,2)*1e-7;simopt=simOptions('AddNoise',true,'NoiseData',e);%添加噪声yn=sim(mcon,simdat,simopt);%加噪声仿真y=sim(mcon,simdat);%无噪声仿真figurefor i=1:outnumsubplot(outnum,1,i)plot(t,y.OutputData(:,i))hold onplot(t,yn.OutputData(:,i),'r')axis tighttitle(sprintf('输出%d',i))legend({'无噪声仿真','含噪声仿真'})end%保存输入输出数据,供后续辨识data=iddata(y.OutputData,simdat.InputData,Ts);datan=iddata(yn.OutputData,simdat.InputData,Ts);运行后,变量data中保存了无噪声的系统仿真输入输出数据,datan中为含噪声的仿真数据。

(完整版)系统全参数辨识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软件中的一个工具箱,用于进行系统辨识和模型建模的分析。

该工具箱提供了多种辨识算法和工具,可以对线性和非线性系统进行辨识,并生成对应的数学模型。

下面将为您详细介绍MATLAB系统辨识工具箱的学习过程。

首先,在使用MATLAB系统辨识工具箱前,需要安装MATLAB软件并具备一定的MATLAB编程基础。

如果您还没有安装MATLAB或者对MATLAB不够熟悉,建议您先进行相关的学习和了解。

1.学习基本概念:在开始学习MATLAB系统辨识工具箱之前,需要了解一些基本概念,例如系统辨识、模型建模、参数估计等。

可以通过阅读相关的系统辨识的教材或者进行在线,对相关概念有一个基本的了解。

2.熟悉MATLAB系统辨识工具箱界面:3.数据导入:在进行系统辨识之前,首先需要准备好系统辨识所需的数据。

数据可以是实验数据或者仿真数据,可以是时域数据或者频域数据。

在系统辨识工具箱界面的“数据导入”区域,可以将数据导入到MATLAB中进行后续的辨识分析。

4.选择模型类型:在进行系统辨识之前,需要选择适合的数学模型类型。

MATLAB系统辨识工具箱提供了多种常见的模型类型,包括ARX模型、ARMAX模型、OE模型、TFE模型等。

选择合适的模型类型对辨识结果的精度和准确性有重要的影响。

5.选择辨识算法:在选择模型类型后,需要选择合适的辨识算法进行参数估计和模型建模。

MATLAB系统辨识工具箱提供了多种常用的辨识算法,例如最小二乘法、极大似然法、递推最小二乘法等。

选择合适的辨识算法也对辨识结果的精度和准确性有重要的影响。

6.进行系统辨识:在选择了合适的模型类型和辨识算法后,可以在系统辨识工具箱界面中点击“辨识”按钮,开始进行系统辨识分析。

系统辨识工具箱会根据所选的模型类型和辨识算法,对输入的数据进行参数估计和模型建模,并生成相应的辨识结果。

7.结果分析和评估:在系统辨识完成后,可以在系统辨识工具箱界面中查看辨识结果和模型质量评估。

MATLAB控制系统的仿真


C R
x1 x2
0 1
L
u
L
y [1
0]
x1 x2
[0]u

x Ax bu
y CT x du
• 没有良好的计算工具前:系统建立、变换、分析、设 计、绘图等相当复杂。
• MATLAB控制系统软件包以面向对象的数据结构为基 础,提供了大量的控制工程计算、设计库函数,可以 方便地用于控制系统设计、分析和建模。
Transfer function:
s+1 ------------s^2 + 5 s + 6
Matlab与系统仿真
22
应用——系统稳定性判断
系统稳定性判据: 对于连续时间系统,如果闭环极点全部在S平面左半平面,
则系统是稳定的;
若连续时间系统的全部零/极点都位于S左半平面, 则系统是——最小相位系统。
Matlab与系统仿真
38
4.2 动态特性和时域分析函数
(一)动态特性和时域分析函数表 (二)常用函数说明 (三)例子
Matlab与系统仿真
39
(一)动态特性和时域分析函数表 ——与系统的零极点有关的函数
表8.6前部分p263
Matlab与系统仿真
40
——与系统的时域分析有关的函数
Matlab与系统仿真
Matlab与系统仿真
8
4.1 控制工具箱中的LTI对象
Linear Time Invariable
(一)控制系统模型的建立 (二)模型的简单组合 (三)连续系统和采样系统变换(*略)
Matlab与系统仿真
9
(一)控制系统模型的建立
➢ MATLAB规定3种LTI子对象:
• Tf 对象—— 传递函数模型 • zpk 对象—— 零极增益模型 • ss 对象—— 状态空间模型

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

必须要指出的是,本文研究对象是经典控制论理最简单最常用的线性时不变的siso系统,而且是2阶的哦,也就是具有如下形式的传递函数:本文要做的就是,对于有这样传递函数的一个系统,要辨识得到其中的未知数T,ξ!!这可是控制系统设计分析的基础哦,没有系统模型,啥理论、算法都是白扯,在实际工程中非常重要哦!经过总结研究,在得到系统阶跃响应实验数据之后(当然如果是其他响应,也有办法可以辨识,在此还是只讨论最简单的阶跃响应实验曲线,谁让你我是菜鸟呢),利用matlab至少可以有两种方法实现实现(目前我只会两种,呵呵)!一、函数法二、GUI系统辨识工具箱下面分别作详细介绍!一、 函数法看官别着急,先来做一段分析(请看下面两排红*之间部分),这段分析是网上找来的,看看活跃一下脑细胞吧,如果不研读一下,对于下面matlab 程序,恐怕真的就是一头雾水咯!*******************************************************************************G(s)其中,则有:传递函数进一步化为:当输入为单位阶跃函数时,对上式进行拉普拉斯反变换,得系统时域下的单位阶跃响应为:即该式的形式满足直线方程其中,通过最小二乘算法实现直线的拟合,***************************************************Matlab程序代码:clcclose allt=[1 3 5 7 9 11 13 15 17 19];y=[0.149086 0.5890067 0.830617 0.933990 0.973980 0.991095 0.995868 0.998680 0.999490 0.999850];y2=log(1-y);plot(t,y2,'*');grid onpm=polyfit(t,y2,1)value=polyval(pm,t);hold onplot(t,value,'r')title('\fontname{黑体}\fontsize{20}y(t)=at+b')w2=-pm(1)w1=w2/(1-exp(-pm(2)))T=1/sqrt(w1*w2)theta=(w1+w2)/(2*sqrt(w1*w2))z=[];p=[-w1 -w2];k=w1*w2;sys=zpk(z,p,k)figure(2)step(sys,[0:0.5:20]);axis([0 20 0 1.2])hold onplot(t,y,'r*')打开matlab,新建一个Function,把上述程序段拷进去,保存,运行~~~~~~~~~,运行结果:系统的传递函数为)4797.0)(126.1(54034.0)(++=S S S G很顺利吧?先高兴一个!问题接着马上就来了,上面这个例子,这个传递函数的极点刚好都是负实数,因此辨识得很顺利,但是如果系统是欠阻尼系统,也就是如果传递函数的根是复数,那么上述函数段,就无能为力咯,会出现说“matlab 无法处理增益为复数情况之类······” 例如)1)(1(2)(j S j S S G -+++=对于这个系统,若果用simulink 做一下阶跃响应,再把实验数据代入上述函数段,那就不行咯!怎么办呢,只能另辟蹊径了!二、(System Identification Tool)系统辨识工具箱早听说matlab博大精深,神通广大了,于是乎我确定肯定有更简单、直观、强大的工具来完成这小儿科把戏。

系统辨识及其MATLAB仿真

必须有一个对辨识所得到模型的验证评价
对辨识所得到模型的验证是系统辨识的重要环节。验证的目的是为了确定该 模型是否是模型集中针对当前观测数据的最佳选择。验证的方法主要有
利用先验知识验证,即根据对系统已有的知识来判断模型是否实用。 利用数据检验。当利用一组数据辨识得到一个模型之后,通常希望用另 一组未参与辨识的数据检验模型的适用性。如果检验结果失败,可能存在的问题 是:辨识所用的一组数据包含的信息不足或所选模型类不合适。另外,也可以用同
图表模型。它以图形或表格的形式来表现过程的特性。如阶跃响应、脉 冲响应和频率响应等,也称非参数模型。
数学模型 。它用数学结构的形式来反 映实际过程的行为特性 。常用的有 代 数 方 程、微 分 方 程、差 分 方 程 和 状 态 方 程 。
经济学上的
产生关系模型(代数方程)
式中, 为产值; 为劳动力; 为资本。 微分方程
入输出模型或状态空间模型、确定性模型或随机模型、线性模型或非线性模型等。
模型类的规定是根据人们对实际系统的了解以及建立模型的目的设定的。规定了
模型类后,再由输入输出数据按结构辨识的方法确定系统的结构参数,并且用参数
辨识的方法辨识系统的参数。
根据定义,我们所建立的模型必须与被测系统在某种意义上是等价的。
第 4 页
设 表示被测系统的一个模型,并且满足
是具有某种属性的模型类。一个系统可看做是从系统允许的输人空间 到输
出空间 的一个算子 相当于对象
属于某个算子类 。系统辨识的问题
是指对于一个给定的算子类 和一个对象
,确定一个模型类 及它的一
个元素
可以认为 是 的一个子集),使得 尽可能的逼近 。在 实
用已知的运动机理和经验确定系统的结构和参数(即确定模型)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档