基于MATLAB的状态观测器设计
预备知识: 极点配置
基于状态反馈的极点配置法就是通过状态反馈将系统的闭环极点配置到期望的极点位置上,从而使系统特性满足要求。 1. 极点配置原理
假设原系统的状态空间模型为:
??Ax?Bu?x? ?y?Cx若系统是完全可控的,则可引入状态反馈调节器,且:
input?u?Kx
这时,闭环系统的状态空间模型为:
??(A?BK)x?Bu?x? ?y?Cx2. 极点配置的MATLAB函数 在MATLAB控制工具箱中,直接用于系统极点配置的函数有acker()和place()。调用格式为:
K=acker(A,C,P) 用于单输入单输出系统
其中:A,B为系统矩阵,P为期望极点向量,K为反馈增益向量。 K=place(A,B,P)
(K,prec,message)=place(A,B,P)
place()用于单输入或多输入系统。Prec为实际极点偏离期望极点位置的误差;message是当系统某一非零极点偏离期望位置大于10%时给出的警告信息。 3. 极点配置步骤:
(1)获得系统闭环的状态空间方程;
(2)根据系统性能要求,确定系统期望极点分布P;
(3)利用MATLAB极点配置设计函数求取系统反馈增益K; (4)检验系统性能。
已知系统模型
如何从系统的输入输出数据得到系统状态?
1
初始状态:由能观性,从输入输出数据确定。 不足:初始状态不精确,模型不确定。 思路:构造一个系统,输出
逼近系统状态
称为是
的重构状态或状态估计值。实现系统状态重构的系统称为状态观
测器。
观测器设计
状态估计的开环处理:
但是存在模型不确定性和扰动!初始状态未知! 应用反馈校正思想来实现状态重构。
通过误差来校正系统:状态误差,输出误差。
基于观测器的控制器设计 系统模型
若系统状态不能直接测量,
可以用观测器来估计系统的状态。
L是观测器增益矩阵,对偏差的加权。 真实状态和估计状态的误差向量 误差的动态行为:
2
的极点决定了误差是否衰减、如何衰减?通过确定矩阵L来保证。也即
极点配置问题。
要使得误差衰减到零,需要选取一个适当的矩阵L,使得A-LC是稳定的。若能使得矩阵A-LC有适当的特征值,则可以使得误差具有一定的衰减率。
由于
因此,问题转化为
的极点配置问题。
该极点配置问题可解的条件:
能控;等价于
能观
定理:系统可以任意配置观测器极点的充分必要条件是(C, A)能观。 观测器的增益矩阵可以按照极点配置方法来设计, 求解
的极点配置问题,得到增益矩阵k;
观测器增益矩阵
例 考虑由以下系数矩阵给定的系统
设计一个观测器,使观测器两个极点都是-2。 检验系统的能观性:
系统是能观的,因此问题可解。 要求确定观测器增益矩阵
使得矩阵A-LC具有两个相同的特征值-2。由于
期望的特征值多项式是
3
比较两个多项式,可以得到,
所求的观测器是
也可利用MATLAB命令来计算观测器增益矩阵:
L=(acker(A’,C’,V))’ L=(place(A’,C’,V))’
观测器设计时注意的问题:
(1)观测器极点比系统极点快2~5倍; (2)并非越快越好。
例2:某系统
??1?2?2??2?????X???0?11?x??0?u
?1?1?0?1?????y??100?x
首先对系统的能控性进行判断,以编程方式实现 a=[-1 -2 -2;0 -1 1;1 0 -1];
b=[2;0;1]; %输入a,b矩阵 q=[b a*b a^2*b] rank(q)
计算结果为
?2?40???q??010?
?11?5???q的秩为3,因此该系统为完全能控型系统,在满足系统要求的前提下,理论上能任意配置期望极点。
观测器的设计
首先检验系统的是否完全能观
4
a=[-1 -2 -2;0 -1 1;1 0 -1]; c=[1 0 0];
q=[c;c*a;c*a*a] rank(q)
?100???q???1?2?2?
??142???rank(q)=3
说明系统是完全能观的
下面就是观测器期望极点选择,一般为了考虑观测器的响应速度要比闭环系统快,又要考虑干扰抑制,一般极点为闭环极点的2---5倍。
根据主导二阶极点方法所配置的极点为s1=-4 s2,3=-1±0.88i 选择观测器极点为s1=-12 s2,3=-3±0.88i
由此可进一步求出观测器增益矩阵l a=[-1 -2 -2;0 -1 1;1 0 -1]; c=[1 0 0];
pe=[-12;-3+0.88*i;-3-0.88*i]; lt=acker(a',c',pe); l=lt'
求得l=[15;1.872;-25.2592];
下面可构建Simulink图,据此观察观测器的跟踪能力
跟踪效果图如下
5