当前位置:文档之家› 系统全参数辨识+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 )和()[()()](1)TP k I K k k P k ϕ=-- ②(1)()()1()(1)()T P k k K k k P k k ϕϕϕ-=+- ③(3)程序流程图 (如右图1所示)递推最小二乘法(RLS )步骤如下: 已知:a n 、b n 和d 。

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

图1 程序流程图(4) Matlab 仿真程序、输出参数估计值、参数估计变化轨迹图像、结果分析仿真程序如下:X=[1.01 2.03 3.02 4.01 5 6.02 7.03 8.04 9.03 10];Y=[9.6 4.1 1.3 0.4 0.05 0.1 0.7 1.8 3.8 9.0];%实验输入数据、实验输出数据syms a b c % 定义待辨识参数theta=[a;b;c]; %theta包含待辨识参数a,b,c theta1=zeros(3,1); %对象参数初始化P=10^6*eye(3) %构造初始P阵for k=1:10 %仿真步长范围1到10phi=[X(k)*X(k);X(k);1];%y=aX*X+bX+c=phi'*theta%theta=[a;b;c];phi=[X(k)*X(k);X(k);1] K=P*phi/(1+phi'*P*phi); %递推最小二乘法K阵的递推公式theta=theta1+K*(Y(k)-phi'*theta1); %theta的递推公式P=(eye(3)-K*phi')*P; %递推最小二乘法P阵的递推公式theta1=theta; %theta的最终估计向量theta2(:,k)=theta; %theta估计向量矩阵化,目的是为了%下面的plot仿真图像输出endtheta1 %输出参数估计值plot([1:10],theta2) %输出参数逐步递推估计的轨迹图像xlabel('k'); %设置横坐标为步长k ylabel('参数估计a,b,c'); %纵坐标为估计参数a,b,c legend('a','b','c'); %标示相应曲线对应的参数axis([1 10 -10 20]); %设置坐标轴范围P =1000000 0 00 1000000 00 0 1000000输出参数估计值、参数估计变化轨迹图像:theta1 =0.4575-5.073413.371112345678910-10-55101520k参数估计a ,b ,c图 2 参数估计逐步变化轨迹图像结果分析:通过matlab 仿真可知,由递推最小二乘法辨识到的参数为:a=0.4575;b=-5.0734;c=13.3711所以Y=0.45752X -5.0734X+13.3711 。

通过输入输出的数据验算,模型参数a ,b ,c 的递推最小二乘估计在误差允许的范围内基本符合要求。

从上面参数估计逐步变化轨迹图像看出,参数a ,b ,c 的递推估计曲线变化比较明显,曲线也不够平滑,这可能是由于题目只给出了10组实验输入输出数据,数据长度不算大,导致了参数估计的误差增大和估计精度不够高。

2 怎样入门MATLAB经过多年的发展MATLAB的功能相当强大,积聚了当今世界上各行各业的顶级人士的精华。

要学好、用好MATLAB不是短期所能为的。

当然,要快速掌握它还是比较轻松的。

大致可以分为一下几个阶段。

2.1 MATLAB基本操作这个阶段的目的在于掌握M文件和M函数的编写,掌握MATLAB的语法规则。

对任何一门程序的掌握都是通过掌握该程序的语法来完成的。

语句的表达对于任何语言都是一样的,如:x+y,x^2,sqrt(x)等等,所以重点是掌握语言三种结构的描述方法:顺序结构、分支结构和循环结构。

只要知道了程序是怎么顺序执行的(有没有标号、结束时用分号还是不用还是逗号)、分支结构中的if语句和switch语句和循环结构中的for语句和while语句是怎么执行的,知道子程序的结构,那么你就基本掌握该语言了,至于类呀什么的,用到的时候再学。

在该阶段对于学习MATLAB比较好的书大致有[1] 张平.MATLAB基础应用简明教程[M].北京:航空航天大学,2001.TP213MA/Z278[2] 林雪松等.MATLAB7.0应用集锦[M].北京:机械工业出版社,2005.9. TP213MA/L534[3] 姚俊等.simulink建模与仿真[M].西安:西安电子科技大学,2002.8. TP213MA/Y2372.2 提高阶段当学了一种语言后,重在应用,不用很快就会生疏的。

