文档

金宝app仿真软件。LookupTable类

包:金宝app
超类:

存储和共享查找表和断点数据,为ASAP2和AUTOSAR代码生成配置数据

描述

一件物品金宝app仿真软件。LookupTable类存储查询表和断点数据。可以在查找表块中使用该数据,例如一天的查找表块。使用该对象,您可以为表和断点集指定数据类型和代码生成设置。

当您将所有表和断点集数据存储在一个金宝app仿真软件。LookupTable对象时,所有数据都显示在生成的代码中的单个结构中。要配置用于校准的STD_AXIS代码生成,请使用此技术。

若要在多个查找表之间共享断点集,例如用于COM_AXIS代码生成,请使用金宝app仿真软件。断点一个或多个Prelookup块。使用金宝app仿真软件。LookupTable对象插值使用Prelookup块。然后,将查找表对象配置为引用断点对象。有关更多信息,请参见包共享断点和查找表的表数据

建设

LUTObj =仿金宝app真软件。LookupTable返回一个金宝app仿真软件。LookupTable对象LUTObj使用默认属性值。

创建一个金宝app仿真软件。LookupTable对象,使用按钮在工具栏上。对象的默认名称是对象

属性对话框

表维数

查找表的维数。指定一个到的整数值30.(包容)。例如,要表示一个三维查找表,请指定整数3.

表格

表数据的信息。你可以配置这些特征:

价值

表数据。指定包含至少两个元素的数字向量或多维数组。

还可以使用带有数学运算符的表达式,例如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金宝app仿真软件。断点对象,看到查找表对象的控制数据类型(金宝app仿真软件编码器)。

查找表数据的维度长度。

要使用符号维数,请指定字符向量。看到在生成的代码中实现数组大小的维度变量(嵌入式编码)。

最小值

表数据中元素的最小值。默认值为空,[].你可以指定一个数值,实值。

有关Simulink如何使用此属性的更多信息,请参见金宝app指定块参数的最小值和最大值

马克斯

表数据中元素的最大值。默认值为空,[].你可以指定一个数值,实值。

有关Simulink如何使用此属性的更多信息,请参见金宝app指定块参数的最小值和最大值

存储整数最小

金宝app仿真软件。LookupTable对象的定点数据类型,即表数据中元素的最小值,指定为存储的整数值。这个值来源于真实世界的值最小值.此属性仅在属性对话框中可用。

存储Int马克斯

金宝app仿真软件。LookupTable具有定点数据类型(表数据中元素的最大值)的对象,指定为存储的整数值。这个值来源于真实世界的值马克斯.此属性仅在属性对话框中可用。

单位

查找表中元素的物理单位。您可以指定文本,例如摄氏度.看到Simulink模型中的单元规范金宝app

字段名

生成代码中结构字段的名称。属性,该字段存储表数据金宝app仿真软件。LookupTable对象以结构形式出现在生成的代码中。默认值为表格.要更改字段名,请指定文本。

描述

查找表的描述。您可以指定文本,例如这个查询表描述了泵的作用

断点

断点设置的信息。每一行都设置了一个断点。要配置其他断点集,请在表维数盒子。

对于断点集,你可以配置这些特征:

规范

指定为的断点集信息的来源明确的价值观(默认),参考,或甚至间距

  • 将所有表和断点集数据存储在金宝app仿真软件。LookupTable对象,设置规范明确的价值观

    金宝app仿真软件。LookupTable对象作为单个结构变量出现在生成的代码中。

  • 将表数据存储在金宝app仿真软件。LookupTable对象并存储中断点集数据金宝app仿真软件。断点对象,设置规范参考

    金宝app仿真软件。LookupTable对象作为包含表数据的单独数组变量出现在生成的代码中。每一个金宝app仿真软件。断点对象显示为包含断点集数据的单独数组或结构变量。

  • 将表数据和间隔均匀的断点存储在金宝app仿真软件。LookupTable对象,设置规范甚至间距.使用第一点间距参数来生成一组间隔均匀的断点。

请注意

规范被设置为明确的价值观甚至间距,您可以在查找表对象生成的结构中更改可调大小、断点和表项的顺序。

金宝app支持可调大小

在生成的代码中支持调优表的有效大小的规范。在代码中,对应于对象的结构对于每个断点向量都有一个额外的字段。每个额外字段存储相应断点向量的长度。您可以更改每个字段的值,以调整表的有效大小。

此属性仅在您设置时显示规范明确的价值观甚至间距

请注意

如果您存储断点数据金宝app仿真软件。断点通过设置对象规范参考,若要在生成的代码中启用表大小的调优,请使用金宝app支持可调大小财产的金宝app仿真软件。断点对象。

