文档

存储类适用于单个信号、状态和参数数据元素

一个存储类是一个代码生成设置,您申请数据项(信号、块参数或状态)模型。当你直接把它应用到一个数据项,存储类:

  • 导致数据项出现在生成的代码作为一个全局符号,通常一个全局变量。

  • 防止优化等默认参数的行为信号存储重用从消除数据项生成的代码。

  • 使用嵌入式编码器®,您可以配置生成的代码的格式存储或定义了数据项。例如,您可以应用存储类型限定符常量挥发性或配置参数数据项出现宏观(#定义)。

直接存储类适用于单个数据项:

  • 调整参数和监控信号和状态在执行期间。

  • 通过内存部分配置数据放置在内存中。

  • 交换数据的生成代码(例如,全局变量)与外部代码。

应用存储类类别的数据信息在默认情况下,通过使用映射编辑器的代码,看看配置默认代码生成数据(嵌入式编码)。

应用存储类数据项

这个例子展示了如何应用存储类信号,一块状态,和一块参数模型。

探索模型示例

打开示例模型rtwdemo_roll

open_system (“rtwdemo_roll”)

导航到BasicRollMode子系统。

open_system (“rtwdemo_roll / BasicRollMode”)

子系统包含一个集成块,保持状态数据。

从根级别的模型中,导航到RollAngleReference子系统。

open_system (“rtwdemo_roll / RollAngleReference”)

标记UpThr子系统包含一个常数的块。

在本例中,您配置状态和集成块的输出信号恒定值固定块的参数出现在生成的代码作为单独的全局变量。

应用存储类

  1. 导航到根级别的模型。

  2. 打开金宝app仿真软件编码器应用。当出现提示时,改变系统目标文件grt.tlc

  3. 单击模型数据编辑器选项卡。

  4. 在模型数据编辑器中,单击变化范围按钮。这个扩展

  5. 名单中包括数据项的数据子系统。

  6. 选择信号选项卡。

  7. 设置改变观点下拉列表,代码

  8. 内容过滤框中,输入积分器

  9. 可选地,使用的名字列指定一个名称为积分器的输出信号块,等mySignal

  10. 使用存储类列应用存储类ExportedGlobal

  11. 选择选项卡。

  12. 可选地,使用的名字状态列指定一个名称,例如myState

  13. 使用存储类列应用存储类ExportedGlobal

  14. 选择参数选项卡。你不能直接应用存储类块参数。您必须创建一个参数对象,例如金宝appSimulink.Parameter,使用对象设置块参数的值,并应用存储类的对象。

  15. 设置改变观点下拉列表,设计

  16. 内容过滤框中,输入UpThr

  17. 使用价值改变参数值的列6UpThr

  18. 在编辑的参数值,旁边UpThr,点击操作按钮(三个垂直点)和选择创建

  19. 创建新的数据对话框中,设置价值金宝appSimulink.Parameter并点击好吧。一个金宝appSimulink.Parameter对象命名UpThr出现在基地工作空间。

  20. UpThr属性对话框中,设置价值6存储类ExportedGlobal。点击好吧

或者,您可以使用这些命令在命令提示符处配置信号状态和参数数据。

%配置信号portHandles = get_param (“rtwdemo_roll / BasicRollMode /集成商”,“PortHandles”);outportHandle = portHandles.Outport;set_param (outportHandle“名字”,“mySignal”)set_param (outportHandle“StorageClass”,“ExportedGlobal”)%配置状态set_param (“rtwdemo_roll / BasicRollMode /集成商”,“StateName”,“myState”)set_param (“rtwdemo_roll / BasicRollMode /集成商”,“StateStorageClass”,“ExportedGlobal”)%配置参数set_param (“rtwdemo_roll / RollAngleReference / UpThr”,“价值”,“UpThr”)UpThr = S金宝appimulink.Parameter (6);UpThr。StorageClass =“ExportedGlobal”;

生成和检查代码

从模型中生成代码。

set_param (“rtwdemo_roll”,“SystemTargetFile”,“grt.tlc”)rtwbuild (“rtwdemo_roll”)
# # #开始构建过程模型:rtwdemo_roll # # #成功完成构建过程模型:rtwdemo_roll # # #模型缓存构件“rtwdemo_roll”创建的H: \ \ MATLAB文件\ \ simulinkcoder-ex3778325金宝app8 \ rtwdemo_roll.slxc的例子。

检查文件rtwdemo_roll.c。该文件定义了全局变量。

文件= fullfile (“rtwdemo_roll_grt_rtw”,“rtwdemo_roll.c”);rtwdemodbtype(文件,“/ *出口阻塞信号* /”,“real32_T myState;”,1,1)
* / / *出口阻塞信号real32_T mySignal;/ * < S1 > /集成商的* * / / / *导出块参数real32_T UpThr f = 6.0;/ *变量:UpThr *引用:“< S3 > / UpThr”* / / *出口阻塞状态* / real32_T myState;/ * * / < S1 > /集成商

该文件rtwdemo_roll.h声明的变量。要访问这些变量,外部代码可以包括(# include这个头文件)。

rtwdemo_roll.c、搜索变量的名称的文件,如UpThr。模型的算法rtwdemo_roll_step函数变量的读和写。

内置存储类你可以选择

一个数据项的默认存储类设置汽车,这意味着代码生成器决定了项目代码中出现。内置存储类的列表,你可以选择,明白了选择存储类数据表示控制生成的代码

决定在哪里存储存储类规范

为每个数据项(包括信号或状态数据存储内存块),您可以直接使用存储类,仿真软件金宝app®存储你的存储类规范模型文件或在一个信号数据对象的属性(金宝appSimulink.Signal),基本工作空间中创建一个模型工作区,或数据字典。申请一块参数的存储类,您必须创建一个数据对象(如参数金宝appSimulink.Parameter)和指定的存储类对象。

  • 当你申请一个存储类信号或状态的模型,例如,通过使用模型数据编辑器或属性检查器,存储在模型文件存储类规范。

    如果你使用这种技术,你无法控制数据项的其他特征,如数据类型,通过使用一个外部信号数据对象。

  • 当您创建一个信号或参数数据对象,应用使用的存储类CoderInfo对象的属性。属性的值金宝appSimulink.CoderInfo的对象,StorageClass属性用来指定存储类。之后将模型中的数据项与对象,获得的数据项存储类的对象。

信号、状态数据存储内存块,决定是否将存储类规范存储在模型或数据对象,明白了商店设计信号的属性和状态(金宝app模型)。

存储类适用于外港块使用模型数据编辑器

您可以使用模型数据编辑器应用存储类直接root外港块或驱动器的输入信号。

  • 存储的存储类规范外港块,用港口/外港在模型数据编辑器选项卡。当你使用这种技术,规范仍然在你删除驱动块的输入信号。使用这种技术来配置模型接口之前开发的内部算法。

  • 存储规范的输入信号驱动,使用信号在模型数据编辑器选项卡。

技术应用存储类交互

存储类应用于多个数据项列表中,您可以搜索、排序和过滤,使用模型(在数据编辑器建模选项卡上,单击模型数据编辑器)所示应用存储类数据项

应用存储类,而专注于单一信号,阻塞状态,或参数,使用属性检查器(建模选项卡,在设计,点击属性检查器属性对话框),信号(信号),或阻止对话框(一个状态或参数)。下代码生成应用存储类。

  • 为一个信号、状态或数据存储内存块,第一个为信号或状态指定一个名称,代码生成器使用的名称对应的全局符号。然后,可以指定一个存储类使用存储类(在这种情况下,模型文件存储规范)或者创建一个信号数据对象所示使用数据模型中的对象模型金宝app(金宝app模型)和应用对象的存储类。

技术应用存储类以编程方式

与一个信号或参数数据对象存储在模型中工作区或数据字典,使用编程接口的工作区或字典。看到以编程方式与变量(金宝app模型)。

存储类直接应用于信号线

这个例子展示了如何以编程方式存储类直接应用到一个信号。

  1. 打开示例模型rtwdemo_secondOrderSystem

    rtwdemo_secondOrderSystem

  2. 得到一个句柄的输出块命名的力量:f (t)。

    portHandles =get_param (“rtwdemo_secondOrderSystem /力:f (t)”,“PortHandles”);outportHandle = portHandles.Outport;

  3. 组的名称对应的信号ForceSignal

    set_param (outportHandle“名字”,“ForceSignal”)

  4. 设置信号的存储类ExportedGlobal

    set_param (outportHandle“StorageClass”,“ExportedGlobal”)

  5. 从模型中生成代码。代码声明和定义一个全局变量ForceSignal来表示信号。

应用存储类直接屏蔽状态

这个例子展示了如何以编程方式存储类应用到一块的状态。

  1. 打开示例模型rtwdemo_basicsc

    rtwdemo_basicsc

  2. 名字的状态延迟块,myState

    set_param (rtwdemo_basicsc /延迟的,“StateName”,“myState”)

  3. 设置存储类的状态ExportedGlobal

    set_param (rtwdemo_basicsc /延迟的,“StateStorageClass”,“ExportedGlobal”)

  4. 从模型中生成代码。代码声明和定义一个全局变量myState代表国家。

参数对象配置快速参考图

这个图表显示了代码生成和存储类选项中的控制参数表示的对象生成的代码。

相关的话题