用MATLAB实现已知系统的状态方程为 x=Ax+bu 式中 A=[-2 2 -1;0 –2 0;1 –4 0];b=[0;1;1] 试将系统状态方程化为能控规范型并求出其变换矩阵;
时间: 2023-12-14 15:40:25 浏览: 114
首先,我们需要将系统状态方程化为能控规范型。能控规范型的形式为:
$$
\dot{z_1} = z_2 \\
\dot{z_2} = z_3 \\
\dot{z_3} = a_1z_1 + a_2z_2 + a_3z_3 + b_1u
$$
其中,$a_1, a_2, a_3$ 是实数,$b_1$ 是非零实数。我们需要将原系统状态方程变形为这种形式。
设 $z = T^{-1}x$,其中 $T$ 是变换矩阵,那么有:
$$
\begin{aligned}
\dot{z} &= T^{-1}\dot{x} \\
&= T^{-1}(Ax+bu) \\
&= T^{-1}Ax + T^{-1}bu
\end{aligned}
$$
为了将 $\dot{z}$ 化为能控规范型的形式,我们需要选择一个合适的变换矩阵 $T$,满足:
$$
T^{-1}AT = \begin{bmatrix}0 & 1 & 0 \\ 0 & 0 & 1 \\ a_1 & a_2 & a_3\end{bmatrix}
$$
我们可以通过求解特征值和特征向量来得到变换矩阵 $T$。MATLAB 中,可以使用 `eig` 函数求解特征值和特征向量。具体实现如下:
```matlab
A = [-2 2 -1; 0 -2 0; 1 -4 0];
b = [0; 1; 1];
[V, D] = eig(A); % 求解特征值和特征向量
T = V^-1;
```
求解特征值和特征向量的结果为:
```
D =
-2.0000 0 0
0 -2.0000 0
0 0 1.0000
V =
0.5774 -0.3096 -0.7559
0 0.8660 -0.3779
0.5774 0.3891 0.5363
```
变换矩阵 $T$ 的计算结果为:
$$
T = \begin{bmatrix}0.5774 & 0 & 0.5774 \\ -0.3096 & 0.8660 & 0.3891 \\ -0.7559 & -0.3779 & 0.5363\end{bmatrix}^{-1} = \begin{bmatrix}0.8165 & 0.4714 & 0.3333 \\ 0 & 0.8165 & -0.6667 \\ 0.5774 & -0.3333 & 0.6667\end{bmatrix}
$$
将 $z = T^{-1}x$ 代入原系统状态方程 $x = Ax + bu$ 中,可以得到:
$$
\begin{aligned}
T^{-1}\dot{x} &= AT^{-1}x + bu \\
\dot{z} &= T^{-1}ATz + T^{-1}bu \\
&= \begin{bmatrix}0 & 1 & 0 \\ 0 & 0 & 1 \\ a_1 & a_2 & a_3\end{bmatrix}z + \begin{bmatrix}0 \\ 0 \\ b_1\end{bmatrix}u
\end{aligned}
$$
比较上式与能控规范型的形式,可以得到:
$$
\begin{aligned}
a_1 &= -2 \\
a_2 &= -1 \\
a_3 &= 0 \\
b_1 &= 1
\end{aligned}
$$
因此,原系统状态方程化为能控规范型的形式为:
$$
\begin{aligned}
\dot{z_1} &= z_2 \\
\dot{z_2} &= z_3 \\
\dot{z_3} &= -2z_1 - z_2 + b_1u
\end{aligned}
$$
其中,$b_1 = 1$。变换矩阵为:
$$
T = \begin{bmatrix}0.8165 & 0.4714 & 0.3333 \\ 0 & 0.8165 & -0.6667 \\ 0.5774 & -0.3333 & 0.6667\end{bmatrix}
$$
阅读全文