Main Content

Change Operating Points

仿真期间在工作点之间切换

自 R2023b 起

  • Change Operating Points block

库:
Simulink Control Design / Autotuning

描述

Change Operating Points 模块允许您在仿真期间管理和切换工作点。您可以在以下配置之一中使用该模块:

  • 从工作区导入预定义的工作数据,并在仿真期间在工作范围之间切换。

  • 在仿真期间在指定的时间或事件处自动创建快照,以获取指定范围内的工作点数据。例如,对于电机模型,您可以在以下位置创建快照:

    • 3 秒、5 秒和 7 秒处(基于时间)。

    • 2000、5000 和 8000 rpm 处(基于事件)。

当您有预定义的工作点数据时,您可以在增益调度控制器调节工作流中使用此模块。此模块有助于生成参考信号,后者可将您的被控对象从一个工作点移至另一个工作点。否则,您需要先创建工作点的快照,然后将数据用于增益调度工作流。

通常,调节增益调度控制器是一个复杂的过程。它要求您在每个工作点运行多个仿真进行调节,并提供逻辑来存储在该工作点处的 PID 增益。将此模块与 PID Gains Store and UpdatePID Gain Scheduler 模块结合使用,可帮助您在单次运行中实现在一个工作范围内自动调节增益调度 PID 控制器的简化工作流。为此,请使用以下工作流。

  1. 在仿真期间,使用 Change Operating Points 模块在预定义的工作点数据或快照工作点数据之间切换。

  2. 使用 Closed-Loop PID Autotuner 模块在工作点处执行自动调节。

  3. 使用 PID Gains Store and Update 模块将对应于工作点的 PID 增益存储在一个数组中。

  4. 使用 PID Gain Scheduler 模块从数组中执行基于查找表的增益调度。

从更高层面而言,您可以使用这些模块来实现增益调度工作流,如下图所示。

Diagram of a gain-scheduled system, with Closed-Loop PID Autotuner, PID Controller, Change Operating Points, Gain Scheduler, and PID Gains Store and Update blocks.

端口

输入

全部展开

指定工作点上的输入电平的值。

当模块在快照模式下运行时,模块直接将此输入传递给 systeminputs_out 端口。

指定一个信号以启用 (1) 或禁用 (0) 模块操作。

指定用于启动自动调节的时间向量。此向量的每个索引的值都是在该索引处的工作点的自动调节启动时间。使用自动调节时间跨度(秒) 参数指定试验的持续时间。

依存关系

要启用此端口,请使用以下配置。

  • 工作模式设置为导入工作点

  • 选择使用模块进行自动调节

  • 启动自动调节的方法设置为外部时间向量

指定自定义逻辑以切换到下一个工作点。

依存关系

要启用此端口,请使用以下配置。

  • 工作模式设置为导入工作点

  • 过渡方法设置为外部触发器

将您的被控对象的输出连接到此端口。该模块使用此信号确定系统的当前运行状态。

依存关系

要启用此端口,请使用以下配置。

  • 工作模式设置为导入工作点

  • 选择使用模块进行自动调节

  • 启动自动调节的方法设置为达到稳态后时间

使用此端口可手动指定标量标志以启用 (1) 或禁用 (0) 自动调节过程。

依存关系

要启用此端口,请使用以下配置。

  • 工作模式设置为导入工作点

  • 选择使用模块进行自动调节为自动调节添加启用/禁用端口

指定要提取模型工作点的基于时间或基于事件的快照触发器。

快照模式基于时间时,指定您要为其创建工作点数据快照的时间值。例如,要在 3 秒、5 秒和 7 秒处创建快照,请使用向量 [3,5,7] 作为此端口的输入。

快照模式基于事件时,该模块在输入信号的上升沿创建工作点数据的快照。

依存关系

要启用此端口,请将工作模式设置为创建工作点快照,并使用以下配置之一。

  • 快照模式设置为基于时间,并选择使用外部源

  • 快照模式设置为基于事件

输出

全部展开

将系统移至切换的工作点的参考信号。

使用 Closed-Loop PID Autotuner 模块启动和停止自动调节过程的信号。生成的信号取决于附加参数,如自动调节方法和稳态设置。

依存关系

要启用此端口,请将工作模式设置为导入工作点,并选择使用模块进行自动调节

参数

全部展开

“导入工作点”选项卡

指定获取工作点数据的模式。

  • 导入工作点 - 通过在模块对话框中手动编辑表或导入 OperatingPoint 对象来指定预定义的工作点数据。

    在此模式下,您可以使用模块来实现在一个工作范围内自动调节增益调度 PID 控制器的简化工作流。

  • 创建工作点快照 - 在仿真期间在指定的时间或事件处创建工作点快照。

编程用法

模块参数:OperatingMode
类型:字符串
值:"Import operating points" | "Snapshot operating points"
默认值:"Import operating points"

