www.gusucode.com > matlab通信工程仿真源码(张德丰等编著)程序书籍 > matlab_code/matlab通信工程仿真源码(张德丰等编著)/第5章/xiu5_8.m
function [sys,x0,str,ts]= xiu5_8fun (t,x,u,flag,threshold) switch flag case 0, %flag=0初始化 sizes = simsizes; %获取Simulink仿真变量结构 sizes.NumContStates = 0; %连续系统的状态数为0 sizes.NumDiscStates = 0; %设置离散状态变量的个数 sizes.NumOutputs = 1; %设置系统输出变量的个数 sizes.NumInputs =-1; %输入信号数目是自适应的 sizes.DirFeedthrough = 1; %设置系统是直通 sizes.NumSampleTimes = 1; % 这里必须为1 sys = simsizes(sizes); %设置系统参数 str =[]; %通常为空矩阵 x0=[] %零状态 ts = [-1 0]; %采样时间由外部模块给出 case 3, %flag=3输出方程计算 sys=u(1)*(u(2)>threshold)+u(3)*(u(2)<=threshold) case {1,2,4,9}, %其他不处理的flag sys=[]; %无用的flag时返回sys为空矩阵 otherwise %异常处理 error(['Unhandled flag= ',num2str(flag)]); end