概述
状态观测器是现代控制理论的重要组成部分[1-2],它是从系统状态空间方程出发,利用原系统的输入和输出信号获得原系统状态变量估值的方法,在传感器噪声处理、系统相移抑制以及高性能控制系统的设计中应用得非常普遍[2-3]。扩张状态观测器(ExtendedStateObserv-er)是自抗扰控制器(ActiveDisturbanceRejectionCon-troller)的核心部分[4-5],它不像通常的状态观测器如隆伯格观测器(LuenbergerObserver)[2]需要预先知道系统模型,也不关心系统是线性系统还是非线性系统,因此避免了使用过程中对模型的依赖[6]。本文通过Matlab[7]对扩张状态观测器进行数值仿真,给出并比较了ESO对二阶系统在线性参数和非线性参数下的观测效果,考察了系统存在高斯加性白噪声条件下的观测效果,并对观测结果进行了分析。1扩张状态观测器的基础理论对于常见的二阶系统,设其输入信号为u,输出信号为y,系统对输入信号的作用为b,此系统表达式记为:?x(2)+f(x(1),x)=buy=x(1)引入状态变量x1=x,x2=x(1)改写为状态空间表达式,并以Ts为采样周期进行离散化可得相应的离散状态方程:???x1(k+1)=x1(k)+Tsx2(k)x2(k+1)=x2(k)+Ts(-f(x2(k),x1(k))+bu(k))y(k)=x1(k)(2)依照文献[4]可用离散系统:?????e1(k)=z1(k)-y(k)z1(k)=z1(k-1)+Ts(z1(k)-01e(k))z2(k)=z2(k-1)+Ts(z3(k)-02fal(e1(k),0.5,)+bu(k))z3(k)=-03fal(e1(k),0.25,)(3)来观测原系统的状态变量。式(3)中:z1和z2分别为x1和x2的观测值;z3为系统扩张出来的状态变量;01,02,03和则为需要设定的参数。函数fal()定义为:fal(e,,)={e-1,|e||e|sign(e),|e|>(4)式中sign()是符号函数。以上推导过程见文献[4,8]。2扩张状态观测器的计算机仿真及结果比较分析仿真采用M语言[9]进行,仿真的系统选择为常见的二阶系统,其传递函数为[3]:G(s)=2s2+2s+2(5)引入状态变量并以Ts为周期离散化后可得离散状态空间方程:???x1(k)=x1(k-1)+Tsx2(k)x2(k)=x2(k-1)+Ts(-(2x2(k)+x1(k))+2u(k))y(k)=x1(k)(6)根据式(3)对该系统建立扩张状态观测器。仿真时,采样周期Ts设定为1ms,系统的阻尼系数设定为0.5,系统谐振频率f设定为3Hz。系统的输入信号正弦信号(幅度设定为1,频率设定为1Hz)。仿真结果做如下约定:,红色曲线为真实的系统状态,黑色曲线为观测出来的系统状态。仿真时设ESO中b为已知并保持不变,始终满足b=23,查看此时01,02,03为线性参数和非线性参数时的仿真结果。2.1无噪声时线性观测和非线性观测的观测效果线性估计时,可参考文献[10]进行,01=1Ts,02=1(3T)2s,03=2(8T)3s,fal()函数中的=1Ts;非线性估计时,参数需要做出适当的调整,目前只有通过试凑法进行,可以在线性估计的基础上进行,可选01=1Ts,02=1(3T)2s20,03=2(8)2T3s202,fal()函数中的=1Ts2,结果如图1、图2所示。图1无噪声时正弦信号的线性观测效果从仿真结果可看出,线性观测的效果略好于非线性观测的效果,而采用非线性估计时,E
最后
以上就是无情蜜粉为你收集整理的扩张状态观测器matlab函数,基于Matlab的扩张状态观测器仿真及分析的全部内容,希望文章能够帮你解决扩张状态观测器matlab函数,基于Matlab的扩张状态观测器仿真及分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复