matlab实习题目求解,满足阶跃响应调节时间ts
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/28 13:10:05
matlab实习题目求解,满足阶跃响应调节时间ts
matlab实习题目求解,满足阶跃响应调节时间ts
matlab实习题目求解,满足阶跃响应调节时间ts
系统性能指标以时域形式给出,可考虑使用根轨迹法设计校正网络.
基本思路是,根据指标要求,确定期望的闭环主导极点位置,然后看是否落在原系统根轨迹上,如果不在,就要进行校正.具体的矫正原理这里不赘述,请参考控制理论的相关文献.
1、绘制根轨迹,计算期望的闭环主导极点位置(以下红色部分为程序代码):
% 被控对象模型
G=zpk([],[0 -8 -16],1280);
% 根据调解时间计算闭环主导极点位置
% 对超调量没有要求,阻尼比按照0.7考虑
ts=0.8;
zeta=0.7;
wn=4/(ts*zeta);
p=[1 2*zeta*wn wn*wn];
s=roots(p);
% 绘制根轨迹,并标出期望的闭环主导极点位置
figure(1)
clf
rlocus(G)
hold on
plot(s,'rx','markersize',10,'linewidth',2)
2、计算校正网络参数:
% 计算校正器传递函数
s1=s(1);
[ng,dg]=tfdata(G,'v');
ngv=polyval(ng,s1);
dgv=polyval(dg,s1);g=ngv/dgv;
theta=angle(g);
if theta>0;
phic=pi-theta;
end;
if theta<0;
phic=-theta;
end;
phi=angle(s1);
thetaz=(phi+phic)/2;
thetap=(phi-phic)/2;
zc=real(s1)-imag(s1)/tan(thetaz);
pc=real(s1)-imag(s1)/tan(thetap);
nc=[1 -zc];
dc=[1 -pc];
nv=polyval(nc,s1);dv=polyval(dc,s1);
kv=nv/dv;kc=abs(1/(g*kv));
if theta<0;
kc=-kc;
end;
Gc=tf(nc,dc)
得到的传递函数为
s + 5.3
---------
s + 9.627
3、绘制校正前后闭环系统的阶跃响应曲线
figure(2)
step(feedback(G,1),'b-',feedback(G*Gc,1),'r--')
legend('校正前','校正后')
绘图之后,注意设置显示调节时间(Settling Time),并将误差带设为5%.由图可见,满足系统设计要求.
花了不少时间研究这个问题,主要还是个人兴趣,不是为了那点虚拟的分数.至于加不加分,楼主自己看着办吧.