主要内容

使用变体和 Simulink Real-Time 创建实时应用程序

此示例说明如何使用 Simulink® Real-Time™ 工作流创建一个具有可变子系统的实时应用程序。通过 Simulink Real-Time,您可以基于 Simulink 模型创建实时应用程序,并在连接到物理系统的 Speedgoat® 目标计算机硬件上运行。

要在目标计算机上运行 Simulink Real-Time 模型,请在一个网络中连接开发计算机和目标计算机。有关步骤,请参阅设置并配置 Simulink Real-Time (Simulink Real-Time)

浏览和设置模型

打开模型 slexVariantSubsystems。该模型包含一个 Variant Subsystem 模块 Controller,它有两个选择项,分别为 Linear ControllerNonlinear Controller,并且分别具有条件 VSS_MODE == 1VSS_MODE == 2

要创建一个实时应用程序,请执行以下操作:

1模块参数对话框中,将变体激活时间设置为 startup

2 检查变体控制项表达式是否设置为 VSS_MODE == 1(对于 Linear Controller)*,或是否设置为 VSS_MODE == 2(对于 Nonlinear Controller)。

3 创建变体参数 VSS_MODE 作为 Simulink.Parameter,其值为 1,数据类型为 int32

VSS_MODE = Simulink.Parameter(int32(1));

4VSS_MODE 的存储类设置为 ExportedGlobal

VSS_MODE.CoderInfo.StorageClass = 'ExportedGlobal';

5 将变体选择项更改为 atomic

open_system('slexVariantSubsystems');

要向 Simulink Coder 提供有关如何从模型编译实时应用程序的信息,请在“配置参数”对话框中设置仿真和实时运行参数。要打开“配置参数”对话框,请在建模选项卡上,点击模型设置

1求解器窗格的求解器选择下,从类型列表中,选择 Fixed-step

2代码生成窗格的目标选择部分中,从系统目标文件列表中为 Simulink Real-Time 模型选择 STF。编译实时应用程序需要此选择。

3优化窗格中,将默认参数行为设置为 Tunable

4接口窗格的数据交换接口下,清除外部模式复选框。

现在,模型已准备就绪,可以使用当前配置参数设置来编译独立的实时应用程序。

创建并运行实时应用程序

使用 slbuild 命令创建实时应用程序。这将生成实时应用程序 MLDATX 文件。

slbuild('slexVariantSubsystems');

使用 slrtExplorer (Simulink Real-Time) 命令打开 Simulink Real-Time 资源管理器。

slrtExplorer

通过点击 Load Application 加载实时应用程序 slexVariantSubsystems.mldatx。在 slrtExplorer 中,您可以:

1Signals 选项卡中查看信号的层次结构显示。您可以看到 Signals available on target computer 下所有可用的信号。选择您要观察的信号并将其添加到 Signals in Instrument 中。

2Parameters 选项卡中调节参数。变体控制项变量 VSS_MODE 的值默认设置为 2,因为这是在编译时指定的值。在开始仿真之前,您可以选择将该值更改为 1。在仿真结束时,此变量将重置回默认值。

3 将数据流式传输到仿真数据检查器。运行实时仿真。打开仿真数据检查器并观察 VSS_MODE == 1VSS_MODE == 2 的不同结果。

注意:检查在仿真运行时是否没有更改变体控制项值 VSS_MODE。如果您在各步之间更改了变体控制项,Simulink 不会发出错误。

VSS_MODE == 1 时的输出

VSS_MODE == 2 时的输出

另请参阅