主要内容

operspec

操作点规范

描述

例子

opspec= operspec (mdl返回Simulink的默认操作点规范对象万博1manbetx®模型mdl.使用opspec用于稳态工作点微调使用findop

例子

opspec= operspec (mdl昏暗的返回具有指定尺寸的默认操作点规范对象数组,昏暗的

例子

全部折叠

打开仿真软万博1manbetx件模型。

sys =“watertank”;open_system(系统)

为模型创建默认的操作点规范对象。

opspec = operspec(系统)
该型水箱的工作点规范。(时变元件在t=0时的评估)状态:----------(1)水箱/PID控制器/积分器/连续/积分器规格:dx =0,初始猜测:0(2)水箱/水箱系统/H规格:dx =0,初始猜测:1输入:无----------输出:无----------

opspec包含模型中两种状态的规范。由于模型没有根级导入或导出,opspec不包含输入或输出规范。若要添加输出规格,请使用addoutputspec

使用点表示法修改每个状态的操作点规范。例如,配置第一个状态为:

  • 处于稳定状态。

  • 有一个下限0

  • 初始值为2修剪。

opspec.States(1)。稳态= 1;opspec.States(1)方式=2;opspec.States(1)。最小值= 0;

你可以创建新的operspec变量有三种方式:

  • 使用operspec命令

  • 使用赋值和等号()操作符

  • 使用复制命令

使用运算符的结果是链接的变量,它们都指向相同的底层数据。使用复制命令导致独立operspec对象。在本例中,创建operspec对象的两种方式,并检查它们的行为。

mdl =“watertank”;open_system (mdl);opspec1 = operspec (mdl)
该型水箱的工作点规范。(时变元件在t=0时的评估)状态:----------(1)水箱/PID控制器/积分器/连续/积分器规格:dx =0,初始猜测:0(2)水箱/水箱系统/H规格:dx =0,初始猜测:1输入:无----------输出:无----------

类的赋值方法创建一个新的操作点规范对象操作符。

opspec2 = opspec1;

opspec2是一个operspec对象,该对象指向相同的底层数据opspec1.由于这个链接,您不能独立地更改两者的属性operspec对象。要看到这一点,请更改的属性opspec2.例如,将第一个状态的初始值从0更改为2。变化表现在显示的部分。

opspec2.States(1)。x = 2
该型水箱的工作点规范。(时变元件在t=0时的评估)状态:----------(1)水箱/PID控制器/积分器/连续/积分器规格:dx =0,初始猜测:2(2)水箱/水箱系统/H规格:dx =0,初始猜测:1输入:无----------输出:无----------

检查的显示opspec1看对应的属性值opspec1也从0变为2。

opspec1
该型水箱的工作点规范。(时变元件在t=0时的评估)状态:----------(1)水箱/PID控制器/积分器/连续/积分器规格:dx =0,初始猜测:2(2)水箱/水箱系统/H规格:dx =0,初始猜测:1输入:无----------输出:无----------

要创建操作点规范的独立副本,请使用复制命令。

opspec3 = (opspec1)复印件;

现在,当你改变的属性时opspec3opspec1不会改变。例如,将第一个状态的初始值从2更改为4。

opspec3.States(1)。x = 4
该型水箱的工作点规范。(时变元件在t=0时的评估)状态:----------(1)水箱/PID控制器/积分器/连续/积分器规格:dx =0,初始猜测:4(2)水箱/水箱系统/H规格:dx =0,初始猜测:1输入:无----------输出:无----------

opspec1,对应的值保持2。

opspec1.States(1)方式
ans = 2

发生这种复制行为是因为operspec是一个处理对象.有关句柄对象的更多信息,请参见处理对象的行为

打开仿真软万博1manbetx件模型。

sys =“watertank”;open_system(系统)

创建一个2乘3的操作点规范对象数组。您可以使用这样的阵列在多个操作点批量修剪模型。

opspec = operspec (sys,[2、3]);

的每个元素opspec包含模型的默认操作点规范对象。

使用点表示法修改操作点规范对象。例如,配置行中的规范对象的第二个状态1、列3.

opspec(1、3).States(2)。稳态= 1;opspec(1、3).States(1)。x = 2;

您还可以创建操作点规范对象的多维数组。例如,创建一个3 × 4 × 5的数组。

opspec = operspec (sys,[3、4、5]);

输入参数

全部折叠

万博1manbetxSimulink模型名,指定为字符向量或字符串。

数组尺寸,指定为以下之一:

  • Integer -创建列向量昏暗的操作点规范对象。

  • 整数的行向量——创建操作点规范对象的数组,其尺寸由昏暗的

    例如,要创建一个4乘5的操作点规范对象数组,使用:

    opspec = operspec (mdl(4、5));

    若要创建操作点规范对象的多维数组,请指定其他维度。例如,要创建一个2 × 3 × 4的数组,使用:

    opspec = operspec (mdl[2、3、4]);

输出参数

全部折叠

操作点规范,作为操作点规范对象或此类对象的数组返回。

您可以使用点表示法修改操作点规范。例如,如果opspec是单个操作点规范对象,opspec.States(1)方式访问第一个模型状态的状态值。如果opspec是规范对象的数组吗opspec(2、3).Inputs (1) .u访问行中规格的第一个输入块的输入级别2、列3.

每个规范对象都具有以下属性:

财产 描述
模型 万博1manbetxSimulink模型名,作为字符向量返回。

状态操作点规范,作为状态规范对象的向量返回。中的每个条目表示一个Simulink块的支万博1manbetx持状态。万博1manbetx

有关操作点对象的支持状态列表万博1manbetx,请参见万博1manbetx操作点对象中包含的Simulink模型状态.方法编辑此对象的属性函数。

请注意

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

每个状态规范对象具有以下字段:

描述
Nx(只读)

块中的状态数

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

StateName

国家的名字

x

所有支持的块状态的值,指定为万博1manbetx长度向量Nx

如果对应的标志在已知的领域的1x包含已知的状态值。否则,x包含对状态值的初始猜测。

Ts

(仅针对离散时间状态)每个支持块状态的采样时间和偏移量,作为向量返回。万博1manbetx

SampleType

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

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

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

inReferencedModel

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

  • 1块在参考模型中。

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

已知的

指示在修剪期间是否知道状态值的标志,指定为长度的逻辑向量Nx

  • 1-在操作点搜索过程中固定的已知值

  • 0(默认)-通过优化发现的未知值

若要在操作点搜索期间固定某个状态,请设置相应的已知的旗帜1方法指定该状态的值x的属性

稳态

标志,指示在修剪过程中输出值是否处于稳定状态,指定为长度的逻辑向量Nx

  • 1(默认)-平衡状态

  • 0——非平衡状态

最小值

状态值的最小边界,指定为长度向量Nx.缺省情况下,各状态的最小边界为

马克斯

状态值的最大边界,指定为长度向量Nx.缺省情况下,各状态的最大值为

dxMin

非稳态状态导数的最小边界,用长度向量表示Nx.默认情况下,每个状态导数的最小界为.当你指定一个导数边界时,你还必须设置稳态0

dxMax

非稳态状态导数的最大边界,用长度向量表示Nx.缺省情况下,每个状态导数的最大边界为.当你指定一个导数边界时,你还必须设置稳态0

描述

块状态描述,指定为字符向量。

输入

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

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

描述

轮廓尺寸块的名字

PortWidth

输入块信号的个数

PortDimensions

输入所接受的信号的维度

u

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

如果对应的标志在已知的领域的输入1u包含已知的输入值。否则,u包含对输入值的初始猜测。

已知的

标志,指示在修剪期间是否知道输入级别,指定为长度的逻辑向量PortWidth

  • 1-已知的输入水平,在操作点搜索时是固定的

  • 0(默认)-通过优化发现未知的输入级别

若要在操作点搜索期间固定输入级别,请设置相应的已知的旗帜1方法指定输入值u的属性输入

最小值

输入级别的最小界限,指定为长度向量PortWidth.缺省情况下,每个输入的最小界限为

马克斯

输入级别的最大界限,指定为长度向量PortWidth.缺省情况下,每个输入的最大限制为

描述

输入块输入描述,指定为字符向量。

输出

操作点的输出级规格,作为输出规格对象的向量返回。中的每个条目输出表示模型的一个根级输出端口块或模型中的一个修剪输出约束的输出级别。

可以使用命令指定额外的修剪输出约束addoutputspec

每个输出规范对象都有以下字段:

描述

外港块的名字

PortWidth

输出端口块信号的数量

PortNumber

模型中此输出端口的编号

y

在操作点的输出端口块输出级别,指定为长度向量PortWidth

如果对应的标志在已知的领域的输出1y包含已知的输出值。否则,y包含对输出值的初始猜测。

已知的

标志,指示在修剪期间是否知道输出级别,指定为长度的逻辑向量PortWidth

  • 1-已知的输出水平,在操作点搜索时是固定的

  • 0(默认)-通过优化发现未知的输出级别

若要在操作点搜索期间固定输出级别,请设置相应的已知的旗帜1参数指定输出值y的属性输出

最小值

输出级别的最小界限,指定为长度向量PortWidth.默认情况下,每个输出的最小界限为

马克斯

最大限度限制输出级别,指定为长度向量PortWidth.缺省情况下,每个输出的最大限制为

描述

输出端口块输入描述,指定为字符向量。

时间

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

CustomObjFcn

函数,该函数提供用于裁剪的附加自定义目标函数,指定为自定义函数的句柄,或包含函数名的字符向量或字符串。自定义函数必须在MATLAB上®路径或在当前工作文件夹中。

您可以将自定义目标函数指定为模型状态、输入和输出的代数组合。有关更多信息,请参见使用自定义约束和目标函数计算操作点

CustomConstrFcn

函数,该函数为修剪提供额外的自定义约束,指定为自定义函数的句柄,或包含函数名的字符向量或字符串。自定义函数必须位于MATLAB路径或当前工作文件夹中。

您可以将自定义的等式和不等式约束指定为模型状态、输入和输出的代数组合。有关更多信息,请参见使用自定义约束和目标函数计算操作点

CustomMappingFcn

将模型状态、输入和输出映射到所接受的向量的函数CustomConstrFcn而且CustomObjFcn,指定为自定义函数的句柄,或包含函数名的字符向量或字符串。自定义函数必须位于MATLAB路径或当前工作文件夹中。

对于复杂的模型,您可以使用自定义映射函数将模型输入、输出和状态的子集传递给自定义约束和目标函数。如果指定了自定义映射,则必须对自定义约束函数和自定义目标函数都使用该映射。有关更多信息,请参见使用自定义约束和目标函数计算操作点

提示

  • 若要显示操作点规格对象属性,请使用得到

  • 你可以创建新的operspec的变量有3种方式:

    • 方法构造一个新对象operspec命令。

    • 使用equals(=)操作符赋值创建一个新变量。

    • 复制一个operspec对象使用复制命令。

    使用operspec复制创建一个新的独立对象。当使用赋值时,新旧变量之间有一个链接。示例请参见复制操作点规范

之前介绍过的R2006a