价值

断点集的数据。指定一个至少包含两个元素的数字向量。

还可以使用带有数学运算符的表达式,例如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金宝app仿真软件。断点对象,看到查找表对象的控制数据类型(金宝app仿真软件编码器)。

断点设置的尺寸长度。

要使用符号维数,请指定字符向量。看到在生成的代码中实现数组大小的维度变量(嵌入式编码)。

最小值

断点集中元素的最小值。默认值为空,[].你可以指定一个数值,实值。

有关Simulink如何使用此属性的更多信息,请参见金宝app指定块参数的最小值和最大值

马克斯

断点集中元素的最大值。默认值为空,[].你可以指定一个数值,实值。

有关Simulink如何使用此属性的更多信息,请参见金宝app指定块参数的最小值和最大值

单位

断点集合中元素的物理单位。您可以指定文本,例如degF.看到Simulink模型中的单元规范金宝app

字段名

生成代码中结构字段的名称。该字段存储断点集数据。默认值为BP1对于第一个断点集和BP2第二盘。要更改字段名,请指定文本。

可调大小的名字

生成代码中结构字段的名称。该字段存储断点集的长度(元素的数量),生成的代码算法使用它来确定表的大小。要在代码执行期间调优表的有效大小,请更改内存中此结构字段的值。默认名称为N1对于第一个断点集和N2第二盘。要更改字段名,请指定文本。

此列只在您选择时显示金宝app支持可调大小

描述

断点集的描述。您可以指定文本,例如该断点设置表示压力输入

第一点

等间距断点数据中的第一个点。当规范被设置为甚至间距

间距

等间距断点数据中点之间的间距。当规范被设置为甚至间距

的名字

的名字金宝app仿真软件。断点对象,该对象存储此断点集的信息。

此列仅在设置时出现规范参考

第一点的名字

的名字金宝app仿真软件。断点对象,它存储第一个点的信息。当规范被设置为甚至间距

间距的名字

的名字金宝app仿真软件。断点对象,该对象存储空格信息。当规范被设置为甚至间距

数据定义:存储类

结构变量的存储类(如果设置规范明确的价值观甚至间距)或数组变量(参考)。变量存储表数据,如果变量是一个结构,则存储断点集数据。默认设置为汽车

有关存储类的更多信息,请参见将存储类应用于单个信号、状态和参数数据元素(金宝app仿真软件编码器)。

如果你有嵌入式编码器®,您可以选择自定义存储类。有关自定义存储类的信息,请参见将内置和自定义存储类应用于数据元素(嵌入式编码)。

数据定义:别名

结构变量的替代名称(如果您设置规范明确的价值观甚至间距)或数组变量(参考)。默认值为空,在这种情况下生成的代码使用金宝app仿真软件。LookupTable对象作为结构或数组变量的名称。要设置别名,请指定文本。

若要启用此属性,请设置数据定义:存储类而不是汽车

数据定义:对齐

生成代码中的数据对齐边界。为结构或数组变量分配的数据的起始内存地址是指定值的倍数。默认值为-1,它允许代码生成器根据使用情况确定最佳对齐。

指定一个2的幂,不超过128的正整数。有关使用数据对齐进行代码替换的更多信息,请参见用于代码替换的数据对齐(嵌入式编码)。

结构类型定义:名称

结构变量在生成的代码中使用的结构类型的名称。默认值为空。指定文本。

此属性仅在您设置时显示规范明确的价值观甚至间距

结构类型定义:数据范围

结构类型定义的范围(从自定义代码导入或从生成的代码导出)。默认值为汽车.当您选择汽车

  • 属性中没有指定值Struct类型定义:头文件框中,生成的代码将结构类型定义导出到文件模型_types.h模型是模型的名称。

  • 中指定的值Struct类型定义:头文件框,如myHdr.h,生成的代码从其中导入结构类型定义myHdr.h

要显式指定数据范围:

  • 要将结构类型定义从自定义代码导入生成的代码,请选择进口

  • 要从生成的代码导出结构类型定义,请选择出口

属性中没有指定值Struct类型定义:头文件框中,生成的代码将从之间导入或导出类型定义StructName.hStructName是使用属性指定的名称吗结构类型定义:名称

此属性仅在您设置时显示规范明确的价值观甚至间距

Struct类型定义:头文件

包含结构类型定义的头文件的名称。您可以从创建的头文件中导入定义,或者将定义导出到生成的头文件中。要控制结构类型的范围,请调整为结构类型定义:数据范围财产。

