operspec

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

Описание

пример

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;

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

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

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

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

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

mdl = 'watertank';
open_system(mdl);
opspec1 = operspec(mdl)
 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 
----------

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

opspec2 = opspec1;

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

opspec2.States(1).x = 2
 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: 2
(2.) watertank/Water-Tank System/H
	 spec:  dx = 0,  initial guess: 1

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

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

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

opspec1
 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: 2
(2.) watertank/Water-Tank System/H
	 spec:  dx = 0,  initial guess: 1

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

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

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

opspec3 = copy(opspec1);

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

opspec3.States(1).x = 4
 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: 4
(2.) watertank/Water-Tank System/H
	 spec:  dx = 0,  initial guess: 1

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

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

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

opspec1.States(1).x
ans = 2

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

Открытая модель 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 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 представляет уровни на входе одного блока импорта корневого уровня в модели.

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

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

Имя блока Inport

PortWidth

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

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.

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

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

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

PortWidth

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

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 создает новый, независимый объект. Когда вы используете присвоение, существует ссылка между старой и новой переменной. Для примера см. Копию Спецификация Рабочей точки.

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

| | |

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