码迷,mamicode.com
首页 > 其他好文 > 详细

matlab函数以及simulink模块的使用---S- function

时间:2021-01-08 10:57:06      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:不同   属性   font   lag   mdi   设置   put   states   time   

一、simulink中S-function(S- function模块,位于 Simulink/User- Defined Functions模块库中)

1、S- function属性窗口介绍

(1)S- function name:S- functioni的名字,随便写,自己认识即可

(2)S- function parameters:S- function的模块参数,默认为空

(3)S-function modS- function的模块,无需修改,采用系统默认模块即可也就是说,这三个参数,只需要修改第一个参数为模块命名即可

(4)点击Edit,可以进入S- function!的代码编辑界面

技术图片

 

2、S- function内部函数介绍

(1)[sys, X0,str,ts]= functionName(t,x,u,flag)这是函数的总入口,收到信号后,首先进入这个函数.这个函数包含一个 switch语句,根据情况进入不同的子函数.

(2)[sys, XO,str,ts, simstate Compliance]= mdllnitialize Sizes;S- function进行基本的设置,具体参数会在后面进行介绍。相当于构造函数

(3)sys= mdlDerivatives(t,x,u);该函数仅在连续系统中被调用,用于产生控制系统状态的导数

(4)sys= mdlUpdate(t, x,u);该函数仅在离散系统中被词用,用于产生控制系统的下一个状态

(5)sys= mdlOutputs(t, x,u);产生(传递)系统输出

(6)sys= mdlGetTimeOfNextVarHit(t,x,u)获得下一次系统执行( next hit)的时间,该时间为绝对时间,此函数仅在采样时间数组中指定变量离散时间采样时间[-2 0]时会被调用

(7)sys= mdiTerminate(t,x,u)相当于构析函数,结束该仿真模块时被调用

3、S- function的执行顺序

 (1)在仿真开始时,执行 mdllnitialize Sizes
(2)若系统包含连续部分,则调用 mdlDerivatives;若系统包含离散部分,则调用 mdlUpdate
(3)调用 mdlOutputs,产生输出
(4)若满足条件,则执行 mdlGetTimeOfNextVarHit
(5)循环执行1--3,直至仿真停止
(6)执行 mdITerminate,仿真停止

4、S- function输入输出参数含义

(1)输入参数t,x,u,flag

 t:系统时间
x:系统状态
u:系统输入,即在 simulink models中连接至S- function的线上的数据。注意区分x和u
fag:系统状态,由系统自动生成,决定了系统应当执行哪个S- function子函数

(2)输出参数sys,x0, str, ts, simStateCompliance 

SyS:系统本身,可以理解为下一时刻的系统;同时sys的前几个数值(sys[1]等)是系统的输出,即在 simulink中S- function伸出线上的数据
x0:系统初始状态
str:状态排序字符串,通常指定为。
ts:可认为是采样时间
simstatecompllance例程与介绍

sizes= simsizes 调用构造函数,生成一个巽默认类

sizes. NumContStates=0;%设置系统连续状态的数量
sizes. NumDiscStates=0;%设置系统离散状态的数量
sizes. NumOutputs=0;%设置系统输出的数量
sizes. NumInputs;%设置系统输入的数量
sizes, Dirfeedthrough=1;%设置系统直接通过量的数量,一般为1
sizes. Numsampletimes =1:% at least one sample time is needed

                                             %需要的样本时间,一般为1
                                            %猜测为如果为n,则下一时刻的状态需要知道前个状态的系统状态

 sys= simsizes(sizes);
x0=[];%系统初始状态
str=[];%保留变量,保持为空
ts=[0 0];%采样时间
simStateCompliance="unknownsimstate‘;

 注意
S- function的基础是现代控制理论的状态定义,S- function.本身是一个系统,可以被设置为控制系统,也可以被设置为受控系统。因此本文所指的系统,均指S- - function本身

 

matlab函数以及simulink模块的使用---S- function

标签:不同   属性   font   lag   mdi   设置   put   states   time   

原文地址:https://www.cnblogs.com/zzzzhongjiezhe/p/14242267.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!