此属性仅在您设置时显示规范明确的价值观甚至间距

属性

全部展开

的向量指定的断点集信息金宝appSimulink.lookuptable.Breakpoint对象、字符向量的单元格数组或金宝appSimulink.lookuptable.Evenspacing对象。

如果你用一个向量金宝appSimulink.lookuptable.Breakpoint对象,每个对象表示一个断点集。用…的向量金宝appSimulink.lookuptable.Breakpoint对象,设置属性BreakpointsSpecification“显式值”

如果使用字符向量的单元格数组,则每个字符向量表示金宝app仿真软件。断点对象。若要使用字符向量的单元格数组,请设置属性BreakpointsSpecification“参考”

如果你用一个向量金宝appSimulink.lookuptable.Evenspacing对象,每个对象表示一个断点集。用…的向量金宝appSimulink.lookuptable.Evenspacing对象,设置属性BreakpointsSpecification“即使间距”

断点集信息的来源,指定为“显式值”(默认),“即使间距”,或“参考”.看到断点>规范参数。

数据类型:字符

结构变量的代码生成设置(如果设置BreakpointsSpecification“显式值”“即使间距”)或数组变量(“参考”),它存储查找表和断点集,指定为金宝app仿真软件。CoderInfo对象。您可以使用此嵌入式对象指定存储类或自定义存储类。看到金宝app仿真软件。CoderInfo

结构变量在生成的代码中使用的结构类型的设置,指定为金宝appSimulink.lookuptable.StructTypeInfo对象。

如果你设置BreakpointsSpecification“参考”,金宝app仿真软件。LookupTable对象不会作为结构出现在生成的代码中。代码生成器将忽略此属性。

选项生成的代码支持表的有效大小的可调性,指定为真正的.看到金宝app支持可调大小参数。

数据类型:逻辑

表数据的信息,指定为金宝appSimulink.lookuptable.Table对象。

复制语义

句柄。要了解句柄类如何影响复制操作,请参见复制对象(MATLAB)。

例子

表示一维查询表

  1. 创建一个金宝app仿真软件。LookupTable对象命名LUTObj

    LUTObj = 金宝appSimulink.LookupTable;

  2. 指定表数据。

    LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5];

  3. 指定断点集数据。

    LUTObj.Breakpoints(1)。值= [-2 -1 0 1 2];

  4. 在生成的代码中指定结构类型的名称。

    LUTObj.StructTypeInfo.Name =“myLUTStruct”

您可以使用LUTObj在一个一维查找表块对话框。在街区,集合数据规范查找表对象的名字LUTObj

表示一个二维查询表

  1. 创建一个金宝app仿真软件。LookupTable对象命名LUTObj

    LUTObj = 金宝appSimulink.LookupTable;

  2. 指定表数据。

    LUTObj.Table.Value = [1.1 2.2 3.3 4.4 5.5;...6.6 7.7 8.8 9.9 10.1];

  3. 指定断点集数据。在断点属性,使用向量索引2设置第二个断点集中的值。

    LUTObj.Breakpoints(1)。Value = [-1 1];LUTObj.Breakpoints(2)。值= [-2 -1 0 1 2];

    LUTObj创建一个金宝appSimulink.lookuptable.Breakpoint对象的值中的第二个向量元素断点财产。除了价值属性时,新对象具有默认属性值。

  4. 在生成的代码中指定结构类型的名称。

    LUTObj.StructTypeInfo.Name =“myLUTStruct”

您可以使用LUTObj在一个二维查找表块对话框。

均匀空格每秒值从1开始

要想从1开始均匀间隔每秒钟的值,请使用Breakpoint对象。

  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]
  2. 将断点属性设置为均匀间距。

    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]
  3. 获取断点的属性。

    LUTObj.Breakpoints (1)
    ans = Evenspacing with properties: FirstPoint: 0 Spacing: 1 DataType: 'auto' Min: [] Max: [] Unit: " FirstPointName: 'BPFirstPoint1' SpacingName: 'BPSpacing1' TunableSizeName: 'N1' Description: "
  4. 要设置第一个点属性,请使用Breakpoint对象FirstPoint财产。

    LUTObj.Breakpoints (1) .FirstPoint = 1
  5. 要设置空格属性,请使用Breakpoint对象。

    LUTObj.Breakpoints (1) .Spacing = 2
  6. 获取断点的属性。

    LUTObj.Breakpoints (1)
    ans = Evenspacing with properties: FirstPoint: 1 Spacing: 2 DataType: 'auto' Min: [] Max: [] Unit: " FirstPointName: 'BPFirstPoint1' SpacingName: 'BPSpacing1' TunableSizeName: 'N1' Description: "

