控制系统仿真与CAD实验报告.docx
《控制系统仿真与CAD实验报告.docx》由会员分享,可在线阅读,更多相关《控制系统仿真与CAD实验报告.docx(36页珍藏版)》请在冰豆网上搜索。
控制系统仿真与CAD实验报告
《控制系统仿真与CAD》
实验课程报告
一、实验教学目标与基本要求
上机实验是本课程重要的实践教学环节。
实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的实验手段与实践技能,掌握应用MATLAB/Simulink求解控制问题的方法,培养学生分析问题、解决问题、应用知识的能力和创新精神,全面提高学生的综合素质。
通过对MATLAB/Simulink进行求解,基本掌握常见控制问题的求解方法与命令调用,更深入地认识和了解MATLAB语言的强大的计算功能与其在控制领域的应用优势。
上机实验最终以书面报告的形式提交,作为期末成绩的考核内容。
二、题目及解答
第一部分:
MATLAB必备基础知识、控制系统模型与转换、线性控制系统的计算机辅助分析
1.
>>f=inline('[-x
(2)-x(3);x
(1)+a*x
(2);b+(x
(1)-c)*x(3)]','t','x','flag','a','b','c');[t,x]=ode45(f,[0,100],[0;0;0],[],0.2,0.2,5.7);plot3(x(:
1),x(:
2),x(:
3)),grid,figure,plot(x(:
1),x(:
2)),grid
2.
>>y=@(x)x
(1)^2-2*x
(1)+x
(2);ff=optimset;ff.LargeScale='off';ff.TolFun=1e-30;ff.TolX=1e-15;ff.TolCon=1e-20;x0=[1;1;1];xm=[0;0;0];xM=[];A=[];B=[];Aeq=[];Beq=[];[x,f,c,d]=fmincon(y,x0,A,B,Aeq,Beq,xm,xM,@wzhfc1,ff)
Warning:
OptionsLargeScale='off'andAlgorithm=
'trust-region-reflective'conflict.
IgnoringAlgorithmandrunningactive-setalgorithm.Torun
trust-region-reflective,set
LargeScale='on'.Torunactive-setwithoutthiswarning,use
Algorithm='active-set'.
>Infminconat456
Localminimumpossible.Constraintssatisfied.
fminconstoppedbecausethesizeofthecurrentsearchdirectionislessthan
twicetheselectedvalueofthestepsizetoleranceandconstraintsare
satisfiedtowithintheselectedvalueoftheconstrainttolerance.
Activeinequalities(towithinoptions.TolCon=1e-20):
lowerupperineqlinineqnonlin
2
x=
1.0000
0
1.0000
f=
-1.0000
c=
4
d=
iterations:
5
funcCount:
20
lssteplength:
1
stepsize:
3.9638e-26
algorithm:
'medium-scale:
SQP,Quasi-Newton,line-search'
firstorderopt:
7.4506e-09
constrviolation:
0
message:
[1x766char]
3.
(a)>>s=tf('s');G=(s^3+4*s+2)/(s^3*(s^2+2)*((s^2+1)^3+2*s+5))
G=
s^3+4s+2
------------------------------------------------------
s^11+5s^9+9s^7+2s^6+12s^5+4s^4+12s^3
Continuous-timetransferfunction.
(b)
>>z=tf('z',0.1);H=(z^2+0.568)/((z-1)*(z^2-0.2*z+0.99))
H=
z^2+0.568
-----------------------------
z^3-1.2z^2+1.19z-0.99
Sampletime:
0.1seconds
Discrete-timetransferfunction.
4.
>>A=[010;001;-15-4-13];B=[002]';C=[100];D=0;G=ss(A,B,C,D),Gs=tf(G),Gz=zpk(G)
G=
a=
x1x2x3
x1010
x2001
x3-15-4-13
b=
u1
x10
x20
x32
c=
x1x2x3
y1100
d=
u1
y10
Continuous-timestate-spacemodel.
Gs=
2
-----------------------
s^3+13s^2+4s+15
Continuous-timetransferfunction.
Gz=
2
---------------------------------
(s+12.78)(s^2+0.2212s+1.174)
Continuous-timezero/pole/gainmodel.
5.
设采样周期为0.01s
>>z=tf('z',0.01);H=(z+2)/(z^2+z+0.16)
H=
z+2
--------------
z^2+z+0.16
Sampletime:
0.01seconds
Discrete-timetransferfunction.
6.
>>symsJKpKis;G=(s+1)/(J*s^2+2*s+5);Gc=(Kp*s+Ki)/s;GG=feedback(G*Gc,1)
GG=
((Ki+Kp*s)*(s+1))/(J*s^3+(Kp+2)*s^2+(Ki+Kp+5)*s+Ki)
7.
(a)>>s=tf('s');G=(211.87*s+317.64)/((s+20)*(s+94.34)*(s+0.1684));Gc=(169.6*s+400)/(s*(s+4));H=1/(0.01*s+1);GG=feedback(G*Gc,H),Gd=ss(GG),Gz=zpk(GG)
GG=
359.3s^3+3.732e04s^2+1.399e05s+127056
----------------------------------------------------------------
0.01s^6+2.185s^5+142.1s^4+2444s^3+4.389e04s^2+1.399e05s+127056
Continuous-timetransferfunction.
Gd=
a=
x1x2x3x4x5x6
x1-218.5-111.1-29.83-16.74-6.671-3.029
x212800000
x30640000
x40032000
x5000800
x6000020
b=
u1
x14
x20
x30
x40
x50
x60
c=
x1x2x3x4x5x6
y1001.0973.5591.6680.7573
d=
u1
y10
Continuous-timestate-spacemodel.
Gz=
35933.152(s+100)(s+2.358)(s+1.499)
----------------------------------------------------------------------
(s^2+3.667s+3.501)(s^2+11.73s+339.1)(s^2+203.1s+1.07e04)
Continuous-timezero/pole/gainmodel.
(b)设采样周期为0.1s
>>z=tf('z',0.1);G=(35786.7*z^2+108444*z^3)/((1+4*z)*(1+20*z)*(1+74.04*z));Gc=z/(1-z);H=z/(0.5-z);GG=feedback(G*Gc,H),Gd=ss(GG),Gz=zpk(GG)
GG=
-108444z^5+1.844e04z^4+1.789e04z^3
----------------------------------------------------------------
1.144e05z^5+2.876e04z^4+274.2z^3+782.4z^2+47.52z+0.5
Sampletime:
0.1seconds
Discrete-timetransferfunction.
Gd=
a=
x1x2x3x4x5
x1-0.2515-0.00959-0.1095-0.05318-0.01791
x20.250000
x300.25000
x4000.12500
x50000.031250
b=
u1
x11
x20
x30
x40
x50
c=
x1x2x3x4x5
y10.39960.63490.10380.050430.01698
d=
u1
y1-0.9482
Sampletime:
0.1seconds
Discrete-timestate-spacemodel.
Gz=
-0.94821z^3(z-0.5)(z+0.33)
----------------------------------------------------------
(z+0.3035)(z+0.04438)(z+0.01355)(z^2-0.11z+0.02396)
Sampletime:
0.1seconds
Discrete-timezero/pole/gainmodel.
8.
>>s=tf('s');g1=1/(s+1);g2=s/(s^2+2);g3=1/s^2;g4=(4*s+2)/(s+1)^2;g5=50;g6=(s^2+2)/(s^3+14);G1=feedback(g1*g2,g4);G2=feedback(g3,g5);GG=3*feedback(G1*G2,g6)
GG=
3s^6+6s^5+3s^4+42s^3+84s^2+42s
---------------------------------------------------------------------------
s^10+3s^9+55s^8+175s^7+300s^6+1323s^5+2656s^4+3715s^3+7732s^2+5602s+1400
Continuous-timetransferfunction.
9.
>>s=tf('s');T0=0.01;T1=0.1;T2=1;G=(s+1)^2*(s^2+2*s+400)/((s+5)^2*(s^2+3*s+100)*(s^2+3*s+2500));Gd1=c2d(G,T0),Gd2=c2d(G,T1),Gd3=c2d(G,T2),step(G),figure,step(Gd1),figure,step(Gd2),figure,step(Gd3)
Gd1=
4.716e-05z^5-0.0001396z^4+9.596e-05z^3+8.18e-05z^2-0.0001289z+4.355e-05
----------------------------------------------------------------
z^6-5.592z^5+13.26z^4-17.06z^3+12.58z^2-5.032z+0.8521
Sampletime:
0.01seconds
Discrete-timetransferfunction.
Gd2=
0.0003982z^5-0.0003919z^4-0.000336z^3+0.0007842z^2-0.000766z+0.0003214
----------------------------------------------------------------
z^6-2.644z^5+4.044z^4-3.94z^3+2.549z^2-1.056z+0.2019
Sampletime:
0.1seconds
Discrete-timetransferfunction.
Gd3=
8.625e-05z^5-4.48e-05z^4+6.545e-06z^3+1.211e-05z^2-3.299e-06z+1.011e-07
---------------------------------------------------------------
z^6-0.0419z^5-0.07092z^4-0.0004549z^3+0.002495z^2-3.347e-05z+1.125e-07
Sampletime:
1seconds
Discrete-timetransferfunction.
10.
(a)>>G=tf(1,[1212]);eig(G),pzmap(G)
ans=
-2.0000
-0.0000+1.0000i
-0.0000-1.0000i
系统为临界稳定。
(b)>>G=tf(1,[63211]);eig(G),pzmap(G)
ans=
-0.4949+0.4356i
-0.4949-0.4356i
0.2449+0.5688i
0.2449-0.5688i
有一对共轭复根在右半平面,所以系统不稳定。
(c)>>G=tf(1,[11-3-12]);eig(G),pzmap(G)
ans=
-2.0000
-1.0000
1.0000
1.0000
有两根在右半平面,故系统不稳定。
11.
(1)>>H=tf([-32],[1-0.2-0.250.05]);pzmap(H),abs(eig(H'))
ans=
0.5000
0.5000
0.2000
系统稳定。
(2)>>H=tf([3-0.39-0.09],[1-1.71.040.2680.024]);pzmap(H),abs(eig(H'))
ans=
1.1939
1.1939
0.1298
0.1298
系统不稳定。
12.
(1)>>A=[-0.20.5000;0-0.51.600;00-14.385.80;000-33.3100;0000-10];B=[000030]';C=zeros(1,5);D=0;G=ss(A,B,C,D),eig(G)
G=
a=
x1x2x3x4x5
x1-0.20.5000
x20-0.51.600
x300-14.385.80
x4000-33.3100
x50000-10
b=
u1
x10
ans=
-0.2000
-0.5000
-14.3000
-33.3000
-10.0000
x20
x30
x40
x530
c=
x1x2x3x4x5
y100000
d=
u1
y10
Continuous-timestate-spacemodel.
系统稳定。
13.
>>A=[-5200;0-400;-32-4-1;-320-4];A=sym(A);symst;x=expm(A*t)*[1;2;0;1]
x=
4*exp(-4*t)-3*exp(-5*t)
2*exp(-4*t)
12*exp(-4*t)-18*exp(-5*t)+3*t*exp(-4*t)-4*t^2*(exp(-4*t)/(4*t)+exp(-4*t)/(2*t^2))+8*t^2*(exp(-4*t)/2-exp(-4*t)/(2*t))-16*t*(exp(-4*t)-exp(-4*t)/(2*t))
6*exp(-4*t)-9*exp(-5*t)-8*t*(exp(-4*t)-exp(-4*t)/(2*t))
>>G=ss([-5200;0-400;-32-4-1;-320-4],[1;2;0;1],eye(4),zeros(4,1));tt=0:
0.01:
2;xx=[];
fori=1:
length(tt)
t=tt(i);xx=[xxeval(x)];
end
y=impulse(G,tt);plot(tt,xx,tt,y,':
')
解析解和数值解的脉冲响应曲线如图所示,可以看出他们完全一致。
14.
(a)>>s=tf('s');G=(s+6)*(s-6)/(s*(s+3)*(s+4-4j)*(s+4+4j));rlocus(G),grid
不存在K使得系统稳定。
(b)>>G=tf([1,2,2],[111480]);rlocus(G),grid
放大根轨迹图像,可以看到,根轨迹与虚轴交点处,K值为5.53,因此,015.
pade_app.m
functionGr=pade_app(c,r,k)
w=-c(r+2:
r+k+1)';vv=[c(r+1:
-1:
1)';zeros(k-1-r,1)];
W=rot90(hankel(c(r+k:
-1:
r+1),vv));V=rot90(hankel(c(r:
-1:
1)));
x=[1(W\w)'];dred=x(k+1:
-1:
1)/x(k+1);
y=[c
(1)x(2:
r+1)*V'+c(2:
r+1)];nred=y(r+1:
-1:
1)/x(k+1);
Gr=tf(nred,dred);
paderm.m
function[n,d]=paderm(tau,r,k)
c
(1)=1;fori=2:
r+k+1,c(i)=-c(i-1)*tau/(i-1);end
Gr=pade_app(c,r,k);n=Gr.num{1}(k-r+1:
end);d=Gr.den{1};
>>tau=2;[n,d]=paderm(tau,1,3);s=tf('s');G=tf(n,d)*(s-1)/(s+1)^5,rlocus(G)
G=
-1.5s^2+4.5s-3
---------------------------------------------------------------------------
s^8+8s^7+29.5s^6+65.5s^5+95s^4+91s^3+55.5s^2+19.5s+3
Continuous-timetransferfunction.
由图得016.
(a)>>s=tf('s');G=8*(s+1)/(s^2*(s+15)*(s^2+6*s+10));bode(G),figure,nyquist(G),figure,nichols(G),[Gm,y,wcg,wcp]=margin(G),figure,step(feedback(G,1))
Gm=
30.4686
y=
4.2340
wcg=
1.5811
wcp=
0.2336
系统稳定。
(b)>>z=tf('z');G=0.45*(z+1.31)*(z+0.054)*(z-0.957)/(z*(z-1)*(z-0.368)*(z-0.99));bode(G),figure,nyquist(G),figure,nichols(G),[Gm,y,wcg,wcp]=margin(G),figure,step(feedback(G,1))
Warning:
Theclosed-loopsystemisunstable.
>Inwarningat26
InDynamicSystem.marginat63
Gm=
0.9578
y=
-1.7660
wcg=
1.0464
wcp=
1.0734
系统不稳定。
17.
>>s=tf('s');G=100*(1+s/2.5)/(s*(1+s/0.5)*(1+s/50));Gc=1000*(s+1)*(s+2.5)/((s+0.5)*(s+50));GG=G*Gc;nyquist(GG