控制系统仿真第六章课后题
作业6.1
在图6.1中,已知单位负反馈系统被控对象的传递函数为G(s)?试编写matlab程序,设计系统的超前矫正器Gc(s),要求: 1)在斜坡信号r(t)=2t作用下,系统的稳态误差ess<=0.002; 2)校正后系统的相位裕度Pm范围为:45~55; 3)绘制系统校正后的bode图和阶跃响应曲线。 程序: >> s=tf('s');
>> G=1000/(s*(0.1*s+1)*(0.001*s+1)); >> margin(G) % 绘制校正前的bode图
K
s(0.1s?1)(0.001s?1)
>> figure(2)
>> sys=feedback(G,1);
>> step(sys) %绘制校正前的单位阶跃响应曲线
>> [Gm,Pm]=margin(G); %该句值计算bode图的增益裕量Gm和相位裕量Pm
>> [mag,phase,w]=bode(G); %该句只计算bode图上多个频率点w对应的幅值和相位 >> QWPm=50; %取矫正后的相位为50 >> FIm=QWPm-Pm+5; >> FIm=FIm*pi/180;
>> alfa=(1-sin(FIm))/(1+sin(FIm)); >> adb=20*log10(mag); >> am=10*log10(alfa); >> wc=spline(adb,w,am); >> T=1/(wc*sqrt(alfa)); >> alfat=alfa*T;
>> Gc=tf([T 1],[alfat 1]) %校正器的传递函数
Transfer function: 0.01794 s + 1 ------------- 0.00179 s + 1 >> figure(3)
>> margin(Gc*G) % 系统矫正后的bode图
>> figure(4)
>> step(feedback(Gc*G,1)) % 校正后的单位阶跃响应曲线
作业6.2
在图6.1中,已知单位负反馈系统被控对象的传递函数为 G(s)?K
s(0.1s?1)(0.02s?1)试编写matlab程序,设计系统的滞后校正器Gc(s),要求: 1) 在斜坡信号r(t)=t作用下,系统的稳态误差ess?0.01; 2) 校正后系统的相位裕度Pm范围为:40~50; 3) 绘制系统矫正前后的bode图和阶跃响应曲线。 计算K ess=1/K<=0.01 K>=100 取K=100 程序如下: >> s=tf('s');
>> G=100/(s*(0.1*s+1)*(0.02*s+1)); >> margin(G) %绘制校正前的bode图 如下图示,这是一个不稳定的系统。
>> figure(2)
>> step(feedback(G,1))
可以看出系统的动态响应不稳定,处于震荡发散的状态。 >> P0=45;
>> fic=-180+P0+5; >> [mu,pu,w]=bode(G); >> wc2=spline(pu,w,fic);
>> d1=conv(conv([1 0],[0.1 1]),[0.02 1]); >> na=polyval(100,j*wc2);
>> da=polyval(d1,j*wc2); %该句是用j*wc2代替多项式中的s >> G1=na/da;
>> g1=abs(G1); ?s()函数是取绝对值,这里表示求复数G1的模 >> L=20*log10(g1);
>> beta=10^(L/20); T=1/(0.1*wc2); >> betat=beta*T;
>> Gc=tf([T 1],[betat 1])
Transfer function: 1.558 s + 1 ----------- 20.27 s + 1
>> figure(3)
>> margin(Gc*G)