主要内容

findop

来自规格(修边)或模拟的稳态操作点

描述

例子

人事处= findop (mdlopspec中的规范返回模型的操作点opspec.通常,你在a处修剪模型稳态操作点.的仿真软件®模型必须是开放的。如果opspec是操作点规格的数组,findop返回对应操作点的数组。

例子

人事处= findop (mdlopspec参数中指定的参数值变化对模型进行修剪参数

例子

人事处= findop (___选项利用附加优化算法对模型进行裁剪选项

例子

人事处opreport) = findop (___返回一个操作点搜索报告,opreport,对于任何前面的语法。

例子

人事处= findop (mdltsnapshot利用模型初始条件对模型进行仿真,并在中指定的仿真快照时间提取操作点tsnapshot

例子

人事处= findop (mdltsnapshot参数批处理使用中指定的参数值变化来模拟模型参数. .在模拟快照时间提取操作点。

例子

全部折叠

打开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模型。

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;

对模型进行仿真,提取点的工作点05,10时间单位。

Op = findop(mdl,[0 5 10],params);

findop对每个参数值组合进行模型仿真,在指定的仿真时间提取操作点。

人事处是一个3乘5乘4的操作点对象数组。

大小(op)
Ans = 3 5 4

输入参数

全部折叠

Simulink模型名,指定为字符向量或字符串。模型必须在当前工作文件夹中或在MATLAB中®路径。

操作点规格为修边模型,指定为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中的参数值参数生成与已知状态冲突的状态opspecfindop中的规范对模型进行修剪opspec.要按从参数值派生的状态值修剪模型,请指定opspec作为对应的数组operspec对象。示例请参见参数变化的批量修剪Simulink模型

修剪选项,指定为findopOptions选项设置。

模拟快照时间,在该时间提取模型的操作点,指定为单个快照的标量或多个快照的向量。findop模拟模型并在每个快照时间为模型的状态计算一个操作点。

输出参数

全部折叠

操作点,返回为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块的支持状态。

有关操作点对象的支持状态列表,请参见操作点对象中包含的Simulink模型状态

请注意

如果块有多个命名的连续状态,为每个命名状态包含一个结构。

每个状态对象都有以下字段:

描述
Nx(只读)

块中的状态数

块路径,作为字符向量返回。

StateName

国家的名字

x

所有支持的块状态的值,作为长度向量返回Nx

Ts

每个受支持的块状态的采样时间和偏移量,作为向量返回。对于连续时间系统,Ts是零。

SampleType

状态时间速率,作为以下之一返回:

  • “CSTATE”——连续时间状态

  • “DSTATE”——离散时间状态

inReferencedModel

标志,指示块是否在引用模型中,作为以下之一返回:

  • 1块在参考模型中。

  • 0块在当前模型文件中。

描述

块状态描述,作为字符向量返回。

输入

操作点的输入级别,作为输入对象的向量返回。中的每个条目输入表示模型中一个根级导入块的输入级别。

每个输入对象都有以下字段:

描述
ν(只读)

输入块信号的个数

轮廓尺寸块的名字

PortDimensions

输入所接受的信号的维度

u

在操作点输入块输入级别,作为长度向量返回ν

描述

输入块输入描述,作为字符向量返回。

时间

计算模型中任何时变函数的时间,并作为向量返回。

版本

对象版本号

的属性人事处使用点符号或者函数。

操作点搜索报告,作为OperatingReport对象。如果人事处的数组。OperatingPoint对象,那么opreport数组是否对应OperatingReport对象。

即使使用分号抑制输出,该报告也会自动显示。要隐藏报告,请设置DisplayReport选项“关闭”

每个操作点搜索报告具有以下属性:

财产 描述
模型

模型属性值的人事处

输入

输入属性值的人事处

输出

在计算操作点的输出值。该对象包含与类相同的字段输出的属性opspec,加上yspec,即期望的输出值。

属性值的人事处加上dx,其中包含状态导数值。对于离散时间状态,dx是下一个状态值与当前状态值之间的差;也就是说,xk+ 1) -xk

时间 时间属性值的人事处
TerminationString 优化终止条件,作为字符向量返回。
OptimizationOutput

优化算法搜索结果,作为具有以下字段的结构返回:

描述
迭代

优化期间执行的迭代次数

funcCount

优化期间执行的函数计算的数量

lssteplength

直线搜索步长相对于搜索方向的大小(仅针对活动集优化算法)

stepsize

最后迭代时状态向量的位移(活动集和内点优化算法)

算法

优化算法

firstorderopt

信任域反射优化算法的一阶优化测度[]为其他算法

constrviolation

约束函数的最大值

消息

退出消息

有关优化算法的更多信息,请参阅优化工具箱™文档。

更多关于

全部折叠

稳态工作点(纵倾状态)

一个稳态操作点模型的,也称为平衡或修剪Condition,包括不随时间变化的状态变量。

一个模型可以有几个稳态操作点。例如,一个悬挂阻尼摆有两个稳态工作点,在这两个工作点上,摆的位置不随时间变化。一个稳定的稳态工作点当钟摆垂直向下悬挂时发生。当钟摆的位置略有偏移时,钟摆总是恢复平衡。换句话说,工作点的微小变化不会使系统离开平衡值附近的良好近似区域。

一个不稳定稳态工作点当钟摆指向上方时发生。只要钟摆指向完全向上,它保持平衡。然而,当钟摆稍微偏离这个位置时,它向下摆动,工作点离开平衡值附近的区域。

当使用优化搜索来计算非线性系统的工作点时,您对状态和输入水平的初始猜测必须接近所需的工作点,以确保收敛。

在对具有多个稳态工作点的模型进行线性化处理时,确定正确的工作点是非常重要的。例如,围绕稳定的稳态工作点对摆模型进行线性化会得到稳定的线性模型,而围绕不稳定的稳态工作点进行线性化则会得到不稳定的线性模型。

提示

  • 可以在模拟快照或先前计算的操作点上初始化操作点搜索initopspec

  • 使模型在工作点处线性化人事处使用线性化

算法

默认情况下,findop使用优化器graddescent-elim.若要使用不同的优化器,请更改的值OptimizerType选项使用findopOptions

findop自动设置这些Simulink模型属性进行优化:

  • BufferReuse = '了'

  • RTWInlineParameters = ' '

  • BlockReductionOpt = '了'

  • SaveFormat = ' StructureWithTime '

优化完成后,Simulink恢复原始模型属性。

选择功能

应用程序

作为一种替代findop命令,您可以通过以下方式之一找到操作点。

版本历史

之前介绍过的R2006a

全部展开

Baidu
map