这时,可以看看别人是怎么应用MATLAB来解决实际问题的,同时也学到了分析问题、解决问题的能力,以后用得到的。

可以看的书大致有[1] 胡守信等.基于MATLAB的数学实验[M].北京:科学出版社,2004. TP213MA/H499主要侧重于基本介绍。

[2] 刘福来等译.用Maple和MATLAB解决科学计算问题[M].高等教育出版社/施普林格出版社,1999.5. TP213MA/G144相对于对常微分方程描述较详细。

[3] 曾建军.MATLAB语言与数学建模[M].合肥:安徽大学出版社,2005.6. TP213MA/Z173 涉及的面多一些,在看完前两本后,可适当加强。

2.3 精通MATLABMATLAB包含的学科领域很广,包括的工具箱很多,对电气学科可能比较有用的工具箱大致有:神经网络工具箱、小波分析工具箱、模糊工具箱、控制工具箱、遗传算法、支持相量机工具箱、随机微分方程工具箱等等。

大致可以看以下的书籍[1] 陈永春.MATLABM语言高级编程[M].北京:清华大学出版社,2003. TP213MA/C354-2可只看GUI界面设计部分,是设计GUI入门好书。

[2] 邱晓林.基于MATLAB的动态模型与系统仿真工具—Simulink3.0/4.x[M].西安:西安交通大学出版社,2003.10.TP391.9/Q376该书有Simulink各个模块的使用说明,是学Simulink时的重要参考书。

[3] 黄永安,马路.MATLAB7.0/Simulink6.0建模仿真开发与高级工程应用[M].北京:清华大学出版社,2005.12.TP391.9/H686S函数是使用Simulink的最高境界,只需看本书对应的一章即可,只十几页。

2.4 参考书籍以下这些书籍是使用过程中的参考书,不必吃透,之后用到时翻翻,可能会提高程序代码的效率,编写出很多实用简洁的算法程序。

把它们当英语字典一样用就可以了。

《精通MATLAB7》或《精通MATLAB6》等等《MATLAB函数库查询辞典》3 MATLAB的一些使用算法参考书籍以下这些书籍中有当今很流行、很热门的算法的原始代码,程序都不长,很容易掌握,并为自己所用。

[1] 刘金琨.先进PID控制与MATLAB仿真[M].北京:电子工业出版社,2003.1.TP273/L587.2该书是使用程序设计控制算法最好的书籍(个人认为),并且该书还包括了各种实用、流行且很热的算法,比如:遗传算法、模糊、神经网络算法的基础原始程序,是学习这些算法编程的最佳选择。

[2] 刘金琨.滑模变结构控制与MATLAB仿真北京清华大学出版社,2005.10.TP273/L587.2-2主要涉及各种滑模控制,S函数与Simulink仿真,各种神经网络控制。

[3] 薛定宇.控制系统计算机辅助设计MATLAB语言与应用(2版)[M].北京:清华大学出版社,2005.7.TP273/X516a该书被一直被认为是控制理论仿真最好的书籍,设计的东东有神经网络PID的S函数仿真、遗传算法、最小二乘在线辨识等等。

[4] 雷英杰.MATLAB遗传算法工具箱及应用[M].西安:西安电子科技大学,2005.4.TP18/L259该书是英国谢菲尔德大学版遗传算法工具箱的中文版使用说明,该工具箱是使用最广泛的遗传算法工具箱,并有很多测试实例。

可以很快嵌套到自己的项目中。

[5] 张晓华.系统建模与仿真[M].北京:清华大学出版社,2006.12.N945.12/Z285实用标准文案该书教你如何从最初的物理模型出发,抽象出数学模型,并最总用Simulink仿真,实例表述清晰各个案例都可以自己重现出来。

学完该书后,任何建模仿真的问题都不会称为问题。

[6] 宋来忠等.数学建模与实验[M].北京:科学出版社,2005.O141.4/S736这是一本数模的基础书,但是很多例子很实用,还是列在这里供参考。

包括:假设检验、层次分析、整数规划等等,讲得很浅显、通俗,但很实用。

精彩文档。

相关主题