Main Content

共享 Simulink 缓存文件以加快仿真速度

Simulink® 缓存文件包含可以加快仿真和代码生成的编译工件。要生成这些编译工件并将其自动打包到 Simulink 缓存文件中,请执行以下操作之一:

  • 更新包含在加速模式中引用的模型的模型层次结构的图

  • 仿真包含在加速模式中引用的模型的模型层次结构

  • 在加速或快速加速模式下仿真顶层模型

  • 为模型或模型层次结构生成代码

在您第二次执行上述任一操作时,只要 重新编译 配置参数设置为如果检测到变化(默认值)或如果检测到已知依存关系的变化,Simulink 就会只编译过期文件。由于要编译的文件更少,操作完成得更快。

注意

虽然您可以通过将 重新编译 配置参数设置为从不来避免所有引用模型重新编译,但使用此设置可能会产生无效的仿真结果。

团队成员和持续集成 (CI) 系统可以为您使用的模型生成 Simulink 缓存文件。为了减少首次编译这些模型所需的时间,您可以将对应的 Simulink 缓存文件复制到 仿真缓存文件夹 预设项指定的本地文件夹中。Simulink 提取与磁盘上的内容不同的任何 Simulink 缓存文件内容。如果 Simulink 在磁盘上生成或更新编译工件,它会在本地更新对应的 Simulink 缓存文件。

您可以通过其 .slxc 扩展名来识别 Simulink 缓存文件。它的文件名与对应模型的名称相匹配。

检查 Simulink 缓存文件内容

Simulink 缓存文件可以包含多种类型的编译工件,包括:

  • 加速目标

  • 快速加速目标

  • 模型引用的仿真目标

  • 变量使用信息

  • 代码生成目标(Simulink Coder™、Embedded Coder®

  • 模型表示 (Simulink Design Verifier™)

  • Web 视图 (Simulink Report Generator™)

Simulink 缓存文件可累积多个平台和 Simulink 版本的编译工件。

要了解特定 Simulink 缓存文件包含的内容,请双击该文件打开报告。

Simulink cache report

或者,要在 MATLAB® 表中获取 Simulink 缓存文件的内容,请使用 slxcinfo 函数。

您可以重用支持您正在使用的平台和版本的编译工件。例如,假设您使用 Windows® 计算机和 R2019a Simulink 版本。在本报告说明的 Simulink 缓存文件中,您可以使用 R2019a : win64 下的仿真目标。使用 Linux® 计算机和 R2019b 的团队成员可以使用 R2019b : glnxa64 下的仿真和代码生成目标以及 R2019b : 所有平台下的模型表示。

Simulink 缓存文件可以为创建该文件所用的版本和更高版本累积编译工件。假设您在 R2019b 中创建了一个 Simulink 缓存文件。您将无法在 R2019a 中使用该 Simulink 缓存文件。

使用 Simulink 缓存文件

虽然大多数团队可以受益于使用 Simulink 缓存文件,但具有下列特征的开发环境最适合使用 Simulink 缓存文件。

  • 包含许多引用模型的模型层次结构。

  • 在加速或快速加速模式下仿真的顶层模型,在这种情况下,Simulink 会为顶层模型和所有引用模型生成一个仿真目标。

  • 整个开发团队使用一个标准化的平台、编译器和 Simulink 版本。

  • 您通过包含目录配置参数为整个开发团队指定了相对路径或一致的绝对路径。

  • 具有管理设计文件的源代码管理系统,如 Git™。请参阅设置 Git 源代码管理

    注意

    由于 Simulink 缓存文件是派生文件,因此您不应在源代码管理下管理它们。即使您通过将 Simulink 缓存文件存储在源代码管理系统中来共享它们,也无法对这些文件的不同版本进行区分或合并。

  • CI 系统,如 Jenkins®,它使用并行工作进程池定期编译模型层次结构的最新版本。

    注意

    为了避免对使用自定义代码的仿真和代码生成器目标进行不必要的重新编译,请将 CI 系统目录映射到与团队成员沙盒中相同的命名三维体或符号链接。例如,让 CI 系统和团队成员将自定义代码存储在映射的目录中,如 B:\path\customcode

在此开发环境中,您要处理源代码管理系统中的文件,并编译存档。

Workflow with source control system, CI system, and build archive. The CI system pulls design changes from the source control system and archives Simulink cache files in the build archive.

要减少更新仿真目标所花费的时间,请按照以下步骤操作。

  1. 从源代码管理系统中拉取所有设计文件的最新版本。

  2. 从编译存档中复制所有 Simulink 缓存文件的最新版本,并将其放在 仿真缓存文件夹 中。

  3. 打开顶层模型并对其进行仿真。

    Simulink 从 Simulink 缓存文件中提取所需的编译工件。只要模型自 CI 系统完成最近一次编译以来没有发生变化,那么无需重新编译任何模型就可完成仿真。

    注意

    要从 Simulink 缓存文件中解包仿真和代码生成目标,而不对模型层次结构进行更新、仿真或生成代码,请使用 slxcunpack 函数。

  4. 更改模型并再次仿真模型层次结构。

    Simulink 重新编译必要的模型,并更新对应 Simulink 缓存文件的本地副本。

  5. 将更新后的模型提交到源代码管理系统。您无法提交 Simulink 缓存文件,它是派生文件。

检查工程中的 Simulink 缓存文件

从顶层模型创建工程时,工程包含模型及其引用模型的关联 Simulink 缓存文件。

要查看模型层次结构中的 Simulink 缓存文件依存关系,您可以在对应工程的视图窗格中选择依存关系分析器

Dependency Analyzer results for sldemo_mdlref_depgraph, including Simulink cache files

有关详细信息,请参阅Perform Impact Analysis with a Project

另请参阅

|

相关主题

外部网站