用MATLAB函数块集成C代码
如果您有想要在Simulink中使用的C代码金宝app®模型,您可以调用外部C代码的模型使用MATLAB函数块。MATLAB函数块调用C代码使用MATLAB®命令。还可以从模型生成代码MATLAB函数调用外部C代码的块。
从a调用C代码金宝app模型
要在Simulink模型中调用外部C代码,请遵循以下步骤:金宝app
识别来源(
.c
)和头文件(.h
)文件,其中包含您想在模型中使用的C代码。插入一个MATLAB函数块到你的模型。
在MATLAB函数块,使用
coder.ceval
函数调用C代码。要通过引用传递数据,请使用coder.ref
,coder.rref
,或coder.wref
.中指定C源文件和头文件模拟目标窗格中的“配置参数”窗口。使用双引号包含头文件,例如,
# include“program.h”
.如果需要访问工作文件夹外的C源文件和头文件,请在模拟目标窗格,在包括目录文本框中。或者,使用
coder.cinclude
而且coder.updateBuildInfo
函数在MATLAB代码中指定源文件和头文件。要开发到外部代码的接口,可以使用编码器。ExternalDependency
类。要查看受支持的工作流,请参见金宝app导入自定义代码.测试您的Simuli金宝appnk模型并确保其正常工作。
如果你有金宝app仿真软件编码器™许可证,您可以为目标生成代码。要使用相同的源文件和头文件来生成代码,请打开配置参数,导航到代码生成>自定义代码窗格,并启用使用与模拟目标相同的自定义代码设置.您还可以指定不同的源文件和头文件。
为了使代码能够执行不同的命令进行模拟和代码生成,可以使用
coder.target
函数。
使用coder.ceval
举例说明MATLAB函数块
这个例子展示了如何调用简单的C程序doubleIt
从一个MATLAB函数块。
创建源文件
doubleIt.c
在当前工作文件夹中。#include "doubleIt.h" double doubleIt(double u) {return(u*2.0);}
创建头文件
doubleIt.h
在当前工作文件夹中。定义MYFN double double (double u);# endif
创建一个新的Simulin金宝appk模型。另存为
myModel
.在库浏览器中,导航到金宝app>用户定义函数库,并添加MATLAB函数块到模型。
双击该块以打开MATLAB函数块编辑器.方法调用的代码
doubleIt
计划:函数y = callingDoubleIt(u) y = 0.0;Y = code .ceval(“doubleIt”u);
连接一个常数值为的块
3.5
的输入端口MATLAB函数块。连接一个显示块到输出端口。
打开“配置参数”窗口,并导航到模拟目标窗格。
在代码信息选项卡上,单击包括头信息,然后进入
# include“doubleIt.h”
.单击源文件TAB键并输入
doubleIt.c
.点击好吧.运行模拟。的值
7
出现在显示块。
控件导入的总线和枚举类型定义
调用外部C代码时使用MATLAB函数块或状态流®,您可以控制模型中导入的总线和枚举的类型定义。金宝appSimulink可以为您生成类型定义,或者您可以提供一个包含类型定义的头文件。控件可以控制此行为为导入的总线和枚举类型生成类型定义参数。要找到此参数,请打开“配置参数”窗口,导航到模拟目标窗格,并展开先进的参数部分。
若要配置Simulink以金宝app自动生成类型定义,请启用为导入的总线和枚举类型生成类型定义.若要包含定义枚举和总线类型的自定义头文件,请清除为导入的总线和枚举类型生成类型定义文件中列出头文件头文件文本框中。
另请参阅
coder.ceval
|coder.target
|coder.cinclude
|coder.updateBuildInfo
|编码器。ExternalDependency
|编码器。BuildConfig
|coder.ref
|coder.rref
|coder.wref