operspec

Спецификации рабочей точки

Синтаксис

opspec = operspec(mdl)
opspec = operspec(mdl,dim)

Описание

пример

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

пример

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

Примеры

свернуть все

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

sys = 'watertank';
open_system(sys)

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

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

States: 
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
	 spec:  dx = 0,  initial guess: 0
(2.) watertank/Water-Tank System/H
	 spec:  dx = 0,  initial guess: 1

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

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


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

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

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

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

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

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

Открытая модель 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]);

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

свернуть все

Спецификации рабочей точки, возвращенные как спецификация рабочей точки, возражают или массив таких объектов.

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

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

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

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

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

Примечание

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

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

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

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

Block

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

StateName

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

x

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

Если соответствующим флагом в поле Known States является 1, x содержит известные значения состояния. В противном случае 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 представляет уровни на входе одного блока импорта корневого уровня в модели.

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

Поле Описание
Block

Имя блока Inport

PortWidth

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

PortDimensions

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

u

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

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

Known

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

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

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

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

Min

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

Max

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

Description

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

Outputs

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

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

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

Поле Описание
Block

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

PortWidth

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

PortNumber

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

y

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

Если соответствующим флагом в поле Known Outputs является 1, y содержит известные выходные значения. В противном случае 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.

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

| |

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