matlaB期末作业.docx
《matlaB期末作业.docx》由会员分享,可在线阅读,更多相关《matlaB期末作业.docx(11页珍藏版)》请在冰豆网上搜索。
![matlaB期末作业.docx](https://file1.bdocx.com/fileroot1/2023-2/21/2b96da40-e59a-4b1a-a23e-e1178ed83ec9/2b96da40-e59a-4b1a-a23e-e1178ed83ec91.gif)
matlaB期末作业
MATLAB作业
车晓东
09901304
一、
(1)建立数学模型
>>num=[1];
>>den=conv([0.210],[0.151]);
>>G=tf(num,den)
Transferfunction:
1
-----------------------
0.03s^3+0.35s^2+s
(2)根轨迹
(3)K值的确定
>>K=0:
0.05:
200;
rlocus(G,K)
[K,POLES]=rlocfind(G)
selected_point=
0.0059+5.6522i
K=
11.1956
POLES=
-11.5728
-0.0469+5.6784i
-0.0469-5.6784i
(4)超前校正
sigma=0.2;
zeta=((log(1/sigma))^2/((pi)^2+(log(1/sigma))^2))^(1/2);
wn=3/zeta;
p=[12*zeta*wnwn*wn];
s=roots(p)
>>s1=s
(1);
ng=1;
dg=[0.030.3510];
ngv=polyval(ng,s1);
dgv=polyval(dg,s1);
g=ngv/dgv;
theta=angle(g);
phic=pi-theta;
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];
Gc=tf(nc,dc)
>>G=tf(ng,dg);
rlocus(Gc*G)
sgrid(0.4559,[])
>>step(feedback(20.3*Gc*G,1))
(4)校正前后的simulink仿真模型
1)校正前
2)校正后
(5)校正前单位响应曲线和单位脉冲曲线:
>>num=[01];
>>den=[0.030.3510];
>>G=tf(num,den);
>>G0=feedback(G,1);
>>step(G0)
校正前单位响应
impulse(G0)
校正前单位脉冲响应
校正后单位响应曲线和单位脉冲曲线:
>>num=[20.357.4287];
>>den=[0.030.8096.35515.30];
>>G=tf(num,den);
>>G0=feedback(G,1)
>>step(G0)
校正后单位响应
>>impulse(G0)校正后单位脉冲响应
(二)
(1)
>>num=10;
den=[0.10.710];
G=tf(num,den);
nyquist(G)
局部放大后可以看到Nyquist不包含(-1,j0),故稳定。
(二)
>>delta=7.3;
s=tf('s');
G=10/(s*(0.2*s+1)*(0.5*s+1));
margin(G)
[gm,pm]=margin(G)
phim1=50;
phim=phim1-pm+delta;
phim=phim*pi/180;
alfa=(1+sin(phim))/(1-sin(phim))
a=10*log10(alfa);
[mag,phase,w]=bode(G);
adB=20*log10(mag);
wm=spline(adB,w,-a);
t=1/(wm*sqrt(alfa));
Gc=(1+alfa*t*s)/(1+t*s)/alfa;
[gmc,pmc]=margin(G*Gc)
figure;
margin(G*Gc)
>>figure;
step(feedback(G,1))
>>figure;
step(feedback(G*Gc,1))