matlab中S-函数的建立与应用

来源:互联网 发布:淘宝店被降权怎么办 编辑:程序博客网 时间:2024/06/04 21:26


1 何为S-Function

       S-Function是System Function的缩写。当MATLAB提供的模型不能完全满足用户需要时,就可以通过S-函数提供给用户自己编写程序来满足自己要求模型的接口。可以使用MATLAB、C、C++、Ada和Fortran语言编写。

       S-函数使用的是一种比较特殊的调用格式,可以和Simulink求解器进行交互式操作,这种交互式与Simulink求解器和内置固有模块交互式操作相同。S-函数功能非常全面,适用于连续、离散以及混合系统。

2 在模型中使用S-函数

       为了在Simulink中使用S-函数,必须从Simulink中的User-Defined Functions模块库中向Simulink模型文件窗口中拖放S-Function模块。然后在S-Function模块的对话框中的S-Function name文本框中输入S-函数的文件名。

       S-函数所起的作用:向Simulink模型中增加一个通用目的的模块;使用S-函数的模块来充当硬件的驱动;在仿真中嵌入已经存在的C代码;将系统表示成一系列的数学方程;在Simulink中使用动画。

3 S-函数工作原理

       Simulink模型的处理过程:(1)初始化(传递参数给MATLAB进行求值;得到的数值作为实际的参数使用;展开模型的层次,每个子系统被它们所包含的块替代;检查好相邻模块间的连接;确定状态初值和采样时间);(2)运行阶段(计算输出;更新离散状态;计算连续状态,连续状态的计算过程;计算输出,过零可能被激活)。

       S-函数方法主要完成:(1)初始化(初始化结构体SimStruct,它包含了S-函数的所有信息;设置输入输出端口数;设置采样时间;分配存储空间);(2)计算下一个采样时间点;(3)计算下一个时间步的输出;(4)更新状态;(5)数值积分(用于连续状态的求解和非采样过零点)。

4 M文件S-函数的编写

       既可以是M文件,也可以是MEX文件。仿真过程说明:


仿真阶段

S-函数过程

Flag

初始化

mdlInitializeSizes

mdlInitializeConditions

mdlInitializeSampleTimes

flag=1

计算下一个采样时间

mdlGetTimeOfNextVarHit

flag=4

计算输出

mdlOutputs

flag=3

更新离散状态

mdlUpdate

flag=2

计算导数

mdlDerivatives

flag=1

计算任务结束

mdlTerminate

flag=9


5 M文件S-函数模板

       S-函数模板文件sfuntmpl.m。

       用户可以输入edit sfuntmpl对该模板函数进行编辑和修改,以达到要求实现的结果,其主要参数说明如下:

t——当前时刻,是一个采用绝对计量的时间值,就是从仿真开始模型运行时间的计量值。

x——模块的状态向量,包括连续状态向量和离散状态向量。

u——模块的输入向量。

flag——执行不同操作的标记变量。其取值如上表。

case不一定都是必要的,有的情况下,我们可以进行剪裁。

用户对S-函数进行裁剪,但是不能修改输入和输出参数的名称、顺序,不过可以增加输入参数的数量。

6 连续、离散和混合系统M文件S-函数

Simulink仿真(4) - bingqingyujie..5 - ~bluestart~O(∩_∩)O
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 和老婆离婚了我的心好痛怎么办 4s店不给退定金怎么办 教你闪腰了后该怎么办 coolpad酷派手机开不了机怎么办 苹果5s黑屏开不了机怎么办 苹果4s的屏坏了怎么办 苹果6手机充电口接触不良怎么办 5s用久了卡顿怎么办 孕妇血糖高怎么办什么方法降最好 脚砸了肿了紫了怎么办 我想在淘宝上卖东西该怎么办 苹果手机4s开不了机怎么办 冒险岛s前出2条怎么办 狗狗又吐又拉血怎么办 小孩上网成瘾怎么办父母要怎么做 一只眼睛大一只眼睛小怎么办 带近视镜时间长了眼睛变形怎么办 联通卡2g换4g卡怎么办 上火牙疼怎么办教你立刻止疼 吃热的凉的牙疼怎么办 我买的股票退市了怎么办 如果起诉离婚另一方不出庭怎么办 10个月宝宝还没长牙怎么办 超敏c反应蛋白>5怎么办 怀孕才两个月肚子就大了怎么办 腰椎间盘突出腿疼厉害怎么办 打了促排卵针不排卵怎么办 孕34周隐血1十是怎么办 窦性心动过缓伴不齐怎么办 09年买的万科b怎么办 苹果5s手机打不开机怎么办 剖腹产后一年半后意外怀孕怎么办 考驾照挂了5次了怎么办 怀孕咳嗽一个月了好不了怎么办 孕妇餐后2小时血糖高怎么办 我想开网店但我不懂该怎么办 新开的淘宝店没生意怎么办 做肝胆b超喝了水怎么办 红米1s刷机失败怎么办 红米3x手机太卡怎么办 红米2a线刷失败怎么办