主要内容

为C代码生成配置块状态

块州,如单位延迟块的状态,执行周期之间保持一个状态值的算法。当配置为代码生成一个模型,您可以配置状态数据:

  • 减少在内存中存储的数据量。

  • 控制代码生成器地方状态数据在内存中。

  • 促进状态数据模型接口,以便其他组件和系统可以访问这些数据。

  • 提高生成的代码的可读性和可追溯性。

代码生成,例子展示如何配置一块状态模型rtwdemo_configinterface。您可以配置代码通过使用映射映射编辑器- C代码编程接口(或代码映射coder.mapping.api.CodeMapping)。

选择代码配置选项

基于你的代码生成需求,决定如何代表状态数据。默认情况下,在一个模型出现在生成的代码作为全局数据结构的字段命名模型_DW。如果你没有配置自定义,代码生成器决定消除或改变国家的代表在生成的代码优化的目的。如果您配置的定制,决定:

  • 是否要设置一个默认的配置

    如果您需要获取大量的状态(例如,超过10),这是更有效的配置状态为默认设置,然后覆盖这些设置特殊的情况。如果您需要获得一些州,有独特的来源,命名,或位置的需求,可以考虑单独配置状态。

  • 如何声明和处理状态数据在生成的代码吗

    • 作为单独的全局变量

    • 读取输入数据从外部代码中定义全局变量

    • 作为访问函数的调用。需要嵌入编码器®

    关于这些选项的更多信息,请参阅控制数据和功能接口生成的代码

其他因素包括是否:

列表的界面需求相关的国家相应的存储类和存储类属性,看看选择存储类数据存储和存储类属性

国家需求例如模型rtwdemo_configinterface是:

  • 保留状态数据延迟单元块的可访问性,而生成的代码执行。

  • 代表国家作为一个单独的全局变量。

  • 应用前缀dtemp_变量的名字,代表了国家。

对于本例,您的设置默认表示状态生成的代码的全局变量静态类型限定符。然后,您配置单元的状态延迟块使用默认的存储类和一个独特的代码标识符,其中只包含必需的前缀dtemp_。代码标识符功能使您能够指定代码生成标识符,而无需修改模型设计。

配置默认代码生成设置状态

默认的代码生成设置状态可以减少准备代码生成模型的努力,特别是如果一个模型有相当数量的状态,你想获得,而生成的代码执行。选择配置设置一次,代码生成器这些设置适用于整个模型。万博1manbetx动态仿真模块®商店缺省配置的模型。

考虑配置默认代码生成设置模型状态如果您的模型使用多个状态,没有独特的需求或者使用一个共享的嵌入式编码字典

这个例子展示了如何使用映射编辑器- C代码配置默认设置状态。使用代码映射编辑器来设置默认存储类模型的状态rtwdemo_configinterfaceFileScope。存储类设置,代码生成器将状态数据在生成的代码中表示为全局变量静态类型限定符

  1. 开放模式rtwdemo_configinterface。将模型的副本保存到一个可写的位置。

    万博1manbetx仿真软件模型用于学习如何配置模型状态代码生成。

  2. 打开嵌入式编码器应用程序。

  3. C代码选项卡上,选择代码接口>默认的代码映射

  4. 在代码映射编辑器中,信号,选择类别信号、状态和内部数据。设置默认存储类FileScope

    代码映射编辑器与数据默认选项卡被选中,信号树节点扩展,和存储类信号,FileScope州,和内部的数据集。

  5. 保存模型。

为各州配置代码生成设置

您可以配置为代码生成单个国家。例如,如果一个模型有两个州,有独特的代码生成需求,单独配置状态。或者,如果你为国家配置默认设置,你可以覆盖这些设置为特定的状态。

如果你的模型符合至少一种标准,考虑配置代码生成单独设置状态:

  • 使用多个国家有独特的来源、命名、或位置需求。

  • 使用几个州。

  • 有一个默认的配置状态,你需要覆盖一些具体的配置状态。

这个例子展示了如何使用映射编辑器的代码应用您的默认存储类设置单位延迟块的状态X在模型rtwdemo_configinterface

示例还展示了如何配置一个代码标识符状态。您可以指定代码生成的标识符,例如集成,无需修改模型的设计。

  1. 如果您还没有这样做,完成这个步骤配置默认代码生成设置状态

  2. 在代码映射编辑器中,单击信号/州选项卡。扩大。状态设置为存储类汽车,这意味着代码生成器可能消除或改变的代表性相关代码进行优化。如果不可能优化,代码生成器模型适用于默认配置。对于这个示例,该模型默认配置指定存储类FileScope

    • 避免优化和强制代码生成器使用默认配置,设置存储类模型的默认

    • 覆盖默认配置,指定符合代码生成的存储类要求。

  3. 在代码映射编辑器中,选择状态X。设置存储类模型默认值:FileScope

  4. 配置状态的代码标识符名称包括前缀dstate_。在代码映射编辑器中,选择状态X。单击图标来配置额外的代码映射属性图标和设置存储类属性标识符dstate_X

    与信号/国家代码映射编辑器选项卡被选中,州树节点扩展,为国家和存储类X模型设置为默认值:FileScope。映射检查员显示了国家X将dstate_X标识符属性。

  5. 保存模型。

  6. 生成并查看代码。例如,在rtwdemo_configinterface.c状态数据,发现数据定义。

    静态MYTYPE dstate_X;

    找到状态数据的步骤中使用的入口点函数。

    。如果(模式){输出= (real_T) mp_K1 * dout_Table1;其他}{输出= dstate_X;}。dstate_X = dout_Table2;}

配置代码生成以编程方式设置状态

