主要内容

选择数据配置方法

当你从一个模型生成代码,代码包括设计数据信号等状态,和参数,应用程序代码可以读取和写入。当决定如何你想要这个数据代表在生成的代码中,考虑:

  • 什么类型的数据元素我想用在我的模型吗?

  • 我想将数据存储在哪里?

  • 我的代码生成的目标是什么?

  • 如何配置数据来满足我的代码生成目标?

这些问题的答案取决于你的模型体系结构(独立的模型,独立引用模型的层次结构,或一个系统的组件),您的应用程序类型(可重入或单实例),你是否将你的代码与现有的外部代码。

数据元素类别

可能的数据元素模型中属于数据表中列出的元素类型。

数据元素类型 描述
港口 根级模型的输入端口,如轮廓尺寸公共汽车元素块。
外港 根级模型的输出端口,如外港公共汽车元素了块。
Model-scoped参数
  • 模型参数模型中的参数,变量工作区配置作为模型参数。这些参数都暴露在模型块,使父母模型为每个模型实例提供不同的值。

  • 模型参数,模型中的参数定义的工作区。与模型参数,这些参数由模型的每个实例共享。

外部参数 参数定义为基本工作空间中的对象或数据字典。多个模型在一个应用程序可以使用这些参数。
数据存储
  • 内部数据(本地数据存储)——从任何地方访问的数据存储在一个子系统的层次结构,在或低于你的水平定义数据存储。定义图形被包括在模型中数据存储内存块或者创建一个信号对象模型中的工作区。

  • 全球数据存储,数据存储信号对象定义的基本工作空间或在数据字典。多个模型在一个应用程序可以使用这些数据存储。

  • 本地数据存储,共享数据存储内存块的块参数分享跨模型实例集。这些数据存储访问的系统数据存储内存块的位置。数据存储值之间共享模型的实例。

内部数据 本地数据,如内部信号和块的状态。包括本地数据存储。
常量 在一个模型常数参数和定值块输出。

配置选项的代码用于您的数据依赖于数据的类别配置。你在哪里存储数据决定如果你配置它通过使用一个数据对象或通过使用代码保存的映射模型。

在哪里存储数据元素使用的模型

你在哪里存储数据模型可以依赖模型架构,您正在使用的类型和您的建模的目标:

  • MATLAB®基本工作空间,用于临时存储数据的同时尝试建模技术。

  • 模型空间——用于永久存储数据,是当地的一个模型。因为数据存储模型,使用此工作空间可以提高模型的可移植性。模型空间主要是用于存储参数,参数和数值变量。这些元素并不是通常存储在模型空间:

    • 信号对象——你不能配置信号对象模型中的工作区代码生成。你不需要定义一个信号对象配置代码生成的信号。

    • 数据类型的对象。

  • 万博1manbetx®数据字典——用于永久存储全局数据,数据类型和模型之间的数据共享。

有关更多信息,请参见确定在哪里存储变量和对象模型模型万博1manbetx

当配置代码生成的数据元素

你是否为代码生成定制您的数据的生成取决于你的目标生成的代码。如果你选择不配置自定义,代码生成器决定取消或更改数据的表示在生成的代码优化的目的。

原因有很多你可以选择配置数据项。配置数据防止可能消除数据项优化生成的代码,允许您配置生成的代码如何商店和定义了数据项。例如,如果您配置一个数据项,您可以:

  • 调优参数。

  • 监控信号和状态在执行期间。

  • 配置数据放置在内存中。

  • 与外部交换数据的代码。

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

为代码生成配置数据元素

为代码生成配置数据,应用存储类。存储类是一个代码生成设置,使您能够控制一个数据元素的外观和位置生成的代码可能消除和防止优化存储数据元素。您可以使用可用的存储类万博1manbetx仿真软件编码器™和嵌入式编码®。如果你有特殊要求不了这些存储类,你是一个ERT-based目标生成代码,您可以定义和使用一个新的存储类。有关存储类的更多信息和存储类属性,看看选择存储类数据表示控制生成的代码

配置数据时通过使用一个数据对象

