考研851 自动控制原理
题海 · solution · p.526
\[ \boldsymbol{T}^{-1}=\frac{1}{8}\begin{bmatrix}2 & -4 & 16\\-3 & 10 & -28\\1 & -6 & 20\end{bmatrix} \]

于是 \(\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}}\),可得

\[ \bar{\boldsymbol{A}}-\bar{\boldsymbol{h}}\bar{\boldsymbol{c}}=\begin{bmatrix}0 & 0 & -2-\bar{h}_1\\1 & 0 & 9-\bar{h}_2\\0 & 1 & -\bar{h}_3\end{bmatrix} \]

状态观测器的特征多项式为

\[ f_h(\lambda)=\det[\lambda\boldsymbol{I}-(\boldsymbol{A}-\boldsymbol{h}\boldsymbol{c})]=\det[\lambda\boldsymbol{I}-(\bar{\boldsymbol{A}}-\bar{\boldsymbol{h}}\bar{\boldsymbol{c}})] \]
\[ =\lambda^3+\bar{h}_3\lambda^2+(\bar{h}_2-9)\lambda+(\bar{h}_1+2) \]

而期望的状态观测器的特征多项式为

\[ f_h^*(\lambda)=(\lambda+3)(\lambda+4)(\lambda+5)=\lambda^3+12\lambda^2+47\lambda+60 \]

比较上述 \(f_h(\lambda)\)\(f_h^*(\lambda)\) 的同次项系数可得 \(\bar{h}_3=12,\bar{h}_2=56,\bar{h}_1=58\),即

\[ \bar{\boldsymbol{h}}=[58 \ \ 56 \ \ 12]^{\mathrm{T}} \]

所以

\[ \boldsymbol{h}=\boldsymbol{T}^{-1}\bar{\boldsymbol{h}}=\frac{1}{8}\begin{bmatrix}2 & -4 & 16\\-3 & 10 & -28\\1 & -6 & 20\end{bmatrix}\begin{bmatrix}58\\56\\12\end{bmatrix}=\begin{bmatrix}10.5\\6.25\\-4.75\end{bmatrix} \]

要设计的全维状态观测器为 \(\dot{\hat{\boldsymbol{x}}}=(\boldsymbol{A}-\boldsymbol{h}\boldsymbol{c})\hat{\boldsymbol{x}}+\boldsymbol{h}y+\boldsymbol{b}u\),即

\[ \dot{\hat{\boldsymbol{x}}}=\begin{bmatrix}-9.5 & -8.5 & -10.5\\-3.25 & -7.25 & -5.25\\4.75 & 6.75 & 4.75\end{bmatrix}\hat{\boldsymbol{x}}+\begin{bmatrix}10.5\\6.25\\-4.75\end{bmatrix}y+\begin{bmatrix}0\\0\\1\end{bmatrix}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 ·