C集成的MATLAB/Simulink类型仿真学习总结

电子说

1.3w人已加入

描述

导读:本期文章主要介绍一种C集成的Simulink类型的MATLAB仿真,这种仿真类似于半实物仿真,更好的贴合硬件实物。以SVPWM模块的C集成实现,来简单介绍一下C MEX工作原理。

一、C MEX S_Function模块介绍

S-Function(系统函数)为扩展Simulink的性能提供了一个有力的工具。S-Function 可以使用MATLAB,C,C++,Ada,或Fortran 语言来编写。使用MEX 实用工具,将C,C++,Ada,和Fortran 语言的S-Function 编译成MEX-文件,在需要的时候,它们可与其它的MEX-文件一起动态地连接到MATLAB 中。

S-Function 使用一种特殊的调用格式让你可以与Simulink 方程求解器相互作用,这与发生在求解器和内置Simulink 块之间的相互作用非常相似。S-Function 的形式是非常通用的,且适用于连续、离散和混合系统。

1.1在模型中使用S-Function

为了将一个 S-function 组合到一个Simulink 模型中,首先从Simulink 用户定义的函数块库中拖出一个S-Function 块,然后在S-Function 块对话框中的S-Function name 区域指定明确的S-Function 的名字。如下图所示:

模型

图1-1S-function 块、对话框、及决定块功能的源文件之间的关系

1.2 S-Function的工作原理

要创建 S-function,你必须了解S-function 是如何工作的。要了解S-function 如何工作,则需要了解Simulink 是如何进行模型仿真的,那么又需要了解块的数学公式。因此,本节首先从一个块的输入、状态和输出之间的数学关系开始介绍。

1.2.1 Simulink块的数学关系

Simulink 块包含一组输入、一组状态和一组输出。其中,输出是采样时间、输入和块状态的函数。

模型

u:S-Function模块的输入;y:S-Function模块的输出;x:就是S-Function要实现什么功能所对应的函数。

1.2.2 C MEX S-Function的一般格式

模型

二、SVPWM模块C MEX实现

模型

图2-1 C集成SVPVM仿真系统

模型

图2-2基于C MEX建模方法的仿真结果

表2-1 N与扇区的对应关系

模型

为了验证C MEX模型的正确性,图2-2给出了SVPWM模块的仿真结果。由图2-2的第一通道可知,扇区N的值为3à1à5à4à6à2且交替变换,与表2-1所示的结果相同;由图2-2的第二通道可知,由SVPWM模块得到的调制波呈马鞍波,这样有利于提高直流电压的利用率,有效抑制谐波;由图2-2的第三通道可以看出,得到的相电压为6拍阶梯波,与实际理论相符。因此以上的仿真结果验证了C MEX SVPWM模块的正确性和可行性。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分