计算机仿真编程综合测试题,计算机仿真试题及答案.doc

计算机仿真试题及答案

南京林业大学研究生试卷

题号一二三四五六七八九十总 分得分课程号 33351 课程名称 计算机仿真 20 16 ~20 17 学年第 1 学期

一、(20分)某系统的传递函数为

试用级联法、串联法和并联法中的两种画出系统模拟结构图,并列出相应的状态方程和输出方程。自拟仿真,比较两者结果。

答:选用级联法和并联法写出传递函数,公式如下:

分别画出级联法、并联法的系统模拟结构图及其状态方程和输出方程,图式如下:

使用龙格—库塔法程序进行仿真,令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

#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 + k

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值