已知两个线性系统G(S)=2s+9/4s²+7s+2和G(S)=s+6/s²+7s+1,应用series函数进行系统的串联连接。
>> sys1=tf([2 9],[4 7 2])
>> sys2=tf([1 6],[1 7 1])
>> sys=series(sys1,sys2)
sys =
2 s^2 + 21 s + 54
----------------------------------
4 s^4 + 3
5 s^3 + 55 s^2 + 21 s + 2
例1-4
已知两个线性系统G(S)=2s+9/4s²+7s+2和G(S)=s+6/s²+7s+1,应用parallel函数进行系统的并联连接。
>> sys1=tf([2 9],[4 7 2])
>> sys2=tf([1 6],[1 7 1])
>> sys=parallel(sys1,sys2)
sys=
6 s^3 + 54 s^2 + 109 s + 21
----------------------------------
4 s^4 + 3
5 s^3 + 55 s^2 + 21 s + 2
例1-5
已知线性系统G(S)=2s+9/2s²+6s+5 应用feedback函数进行系统的单位正反馈和负反馈连接。
正反馈
>> sys1=tf([2 9],[2 6 5])
>> sys=feedback(sys1,1,1)
sys =
2 s + 9
---------------
2 s^2 + 4 s - 4
负反馈
>> sys1=tf([2 9],[2 6 5])
>> sys=feedback(sys1,1,-1)
2 s + 9
----------------
2 s^2 + 8 s + 14
例1-8
典型二阶系统传递函数G(s)=ωn²/s²+2ζωns+ωn²,试分析不同参数下的系统单位阶跃响应。
a)自然频率固定为ωn=1,ζ=0.1,0.3,0.5,0.7,1,2,3.编写程序绘制各单位阶跃响应曲线,计算ζ=0.3时的最大超调量Mp,峰值时间tp,调整时间ts和上升时间tr。
b)将阻尼比ζ的值固定在ζ=0.5,编写程序绘制出各个自然频率ωn=0.1,0.2,0.3,0.5,0.7,1的阶跃响应曲线,计算ωn=0.7时的最大超调量Mp,峰值时间tp,调整时间ts和上升时间tr。
a)>> for a=[0.1,3,0.5,0.7,1,2,0.3]
sys=tf([1],[1,2*a,1]);t=0:0.01:40;y=step(sys,t);plot(t,y);
hold on;
end
[ym,km]=max(y);
line(t(km),ym,'marker','.','markeredgecolor','r','markersize',20);
ystr=['ymax=',sprintf('%1.4g',ym)];tstr=['tp=',sprintf('%1.2g',t(km))];
text(t(km),ym,{ystr,tstr});
cs=length(t);
yss=y(cs)
yss =
1.0000
>> ct=(ym - yss)/yss
ct =
0.3723
>> ttt=t(find(abs(y-1)>0.05));ts=max(ttt);
hold on;plot(ts,1.05,'bo','MarkerSize',10);hold off
text(ts+1.5,1.05,['ts=',num2str(ts)]);
>> C=dcgain(sys)
C =
1
n =
1
>> while y(n)<C
n=n+1
end
>>tr=t(n)
tr =
1.9700
>> hold on;plot(tr,1,'bo','MarkerSize',10);hold off
>> text(tr+1,1,['tr=',num2str(tr)]),grid
b)>> for a=[0.1,0.2,0.3,0.4,0.5,0.6,0.8,0.9,1,0.7]
sys=tf([a*a],[1,a,a*a]);t=0:0.01:100;y=step(sys,t);plot(t,y);
hold on;
end
[ym,km]=max(y);
line(t(km),ym,'marker','.','markeredgecolor','r','markersize',20);
ystr=['ymax=',sprintf('%1.20g',ym)];tstr=['tp=',sprintf('%1g',t(km))];
text(t(km),ym,{ystr,tstr});
cs=length(t);
yss=y(cs)
yss =
1.0000
>> ct=(ym - yss)/yss
ct =
0.1630
>> ttt=t(find(abs(y-1)>0.05));ts=max(ttt);
hold on;plot(ts,1.05,'bo','MarkerSize',10);hold off text(ts+1.5,1.05,['ts=',num2str(ts)]);
>> C=dcgain(sys)
C =
1
>>
>> n=1
n =
1
>> while y(n)<C
n=n+1
end
>> tr=t(n)
tr =
3.4600
>> hold on;plot(tr,1,'bo','MarkerSize',10);hold off text(tr+1,1,['tr=',num2str(tr)]),grid
例2-3
典型二阶系统传递函数G(S)=ωn²/s²+2ζωns+ωn²,,试用NA TLAB绘制出不同ζ和ωn的伯德图。
1)自然频率固定为ωn=1,ζ=0.1,0.3,0.5,0.7,0.9。
编写程序绘制各伯德图。
2)将阻尼比ζ的值固定在ζ=0.707,编写程序绘制出各个自然频率ωn=0.1,0.3,0.5,0.7,0.9的伯德图。
1)for a=[0.1,0.3,0.5,0.7,0.9]
num=1;den=[1,2*a,1];bode(num,den)
hold on
end
2)for a=[0.1,0.3,0.5,0.7,0.9]
num=a*a;den=[1,1.414*a,a*a];bode(num,den);
hold on;
end
例2-5
考虑系统模型G(S)=100(s+5)²/(s+1)(s²+s+9),试求它的幅值裕度和相角裕度,并求其闭环阶跃响应。
G=tf(conv(100*[1,5],[1,5]),conv([1,1],[1,1,9])); G_close=feedback(G,1);
>> [Gm,Pm,Wcg,Wcp]=margin(G)
Gm =
Inf
Pm =
85.4365
Wcg =
NaN
Wcp =
100.3285 step(G_close)。