对于大多数model-owned数据,可以直接存储类映射到一个数据项通过使用映射编辑器的代码或代码映射的API。您必须配置些数据模型使用代码生成通过使用一个数据对象,包括:

  • 基本工作空间,模型中的参数,包括参数工作区,或数据字典。通过使用一个配置参数万博1manbetxSimulink.Parameter对象。

  • 全球数据存储配置对象通过使用一个信号。

为代码生成配置数值变量之前,您必须将它们转换为万博1manbetxSimulink.Parameter对象。

配置Model-Owned数据通过使用代码映射

Model-owned数据由外港块、信号线路,块,数据存储和参数对象模型中的工作区。对于这些数据,您可以存储类映射到一个数据元素的编码应用程序通过使用映射编辑器或通过使用代码映射的代码的API。为了方便起见,您还可以配置外部代码中的数据对象映射编辑器中,尽管外部数据对象,存储类存储在数据对象而不是模型。看到这些对象,在编辑器中,单击刷新链接类别名称的权利。

配置model-owned数据,首先配置默认代码生成设置类别的数据元素。使用默认的映射节省时间和减少代码中引入错误的风险,尤其是当你的模型包含大量的元素在一个特定的类别。

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

  • 数据默认值选项卡上,选择一个数据类别,然后选择一个类别的默认存储类。如果你不指定一个存储类类别,默认的存储类适用。在这种情况下,代码生成器的地方的代码数据元素标准结构的范畴。其他存储类选项包括:

    • 相关的内置存储类,如ExportedGlobal

    • 有关存储类在一个可用的包,比如ImportFromFile(需要嵌入式编码)。

    • 存储类中定义一个嵌入式编码字典(需要嵌入式编码)。可用的存储类的更多信息,请参阅选择存储类数据表示控制生成的代码

  • 在属性检查器,配置存储类的属性。(例如,头和定义文件)。

有关更多信息,请参见界面元素C代码生成配置模型

对某些类别的数据,包括港口、外港,数据存储,并阻止状态,默认映射可能是唯一配置您需要执行。但对数据元素,如参数和内部信号,您可能需要指定一个单独的映射,以防止数据被优化掉。应用单个数据元素的存储类:

  • 在代码映射编辑器中,找到对应的类别选项卡上数据元素(例如,配置单个参数,选择参数选项卡)。

  • 选择一个数据元素的存储类。应用默认配置,选择存储类模型的默认

  • 在属性检查器,配置存储类的属性。(例如,头和定义文件)。

有关更多信息,请参见界面元素C代码生成配置模型

配置外部数据

为代码生成配置外部数据对象通过使用映射编辑器或模型浏览器的代码。选择一个数据对象内容窗格。然后,在对话框窗格中,在代码生成选项卡上,选择一个存储类并设置属性存储类。为了方便起见,您还可以配置外部代码中的数据对象映射编辑器。查看和配置这些对象,在编辑器中,单击刷新链接类别名称的权利。

您可以配置外部数据对象编程。例如,配置一个万博1manbetxSimulink.Parameter应用存储类对象的代码生成ExportedGlobal,您可以使用代码类似:

P = 万博1manbetxSimulink.Parameter;P。值= 5;P。数据类型=“int32”;P.CoderInfo。StorageClass =“ExportedGlobal”;

存储类包加载到嵌入式编码字典

应用仿真软件以外的存储类从存储类包(如创建的包):万博1manbetx

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

  2. 开放的嵌入式编码字典。在C代码选项卡上,选择代码接口>嵌入式编码字典

  3. 在嵌入式编码字典,点击存储类

  4. 以下存储类表,点击管理包

  5. 管理包的对话框中,选择一个包。如果感兴趣的包不是在列表中,点击刷新。然后,选择您的包。

  6. 点击负载

  7. 关闭嵌入式编码字典。

  8. 使用映射编辑器的代码或代码映射API来配置模型的界面元素。

有关更多信息,请参见嵌入式编码字典,映射编辑器- C代码,coder.mapping.api.CodeMapping

应用存储类使用一个数据对象(必需的参数),而不是创建一个万博1manbetxSimulink.Signal万博1manbetxSimulink.Parameter对象,创建一个myPackage.SignalmyPackage.Parameter对象。从你的包来创建数据对象,明白了从另一个数据创建数据对象类包。的一个例子显示了如何创建和应用自己的存储类,明白了创建和应用存储类

另请参阅

|

相关的话题