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

时间:2022-09-16 07:10:05

基于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 q^-1+0.691 q^-2

B(q)=0.9245 q^-1+0.4155q^-2

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 q^-1+0.7088 q^-2

B(q)=0.9307 q^-1+0.4477 q^-2

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.

作者简介:李娜(1989―),女,山西长治人,中北大学信息与通信工程学院控制理论与控制工程专业在读研究生,研究方向:系统建模与仿真技术。

上一篇:一种远距离发动机地面测试系统 下一篇:基于传感器置信度的列车组合定位信息融合算法