主要内容

实现MATLAB函数使用块

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

特别是使用这些块:

  • 您有一个现有的MATLAB函数,模拟自定义功能,或者您可以轻松地创建这样的功能。

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

  • 您发现使用MATLAB功能更容易模拟自定义功能,而不是使用Simulink块图。万博1manbetx

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

如何MATLAB函数块工作

当你模拟一个包含MATLAB函数块,软件从块生成二进制代码或C/ c++ MATLAB可执行(MEX)代码,并将该代码与模型集成。的MATLAB函数块使用相同的基础设施MATLAB编码器,您用于在Simulink之外的MATLAB代码中生成C / C ++代码。万博1manbetx

因为MATLAB函数Block依赖于代码生成技术,与Block有很多共同之处MATLAB编码器.C/ c++代码生成限制MATLAB编码器也适用于MATLAB函数块。然而MATLAB函数块在Simulink中自包含,不需要万博1manbetxMATLAB编码器.生成独立的C/ c++代码的模型包含MATLAB函数块,用万博1manbetx仿真软件编码器

MATLAB函数块功能

下面描述了什么你可以用MATLAB函数在你的模型中。看到如何使用一个MATLAB函数块的示例,请参见使用MATLAB函数块创建自定义功能

万博1manbetxMATLAB接口

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

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

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

MATLAB函数块用于C/ c++代码万博1manbetx生成万博1manbetx仿真软件编码器和嵌入式编码器。通过使用包含一个的Simulink模型上的代码生成万博1manbetxMATLAB函数块,可以在MATLAB环境之外部署MATLAB功能。

有关从Simulink模型生成C/ c++代码的更多信息,请参见万博1manbetx万博1manbetx仿真软件编码器

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

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

非本征函数

对于模拟,您可以打电话外在来自A的功能MATLAB函数块。外部函数是C / C ++代码生成不支持的函数,但可以在运行时分派给MATLAB环境以执行。万博1manbetx在模型仿真期间,外部函数在工作区中执行。

对于代码生成,万博1manbetx仿真软件编码器试图编译所有函数MATLAB函数块,除非您将其明确宣布为外在。从生成的独立代码中省略外部函数调用,例如独立C / C ++源代码或可执行文件。看到解析代码生成中的函数调用使用编码器。外在Construct

万博1manbetx仿真软件的功能块和Stateflow块的支持万博1manbetx

MATLAB函数块,您可以调用在a中定义的函数万博1manbetx仿真软件的功能块。您可以调用statflow®函数时,选择导出图表级别功能(制作全球)允许Simulink调用导出的函数万博1manbetx“图表属性”对话框中的复选框。来了解有关如何调用定义的函数的更多信息万博1manbetx仿真软件的功能和statflow块,参见万博1manbetxSimulink函数:Simulink函数块,导出statflow图形和MATLAB函数

另请参阅

||

相关话题