主要内容

Knob

R2026b

用刻度盘调节参数值

  • Knob block

库:
Simulink / Dashboard

描述

在仿真过程中,Knob 模块调整连接的模块参数的值。例如,您可以将 Knob 模块连接到模型中的 Gain 模块,并在仿真过程中调整其值。您可以修改 Knob 模块的刻度范围以适合您的数据。将 Knob 模块与其他 Dashboard 模块结合使用,可以创建交互式仪表板来控制您的模型。

连接 Dashboard 模块

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

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

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

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

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

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

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

An unconnected Knob block connects to the Gain parameter of a Gain block.

参数记录

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

示例

全部展开

在仿真期间,可以使用 Knob 模块将一个参数的值设置为几个值之一。例如,在模型 knobGain 中,Knob 模块连接到 Gain 模块的增益参数。Knob 模块配置为您可以在 0 和 20 之间选择增益值。

The Block Parameter dialog box for the Knob block

对模型进行仿真。要在仿真期间更改增益值,请旋转 Knob 模块。

Animation of the knobGain model during simulation

扩展示例

限制

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

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

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

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

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

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

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

参数

全部展开

此模块是控制模块 - 即连接到参数并调节其值的模块。您可以连接到具有标量值的参数,或连接到矩阵的元素。Dashboard 模块不使用端口来连接到模型元素。请改用连接模式、Simulink® 工具条或“模块参数”对话框中的连接表。有关信息,请参阅Connect Dashboard Blocks to Simulink Model。

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

  1. 选择模块。

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

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

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

  5. 点击应用。

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

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

编程用法

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

例如,假设名为 vdp 的模型包含名为 myButton 的 Push Button 模块和名为 x1 的 Integrator 模块。要将 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)

模块上显示的刻度的类型。线性指定线性刻度,Log 指定对数刻度。

编程用法

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

参数: ScaleType
值: 'Linear' (默认) | "Linear" | "Log"

示例: set_param(gcb,ScaleType="Log")

有限双精度实数标量值,用于指定标度的最小刻度线值。最小值必须小于最大值参数的值。

编程用法

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

将 Limits 参数的值指定为 [min,int,max] 形式的向量。

  • min 是刻度的 Minimum 刻度线值。

  • int 是刻度的 Tick Interval。要使 Tick Interval 的值为 auto,请将向量中的 Tick Interval 位置留空,或指定 -1。

  • max 是刻度的 Maximum 刻度线值。

参数: Limits
值: [0 -1 100] (默认) | [min,int,max]

示例: set_param(gcb,Limits=[-50 -1 100])

有限双精度实数标量值,用于指定标度的最大刻度线值。最大值必须大于最小值参数的值。

编程用法

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

将 Limits 参数的值指定为 [min,int,max] 形式的向量。

  • min 是刻度的 Minimum 刻度线值。

  • int 是刻度的 Tick Interval。要使 Tick Interval 的值为 auto,请将向量中的 Tick Interval 位置留空,或指定 -1。

  • max 是刻度的 Maximum 刻度线值。

参数: Limits
值: [0 -1 100] (默认) | [min,int,max]

示例: set_param(gcb,Limits=[0 -1 50])

有限实数正整数标量值,用于指定标度上主刻度线的间隔。当设置为 auto 时,模块会根据最大值和最小值参数的值自动调整刻度间隔。

编程用法

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

将 Limits 参数的值指定为 [min,int,max] 形式的向量。

  • min 是刻度的 Minimum 刻度线值。

  • int 是刻度的 Tick Interval。要使 Tick Interval 的值为 auto,请将向量中的 Tick Interval 位置留空,或指定 -1。

  • max 是刻度的 Maximum 刻度线值。

参数: Limits
值: [0 -1 100] (默认) | [min,int,max]

示例: set_param(gcb,Limits=[0 5 100])

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

编程用法

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

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

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

模块特性

数据类型

double | half | integer | single

直接馈通

否

多维信号

否

可变大小信号

否

过零检测

否

扩展功能

全部展开

版本历史记录

在 R2015a 中推出

全部展开