Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

从 Simulink 模型生成 C 代码

此示例说明如何通过使用 Embedded Coder® 产品从横滚轴自动驾驶算法的 Simulink® 模型生成 C 代码。

使用 Embedded Coder 产品生成针对在快速原型构建板、嵌入式处理器或微处理器上部署而优化的 C 或 C++ 代码。如果您刚开始使用 Embedded Coder 或您的应用程序代码自定义要求很少,则您可以使用图形工具和默认代码配置设置来快速生成生产级的代码。如果您需要生成用于与现有外部代码集成的自定义代码,或者要满足代码规范和标准,则可以使用工具来配置代码生成器以满足对接、代码外观、打包和优化方面的要求。

就像使用快速向导工具准备用于代码生成的模型一样,生成和查看用于部署到嵌入式系统的代码可以很简单。然后,使用可从 Simulink 编辑器访问的代码工具,您可以配置代码接口、启动代码生成以及查看生成的代码。

示例模型

本教程使用示例模型 RollAxisAutopilotRollAxisAutopilotHarness。这两个模型已经过仿真验证。

打开模型 RollAxisAutopilot

open_system('RollAxisAutopilot.slx')

此模型实现一种基本的横滚轴自动驾驶算法,用于控制飞机的副翼位置。

此模型代表飞机的更大控制系统中的一个组件。通过 HDG_Mode 信号,控制系统将模型置于两种操作模式之一:滚转姿态保持或航向保持。RollAngleReferenceHeadingMode 子系统计算支持其中一种操作模式的滚转姿态设置值。

open_system('RollAxisAutopilot/RollAngleReference')

open_system('RollAxisAutopilot/HeadingMode')

然后,BasicRollMode 子系统(一个 PID 控制器)根据设置值和指示测量的滚转姿态和更改速率的反馈来计算副翼位置命令。该模型设计为以 40 Hz 运行。

open_system('RollAxisAutopilot/BasicRollMode')

本教程使用模型 RollAxisAutopilotHarness 来测试 RollAxisAutopilot

您将学习如何:

  1. 使用 Embedded Coder 快速向导工具生成代码。

  2. 配置数据接口。

  3. 将模型参数配置为全局变量,用于在运行时进行调优。

  4. 比较模型仿真和生成的代码结果以了解数值等效性。

  5. 部署生成的代码。

要开始本教程,请参阅使用 Embedded Coder 快速向导生成代码