Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

目标环境和应用程序

关于目标环境

代码生成器还生成联编文件或工程文件,以便为特定的目标环境编译可执行程序。生成联编文件或工程文件是可选项。如果您愿意,可以使用现有的目标编译环境,如第三方集成开发环境 (IDE),为生成的源文件生成一个可执行程序。生成的代码具有广泛的用途,包括在开发计算机上调用几个导出的 C 或 C++ 函数,以及使用自定义编译过程在与运行 MATLAB® 和 Simulink® 的开发计算机完全分离的环境中为自定义硬件生成完整的可执行程序。

代码生成器提供内置的系统目标文件,可为特定目标环境生成、编译和执行代码。这些系统目标文件为与生成的代码进行交互提供了不同程度的支持,可以记录数据、调优参数和进行实验(使用或不使用 Simulink 作为生成的代码的外部接口均可)。

目标环境的类型

选择系统目标文件之前,您需要确定要在哪个目标环境中执行生成的代码。最常见的目标环境包括下表中列出的环境。

目标环境说明
开发计算机

运行 MATLAB 和 Simulink 的计算机。开发计算机是 PC 或 UNIX®[a] 环境,例如 Microsoft® Windows® 或 Linux® 等都是非实时操作系统[b]。非实时(通用)操作系统具有非确定性。例如,这些操作系统可能会暂停代码执行以运行操作系统服务,在提供该服务之后再继续代码执行。因此,对于您生成的代码,可执行文件的运行速度可能比您在模型中指定的采样率更快或更慢。

实时仿真器

开发计算机之外的另一台计算机。实时仿真器可以是使用实时操作系统 (RTOS) 的 PC 或 UNIX 环境,例如以下实时操作系统:

  • Simulink Real-Time 系统

  • 实时 Linux 系统

  • 配有 PowerPC® 处理器的 Versa Module Eurocard (VME) 机箱,运行商用 RTOS

生成的代码实时运行。代码执行的确切性质因系统硬件和 RTOS 的特定行为而异。

实时仿真器连接到开发计算机,以记录数据、进行交互式参数调优以及进行蒙特卡罗批量执行研究。

嵌入式微处理器

最终与开发计算机断开连接并作为电子产品的一部分而独立运行的计算机。嵌入式微处理器的价格和性能各异,从处理通信信号的高端数字信号处理器 (DSP) 到价格低廉、大规模生产的 8 位定点微控制器(例如,一次生产几百万个的电子元件)。嵌入式微处理器可以:

  • 使用全功能 RTOS

  • 由基本中断来驱动

  • 使用与代码生成一起提供的单调速率调度

[a] UNIX is a registered trademark of The Open Group in the United States and other countries.

[b] Linux is a registered trademark of Linus Torvalds.

目标环境可以:

  • 具有单核或多核 CPU

  • 是独立的计算机或作为计算机网络的一部分进行通信

您可以在不同的目标环境中部署 Simulink 模型的不同部分。例如,常见的做法是将模型的组件(算法或控制器)部分与环境(或被控对象)分开。使用 Simulink 为整个系统(被控对象和控制器)建模通常被称为闭环仿真,它具有很多优点,例如对组件进行早期验证。

下图显示了为模型生成的代码的示例目标环境。

支持的目标环境的应用

下表列出了在不同目标环境上下文中应用代码生成技术的方法。

应用说明
开发计算机
加速在 MATLAB 和 Simulink 环境上下文中加快模型仿真的执行速度的技术。如果运行时间远超过编译和检查目标是否为最新所需的时间,这种情况下加速仿真尤其有用。
快速仿真 在开发计算机上,但在 MATLAB 和 Simulink 环境外部,以非实时方式执行为模型生成的代码。
共享对象库 (Embedded Coder)将组件集成到较大的系统中。在其他代码可以动态链接的另一个环境或共享库中提供生成的源代码和相关的依赖项以构建系统。
保护模型以隐藏内容生成一个受保护的模型,供第三方供应商在其他 Simulink 仿真环境中使用。
实时仿真器
实时系统快速原型构建在与被控系统硬件(例如,物理被控对象或车辆)连接的实时仿真器上生成、部署和调优代码。这对于确认组件能否控制实际系统至关重要。
共享对象库 (Embedded Coder)将为组件生成的源代码和依赖项集成到在另一个环境中构建的大型系统中。可以使用共享库文件来保护知识产权。
硬件在环 (HIL) 仿真运行仿真,将物理硬件(如控制器)与实时目标计算机上物理组件的虚拟实时实现配对,包括被控对象、传感器、作动器和环境。通过包括组件对真实激励的实时响应效果,使用 HIL 仿真来测试和验证物理硬件和控制器算法。测试通常将 HIL 仿真结果与系统要求进行比较。验证会将 HIL 仿真结果与用户要求进行比较。由于组件对物理环境激励作出响应,HIL 仿真通常又称闭环仿真。
嵌入式微处理器
代码生成 (Embedded Coder)从模型中生成针对速度、内存使用量、简单性、行业标准及规范合规性进行优化的代码。
软件在环仿真 (Embedded Coder)编译用于生产的生成源代码或外部源代码,并将代码作为独立于开发计算机上 Simulink 模型其余部分的进程来执行。目标包括初始源代码测试和验证,方法是通过背对背测试比较 SIL 和模型仿真结果,或比较 SIL 结果与需求。通常用于外部代码集成、位精确定点数学和覆盖率分析。
处理器在环仿真 (Embedded Coder)交叉编译生成源代码或外部源代码,用于在开发计算机上进行生产,然后在目标处理器或等效指令集仿真器上下载并运行目标代码。目标包括验证,方法是将 PIL 仿真结果与模型或 SIL 仿真结果进行比较,并收集执行时间探查数据。通常用于外部代码集成、位精确定点数学和覆盖率分析。
硬件在环 (HIL) 仿真运行仿真,将物理硬件(如控制器)与实时目标计算机上物理组件的虚拟实时实现配对,包括被控对象、传感器、作动器和环境。通过包括组件对真实激励的实时响应效果,使用 HIL 仿真来测试和验证物理硬件和控制器算法。测试通常将 HIL 仿真结果与系统要求进行比较。验证会将 HIL 仿真结果与用户要求进行比较。由于组件对物理环境激励作出响应,HIL 仿真通常又称闭环仿真。