⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysfuntmpl.m

📁 清华大学出版社 邵玉斌编写的《通信系统建模与仿真实例分析》一书的所有MATLAB和SIMULINK代码
💻 M
字号:
function [sys,x0,str,ts] = sfuntmpl(t,x,u,flag) 
switch flag, 
  case 0,   % Initialization  初始化部分 
    [sys,x0,str,ts]=mdlInitializeSizes; 
  case 1,   % Derivatives 计算导数    
    sys=mdlDerivatives(t,x,u); 
  case 2,   % Update  差分方程递推更新 
    sys=mdlUpdate(t,x,u); 
  case 3,   % Outputs 计算输出 
    sys=mdlOutputs(t,x,u); 
  case 4,   % 取得下一步仿真的时间 
    sys=mdlGetTimeOfNextVarHit(t,x,u); 
  case 9,   % 终止     
    sys=mdlTerminate(t,x,u); 
  otherwise % Unexpected flags  出错处理 
    error(['Unhandled flag = ',num2str(flag)]); 
end 
% sfuntmpl 函数结束 
 
%=================================================================== 
% mdlInitializeSizes模型初始化函数,返回: 
% sys是系统参数 
% x0是系统初始状态,若没有状态,取[ ] 
% str是系统阶字串,通常设为 [ ] 
% ts是取样时间矩阵,对连续取样时间,ts取 [0 0] 
% 若使用内部取样时间,ts取[-1 0],-1表示继承输入信号的采样周期 
%==================================================================== 
function [sys,x0,str,ts]=mdlInitializeSizes  % 模型初始化函数 
sizes = simsizes; % 取系统默认设置 
sizes.NumContStates  = 0;   % 设置连续状态变量的个数 
sizes.NumDiscStates  = 0;   % 设置离散状态变量的个数 
sizes.NumOutputs     = 0;   % 设置系统输出变量的个数 
sizes.NumInputs      = 0;   % 设置系统输入变量的个数 
sizes.DirFeedthrough = 1;   % 设置系统是否直通 
sizes.NumSampleTimes = 1;   % 采样周期的个数,必须大于等于1 
sys = simsizes(sizes);      % 设置系统参数 
x0  = [];                   % 系统状态初始化 
str = [];                   % 系统阶字串总为空矩阵 
ts  = [0 0];                % 初始化采样时间矩阵 
%======================================================================= 
% mdlDerivatives 模型计算导数——连续状态部分的计算,返回连续状态的导数 
%======================================================================= 
function sys=mdlDerivatives(t,x,u) 
sys = [];       % 根据状态方程(微分方程部分)修改此处 
%======================================================================= 
% mdlUpdate 状态更新——计算离散状态部分 
%======================================================================= 
function sys=mdlUpdate(t,x,u)  
sys = [];       % 根据状态方程(差分方程部分)修改此处 
%======================================================================= 
% mdlOutputs 计算输出信号,返回模块的输出 
%======================================================================= 
function sys=mdlOutputs(t,x,u) 
sys = [];       % 根据输出方程修改此处 
%======================================================================= 
% mdlGetTimeOfNextVarHit 计算下一步的仿真时刻,该函数仅当
% 在mdlInitializeSizes 函数中的采样时间向量定义了一个可变
% 离散采样时间ts为[-2 0]时才被使用。 
%======================================================================= 
function sys=mdlGetTimeOfNextVarHit(t,x,u) 
sampleTime = 1; % 例如,下一步仿真时间是1秒之后 
sys = t + sampleTime; 
%======================================================================= 
% mdlTerminate 终止仿真设定,完成仿真终止时的任务 
%======================================================================= 
function sys=mdlTerminate(t,x,u) 
sys = []; 
%程序结束 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -