主要内容

实施MATLAB使用块的函数

MATLAB函数块使您能够在Simulink中定义自定义功能万博1manbetx®利用MATLAB建模®语言它们是将MATLAB代码引入Simulink的最简单方法。万博1manbetxMATLAB函数块支持从生成C万博1manbetx/C++代码万博1manbetx仿真软件编码器™嵌入式编码器®

特别在以下情况下使用这些区块:

  • 您有一个现有的MATLAB函数来建模自定义功能,或者创建这样的函数对您来说很容易。

  • 您的模型需要Simulink图形语言中未捕获或无法捕获的自定义功能。万博1manbetx

  • 你会发现使用MATLAB函数比使用Simulink框图更容易对定制功能建模。万博1manbetx

  • 您要建模的自定义功能不包括连续或离散的动态状态。要建模动态状态,使用s函数。看到创建和配置Matlabs函数

怎样MATLAB函数积木

当您模拟包含MATLAB函数块,软件从该块生成二进制代码或C/C++MATLAB可执行(MEX)代码,并将该代码与模型集成。这个MATLAB函数块使用的基础结构与MATLAB编码器,用来从Simulink外的MATLAB代码生成C/ c++代码。万博1manbetx

因为MATLAB函数块依赖于代码生成技术,它与MATLAB编码器. C/C++的代码生成限制MATLAB编码器也适用于MATLAB函数块。然而,MATLAB函数块在Simulink中是自包含的,并且不需要万博1manbetxMATLAB编码器. 从包含MATLAB函数块,使用万博1manbetxSimulink编码器

MATLAB函数块功能

下面介绍什么你可以使用MATLAB函数在你的模型中。看怎样使用MATLAB函数块在示例中,请参见使用MATLAB函数块创建自定义功能

万博1manbetxMATLAB界面

MATLAB函数块提供了MATLAB代码和Simulink模型之间的直观接口。块输入和输出变量从Simulink输入和输出信号继承其属性。万博1manbetx

默认情况下,输入和输出信号的大小和类型MATLAB函数块从相应的Simulink信号继承。您还可以选择在端口和数据管理器或模型资源管理器中明万博1manbetx确指定输入和输出的大小和类型。看见定义MATLAB功能块数据

独立C/C++代码生成

MATLAB函数块支持使用生成C/C+万博1manbetx+代码万博1manbetxSimulink编码器和嵌入式编码。通过在Simulink模型中使用代码生成万博1manbetxMATLAB函数块,则可以在MATLAB环境之外部署MATLAB功能。

有关从Simulink模型生成C/C++代码的更多信息,请参阅万博1manbetx万博1manbetxSimulink编码器

MATLAB语言和功能支持万博1manbetx

在一个MATLAB函数块,则只能使用MATLAB语言的子集和C/C++代码生成所支持的语言功能。有关代码生成支持的函数列表,请参见万博1manbetxC/ c++代码生成支持的函数和对象万博1manbetx.有关支持万博1manbetx的语言特性,请参见支持C/ c++代码生成的MATLAB语言特性万博1manbetx

外在功能

对于仿真,您可以调用外在的函数从一个MATLAB函数块。外部函数是C/ c++代码生成不支持的函数,但可以在运行时分派到MATLAB环境中执行。万博1manbetx在模型仿真过程中,在工作空间中执行外部函数。

对于代码生成,万博1manbetxSimulink编码器尝试在一个文件中编译所有函数MATLAB函数块,除非你显式地声明它们为外部的。从生成的独立代码中忽略外部函数调用,例如独立的C/ c++源代码或可执行文件。看到代码生成的函数调用解析使用coder.extrinsic构造

万博1manbetxSimulink函数阻止和状态流块支撑万博1manbetx

MATLAB函数块中定义的函数,可以调用万博1manbetxSimulink函数块您可以调用Stateflow®当您选择导出图表级功能(Make Global)允许Simulink调用导出的函数万博1manbetx“图表属性”对话框中的复选框。了解有关如何调用中定义的函数的详细信息万博1manbetxSimulink函数和状态流块,请参见向模型添加S万博1manbetximulink函数

另见

||

相关的话题