编写程序求解系统的阶跃响应及其性能指标;计算系统的闭环根、阻尼比、无阻尼振荡频率;修改参数,实现与ζ=1和ζ=2的阶跃响应;修改参数,实现Wn1=1/2Wn和Wn2=2Wn的阶跃响应(Wn=√10)
时间: 2024-03-16 13:45:25 浏览: 118
这里提供一个MATLAB程序,用于计算系统的阶跃响应及其性能指标,闭环根、阻尼比、无阻尼振荡频率,并修改系统参数,实现不同的阶跃响应:
```matlab
% 原系统参数
K = 10;
zeta = 0.7;
wn = sqrt(10);
% 系统的传递函数
G = tf(K*wn^2, [1 2*zeta*wn wn^2]);
% 计算系统的阶跃响应及性能指标
[y, t] = step(G);
stepinfo(G)
% 计算系统的闭环根、阻尼比、无阻尼振荡频率
p = roots([1 2*zeta*wn wn^2]);
wn_d = wn*sqrt(1-zeta^2);
wd = wn*sqrt(zeta^2-1);
fprintf('闭环根:\n');
disp(p)
fprintf('阻尼比:\n');
disp(zeta)
fprintf('无阻尼振荡频率:\n');
disp(wd)
% 修改参数,实现ζ=1的阶跃响应
zeta_new = 1;
wn_new = wn;
G_new = tf(K*wn_new^2, [1 2*zeta_new*wn_new wn_new^2]);
[y_new, t_new] = step(G_new);
stepinfo(G_new)
% 修改参数,实现ζ=2的阶跃响应
zeta_new = 2;
wn_new = wn;
G_new = tf(K*wn_new^2, [1 2*zeta_new*wn_new wn_new^2]);
[y_new, t_new] = step(G_new);
stepinfo(G_new)
% 修改参数,实现Wn1=1/2Wn的阶跃响应
zeta_new = zeta;
wn_new = 0.5*wn;
G_new = tf(K*wn_new^2, [1 2*zeta_new*wn_new wn_new^2]);
[y_new, t_new] = step(G_new);
stepinfo(G_new)
% 修改参数,实现Wn2=2Wn的阶跃响应
zeta_new = zeta;
wn_new = 2*wn;
G_new = tf(K*wn_new^2, [1 2*zeta_new*wn_new wn_new^2]);
[y_new, t_new] = step(G_new);
stepinfo(G_new)
```
其中,`stepinfo`函数用于计算阶跃响应的性能指标,包括上升时间、峰值时间、峰值、调整时间和稳态误差。程序中先计算了原系统的阶跃响应及性能指标,然后分别修改系统的阻尼比和自然频率,实现不同的阶跃响应,并计算新系统的性能指标。
阅读全文