Help

Welcome!

This community is for professionals and enthusiasts of our products and services.
Share and discuss the best content and new marketing ideas, build your professional profile and become a better marketer together.

0

Matlab Simulink:将模型参数配置为全局变量以在运行时调整

默认情况下,代码生成优化可避免存储不参与入口函数接口的模型参数和大多数信号。要使参数可调和相关信号可访问,请通过显式配置方式来标识它们。

在模型 rtwdemo_roll 的 BasicRollMode 子系统中,将 PID 控制参数配置为在代码中显示为可调整其值的全局变量。

  1. 打开 BasicRollMode 子系统。

  2. 在 Model Data Editor 中,选择 Parameters 选项卡。

  3. 在筛选器字段中,键入 IntGain。Model Data Editor 会显示一个与 Gain 参数对应的行以及一个与工作区变量对应的行。

  4. 在 Source 列中,点击 IntGain。Gain 模块在模型图中高亮显示。

  5. 在 Name 列中,点击模型工作区变量 intGain

  6. 将模型工作区变量转换为参数对象。在 Storage Class 列中选择 “Convert to parameter object”。Storage Class 设置更改为 “Model default”,表示该参数对象阻止代码生成优化消除变量的存储。使用此设置时,该对象会将在 Code Mapping Editor 中指定的存储类用作 Local parameters 类别的数据默认值。

  7. 保存模型并重新生成代码。

    最小化代码生成报告窗口,以便在本教程中的后面部分进行浏览。

  8. 在代码视图中:

    • 搜索 intGain

    • 在 rtwdemo_roll.c 中,将光标放在高亮代码 P.intGain 中 P 上方的省略号菜单上。在模型编辑器中,请注意代码视图会高亮显示与生成的代码对应的模块。

    • 要在 rtwdemo_roll_data.c 中查看 intGain 的参数对象定义,请点击对话框中的定义代码。

您从模型生成的代码会将参数对象存储在内存中。由于您在 Code Mapping Editor 中将 Local parameters 类别的默认存储类设置保留为 “Default”,因此代码生成器会确定存储格式,例如确定为结构体的字段。

接下来,使用测试框架模型和软件在环 (SIL) 仿真来比较模型仿真和生成代码的结果。

Avatar
Discard