每个S函数必须实现一组调用的方法回调方法,那个simulink金宝app®在模拟包含s功能的模型时调用。
S函数回调方法执行每个模拟阶段所需的任务。在模拟模型期间,在每个模拟阶段,Simulink引擎在模型中调用适当的每个S函数块的方法。金宝app
S-function回调方法执行的任务包括:
初始化- 在第一个仿真环路之前,发动机初始化S函数,包括:
初始化SimStruct
,一个包含s函数信息的仿真结构
设置输入输出端口的数量和尺寸
设置块采样时间
分配存储区域
计算下一个样本击中-如果你创建了一个可变的样本时间块,这个阶段计算下一个样本命中的时间;也就是说,它计算下一步的大小。
重大时间步骤中产出的计算—调用完成后,所有块输出端口对当前时间步长有效。
更新离散状态的主要时间步长-在这个调用中,块执行每时间步一次的活动,例如更新离散状态。
一体化-这适用于具有连续状态和/或非抽样零交叉的模型。如果你的s函数有连续的状态,引擎在小的时间步上调用你的s函数的输出和导数部分。这样求解器就可以计算s函数的状态。如果您的s函数具有非采样的零交叉点,引擎也会在较小的时间步骤中调用s函数的输出和零交叉点部分,以便它可以定位零交叉点。
请注意
看到动态系统中的仿真阶段有关主要和次要时间步的解释。
有些回调方法是可选的。引擎只在s函数定义了回调函数时才调用可选的回调函数。
C MEX S函数必须实现以下回调方法:
参数的大小mdlinitializatize
SimStruct
,例如块的输出端口数量。
—块的采样时间。mdlinitializateAmpletimes
—计算块的输出。mdlOutputs
-在模拟结束时执行任何需要的操作。如果不需要任何操作,则可以将此函数实现为存根。mdlterminate.
以下回调方法是可选的。引擎只在s函数定义了回调函数时才调用可选的回调函数。
MATLAB二级s函数必须实现以下回调方法:
有关写回调方法的信息,请参阅编写二级MATLAB s函数.
以下回调方法是可选的。引擎只在s函数定义了回调函数时才调用可选的回调函数。