关键词不能为空

当前您在: 主页 > 英语 >

S函数学习笔记

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-07 10:08
tags:

-

2021年2月7日发(作者:中英互译)


S


函数用于自定义实现特定的算法,然后嵌入到


simulink


模块“


S-Function


”中用于仿真。


一、主函数



1


、函数头:



function



[sys,x0, str,ts]=functionname(t,x,u,flag,


p1,p2,p 3...


)



sys,x0,str,ts


为系统默认输出变量;





t,x,u,flag

< p>
为系统默认输入参数;





p1,p2,p3...


为用户可选输入变量;



(如果定义函数时列表 中有可选输入参数,在


S-Function


模块中要设置参数 的值)





s


函数文件名要与函数名一致。



2


、函数体



switch flag


case 0


[sys,x0,str,ts]=mdlInitializeSizes;


case 1


sys = mdlDerivatives(t,x,u);


case 2


sys = mdlUpdates(t,x,u);


case 3


sys = mdlOutputs(t,x,u);


case 4


sys = mdlGetTimeOfNextVarHit(t,x,u);


case 9


sys=mdlGetTimeOfNextVarHit(t,x,u);


3


、说明



对 于特定的算法可能只用到某些


flag


状态的操作,对于不需要 操作的


flag


状态,有两


种处理方式 ,一种是在主函数中处理,另一种是在定义子函数时处理。以不需要进行


flag



1



4

< p>


9


状态时的操作为例分别进行说明。

< p>




在主函数中处理



在主函数中编写为:



case {1,2,9}










sys = [];



这样处理就不需要再编写对应状态的子函数。





在子函数中处理



在主函数中编写为:



case 1


sys = mdlDerivatives(t,x,u);


case 4


sys = mdlGetTimeOfNextVarHit(t,x,u);


case 9


sys=mdlGetTimeOfNextVarHit(t,x,u);


在子函数中编写为:



function sys = mdlUpdates(t,x,u)


sys = [];


function sys = mdlGetTimeOfNextVarHit(t,x,u)


sys = [];


function sys=mdlTerminate(t,x,u)






sys = [];


二、子函数


< /p>


算法的设计可能会用到状态变量


x


,那么 根据


x


的性质可以将算法分为三大类:基于连续状


态变量的算法、


基于离散状态变量的算法和不基于状态变量的算法。


接下来分别介绍这三种


类型的算法设计。



1


、基于连续状态变量的算法



算法的整体设计思想是:


?


=f1(t,x, u)




y=f2(t,x,u)




初始化


(flag=0)


设置使用的连续状态变量的个数:


tStates =




设置不使用离散状态变量:


cStates = 0


设置输出变量的个数:


puts =




设置输入变量的个数:


uts =




设置输出变量与输入变量是否相关:


dthrough = 1



0


设置采样时间的个数:


pleTimes =




用系统变量


sys


记录并返回上述设置:


sys=simsize(si zes)


设置状态变量的初始值:


x0 = [







...]


设置保留变量

< p>
str


为空:


str = []


设置采样时间类型:


ts = [





...]


示例:



/************ ***************************************/


function [sys,x0,str,ts] = mdlInitializeSizes



sizes = simsizes;


tStates = 2;


cStates = 0;


puts = 2;


uts = 2;


dthrough = 1;



pleTimes = 1;


sys = simsizes(sizes);



x0 = zeros(2,1);


str = [];


ts = [0 0];


/*************** ************************************/




状态变量求导


(flag=1)


子函 数


mdlDerivatives


实现连续状态变量

< p>
x


导数的表达式:


f1(t,x,u)

< p>
,用系统变量


sys


记录并传递给


?


。在函数体中也可以编写其它操作,但是


sys


只返回给


?




示例:



/************ ***************************************/


function sys = mdlDerivatives(t,x,u,A,B,C,D)


-


-


-


-


-


-


-


-



本文更新与2021-02-07 10:08,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/607909.html

S函数学习笔记的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文