simulink仿真实例_又见Simulink库模型之(9):自定义函数

本文介绍了Simulink中自定义函数的使用,包括Fcn、Interpreted Matlab Function、Matlab Function、S-function、S-function Builder、Matlab System等模块。重点讲述了Matlab Function的便利性和S-function的灵活性,以及如何通过S-function Builder将C/C++代码集成到Simulink模型中。同时提到了Initialize Function、Reset Function和Terminate Function在模型初始化、重置和终止时的作用。
摘要由CSDN通过智能技术生成

83c8f6a4225af505f2c946392c109a4c.png

24845ed06cf12c09ea0da68f8a36abee.png

Simulink中提供了各种各样的模块,使得研究人员通过搭积木的方式,可以实现大部分功能需求。但总会有一些场景,是必须要研究人员自行编写代码,来满足自己的个性化需求。

Simulink正是通过Matlab function、s-function等模块,有效地拓宽了自身的能力边界(几乎是只有想不到,没有做不到),也奠定了它在工科领域的地位。


1、Fcn、Interpreted Matlab Function、Matlab Function

Fcn为用户自定义的一个函数:

。支持代数运算、关系运算、逻辑运算、三角函数等。可以看做是轻量级的Matlab Function。

Interpreted Matlab Function 的功能与Fcn类似,但是基本属于被淘汰的模块了。

Matlab function是我最喜欢的模块。因为它可以替代库中的大部分模块,而且方便注释、修改以及功能拓展,极大地简化了模型的复杂度,提高了可读性。而且它很方便地可以编译成代码。一般来说只要在Matlab function编写、经过验证的代码,可以放心的在DSP等控制器中应用。以下是我使用的两个简单案例。

小猫钓鱼:手撕系列(3):锁相环(SRF-PLL)​zhuanlan.zhihu.com
8a5062c970826d91a8d764aefd253f4b.png
小猫钓鱼:手撕系列(4):空间矢量调制(SVPWM)​zhuanlan.zhihu.com
36f2cf7574e21eb700d0a11d0d0df688.png

2、S-function、Level-2 Matlab S-function

S-function的内容很丰富。可以参考:

只是学电的:Simulink之——S函数​zhuanlan.zhihu.com
868601dcacb5d737c572af084c8a2c64.png
古德曼汽车工业:S-Funciton应用实例​zhuanlan.zhihu.com


之前写过一个简单的案例,作为参考。

小猫钓鱼:simulink仿真时,在线修改模型参数(S函数法)​zhuanlan.zhihu.com

对S-function 自带的案例进行注释,方便大伙理解。

function [sys,x0,str,ts,simStateCompliance] = sfuntmpl(t,x,u,flag)

%[sys,x0,str,ts,simStateCompliance] = sfuntmpl(t,x,u,flag,p1,...pn)

%   flag   result             描述
%   -----  ------             --------------------------------------------
%   0      [sizes,x0,str,Ts]  初始化,返回SYS的大
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值