Main Content

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

为模型层次结构选择仿真模式

在仿真模型层次结构时,应考虑顶层模型和引用模型的执行方式。

  • 顶层模型 - 支持所有 Simulink® 仿真模式。要加速顶层模型的执行,您可以使用 Simulink Accelerator 或 Rapid Accelerator 模式。

  • 引用模型 - 虽然您可以为模型指定任何仿真模式,但当您引用该模型时,被引用模型的每个实例的 Model 模块将决定该实例的仿真模式。父模型的仿真模式可以覆盖 Model 模块的仿真模式。

有关仿真模式的信息,请参阅选择仿真模式加速模式的工作原理

模型引用的仿真模式

您可以为 Model 模块指定以下任一仿真模式:

  • Normal

  • Accelerator

  • 软件在环 (SIL) - 需要 Embedded Coder®

  • 处理器在环 (PIL) - 需要 Embedded Coder

当您在 Normal 模式和 Accelerator 模式之间进行选择时,您必须在灵活性和速度之间进行权衡。Normal 模式支持引用模型中较多的 Simulink 和 Stateflow® 功能,例如示波器、端口值显示和调试工具。Accelerator 模式支持引用模型中较少的功能,但对层次模型的仿真速度更快。

建模要求Normal 模式Accelerator 模式
仿真速度

模型在 Normal 模式下的执行速度比在 Accelerator 模式下更慢。但是,在 Normal 模式下执行引用模型时,不用在构建和编译仿真目标后再进行仿真,因为 Normal 模式是以解释方式执行引用模型的。

模型在 Accelerator 模式下的执行速度比在 Normal 模式下更快。在仿真模型之前,Simulink 必须构建和编译仿真目标,这对于原型构建可能是不理想的。有关详细信息,请参阅 管理引用模型的仿真目标

调试

使用 Simulink Debugger,您可以在以 Normal 模式执行的引用模型中设置断点。有关详细信息,请参阅 Simulink 调试器

使用 Simulink Profiler,您可以为以 Normal 模式执行的引用模型启用探查。对父模型启用探查并不会对引用模型进行探查。请参阅探查器如何捕获性能数据

对于在 Accelerator 模式下执行的引用模型,会忽略 Simulink Debugger 和 Simulink Profiler 进行的设定和采取的操作。

测试

Simulink Coverage™ 模型覆盖率分析支持在 Normal 模式下执行的引用模型。

Simulink Coverage 模型覆盖率分析会忽略在 Accelerator 模式下执行的引用模型。

可调性

您可以在仿真过程中为以 Normal 模式执行的引用模型调整模块参数。

如果在 Accelerator 模式下执行的引用模型使用基础工作区或数据字典中的变量来设置参数值,则您可以调整这些变量的值。有关详细信息,请参阅特定建模情形下的可调整性注意事项和限制

数据日志记录

数据记录为在 Normal 模式下执行的引用模型提供广泛的支持。

对于在 Accelerator 模式下执行的引用模型,To Workspace 模块仅当它们使用 Timeseries 格式进行保存时才会记录数据。

数据可视化

您可以使用仿真数据检查器查看特定实例的仿真结果。

这些可视化方法仅显示在 Normal 模式下执行的引用模型的一个实例的数据。

  • 引用模型中的 ScopeFloating ScopeScope Viewer 模块

  • 运行时显示,如端口值

有关详细信息,请参阅 Simulate Multiple Referenced Model Instances in Normal Mode

您可以使用仿真数据检查器查看特定实例的仿真结果。

这些可视化方法不显示在 Accelerator 模式下执行的引用模型的数据。

  • 引用模型中的 ScopeFloating ScopeScope Viewer 模块

  • 运行时显示,如端口值

如果您使用 Signal & Scope Manager 在引用模型中添加测试点,顶层模型 Scope 模块可以显示在 Accelerator 模式下执行的引用模型的数据。添加或删除测试点需要为模型重新构建模型引用仿真目标。

诊断

根据指定的设置应用配置参数设置。

对于在 Accelerator 模式下引用的模型,Simulink 可以忽略一些配置参数设置。有关详细信息,请参阅在 Accelerator 模式下忽略的诊断

运行时检查

运行时检查已启用。

有些模块包括运行时检查,当在 Accelerator 模式下的引用模型中包含该模块时,这些运行时检查将被禁用。这些模块的示例包括 AssignmentSelectorMATLAB FunctionMATLAB System 模块。

线性化分析和优化

Normal 模式允许引用模型的逐模块线性化,这样可以实现准确的线性化。

在 Accelerator 模式下,模型引用的离散状态不会被线性化。在线性化过程中,这些离散状态不会被扰动,因此它们在配平过程中并不是真的自由。

在配平期间,随机模块的输出会发生变化。不能保持不变的输出可能会影响优化过程。

外部函数

在 Normal 模式下执行的引用模型中的 MATLAB Function 模块可以调用针对代码生成声明为外部函数的 MATLAB® 函数。

在 Accelerator 模式下执行的引用模型中的 MATLAB Function 模块不能调用为代码生成而声明为外部函数的 MATLAB 函数。

S-Function

在 Normal 模式下执行的引用模型比在 Accelerator 模式下执行的引用模型支持更多的 S-Function。有关详细信息,请参阅引用模型中的 S-Function

在 Accelerator 模式下执行的引用模型比在 Normal 模式下执行的引用模型支持更少的 S-Function。有关详细信息,请参阅引用模型中的 S-Function

SIL 和 PIL 仿真模式通过为嵌入式处理器生成生产代码来执行引用模型。SIL 模式为 PIL 仿真提供方便的替代方案,因为当目标硬件不可用时,它可以在主机平台上运行。有关详细信息,请参阅 SIL 和 PIL 仿真 (Embedded Coder)

覆盖的仿真模式

父模型的仿真模式可以覆盖 Model 模块的仿真模式。下表显示基于父模型和相关 Model 模块的仿真模式,Simulink 对引用模型实例使用的仿真模式。

父模型使用的仿真模式Model 模块的仿真模式
NormalAccelerator
Normal

兼容 - 引用模型在 Normal 模式下仿真。

兼容 - 引用模型在 Accelerator 模式下仿真。

Accelerator

覆盖 - 引用模型在 Accelerator 模式下仿真。

兼容 - 引用模型在 Accelerator 模式下仿真。

Rapid accelerator(仅限顶层模型)

有关 SIL 和 PIL 的信息,请参阅Simulation Mode Override Behavior in Model Reference Hierarchy (Embedded Coder)

相关主题