operspec

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

Описание

пример

opspec = operspec(mdl) возвращает объект спецификации рабочей точки по умолчанию для Simulink® модели mdl. Использование 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 является указатель объекта. Для получения дополнительной информации об указателе объектов смотрите Указатель Объекта Behavior.

Откройте модель 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 обращается к входному уровню первого блока inport для спецификации в строке 2, столбец 3.

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

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

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

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

Примечание

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

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

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

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

Block

Блочный путь, возвращенный как вектор символов.

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

Входной блок входа описанием, заданным как вектор символов.

Outputs

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

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

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

ОбластьОписание
Block

Имя блока вывода

PortWidth

Количество сигналов блоков выгрузки

PortNumber

Номер этого выхода в модели

y

Выходные уровни блоков вывода в рабочей точке, заданные как вектор длины 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.

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

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

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

    • Копирование operspec использование объекта copy команда.

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

См. также

| | |

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