主要内容

Toggle Switch

将参数在两个值之间切换

  • Toggle Switch block

库:
Simulink / Dashboard

描述

在仿真过程中,Toggle Switch 模块将连接的模块参数的值在两个值之间切换。例如,可以将 Toggle Switch 模块连接到模型中的 Switch 模块,并在仿真期间更改其状态。将 Toggle Switch 模块与其他 Dashboard 模块结合使用,可以为模型创建交互式仪表板。

在仿真期间以及 Toggle Switch 模块处于选中状态时,双击该模块不会打开其对话框。要编辑模块的参数,您可以使用属性检查器,也可以右键点击该模块,然后点击“模块参数”按钮

连接 Dashboard 模块

Dashboard 模块不使用端口来连接到模型元素。要连接 Dashboard 模块,请使用连接模式。要在未连接的模块上进入连接模式,请将鼠标在要连接的模块上暂停并点击连接按钮 。要在已连接的模块上进入连接模式,请选择该模块,在显示的省略号 (…) 上暂停,然后在展开的操作菜单中点击连接按钮。

要将控制模块连接到模型中的参数或更改控制模块的连接,请进入连接模式。选择要连接到其参数的模块。从出现的列表中,选择要连接的参数。然后,请在 Dashboard 模块上悬停并点击完成连接按钮

在更新模型图之前,控制模块无法连接到其值为变量的参数。要在仿真未运行时连接到其值为变量的参数或修改作为所连接的参数值的变量值,请按 Ctrl+D 更新模型图。

您可以连接到具有标量值的参数,或连接到矩阵或结构体的元素。有关详细信息,请参阅Connect Dashboard Blocks to Simulink Model

您还可以将 Dashboard 模块连接到 Stateflow® 图。有关详细信息,请参阅Connect Dashboard Blocks to Stateflow (Stateflow)

此动画说明如何将 Toggle Switch 模块连接到您的模型。

An unconnected Toggle Switch block connects to the Value parameter of a Constant block.

参数记录

连接到 Dashboard 模块的可调参数数据会记录到仿真数据检查器,您可以在其中查看参数值以及记录的信号数据。您可以通过使用 UI 或 Simulink.sdi.exportRun 函数从仿真数据检查器导出参数数据来访问 MATLAB® 工作区中记录的参数数据。有关使用仿真数据检查器 UI 导出数据的详细信息,请参阅Export Data From Simulation Data Inspector to Workspace or File。参数数据存储在 Simulink.SimulationData.Parameter 对象中,可作为导出的 Simulink.SimulationData.Dataset 中的元素来访问。

示例

全部展开

在仿真期间,可以使用 Toggle Switch 模块来更改 Switch 模块的状态。模型 toggleSwitch 包含一个 Toggle Switch 模块,该模块连接到名为 Control Input 的 Constant 模块的 Value 参数。当 Toggle Switch 模块处于启用状态时,Control Input 模块的值为 1,Switch 模块输出值 5。当 Toggle Switch 模块处于关闭状态时,Control Input 模块的值为 0,Switch 模块输出值 0

toggleSwitch 模型进行仿真。要在仿真期间更改 Switch 模块的状态,请点击 Toggle Switch 模块。

Animation of the toggleSwitch model during simulation

扩展示例

限制

  • 除了 Dashboard Scope 模块和 Display 模块之外,Dashboard 模块只能连接到实数标量信号。

  • 您不能在“模块参数”对话框中使用连接表将 Dashboard 模块连接到已注释掉的模块。使用连接模式将 Dashboard 模块连接到带注释的模块时,Dashboard 模块在您取消注释模块之前不会显示连接的值。

  • Dashboard 模块无法连接到引用模型中的模型元素。

  • 在仿真模型层次结构时,引用模型内的 Dashboard 模块不会更新。

  • Dashboard 模块不支持快速加速仿真。

  • 当您在仿真期间将 Dashboard 模块连接到变量或参数时,该变量或参数的数据不会记录到仿真数据检查器中。要将变量和参数数据记录到仿真数据检查器,请在仿真之前将 Dashboard 模块连接到该变量或参数。

  • 当您将默认参数行为设置为内联并在外部模式下对模型进行仿真时,Dashboard 模块看起来像是更改了参数和变量值。但是,更改不会传播到仿真。例如,Gain 模块显示使用 Dashboard 模块对增益参数进行的更改,但仿真中使用的增益值不变。

