计算机仿真试题与答案Word格式.docx
《计算机仿真试题与答案Word格式.docx》由会员分享,可在线阅读,更多相关《计算机仿真试题与答案Word格式.docx(12页珍藏版)》请在冰豆网上搜索。
分别画出级联法、并联法的系统模拟结构图及其状态方程和输出方程,图式如下:
状态方程:
输出方程:
使用龙格—库塔法程序进行仿真,令u=1,系统在t=0-2s之间(仿真步长0.1s)则输出y截图如下:
比较后发现两者仿真结果接近。
二、(20分)已知系统的状态方程及输出方程
拟用四阶龙格-库塔法求系统在t=0-2s之间的输出值(仿真步长取0.01s或0.1s),试编写仿真程序,对仿真结果截图。
(单号C++,双号VB)
答:
用c++进行四阶龙格-库塔法,系统在t=0-2s间的(仿真步长0.01)编程:
#include<
iostream>
cstring>
usingnamespacestd;
floatx1;
floatx2;
floatx3;
floatx4;
floatt;
floatf1(floatx1,floatx2,floatx3,floatx4,floatt)
{
floatf1;
returnf1=3*x1+2*x2-x3;
}
floatf2(floatx1,floatx2,floatx3,floatx4,floatt)
floatf2;
returnf2=2*x1-x2+2*x3;
floatf3(floatx1,floatx2,floatx3,floatx4,floatt)
floatf3;
returnf3=x1+2*x2-x3+2;
floatf4(floatx1,floatx2,floatx3,floatx4,floatt)
floatf4;
returnf4=0;
intmain()
floatk11,k12,k13,k14,k21,k22,k23,k24,k31,k32,k33,k34,k41,k42,k43,k44;
floatt=0,h=0.01;
doubley;
floatx1=0,x2=0,x3=0,x4=0;
for(inti=1;
i<
200;
i++)
t=t+h;
k11=h*f1(x1,x2,x3,x4,t);
k21=h*f2(x1,x2,x3,x4,t);
k31=h*f3(x1,x2,x3,x4,t);
k41=h*f4(x1,x2,x3,x4,t);
k12=h*f1(x1+k11/2,x2+k21/2,x3+k31/2,x4+k41/2,t+h/2);
k22=h*f2(x1+k11/2,x2+k21/2,x3+k31/2,x4+k41/2,t+h/2);
k32=h*f3(x1+k11/2,x2+k21/2,x3+k31/2,x4+k41/2,t+h/2);
k42=h*f4(x1+k11/2,x2+k21/2,x3+k31/2,x4+k41/2,t+h/2);
k13=h*f1(x1+k12/2,x2+k22/2,x3+k32/2,x4+k42/2,t+h/2);
k23=h*f2(x1+k12/2,x2+k22/2,x3+k32/2,x4+k42/2,t+h/2);
k33=h*f3(x1+k12/2,x2+k22/2,x3+k32/2,x4+k42/2,t+h/2);
k43=h*f4(x1+k12/2,x2+k22/2,x3+k32/2,x4+k42/2,t+h/2);
k14=h*f1(x1+k13,x2+k23,x3+k33,x4+k43,t+h);
k24=h*f2(x1+k13,x2+k23,x3+k33,x4+k43,t+h);
k34=h*f3(x1+k13,x2+k23,x3+k33,x4+k43,t+h);
k44=h*f4(x1+k13,x2+k23,x3+k33,x4+k43,t+h);
x1=x1+(k11+2*k12+2*k13+k14)/6;
x2=x2+(k21+2*k22+2*k23+k24)/6;
x3=x3+(k31+2*k32+2*k33+k34)/6;
}
y=x1+2*x2-2*x3;
cout<
<
"
y="
y<
endl;
return0;
仿真结果截图如下:
三、(20分)已知单位反馈系统的开环传递函数为
试用Z域离散相似法和时域离散相似法进行仿真,编写仿真程序,对仿真结果截图。
(输出初态为0,输入为3,仿真步长为0.02S,100-200个周期)
(单号VB,双号C++)
先将函数
化成为:
画出系统结构图:
使用z域离散相似法计算得:
仿真程序如下:
PrivateSubCommand1_Click()
DimnAsSingle
DimtAsSingle
Dimw(200)AsSingle
Dimx(200)AsSingle
Dimz(200)AsSingle
Dimy(200)AsSingle
Dimu(200)AsSingle
t=0.02
y(0)=0
Forn=0To199
w(n+1)=w(n)+t*3
x(n+1)=x(n)*Exp(-4*t)+w(n+1)-w(n)*(3+Exp(-4*t))/4
y(n+1)=y(n)*Exp(-3*t)+x(n)*50*(1-Exp(-3*t))/3
Next
Text1.Text=y(200)
EndSub
使用时域相似法计算得:
Dimw(2000)AsSingle
Dimx(2000)AsSingle
Dimy(2000)AsSingle
DimTAsSingle
T=0.02
w(n+1)=w(n)+T*3
x(n+1)=x(n)*Exp(-4*T)+(w(n)+3)*(0.25-0.25*Exp(-4*T))
y(n+1)=Exp(-3*T)*y(n)+50*x(n)*(1-Exp(-3*T))/3
4、(20分)投?
硬?
?
,至少投?
多少次,才能使正面朝上的?
率在0.4-0.6之?
的?
率不小于0.9?
程序,?
果截?
。
(?
8000-12000次)
12000次)程序如下:
DimaAsSingle
DimiAsInteger
DimjAsInteger
DimtAsInteger
DimsAsSingle
Forj=1To12000
n=0
Fori=1To25
r=Rnd()
Ifr>
=0.5Then
n=n+1
EndIf
If0.4<
=n/25<
=0.6Then
m=m+1
Ifm/25>
=0.9Then
s=s+1
Text1.Text=s
如下:
5、(20分)某自?
市?
,平均每分?
有6位?
客到?
,每位?
客?
物?
服?
(4.2,7.2)分?
均布(不包括交?
)。
有十?
收?
台,每位?
客服?
(1.2,2)分?
均布。
用GPSS?
其排?
情?
要求?
出?
模型的程序?
,列出程序?
?
4000-5000次)
程序?
及程序?
SIMULATE
1STORAGE10
GENERATE1/6,0
ADVANCE5.7,1.5
QUEUE1
ENTER1
DEPART1
MARK
ADVANCE1.6,.4
LEAVE1
TABULATE1
TERMINATE1
1
TABLE
IA,5,5,10
START4000
END