主要内容

用MATLAB函数块生成代码

组成一个MATLAB语言功能万博1manbetx模型

MATLAB函数块让您编写一个MATLAB®在Simulink中的语言函数万博1manbetx®生成可嵌入代码的模型。当您为目标环境模拟模型或生成代码时,MATLAB函数块生成高效的C/ c++代码。此代码满足嵌入式目标环境严格的内存和数据类型要求。这样,MATLAB函数块将MATLAB的强大的嵌入式环境带入Simulink。万博1manbetx

有关的更多信息MATLAB函数块和代码的生成,参考如下:

MATLAB函数使用数据类型覆盖的块

当你使用MATLAB函数块在指定数据类型覆盖的万博1manbetxSimulink模型中,块确定输入信号和参数类型的数据类型覆盖等效物。然后,该块使用这些等效值来运行模拟。下表显示了如何MATLAB函数块确定使用的数据类型重写等效

  • 输入信号或参数的数据类型

  • 在Simulink模型中,数据类型覆盖设置万博1manbetx

有关数据类型重写的详细信息,请参见fxptdlg

输入信号或参数类型 数据类型覆盖设置 数据类型覆盖应用于设置 覆盖数据类型
继承了 所有数值类型浮点 内置的
所有数值类型浮点 内置的
扩大两倍 所有数值类型浮点 fi扩大两倍
指定的 所有数值类型浮点 内置的
所有数值类型浮点 内置的
扩大两倍 所有数值类型浮点 fi扩大两倍
继承了 所有数值类型浮点 内置的
所有数值类型浮点 内置的
扩大两倍 所有数值类型浮点 fi扩大两倍
指定的 所有数值类型浮点 内置的
所有数值类型浮点 内置的
扩大两倍 所有数值类型浮点 fi扩大两倍
继承了固定 所有数值类型定点 fi双
所有数值类型定点 fi单
扩大两倍 所有数值类型定点 fi扩大两倍
指定的固定 所有数值类型定点 fi双
所有数值类型定点 fi单
扩大两倍 所有数值类型定点 fi扩大两倍

的详细信息MATLAB函数数据类型覆盖的块,参见使用MATLAB函数块的数据类型覆盖

使用的定点数据类型MATLAB函数

MATLAB的代码生成支持大量的定点设计器™函数。万博1manbetx指支持代码加速或C代码万博1manbetx生成的函数有关支持哪些定点设计器函数的信息。万博1manbetx

有关使用定点的更多信息MATLAB函数块,见:

请注意

要在Simulink中使用定点数据类型模拟模型,您必须拥有定点设计器许可证。万博1manbetx

在模型资源管理器中指定定点参数

可以指定参数MATLAB函数块在定点模型中使用模型资源管理器。有关更多信息,请参见指定MATLAB函数块属性

试试下面的练习:

  1. 放置一个MATLAB函数块在一个新的模型。你可以在Simulink用户定义函数库中找到这个块。万博1manbetx

  2. 打开Model Explorer。在建模选项卡上,单击模型浏览器

  3. 扩大无标题的*节点模型层次结构窗格中的。然后,选择MATLAB函数节点。模型资源管理器现在显示如下图所示。

中的以下参数对话框面板适用于MATLAB函数使用定点和整数数据类型的模型中的块:

将这些继承的Simulink信号类型视为fi万博1manbetx对象

选择是否将继承的定点和整数信号视为fi对象。

  • 当您选择定点,MATLAB函数块将所有定点输入视为定点设计器fi对象。

  • 当您选择定点和整数,MATLAB函数块将所有定点和整数输入视为定点设计器fi对象。

函数块fimath

指定fimath属性使块与以下对象关联:

  • 所有定点和整数输入信号MATLAB函数您选择作为处理的块fi对象。

  • 所有fifimath中构造的MATLAB函数块。

的选项可以选择下列选项之一函数块fimath

  • MATLAB一样—当您选择此选项时,块使用相同的fimath属性作为当前默认的fimath。编辑框显示为灰色,并以只读形式显示当前默认的fimath。

  • 指定其他—当您选择此选项时,您可以指定自己的选项fimath对象。

有关这些参数的更多信息,请参见在MATLAB函数块中使用fmath对象

在MATLAB函数块中使用fmath对象

函数块fimath参数使您可以指定一组fimath对象的属性MATLAB函数块。块与fimath使用以下对象指定的属性:

  • 所有定点和整数输入信号MATLAB函数您选择作为处理的块fi对象。

  • 所有fifimath中构造的MATLAB函数块。

您可以在下面的对话框中设置这些参数。

  • 要通过模型资源管理器访问此窗格:

    • 建模选项卡上,单击模型浏览器

    • 然后,选择MATLAB函数从模型资源管理器左侧的模型层次结构窗格中取出。

  • 在MATLAB上通过端口和数据管理器访问该窗格编辑器选项卡上,单击编辑数据

当您选择MATLAB一样函数块fimath,MATLAB函数块使用当前默认的fmath。当前默认的fimath将在编辑框中以只读形式显示。

当您选择指定其他该块允许您指定自己的fimath对象。你可以用以下两种方法之一:

  • 构建fimath对象在编辑框中。

  • 构建fimath对象,然后在编辑框中输入其变量名。

    请注意

    如果您使用这个选项并计划与他人共享您的模型,请确保您在模型工作区中定义了这个变量。看到共享模型与定点MATLAB函数块有关共享模型的更多信息。

定点设计师isfimathlocal函数支持MATLA万博1manbetxB的代码生成。

共享模型与定点MATLAB函数块

当您与一位同事协作时,您可以使用MATLAB函数块。要共享模型,请确保移动MATLAB工作空间中定义的任何变量,包括fimath对象添加到模型工作区。例如,尝试以下方法:

  1. 放置一个MATLAB函数块在一个新的模型。你可以在Simulink用户定义函数库中找到这个块。万博1manbetx

  2. 定义一个fimath对象,您希望用于任何Simulink定点信号进入的万博1manbetxMATLAB函数块作为输入:

    F = fimath(‘RoundingMethod’,‘层’,‘OverflowAction’,‘包装’,……“ProductMode”、“KeepLSB’,‘ProductWordLength’,32岁,…'SumMode','KeepLSB','SumWordLength',32) F = RoundingMethod: Floor OverflowAction: Wrap ProductMode: KeepLSB ProductWordLength: 32 SumMode: KeepLSB SumWordLength: 32 CastBeforeSum: true

  3. 打开Model Explorer。在建模选项卡上,单击模型浏览器

  4. 扩大无标题的*节点模型层次结构窗格,并选择MATLAB函数节点。

  5. 选择指定其他函数块fimath参数,并输入变量F的编辑框对话框窗格。点击应用保存更改。

    现在你已经定义了fimath属性与所有Simulink定点输入信号和所有万博1manbetxfifimath在块中构造的对象。

  6. 选择基本工作空间节点模型层次结构窗格。你可以看到这个变量F的MATLAB工作空间中定义的内容窗格。如果您将此模型发送给某个同事,该同事必须首先在MATLAB工作空间中定义相同的变量,以获得相同的结果。

  7. 把变量F从基本工作空间,并将其粘贴到模型节点下列出的模型工作空间中,在本例中,无标题的*.模型资源管理器现在显示如下图所示。

    您现在可以将您的模型通过电子邮件发送给一位同事。因为您在模型本身的工作空间中包含了所需的变量,所以您的同事可以简单地运行模型并得到正确的结果。接收和运行模型不需要任何额外步骤。