operspec

Технические требования рабочей точки

Описание

пример

opspec = operspec(mdl) возвращает объект спецификации рабочей точки по умолчанию для Simulink® модель mdl. Используйте opspec для установившегося использования обрезки рабочей точки findop.

пример

opspec = operspec(mdl,dim) возвращает массив объектов спецификации рабочей точки по умолчанию с заданными измерениями, dim.

Примеры

свернуть все

Открытая модель Simulink.

sys = 'watertank';
open_system(sys)

Создайте объект спецификации рабочей точки по умолчанию для модели.

opspec = operspec(sys)
opspec = 


 Operating point specification for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
    <strong>x</strong>    <strong>Known</strong>    <strong>SteadyState</strong>    <strong>Min</strong>     <strong>Max</strong>    <strong>dxMin</strong>    <strong>dxMax</strong>
    <strong>_</strong>    <strong>_____</strong>    <strong>___________</strong>    <strong>____</strong>    <strong>___</strong>    <strong>_____</strong>    <strong>_____</strong>

(1.) watertank/PID Controller/Integrator/Continuous/Integrator
    0    false       true        -Inf    Inf    -Inf      Inf 
(2.) watertank/Water-Tank System/H
    1    false       true           0    Inf    -Inf      Inf 

Inputs: None 
----------

Outputs: None 
----------

opspec содержит технические требования для двух состояний в модели. Поскольку модель не имеет никакого корневого импорта уровня или выходных портов, opspec не содержит технические требования ввода или вывода. Чтобы добавить выходные технические требования, используйте addoutputspec.

Измените технические требования рабочей точки для каждого состояния с помощью записи через точку. Например, сконфигурируйте первое состояние к:

  • Будьте в устойчивом состоянии.

  • Имейте нижнюю границу 0.

  • Имейте начальное значение 2 для обрезки.

opspec.States(1).SteadyState = 1;
opspec.States(1).x = 2;
opspec.States(1).Min = 0;

