MATLAB_SIMULINK_编程.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB_SIMULINK_编程

SIMULINK6 S-Function 编程(M,C/C++语言)与模块封装技术 丁竞渊 编译 上海大学计算机工程与科学学院? 1. Simulink S函数概观 S-function(System function)是Simulink模块的计算机语言描述。可以用M、C/C++、Ada、Fortran 语言以MEX文件的形式编写。 S-function以特殊的方式与Simulink方程求解器交互。这种交互和Simulink内建模块的做法非常相似。S-function模块可以是连续、离散或者混合系统。 通过S-function,用户可以将自己的模块加入Simulink模型中。从而可以实现用户自定义的算法或者利用操作系统、硬件设备交互。 2. S函数工作机制 2.1 Simulink模块的数学描述 Simulink模块包括一系列输入、状态和输出。输出是采样时间、输入、模块状态的函数。 图1. 下面的方程描述了输入、输出和状态的数学关系。 图2. 2.2 仿真过程 Simulink模型的执行按下述几个步骤。首先是初始化阶段。在这一阶段Simulink将库模块集合到模型,传播宽度、数据类型和采样时间,评估模块参数,确定模块执行顺序,分配内存。然后是仿真阶段。此时Simulink进入一个仿真循环,循环的每次执行对应一个仿真步。在每个仿真步,Simulink按初始化阶段确定的顺序执行各个模块。对每个模块,Simulink计算模块在当前采样时间的状态、微分和输出。这将持续到仿真结束。图3描述了Simulink的仿真过程。 图3. 2.3 S-function的回调(Callback)方法 S-function包括一系列的回调方法,用以执行每个仿真步骤所需的任务。在一个模型的仿真过程中,每个仿真步骤,Simulink将调用各S-function的适当方法。S-function执行的方法包括: ● 初始化:在首次仿真循环中执行。Simulink初始化S-function。在这一步骤中Simulink将: - 初始化SimStruct,这是一种Simulink结构,包含了S-function的信息。 - 设置输入输出端口的个数和纬度。 - 设置模块的采样次数。 - 分配存储区域和数组长度。 ● 计算下一采样点:如果定义了一个可变采样步长的模块,这一步将计算下一次采样点,也就是计算下一步长。 ● 计算在主要时间步中的输出:这一步结束之后,模块的输出端口在当前时间步是有效的。 ● 更新主要时间步中的离散状态:所有的模块在该回调方法中,必须执行一次每次时间步都要执行的活动,比如为下一次仿真循环更新离散状态。 ● 积分:这用于具有连续状态的或者(和)具有非采样过零的模型。如果用户的S-function具有连续状态,Simulink在最小采样步长调用S-function的输出和微分部分。这也是Simulink之所以能计算S-function的状态。如果用户S-function(仅针对C MEX)具有非采样过零,Simulink在最小采样步长调用S-function的输出和微分部分,这样可以确定过零点。 3. 编写M语言的S函数 用M语言编写的S-function称为M-file S-functions,根据API版本不同,分为Level-2和Level-1类型。Level-2 的M-file S-function支持采用M语言实现具有全部功能的Simulink模块。Level-2 的M-file S-function APIs 非常接近于C MEX-file S-functions,许多特性可以相同使用。所以本节只叙述适用于M-file S-function的部分。Level-1的M-file S-function APIs是针对老版本的Simulink模块。 3.1 Level-2格式 M-File S-Function的API Level-2 的M-file S-function APIs定义了,组成Level-2 的M-file S-function所需要的,回调(Callback)方法的信号和基本功能。这些API的实现决定了模块的属性(端口、参数和状态等)和行为(模块作为模块输入、状态和参数的函数的输出)。通过适当实现S-function的一组回调方法,用户可以实现满足用户需求的模块类型。 3.2 S-Function模板 Simulink提供了M语言的模板方便用户编写S-function。模板包含了Level-2 类型的M-file S-function API回调方法的基本实现。这个模板被存放于下面目录: matlabroot/toolbox/simulink/blocks/msfuntmpl.m 可以通过复制模板代码,编辑、增加的S-fun

您可能关注的文档

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档