指定工作点数据的输入方法。

  • 手动编辑表 - 在模块对话框中手动指定工作点数据。

  • 自动填充表 - 使用 OperatingPoint 对象导入工作点数据。通常,您可以使用 operpointfindop 等函数或稳态管理器模型线性化器获得工作点。您也可以导入使用此模块的快照模式获得的工作点数据。

依存关系

要启用此参数,请将工作模式设置为导入工作点

编程用法

模块参数:InputMethod
类型:字符串
值:"Manually edit table" | "Automatically fill table"
默认值:"Manually Edit Table"

指定模型中输入的数目。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并将输入方法设置为手动编辑表

编程用法

模块参数:NumSystemInputs
类型:字符串
值:用引号引起来的正标量
默认值:"3"

指定要从中导入工作点数据的工作区。指定的工作区必须包含与工作点变量中的值同名的 OperatingPoint 对象。

  • 基础工作区 - 从 MATLAB® 基础工作区导入数据。

  • 模型工作区 - 从当前模型工作区中导入数据。

  • 数据字典 - 从 Simulink® 数据字典中导入数据。

此外,要在快照模式下导入模块生成的工作点数据,请点击保存到工作区按钮,并指定工作点结构体的名称。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并将输入方法设置为自动填充表

编程用法

模块参数:ImportWorkspace
类型:字符串
值:"Data dictionary" | "Base workspace" | "Model workspace"
默认值:"Data dictionary"

指定要从中读取工作点数据的数据字典的名称。OperatingPoint 对象必须存储在字典的 Other Data 分区中。有关详细信息,请参阅什么是数据字典?

依存关系

要启用此参数,请设置以下参数。

  • 工作模式设置为导入工作点

  • 输入方法设置为自动填充表

  • 工作区设置为数据字典

编程用法

模块参数:DataDictionaryName
类型:字符串
默认值:"myDataDictionary.sldd"

指定工作点变量的名称。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并将输入方法设置为自动填充表

编程用法

模块参数:OperatingPointVariable
类型:字符串
默认值:"myOperatingPoint"

指定要获取工作点数据的快照模式。

依存关系

要启用此参数,请将工作模式设置为创建工作点快照

编程用法

模块参数:SnapshotMode
类型:字符串
值:"Time-based" | "Event-based"
默认值:"Time-based"

指定要提取模型工作点的仿真快照时间。对单个快照使用标量,对多个快照使用向量。

依存关系

要启用此参数,请将工作模式设置为创建工作点快照,将快照模式设置为基于时间

编程用法

模块参数:SnapshotTimes
类型:字符串
值:用引号引起来的标量或向量
默认值:"[1 2 3]"

将仿真快照时间指定为模块输入。

依存关系

要启用此参数,请将工作模式设置为创建工作点快照,将快照模式设置为基于时间

编程用法

模块参数:SnapshotTimesExternalSource
类型:字符串
值:"off" | "on"
默认值:"off"

指定采样时间。

依存关系

要启用此参数,请将工作模式设置为创建工作点快照,将快照模式设置为基于时间

编程用法

模块参数:SampleTime
类型:字符串
值:用引号引起来的正标量 | "–1"
默认值:"–1"

工作点数据,指定为多个表条目。

输入方法手动编辑表时,使用表的列手动指定工作点的索引、快照时间和输入电平的对应数据。

输入方法自动填充表时,显示基于导入的工作点的工作点值。

要在快照模式下获取数据后填充表的条目,请点击保存到表

依存关系

要对此表的列启用手动数据输入,请将工作模式设置为导入工作点,并将输入方法设置为手动编辑表

编程用法

模块参数:OperatingPointTable
类型:字符串
值:用引号引起来的元胞数组
默认值:"{'Indicies','[1 2 3]';'Times (sec)','[0 1 2]';'SystemInput_1','[1 1 1]';'SystemInput_2','[2 2 2]';'SystemInput_3','[3 3 3]'}"

为该模块创建的 Simulink.Bus 对象指定名称。

编程用法

模块参数:BusName
类型:字符串
值:字符串
默认值:"scdPlantOPsBusObject"

手动指定对象的总线名称。

编程用法

模块参数:SpecifyBusName
类型:字符串
值:"off" | "on"
默认值:"off"

根据仿真环境或硬件要求指定浮点精度。

编程用法

模块参数:BlockDataType
类型:字符串
值:"Double" | "Single"
默认值:"Double"

“更改工作点设置”选项卡

使用模块进行增益调度 PID 自动调节的工作流。当您启用此选项时,模块会在 start_stop 输出端口生成信号。使用 start_stop 信号通过 Closed-Loop PID Autotuner 模块启动和停止自动调节过程。生成的信号取决于附加参数,如自动调节方法和稳态设置。

依存关系

要启用此参数,请将工作模式设置为导入工作点

编程用法

模块参数:UseAutotuning
类型:字符串
值:"off" | "on"
默认值:"on"

