的MATLAB函数块让您编写一个MATLAB®在Simulink中的语言函数万博1manbetx®生成可嵌入代码的模型。当您为目标环境模拟模型或生成代码时,MATLAB函数块生成高效的C/ c++代码。此代码满足嵌入式目标环境严格的内存和数据类型要求。这样,MATLAB函数块将MATLAB的强大的嵌入式环境带入Simulink。万博1manbetx
有关的更多信息MATLAB函数块和代码的生成,参考如下:
当你使用MATLAB函数块在指定数据类型覆盖的万博1manbetxSimulink模型中,块确定输入信号和参数类型的数据类型覆盖等效物。然后,该块使用这些等效值来运行模拟。下表显示了如何MATLAB函数块确定使用的数据类型重写等效
输入信号或参数的数据类型
在Simulink模型中,数据类型覆盖设置万博1manbetx
有关数据类型重写的详细信息,请参见fxptdlg
.
输入信号或参数类型 | 数据类型覆盖设置 | 数据类型覆盖应用于设置 | 覆盖数据类型 |
---|---|---|---|
继承了单 |
双 |
所有数值类型 或浮点 |
内置的双 |
单 |
所有数值类型 或浮点 |
内置的单 |
|
扩大两倍 |
所有数值类型 或浮点 |
fi扩大两倍 |
|
指定的单 |
双 |
所有数值类型 或浮点 |
内置的双 |
单 |
所有数值类型 或浮点 |
内置的单 |
|
扩大两倍 |
所有数值类型 或浮点 |
fi扩大两倍 |
|
继承了双 |
双 |
所有数值类型 或浮点 |
内置的双 |
单 |
所有数值类型 或浮点 |
内置的单 |
|
扩大两倍 |
所有数值类型 或浮点 |
fi扩大两倍 |
|
指定的双 |
双 |
所有数值类型 或浮点 |
内置的双 |
单 |
所有数值类型 或浮点 |
内置的单 |
|
扩大两倍 |
所有数值类型 或浮点 |
fi扩大两倍 |
|
继承了固定 |
双 |
所有数值类型 或定点 |
fi双 |
单 |
所有数值类型 或定点 |
fi单 |
|
扩大两倍 |
所有数值类型 或定点 |
fi扩大两倍 |
|
指定的固定 |
双 |
所有数值类型 或定点 |
fi双 |
单 |
所有数值类型 或定点 |
fi单 |
|
扩大两倍 |
所有数值类型 或定点 |
fi扩大两倍 |
的详细信息MATLAB函数数据类型覆盖的块,参见使用MATLAB函数块的数据类型覆盖.
MATLAB的代码生成支持大量的定点设计器™函数。万博1manbetx指支持代码加速或C代码万博1manbetx生成的函数有关支持哪些定点设计器函数的信息。万博1manbetx
有关使用定点的更多信息MATLAB函数块,见:
请注意
要在Simulink中使用定点数据类型模拟模型,您必须拥有定点设计器许可证。万博1manbetx
可以指定参数MATLAB函数块在定点模型中使用模型资源管理器。有关更多信息,请参见指定MATLAB函数块属性.
试试下面的练习:
放置一个MATLAB函数块在一个新的模型。你可以在Simulink用户定义函数库中找到这个块。万博1manbetx
打开Model Explorer。在建模选项卡上,单击模型浏览器.
扩大无标题的*节点模型层次结构窗格中的。然后,选择MATLAB函数节点。模型资源管理器现在显示如下图所示。
中的以下参数对话框面板适用于MATLAB函数使用定点和整数数据类型的模型中的块:
选择是否将继承的定点和整数信号视为fi
对象。
当您选择定点
,MATLAB函数块将所有定点输入视为定点设计器fi
对象。
当您选择定点和整数
,MATLAB函数块将所有定点和整数输入视为定点设计器fi
对象。
指定fimath
属性使块与以下对象关联:
所有定点和整数输入信号MATLAB函数您选择作为处理的块fi
对象。
所有fi
和fimath
中构造的MATLAB函数块。
的选项可以选择下列选项之一函数块fimath:
MATLAB一样—当您选择此选项时,块使用相同的fimath
属性作为当前默认的fimath。编辑框显示为灰色,并以只读形式显示当前默认的fimath。
指定其他—当您选择此选项时,您可以指定自己的选项fimath
对象。
有关这些参数的更多信息,请参见在MATLAB函数块中使用fmath对象.
的函数块fimath参数使您可以指定一组fimath
对象的属性MATLAB函数块。块与fimath
使用以下对象指定的属性:
所有定点和整数输入信号MATLAB函数您选择作为处理的块fi
对象。
所有fi
和fimath
中构造的MATLAB函数块。
您可以在下面的对话框中设置这些参数。
要通过模型资源管理器访问此窗格:
在建模选项卡上,单击模型浏览器.
然后,选择MATLAB函数从模型资源管理器左侧的模型层次结构窗格中取出。
在MATLAB上通过端口和数据管理器访问该窗格编辑器选项卡上,单击编辑数据.
当您选择MATLAB一样为函数块fimath,MATLAB函数块使用当前默认的fmath。当前默认的fimath将在编辑框中以只读形式显示。
当您选择指定其他该块允许您指定自己的fimath
对象。你可以用以下两种方法之一:
构建fimath
对象在编辑框中。
构建fimath
对象,然后在编辑框中输入其变量名。
请注意
如果您使用这个选项并计划与他人共享您的模型,请确保您在模型工作区中定义了这个变量。看到共享模型与定点MATLAB函数块有关共享模型的更多信息。
定点设计师isfimathlocal
函数支持MATLA万博1manbetxB的代码生成。
当您与一位同事协作时,您可以使用MATLAB函数块。要共享模型,请确保移动MATLAB工作空间中定义的任何变量,包括fimath
对象添加到模型工作区。例如,尝试以下方法:
放置一个MATLAB函数块在一个新的模型。你可以在Simulink用户定义函数库中找到这个块。万博1manbetx
定义一个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
打开Model Explorer。在建模选项卡上,单击模型浏览器.
扩大无标题的*节点模型层次结构窗格,并选择MATLAB函数节点。
选择指定其他为函数块fimath参数,并输入变量F
的编辑框对话框窗格。点击应用保存更改。
现在你已经定义了fimath
属性与所有Simulink定点输入信号和所有万博1manbetxfi
和fimath
在块中构造的对象。
选择基本工作空间节点模型层次结构窗格。你可以看到这个变量F
的MATLAB工作空间中定义的内容窗格。如果您将此模型发送给某个同事,该同事必须首先在MATLAB工作空间中定义相同的变量,以获得相同的结果。
把变量F
从基本工作空间,并将其粘贴到模型节点下列出的模型工作空间中,在本例中,无标题的*.模型资源管理器现在显示如下图所示。
您现在可以将您的模型通过电子邮件发送给一位同事。因为您在模型本身的工作空间中包含了所需的变量,所以您的同事可以简单地运行模型并得到正确的结果。接收和运行模型不需要任何额外步骤。