用matlab s函数 阶梯,Matlab S函数使用介绍

本文介绍了MATLAB Simulink中的S函数,这是一种用于扩展模块库的强大工具。S函数允许用户自定义Simulink模块,支持连续、离散和混合系统。通过m文件编写S函数,包括初始化模块特性、计算算法以及定义输入输出信息。通过mdlInitializeSizes、mdlDerivatives、mdlUpdate和mdlOutputs等子函数实现不同阶段的功能。文中以一个简单的动态系统为例,展示了S函数的编写过程。
摘要由CSDN通过智能技术生成

SIMULINK s-function的设计

Simulink为用户提供了许多内置的基本库模块,通过这些模块进行连接而构成系统的模型。对于那些经常使用的模块进行组合并封装可以构建出重复使用的新模块,但它依然是基于Simulink原来提供的内置模块。

而Simulink s-function是一种强大的对模块库进行扩展的新工具。

(一)、s-function的概念

s-function是一个动态系统的计算机语言描述,在MATLAB里,用户可以选择用m文件编写,也可以用c或mex文件编写,在这里只给大家介绍如何用m文件编写s-function。

S-function提供了扩展Simulink模块库的有力工具,它采用一种特定的调用语法,使函数和Simulink解法器进行交互。

S-function最广泛的用途是定制用户自己的Simulink模块。它的形式十分通用,能够支持连续系统、离散系统和混合系统。

(二)、建立m文件s-function

1、使用模板文件:sfuntmp1. m 格式: [sys,x0]=function(t,x,u,flag)

该模板文件位于MATLAB根目录下toolbox/simulink/blocks目录下。

模板文件里s-function的结构十分简单,它只为不同的flag的值指定要相应调用的m文件子函数。比如当flag=3时,即模块处于计算输出这个仿真阶段时,相应调用的子函数为sys=mdloutputs(t,x,u)。

模板文件使用switch语句来完成这种指定,当然这种结构并不唯一,用户也可以使用if语句来完成同样的功能。而且在实际运用时,可以根据实际需要来去掉某些值,因为并不是每个模块都需要经过所有的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值