1、实验 8 simulink 仿真-答案1、设方程 )(bxdyarx(1)假设 r =1,d=0.5 ,a=0.1,b=0.02,x(0)=25,y(0)=2,通过连接 simulink模块进行仿真 x(t)、y(t) 以及 y(x)的图像。编写模块图为:仿真结果为:(2)利用 s-function 实现(1)的仿真建立如下模型:命名为 abc 的 s-function 如下:function sys,x0,str,ts = abc(t,x,u,flag)switch flag,case 0,sys,x0,str,ts=mdlInitializeSizes;case 1,sys=mdlDeri
2、vatives(t,x,u);case 2,sys=mdlUpdate(t,x,u);sys=;case 3,sys=mdlOutputs(t,x,u);case 4,sys=mdlGetTimeOfNextVarHit(t,x,u);sys=;case 9,sys=mdlTerminate(t,x,u);sys=;otherwiseerror(Unhandled flag = ,num2str(flag);endfunction sys,x0,str,ts=mdlInitializeSizessizes = simsizes;sizes.NumContStates = 2;sizes.Num
3、DiscStates = 0;sizes.NumOutputs = 2;sizes.NumInputs = 0;sizes.DirFeedthrough = 0;sizes.NumSampleTimes = 1; sys = simsizes(sizes);x0 = 25;2;str = ;ts = 0 0;function sys=mdlDerivatives(t,x,u)sys=x(1)*(1-0.1*x(2);x(2)*(-0.5+0.02*x(1);function sys=mdlUpdate(t,x,u)sys = ;function sys=mdlOutputs(t,x,u)sys
4、=x(1);x(2);function sys=mdlGetTimeOfNextVarHit(t,x,u)sampleTime = 1; sys = t + sampleTime;function sys=mdlTerminate(t,x,u)sys = ;仿真结果:(3)以 a、b 、d、r 为参数 ,采用创建子系统与封装的方法实现( 1)仿真子系统的创建:子系统的封装设置参数名:设置参数:仿真结果:2、利用 simulink 仿真求积分 的值。10dx建立如下模型(仿真参数设置:start time 取 1,stop time 取 10):3、建立下面两个框图的控制系统 simulink 模型,绘制在阶跃 step 函数输入下的输出曲线。(1)假设 step 函数参数设为:step time=1,initial time=0,final value=2,sample time=0 。(2)假设 step 函数参数设为:step time=0.1,initial time=0,final value=1,sample time=0 。初始条件为:y(0)=2 ,y(0)=1 。(1)(2)4、用 simulink 建立下面时变系统模型: 21521sinxetx假设初始条件为 , ,请仿真 的输出)0(10)(221215xy结果。