《控制系统计算机仿真》上机实验报告word文档

兰州理工大学控制系统计算机仿真上机实验报告院系:电信学院班级:10级自动化五班姓名:学号:时间:电气工程与信息工程学院2-

2.用MATLAB语言求下列系统的状态方程、传递函数、零极点增益和部分分式形式的模型参数,并分别写出其相应的数学模型表达式:解:(1)传递函数转化为状态方程:num=1,7,24,24num=172424den=1,10,35,50,24den=1 _____ 24A,B,C,D=tf2ss(num,den)A=3524100001000010B=1000C=172424D=0G2=ss(A,B,C,D)a=_1_2_3_4_13524_21000_30100_40010b=u1_11_20_30_40c=_1_2_3_4y1172424d=u1y10状态方程为:传递函数转换为零极点增益:num=7,24,24num=72424den=10,35,50,24den= _____ 24Z,P,K=tf2zp(num,den)Z=-

2.7306+2.8531i-

2.7306-

2.8531i-

1.5388P=-

4.0000-

3.0000-

2.0000-

1.0000K=1G1=zpk(Z,P,K)Zerolain:(s+1.539)(s2+5.461s+5.6)-(s+4)(s+3)(s+2)(s+1)零极点增益方程为:传递函数转换为部分分时形式:num=7,24,24num=72424den=10,35,50,24den= _____ 24R,P,H=residue(num,den)R=4.0000-

6.000

2.000

1.0000P=-

4.0000-

3.0000-

2.0000-

1.0000H=G3=residue(R,P,H)G3=1.000

7.000

4.000

4.0000部分分式形式为:(2)解:状态方程转换为传递函数为:A=2.25,

1.25,-0.5;

2.25,-

4.25,-

1.25,-0.5;0.25,-0.5,-

1.25,-1;

1.25,-

1.75,-0.25,-0.75A=2.2500-

5.0000-

1.2500-0.500

2.2500-

4.2500-

1.2500-0.50000.2500-0.5000-

1.2500-

1.000

1.2500-

1.7500-0.2500-0.7500B=4,2,2,0B=4220C=0,2,0,2C=0202D=0D=0num,den=ss2tf(A,B,C,D)num=4.000

4.000

9.750

3.0000den=1.000

4.000

5.812____G1=tf(num,den)Transferfunction:4s3+14s2+9.75s+13-s4+4s3+5.812s2+4.156s+1.594传递函数为:状态方程转换成零极点:A=2.25,

1.25,-0.5;

2.25,-

4.25,-

1.25,-0.5;0.25,-0.5,-

1.25,-1;

1.25,-

1.75,-0.25,-0.75A=2.2500-

5.0000-

1.2500-0.500

2.2500-

4.2500-

1.2500-0.50000.2500-0.5000-

1.2500-

1.000

1.2500-

1.7500-0.2500-0.7500B=4,2,2,0B=4220C=0,2,0,2C=0202D=0D=0Z,P,K=ss2zp(A,B,C,D)Z=-0.8835+1.0463i-0.8835-

1.0463i-

1.7331P=-0.4318+0.6803i-0.4318-0.6803i-

1.6364-

1.5000K=4.0000G2=zpk(Z,P,K)Zerolain:4(s+1.733)(s2+1.767s+1.875)-(s+1.5)(s+1.636)(s2+0.8636s+0.6493)零极点增益方程为:3)转换成部分分式形式:R,P,H=residue(num,den)R=-

2.461

6.28570.0880-

2.5548i0.0880+2.5548iP=-

1.6364-

1.5000-0.4318+0.6803i-0.4318-0.6803iH=G3=residue(R,P,H)G3=4.000

4.000

9.750

3.0000部分分式形式的方程为:2-

3.用殴拉法求下列系统的输出响应在上,时的数值解。,要求保留4位小数,并将结果与真解比较。解:(1).h=0.1;disp(y=);y=1;fort=0:h:1m=y;disp(y);y=m-m_h;endy=10.90000.81000.72900.6

10.59050.53140.47

30.43050.38740.

(2).h=0.1;disp(y=);fort=0:h:1y=e_p(-t);disp(y);endy=10.90480.81870.74080.67

30.60650.54880.49660.4

30.40660.3679比较欧拉方法求解与真值的差别欧拉

10.90000.81000.72900.6

10.59050.53140.47

30.43050.38740.3487真值

10.90480.81870.74080.67

30.60650.54880.49660.4

