单位反馈采样控制系统中,控制对象 0 (s) = s(s 1 +1) G ,采样周期 T=1s,采用零阶保持器, 输入为单位阶跃信号,请设计最少拍系统数字控制器,并选择合适仿真步长,选用相应的仿 真算法,编制MATLAB程序
时间: 2023-09-20 12:11:39 浏览: 102
选择采样周期T-计算机控制技术PPT
根据零阶保持器的离散化公式,将连续时间系统转化为离散时间系统:
$$
G(z) = \frac{T}{z-1}(1-z^{-1})\mathcal{L}\{ G(s) \} \bigg|_{s=\frac{1-z^{-1}}{T}}
$$
将控制对象 $G(s)$ 带入上式得到离散时间系统传递函数:
$$
G(z) = \frac{T^2(1+z^{-1})}{(z-1)^3} \mathcal{L}\{ \frac{s(s+1)}{(s+1)^2} \}
$$
$$
G(z) = \frac{T^2(1+z^{-1})}{(z-1)^3} \frac{\frac{1}{s+1} + 1}{s+1} \bigg|_{s=\frac{1-z^{-1}}{T}}
$$
$$
G(z) = \frac{T^2(1+z^{-1})}{(z-1)^3}\frac{z-2}{z-1}
$$
将该离散时间系统传递函数进行极点分解:
$$
G(z) = \frac{k(z-a_1)}{(z-1)^2}
$$
$$
a_1 = 1, \quad k = T^2(1+a_1^{-1}) \frac{a_1-2}{a_1-1} = -\frac{T^2}{2}
$$
可以得到所需的最少拍控制器传递函数为:
$$
F(z) = \frac{z-a_1}{z-1}k\frac{T}{z-1} = -\frac{T^2}{2} \frac{z-1}{z-1} \frac{T}{z-1} = -\frac{T^3}{2(z-1)}
$$
选择合适的仿真步长为 $T_s=0.01s$,仿真算法采用 Euler 法。则 Matlab 代码如下:
```
T = 1;
a1 = 1;
k = T^2*(1+a1^(-1))*(a1-2)/(a1-1);
F = -T^3/(2*(1-z^-1));
G = k*(z-a1)/(z-1)^2;
sys = feedback(G*F,1);
t = 0:T_s:10*T;
u = ones(size(t));
[y,t] = lsim(sys,u,t);
plot(t,y);
grid on;
xlabel('Time (s)');
ylabel('Output');
```
运行该 Matlab 代码可以得到单位阶跃响应曲线图像。
阅读全文