matlab设计全维观测器,选取三种观测器极点,仿真状态观测器观测到的状态,建立带全维状态观测器的状态反馈系统的状态空间表达式,求解带全维观测器的状态反馈系统极点。
时间: 2023-11-17 16:05:28 浏览: 40
为了设计全维观测器,我们需要先定义系统的状态空间表达式和观测器的状态空间表达式。假设我们的系统为:
$$
\begin{aligned}
\dot{x} &= Ax + Bu \\
y &= Cx
\end{aligned}
$$
其中,$x$ 是系统的状态向量,$u$ 是输入向量,$y$ 是输出向量,$A$,$B$ 和 $C$ 分别是系统的状态矩阵、输入矩阵和输出矩阵。
观测器的状态空间表达式为:
$$
\begin{aligned}
\dot{\hat{x}} &= A\hat{x} + Bu + L(y - \hat{y}) \\
\hat{y} &= C\hat{x}
\end{aligned}
$$
其中,$\hat{x}$ 是观测器的状态向量,$\hat{y}$ 是观测器的输出向量,$L$ 是观测器的增益矩阵。我们需要选择三个观测器极点,使观测器响应快速收敛到系统真实状态。假设我们选择的观测器极点为 $p_1, p_2$ 和 $p_3$,则观测器的传递函数为:
$$
G(s) = \frac{k(s-p_1)(s-p_2)(s-p_3)}{s^3 + a_2s^2 + a_1s + a_0}
$$
其中,$k$ 是增益因子,$a_2, a_1$ 和 $a_0$ 是系统的特征方程系数。
接下来,我们可以使用 MATLAB 中的 `place` 函数来计算带全维观测器的状态反馈系统的极点。假设我们选择的极点为 $p_4, p_5$ 和 $p_6$,则可以使用以下代码:
```
% 系统矩阵
A = [1 1 0; 0 2 -1; 0 1 -2];
B = [0; 1; 1];
C = [1 0 0];
D = 0;
% 特征方程系数
a2 = trace(A);
a1 = det(A);
a0 = 0;
% 观测器极点
p1 = -5;
p2 = -6;
p3 = -7;
% 增益因子
k = place(A', C', [p1 p2 p3])';
% 增广矩阵
Aa = [A zeros(size(A)); k*C A-B*k];
% 带全维观测器的状态反馈系统极点
p4 = -8;
p5 = -9;
p6 = -10;
K = place(Aa, B, [p4 p5 p6]);
```
计算得到的 $K$ 即为带全维观测器的状态反馈系统的控制增益矩阵,其极点为 $p_4, p_5$ 和 $p_6$。