参数

全部展开

此模块是控制模块 - 即控制参数值的模块。将该模块连接到您要控制其值的参数。您可以连接到具有标量值的参数,或连接到矩阵的元素。

Dashboard 模块不使用端口来连接到模型元素。要连接 Dashboard 模块,请使用连接模式、Simulink® 工具条或“模块参数”对话框中的连接表。有关信息,请参阅Connect Dashboard Blocks to Simulink Model

要使用连接表连接到具有标量值的参数,请执行以下操作:

  1. 选择模块。

  2. 在属性检查器中,在参数选项卡上,点击连接更改

  3. 选择要连接其参数值的模块。

  4. 在出现的表中,选择该参数。

  5. 点击应用

要连接到其值指定为变量的参数或更改已连接变量的值,您必须先更新模型图。要更新模型图,请按 Ctrl+D

您还可以将 Dashboard 模块连接到 Stateflow 图。有关详细信息,请参阅Connect Dashboard Blocks to Stateflow (Stateflow)

编程用法

您可以通过编程方式将控制模块连接到参数。定义一个表示该参数的 Simulink.HMI.ParamSourceInfo 对象。然后,将 Binding 参数的值设置为该对象。要设置 Binding 参数的值,请使用 set_param 函数。

例如,假设名为 vdp 的模型包含名为 myButtonPush Button 模块和名为 x1Integrator 模块。要将 Push Button 模块连接到 Integrator 模块的 Initial Condition 参数,请使用以下代码。

blockPath1 = "vdp/myButton";
blockPath2 = "vdp/x1";

myObj = Simulink.HMI.ParamSourceInfo;
myObj.BlockPath = Simulink.BlockPath(blockPath2);
myObj.ParamName = 'InitialCondition';

set_param(blockPath1,Binding=myObj)
参数: Binding
值: Simulink.HMI.ParamSourceInfo object

示例: set_param(gcb,Binding=myObj)

对组,包含要赋给所连接的变量或参数的值,以及要在模块上显示的文本。开关有两种状态 - 顶端底端 - 每种状态对应一个开关位置。每种状态包含一个和一个标签

  • - 当开关处于某一位置时,要相应赋给所连接的变量或参数的值。

  • 标签 - 当开关处于某一位置时,要在模块上相应显示的文本。

下表说明模块的默认配置。

位置状态值状态标签
顶端0on
底端1off

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

States 参数的值指定为 2×1 结构体数组,其中每个结构体表示一种状态。每个结构体包含以下字段:

  • Value - 模块赋给所连接的参数的值

  • Label - 开关上的标签,指定为字符向量

例如,假设您需要当前选中的开关模块具有以下状态。第一个状态具有标签 Reverse,并为所连接的参数赋值 -5。第二个状态具有标签 Forward,并为所连接的参数赋值 5。要实现这些状态,请使用以下代码。

state1.Value = -5;
state1.Label = 'Reverse';
state2.Value = 5;
state2.Label = 'Forward';
myStates = [state1 state2];

set_param(gcb,States=myStates)
参数: States
值: 2-by-1 struct array, where each struct has the fields Value and Label

示例: set_param(gcb,States=myStates)

模块标签的位置。当模块连接到模型中的元素时,标签是所连接的元素的名称。

编程用法

要以编程方式设置模块参数值,请使用 set_param 函数。

参数: LabelPosition
值: 'Top' (默认) | "Top" | "Bottom" | "Hide"

示例: set_param(gcb,LabelPosition="Bottom")

模块特性

数据类型

double | half | integer | single

直接馈通

多维信号

可变大小信号

过零检测

扩展功能

全部展开

版本历史记录

在 R2015a 中推出

全部展开