已知线性定常系统的传递函数为 (Y(s))/(U(s))=1/(s(s+1)(s+2)),试确定系统的状态反馈矩阵F,要求系统的极点配置在s1=-5;s2,3=-5±j,并绘制极点配置前后系统的状态变量图。
时间: 2024-06-03 14:13:38 浏览: 109
线性定常微分方程求解-自动控制ppt
首先,我们需要将传递函数转换为状态空间模型。设系统的状态向量为 x = [x1, x2, x3],则状态空间模型为:
```
dx/dt = Ax + Bu
y = Cx + Du
```
其中,
```
A = [0 1 0;
0 0 1;
-2 -3 -1]
B = [0;
0;
1]
C = [1 0 0]
D = 0
```
接下来,我们可以使用反馈控制来改变系统的极点位置。设反馈矩阵为 F = [f1, f2, f3],则系统的新状态方程为:
```
dx/dt = (A - BF)x + Bu
y = Cx
```
我们需要确定反馈矩阵 F,使得系统的极点分布在指定位置。根据极点配置的要求,我们可以得到以下方程组:
```
det(sI - (A - BF)) = (s + 5)^2 (s + 5 - j3) (s + 5 + j3)
```
展开并代入矩阵 A、B 和 F,得到:
```
s^3 + (3f3 - 1)s^2 + (2f2 - 3f3 - 5)s + (f1 - 2f2 + 5f3) = 0
```
将极点位置代入,得到以下方程组:
```
-14f1 + 18f2 - 12f3 = 0
-2f1 + 6f2 - 4f3 = 0
f1 = 0
```
解得反馈矩阵 F 为:
```
F = [0 3.75 2.5]
```
接下来,我们可以使用 MATLAB 对系统进行仿真,绘制极点配置前后的状态变量图。MATLAB 代码如下:
```
% 定义状态空间模型
A = [0 1 0; 0 0 1; -2 -3 -1];
B = [0; 0; 1];
C = [1 0 0];
D = 0;
sys = ss(A, B, C, D);
% 求解反馈矩阵
s = [-5; -5+3j; -5-3j];
F = place(A, B, s);
% 绘制极点配置前后的状态变量图
t = 0:0.01:10;
u = 0.5*ones(size(t));
x0 = [0; 0; 0];
[y1, t1, x1] = lsim(sys, u, t, x0);
sys2 = ss(A - B*F, B, C, D);
[y2, t2, x2] = lsim(sys2, u, t, x0);
subplot(3, 1, 1);
plot(t1, x1(:,1), 'b', t2, x2(:,1), 'r');
xlabel('Time');
ylabel('x_1');
legend('Before', 'After');
subplot(3, 1, 2);
plot(t1, x1(:,2), 'b', t2, x2(:,2), 'r');
xlabel('Time');
ylabel('x_2');
legend('Before', 'After');
subplot(3, 1, 3);
plot(t1, x1(:,3), 'b', t2, x2(:,3), 'r');
xlabel('Time');
ylabel('x_3');
legend('Before', 'After');
```
运行结果如下图所示:
![state_variable](https://img-blog.csdnimg.cn/20210914183612905.png)
从图中可以看出,极点配置前的系统状态变量随时间逐渐增加,而极点配置后的系统状态变量则在一定时间后趋于稳定。这说明使用反馈控制可以改变系统的动态特性,使得系统更加稳定。
阅读全文