查找表和断点集的控制代码生成

创建一个金宝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)。数据类型=“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 /查找表”“DataSpecification”“查找表对象”...“LookupTableObject”“LUTObj”

从模型生成代码。

rtwbuild (“myModel_LUTObj”
###成功完成模型的代码生成:myModel_LUTObj

生成的代码定义了结构类型LUTStructType在生成的头文件中myLUTHdr.h

文件= 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存储表和断点集数据。表数据根据指定的定点数据类型进行缩放。

文件= fullfile (“myModel_LUTObj_ert_rtw”“myModel_LUTObj.c”);rtwdemodbtype(文件,'LUTStructType LUTObj = {'“/ *变量:LUTObj”, 1, 1)
LUTStructType LUTObj = {{-1, 1}, {-2, -1, 0, 1,2}, {4, 29, 9, 34, 14, 39, 19, 44, 24, 49}};/ *变量:LUTObj

生成使用有条件编译的维度长度的代码

假设您的手写代码根据您指定的维度长度有条件地分配内存并初始化一个查找表#定义宏。这个示例展示了如何生成使用外部表和断点数据的代码。

符号维度要求您使用基于ert的系统目标文件,这需要Embedded Coder®。

探索外部代码

在当前文件夹中,将这些宏定义复制到名为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;# endif

将此静态初始化代码复制到名为ex_mySrc_LUT.c

#include " ex_myhdr_lu .h" #if bp1Len == 2 && bp1Len == 2 LUTObj_Type LUTObj = {{1.0, 2.0}, {3.0, 4.0}, {3.0, 2.0, 4.0}};# endif #如果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}};# endif

要生成导入该数据的代码,请创建bp1Lenbp2Len作为金宝app仿真软件。参数在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 /查找表”“LookupTableObject”“LUTObj”) set_param (“ex_LUTObj /查找表”...“DataSpecification”“查找表对象”

启用要使用的代码生成器金宝app仿真软件。参数对象作为指定维度长度的宏。选择配置参数允许符号维度规范

set_param (“ex_LUTObj”“AllowSymbolicDim”“上”

创建金宝app仿真软件。参数对象,该对象表示宏bp1Lenbp2Len.生成从头文件导入宏的代码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。最小值= 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使用金宝app仿真软件。参数对象。通过使用参数对象的名称,设置断点集数据和表数据的维度长度。

LUTObj.Breakpoints(1)。尺寸=“[1 bp1Len]”;LUTObj.Breakpoints(2)。尺寸=“[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”“关闭”

从模型生成代码。

rtwbuild (“ex_LUTObj”
###启动模型的构建过程:ex_LUTObj

在代码生成报告中,查看生成的文件ex_LUTObj.h.该文件通过包含头文件导入宏定义和结构类型定义ex_myHdr_LUT.h

文件= 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数组的形式出现在生成的代码中。

文件= fullfile (“ex_LUTObj_ert_rtw”“ex_LUTObj.c”);rtwdemodbtype(文件,'/* Model step函数*/'/*模型初始化函数*/, 1,0)
/* Model step function */ void ex_LUTObj_step(void) {/* Outport: '/Out1'合并:* Inport: '/In1' * Inport: '/In2' * Lookup_n-D: '/Lookup Table' */ ex_LUTObj_Y. txt ';着干活= look2_binlcapw (ex_LUTObj_U。三机一体,ex_LUTObj_U。In2 (& (LUTObj.BP1 [0])), (& (LUTObj.BP2 [0])), (& (LUTObj.Table [0])), ex_LUTObj_ConstP。LookupTable_maxIndex (uint32_T) bp1Len);}

限制

  • 你不能子类金宝app仿真软件。断点金宝app仿真软件。LookupTable.由于这个原因,您不能应用内置以外的自定义存储类金宝app包中。

  • 你不能使用金宝app仿真软件。断点对象或金宝app仿真软件。LookupTable引用的对象金宝app仿真软件。断点对象作为可重用组件的特定于实例的参数数据。例如,你不能使用以下对象:

    • 模型工作区中的模型参数或模型块。

    • 掩码参数的值CodeReuse子系统块。

    • 通过创建自定义库重用的子系统上的掩码参数的值。

    但是,您可以使用standalone金宝app仿真软件。LookupTable对象,它们不引用金宝app仿真软件。断点对象,以这些方式。

  • 当子系统中的块使用时金宝app仿真软件。LookupTable金宝app仿真软件。断点对象时,不能仅在子系统上设置数据类型覆盖。相反,在整个模型上设置数据类型覆盖。

介绍了R2016b