系统参数辨识+matlab+实现.wps资料文档下载
《系统参数辨识+matlab+实现.wps资料文档下载》由会员分享,可在线阅读,更多相关《系统参数辨识+matlab+实现.wps资料文档下载(4页珍藏版)》请在冰豆网上搜索。
(2)参数估计原理
(2)参数估计原理对该模型参数辨识采用递推最小二乘法,即RLS(recurisiveleastsquare),它是一种能够对模型参数进行在线实时估计的辨识方法。
其基本思想可以概括为:
新的估计值)(k=旧的估计值)1(k+修正项下面将批处理最小二乘法改写为递推形式即递推最小二乘参数估计的计算方法。
批处理最小二乘估计为为YTT1)(,设k时刻的批处理最小二乘估计为:
kTkkTkY1)(令令111)1()()1()()(kkkPkPTkTkK时刻的最小二乘估计可以表示为kTkYkPk)()(=)()()(11kykYkPkTk=)1()()()()1(kkkykKkT;
式中)()()(kkPkK,因为要推导出P(k)和K(k)的递推方程,因此这里介绍一下矩阵求逆引理矩阵求逆引理:
设A、(A+BC)和(I+BCA1)均为非奇异方阵,则111111)()(CABCAIBAABCA通过运用矩阵求逆引理,把复杂的矩阵求逆转化为标量求倒数,大大减小了计算量。
1NP与NP间的递推关系。
最终得到递推最小二乘参数递推估计公式递推估计公式如下:
()
(1)()()()
(1)TkkKkykkk()()()
(1)TPkIKkkPk开始初始化输入输出数据采样、处理由式递推公式计算K(k)、P(k)、kk+1()k(3)程序流程图(3)程序流程图(如右图1所示)递推最小二乘法(RLS)步骤如下:
已知:
an、bn和d。
Step1:
设置初值)0(和P(0),输入初始数据;
Step2:
采样当前输出y(k)、和输入u(k)Step3:
利用上面式计算)(kK、)(k和)(kP;
Step4:
kk+1,返回step2,继续循环。
图1程序流程图程序流程图(4)Matlab仿真程序、输出参数估计值、Matlab仿真程序、输出参数估计值、参数估计变化轨迹图像、结果分析参数估计变化轨迹图像、结果分析仿真程序如下:
仿真程序如下:
X=1.012.033.024.0156.027.038.049.0310;
Y=9.64.11.30.40.050.10.71.83.89.0;
%实验输入数据、实验输出数据symsabc%定义待辨识参数theta=a;
b;
c;
%theta包含待辨识参数a,b,ctheta1=zeros(3,1);
%对象参数初始化P=106*eye(3)%构造初始P阵fork=1:
10%仿真步长范围1到10phi=X(k)*X(k);
X(k);
1;
(1)()()1()
(1)()TPkkKkkPkk%y=aX*X+bX+c=phi*theta%theta=a;
b;
c;
phi=X(k)*X(k);
1K=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);
%设置横坐标为步长kylabel(参数估计a,b,c);
%纵坐标为估计参数a,b,clegend(a,b,c);
%标示相应曲线对应的参数axis(110-1020);
%设置坐标轴范围P=100000000010000000001000000输出参数估计值、参数估计变化轨迹图像:
输出参数估计值、参数估计变化轨迹图像:
theta1=0.4575-5.073413.3711图图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组实验输入输出数据,数据长度不算大,导致了参数估计的误差增大和估计精度不够高。
12345678910-10-505101520k参数估计a,b,cabcabc