使用掩码查找表控件可视化和编辑n维数据
可以使用查找表控件在掩码对话框中可视化和编辑n维查找表数据。使用简单的查找操作查找近似函数的表,并显著减少计算时间。
使用查找表控件可视化和编辑表和断点数据
考虑这样一个场景:燃料流量由扭矩和发动机转速决定。为表数据和断点参数显式指定数据:
1.右键单击该块,单击编辑蒙版打开蒙版编辑器。在蒙版编辑器转到参数&对话框窗格,为断点创建编辑参数扭矩和发动机转速。在属性编辑器窗格中,输入断点的值值盒子。
2.控件中的表数据创建Edit参数Fuel Flow属性编辑器窗格中,输入值价值盒子。
3.添加一个查找表控件。输入表属性表参数,表的单位,表显示名称,断点参数,断点的单位,断点显示名称.点击好吧.
4.双击屏蔽块可查看查找表。单击一个单元格编辑值。
要查看表格的热图,右键单击一个单元格,然后单击热图上.
参考表和断点数据的提升参数
您可以按照相同的步骤引用提升的参数来构建查找表。
使用查找表对象指定表数据和断点数据
要在查找表控件中引用对象:
1.创建一个名为lutobject
在具有表和断点数据的模型或基本工作区中。
2.创建Edit参数并输入价值作为lutobject
在模型工作区中创建。
3.创建查找表控件,lutcontrol
并引用Edit参数。
4.查找表现在填充了表和断点数据。
在显式数据规范模式和数据引用模式之间切换
可以使用弹出参数在显式数据规范模式和数据引用模式之间切换。创建一个Popup参数,并在查找表控件中使用它来在显式数据规范模式和对象引用模式之间进行选择。
为Popup参数使用回调代码。
dataspec_paramName = 'dataspec';bp1_paramName = 'torque';bp2_paramName = 'enginespeed';tbl_paramName = '燃料流';lutobj_paramName = 'lutobject';underlyingLUTblock = 'slexMaskLookupTableControlExample/LUT控件与数据规范模式/二维查找表';
dataSpec = get_param(gcb, dataspec_paramName);maskObj = Simulink.Mask.get(gcb);lutobaram = maskObj.getParameter(lutobj_paramName);bp1Param = maskObj.getParameter(bp1_paramName);bp2Param = maskObj.getParameter(bp2_paramName);tableParam = maskObj.getParameter(tbl_paramName);set_param(underlyingLUTblock, 'DataSpecification', dataSpec);
如果strcmp(dataSpec, '查找表对象')Visible = 'off';bp2Param。Visible = 'off';tableParam。Visible = 'off';lutoParam。Visible = 'on';bp1Param。Visible = 'on';bp2Param。Visible = 'on'; tableParam.Visible = 'on'; lutoParam.Visible = 'off'; end
在查找表之间共享显式断点数据
许多应用程序对不同类型的数据使用相同的断点。可以通过共享断点数据创建多个查找表。例如,排气温度,空气压力,燃料流量使用相同的断点转矩而且发动机转速.在掩码编辑器中为每个查找表创建多个容器,并在每个表中使用相同的断点。
可视化多维数据
要可视化多维数据,请为表和断点创建Edit参数并输入值。要可视化某个维度的数据,请从列表中选择该维度的参数。
以编程方式添加查找表控件
以编程方式添加掩码查找表控件:
1.获取掩码对象。
maskObj = Simulink.Mask.get(blkhndl);
2.向掩码添加表数据和断点参数。
maskObj。addParameter('Name', 'torque', 'Prompt, 'torque:', 'Type', 'edit');maskObj。addParameter('Name', 'speed', 'Prompt', 'Engine speed:', 'Type', 'edit');maskObj。addParameter('Name', 'fuelflowtable', 'Prompt', 'Fuel Flow Map:', 'Type', 'edit');
3.设置表属性。
lutControl.Table.Name = 'fuelflowtable';lutControl.Table.Unit = 'kg/s;lutControl.Table.FieldName = '燃料流量';
设置Dimension 1的断点属性。
lutControl.Breakpoints(1)。Name =“扭矩”;lutControl.Breakpoints(1)。单位=“纳米”;lutControl.Breakpoints(1)。字段名=“扭矩”;
设置“维度2”的“断点”属性
lutControl.Breakpoints(2)。Name =“速度”;lutControl.Breakpoints(2)。单位=“转”;lutControl.Breakpoints(2)。字段名=“速度”;
4.添加查找表控件。
lutControl = maskObj.addDialogControl(“名字”,“fuelflowlut”,“类型”,“lookuptablecontrol”);
另请参阅
Simulink.dialog.LookupTableControl
||
Simulink.dialog.LookupTableControl.Breakpoints