《Matlab学习与实验教程-第11章Simulink动态仿真集成环境.docx》由会员分享,可在线阅读,更多相关《Matlab学习与实验教程-第11章Simulink动态仿真集成环境.docx(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第11章 Simulink动态仿真集成环境例 11-8%* %S函数timesn .m,其揄出是输入的n倍* function sys,xO,str,ts=timesn(t,x,u,flag,n) switch flag case 0sysr xO, str, ts =mcilInitial!zeSizes;%初4台彳匕case 3sys=mdlOutputs (tz x, u, n) ;Z计算输出量case 1,2,4,9sys=;otherwise%出4昔处理error(num2str(flag) end *%mdlInitializeSizes:当flag为0时进行整个系统的初始化sys
2、,xOz str,ts=mdlInitial!zeSizes()sizesfunction%调用函数simsizes以创立结构 sizes=simsizes;%用初始化信息填充结构sizes sizes.NumContStates=0; sizes.NumDiscStates=O; sizes.NumOutputs=l;sizes.Numlnputs=l;sizes DirFeedthrough=l; sizes.NumSainpleTimes=l;%根据上面的设置设定系统初始化参数 sys=simsizes(sizes);带给其他返回参数赋值x0=;str=;ts=-1,0;%初始化子程序结
3、束%无连续状态%无离散状态%有一个输出量%有一个输入信号%输出量中含有输入量%单个采样周期%设置初始状态为零状态%将str变量设置为空字符串%彳限定继承输入信号的采样周期%mdlOutputs:当flag值为3时,计算输出量function sys=mdlOutputs(t,x,u,n) sys=n*u;%输出量计算子程序结束例119function sys,xO,str,ts=mstate(t,x,u,flag) %系统状态方程的系数矩阵A=0,1;-0.4 z-0.2;B=0;0.2;C=l,0;D=0;0;switch flag,case 0,sys,xO,str,ts=mdlIniti
4、alizeSizes;case 1,sys=mdlDerivatives(t,x,u,A,B,C,D);case 3, sys=mdlOutputs(t,x,u,A,B,C,D);case 2,4,9sys=;otherwiseerror(1 Unhandled Flag=,num2str(flag); endsysA xO,str,ts=mdlInitializeSizes%有2个连续状态变量%没有离散状态变量%有2个输出变量常有1个输入信号%输出量中含有输入量%单个采样周期%设置初始状态为零状态function sizes=simsizes;sizes.NumContStates=2;sizes.NumDiscStates=O;sizes.NumOutputs=2;sizes.Numlnputs=l;sizes.DirFeedthrough=l; sizes.NumSampleTimes=l; sys=simsizes(sizes);x0=0;0;str=;ts=0,0;function sys=mdlDerivatives(t,x,u,A,B,C,D) sys=A*x+B*u;function sys=mdlOutputs(t,x,u,A,B,C,D) sys=C*x+D*u;将该程序以文件名mstate.m存盘。