资源描述:
《实验8 simulink仿真-答案》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验8simulink仿真-答案1、设方程(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)switchflag,case0,[sys,x0,str,ts]=mdlInitializeSizes;case1
2、,sys=mdlDerivatives(t,x,u);case2,sys=mdlUpdate(t,x,u);sys=[];case3,sys=mdlOutputs(t,x,u);case4,sys=mdlGetTimeOfNextVarHit(t,x,u);sys=[];case9,sys=mdlTerminate(t,x,u);sys=[];otherwiseerror(['Unhandledflag=',num2str(flag)]);endfunction[sys,x0,str,ts]=mdlInitiali
3、zeSizessizes=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=[00];functionsys=mdlDerivatives(t,x,u)sys=[x(1)*(1-0.1*x(2));x(2)*(-0.5
4、+0.02*x(1))];functionsys=mdlUpdate(t,x,u)sys=[];functionsys=mdlOutputs(t,x,u)sys=[x(1);x(2)];functionsys=mdlGetTimeOfNextVarHit(t,x,u)sampleTime=1;sys=t+sampleTime;functionsys=mdlTerminate(t,x,u)sys=[];仿真结果:(3)以a、b、d、r为参数,采用创建子系统与封装的方法实现(1)仿真子系统的创建:子系统的封装设置参数名
5、:设置参数:仿真结果:2、利用simulink仿真求积分的值。建立如下模型(仿真参数设置:starttime取1,stoptime取10):3、建立下面两个框图的控制系统simulink模型,绘制在阶跃step函数输入下的输出曲线。(1)假设step函数参数设为:steptime=1,initialtime=0,finalvalue=2,sampletime=0。(2)假设step函数参数设为:steptime=0.1,initialtime=0,finalvalue=1,sampletime=0。初始条件为:y(
6、0)=2,y’(0)=1。(1)(2)4、用simulink建立下面时变系统模型:假设初始条件为,,请仿真的输出结果。