findop
稳态工作点来自规范(修整)或模拟
语法
描述
例子
修剪模型,以满足国家规格
打开Simulin金宝appk模型。
mdl =“watertank”;open_system (mdl)
修剪模型以找到水箱液位所在的稳态工作点10
.
创建默认工作点规范对象。
Opspec = operspec(mdl);
为第一个模型状态配置规范。第一个状态必须处于稳定状态,其下界为0
.提供一个初步的猜测2
对于状态值。
opspec.States(1)。SteadyState = 1;opspec.States(1)。X = 2;opspec.States(1)。Min = 0;
将第二个模型状态配置为值为的已知状态10
.
opspec.States(2)。已知= 1;opspec.States(2)。X = 10;
找到符合这些规范的工作点。
Op = findop(mdl,opspec);
工作点搜索报告:--------------------------------- opreport =模型水箱工作点搜索报告。(time - varying Components evaluate at time t=0)满足工作点规格。州 : ---------- 最小x最大dxMin dx dxMax ______ ______ ______ ______ ______ ______ ( 1) watertank / PID控制器/集成商/连续/集成商0 1.2649正0 0 0 (2)watertank /水箱系统/ H 10 10 10 0 0 0输入:没有 ---------- 输出:没有 ----------
参数变化的批量修剪Si金宝appmulink模型
打开Simulin金宝appk模型。
mdl =“watertank”;open_system (mdl)
不同的参数一个
而且b
在其标称值的10%以内,并创建一个3 × 4参数网格。
[A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,3),...linspace (0.9 * b, b 1.1 * 4));
创建一个参数结构数组,为每个参数指定名称和网格点。
参数(1)。Name =“一个”;参数(1)。价值= A_grid; params(2).Name =“b”;参数(2)。价值= b_grid;
为模型创建一个默认的操作点规范。
Opspec = operspec(mdl);
使用指定的工作点规范和参数网格修整模型。
opt = findopOptions(“DisplayReport”,“关闭”);Op = findop(mdl,opspec,params,opt);
人事处
对应于指定参数网格点的操作点对象的3 × 4数组。
使用指定的优化器类型修剪模型
打开Simulin金宝appk模型。
mdl =“watertank”;open_system (mdl)
创建一个默认的工作点规范对象。
Opspec = operspec(mdl);
创建一个选项集,将优化器类型设置为梯度下降并抑制搜索报告显示。
opt = findopOptions(“OptimizerType”,“graddescent”,“DisplayReport”,“关闭”);
使用指定的选项集修剪模型。
Op = findop(mdl,opspec,opt);
获取工作点搜索报告
打开Simulin金宝appk模型。
mdl =“watertank”;open_system (mdl)
创建默认工作点规范对象。
Opspec = operspec(mdl);
为第一个模型状态配置规范。
opspec.States(1)。SteadyState = 1;opspec.States(1)。X = 2;opspec.States(1)。Min = 0;
为第二个模型状态配置规范。
opspec.States(2)。已知= 1;opspec.States(2)。X = 10;
找到符合这些规范的工作点,并返回工作点搜索报告。创建一个选项集来屏蔽搜索报告的显示。
opt = findopOptions(“DisplayReport”、假);[op,opreport] = findop(mdl,opspec,opt);
opreport
描述优化算法在操作点搜索结束时满足规范的程度。
opreport
opreport =模型水箱的工作点搜索报告。(time - varying Components evaluate at time 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
数值为零时,工作点处于稳态。
在模拟快照中提取工作点
打开Simulin金宝appk模型。
mdl =“magball”;open_system (mdl)
对模型进行仿真,在10
而且20.
时间单位。
Op = findop(mdl,[10,20]);
人事处
是工作点的列向量,每个快照时间有一个元素。
显示第一个工作点。
op (1)
ans =模型磁力球的工作点。(时间t=10时的时变分量)状态:---------- x __________(1.)磁球/控制器/PID控制器/滤波器/控制。滤波器/滤波器5.4732e-07(2.)磁球/控制器/PID控制器/积分器/连续/积分器14.0071(3.)磁球/磁球装置/电流7.0036(4.)磁球/磁球装置/dhdt 8.443e-08(5.)磁球/磁球装置/高度0.05输入:无----------
在模拟快照中改变参数并提取工作点
打开Sim金宝appulink模型。
mdl =“watertank”;open_system (mdl)
指定参数值。参数网格是5 × 4数组。
[A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,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
- - - - - -金宝appSimulink模型名称
特征向量|字符串
金宝appSimulink模型名称,指定为字符向量或字符串。模型必须在当前工作文件夹中或MATLAB中®路径。
opspec
- - - - - -操作点规格
OperatingSpec
对象|的数组OperatingSpec
对象
切边模型的操作点规格,指定为OperatingSpec
对象的数组OperatingSpec
创建的对象。operspec
函数。
如果opspec
是一个数组,findop
使用单个模型编译返回相应工作点的数组。
参数
- - - - - -参数样本
结构|结构数组
用于修整的参数样本,指定为以下之一:
结构-通过指定改变单个参数的值
参数
作为具有以下字段的结构:的名字
—参数名称,以字符向量或字符串形式指定。您可以在模型工作空间、MATLAB工作空间或数据字典中指定任何变量的模型参数。如果模型使用的变量不是标量变量,则将参数名称指定为解析为数值标量值的表达式。例如,使用向量的第一个元素V
作为参数,使用:参数。Name =“V(1)”;
价值
-参数样例值,指定为双数组。
例如,改变参数的值
一个
在10%范围内:参数。Name =“一个”;参数。价值= linspace(0.9*A,1.1*A,3);
结构数组-改变多个参数的值。例如,改变参数的值
一个
而且b
在10%范围内:[A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,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
对象。有关示例,请参见参数变化的批量修剪Si金宝appmulink模型.
选项
- - - - - -调整选项
findopOptions
选项设置
修剪选项,指定为findopOptions
选项设置。
tsnapshot
- - - - - -模拟快照时间
标量|向量
模拟快照时间,用于提取模型的工作点,为单个快照指定为标量,为多个快照指定为矢量。findop
模拟模型,并在每个快照时间计算模型状态的操作点。
输出参数
人事处
-工作点
OperatingPoint
对象|的数组OperatingPoint
对象
操作点,返回为OperatingPoint
对象的数组OperatingPoint
对象。的维度人事处
取决于指定的参数变化和操作点规格或模拟快照时间。
参数变化 | 为…找到操作点 | 结果人事处 维 |
---|---|---|
无参数变化 | 单个操作点规范,由opspec |
单个操作点对象 |
单个快照时间,由tsnapshot |
||
N1——- - - - - -... ——- - - - - -N米操作点规范数组,由opspec |
N1——- - - - - -... ——- - - - - -N米 |
|
N年代快照,由tsnapshot |
长度列向量N年代 | |
N1——- - - - - -... ——- - - - - -N米参数grid,由参数 |
单个操作点规范,由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的工作点数组。
每个操作点对象具有以下属性:
财产 | 描述 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
模型 |
金宝appSimulink模型名称,作为字符向量返回。 | ||||||||||||||||||
州 |
状态工作点,作为状态对象的向量返回。每一项 有关操作点对象支持的状态列表金宝app,请参见金宝app包含在工作点对象中的Simulink模型状态. 请注意 如果块有多个命名的连续状态, 每个状态对象都有以下字段:
|
||||||||||||||||||
输入 |
在操作点处的输入电平,作为输入对象的矢量返回。每一项 每个输入对象都有以下字段:
|
||||||||||||||||||
时间 |
模型中任何时变函数被求值的时间,作为向量返回。 |
||||||||||||||||||
版本 |
对象版本号 |
的属性人事处
使用点符号或集
函数。
opreport
-工作点搜索报告
OperatingReport
对象|的数组OperatingReport
对象
操作点搜索报告,返回为OperatingReport
对象。如果人事处
的数组。OperatingPoint
对象,那么opreport
数组是否对应OperatingReport
对象。
即使您使用分号禁止输出,该报告也会自动显示。要隐藏报表,请设置DisplayReport
场选项
来“关闭”
.
每个工作点搜索报告具有以下属性:
财产 | 描述 | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
模型 |
|
||||||||||||||||||
输入 |
|
||||||||||||||||||
输出 |
在计算的工作点输出值。对象包含的字段与 |
||||||||||||||||||
州 |
|
||||||||||||||||||
时间 |
时间 物业价值人事处 |
||||||||||||||||||
TerminationString |
优化终止条件,作为字符向量返回。 | ||||||||||||||||||
OptimizationOutput |
优化算法搜索结果,以结构形式返回,包含以下字段:
有关优化算法的更多信息,请参阅优化工具箱™文档。 |
更多关于
稳态工作点(整流状态)
一个稳态工作点一个模型,也称为均衡或修剪条件,包括不随时间变化的状态变量。
一个模型可以有几个稳态工作点。例如,悬挂阻尼摆有两个稳态工作点,在这两个工作点上,摆的位置不随时间变化。一个稳定的稳态工作点当钟摆垂直向下悬挂时发生。当钟摆位置稍有偏离时,钟摆总能恢复平衡。换句话说,工作点的微小变化不会导致系统离开平衡值附近的良好近似区域。
一个不稳定稳态工作点当钟摆指向上方时发生。只要钟摆指向完全向上,它保持平衡。然而,当钟摆稍微偏离这个位置时,它就会向下摆动,工作点就会离开平衡值附近的区域。
当使用优化搜索来计算非线性系统的工作点时,您对状态和输入水平的初始猜测必须接近所需的工作点,以确保收敛。
在线性化具有多个稳态工作点的模型时,确定正确的工作点是非常重要的。例如,围绕稳定的稳态工作点线性化一个摆模型会得到一个稳定的线性模型,而围绕不稳定的稳态工作点线性化则会得到一个不稳定的线性模型。
提示
可以在模拟快照或以前计算的工作点上初始化工作点搜索
initopspec
.
算法
默认情况下,findop
使用优化器graddescent-elim
.要使用不同的优化器,请更改的值OptimizerType
在选项
使用findopOptions
.
findop
自动设置这些Simulink模型属性以进行优化:金宝app
BufferReuse = 'off'
RTWInlineParameters = 'on'
BlockReductionOpt = 'off'
保存格式= 'StructureWithTime'
优化完成后,Simulink恢复原始模型属性。金宝app
选择功能
应用程序
作为一种替代findop
命令时,您可以通过以下方式之一找到工作点。
计算工作点使用稳态管理器.有关示例,请参见使用稳态管理器从规格中计算工作点.
方法计算线性化的工作点,可以找到工作点并对模型线性化模型线性化电路.有关示例,请参见使用模型线性器根据规格计算工作点.
版本历史
R2006a之前介绍R2021b:PortWidth
属性的工作点输入和输出将被删除
输入和输出PortWidth
在未来的版本中,操作点和操作点搜索报告的属性将被删除。使用新的ν
而且纽约
属性来代替。
的实例来更新代码PortWidth
要么ν
或纽约
如下表所示。
不推荐 | 推荐 |
---|---|
[op,report] = findop('scdplane',10);numOut = op.Outputs(1).PortWidth;numIn = report.Inputs(1). porttwidth; |
[op,report] = findop('scdplane',10);numOut = op.Outputs(1).Ny;numIn = report.Inputs(1).Nu; |
Abrir比如
Tiene una versión modificada de este ejemplo。¿Desea abrir este ejemplo con sus modificaciones?
MATLAB突击队
Ha hecho clic en unenlace que对应一个este commando de MATLAB:
弹射突击队introduciéndolo en la ventana de commandos de MATLAB。Los navegadores web no permission comandos de MATLAB。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。