Change Operating Points
库:
Simulink Control Design /
Autotuning
描述
Change Operating Points 模块允许您在仿真期间管理和切换工作点。您可以在以下配置之一中使用该模块:
从工作区导入预定义的工作数据,并在仿真期间在工作范围之间切换。
在仿真期间在指定的时间或事件处自动创建快照,以获取指定范围内的工作点数据。例如,对于电机模型,您可以在以下位置创建快照:
3 秒、5 秒和 7 秒处(基于时间)。
2000、5000 和 8000 rpm 处(基于事件)。
当您有预定义的工作点数据时,您可以在增益调度控制器调节工作流中使用此模块。此模块有助于生成参考信号,后者可将您的被控对象从一个工作点移至另一个工作点。否则,您需要先创建工作点的快照,然后将数据用于增益调度工作流。
通常,调节增益调度控制器是一个复杂的过程。它要求您在每个工作点运行多个仿真进行调节,并提供逻辑来存储在该工作点处的 PID 增益。将此模块与 PID Gains Store and Update 和 PID Gain Scheduler 模块结合使用,可帮助您在单次运行中实现在一个工作范围内自动调节增益调度 PID 控制器的简化工作流。为此,请使用以下工作流。
在仿真期间,使用 Change Operating Points 模块在预定义的工作点数据或快照工作点数据之间切换。
使用 Closed-Loop PID Autotuner 模块在工作点处执行自动调节。
使用 PID Gains Store and Update 模块将对应于工作点的 PID 增益存储在一个数组中。
使用 PID Gain Scheduler 模块从数组中执行基于查找表的增益调度。
从更高层面而言,您可以使用这些模块来实现增益调度工作流,如下图所示。
端口
输入
systeminputs_in — 系统输入
数组
指定工作点上的输入电平的值。
当模块在快照模式下运行时,模块直接将此输入传递给 systeminputs_out 端口。
enable/disable — 启用和禁用更改工作点
标量
指定一个信号以启用 (1
) 或禁用 (0
) 模块操作。
autotuning times — 用于启动自动调节的时间向量
向量
指定用于启动自动调节的时间向量。此向量的每个索引的值都是在该索引处的工作点的自动调节启动时间。使用自动调节时间跨度(秒) 参数指定试验的持续时间。
依存关系
要启用此端口,请使用以下配置。
将工作模式设置为导入工作点。
选择使用模块进行自动调节。
将启动自动调节的方法设置为外部时间向量。
next OP — 下一个工作点
标量
指定自定义逻辑以切换到下一个工作点。
依存关系
要启用此端口,请使用以下配置。
将工作模式设置为导入工作点。
将过渡方法设置为外部触发器。
y — 被控对象输出
标量 | 向量
将您的被控对象的输出连接到此端口。该模块使用此信号确定系统的当前运行状态。
依存关系
要启用此端口,请使用以下配置。
将工作模式设置为导入工作点。
选择使用模块进行自动调节。
将启动自动调节的方法设置为达到稳态后时间。
enable autotuning — 启用或禁用自动调节
标量
使用此端口可手动指定标量标志以启用 (1
) 或禁用 (0
) 自动调节过程。
依存关系
要启用此端口,请使用以下配置。
将工作模式设置为导入工作点。
选择使用模块进行自动调节和为自动调节添加启用/禁用端口。
snapshot trigger — 快照触发器
向量
指定要提取模型工作点的基于时间或基于事件的快照触发器。
当快照模式为基于时间时,指定您要为其创建工作点数据快照的时间值。例如,要在 3 秒、5 秒和 7 秒处创建快照,请使用向量 [3,5,7]
作为此端口的输入。
当快照模式为基于事件时,该模块在输入信号的上升沿创建工作点数据的快照。
依存关系
要启用此端口,请将工作模式设置为创建工作点快照,并使用以下配置之一。
将快照模式设置为基于时间,并选择使用外部源。
将快照模式设置为基于事件。
输出
systeminputs_out — 工作点输出
总线
将系统移至切换的工作点的参考信号。
start_stop — 启动和停止自动调节的信号
标量
使用 Closed-Loop PID Autotuner 模块启动和停止自动调节过程的信号。生成的信号取决于附加参数,如自动调节方法和稳态设置。
依存关系
要启用此端口,请将工作模式设置为导入工作点,并选择使用模块进行自动调节。
参数
“导入工作点”选项卡
工作模式 — 工作点数据的模式
导入工作点 (默认) | 创建工作点快照
指定获取工作点数据的模式。
导入工作点 - 通过在模块对话框中手动编辑表或导入
OperatingPoint
对象来指定预定义的工作点数据。在此模式下,您可以使用模块来实现在一个工作范围内自动调节增益调度 PID 控制器的简化工作流。
创建工作点快照 - 在仿真期间在指定的时间或事件处创建工作点快照。
编程用法
模块参数:OperatingMode |
类型:字符串 |
值:"Import operating points" | "Snapshot operating points" |
默认值:"Import operating points" |
输入方法 — 工作点数据的输入方法
手动编辑表 (默认) | 自动填充表
输入的数目 — 模型输入的数目
3
(默认) | 正标量
指定模型中输入的数目。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并将输入方法设置为手动编辑表。
编程用法
模块参数:NumSystemInputs |
类型:字符串 |
值:用引号引起来的正标量 |
默认值:"3" |
工作区 — 要导入工作点数据的工作区
基础工作区 (默认) | 模型工作区 | 数据字典
指定要从中导入工作点数据的工作区。指定的工作区必须包含与工作点变量中的值同名的 OperatingPoint
对象。
基础工作区 - 从 MATLAB® 基础工作区导入数据。
模型工作区 - 从当前模型工作区中导入数据。
数据字典 - 从 Simulink® 数据字典中导入数据。
此外,要在快照模式下导入模块生成的工作点数据,请点击保存到工作区按钮,并指定工作点结构体的名称。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并将输入方法设置为自动填充表。
编程用法
模块参数:ImportWorkspace |
类型:字符串 |
值:"Data dictionary" | "Base workspace" | "Model workspace" |
默认值:"Data dictionary" |
数据字典名称 — 数据字典名称
myDataDictionary.sldd
(默认) | 字符串
指定要从中读取工作点数据的数据字典的名称。OperatingPoint
对象必须存储在字典的 Other Data
分区中。有关详细信息,请参阅什么是数据字典?。
依存关系
要启用此参数,请设置以下参数。
将工作模式设置为导入工作点
将输入方法设置为自动填充表
将工作区设置为数据字典
编程用法
模块参数:DataDictionaryName |
类型:字符串 |
默认值:"myDataDictionary.sldd" |
工作点变量 — 工作点变量的名称
myOperatingPoint
(默认) | 字符串
指定工作点变量的名称。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并将输入方法设置为自动填充表。
编程用法
模块参数:OperatingPointVariable |
类型:字符串 |
默认值:"myOperatingPoint" |
快照模式 — 工作点快照模式
基于时间 (默认) | 基于事件
指定要获取工作点数据的快照模式。
依存关系
要启用此参数,请将工作模式设置为创建工作点快照。
编程用法
模块参数:SnapshotMode |
类型:字符串 |
值:"Time-based" | "Event-based" |
默认值:"Time-based" |
快照时间(秒) — 仿真快照时间
[0 1 2]
(默认) | 标量 | 向量
指定要提取模型工作点的仿真快照时间。对单个快照使用标量,对多个快照使用向量。
依存关系
要启用此参数,请将工作模式设置为创建工作点快照,将快照模式设置为基于时间。
编程用法
模块参数:SnapshotTimes |
类型:字符串 |
值:用引号引起来的标量或向量 |
默认值:"[1 2 3]" |
使用外部源 — 对快照时间使用输入端口
off
(默认) | on
将仿真快照时间指定为模块输入。
依存关系
要启用此参数,请将工作模式设置为创建工作点快照,将快照模式设置为基于时间。
编程用法
模块参数:SnapshotTimesExternalSource |
类型:字符串 |
值:"off" | "on" |
默认值:"off" |
采样时间(-1 表示继承) — 采样时间
-1
(默认) | 正标量
指定采样时间。
依存关系
要启用此参数,请将工作模式设置为创建工作点快照,将快照模式设置为基于时间。
编程用法
模块参数: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]'}" |
总线名称 — 总线对象的名称
scdPlantOPsBusObject
(默认) | 字符串
为该模块创建的 Simulink.Bus
对象指定名称。
编程用法
模块参数:BusName |
类型:字符串 |
值:字符串 |
默认值:"scdPlantOPsBusObject" |
指定总线名称 — 指定总线名称
off
(默认) | on
手动指定对象的总线名称。
编程用法
模块参数:SpecifyBusName |
类型:字符串 |
值:"off" | "on" |
默认值:"off" |
数据类型 — 浮点精度
Double
(默认) | Single
根据仿真环境或硬件要求指定浮点精度。
编程用法
模块参数:BlockDataType |
类型:字符串 |
值:"Double" | "Single"
|
默认值:"Double" |
“更改工作点设置”选项卡
使用模块进行自动调节 — 使用模块进行 PID 自动调节的工作流
on
(默认) | off
使用模块进行增益调度 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" |
为自动调节添加启用/禁用端口 — 为自动调节添加启用/禁用端口
off
(默认) | on
将启用自动调节输入端口添加到模块中。使用此端口可手动指定标量标志以启用 (1
) 或禁用 (0
) 自动调节过程。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并选择使用模块进行自动调节。
编程用法
模块参数:AddEnableDisableAutotuning |
类型:字符串 |
值:"off" | "on" |
默认值:"on" |
自动调节时间跨度(秒) — 自动调节试验持续时间
10
(默认) | 正标量 | 向量
指定自动调节试验的持续时间。您必须让试验运行足够长的时间,以便算法收集足够的数据来很好地估计被控对象的频率响应。试验运行时间不足可能导致结果不准确。有关详细信息,请查看 Closed-Loop PID Autotuner 模块的启动/停止输入端口。
要对所有工作点运行持续时间相同的自动调节试验,请指定正标量值。
要为每个工作点运行不同持续时间的试验,请指定正值向量。每个持续时间值对应于该向量的对应索引处的工作点。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并选择使用模块进行自动调节。
编程用法
模块参数:AutotuningExperimentLength |
类型:字符串 |
值:用引号引起来的正标量或向量 |
默认值:"10" |
达到稳态后开始自动调节所需的采样数 — 启动自动调节的延迟
2
(默认) | 正标量
指定在模型达到稳态后模块延迟启动自动调节过程的采样数。
依存关系
要启用此参数,请使用以下配置。
将工作模式设置为导入工作点。
选择使用模块进行自动调节。
将启动自动调节的方法设置为达到稳态后时间。
编程用法
模块参数: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" |
上升沿压摆率(/秒) — 递增输入的导数的限制
1
(默认) | 标量 | 向量
指定输入信号的上升沿速率的限制。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并将更改工作点算法设置为斜坡。
编程用法
模块参数:RampSlewUpRate |
类型:字符串 |
值:用引号引起来的标量或向量 |
默认值:"1" |
下降沿压摆率(/秒) — 递减输入的导数的限制
-1
(默认) | 标量 | 向量
指定输入信号的下降沿速率的下限。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并将更改工作点算法设置为斜坡。
编程用法
模块参数:RampSlewLoRate |
类型:字符串 |
值:用引号引起来的标量或向量 |
默认值:"–1" |
达到稳态后过渡采样数 — 过渡工作点的延迟
2
(默认) | 非负标量
指定模型达到稳态后模块延迟过渡到下一个工作点的采样数。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并将过渡方法设置为达到稳态后时间。
编程用法
模块参数:NumTransitionDelaySamples |
类型:字符串 |
值:用引号引起来的非负标量 |
默认值:"2" |
完成自动调节后过渡采样数 — 过渡工作点的延迟
2
(默认) | 非负标量
指定自动调节试验完成后模块延迟过渡到下一个工作点的采样数。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并将过渡方法设置为完成自动调节后时间。
编程用法
模块参数:NumSamplesAutotuningTranstion |
类型:字符串 |
值:用引号引起来的非负标量 |
默认值:"2" |
稳定时间上界 — 稳定时间的上界
[1.1 2.1 3.1]
(默认) | 向量
指定用于确定工作点的稳定时间和稳态的工作值的上界。
此向量的每个值对应于在该索引处工作点值的上界。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并将过渡方法设置为达到稳态后时间。
编程用法
模块参数:SettlingTimeUpper |
类型:字符串 |
值:用引号引起来的标量或向量 |
默认值:"[1.1 2.1 3.1]" |
稳定时间下界 — 稳定时间的下界
[0.9 1.9 2.9]
(默认) | 向量
指定用于确定工作点的稳定时间和稳态的工作值的下界。
此向量的每个值对应于在该索引处工作点值的下界。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并将过渡方法设置为达到稳态后时间。
编程用法
模块参数:SettlingTimeLower |
类型:字符串 |
值:用引号引起来的标量或向量 |
默认值:"[0.9 1.9 2.9]" |
稳定时间间隔 — 稳定时间间隔
5
(默认) | 标量 | 向量
指定工况保持稳态的时间间隔。
使用向量为不同工作点指定不同的时间间隔。
依存关系
要启用此参数,请将工作模式设置为导入工作点,并将过渡方法设置为达到稳态后时间。
编程用法
模块参数:SettlingTimeInterval |
类型:字符串 |
值:用引号引起来的标量或向量 |
默认值:"5" |
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
仅当工作模式为导入工作点时,Change Operating Points 模块才支持代码生成。
版本历史记录
在 R2023b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)