Можно создать новый operspec переменные тремя способами:

  • Используя operspec команда

  • Используя присвоение с равнянием (=оператор

  • Используя copy команда

Используя = оператор приводит к соединенным переменным что обе точки к тем же базовым данным. Используя copy команда приводит к независимому operspec объект. В этом примере создайте operspec объекты оба пути, и исследуют свое поведение.

mdl = 'watertank';
open_system(mdl)
opspec1 = operspec(mdl)
opspec1 = 
 Operating point specification for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
    x    Known    SteadyState    Min     Max    dxMin    dxMax
    _    _____    ___________    ____    ___    _____    _____

(1.) watertank/PID Controller/Integrator/Continuous/Integrator
    0    false       true        -Inf    Inf    -Inf      Inf 
(2.) watertank/Water-Tank System/H
    1    false       true           0    Inf    -Inf      Inf 

Inputs: None 
----------

Outputs: None 
----------

Создайте новый объект спецификации рабочей точки использование присвоения с = оператор.

opspec2 = opspec1;

opspec2 operspec возразите что точки против тех же базовых данных как opspec1. Из-за этой ссылки вы не можете независимо изменить свойства двух operspec объекты. Чтобы видеть это, измените свойство opspec2. Например, измените начальное значение для первого состояния с 0 до 2. Изменение показывает в States раздел отображения.

opspec2.States(1).x = 2
opspec2 = 
 Operating point specification for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
    x    Known    SteadyState    Min     Max    dxMin    dxMax
    _    _____    ___________    ____    ___    _____    _____

(1.) watertank/PID Controller/Integrator/Continuous/Integrator
    2    false       true        -Inf    Inf    -Inf      Inf 
(2.) watertank/Water-Tank System/H
    1    false       true           0    Inf    -Inf      Inf 

Inputs: None 
----------

Outputs: None 
----------

Исследуйте отображение opspec1 видеть что соответствующее значение свойства opspec1 также изменения от 0 до 2.

opspec1
opspec1 = 
 Operating point specification for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
    x    Known    SteadyState    Min     Max    dxMin    dxMax
    _    _____    ___________    ____    ___    _____    _____

(1.) watertank/PID Controller/Integrator/Continuous/Integrator
    2    false       true        -Inf    Inf    -Inf      Inf 
(2.) watertank/Water-Tank System/H
    1    false       true           0    Inf    -Inf      Inf 

Inputs: None 
----------

Outputs: None 
----------

Чтобы создать независимую копию спецификации рабочей точки, используйте copy команда.

opspec3 = copy(opspec1);

Теперь, когда вы изменяете свойство opspec3, opspec1 не изменяется. Например, измените начальное значение для первого состояния от 2 до 4.

opspec3.States(1).x = 4
opspec3 = 
 Operating point specification for the Model watertank.
 (Time-Varying Components Evaluated at time t=0)

States: 
----------
    x    Known    SteadyState    Min     Max    dxMin    dxMax
    _    _____    ___________    ____    ___    _____    _____

(1.) watertank/PID Controller/Integrator/Continuous/Integrator
    4    false       true        -Inf    Inf    -Inf      Inf 
(2.) watertank/Water-Tank System/H
    1    false       true           0    Inf    -Inf      Inf 

Inputs: None 
----------

Outputs: None 
----------

В opspec1, соответствующее значение остается 2.

opspec1.States(1).x
ans = 2

Это поведение копии происходит потому что operspec объект указателя. Для получения дополнительной информации об объектах указателя, смотрите Поведение объекта Указателя.

Открытая модель Simulink.

sys = 'watertank';
open_system(sys)

Создайте массив 2х3 объектов спецификации рабочей точки. Можно обработать модель для обрезки в пакетном режиме в нескольких рабочих точках с помощью таких массивов.

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

Каждый элемент opspec содержит объект спецификации рабочей точки по умолчанию для модели.

Измените объекты спецификации рабочей точки с помощью записи через точку. Например, сконфигурируйте второе состояние объекта спецификации в строке 1, столбец 3.

opspec(1,3).States(2).SteadyState = 1;
opspec(1,3).States(1).x = 2;

Можно также создать многомерные массивы объектов спецификации рабочей точки. Например, создайте 3 4 5 массивами.

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

Входные параметры

свернуть все

Имя модели Simulink в виде вектора символов или строки.

Измерения массива в виде одного из следующего:

  • Целое число — Создает вектор-столбец dim объекты спецификации рабочей точки.

  • Вектор-строка из целых чисел — Создает массив объектов спецификации рабочей точки с размерностями, заданными dim.

    Например, чтобы создать 4 5 массив объектов спецификации рабочей точки, используйте:

    opspec = operspec(mdl,[4,5]);

    Чтобы создать многомерный массив объектов спецификации рабочей точки, задайте дополнительные размерности. Например, чтобы создать массив 2 на 3 на 4, используйте:

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

Выходные аргументы

свернуть все

Технические требования рабочей точки, возвращенные как OperatingSpec возразите или массив таких объектов.

Можно изменить технические требования рабочей точки с помощью записи через точку. Например, если opspec один OperatingSpec объект, opspec.States(1).x получает доступ к значениям состояния первого состояния модели. Если opspec массив OperatingSpec объекты opspec(2,3).Inputs(1).u получает доступ к уровню на входе первого блока импорта для спецификации в строке 2, столбец 3.

Каждый OperatingSpec объект имеет следующие свойства.

СвойствоОписание
ModelИмя модели Simulink, возвращенное как вектор символов.
States

Технические требования рабочей точки состояния, возвращенные как вектор из объектов спецификации состояния. Каждая запись в States представляет поддерживаемые состояния одного блока Simulink.

Для списка поддерживаемых состояний для объектов рабочей точки смотрите состояния Модели Simulink, Включенные в Объект Рабочей точки. Отредактируйте свойства этого объекта с помощью записи через точку или set функция.

Примечание

Если блок имеет несколько именованных непрерывных состояний, States содержит одну структуру для каждого именованного состояния.

Каждый объект спецификации состояния имеет следующие поля:

Поле Описание
Nx Только для чтения

Количество состояний в блоке

Block

Блок path, возвращенный как вектор символов.

StateName

Имя состояния

x

Значения всех поддерживаемых состояний блока в виде вектора из длины Nx.

Если соответствующий флаг в Known поле States 1X содержит известные значения состояния. В противном случае, x содержит исходные предположения для значений состояния.

Ts

(Только для состояний дискретного времени) Шаг расчета и смещение каждого поддерживаемого состояния блока, возвращенного как вектор.

SampleType

Уровень времени состояния, возвращенный как одно из следующего:

  • 'CSTATE' — Состояние непрерывного времени

  • 'DSTATE' — Состояние дискретного времени

inReferencedModel

Отметьте указание, является ли блок в образце модели, возвращенном как одно из следующего:

  • 1 — Блок в образце модели.

  • 0 — Блок находится в файле текущей модели.

Known

Флаги, указывающие, известны ли значения состояния во время обрезки в виде логического вектора из длины Nx.

  • 1 — Известное значение, которое фиксируется во время поиска рабочей точки

  • 0 (значение по умолчанию) — Неизвестное значение найдено оптимизацией

Чтобы зафиксировать состояние во время поиска рабочей точки, установите соответствующий Known отметьте к 1, и задайте значение для того состояния с помощью x свойство States.

SteadyState

Флаги, указывающие, является ли выходными значениями в устойчивом состоянии во время обрезки в виде логического вектора из длины Nx.

  • 1 (значение по умолчанию) — Состояние равновесия

  • 0 — Неравновесное состояние

Min

Минимальные границы на значениях состояния в виде вектора из длины Nx. По умолчанию минимумом, направляющимся в каждое состояние, является -Inf.

Max

Максимальные границы на значениях состояния в виде вектора из длины Nx. По умолчанию максимумом, направляющимся в каждое состояние, является Inf.

dxMin

Минимальные границы на производных состояния, которые не являются в установившемся в виде вектора из длины Nx. По умолчанию минимумом, направляющимся в каждую производную состояния, является -Inf. Когда вы задаете связанную производную, необходимо также установить SteadyState к 0.

dxMax

Максимальные границы на производных состояния, которые не являются в установившемся в виде вектора из длины Nx. По умолчанию максимумом, направляющимся в каждую производную состояния, является Inf. Когда вы задаете связанную производную, необходимо также установить SteadyState к 0.

Description

Описание состояния блока в виде вектора символов.

Inputs

Технические требования уровня на входе в рабочей точке, возвращенной как вектор из входных объектов спецификации. Каждая запись в Inputs представляет уровни на входе одного блока импорта корневого уровня в модели.

Каждый входной объект спецификации имеет следующие поля:

Поле Описание
Nu Только для чтения

Количество блоков-сигналов импорта

Block

Имя Inport блока

PortDimensions

Размерность сигналов принята импортом

u

Уровни на входе Inport блока в рабочей точке, возвращенной как вектор из длины PortWidth.

Если соответствующий флаг в Known поле Inputs 1U содержит известные входные значения. В противном случае, u содержит исходные предположения для входных значений.

Known

Флаги, указывающие, известны ли уровни на входе во время обрезки в виде логического вектора из длины PortWidth.

  • 1 — Известный уровень на входе, который фиксируется во время поиска рабочей точки

  • 0 (значение по умолчанию) — Неизвестный уровень на входе найден оптимизацией

Чтобы зафиксировать уровень на входе во время поиска рабочей точки, установите соответствующий Known отметьте к 1, и задайте входное значение с помощью u свойство Inputs.

Min

Минимальные границы на уровнях на входе в виде вектора из длины PortWidth. По умолчанию минимумом, направляющимся в каждый вход, является -Inf.

Max

Максимальные границы на уровнях на входе в виде вектора из длины PortWidth. По умолчанию максимумом, направляющимся в каждый вход, является Inf.

Description

Inport блок ввел описание в виде вектора символов.

Outputs

Технические требования уровня на выходе в рабочей точке, возвращенной как вектор из выходных объектов спецификации. Каждая запись в Outputs представляет уровни на выходе одного блока выходного порта корневого уровня модели или одного выходного ограничения для обрезки в модели.

Можно задать дополнительное выходное ограничительное использование для обрезки addoutputspec.

Каждый выходной объект спецификации имеет следующие поля:

Поле Описание
Ny Только для чтения

Количество блоков-сигналов выходного порта

Block

Имя блока выходного порта

PortNumber

Количество этого выходного порта в модели

y

Уровни на выходе блока Outport в рабочей точке в виде вектора из длины PortWidth.

Если соответствующий флаг в Known поле Outputs 1Y содержит известные выходные значения. В противном случае, y содержит исходные предположения для выходных значений.

Known

Флаги, указывающие, известны ли уровни на выходе во время обрезки в виде логического вектора из длины PortWidth.

  • 1 — Известный уровень на выходе, который фиксируется во время поиска рабочей точки

  • 0 (значение по умолчанию) — Неизвестный уровень на выходе найден оптимизацией

Чтобы зафиксировать уровень на выходе во время поиска рабочей точки, установите соответствующий Known отметьте к 1, и задайте выходное значение с помощью y свойство Outputs.

Min

Минимальные границы на уровнях на выходе в виде вектора из длины PortWidth. По умолчанию минимумом, направляющимся в каждый выход, является -Inf.

Max

Максимум ограничивает уровни на выходе в виде вектора из длины PortWidth. По умолчанию максимумом, направляющимся в каждый выход, является Inf.

Description

Блок Outport ввел описание в виде вектора символов.

Time

Времена, в которые выполнены изменяющиеся во времени функции в модели, возвратились как вектор.

CustomObjFcn

Функция, обеспечивающая дополнительную пользовательскую целевую функцию для обрезки в виде указателя на пользовательскую функцию, или вектор символов или строку, которая содержит имя функции. Пользовательская функция должна быть на MATLAB® путь или в текущей рабочей папке.

Можно задать пользовательскую целевую функцию как алгебраическую комбинацию состояний модели, входных параметров и выходных параметров. Для получения дополнительной информации смотрите, Вычисляют Рабочие точки Используя Пользовательские Ограничения и Целевые функции.

CustomConstrFcn

Функция, обеспечивающая дополнительные пользовательские ограничения для обрезки в виде указателя на пользовательскую функцию, или вектор символов или строку, которая содержит имя функции. Пользовательская функция должна быть на пути MATLAB или в текущей рабочей папке.

Можно задать пользовательское равенство и ограничения неравенства как алгебраические комбинации состояний модели, входных параметров и выходных параметров. Для получения дополнительной информации смотрите, Вычисляют Рабочие точки Используя Пользовательские Ограничения и Целевые функции.

CustomMappingFcn

Функция, которая сопоставляет состояния модели, входные параметры и выходные параметры к векторам, принятым CustomConstrFcn и CustomObjFcnВ виде указателя на пользовательскую функцию, или вектора символов или строки, которая содержит имя функции. Пользовательская функция должна быть на пути MATLAB или в текущей рабочей папке.

Для сложных моделей вы можете передать подмножества входных параметров модели, выходных параметров, и утверждаете к пользовательскому ограничению и целевым функциям с помощью пользовательской функции отображения. Если вы задаете пользовательское отображение, необходимо использовать отображение и для пользовательской ограничительной функции и для пользовательской целевой функции. Для получения дополнительной информации смотрите, Вычисляют Рабочие точки Используя Пользовательские Ограничения и Целевые функции.

Советы

  • Чтобы отобразить свойства объектов спецификации рабочей точки, использовать get.

  • Можно создать новый operspec переменные 3 способами:

    • Создайте новый объект с operspec команда.

    • Создайте новую переменную присвоением с равнянием (=) оператор.

    • Скопируйте operspec объект с помощью copy команда.

    Используя operspec или copy создает новый, независимый объект. Когда вы используете присвоение, существует ссылка между старой и новой переменной. Для примера см. Копию Спецификация Рабочей точки.

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2021b

Смотрите также

| | |

Представлено до R2006a