《計算機仿真試題及答案.doc》由會員分享,可在線閱讀,更多相關(guān)《計算機仿真試題及答案.doc(10頁珍藏版)》請在裝配圖網(wǎng)上搜索。
學(xué)號 專業(yè)名稱 姓名
學(xué)號
班號
南京林業(yè)大學(xué)研究生試卷
題號
一
二
三
四
五
六
七
八
九
十
總 分
得分
課程號 33351 課程名稱 計算機仿真 20 16 ~20 17 學(xué)年第 1 學(xué)期
一、(20分)某系統(tǒng)的傳遞函數(shù)為
試用級聯(lián)法、串聯(lián)法和并聯(lián)法中的兩種畫出系統(tǒng)模擬結(jié)構(gòu)圖,并列出相應(yīng)的狀態(tài)方程和輸出方程。自擬仿真,比較兩者結(jié)果。
答:選用級聯(lián)法和并聯(lián)法寫出傳遞函數(shù),公式如下:
分別畫出級聯(lián)法、并聯(lián)法的系統(tǒng)模擬結(jié)構(gòu)圖及其狀態(tài)方程和輸出方程,圖式如下:
狀態(tài)方程:
輸出方程:
狀態(tài)方程:
輸出方程:
使用龍格—庫塔法程序進行仿真,令u=1,系統(tǒng)在t=0-2s之間(仿真步長0.1s)則輸出y截圖如下:
比較后發(fā)現(xiàn)兩者仿真結(jié)果接近。
二、(20分)已知系統(tǒng)的狀態(tài)方程及輸出方程
擬用四階龍格-庫塔法求系統(tǒng)在t=0-2s之間的輸出值(仿真步長取0.01s或0.1s),試編寫仿真程序,對仿真結(jié)果截圖。(單號C++,雙號VB)
答:用c++進行四階龍格-庫塔法,系統(tǒng)在t=0-2s間的(仿真步長0.01)編程:
#include
#include
using namespace std;
float x1;
float x2;
float x3;
float x4;
float t;
float f1(float x1,float x2,float x3,float x4,float t)
{
float f1;
return f1=3*x1+2*x2-x3;
}
float f2(float x1,float x2,float x3,float x4,float t)
{
float f2;
return f2=2*x1-x2+2*x3;
}
float f3(float x1,float x2,float x3,float x4,float t)
{
float f3;
return f3=x1+2*x2-x3+2;
}
float f4(float x1,float x2,float x3,float x4,float t)
{
float f4;
return f4=0;
}
int main()
{
float k11,k12,k13,k14,k21,k22,k23,k24,k31,k32,k33,k34,k41,k42,k43,k44;
float t=0,h=0.01;
double y;
float x1=0,x2=0,x3=0,x4=0;
for(int i=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="<= 0.5 Then
n = n + 1
End If
Next
If 0.4 <= n / 25 <= 0.6 Then
m = m + 1
End If
If m / 25 >= 0.9 Then
s = s + 1
End If
Next
Text1.Text = s
End Sub
仿真結(jié)果截圖如下:
5、 (20分)某自選市場,平均每分鐘有6位顧客到來,每位顧客購物時間服從(4.2,7.2)分鐘均布(不包括交費時間)。有十個收銀臺,每位顧客服務(wù)時間服從(1.2,2)分鐘均布。試用GPSS仿真其排隊情況。要求畫出仿真模型的程序塊框圖,列出程序清單,對仿真結(jié)果截圖。(仿真4000-5000次)
答:程序清單及程序塊框圖如下:
SIMULATE
1 STORAGE 10
GENERATE 1/6,0
ADVANCE 5.7,1.5
QUEUE 1
ENTER 1
DEPART 1
MARK
ADVANCE 1.6,.4
LEAVE 1
TABULATE 1
TERMINATE 1
1 TABLEIA,5,5,10
START 4000
END
鏈接地址:http://kudomayuko.com/p-6548728.html