findop
来自规格(修边)或模拟的稳态操作点
语法
描述
例子
修剪模型以满足国家规格
打开Simulink模型。
mdl =“watertank”;open_system (mdl)
对模型进行修剪,找到水箱液位处的稳态工作点10
.
创建默认的操作点规范对象。
opspec = operspec (mdl);
为第一个模型状态配置规范。第一个状态必须处于稳态,其下界为0
.提供一个初步的猜测2
的状态值。
opspec.States(1)。稳态= 1;opspec.States(1)。x = 2;opspec.States(1)。最小值= 0;
将第二个模型状态配置为值为的已知状态10
.
opspec.States(2)。= 1;opspec.States(2)。x = 10;
找到符合这些规范的操作点。
op = findop (mdl opspec);
操作点搜索报告:--------------------------------- opreport =模型水箱操作点搜索报告。(时变组分在t=0时的评估值)成功满足作业点规格。州 : ---------- 最小x最大dxMin dx dxMax ______ ______ ______ ______ ______ ______ ( 1) watertank / PID控制器/集成商/连续/集成商0 1.2649正0 0 0 (2)watertank /水箱系统/ H 10 10 10 0 0 0输入:没有 ---------- 输出:没有 ----------
参数变化的批量修剪Simulink模型
打开Simulink模型。
mdl =“watertank”;open_system (mdl)
不同的参数一个
而且b
在其标称值的10%以内,并创建一个3乘4的参数网格。
[A_grid, b_grid] = ndgrid (linspace (0.9 * 1.1 * 3),...linspace (0.9 * b, b 1.1 * 4));
创建一个参数结构数组,为每个参数指定名称和网格点。
参数(1)。Name =“一个”;参数(1)。价值= A_grid; params(2).Name =“b”;参数(2)。价值= b_grid;
为模型创建一个默认的操作点规范。
opspec = operspec (mdl);
使用指定的操作点规范和参数网格修剪模型。
选择= findopOptions (“DisplayReport”,“关闭”);op = findop (mdl、opspec params,选择);
人事处
对应于指定参数网格点的操作点对象的3 × 4数组。
使用指定的优化器类型修剪模型
打开Simulink模型。
mdl =“watertank”;open_system (mdl)
创建一个默认的操作点规范对象。
opspec = operspec (mdl);
创建一个选项集,将优化器类型设置为梯度下降并抑制搜索报告显示。
选择= findopOptions (“OptimizerType”,“graddescent”,“DisplayReport”,“关闭”);
使用指定的选项集修剪模型。
op = findop (mdl opspec,选择);
获取操作点搜索报告
打开Simulink模型。
mdl =“watertank”;open_system (mdl)
创建默认的操作点规范对象。
opspec = operspec (mdl);
为第一个模型状态配置规范。
opspec.States(1)。稳态= 1;opspec.States(1)。x = 2;opspec.States(1)。最小值= 0;
为第二个模型状态配置规范。
opspec.States(2)。= 1;opspec.States(2)。x = 10;
找到符合这些规范的工作点,返回工作点搜索报告。创建一个选项集以抑制搜索报告显示。
选择= findopOptions (“DisplayReport”、假);[op, opreport] = findop (mdl opspec,选择);
opreport
描述优化算法在操作点搜索结束时满足规范的程度。
opreport
opreport =模型水箱的工作点搜索报告。(时变组分在t=0时的评估值)成功满足作业点规格。州 : ---------- 最小x最大dxMin dx dxMax ______ ______ ______ ______ ______ ______ ( 1) watertank / PID控制器/集成商/连续/集成商0 1.2649正0 0 0 (2)watertank /水箱系统/ H 10 10 10 0 0 0输入:没有 ---------- 输出:没有 ----------
dx
是每个状态的时间导数。因为所有的dx
值为零时,工作点处于稳态。
在模拟快照中提取操作点
打开Simulink模型。
mdl =“magball”;open_system (mdl)
对模型进行仿真,提取点的工作点10
而且20.
时间单位。
op = findop (mdl(10、20));
人事处
是工作点的列向量,每个快照时间有一个元素。
显示第一个操作点。
op (1)
ans =模型磁球的操作点。状态:---------- x __________(1)磁球/控制器/PID控制器/滤波器/Cont。过滤器/过滤器5.4732e-07(2.)磁球/控制器/PID控制器/积分器/连续/积分器14.0071(3.)磁球/磁球装置/电流7.0036(4.)磁球/磁球装置/dhdt 8.443e-08(5.)磁球/磁球装置/高度0.05输入:无----------
在模拟快照中改变参数并提取操作点
打开仿真软件模型。
mdl =“watertank”;open_system (mdl)
指定参数值。参数网格是5乘4的数组。
[A_grid, b_grid] = ndgrid (linspace (0.9 * 1.1 * 5),...linspace (0.9 * b, b 1.1 * 4));参数(1)。Name =“一个”;参数(1)。价值= A_grid; params(2).Name =“b”;参数(2)。价值= b_grid;
对模型进行仿真,提取点的工作点0
,5
,10
时间单位。
Op = findop(mdl,[0 5 10],params);
findop
对每个参数值组合进行模型仿真,在指定的仿真时间提取操作点。
人事处
是一个3乘5乘4的操作点对象数组。
大小(op)
Ans = 3 5 4
输入参数
mdl
- - - - - -仿真软件模型名称
特征向量|字符串
Simulink模型名,指定为字符向量或字符串。模型必须在当前工作文件夹中或在MATLAB中®路径。
opspec
- - - - - -操作点规范
OperatingSpec
对象|的数组OperatingSpec
对象
操作点规格为修边模型,指定为OperatingSpec
对象或的数组OperatingSpec
创建的对象。operspec
函数。
如果opspec
是一个数组,findop
使用单个模型编译返回对应操作点的数组。
参数
- - - - - -参数样本
结构|结构数组
用于修整的参数样本,指定为以下之一:
结构——通过指定来改变单个参数的值
参数
作为具有以下字段的结构:的名字
—参数名称,以字符向量或字符串形式指定。您可以指定模型工作区、MATLAB工作区或数据字典中的变量的任何模型参数。如果模型使用的变量不是标量变量,则将参数名称指定为解析为数值标量值的表达式。例如,要使用vector的第一个元素V
作为参数,使用:参数。Name =“V(1)”;
价值
-参数样本值,指定为双数组。
例如,改变parameter的值
一个
在10%范围内:参数。Name =“一个”;参数。价值= linspace(0.9*A,1.1*A,3);
结构数组-改变多个参数的值。例如,改变参数的值
一个
而且b
在10%范围内:[A_grid, b_grid] = ndgrid (linspace (0.9 * 1.1 * 3),...linspace (0.9 * b, b 1.1 * 3));参数(1)。Name =“一个”;参数(1)。价值= A_grid; params(2).Name =“b”;参数(2)。价值= b_grid;
当指定参数值变化时,findop
批处理为每个参数值组合修剪模型,并返回对应的操作点数组。如果参数
只指定可调参数,然后软件批处理使用单个编译修剪模型。
如果您指定opspec
作为一个单独的operspec
中的参数值参数
生成与已知状态冲突的状态opspec
,findop
中的规范对模型进行修剪opspec
.要按从参数值派生的状态值修剪模型,请指定opspec
作为对应的数组operspec
对象。示例请参见参数变化的批量修剪Simulink模型.
选项
- - - - - -调整选项
findopOptions
选项设置
修剪选项,指定为findopOptions
选项设置。
tsnapshot
- - - - - -模拟快照时间
标量|向量
模拟快照时间,在该时间提取模型的操作点,指定为单个快照的标量或多个快照的向量。findop
模拟模型并在每个快照时间为模型的状态计算一个操作点。
输出参数
人事处
——操作点
OperatingPoint
对象|数组OperatingPoint
对象
操作点,返回为OperatingPoint
对象或的数组OperatingPoint
对象。的尺寸人事处
取决于指定的参数变化和操作点规格或模拟快照时间。
参数变化 | 为…找到操作点 | 结果人事处 维 |
---|---|---|
没有参数变化 | 单操作点规范,由opspec |
单一操作点对象 |
单快照时间,由tsnapshot |
||
N1——- - - - - -... ——- - - - - -N米操作点规范的数组,由opspec |
N1——- - - - - -... ——- - - - - -N米 |
|
N年代指定的快照,tsnapshot |
长度列向量N年代 | |
N1——- - - - - -... ——- - - - - -N米参数网格,由参数 |
单操作点规范,由opspec |
N1——- - - - - -... ——- - - - - -N米 |
单快照时间,由tsnapshot |
||
N1——- - - - - -... ——- - - - - -N米操作点规范的数组,由opspec |
||
N年代指定的快照,tsnapshot |
N年代——- - - - - -N1——- - - - - -... ——- - - - - -N米. |
例如,假设:
opspec
单个操作点规范对象和参数
指定3 × 4 × 2参数网格。在这种情况下,人事处
是一个3乘4乘2的操作点数组。tsnapshot
是一个标量参数
指定一个5乘6的参数网格。在这种情况下,人事处
是操作点的1 × 5 × 6数组。tsnapshot
是包含三个元素和的行向量吗参数
指定一个5乘6的参数网格。在这种情况下,人事处
是一个3乘5乘6的操作点数组。
每个操作点对象具有以下属性:
财产 | 描述 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
模型 |
Simulink模型名,作为字符向量返回。 | ||||||||||||||||||
州 |
状态操作点,作为状态对象的向量返回。中的每个条目 有关操作点对象的支持状态列表,请参见操作点对象中包含的Simulink模型状态. 请注意 如果块有多个命名的连续状态, 每个状态对象都有以下字段:
|
||||||||||||||||||
输入 |
操作点的输入级别,作为输入对象的向量返回。中的每个条目 每个输入对象都有以下字段:
|
||||||||||||||||||
时间 |
计算模型中任何时变函数的时间,并作为向量返回。 |
||||||||||||||||||
版本 |
对象版本号 |
的属性人事处
使用点符号或者集
函数。
opreport
-操作点搜索报告
OperatingReport
对象|数组OperatingReport
对象
操作点搜索报告,作为OperatingReport
对象。如果人事处
的数组。OperatingPoint
对象,那么opreport
数组是否对应OperatingReport
对象。
即使使用分号抑制输出,该报告也会自动显示。要隐藏报告,请设置DisplayReport
场选项
来“关闭”
.
每个操作点搜索报告具有以下属性:
财产 | 描述 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
模型 |
|
||||||||||||||||||
输入 |
|
||||||||||||||||||
输出 |
在计算操作点的输出值。该对象包含与类相同的字段 |
||||||||||||||||||
州 |
|
||||||||||||||||||
时间 |
时间 属性值的人事处 |
||||||||||||||||||
TerminationString |
优化终止条件,作为字符向量返回。 | ||||||||||||||||||
OptimizationOutput |
优化算法搜索结果,作为具有以下字段的结构返回:
有关优化算法的更多信息,请参阅优化工具箱™文档。 |
更多关于
稳态工作点(纵倾状态)
一个稳态操作点模型的,也称为平衡或修剪Condition,包括不随时间变化的状态变量。
一个模型可以有几个稳态操作点。例如,一个悬挂阻尼摆有两个稳态工作点,在这两个工作点上,摆的位置不随时间变化。一个稳定的稳态工作点当钟摆垂直向下悬挂时发生。当钟摆的位置略有偏移时,钟摆总是恢复平衡。换句话说,工作点的微小变化不会使系统离开平衡值附近的良好近似区域。
一个不稳定稳态工作点当钟摆指向上方时发生。只要钟摆指向完全向上,它保持平衡。然而,当钟摆稍微偏离这个位置时,它向下摆动,工作点离开平衡值附近的区域。
当使用优化搜索来计算非线性系统的工作点时,您对状态和输入水平的初始猜测必须接近所需的工作点,以确保收敛。
在对具有多个稳态工作点的模型进行线性化处理时,确定正确的工作点是非常重要的。例如,围绕稳定的稳态工作点对摆模型进行线性化会得到稳定的线性模型,而围绕不稳定的稳态工作点进行线性化则会得到不稳定的线性模型。
提示
可以在模拟快照或先前计算的操作点上初始化操作点搜索
initopspec
.
算法
默认情况下,findop
使用优化器graddescent-elim
.若要使用不同的优化器,请更改的值OptimizerType
在选项
使用findopOptions
.
findop
自动设置这些Simulink模型属性进行优化:
BufferReuse = '了'
RTWInlineParameters = ' '
BlockReductionOpt = '了'
SaveFormat = ' StructureWithTime '
优化完成后,Simulink恢复原始模型属性。
选择功能
应用程序
作为一种替代findop
命令,您可以通过以下方式之一找到操作点。
方法计算操作点稳态经理.示例请参见使用稳态管理器从规格计算工作点.
如果您正在计算一个操作点以进行线性化,您可以找到操作点并使用模型线性化电路.示例请参见使用模型线性化器从规格中计算工作点.
版本历史
之前介绍过的R2006aR2021b:PortWidth
操作点输入和输出的属性将被删除
输入和输出PortWidth
操作点和操作点搜索报告的属性将在未来的版本中删除。使用新的ν
而且纽约
属性来代替。
的实例以更新代码PortWidth
要么ν
或纽约
如下表所示。
不推荐 | 推荐 |
---|---|
(op、报告)= findop (scdplane, 10);numOut = op.Outputs (1) .PortWidth;numIn = report.Inputs (1) .PortWidth; |
(op、报告)= findop (scdplane, 10);numOut = op.Outputs (1) . ny;numIn = report.Inputs (1) .Nu; |
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。