自动化配置的状态代码生成,使用代码的编程接口映射。例如,当创建自定义块库,或创建一个应用程序的一部分测试环境,使用编程接口自动化数据配置。

这个例子展示了如何使用编程接口配置状态模型rtwdemo_configinterface。设置默认的代表国家作为全局变量在生成的代码中静态类型限定符。然后,配置状态X单位延迟代码块使用默认的存储类和独特的标识符,其中只包含必需的前缀dstate_

  1. 打开示例模型。

    open_system (“rtwdemo_configinterface”)
  2. 创建对象厘米通过调用函数coder.mapping.api.get。对象存储的代码生成配置数据和功能为模型rtwdemo_configinterface

    厘米= coder.mapping.api.get (“rtwdemo_configinterface”);
  3. 配置默认设置状态通过调用函数setDataDefault。对于参数,指定这些值:

    • 返回的对象coder.mapping.api.get

    • InternalData为默认类别

    • 属性名StorageClass与属性值FileScope

    setDataDefault (cm,‘InternalData’,‘StorageClass’,‘FileScope’);
  4. 验证您的默认配置状态。问题的电话getDataDefault指定返回的对象coder.mapping.api.get和类别InternalData。第三个参数指定为属性StorageClass

    getDataDefault (cm, InternalData, StorageClass) ans =“FileScope”
  5. 缺省配置申请状态X

    默认情况下,各州的存储类万博1manbetx仿真软件集汽车。代码生成器:

    • 决定消除数据生成的代码的优化目的。

    • 如果保留数据,确定如何有效地表示数据在生成的代码中,考虑到默认配置设置。

    控制的配置状态,调用函数设置状态

    问题的电话设置状态指定:

    • 返回的对象coder.mapping.api.get

    • 国家的名字X

    • 默认的存储类之前设置的州通过使用属性StorageClass和属性值模型的默认

    • 财产标识符和属性值dstate_X

    设置状态(厘米,“X”、“StorageClass”、“违约模型”,“标识符”,“dstate_X”);
  6. 通过调用函数验证您的配置更改getState。指定返回的对象coder.mapping.api.get、国家名称和属性StorageClass标识符

    getState(厘米,“X”,“StorageClass”) ans =“模型默认”getState(厘米,“X”,“标识符”)ans =“dstate_X”
  7. 保存模型。

  8. 生成并查看代码。例如,在rtwdemo_configinterface.c为状态数据,发现数据定义。

    静态MYTYPE dstate_X;

    找到状态数据的步骤中使用的入口点函数。

    。如果(模式){输出= (real_T) mp_K1 * dout_Table1;其他}{输出= dstate_X;}。dstate_X = dout_Table2;}

选择存储类和存储类的属性状态

根据您的代码生成的需求,选择从这些存储类为块配置代码生成。

需求 存储类
让代码生成器处理如何代表国家在生成的代码中。例如,对于优化目的,代码生成器可能消除或改变数据的表示。 汽车(仅个人映射)
对于不能优化的数据元素,表示数据作为一个领域标准的数据结构。 默认的(仅默认映射)
防止优化消除存储数据元素和使用的默认映射数据元素类别。 模型的默认(仅个人映射),词典默认(仅个人映射)
生成一个结构,将布尔数据存储在名为本。 设置(仅个人映射)
生成一个全局变量的定义和声明挥发性类型限定符。 挥发性(见常量、挥发性和ConstVolatile)
生成一个全局变量定义和声明。 ExportedGlobal
生成一个全局变量定义和声明到指定的文件中。 ExportToFile
生成一个全局变量的定义和声明静态类型限定符。 FileScope(本地和共享本地数据存储的映射)
通过调用您的自定义生成代码与数据访问功能。 GetSet
生成代码的读取和写入一个全局变量或全局变量指针定义为外部代码。 ImportedExtern, ImportedExternPointer
ExportToFile ImportFromFile
生成本地变量函数。 可以定位的
生成一个全球结构,有一个名称,您可以指定。 结构体(仅个人映射)
生成一个全局变量,使缓冲重用。 可重用的(仅个人映射)

可用存储类的列表可能包括其他具体项目的存储类中定义嵌入式编码字典。如果你有特殊要求没有得到满足的列存储类嵌入式编码软件,您可以定义一个存储类。看到定义服务接口、存储类、内存部分,为软件架构和功能模板

对于单个状态,使用标识符存储类属性来配置变量的名称代表国家在生成的代码中。如果你离开标识符属性空白,代码生成器使用国家的名字参数块的状态。如果该参数为空,代码生成器使用的名称。

使用嵌入式编码器,这取决于你选择的存储类,您还可以配置这些性质。

财产 描述 存储类
DefinitionFile 定义文件,其中包含定义全局数据来源,由国家和外部代码阅读 ExportToFile挥发性
GetFunction 国家出现在生成的代码调用指定得到函数 GetSet
HeaderFile 头文件包含声明为全局数据来源,由国家和外部代码阅读 ExportToFile,GetSet,ImportFromFile,挥发性
记忆的部分(默认状态配置) 内存部分,其中包含数据读取 默认的
老板 代码生成器将定义在多个模型的代码生成的一个共享的模型层次结构定义。您必须选择模型配置参数使用数据对象的所有者为数据定义的位置。看到控制位置的全局数据定义和声明生成的文件 ExportToFile挥发性
PreserveDimensions 代码生成器保留维表示的状态数据作为一个多维数组生成的代码。必须设置配置参数模型阵列布局。看到保护维度的多维数组生成的代码 ExportToFile,FileScope,GetSet,ImportFromFile,可以定位的挥发性
SetFunction 国家出现在生成的代码调用指定函数。 GetSet
StructName 名称生成的代码的结构状态。 设置结构体

另请参阅

|

相关的话题