MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   【分享】与S-函数相关的一些术语 (https://www.labfans.com/bbs/showthread.php?t=252)

yesman 2007-05-27 11:35

【分享】与S-函数相关的一些术语
 
[B]1.仿真例程(Routines)[/B]
Simulink在仿真的特定阶段调用对应的S-函数功能模块(函数),来完成不同的任务,如初始化、计算输出、更新离散状态、计算导数、结束仿真等,这些功能模块(函数)称为仿真例程或者回调函数(call back functions)。下表列出了S-函数例程函数和对应的仿真阶段。

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

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

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

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

yijianmei 2008-04-29 19:25

多谢分享!!!!!!!!!:lol:

xiaopan 2008-09-05 09:17

回复: 【分享】与S-函数相关的一些术语
 
正在学,很有帮助

vigor606 2008-09-13 15:49

回复: 【分享】与S-函数相关的一些术语
 
简明易懂:biggrin:

fenghuibuaa 2009-05-13 16:29

回复: 【分享】与S-函数相关的一些术语
 
xiexei ddddddddddddddddddddddd

辛彦红 2009-08-19 08:32

回复: 【分享】与S-函数相关的一些术语
 
谢谢了,不过希望能够继续更新哦

uuxj200303 2009-12-09 14:49

回复: 【分享】与S-函数相关的一些术语
 
谢谢楼主朋友,学习分享了!

zjfelinor 2010-04-25 12:15

回复: 【分享】与S-函数相关的一些术语
 
thank you very much!
分享了

路的方向 2012-12-30 15:23

回复: 【分享】与S-函数相关的一些术语
 
很感谢楼主的无私支持!


所有时间均为北京时间。现在的时间是 09:02

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.