于是 \(\bar{\boldsymbol{A}}=\boldsymbol{T}\boldsymbol{A}\boldsymbol{T}^{-1}=\begin{bmatrix}0 & 0 & -a_3\\1 & 0 & -a_2\\0 & 1 & -a_1\end{bmatrix}=\begin{bmatrix}0 & 0 & -2\\1 & 0 & 9\\0 & 1 & 0\end{bmatrix}\),\(\bar{\boldsymbol{c}}=\boldsymbol{c}\boldsymbol{T}^{-1}=\begin{bmatrix}0 & 0 & 1\end{bmatrix}\)
设 \(\bar{\boldsymbol{h}}=[\bar{h}_1 \ \bar{h}_2 \ \bar{h}_3]^{\mathrm{T}}\),可得
状态观测器的特征多项式为
而期望的状态观测器的特征多项式为
比较上述 \(f_h(\lambda)\) 与 \(f_h^*(\lambda)\) 的同次项系数可得 \(\bar{h}_3=12,\bar{h}_2=56,\bar{h}_1=58\),即
所以
要设计的全维状态观测器为 \(\dot{\hat{\boldsymbol{x}}}=(\boldsymbol{A}-\boldsymbol{h}\boldsymbol{c})\hat{\boldsymbol{x}}+\boldsymbol{h}y+\boldsymbol{b}u\),即
利用下列MATLAB程序,验证可知上述设计结果正确。若令系统初始状态 \(\boldsymbol{x}(0)=[-1 \ \ 2 \ \ -3]^{\mathrm{T}}\),并利用全维状态观测器得到的估计值进行状态反馈,仿真可得此时系统的零输入状态曲线和状态观测误差曲线分别如图9-11和图9-12所示。
MATLAB程序:exe937.m
A=[1 2 0;3 -1 1;0 2 0];B=[0 0 1]';C=[1 1 1];
%(1)
str=jctr(A,B);
P=[-3 -4 -5];K=(acker(A,B,P))'
%(2)
n=length(A);str1=jobsv(A,C)
syms s h1 h2 h3
H0=[h1 h2 h3]';
eqi=det(s*eye(n)-(A-H0*C))-(s+3)*(s+4)*(s+5);eq2=collect(eqi,s)
%得 h1-4=0,-21+5*h1+h2=0,h3+6*h1+5*h2-27=0
[h11 h12 h13]=solve('conj(h3)+conj(h2)+conj(h1)-12=0','-56+conj(h3)+3*conj(h2)+
(MATLAB程序末行代码跨页,内容在下一页继续)
· 520 ·