指定启动 PID 自动调节的方法。

  • 外部时间向量 - 使用自动调节时间输入端口指定时间向量。此向量的每个索引的值都是在该索引处的工作点的自动调节启动时间。使用自动调节时间跨度(秒) 参数指定试验的持续时间。

  • 达到稳态后时间 - 当模型输出达到稳态时启动自动调节。使用稳定时间上界稳定时间下界稳定时间间隔参数来定义每个工作点的稳态标准。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并选择使用模块进行自动调节

编程用法

模块参数:AutotuningTriggerMethod
类型:字符串
值:"External time vector" | "Time after reaching steady-state"
默认值:"External time vector"

启用自动调节输入端口添加到模块中。使用此端口可手动指定标量标志以启用 (1) 或禁用 (0) 自动调节过程。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并选择使用模块进行自动调节

编程用法

模块参数:AddEnableDisableAutotuning
类型:字符串
值:"off" | "on"
默认值:"on"

指定自动调节试验的持续时间。您必须让试验运行足够长的时间,以便算法收集足够的数据来很好地估计被控对象的频率响应。试验运行时间不足可能导致结果不准确。有关详细信息,请查看 Closed-Loop PID Autotuner 模块的启动/停止输入端口。

  • 要对所有工作点运行持续时间相同的自动调节试验,请指定正标量值。

  • 要为每个工作点运行不同持续时间的试验,请指定正值向量。每个持续时间值对应于该向量的对应索引处的工作点。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并选择使用模块进行自动调节

编程用法

模块参数:AutotuningExperimentLength
类型:字符串
值:用引号引起来的正标量或向量
默认值:"10"

指定在模型达到稳态后模块延迟启动自动调节过程的采样数。

依存关系

要启用此参数,请使用以下配置。

  • 工作模式设置为导入工作点

  • 选择使用模块进行自动调节

  • 启动自动调节的方法设置为达到稳态后时间

编程用法

模块参数:NumAutotuningDelaySamples
类型:字符串
值:用引号引起来的正标量
默认值:"2"

指定工作点过渡方法。

  • 内部时间向量(来自工作点表) - 根据工作点数据的时间向量中的值更改工作点。

  • 达到稳态后时间 - 在模型输出达到为该工作点定义的稳态条件后更改工作点。

  • 完成自动调节后时间 - 在该工作点的自动调节时间跨度过后更改工作点。

  • 外部触发器 - 根据在下一运算模块输入端口上指定的自定义逻辑更改工作点。

依存关系

要启用此参数,请将工作模式设置为导入工作点

编程用法

模块参数:TransitionMethod
类型:字符串
值:"Internal time vector (from operating point table)" | "Time after reaching steady-state" | "Time after completing autotuning" | "External trigger"
默认值:"Internal time vector (from operating point table)"

指定从一个工作点过渡到另一个工作点的算法。

  • 阶跃 - 使用阶跃信号在两个工作级别之间切换。

  • 斜坡 - 在两个工作级别之间使用斜坡信号作为持续上升或下降的信号。

依存关系

要启用此参数,请将工作模式设置为导入工作点

编程用法

模块参数:ChangeOPAlgorithm
类型:字符串
值:"Step" | "Ramp"
默认值:"Step"

指定输入信号的上升沿速率的限制。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并将更改工作点算法设置为斜坡

编程用法

模块参数:RampSlewUpRate
类型:字符串
值:用引号引起来的标量或向量
默认值:"1"

指定输入信号的下降沿速率的下限。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并将更改工作点算法设置为斜坡

编程用法

模块参数:RampSlewLoRate
类型:字符串
值:用引号引起来的标量或向量
默认值:"–1"

指定模型达到稳态后模块延迟过渡到下一个工作点的采样数。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并将过渡方法设置为达到稳态后时间

编程用法

模块参数:NumTransitionDelaySamples
类型:字符串
值:用引号引起来的非负标量
默认值:"2"

指定自动调节试验完成后模块延迟过渡到下一个工作点的采样数。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并将过渡方法设置为完成自动调节后时间

编程用法

模块参数:NumSamplesAutotuningTranstion
类型:字符串
值:用引号引起来的非负标量
默认值:"2"

指定用于确定工作点的稳定时间和稳态的工作值的上界。

此向量的每个值对应于在该索引处工作点值的上界。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并将过渡方法设置为达到稳态后时间

编程用法

模块参数:SettlingTimeUpper
类型:字符串
值:用引号引起来的标量或向量
默认值:"[1.1 2.1 3.1]"

指定用于确定工作点的稳定时间和稳态的工作值的下界。

此向量的每个值对应于在该索引处工作点值的下界。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并将过渡方法设置为达到稳态后时间

编程用法

模块参数:SettlingTimeLower
类型:字符串
值:用引号引起来的标量或向量
默认值:"[0.9 1.9 2.9]"

指定工况保持稳态的时间间隔。

使用向量为不同工作点指定不同的时间间隔。

依存关系

要启用此参数,请将工作模式设置为导入工作点,并将过渡方法设置为达到稳态后时间

编程用法

模块参数:SettlingTimeInterval
类型:字符串
值:用引号引起来的标量或向量
默认值:"5"

扩展功能

版本历史记录

在 R2023b 中推出