SIMULINK中自定义模块的创建与封装.pdf
《SIMULINK中自定义模块的创建与封装.pdf》由会员分享,可在线阅读,更多相关《SIMULINK中自定义模块的创建与封装.pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、系 统 仿 真 学 报 Vol.16 No.3 March.2004 SIMULINK中自定义模块的创建与封装 胡琳静,孙政顺(清华大学自动化系.北京 100084)摘 要:介绍 SIMULINK 中用 S-函数(System Function)创建和封装用户自定义算法模块的方法,并利用 S-函数基本的程序框架资源,编写了实现跟踪-微分器算法的 M 源文件,应用测试模型测试了其准确性。这一具体实例表明,SIMULINK 中 S-函数自定义算法模块可以大大减少工程人员的编程工作量,简化复杂模块组的搭建,并实现动态仿真过程的可视化,一方面简化了数字仿真过程,另一方面又扩展了 SIIMULINK 的
2、应用领域。关键词:SIMULINK;S-函数;自定义模块;M 源文件 文章编号:1004-731X(2004)03-0488-04 中图分类号:TP391 文献标识码:A Build and Encapsulate Custom Block in SIMULINK HU Lin-jing,SUN Zheng-shun(Department of Automation,Tsinghua University,Beijing 100084,China)Abstract:The method to build and encapsulate user custom algorithmic block
3、 is presented using S-Function in SIMULINK.We programmed efficiently M resource file to perform algorithmic based on the program frame of S-Function.The program is proven valid by testing model.The example presents that S-Function custom algorithmic block can reduce the programming engineers,workloa
4、d,and simplify complex blocks group.In addition,it can visualize a process being simulated.S-Function extends application fields of SIMULINK as well as simplifies digit simulation course.Keywords:simulink;s-function;custom block;m source file 引 言1 SIMULINK 是窗口环境下面向对象的一种动态系统仿真软件,从名字上看,立即就能看出该程序有两层含义,
5、首先,“SIMU”一词表明它可以用于计算机仿真,而“LINK”一词表明它能进行系统连接,即把一系列模块连接起来,构成复杂的系统模型。SIMULINK 作为对 MATLAB 语言运算环境的扩展,在保持 MATLAB 一般性能基础上,结合工具箱的使用,可以完成对连续系统、离散系统、连续与离散混合系统的动态性能的仿真与分析,并且可以观察仿真的执行过程,仿真结果在仿真结束时还可以利用变量存储在MAMTLAB的工作间中,也正是由于这些卓越的功能,使得它成为自动控制、航空航天、汽车设计等诸多领域仿真的首选语言。SIMULINK 采用系统模块直观地描述系统典型环节,其模块库中提供了丰富的模块,包括信号源模块
6、组(Sources)、输出池模块组(Sinks)、连续模块组(Continuous)、离散模块组(Discrete)、数学运算模块组(Math)、非线性模块组(Nonlinear)、函数与表格模块组(Function&Tables)、信号与系统模块组(Signals&Systems)、和子系统模块组(Subsystems)几个部分,此外还有和各个工具箱与模块集之间的联系构成的子模块组。尽管如此,并非所有的数学模型 收稿日期:2002-12-06 修回日期:2003-02-28 作者简介:胡琳静(1975-),女,硕士生,研究方向为控制系统的仿真;孙政顺(1945-),男,清华大学自动化系副教授
7、,实验中心主任,研究方向为控制理论与控制工程。都能利用 SIMULINK 模块轻易搭建起来,有的模型可能更适合于 MATLAB或 C 语言的编写方法,因此,用户仍然需要定义自己的模块,实现特殊的算法、特定功能的子系统以及仿真过程的图形动画等等。S-函数正好弥补了这一不足,它提供了扩展 SIMULINK 功能的有力工具,并且支持参数传递。用户可以建立一个能和 SIMULINK 模块库中的模块一起使用的新模块,利用封装产生一个与 S-函数文件相对应的对话框和模块图标,不断扩充 SIMULINK 的仿真功能。1 S-函数 S-函数实质上是具有特殊调用格式的 MATLAB函数,它使用特定的语法使动态系
8、统具有交互功能,以连续、离散或连续离散混合方式最大程度地使自身与系统相适应,表征系统动态特性。在仿真过程中,用户使用 S-函数,特别与下列情况有关系:增加一个模块函数至 SIMULINK,将一部分 C语言程序代码加入模型中,以数学方程形式描述系统,以及应用图形制作等等。SIMULINK 模型内的每个模块都有如下特征:输入向量u,输出向量 y,状态向量 x,这些不同向量之间的关系用如下等式来描述:0(,)yft x u=(,)cdxft x u=?1(,)kuxft x u+=Vol.16 No.3 March.2004 胡琳静,等:SIMULINK 中自定义模块的创建与封装 489 其中:x=
9、ckxx 状态向量由两部分组成:第一部分表示连续状态;第二部分表示离散状态。若模块不包含状态变量,则 x 是空向量。仿真过程中,SIMULINK 自始至终在向量更新阶段产生重复调用,这些任务一般由 S-函数的子程序完成,每个子程序常以 mdl开头。由 S-函数语法指定的 M 文件格式如下:function sys,x0,str,ts=function-name(t,x,u,flag,p1,pn)其中:t,x,u,flag:通过系统赋给S-函数的默认驱动变量,分别为时间、状态向量、输入向量和子程序调用标志,见表 1;p1,pn:用户自定义参数表,也就是希望赋给 S-函数的可选变量,其值通过相应的
10、对话框设置;sys:系统信息矩阵返回值,取决于 flag 值。当 flag=0时,sys(1)=连续状态数;sys(2)=离散状态数;sys(3)=输出数;sys(4)=输入数;这四个值可以置为-1,使其大小动态改变。flag为其它值时的实际长度等于输入 u;sys(5)=0为 root finding 保护;sys(6)=direct feedthough标志,1表示“yes”,0表示“no”;sys(7)=采样时间常数,等于 ts 的行数。x0:初始状态值;str:状态有序串,通常为空;ts:包含采样时间和状态复位信息的两列矩阵。以上参数中,t,x,u,flag 由 SIMULINK 自动
11、传给 S-函数。表1 标识器flag的含义 M 文件 标识阶段 调用“C-MEX file”函数 返回结果 模拟阶段 0 mdlInitializeSizes sizes,x0,str,ts 初始化 1 mdlDerivatives dx 连续状态更新 2 mdlUpdate ds 离散状态更新 3 mdlOutputs y 输出计算 4 mdlGetTimeOfNextVarHit rnext 下一采样计算(可选)9 mdlTerminate 仿真结束 2 S-函数M源文件的编写 在 SIMULINK 中,每个模块都对应一个 S-函数源文件,这些源文件具有一定的格式,可以用 M文件编写,也可
12、用 C或者 FORTRAN 文件编写,但都必须符合S-函数标准。用户根据需要创建自定义模块的关键也就在于 S-函数的正确编制及调用。在这里,主要以韩京清研究员及其合作者提出的微分-跟踪器2的设计及仿真为例,建立一个 SIMULINK 自定义模块,演示 S-函数的编写及应用。首先考虑微分-跟踪器,其离散实现为:x1(k+1)=x1(k)+Tx2(k)x2(k+1)=x2(k)+Tfst(x1(k),x2(k),u(k),r,h)式中,T 为采样周期,u(k)为第 k 时刻的输入信号,r 决定跟踪快慢的参数,而 h 为输入信号被噪声污染时,决定滤波效果的参数。fst 可以由下面的式子计算:=rh,
13、0=h,y=x1-u+hx2,a0=(2+8r|y|)1/2 当|y|?0时,a=x2+y/h 当|y|0时,a=x2+0.5(a0-)sign(y)当|a|?时,fst=-ra/当|a|时,fst=-rsign(a)/可以看出该算法涉及比较多的参数和代数关系,用Simulink 模块搭建起来比较困难,因此,我们利用 S-函数创建自定义模块 微分-跟踪器,其 S-函数 M源文件的编写过程如下:function sys,x0,str,ts=han_td(t,x,u,flag,r,h,T)switch flag,case 0%初始化 sys,x0,str,ts=mdlInitializeSizes
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SIMULINK 自定义 模块 创建 封装
限制150内