30.40660.3679误差0-0.0048-0.00070.01180.01

20.01600.01740.0180.0188-0.0192-0.0192显然误差与h2为同阶无穷小,欧拉法具有一阶计算精度,精度较低,但算法简单2-

5.用四阶龙格库塔法求解2-3的数值解,并与前两题结果比较。解:(1)h=0.1;disp(y=);y=1;fort=0:h:1disp(y);K1=-y;K2=-(y+K1_);K3=-(y+K2_);K4=-(y+K3_h);y=y+(K1+2_K2+2_K3+K4)_;endy=10.90480.81870.74080.67

30.60650.54880.49660.4

30.40660.367

(2)比较这几种方法:对于四阶龙格-库塔方法真值

10.90480.81870.74080.67

30.60650.54880.49660.4

30.40660.3679龙库

10.90480.81870.74080.67

30.60650.54880.49660.4

30.40660.3679误差00000000000显然四阶龙格-库塔法求解精度很高,基本接近真值。三种方法比较可以得到精度(四阶)精度(二阶)精度(欧拉)。

3-

2.设典型闭环结构控制系统如下图所示,当阶跃输入幅值时,用sp

1.m求取输出y(t)的响应。y(t)r(t)_解:a=0.0160.

3.

3.421;b=3025;_0=0000;V=2;n=4;T0=0;Tf=10;h=0.01;R=20;b=(1);a=(1);A=a(2:n+1);A=rot90(rot90(eye(n-

1,n);-fliplr(A);B=zeros(

1,n-1),1;m1=length(b);C=fliplr(b),zeros(

1,n-m1);Ab=A-B_C_V;_=_0;y=0;t=T0;N=round(Tf-T0);fori=1:N;K1=Ab__+B_R;K2=Ab_(_+h_K)+B_R;K3=Ab_(_+h_K)+B_R;K4=Ab_(_+h_K)+B_R;_=_+h_(K1+2_K2+2_K3+K4;y=y,C__;t=t,t(i)+h;endplot(t,y)3-

5.下图中,若各环节的传递函数已知为:但;重新列写联接矩阵和非零元素矩阵,将程序sp

2.m完善后,应用sp

2.m求输出的响应曲线。解:P=10.0110;00.

10.17;

10.0110;00.

10.15;

10.0067700;

10.150.210;011300;

10.

10.10;

10.

10.00440;W=000000000;10000000-1;010000000;0010000-10;000100000;000010000;000001000;000001000;000000100;W0=1;0;0;0;0;0;0;0;0;WIJ=101;211;29-1;321;431;48-1;541;651;610-1;761;861;971;n=9;Y0=1;Yt0=000000000;h=0.01;L1=1;T0=0;Tf=10;nout=7;A=diag(P(:,1);B=diag(P(:,2);C=diag(P(:,3);D=diag(P(:,4);Q=B-D_W;Qn=inv(Q);R=C_W-A;V1=C_W0;Ab=Qn_R;b1=Qn_V1;Y=Yt0;y=Y(nout);t=T0;N=round(Tf-T0h_L1);fori=1:Nforj=1:L1;K1=Ab_Y+b1_Y0K2=Ab_(Y+h_K)+b1_Y0K3=Ab_(Y+h_K)+b1_Y0K4=Ab_(Y+h_K3)+b1_Y0Y=Y+h_(K1+2_K2+2_K3+K4;endy=y,Y(nout);t=t,t(i)+h_L1;endplot(t,y)3-

7.用离散相似法仿真程序sp

4.m重求上题输出的数据与曲线,并与四阶龙格库塔法比较精度。解:P=10.0110;00.

10.17;

10.0110;00.

10.15;

10.0067700;

10.150.210;011300;

10.

10.10;

10.

10.00440;W=000000000;10000000-1;010000000;0010000-10;000100000;000010-0.21200;000001000;000001000;000000100;W0=1;0;0;0;0;0;0;0;0;n=9;Y0=1;Yt0=000000000;h=0.01;L1=10;T0=0;Tf=20;nout=7;A=diag(P(:,1);B=diag(P(:,2);C=diag(P(:,3);D=diag(P(:,4);fori=1:nif(A(i)=0);FI(i)=1;FIM(i)=h_C(i(i);FIJ(i)=h_h_C(i(i;FIC(i)=1;FID(i)=0;if(D(i)=0);FID(i)=D(i(i);elseendelseFI(i)=e_p(-h_A(i(i);FIM(i)=(1-FI(i)_C(i(i);FIJ(i)=h_C(i(i)-FIM(i)_B(i(i);FIC(i)=1;FID(i)=0;if(D(i)=0);FIC(i)=C(i(i)-A(i(i);FID(i)=D(i(i);elseendendendY=zeros(n,1);_=Y;y=0;Uk=zeros(9,1);Ub=Uk;t=T0:h_L1:Tf;N=length(t);fork=1:N-1forl=1:L1Ub=Uk;Uk=W_Y+W0_Y0;Udot=(Uk-Ub;Uf=2_Uk-Ub;_=FI.__+FIM._Uk+FIJ._Udot;Y=FIC.__+FID._Uf;endy=y,Y(nout);endplot(t,y)holdonQ=B-D_W;Qn=inv(Q);R=C_W-A;V1=C_W0;Ab=Qn_R;b1=Qn_V1;Y=Yt0;y=Y(nout);t=T0;N=round(Tf-T0h_L1);fori=1:Nforj=1:L1;K1=Ab_Y+b1_Y0K2=Ab_(Y+h_K)+b1_Y0K3=Ab_(Y+h_K)+b1_Y0K4=Ab_(Y+h_K3)+b1_Y0Y=Y+h_(K1+2_K2+2_K3+K4;endy=y,Y(nout);t=t,t(i)+h_L1;endt,yplot(t,y,_r)3-

8.求下图非线性系统的输出响应y(t),并与无非线性环节情况进行比较。y(t)e(t)r(t)=105-5P=0.

10.51;01200;2110;10110;WIJ=101;14-1;211;321;431;Z=0000;S=0000;h=0.01;L1=25;n=4;T0=0Tf=20;nout=4;Y0=10;sp3_;plot(t,y,r)holdonZ=4000;S=5000;sp3_;plot(t,y,-)A=P(:,1);B=P(:,2);C=P(:,3);D=P(:,4);m=length(WIJ(:,1);W0=zeros(n,1);W=zeros(n,n);fork=1:mif(WIJ(k,2)=0);W0(WIJ(k,1)=WIJ(k,3);elseW(WIJ(k,1),WIJ(k,2)=WIJ(k,3);end;end;fori=1:nif(A(i)=0);FI(i)=1;FIM(i)=h_C(i(i);FIJ(i)=h_h_(C(i(i;FIC(i)=1;FID(i)=0;if(D(i)=0);FID(i)=D(i(i);elseendelseFI(i)=e_p(-h_A(i(i);FIM(i)=(1-FI(i)_C(i(i);FIJ(i)=h_C(i(i)-FIM(i)_B(i(i);FIC(i)=1;FID(i)=0;if(D(i)=0);FIC(i)=C(i(i)-A(i(i);FID(i)=D(i(i);elseendendendY=zeros(n,1);_=Y;y=0;Uk=zeros(n,1);Ubb=Uk;t=T0:h_L1:Tf;N=length(t);fork=1:N-1fori=1:L1Ub=Uk;Uk=W_Y+W0_Y0;fori=1:nif(Z(i)=0)if(Z(i)=1)Uk(i)=satu(Uk(i),S(i);endif(Z(i)=2)Uk(i)=dead(Uk(i),S(i);endif(Z(i)=3)Uk(i),Ubb(i)=backlash(Ubb(i),Uk(i),Ub(i),S(i);endendendUdot=(Uk-Ub;Uf=2_Uk-Ub;_=FI.__+FIM._Uk+FIJ._Udot;Yb=Y;Y=FIC.__+FID._Uf;fori=1:nif(Z(i)=0)if(Z(i)=4)Y(i)=satu(Y(i),S(i);endif(Z(i)=5)Y(i)=dead(Y(i),S(i);endif(Z(i)=6)Y(i),Ubb(i)=backlash(Ubb(i),Y(i),Yb(i),S(i);endendendendy=y,Y(nout);end饱和非线性函数satu.m为:functionUc=satu(Ur,S1)if(abs(Ur)=S1)if(Ur0)Uc=S1;elseUc=-S1;endelseUc=Ur;end从图中可以清楚的地看出,饱和非线性环节对线性系统输出响应的影响。

预览已结束,下载原文档直接使用
查看全文
若对以上有内容有疑问请反馈或举报举报
声明:
您购买的是此内容的word文档,付费前可通过免费阅读辨别合同。非质量问题不退款,如需帮助可咨询客服【客服微信】