主要内容

MATLAB函数

包括MATLAB生成可嵌入C代码的模型中的代码

  • 图书馆:
  • 万博1manbetxSimulink /用户定义函数

    HDL编码器/用户定义函数

  • MATLAB功能块

描述

与一个MATLAB函数块,可以编写MATLAB®在Simulink中使用的函数万博1manbetx®模型。您创建的MATLAB函数执行仿真和生成代码万博1manbetx仿真软件编码器™目标。如果您是Simulink和MATLAB产品的万博1manbetx新手,请参阅s manbetx 845用块实现MATLAB函数使用MATLAB函数块创建自定义功能概述。

双击MATLAB函数块,打开它的编辑器,在这里编写MATLAB函数,如下面的例子:

要了解有关此编辑器的更多信息,请参见MATLAB函数块编辑器

您可以将输入和输出数据指定给MATLAB函数函数头中的块作为参数和返回值。前面示例函数的参数和返回值对应于模型:

您还可以使用端口和数据管理器定义数据、输入触发器和函数调用输出,您可以通过选择从MATLAB函数块编辑器中访问端口和数据管理器编辑数据.看见端口和数据管理器

这个MATLAB函数块基于确定每个变量的大小、类和复杂性的分析生成有效的可嵌入代码。这种分析施加了以下限制:

除了语言限制,MATLAB函数块支持MAT万博1manbetxLAB中可用函数的子集。中提供了受支持函数的列表C/ c++代码生成支持的函数和对象万博1manbetx.这些职能包括一般类别的职能,例如:

笔记

尽管此块的代码试图产生与MATLAB完全相同的结果,但由于舍入错误,可能会出现差异。这些数字上的差异,可能是很少的EPS最初,经过反复操作后可以放大。依赖的行为不推荐。对于相同的计算,不同的C编译器可以产生不同的结果。

笔记

MATLAB函数块,% # codegen包含指令是为了强调块的MATLAB算法始终用于代码生成。这个% # codegen指令(或不存在该指令)不会更改MATLAB函数块。有关更多信息,请参见编译指令%#codegen

为了支万博1manbetx持数据可视化MATLAB函数块只支持对M万博1manbetxATLAB函数的仿真调用。看见使用MATLAB引擎在生成的代码中执行函数调用了解此功能的一些限制,以及它如何与此块的代码分析集成。如果这些函数调用不直接影响任何Simulink的输入或输出,则调用不会出现在万博1manbetx万博1manbetx仿真软件编码器生成的代码。

MATLAB函数块中定义的函数,也可以调用万博1manbetxSimulink函数块您可以调用Stateflow®功能与导出图表级功能(Make Global)允许Simulink调用导出的函数万博1manbetx选中图表属性对话框中的。

在端口和数据管理器中,可以将块输入声明为Simulink参数而不是端口。这个万博1manbetxMATLAB函数块还支持输入、输出和参万博1manbetx数的类型和大小继承。还可以显式指定这些属性。看见函数参数类型,大小函数参数,添加参数参数的变量描述MATLAB函数块。

中不允许递归调用MATLAB函数块。

默认情况下,MATLAB函数块具有直接馈通功能。要禁用它,在端口和数据管理器中,清除允许直接馈通复选框。非直接馈通语义确保输出仅依赖于当前状态。使用非直接馈通使您能够使用MATLAB函数阻塞反馈回路,防止代数回路。有关更多信息,请参见在MATLAB功能块中使用非直接馈通

港口

输入

全部展开

函数中的第一个输入参数对应的MATLAB函数块。如果在编辑器中重命名函数参数,则块会相应地重命名端口。

MATLAB支持但Si万博1manbetxmulink不支持的数据类型可能不会在Simulink模型和函数之间传递万博1manbetxMATLAB函数块这些类型可以在MATLAB函数块。

有关此块的定点支持的更多信息,请参见万博1manbetx用MATLAB函数块的定点数据类型(定点设计师)具有数据类型覆盖的MATLAB功能块(定点设计师)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|字符串|不动点|枚举|公共汽车

N中的函数的输入参数MATLAB函数块在编辑器中添加参数时,块会相应地添加端口。

MATLAB支持但Si万博1manbetxmulink不支持的数据类型可能不会在Simulink模型和函数之间传递万博1manbetxMATLAB函数块这些类型可以在MATLAB函数块。

有关此块的定点支持的更多信息,请参见万博1manbetx用MATLAB函数块的定点数据类型(定点设计师)具有数据类型覆盖的MATLAB功能块(定点设计师)

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|字符串|不动点|枚举|公共汽车

输出

全部展开

函数内部的第一个输出参数MATLAB函数块。如果在编辑器中重命名函数参数,则块会相应地重命名端口。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|字符串|不动点|枚举|公共汽车

N函数内部的输出参数MATLAB函数块在编辑器中添加参数时,块会相应地添加端口。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|布尔|字符串|不动点|枚举|公共汽车

块特征

数据类型

布尔[A.]|公共汽车[A.]|[A.]|枚举[A.]|不动点[A.]|整数[A.]|[A.]|字符串[A.]

直接引线

没有

多维信号

有限的[A.]

适应信号

有限的[A.]

过零检测

没有

[A.]实际的数据类型或功能支持取决于块的实现。万博1manbetx

扩展功能

PLC代码生成
使用Simulink®PLC编码器生成结构化文本代码™.万博1manbetx

在R2011a中引入