首页 理论教育 MATLAB实现最优观测器(Kalman滤波)效果优化

MATLAB实现最优观测器(Kalman滤波)效果优化

时间:2023-06-18 理论教育 版权反馈
【摘要】:对于连续时不变系统,其状态方程与量测方程分别为系统的Kalman滤波器就是最优观测器。利用Kalman滤波器对系统进行最优控制是非常有效的。由图15-10可见,经Kalman滤波后,系统闭环单位阶跃给定响应是非常理想的,仿真曲线为几乎立即响应的阶跃方波,只稍微有一点点超调,尔后曲线趋于水平。图15-10 经Kalman滤波后的单位阶跃响应曲线

MATLAB实现最优观测器(Kalman滤波)效果优化

对于连续时不变系统,其状态方程与量测方程分别为

978-7-111-42163-4-Part01-2341.jpg

系统的Kalman滤波器就是最优观测器。利用Kalman滤波器对系统进行最优控制是非常有效的。MATLAB系统特别开发有求解Kalman滤波器的函数kalman()。函数调用格式为

[Kest,L,P]=kalman(sys,Q,R,N)

其中,输入参数sys为连续或离散系统带扰动的状态空间模型978-7-111-42163-4-Part01-2342.jpg,当模型有两个输入时,978-7-111-42163-4-Part01-2343.jpg978-7-111-42163-4-Part01-2344.jpg;Q为模型噪声的协方差矩阵;R为量测噪声的协方差矩阵;N为可选项,它对应模型噪声与量测噪声的相关项。输出参数Kest为Kalman滤波器的状态估计器,其动态方程为

978-7-111-42163-4-Part01-2345.jpg

978-7-111-42163-4-Part01-2346.jpg

式中,L为Kalman滤波器的增益矩阵;P为对应的Riccati方程的解,即估计误差的协方差。MATLAB还提供过两个配合使用的函数lqe()与estim()来求解系统的Kalman滤波器。

函数lqe()的调用格式为

[L,P,E]=lqe(A,G,C,Q,R,N)

其中,输入参数A、G、C为式(15-1)与式(15-2)中的对应参量;Q为模型噪声的协方差矩阵;R为量测噪声的协方差矩阵;N为可选项,它对应模型噪声与量测噪声的相关项。输出参数L为Kalman滤波器的增益矩阵;P为对应的Riccati方程的解,即估计误差的协方差;E为估计器的闭环特征值。函数estim()的调用格式为

est=estim(sys,L)

这个函数用来生成连续系统的Kalman滤波器,即系统的状态估计器est。输入参数sys为连续系统带扰动的状态空间模型,输入参数L为函数lqe()求出的Kalman滤波器的增益矩阵。

对于连续系统,用函数kalman()计算的Kalman滤波器的状态估计器Kest与用函数es-tim()求出的Kalman滤波器est,两者应相等。

【例15-5】 已知单位负反馈连续系统受控对象与串联校正装置的传递函数

978-7-111-42163-4-Part01-2347.jpg

设模型噪声协方差矩阵Q=1、量测噪声协方差矩阵R=0.01,试求系统Kalman滤波器增益矩阵L、系统估计误差协方差P以及系统的Kalman(最优)滤波器。

解:给出调用系统函数kalman.m与estim.m的MATLAB程序求解。(www.xing528.com)

clear;n1=[002500];d1=[1250];sys1=tf(n1,d1);G1=ss(sys1);

n2=[0.21430.134];d2=[10.134];sys2=tf(n2,d2);G2=ss(sys2);

G3=G1∗G2;G=feedback(G3,1);q=1;r=0.01;

[Kest,L,P]=kalman(G,q,r),est=estim(G,L),

程序运行后得到系统Kalman滤波器的增益矩阵978-7-111-42163-4-Part01-2348.jpg、系统估计误差的协方差978-7-111-42163-4-Part01-2349.jpg,计算表明,用函数kalman.m计算的Kalman滤波器的状态估计器Kest与用函数estim.m求出的Kalman滤波器est是相等的。

【例15-6】 续【例15-3】,已知可控直流电源供电给直流电机的系统结构图如图15-5所示。试对系统进行Kalman滤波器的设计并对经Kalman滤波后的系统闭环进行阶跃响应仿真。

解:给出调用自编函数lqkalm.m的程序进行Kalman滤波器的设计。

clear;[A,B,C,D,]=linmod2(978-7-111-42163-4-Part01-2350.jpgsx2L1503978-7-111-42163-4-Part01-2351.jpg);

R=1;Q0=1e-4;R0=1e-5;;t=0:0.001:0.3;

[L,P,kalmsys]=lqkalm(A,B,C,D,R,Q0,R0,t);

程序运行后,可得到Kalman滤波器的增益矩阵L与估计误差的协方差P分别为

978-7-111-42163-4-Part01-2352.jpg

程序运行后还得到经Kalman滤波后系统闭环单位阶跃响应仿真曲线,如图15-10所示。

由图15-10可见,经Kalman滤波后,系统闭环单位阶跃给定响应是非常理想的,仿真曲线为几乎立即响应的阶跃方波,只稍微有一点点超调,尔后曲线趋于水平。

978-7-111-42163-4-Part01-2353.jpg

图15-10 经Kalman滤波后的单位阶跃响应曲线

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