用matlab求自控二阶系统单位阶跃响应
时间: 2023-12-03 08:03:54 浏览: 127
matlab源码-二阶系统阶跃响应.m
5星 · 资源好评率100%
假设自控二阶系统的传递函数为:
$$G(s) = \frac{K}{(s+\alpha)(s+\beta)}$$
其中 $K$ 为系统增益,$\alpha$ 和 $\beta$ 为系统的两个极点。
对于一个单位阶跃输入 $U(s) = \frac{1}{s}$,系统的输出为 $Y(s) = G(s)U(s)$。将 $G(s)$ 代入上式,得到:
$$Y(s) = \frac{K}{(s+\alpha)(s+\beta)}\cdot \frac{1}{s}$$
对 $Y(s)$ 进行部分分式分解,得到:
$$Y(s) = \frac{A}{s+\alpha} + \frac{B}{s+\beta} + \frac{K_0}{s}$$
其中 $A$、$B$、$K_0$ 是待定系数,$K_0$ 表示单位阶跃输入的分子部分。
将上式变换回时域,得到系统的单位阶跃响应:
$$y(t) = A e^{-\alpha t} + B e^{-\beta t} + K_0 u(t)$$
其中 $u(t)$ 是单位阶跃函数,即:
$$u(t) = \begin{cases}0, & t<0\\1, & t\geq 0\end{cases}$$
现在,你可以使用 MATLAB 代码来求解自控二阶系统的单位阶跃响应,例如:
```matlab
% 系统参数
K = 1; % 系统增益
alpha = 1; % 极点1
beta = 5; % 极点2
% 部分分式分解
[A, B, K0] = residue(K, [1, alpha, beta, 0]);
% 时间范围和步长
t = 0:0.01:10;
% 单位阶跃响应
y = A*exp(-alpha*t) + B*exp(-beta*t) + K0;
% 绘图
plot(t, y);
xlabel('Time (s)');
ylabel('Output');
title('Unit Step Response of Second-Order Control System');
```
运行上述代码,即可得到自控二阶系统的单位阶跃响应曲线。
阅读全文