- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
S-Function中文帮助文档
S-函数概述
1、什么是S函数
S函数(系统函数)提供一个有力的途径用于扩展Simulink仿真环境的能力。S函数是用MATLAB、C、C++、Fortran编写的,用来描述Simulink模块。C、C++、Fortran编写的用mex公用程式编译为MEX文件(具体参考building MEX-File).与其他的MEX文件一样,S函数是一个MATLAB翻译器可以自动加载执行的动态链接子程序。
S函数使用一种特殊的调用语法条用S函数应用程序,使你们可以与仿真引擎交互。这种交互同发生在引擎与仿真环境中的模块的交互相似。
S函数遵循一种通用的格式,可以兼容连续、离散和混合系统。遵守一系列简单的规则,你们可以在S函数中实现算法并且将S函数模块添加到仿真模块中。当你编写自己的S函数后,将其名字添加到S函数块(在用户定义函数模块库中可以找到),你可以使用masking(在Creating Custom Blocks 中可以查看)来定做用户界面。
你可以用实时Workshop产品使用S函数,你也可以通过编写目标语言编译器文件(TLC)来定制生成S函数的代码,可以查看(Integrating External Code With Generated C and C++)。
2、在建模中使用S函数
A、兼容C MEX S函数或者旧版(MATLAB level-1)的S函数,从用户定义函数库拖动S函数到模型中,然后指定S函数的名字(名字中包含了函数的信息),level-2的版本操作也一样(当路径中有同名的C MEX文件和MATLAB文件时,优选执行C MEX文件)。
B、向S函数传递参数:S函数块的“Parameters”文件允许指定参数值传递到相应的S函数。为了使用这些文件,必须知道S函数需要的参数、参数的顺序,如果不知道,可以咨询S函数的作者、文档或者源代码。输入参数用逗号分开,按照S函数要求的顺序输入,参数的值可以是常数、变量名(定义在MATALB、建模工作空间或者MATALB表达式中)。当调用level-1S函数时,仿真引擎通常传递标准参数快(t,x,u,flag)到S函数作为函数参数。引擎可以传递附加的由用户指定的块参数到S函数。用户在S函数的“S-function parameter”文件中指定参数(参见Passing Parameters to S-Functions)。如果块对话框指定额外的参数,引擎传递参数到S函数作为额外的函数参数。额外的参数遵循在S函数中的参数列表顺序标准。
C、何时使用S函数:1、建立一个人新的通用模块;2、添加硬件驱动模块;3、兼容现在的C代码到仿真中(参见Integrating Existing C Functions into Simulink Modules with the legacy Code Tool);4、描述一个具有复杂数学方程的系统;5、使用图形激励。其中最常使用S函数的是建立用户仿真块(参见Creating Custom Block)。当使用S函数来建立通用模块时,可以在一个模型中多次使用,根据实际情况指定具体模块的参数。
3、在项目中使用S函数
A、Mathematics of Simulink Blocks:一个仿真模块包含了一系列的输入、输出和状态,输出是时间、输入、状态的函数。
输出
状态方程
更新状态
B、仿真阶段:执行一个仿真模型分阶段进行。首先是初始化阶段,仿真引擎加载库模块到模型中,传递信号宽度、数据类型、采样时间、模块参数赋值、确定模块执行顺序、定位内存;随后引擎进入Simuliation Loop,在这个过程中,每一个循环视为一个仿真步;在每一步中,仿真引擎按初始化确定的顺序执行模型中的每个模块的计算;对于模块,引擎调用函数计算模块采样时刻的状态、导数(微分)、输出。
C、S函数的回调原理:一个S函数包含一系列的S函数回调方法来执行每一个仿真阶段的任务。在模型仿真中,在每一个仿真进行阶段,仿真引擎为每一个S函数模块调用相应的方法。由S函数回调方法实现的任务有:
1、初始化:优先于第一个仿真循环,引擎初始化S函数,包括:初始化SimStruct(一种包含关于S函数信息的仿真结构);设置输入输出的数值和维数;设置模块采样时间;定义存储区域
2、计算下一个采样点:如果使用了变采样时间,这个阶段计算下一个采样点的时间,也就是计算下一个步长(采样间隔);
3、计算主时间步的输出:在这个调用结束之后,所有模块输出都确定。
4、在主时间步长更新离散状态:这个调用是说模块执行每一步一次的动作,如更新离散状态;
5、集成:它应用于具有连续信号或者非过零点采样。
您可能关注的文档
- MSDS_甘油.doc
- MR质差占比提升指导书-v1.docx
- MXC温度压力补偿涡街流量计MODBUS-RTU.doc
- Mybatis分页插件-PageHelper.docx
- M2云智能信息化管理平台.doc
- MX1508SOP.docx
- Mysql存储过程变量与参数.doc
- MySQL数据库技术及实验指导(实验参考).doc
- M控制器参数.doc
- Mycat性能调优指南.docx
- 2024届甘肃省徽县中考化学押题试卷含解析.doc
- 2024届北京市广渠门中学中考冲刺卷化学试题含解析.doc
- 湖北省鄂州市区重点中学2024届中考化学对点突破模拟试卷含解析.doc
- 江苏省无锡市江阴中学2024年中考试题猜想化学试卷含解析.doc
- 2024届湖北省十堰市丹江口市重点中学中考联考化学试题含解析.doc
- 2024届山东省日照市五莲二中学中考化学考试模拟冲刺卷含解析.doc
- 2024届四川省资中县联考中考化学模拟预测题含解析.doc
- 广东省广州市执信中学2024年中考化学五模试卷含解析.doc
- 浙江省宁波北仑区2024年中考化学模拟试题含解析.doc
- 2024届广东省河源市东源县中考试题猜想化学试卷含解析.doc
文档评论(0)