机械工程控制基础Matlab编程实验报告
学院: 机电学院
班级: 机械096班
姓名: 杜静
学号: 2009071297
实验2
numG=[3 2],denG=[2 4 5 1]
G=tf(numG,denG)
[zG,pG,kG]=zpkdata(G,'v')
[resG,polG,otherG]=residue(numG,denG)
impulse(G)
zG = -0.6667
pG = -0.8796 + 1.1414i
-0.8796 - 1.1414i
-0.2408
kG = 1.5000
实验三function y=f()
numG=[3 2],denG=[2 4 5 1]
numstep=numG
denstep=[denG 0]
Gstep=tf(numstep,denstep)
impulse(Gstep)
G=tf(numG,denG)
step(G,30)
DC_gain=dcgain(G)
结论
numG = 3 2
denG = 2 4 5 1
numstep = 3 2
denstep = 2 4 5 1 0
Transfer function:
3 s + 2
-------------------------
2 s^4 + 4 s^
3 + 5 s^2 + s
Transfer function:
3 s + 2
-----------------------
2 s^
3 +
4 s^2 +
5 s + 1
DC_gain = 2
实验4
源程序
Gc=tf(80*[1 3],[1 15 *3])
Gp=tf(4,conv([0.5 1],[2 1]))
H=tf(1,[0.05 1])
T_ref=feedback(Gp*Gc,H)
[zT_ref,pT_ref,kT_ref]=zpkdata(T_ref,'v')
T_ref_gainDC=dcgain(T_ref)
t=[0:0.01:2]
Y_ref=Step(T_ref,t)
T_dist=feedback(Gp,Gc*H)
[zT_dist,pT_dist,kT_dist]=zpkdata(T_dist,'v') T_dist_gainDC=dcgain(T_dist)
Y_dist=step(T_dist,t)
plot(t,Y_ref,' ',t,y_dist,’--’)
text(1.0,1.00,'reference input')
text(1.0,0.22,'disturbance input')
结论
Transfer function:
16 s^2 + 368 s + 960
-------------------------------------------------
0.05 s^4 + 3.375 s^3 + 53.17 s^2 + 435.8 s + 1005
zT_ref = -20
-3
pT_ref = -49.3658
-7.3336 + 7.9786i
-7.3336 - 7.9786i
-3.4670
kT_ref = 320
T_ref_gainDC = 0.9552
实验5
程序;
G=tf([10 50],[1 4 3])
t=[0:0.06:6]';
u=2*cos(5*t+30*pi/180);
y=lsim(G,u,t);
[mag,phase]=bode(G,5)
yss=2*mag*cos(5*t+(30+phase)*pi/180); plot(t,u,'-',t,y,'--',t,yss,'-.')
结论mag = 2.3783
phase = -92.7263
实验6. 伯德图、尼柯尔斯图和奈奎斯特图
对如下传递函数绘制其伯德图、尼柯尔斯图和奈奎斯特图
16
24.32081.16042.24640
1280)(2
3
4
+++++=
s s
s
s
s s G
源程序
numG=[1280 640] denG=[1 24.2 1604.81 320.24 16] G=tf(numG,denG)
w=logspace(-2,3,100)' figure(1);bode(G,w) figure(2);nichols(G,w) axis([-270 0 -40 40]) grid;ngrid figure(3);nyquist(G) axis equal
伯德图
尼柯尔斯图
奈奎斯特图
实验7. 转角频率和渐近线
计算转角频率,并使用MA TLAB画出例6伯德图的幅频特性渐近线。
源程序
numG=[1280 640]
denG=[1 24.2 1604.81 320.24 16]
G=tf(numG,denG)
[z,p,k]=zpkdata(G,'v')
damp(z),damp(p)
abs(z),abs(p)
w=logspace(-2,3,100)';
[mag,phase]=bode(G,w)
mag=reshape(mag,[100 1]);
semilogx(w,20*log10(mag),'--')
hold on
lfg=dcgain(G)
cf1_dB=20*log10(lfg)
plot([0.01;0.1],[cf1_dB;cf1_dB],'-')
cf2_dB=cf1_dB-40*log10(0.5/0.1)
plot([0.1;0.5],[cf1_dB;cf2_dB],'-')
cf3_dB=cf2_dB-20*log10(40/0.5)
plot([0.5;40],[cf2_dB;cf3_dB],'-')
end_dB=cf3_dB-60*log10(100/40)
plot([40;1000],[cf3_dB;end_dB],'-')
hold off
text(0.23,25,'-40dB/dec')
text(15,-25,'-20dB/dec')
text(15,-70,'-60dB/dec')
axis([0.01 1000 -100 40])
结论
z = -0.5000
p = -12.0000 +38.1576i
-12.0000 -38.1576i
-0.1000 + 0.0000i
-0.1000 - 0.0000i
k = 1280
Eigenvalue Damping Freq. (rad/s)
-5.00e-001 1.00e+000 5.00e-001
Eigenvalue Damping Freq. (rad/s)
-1.20e+001 + 3.82e+001i 3.00e-001 4.00e+001 -1.20e+001 - 3.82e+001i 3.00e-001 4.00e+001 -1.00e-001 + 2.80e-009i 1.00e+000 1.00e-001 -1.00e-001 - 2.80e-009i 1.00e+000 1.00e-001
例6伯德图的幅频特性渐近线
实验8. 穿越频率、裕量和稳定性
图2系统反馈的方框图
使用margin函数求图2中反馈系统的增益裕量,相角裕量及相应的穿越频率,其中)
G与
(s
实验6相同,1
s
H。利用裕量确定此反馈系统的稳定性。利用实验6中的尼柯尔斯图和(
)
奈奎斯特图并通过计算闭环系统的极点来检验你的答案。
源程序
numG=[1280 640]
denG=[1 24.2 1604.81 320.24 16]
G=tf(numG,denG)
H=1
GH=G*H
margin(GH)
T=feedback(G,H)
poles_T=pole(T)
结论
numG = 1280 640
denG = 1.0e+003 *
0.0010 0.0242 1.6048 0.3202 0.0160
Transfer function:
1280 s + 640
----------------------------------------
s^4 + 24.2 s^3 + 1605 s^2 + 320.2 s + 16
H = 1
Transfer function:
1280 s + 640
----------------------------------------
s^4 + 24.2 s^3 + 1605 s^2 + 320.2 s + 16
Transfer function:
1280 s + 640
----------------------------------------
s^4 + 24.2 s^3 + 1605 s^2 + 1600 s + 656
poles_T =
-11.5970 +38.0338i
-11.5970 -38.0338i
-0.5030 + 0.4023i
-0.5030 - 0.4023i
实验9
实验10
lfg_CL = 0.9960
lfg_CL_dB = -0.0347 M_pw = 5.3719
i = 15
wp = 1.4514
实验11
a
tau_sen = 0.0500
Kproc = 4
selected_point = 0.0438 +15.8851i
kk = 81.3817
polesCL = -28.6674
3.0837 +1
4.7748i
3.0837 -1
4.7748i
B
源程序
tauP1=2;tauP2=0.5;tau_sen=0.05 Kproc=4
denG=conv([tauP1 1],[tauP2 1]); Gp=tf(Kproc,denG)
H=tf(1,[tau_sen 1])
t=[0:0.02:10]' ;
for Kp=0.7:0.2:1.7;
T=feedback(Kp*Gp,H,-1);
ys=step(T,t);
ref=dcgain(T);
yss=ys(length(ys));
disp([Kp yss])
plot(t,ys)
if ishold~=1,hold on,end
end
hold off
结论
tau_sen = 0.0500
Kproc = 4
C
结论
tau_sen = 0.0500
Kproc = 4
KP = 1.2550
y_ref_ss = 0.8339
y_dist_ss = 0.6645