原创 S-函数相关术语

2008-6-21 18:48 2749 8 8 分类: 工程师职场
1.仿真例程(Routines)
Simulink在仿真的特定阶段调用对应的S-函数功能模块(函数),来完成不同的任务,如初始化、计算输出、更新离散状态、计算导数、结束仿真等,这些功能模块(函数)称为仿真例程或者回调函数(call back functions)。下表列出了S-函数例程函数和对应的仿真阶段。

mdlInitialization 初始化
mdlGetTimeofNextVarHit 计算下一个采样点
mdlOutput 计算输出
mdlUpdate 更新离散状态
mdlDerivatives 计算导数
mdlTeminate 结束仿真

2.直接馈通(Direct feedthrough)
直接馈通意味着输出或可变采样时间与输入直接相关。在如下的两种情况下需要直接馈通:
(1)某一时刻的系统输出y中包含某一时刻的系统输入u。
(2)系统是一个变采样时间系统(variable sample time system)且采样时间计算与输入u相关。
正确设置馈通标志(feedthrough flag)是非常重要的,因为这不仅关系到系统模型中系
统模块的执行顺序,还关系到对代数环的检测与处理。

3.采样时间和偏移量(Sample time & offsets)
采样时间在离散时间系统内控制采样时间间隔,偏移量则用于延时采样时间点(sample time hits)。它们有如下的关系:
time=(n*sample_time_value)+offset_time
其中n表示第n个采样点。
Simulink在每一格采样点上调用mdlOutput和mdlUpdate例程。对于连续时间系统采样时间和偏移量的值应该设置为零。采样时间按还可以继承自驱动模块、目标模块或者系统最小采样时间,这种情况下采样时间值应该设置为-1,或者INHERITED_SAMPLE_TIME。

4.动态输入(Dynamically sized inputs)
S-函数支持动态可变维数的输入。S-函数的输入变量u的维数决定于驱动S-函数模块的输入信号的维数。所以当仿真开始的时候,需要先估计S-函数的输入维数。在M文件S-函数中动态设置输入维数时,应该把sizes数据结构的对应成员设置为-1或者DYNAMICLLY_SIZED。在C文件S-函数需要调用函数ssSetInputPortWidth来动态设置输入维数。其它的如状态维数和输出维数同样是动态可变的。

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条