实验8 simulink仿真-答案 1、设方程)()(bxdyyayrxx (1)假设 r =1,d=0.5,a=0.1,b=0.02,x (0)=25,y (0)=2,通过连接 simu link 模块进行仿真 x (t)、y (t)以及 y (x )的图像。 编写模块图为: 仿真结果为: (2)利用 s-fu nction 实现(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=mdlDerivatives(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=[]; otherwise error(['Unhandled flag = ',num2str(flag)]); end function [sys,x0,str,ts]=mdlInitializeSizes sizes = simsizes; sizes.NumContStates = 2; sizes.NumDiscStates = 0; sizes.NumOutputs = 2; sizes.NumInputs = 0; sizes.DirFeedthrough = 0; sizes.NumSampleTimes = 1; sys = simsizes(sizes); x0 = [25;2]; str = []; ts = [0 0]; fu nction sy s=mdlDeriv ativ es(t,x ,u ) sy s=[x (1)*(1-0.1*x (2));x (2)*(-0.5+0.02*x (1))]; fu nction sy s=mdlUpdate(t,x ,u ) sy s = []; fu nction sy s=mdlOu tpu ts(t,x ,u ) sy s=[x (1);x (2)]; fu nction sy s=mdlGetTimeOfNex tVarHit(t,x ,u ) sampleTime = 1; sy s = t + sampleTime; fu nction sy s=mdlTerminate(t,x ,u ) sy s = []; 仿真结果: (3)以a、b、d、r 为参数,采用创建子系统与封装的方法实现(1)仿真 子系统的创建: 子系统的封装设置参数名: 设置参数: 仿真结果: 2、利用 simu link 仿真求积分101 11dxx的值。 建立如下模型(仿真参数设置: start time 取 1,stop time 取 10): 3、建立下面两个框图的控制系统 simu link 模型,绘制在阶跃 step 函数输入下的输出曲线。 (1)假设 step 函数参数设为:step time=1 ,initial time=0,final v alu e=2,sample time=0。 (2)假设 step 函数参数设为:step time=0.1,initial time=0,final v alu e=1,sample time=0。初始条件为:y (0)=2,y’(0)=1。 (1 ) (2 ) 4、用 simulink 建立下面时变系统模型: 215211sinxxettxxt 假设初始条件为2)0(1x,0)0(2x,请仿真21215221xxyy的输出结果。