主要内容

在不同的数据类型上下文重用参数数据

当你使用金宝appSimulink.Parameter对象或一个数字MATLAB®变量设置两个或两个以上的参数值,如果块参数有不同的数据类型,您必须显式地指定数据类型的对象或变量。例如,您不能离开的数据类型默认值的参数对象,汽车

创建和配置示例模型

创建模型ex_paramdt_contexts

ex_paramdt_contexts

建模选项卡上,单击模型数据编辑器

在模型数据编辑器中,在港口/外港选项卡,使用数据类型列的数据类型三机一体轮廓尺寸块的数据类型In2int8

信号选项卡,设置数据类型获得块的输出继承:同样作为输入

参数选项卡,获得增益模块的参数设置数据类型继承:同样作为输入

获得参数设置价值myGainParam

此外,配置块,使用这些命令在命令提示符:

set_param (“ex_paramdt_contexts /三机一体”,“OutDataTypeStr”,“单一”)set_param (“ex_paramdt_contexts / In2”,“OutDataTypeStr”,“int8”)set_param (“ex_paramdt_contexts /增益-单”,“获得”,“myGainParam”,“OutDataTypeStr”,继承:作为输入相同的,“ParamDataTypeStr”,继承:作为输入相同的)set_param (“ex_paramdt_contexts /获得int8”,“获得”,“myGainParam”,“OutDataTypeStr”,继承:作为输入相同的,“ParamDataTypeStr”,继承:作为输入相同的)

在模型数据编辑器获得块参数,点击的细胞价值列。旁边myGainParam,点击操作按钮(三个垂直点)和选择创建

创建新的数据对话框中,设置价值金宝appSimulink.Parameter (3)并点击创建。一个金宝appSimulink.Parameter对象和值3出现在模型空间。

myGainParam属性对话框中,设置数据类型int8

代码生成选项卡上,单击在编码器配置应用程序

在代码映射编辑器中,设置的存储类myGainParamExportedGlobal。的存储类ExportedGlobal,对象出现在生成的代码作为一个全局变量。

另外,对象创建和配置参数,使用这些命令在命令提示符:

多工作站系统= get_param (“ex_paramdt_contexts”,“modelworkspace”);mws.assignin (“myGainParam”,金宝appSimulink.Parameter (3));setVariablePart(多工作站系统,“myGainParam.DataType”,“int8”);厘米= coder.mapping.utils.create (“ex_paramdt_contexts”);setModelParameter(厘米,“myGainParam”,“StorageClass”,“ExportedGlobal”);

在这个模型中,您使用的参数对象myGainParam设置两块参数值。块参数继承不同数据类型的块输入信号(int8)。使用myGainParam在这些不同的数据类型上下文,您显式地指定参数的数据类型对象通过设置数据类型财产int8

匹配参数对象数据类型和数据类型的信号

可选地,使用一个金宝appSimulink.NumericType金宝appSimulink.AliasType对象设置参数对象数据类型和数据类型的一个信号。这种技术可以消除不必要的类型转换和生成的代码的变化由于参数不匹配对象数据类型和数据类型的信号。

在命令提示符处,创建一个金宝appSimulink.NumericType对象来表示数据类型int8

sharedType_int8 = fixdt (“int8”);

在模型数据编辑器中,在港口/外港选项卡,设置的数据类型In2轮廓尺寸块sharedType_int8

参数选项卡中,更新框图。现在的数据表包含一个行,代表参数对象,myGainParam

使用数据类型列的数据类型参数设置对象sharedType_int8

另外,配置块和对象,使用这些命令在命令提示符:

myGainParam。数据类型=“sharedType_int8”;set_param (“ex_paramdt_contexts / In2”,“OutDataTypeStr”,“sharedType_int8”)

参数对象和信号使用的数据类型int8。改变这种数据类型,调整数据类型的属性对象sharedType_int8

生成和检查代码

从模型中生成代码。

slbuild (“ex_paramdt_contexts”)
# # #开始构建过程:ex_paramdt_contexts # # #成功完成构建过程:ex_paramdt_contexts模型建立目标:总结构建模型重建行动的原因= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = ex_paramdt_contexts代码生成和编译代码生成信息文件不存在。1 1模型的建立(0模型已经更新)构建持续时间:0 h 0米11.425秒

生成的文件ex_paramdt_contexts.c定义全局变量myGainParam通过使用数据类型int8_T对应的数据类型int8在仿真金宝app软件。

文件= fullfile (“ex_paramdt_contexts_grt_rtw”,“ex_paramdt_contexts.c”);rtwdemodbtype(文件,“/ *导出块参数* /”,“int8_T myGainParam = 3,“,1,1)
* / / *导出块参数int8_T myGainParam = 3;/ *变量:myGainParam

生成的代码的算法模型一步函数使用myGainParam计算两个增益模块的输出。对于输入信号的增益块使用的数据类型投,代码算法myGainParam的数据类型real32_T对应的数据类型在仿真金宝app软件。

rtwdemodbtype(文件,“/ *模型阶跃函数* /”,“/ *模型初始化函数* /”,1,0)
/ *模型阶跃函数* /空白ex_paramdt_contexts_step (void){/ *外港:“< Root > /着干活”包含:*获得:“< Root > /增益——单身”*尺寸:“< Root > / In1”* / ex_paramdt_contexts_Y。着干活= (real32_T) myGainParam * ex_paramdt_contexts_U.In1;/ *输出港:“< Root > / Out2”包含:*获得:“< Root > /获得int8”*尺寸:“< Root > / In2”* / ex_paramdt_contexts_Y。Out2 = (int8_T) (myGainParam * ex_paramdt_contexts_U.In2);}

相关的话题