Matlab 在《自动控制原理》中的应用实例.doc
G1=tf([1],[1 10]);G2=tf([1],[1 1]);G3=tf([1 0 1],[1 4 4]);
numg4=[1 1];deng4=[1 6];G4=tf(numg4,deng4);
H1=zpk([-1],[-2],1);
numh2=[2];denh2=[1];H3=1;
nh2=conv(numh2,deng4);dh2=conv(denh2,numg4);
H2=tf(nh2,dh2);
sys1=series(G3,G4);
sys2=feedback(sys1,H1,+1); (结构图化简及闭环传递函数的求解)
sys3=series(G2,sys2);
sys4=feedback(sys3,H2);
sys5=(G1,sys4);
sys5=series(G1,sys4);
sys=feedback(sys5,H3) //
zeta=0.707;num=[16];den=[1 8*zeta 16];
sys=tf(num,den);
p=roots(den) t=0:0.01:3; (特征根)
figure(1)
impluse(sys,t);grid impulse(sys,t);grid (单位脉冲响应)
xlabel('t');ylable('c(t)');title('step response');xlabel('t');ylabel('c(t)');title('step response');
figure(2)
step(sys,t);grid (单位阶跃响应)
xlabel('t');ylabel('c(t)');title('step response');
figure(3)
u=t;
lsim(sys,u,t,0);grid (任意输入响应)
xlabel('t');ylabel('c(t)');title('step response');
//
K=[20,40];
Gc=tf([1],conv([1,0],[1,2,10]));
for i=1:2 (开环增益对系统的影响)
G1=tf(K(i)*[1,1],[1,5]);
G0=series(G1,Gc);
G=feedback(G0,1);
figure(i);bode(G);grid
End
//
G=tf([1280,640],[1,24.2,1604.81,320.24,16]);
>> figure(1)
>> margin(G);(对数幅频曲线与实轴交点横坐标为截止频率,相频曲线与-180交点为幅值1)
>> figure(2)
>> nyquist(G);(奈奎斯特曲线,在开环幅相曲线或对数幅频曲线基础上补画使闭合)
Axisequal//
G1=tf([2000,-4000],conv([1,0,0],[1,1]));伯德图即对数频率分布图,包括对数幅频和对数相频
G2=tf([1],[1,10,400]);
G=series(G1,G2);bode(G);grid
//
>>G=tf([1,4],[1,4,20]); (零极点分布图和开环根轨迹图)
>> figure(1)
>> pzmap(G);
>> figure(2) rlocus(G);