本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

使用模块实现 MATLAB 函数

MATLAB Function 模块使您能够使用 MATLAB® 语言在 Simulink® 模型中定义自定义功能。它们是将 MATLAB 代码引入 Simulink 的最简单方法。MATLAB Function 模块支持 Simulink Coder™ 和 Embedded Coder® 的 C/C++ 代码生成。

在以下情况中,可使用这些模块:

  • 您有现有 MATLAB 函数可用于对自定义功能进行建模,或您可以轻松创建这样的函数。

  • 您的模型需要在 Simulink 图形语言中没有或无法捕获的自定义功能。

  • 您发现使用 MATLAB 函数对自定义功能建模比通过使用 Simulink 模块图建模更容易。

  • 要建模的自定义功能不包括连续或离散的动态状态。要对动态状态建模,请使用 S-Function。请参阅创建和配置 MATLAB S-Function

MATLAB Function 模块的工作原理

当您仿真包含 MATLAB Function 模块的模型时,软件会从该模块生成二进制代码或 C/C++ 语言的 MATLAB 可执行文件 (MEX) 代码,并将此代码与模型集成。MATLAB Function 模块使用与 MATLAB Coder 相同的基础架构,您可使用该基础架构从 Simulink 之外的 MATLAB 代码生成 C/C++ 代码。

由于 MATLAB Function 模块依赖于代码生成技术,因此它与 MATLAB Coder 有很多共同点。MATLAB Coder 的 C/C++ 代码生成限制也适用于 MATLAB Function 模块。但是,MATLAB Function 模块在 Simulink 中是自包含的组件,不需要 MATLAB Coder。要从包含 MATLAB Function 模块的模型中生成独立的 C/C++ 代码,请使用 Simulink Coder

MATLAB Function 模块功能

下面说明 MATLAB Function 在您的模型中的用途。要查看如何在示例中使用 MATLAB Function 模块,请参阅使用 MATLAB Function 模块创建自定义功能

SimulinkMATLAB 的接口

MATLAB Function 模块提供 MATLAB 代码与 Simulink 模型之间的直观接口。模块输入和输出变量从 Simulink 输入和输出信号继承其属性。

默认情况下,MATLAB Function 模块的输入和输出信号的大小和类型都从对应的 Simulink 信号继承。您还可以选择在 Ports and Data Manager 或 Model Explorer 中显式指定输入和输出的大小和类型。请参阅 Ports and Data Manager使用 Model Explorer 进行搜索和编辑

独立的 C/C++ 代码生成

Simulink Coder 和 Embedded Coder 支持 MATLAB Function 模块的 C/C++ 代码生成。通过对包含 MATLAB Function 模块的 Simulink 模型应用代码生成,您可以在 MATLAB 环境之外部署 MATLAB 功能。

有关从 Simulink 模型进行 C/C++ 代码生成的详细信息,请参阅 Simulink Coder

MATLAB 语言和函数支持

MATLAB Function 模块中,您只能使用 C/C++ 代码生成支持的 MATLAB 语言和语言功能的子集。有关支持代码生成的函数的列表,请参阅C/C++ 代码生成支持的函数和对象。有关支持的语言功能,请参阅 MATLAB Language Features Supported for C/C++ Code Generation

外部函数

对于仿真,您可以从 MATLAB Function 模块中调用外部函数。外部函数是不支持 C/C++ 代码生成的函数,但可以将它们调度到 MATLAB 环境中以便在运行时执行。在模型仿真期间,外部函数在工作区中执行。

对于代码生成,Simulink Coder 尝试编译 MATLAB Function 模块中的所有函数,除非您显式将它们声明为外部函数。外部函数调用从生成的独立代码中省略,例如独立的 C/C++ 源代码或可执行文件。请参阅 Resolution of Function Calls for Code Generation将 MATLAB 函数声明为外部函数

Simulink Function 模块和 Stateflow 模块支持

MATLAB Function 模块中,还可以调用在 Simulink Function 模块中定义的函数。如果在 Stateflow 图的 Properties 对话框中选中 Export Chart Level Functions (Make Global)Allow exported functions to be called by Simulink 复选框,您可以调用 Stateflow® 函数。有关如何调用在 Simulink Function 和 Stateflow 模块中定义的函数的更多信息,请参阅 Simulink 函数:Simulink Function 模块,导出的 Stateflow 图和 MATLAB 函数

另请参阅

|

相关主题