包裹:金宝app
超类:
存储和共享查找表和断点数据,为ASAP2和AUTOSAR代码生成配置数据
一件物品金宝app仿真软件。LookupTable
类存储查询表和断点数据。可以在查找表块中使用该数据,例如一天的查找表块。使用该对象,您可以为表和断点集指定数据类型和代码生成设置。
当您将所有表和断点集数据存储在一个金宝app仿真软件。LookupTable
对象时,所有数据都显示在生成的代码中的单个结构中。要配置用于校准的STD_AXIS代码生成,请使用此技术。
要在多个查找表之间共享一个断点,例如用于com_axis代码生成,请使用a金宝appsimulink.breakpoint.
一个或多个物体prelookup.块。用金宝app仿真软件。LookupTable
对象插值使用Prelookup块。然后,配置查找表对象以引用断点对象。有关更多信息,请参阅包共享断点和查找表的表数据.
的子类金宝app仿真软件。LookupTable
并从此基类继承,将此语法键入类定义文件的第一行,其中myLookuptable是您的新课程的名称:
< Simulink. classdef myLo金宝appokuptableLookupTable
有关子类化的示例,请参见定义数据类.
如果向子类添加属性,可以通过在MATLAB中显示子类对象来查看它们®命令行。在“属性”对话框中,这些属性在新选项卡中显示。
lutobj = 金宝appsimulink.lookuptable.
返回A.金宝app仿真软件。LookupTable
目的LUTObj
使用默认属性值。
创建一个金宝app仿真软件。LookupTable
对象,使用按钮在工具栏上。对象的默认名称是对象
.
设置断点规范来显式的
(默认值)显示属性对话框的此视图。
对话框的底部包含表和断点数据值。有关此表格区域的更多信息,请参见视图模型。金宝appLookupTable对象Data Using the Property Dialog Box Tabular Interface.该表的内容等同于价值属性时可见断点规范属性设置为甚至间距
或参考
.
查找表的维数。指定一个到的整数值30.
(包容)。例如,要表示一个三维查找表,请指定整数3.
.
表数据的信息。你可以配置这些特征:
表数据。指定包含至少两个元素的数字向量或多维数组。
这价值表数据与表对话框底部可见的表格接口的内容相同断点规范属性设置为显式的
.有关此表格区域的更多信息,请参见视图模型。金宝appLookupTable对象Data Using the Property Dialog Box Tabular Interface.
笔记
此属性仅当断点规范被设置为甚至间距
或参考
.
您还可以使用与数学运算符的表达式,如sin (1:0.5:30)
只要表达式返回数字向量或多维数组。当你点击申请或好吧,对象执行表达式并使用结果来设置此属性的值。
当您设置数据类型来汽车
, 设置价值,使用类型化表达式,例如单((1 2 3))
或者使用FI.
(定点设计师)构造函数来嵌入FI.
对象。
当您指定具有三个或多个维度的表数据时,价值将数据显示为包含对其呼叫的表达式重塑
函数。要编辑数据中的值,请修改重塑
调用,它包含序列化向量中的所有值。当沿着维度添加或删除元素时,还必须更正表示修改后维度长度的参数。
您可以通过在查找表块中使用更直观的接口来编辑此数据。看从MATLAB导入查找表数据.
表数据的数据类型。默认设置是汽车
,这意味着表数据从中指定的值获取数据类型价值.如果您使用非类型化表达式,例如[1 2 3]
设置价值,表数据使用数据类型双
.如果指定类型化表达式,例如单((1 2 3))
或者一个FI.
对象,表数据使用表达式或对象指定的数据类型。还支持枚举数据类型。金宝app
可以显式指定整数数据类型、半数据类型、浮点数据类型、定点数据类型或数据类型表达式,例如金宝app仿真软件。AliasType
对象。
有关Simulink中数据类型的更多信息金宝app®, 看Simulink支持的金宝app数据类型金宝app.来决定如何控制表和断点数据的数据类型金宝app仿真软件。LookupTable
和金宝appsimulink.breakpoint.
对象,看到查找表对象的控制数据类型(金宝app仿真软件编码器).
查找表数据的维度长度。
要使用符号维数,请指定字符向量。看在生成的代码中实现数组大小的维度变量(嵌入式编码).
表数据中元素的最小值。默认值为空,[]
.您可以指定一个数字,实际值。
有关Simulink如何使用此属性的更多信息,请参见金宝app指定块参数的最小值和最大值.
表数据中元素的最大值。默认值为空,[]
.您可以指定一个数字,实际值。
有关Simulink如何使用此属性的更多信息,请参见金宝app指定块参数的最小值和最大值.
为了金宝app仿真软件。LookupTable
具有固定点数据类型的对象,表数据中元素的最小值,指定为存储的整数值。该值来自真实世界的价值最小值.此属性仅在属性对话框中可用。
为了金宝app仿真软件。LookupTable
具有定点数据类型(表数据中元素的最大值)的对象,指定为存储的整数值。该值来自真实世界的价值最大限度.此属性仅在属性对话框中可用。
查找表中的元素的物理单位。您可以指定文本,如Degc.
.看Simulink模型中的单元规范金宝app.
生成代码中结构字段的名称。如果配置,则此字段存储表数据金宝app仿真软件。LookupTable
对象以结构形式出现在生成的代码中。默认值是表格
.要更改字段名,请指定文本。
查找表的描述。您可以指定文本,如这个查询表描述了泵的作用
.
断点设置的信息。每一行都设置了一个断点。要配置其他断点集,请在表维数盒子。
对于断点集,您可以配置这些特性:
用于断点集的信息的来源,指定为明确的价值
(默认),参考
,或甚至间距
.
将所有表和断点集数据存储在金宝app仿真软件。LookupTable
对象,设置规范来明确的价值
.
这金宝app仿真软件。LookupTable
对象将生成的代码显示为单个结构变量。
将表数据存储在金宝app仿真软件。LookupTable
对象并存储中断点集数据金宝appsimulink.breakpoint.
对象,设置规范来参考
.
这金宝app仿真软件。LookupTable
对象作为包含表数据的单独数组变量出现在生成的代码中。每一个金宝appsimulink.breakpoint.
对象显示为包含断点集数据的单独数组或结构变量。
将表数据和间隔均匀的断点存储在金宝app仿真软件。LookupTable
对象,设置规范来甚至间距
.使用第一点和间距参数来生成一组间隔均匀的断点。
笔记
当规范被设置为明确的价值
或甚至间距
,您可以在查找表对象生成的结构中更改可调大小、断点和表项的顺序。
规范,以启用在生成的代码中调整表的有效大小。在代码中,对应于对象的结构具有用于每个断点向量的额外字段。每个额外的字段都存储相应的断点向量的长度。您可以更改每个字段的值以调整表的有效大小。
仅当您设置时才出现此属性规范来明确的价值
或甚至间距
.
笔记
如果您存储断点数据金宝appsimulink.breakpoint.
通过设置规范来参考
,若要在生成的代码中启用表大小的调优,请使用金宝app支持可调大小财产的金宝appsimulink.breakpoint.
对象。
断点集的数据。指定一个至少包含两个元素的数字向量。
笔记
此属性仅当断点规范
被设置为甚至间距
或参考
.这价值断点设置数据与表对话框底部可见的表格接口的内容相同断点规范属性设置为显式的
.有关此表格区域的更多信息,请参见视图模型。金宝appLookupTable对象Data Using the Property Dialog Box Tabular Interface.
您还可以使用与数学运算符的表达式,如sin (1:0.5:30)
只要表达式返回的是数字向量。当你点击申请或好吧,对象执行表达式并使用结果来设置此属性的值。
当您设置数据类型来汽车
, 设置价值,使用类型化表达式,例如单((1 2 3))
或者使用FI.
(定点设计师)构造函数来嵌入FI.
对象。
您可以通过在查找表块中使用更直观的接口来编辑此数据。看从MATLAB导入查找表数据.
断点集的数据类型。默认设置是汽车
,这意味着断点集从您指定的值获取数据类型价值.如果您使用非类型化表达式,例如[1 2 3]
设置价值,则断点数据使用该数据类型双
.如果指定类型化表达式,例如单((1 2 3))
或者一个FI.
对象,断点数据使用表达式或对象指定的数据类型。
可以显式指定整数数据类型、浮点数据类型、定点数据类型或数据类型表达式,例如金宝app仿真软件。AliasType
对象。
有关Simulink中数据类型的更多信息,请参见金宝appSimulink支持的金宝app数据类型金宝app.来决定如何控制表和断点数据的数据类型金宝app仿真软件。LookupTable
和金宝appsimulink.breakpoint.
对象,看到查找表对象的控制数据类型(金宝app仿真软件编码器).
断点集的尺寸长度。
要使用符号维数,请指定字符向量。看在生成的代码中实现数组大小的维度变量(嵌入式编码).
断点集中元素的最小值。默认值为空,[]
.您可以指定一个数字,实际值。
有关Simulink如何使用此属性的更多信息,请参见金宝app指定块参数的最小值和最大值.
断点集中元素的最大值。默认值为空,[]
.您可以指定一个数字,实际值。
有关Simulink如何使用此属性的更多信息,请参见金宝app指定块参数的最小值和最大值.
断点集合中元素的物理单位。您可以指定文本,如Degf.
.看Simulink模型中的单元规范金宝app.
生成代码中结构字段的名称。该字段存储断点集数据。默认值是BP1
对于第一个断点集和BP2
第二盘。要更改字段名,请指定文本。
生成代码中结构字段的名称。该字段存储断点集的长度(元素的数量),生成的代码算法使用它来确定表的大小。要在代码执行期间调优表的有效大小,请更改内存中此结构字段的值。默认名称为N1
对于第一个断点集和N2
第二盘。要更改字段名,请指定文本。
此列只在您选择时显示金宝app支持可调大小.
断点集的描述。您可以指定文本,如此断点组表示压力输入
.
第一点处于均匀间隔的断点数据。此参数可用规范被设置为甚至间距
.
等间距断点数据中点之间的间距。此参数可用规范被设置为甚至间距
.
的名字金宝appsimulink.breakpoint.
存储此断点集的信息的对象。
此列仅在设置时出现规范来参考
.
的名字金宝appsimulink.breakpoint.
对象,它存储第一个点的信息。此参数可用规范被设置为甚至间距
.
的名字金宝appsimulink.breakpoint.
存储间距信息的对象。此参数可用规范被设置为甚至间距
.
结构变量的存储类(如果设置规范来明确的价值
或甚至间距
)或数组变量(参考
)。变量存储表数据,如果变量是一个结构,则存储断点集数据。默认设置是汽车
.
有关存储类的更多信息,请参见C代码生成配置模型接口元素(金宝app仿真软件编码器).
如果您有嵌入式编码器®,您可以选择自定义存储类。有关自定义存储类的信息,请参阅使用STRACT Storage类将参数数据组织成结构(嵌入式编码).
结构变量的替代名称(如果您设置规范来明确的价值
或甚至间距
)或数组变量(参考
)。默认值为空,在这种情况下,生成的代码使用的名称金宝app仿真软件。LookupTable
对象作为结构或数组变量的名称。要设置标识符,请指定文本。
若要启用此属性,请设置数据定义:存储类而不是汽车
.
生成代码中的数据对齐边界。为结构或数组变量分配的数据的起始内存地址是指定值的倍数。默认值是-1
,它允许代码生成器根据使用情况确定最佳对齐。
指定一个正整数,它是2的功率,不超过128.有关使用数据对齐进行代码替换的更多信息,请参阅代码替换数据对齐(嵌入式编码).
结构变量在生成的代码中使用的结构类型的名称。默认值为空。指定文本。
仅当您设置时才出现此属性规范来明确的价值
或甚至间距
.
结构类型定义的范围(从您的自定义代码导入或从生成的代码导出)。默认值是汽车
.当您选择汽车
:
属性中没有指定值结构类型定义:标题文件框中,生成的代码将结构类型定义导出到文件
.模型
_types.h
是模型的名称。模型
中指定的值结构类型定义:标题文件框,如myHdr.h
,生成的代码从其中导入结构类型定义myHdr.h
.
要显式指定数据范围:
要将结构类型定义导入自定义代码中的生成代码,请选择进口
.
要从生成的代码导出结构类型定义,请选择出口
.
属性中没有指定值结构类型定义:标题文件框中,生成的代码将从之间导入或导出类型定义
.StructName
.h
是使用属性指定的名称吗结构类型定义:名称.StructName
仅当您设置时才出现此属性规范来明确的价值
或甚至间距
.
包含结构类型定义的头文件的名称。您可以从创建的头文件中导入定义,或者将定义导出到生成的头文件中。要控制结构类型的范围,请调整为结构类型定义:数据范围财产。
仅当您设置时才出现此属性规范来明确的价值
或甚至间距
.
表和断点数据的信息。您可以在相关的文本框中输入MATLAB表达式,或者直接在附带的表中添加数据。选择所需的数据类型:
表格
——表数据。指定包含至少两个元素的数字向量或多维数组。
您还可以使用与数学运算符的表达式,如sin (1:0.5:30)
只要表达式返回数字向量或多维数组。当你按下输入,对象执行表达式并使用结果来设置此属性的值。
当指定具有三个或多个维度的表数据时,表将数据显示为包含对重塑
函数。要编辑数据中的值,请修改重塑
调用,它包含序列化向量中的所有值。当沿着维度添加或删除元素时,还必须更正表示修改后维度长度的参数。
您可以在查找表块中使用更直观的界面编辑这些数据。看从MATLAB导入查找表数据.
BP.
N- 断点集的数据。
指定一个至少包含两个元素的数字向量。
您还可以使用与数学运算符的表达式,如sin (1:0.5:30)
只要表达式返回的是数字向量。当你按下输入,对象执行表达式并使用结果来设置此属性的值。
您可以通过在查找表块中使用更直观的接口来编辑此数据。看从MATLAB导入查找表数据.
在表格中输入或操纵数据简单直观。喜欢微软®Excel®电子表格,您可以使用表的操作,如:
选择表元素
使用标准键盘快捷键,如:
复制- - - - - -Ctrl + C
粘贴,Ctrl + V
撤消 -Ctrl + Z
删除
重做,Shift + Ctrl + z
处理。要了解如何处理课程会影响复制操作,请参阅复制对象.
创建一个金宝app仿真软件。LookupTable
对象命名LUTObj
.
LUTObj = 金宝appSimulink.LookupTable;
指定表数据。
lutobj.table.value = [1.1 2.2 3.3 4.4 5.5];
指定断点设置数据。
LUTObj.Breakpoints(1)。值= [-2 -1 0 1 2];
在生成的代码中指定结构类型的名称。
LUTObj.StructTypeInfo.Name =“myLUTStruct”;
您可以使用LUTObj
在一个一维查找表块对话框。在街区,集合数据规范来查找表对象
和的名字来LUTObj
.
要查看数据,请使用属性对话框,如视图模型。金宝appLookupTable对象Data Using the Property Dialog Box Tabular Interface.
创建一个金宝app仿真软件。LookupTable
对象命名LUTObj
.
LUTObj = 金宝appSimulink.LookupTable;
指定表数据。
LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5;...6.6 7.7 8.8 9.9 10.1];
指定断点设置数据。在里面断点
属性,使用向量索引2
在第二个断点集中设置值。
LUTObj.Breakpoints(1)。Value = [-1 1];LUTObj.Breakpoints(2)。值= [-2 -1 0 1 2];
LUTObj
创建一个金宝appSimulink.lookuptable.Breakpoint
对象的值中的第二个向量元素断点
财产。除了价值
属性,新对象具有默认属性值。
在生成的代码中指定结构类型的名称。
LUTObj.StructTypeInfo.Name =“myLUTStruct”;
您可以使用LUTObj
在一个2-D查找表块对话框。
要查看数据,请使用属性对话框,如视图模型。金宝appLookupTable对象Data Using the Property Dialog Box Tabular Interface.
从1开始的每个秒值均匀空间,使用断点对象。
创建一个金宝app仿真软件。LookupTable
对象命名LUTObj
.
LUTObj 金宝app=仿真软件。LookupTable
表:[1×1 Simulink.lookuptable.]金宝app表格] BreakpointsSpecification: 'Explicit values' Breakpoints: [1×1 Simulink.lookuptable.Breakpoint] SupportTunableSize: 0 CoderInfo: [1×1 Simulink.CoderInfo] StructTypeInfo: [1×1 Simulink.lookuptable.StructTypeInfo]
将断点属性设置为均匀间距。
LUTObj。BreakpointsSpecification =“即使间距”
表:[1×1 Simulink.lookuptable.]金宝app表格] BreakpointsSpecification: 'Even spacing' Breakpoints: [1×1 Simulink.lookuptable.Evenspacing] SupportTunableSize: 0 CoderInfo: [1×1 Simulink.CoderInfo] StructTypeInfo: [1×1 Simulink.lookuptable.StructTypeInfo]
获取断点的属性。
LUTObj.Breakpoints (1)
ans = Evenspacing with properties: FirstPoint: 0 Spacing: 1 DataType: 'auto' Min: [] Max: [] Unit: " FirstPointName: 'BPFirstPoint1' SpacingName: 'BPSpacing1' TunableSizeName: 'N1' Description: "
要设置第一个点属性,请使用Breakpoint对象首先
财产。
LUTObj.Breakpoints (1) .FirstPoint = 1
要设置空格属性,请使用Breakpoint对象。
lutobj.breakpoints(1).spacing = 2
获取断点的属性。
LUTObj.Breakpoints (1)
ANS =具有属性的EVENSPACING:FIRSTPOINT:1间距:2个数据类型:'AUTO'MIN:[] MAX:[]单位:'BPFIRSTPOINT1'SPACINGNAME:'BPSPACING1'INALABLEZENAME:'N1'描述:''
创建一个金宝app仿真软件。LookupTable
对象命名LUTObj
.
LUTObj = 金宝appSimulink.LookupTable;
指定表数据。
LUTObj.Table.Value = [1.00 2.25 3.50 4.75 6.00;...7.25 8.50 9.75 11.00 12.25];
指定断点设置数据。在里面断点
属性,使用数组索引2
要创建附加的金宝appSimulink.lookuptable.BreakpointInfo
对象,该对象表示第二个断点集。
LUTObj.Breakpoints(1)。Value = [-1 1];LUTObj.Breakpoints(2)。值= [-2 -1 0 1 2];
指定查找表和每个断点集的数据类型。
LUTObj.Table.DataType =“fixdt(2) 1, 16日”;LUTObj.Breakpoints(1)。数据类型=“int16”;lutobj.breakpoints(2).datatype =“int16”;
为生成的代码中存储表数据和断点集的结构字段指定唯一名称。
LUTObj.Table.FieldName =“myTable”;LUTObj.Breakpoints(1)。字段名='mybpset1';LUTObj.Breakpoints(2)。字段名='mybpset2';
使用存储类从生成的代码中导出结构变量定义ExportedGlobal
.
lutobj.coderinfo.storageclass =“ExportedGlobal”;
在生成的代码中为结构类型命名LUTStructType
.将结构类型定义导出为命名的生成的标题文件myLUTHdr.h
.
LUTObj.StructTypeInfo.Name =“LUTStructType”;lutobj.structtypeinfo.datascope ='出口';LUTObj.StructTypeInfo.HeaderFileName =“myLUTHdr.h”;
在模型中的N-D查找表块中,设置数据规范来查找表对象
和的名字来LUTObj
.
load_system(“myModel_LUTObj”)set_param('mymodel_lutobj / lookup表'那“DataSpecification”那“查找表对象”那...'lookuptableObject'那“LUTObj”)
从模型生成代码。
slbuild (“myModel_LUTObj”)
###启动构建过程for:mymodel_lutobj ###生成的“mymodel_lutobj”的代码是最新的,因为没有找到结构,参数或代码替换库更改。###成功完成代码生成:MyModel_Lutobj构建摘要0的1型号(1型号已最新)构建持续时间:0H 0M 2.141S
生成的代码定义了结构类型LUTStructType
在生成的头文件中myLUTHdr.h
.
file = fullfile('mymodel_lutobj_ert_rtw'那“myLUTHdr.h”);RTWDEMODBTYPE(文件,'typedef struct {'那“}LUTStructType;”,1,1)
typedef struct {int16_T myBPSet1[2];int16_T myBPSet2 [5];int16_T myTable [10];} LUTStructType;
该代码使用全局结构变量LUTObj
存储表和断点集数据。表数据根据指定的定点数据类型进行缩放。
file = fullfile('mymodel_lutobj_ert_rtw'那“myModel_LUTObj.c”);RTWDEMODBTYPE(文件,'lutstructype lutobj = {'那“/ *变量:LUTObj”,1,1)
LUTStructType LUTObj = {{-1, 1}, {-2, -1, 0, 1,2}, {4, 29, 9, 34, 14, 39, 19, 44, 24, 49}};/ *变量:LUTObj
假设您的手写代码根据您指定的维度长度有条件地分配内存并初始化一个查找表#定义
宏。这个示例展示了如何生成使用外部表和断点数据的代码。
符号尺寸要求您使用基于ERET的系统目标文件,该文件需要嵌入式编码器®。
探索外部代码
在您当前的文件夹中,将这些宏定义复制到名为的标题文件中ex_myHdr_LUT.h
.
#include "rtwtypes.h" #ifndef _HEADER_MYHDR_H_ #define _HEADER_MYHDR_H_ #define bp1Len 2 #define bp2Len 2 typedef struct {real_T BP1[bp1Len];real_T BP2 [bp2Len];real_T Table[bp1Len * bp2Len];} LUTObj_Type;走读生LUTObj_Type LUTObj;#万一
将此静态初始化代码复制到名为ex_mySrc_LUT.c
.
#include“ex_myhdr_lut.h”#if bp1len == 2 && bp1len == 2 lutobj_type lutobj = {{1.0,2.0},{3.0,4.0},{3.0,2.0,4.0,1.0};#endif #if bp1len == 3 && bp1len == 3 lutobj_type lutobj = {{1.0,2.0,3.0},{4.0,5.0,6.0},{1.0,6.0,2.0,3.0,8.0,9.0,5.0,4.0,7.0}};#万一
要生成导入该数据的代码,请创建bp1len.
和bp2len.
作为金宝appSimulink.Parameter.
在MATLAB对象。创建LUTObj
作为一个金宝app仿真软件。LookupTable
对象。属性中的表和断点集数据使用参数对象指定维度长度金宝app仿真软件。LookupTable
对象。
创建示例模型
创建示例模型ex_LUTObj
通过使用N-D查找表块。在查找表块对话框中,在表和断点标签,设置表维数来2
.
open_system (“ex_LUTObj”)
创建金宝app仿真软件。LookupTable
对象
在模型浏览器中模型层次结构窗格中,选择基本工作空间.
在工具栏上,单击添加模型金宝appLookupTable按钮。一种金宝app仿真软件。LookupTable
对象命名对象
出现在基础工作区中。
在里面内容窗格(中间窗格),将对象重命名为LUTObj
.
或者,在命令提示符下创建对象:
LUTObj = 金宝appSimulink.LookupTable;
配置金宝app仿真软件。LookupTable
对象
在里面内容窗格中,选择新对象LUTObj
.属性对话框出现在对话窗格(右窗格)。
放表维数来2
.
下表格, 放价值来(3 4;2 (1)
.
在第一行断点, 放价值来(1 2)
.
在下面的第二行断点, 放价值来[3 - 4]
.点击申请.
下结构类型定义, 放数据范围来进口
.放头文件来ex_myHdr_LUT.h
.放的名字来lutobj_type.
.
在“查找表”块对话框中,设置数据规范来查找表对象
.放的名字来LUTObj
.点击申请.
或者,配置对象和块,使用以下命令:
lutobj.breakpoints(1).value = [1 2];lutobj.breakpoints(2).value = [3 4];lutobj.table.value = [3 4;2 1];lutobj.structtypeinfo.datascope =“进口”;LUTObj.StructTypeInfo.HeaderFileName ='ex_myhdr_lut.h';LUTObj.StructTypeInfo.Name =“LUTObj_Type”;set_param ('ex_lutobj / lookup表'那'lookuptableObject'那“LUTObj”)set_param('ex_lutobj / lookup表'那...“DataSpecification”那“查找表对象”)
启用要使用的代码生成器金宝appSimulink.Parameter.
对象作为指定维度长度的宏。选择配置参数允许符号维度规范.
set_param (“ex_LUTObj”那“AllowSymbolicDim”那'在')
创建金宝appSimulink.Parameter.
对象,该对象表示宏bp1len.
和bp2len.
.生成从头文件导入宏的代码ex_myHdr_LUT.h
,应用存储类ImportedDefine
.
bp1Len = 金宝appSimulink.Parameter (2);bp1Len。最小值= 2; bp1Len.Max = 3; bp1Len.DataType =“int32”;bp1Len.CoderInfo。StorageClass =“自定义”;bp1len.coderinfo.customstorageclass ='ImportedDefine';bp1Len.CoderInfo.CustomAttributes。HeaderFile ='ex_myhdr_lut.h';bp2len = 金宝appsimulink.parameter(2);bp2len.min = 2;bp2len.max = 3;bp2len.datatype =.“int32”;bp2Len.CoderInfo。StorageClass =“自定义”;bp2len.coderinfo.customstorageclass ='ImportedDefine';bp2len.coderinfo.customattributes.Headerfile =.'ex_myhdr_lut.h';
现有配置金宝app仿真软件。LookupTable
目的LUTObj
使用金宝appSimulink.Parameter.
对象。使用参数对象的名称设置断点设置数据和表数据的维度长度。
LUTObj.Breakpoints(1)。尺寸=“[1 bp1Len]”;lutobj.breakpoints(2).dimensions =“[1 bp2Len]”;LUTObj.Table.Dimensions ='[bp1len bp2len]';
配置LUTObj
通过应用存储类作为导入的数据ImportFromFile
.导入的定义LUTObj
,添加文件名ex_mySrc_LUT.c
到模型配置参数配置参数>代码生成>自定义代码>附加构建信息>源文件.
lutobj.coderinfo.storageclass =“自定义”;lutobj.coderinfo.customstorageclass =“ImportFromFile”;lutobj.coderinfo.customattributes.headerfile =.'ex_myhdr_lut.h';set_param (“ex_LUTObj”那'customsource'那'ex_mysrc_lut.c')
生成和检查代码
配置模型以从生成的代码编译可执行文件。
set_param (“ex_LUTObj”那'gencodeonly'那“关闭”)
从模型生成代码。
slbuild (“ex_LUTObj”)
# # #开始构建过程:ex_LUTObj # # #成功完成构建过程:ex_LUTObj模型建立目标:总结构建模型重建行动的理由 ========================================================================================== ex_LUTObj代码生成和编译代码生成信息文件不存在。建造时间:0小时0米26.058秒
在代码生成报告中,查看生成的文件ex_LUTObj.h
.该文件通过包含头文件导入宏定义和结构类型定义ex_myHdr_LUT.h
.
file = fullfile('ex_lutobj_ert_rtw'那“ex_LUTObj.h”);RTWDEMODBTYPE(文件,“# include“ex_myHdr_LUT.h””那“# include“ex_myHdr_LUT.h””,1,1)
# include“ex_myHdr_LUT.h”
在源文件中ex_LUTObj.c
,模型中的代码算法一步
函数将断点和表数据传递给执行表查找的函数。算法也通过了bp1len.
因此,查找函数可以遍历表数据的行和列,这些数据以序列化的1-D数组的形式出现在生成的代码中。
file = fullfile('ex_lutobj_ert_rtw'那“ex_LUTObj.c”);RTWDEMODBTYPE(文件,'/* Model step函数*/'那/*模型初始化函数*/,1,0)
/ *模型步骤函数* / void ex_lutobj_step(void){/ * outport:'/ out1'包含:* inport:' / in1'* inport:' / in2'* lookup_n-d:' / lookup表'* / ex_lutobj_y.out1 = look2_binlcapw(ex_lutobj_u.in1,ex_lutobj_u.in2,(&(lutobj.bp1 [0])),(&(lutobj.bp2 [0])),(&(lutobj.table [0])),ex_lutobj_constp.lookuptable_maxindex,(uint32_t)bp1len);}
你不能使用金宝appsimulink.breakpoint.
对象或金宝app仿真软件。LookupTable
指的对象金宝appsimulink.breakpoint.
对象作为可重用组件的特定于实例的参数数据。例如,你不能使用以下对象:
模型工作区中的模型参数或模型块。
掩码参数的值CodeReuse子系统块。
通过创建自定义库重用的子系统上的掩码参数的值。
但是,您可以使用standalone金宝app仿真软件。LookupTable
对象,它们不引用金宝appsimulink.breakpoint.
对象,以这些方式。
当子系统中的块使用时金宝app仿真软件。LookupTable
或金宝appsimulink.breakpoint.
对象时,不能仅在子系统上设置数据类型覆盖。相反,在整个模型上设置数据类型覆盖。
金宝appsimulink.breakpoint.
|金宝appSimulink.lookuptable.Breakpoint
|金宝appSimulink.lookuptable.Evenspacing
|金宝appsimulink.lookuptable.structtypeinfo.
|金宝appsimulink.lookuptable.table.
|金宝appSimulink.Parameter.