Simulink 模型生成 C 代码(三):将模型参数配置为全局变量以在运行时调整

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

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

1. 打开 BasicRollMode 子系统。

2. 打开模型数据编辑器。在建模选项卡上,点击模型数据编辑器

3. 在模型数据编辑器中,选择参数选项卡。

4. 在过滤器字段中,键入 IntGain。模型数据编辑器会显示一个与增益参数对应的行以及一个与工作区变量对应的行。

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

6. 在列中的 intGain 旁边,点击操作按钮(具有三个纵点的按钮)并选择浏览

7. 将模型工作区变量转换为参数对象。在模型资源管理器中,右键点击 intGain,然后选择“转换为参数对象”。

8. 在对话框窗格的代码生成选项卡上,点击在 Coder App 中配置

9. 在代码映射编辑器的参数选项卡上,将 intGain 存储类设置更改为“模型默认”,这表示参数对象会避免在代码生成优化期间消除变量存储。使用此设置时,该对象会将在代码映射编辑器中指定的存储类用作模型参数类别的数据默认值。

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

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

11. 在代码视图中:

        a. 搜索 intGain

        b. 在 RollAxisAutopilot.c 中,将光标放在高亮代码 P.intGain 中 P 的上方。

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

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

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电力电子空间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值