实验8simulink仿真.docx
《实验8simulink仿真.docx》由会员分享,可在线阅读,更多相关《实验8simulink仿真.docx(10页珍藏版)》请在冰豆网上搜索。
实验8simulink仿真
实验8simulink仿真
一、实验目的
1、掌握通过模块实现simulink仿真;
2、掌握子系统的创建与封装方法;
3、掌握利用s-function实现简单系统的仿真。
二、实验内容
1、设方程
(1)假设r=1,d=,a=,b=,x(0)=25,y(0)=2,通过直接连接simulink模块的方法仿真x(t)、y(t)以及y(x)的图像。
(2)以a、b、d、r为参数,采用创建子系统与封装的方法实现
(1)仿真。
子系统结构:
子系统内部:
封装编辑:
参数设置:
结果同上。
(3)利用s-function实现
(1)的仿真。
模型建立如图:
function[sys,x0,str,ts]=fun(t,x,u,flag)
switchflag,
case0,
[sys,x0,str,ts]=mdlInitializeSizes;
case1,
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=[];
otherwise
error(['Unhandledflag=',num2str(flag)]);
end
function[sys,x0,str,ts]=mdlInitializeSizes
sizes=simsizes;
=2;
=0;
=2;
=0;
=0;
=1;
sys=simsizes(sizes);
x0=[25;2];
str=[];
ts=[00];
functionsys=mdlDerivatives(t,x,u)
sys=[x
(1)**x
(2));x
(2)*+*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=[];
结果同上
2、利用simulink仿真求积分
的值。
3、建立下面两个框图的控制系统simulink模型,绘制在阶跃step函数输入下的输出曲线。
(1)假设step函数参数设为:
steptime=1,initialtime=0,finalvalue=2,sampletime=0。
(1)
(2)假设step函数参数设为:
steptime=,initialtime=0,finalvalue=1,sampletime=0。
初始条件为:
y(0)=2,y’(0)=1。
(2)
4、用simulink建立下面时变系统模型:
假设初始条件为
,
,请仿真
的输出结果。