Установившаяся рабочая точка из спецификаций (обрезка) или моделирования
возвращает рабочую точку модели, которая соответствует спецификациям в op = findop(mdl,opspec)opspec. Обычно модель обрезается в установившейся рабочей точке. Модель Simulink ® должна быть открытой. Еслиopspec - массив спецификаций рабочих точек, findop возвращает массив соответствующих рабочих точек.
Откройте модель Simulink.
mdl = 'watertank';
open_system(mdl)

Обрезать модель, чтобы найти установившуюся рабочую точку, где уровень в резервуаре для воды 10.
Создать объект спецификации операционной точки по умолчанию.
opspec = operspec(mdl);
Настройте спецификации для первого состояния модели. Первое состояние должно находиться в устойчивом состоянии с нижней границей 0. Предоставьте начальное предположение о 2 для значения состояния.
opspec.States(1).SteadyState = 1; opspec.States(1).x = 2; opspec.States(1).Min = 0;
Сконфигурируйте второе состояние модели как известное состояние со значением 10.
opspec.States(2).Known = 1; opspec.States(2).x = 10;
Найдите рабочую точку, соответствующую этим спецификациям.
op = findop(mdl,opspec);
Operating point search report:
---------------------------------
Operating point search report for the Model watertank.
(Time-Varying Components Evaluated at time t=0)
Operating point specifications were successfully met.
States:
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
x: 1.26 dx: 0 (0)
(2.) watertank/Water-Tank System/H
x: 10 dx: 0 (0)
Inputs: None
----------
Outputs: None
----------
Откройте модель Simulink.
mdl = 'watertank';
open_system(mdl)

Изменение параметров A и b в пределах 10% от их номинальных значений и создайте сетку параметров 3 на 4.
[A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,3),...
linspace(0.9*b,1.1*b,4));
Создайте массив структуры параметров, указав имя и точки сетки для каждого параметра.
params(1).Name = 'A'; params(1).Value = A_grid; params(2).Name = 'b'; params(2).Value = b_grid;
Создайте спецификацию рабочей точки по умолчанию для модели.
opspec = operspec(mdl);
Выполните обрезку модели с использованием указанной спецификации рабочей точки и сетки параметров.
opt = findopOptions('DisplayReport','off'); op = findop(mdl,opspec,params,opt);
op представляет собой массив объектов рабочих точек 3 на 4, соответствующих указанным точкам сетки параметров.
Откройте модель Simulink.
mdl = 'watertank';
open_system(mdl)

Создайте объект спецификации операционной точки по умолчанию.
opspec = operspec(mdl);
Создайте набор опций, который задает тип оптимизатора градиентный спуск и подавляет отображение отчета поиска.
opt = findopOptions('OptimizerType','graddescent','DisplayReport','off');
Обрезать модель с помощью указанного набора опций.
op = findop(mdl,opspec,opt);
Откройте модель Simulink.
mdl = 'watertank';
open_system(mdl)

Создать объект спецификации операционной точки по умолчанию.
opspec = operspec(mdl);
Настройте спецификации для первого состояния модели.
opspec.States(1).SteadyState = 1; opspec.States(1).x = 2; opspec.States(1).Min = 0;
Настройте спецификации для второго состояния модели.
opspec.States(2).Known = 1; opspec.States(2).x = 10;
Найдите рабочую точку, соответствующую этим спецификациям, и вернитесь к отчету о поиске рабочей точки. Создайте набор опций для подавления отображения отчета поиска.
opt = findopOptions('DisplayReport',false);
[op,opreport] = findop(mdl,opspec,opt);
opreport описывает, насколько точно алгоритм оптимизации соответствовал спецификациям в конце поиска рабочей точки.
opreport
Operating point search report for the Model watertank.
(Time-Varying Components Evaluated at time t=0)
Operating point specifications were successfully met.
States:
----------
(1.) watertank/PID Controller/Integrator/Continuous/Integrator
x: 1.26 dx: 0 (0)
(2.) watertank/Water-Tank System/H
x: 10 dx: 0 (0)
Inputs: None
----------
Outputs: None
----------
dx - производная по времени для каждого состояния. Так как все dx значения равны нулю, рабочая точка находится в установившемся состоянии.
Откройте модель Simulink.
mdl = 'magball';
open_system(mdl)

Моделирование модели и извлечение рабочих точек в 10 и 20 единиц времени.
op = findop(mdl,[10,20]);
op - вектор столбца рабочих точек с одним элементом для каждого времени снимка.
Отображение первой рабочей точки.
op(1)
Operating point for the Model magball.
(Time-Varying Components Evaluated at time t=10)
States:
----------
(1.) magball/Controller/PID Controller/Filter/Cont. Filter/Filter
x: 5.47e-07
(2.) magball/Controller/PID Controller/Integrator/Continuous/Integrator
x: 14
(3.) magball/Magnetic Ball Plant/Current
x: 7
(4.) magball/Magnetic Ball Plant/dhdt
x: 8.44e-08
(5.) magball/Magnetic Ball Plant/height
x: 0.05
Inputs: None
----------
Откройте модель Simulink.
mdl = 'watertank';
open_system(mdl)

Укажите значения параметров. Сетка параметров представляет собой массивы 5 на 4.
[A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,5),... linspace(0.9*b,1.1*b,4)); params(1).Name = 'A'; params(1).Value = A_grid; params(2).Name = 'b'; params(2).Value = b_grid;
Моделирование модели и извлечение рабочих точек в 0, 5, и 10 единиц времени.
op = findop(mdl,[0 5 10],params);
findop моделирует модель для каждой комбинации значений параметров и извлекает рабочие точки в указанное время моделирования.
op представляет собой массив объектов рабочих точек 3 на 5 на 4.
size(op)
ans =
3 5 4
mdl - Имя модели SimulinkИмя модели Simulink, указанное как символьный вектор или строка. Модель должна находиться в текущей рабочей папке или в пути MATLAB ®.
opspec - Технические характеристики рабочих точекoperspec объект | массив operspec объектыСпецификации рабочих точек для обрезки модели, указанные как operspec объект или массив operspec объекты.
Если opspec является массивом, findop возвращает массив соответствующих операционных точек с использованием компиляции одной модели.
param - Образцы параметровОбразцы параметров для обрезки, указанные как одно из следующих:
Структура (Structure) - изменение значения одного параметра путем указания param в виде структуры со следующими полями:
Name - имя параметра, указанное как символьный вектор или строка. Можно указать любой параметр модели, который является переменной в рабочем пространстве модели, рабочем пространстве MATLAB или словаре данных. Если переменная, используемая моделью, не является скалярной переменной, укажите имя параметра как выражение, разрешающее числовое скалярное значение. Например, для использования первого элемента вектора V в качестве параметра используйте:
param.Name = 'V(1)';Value - Значения выборки параметров, заданные как двойной массив.
Например, можно изменить значение параметра A в диапазоне 10%:
param.Name = 'A';
param.Value = linspace(0.9*A,1.1*A,3);Массив структуры - изменение значения нескольких параметров. Например, можно изменять значения параметров A и b в диапазоне 10%:
[A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,3),... linspace(0.9*b,1.1*b,3)); params(1).Name = 'A'; params(1).Value = A_grid; params(2).Name = 'b'; params(2).Value = b_grid;
При указании вариаций значений параметров findop пакет обрезает модель для каждой комбинации значений параметров и возвращает массив соответствующих рабочих точек. Если param задает только настраиваемые параметры, затем программный пакет обрезает модель с помощью одной компиляции.
При указании opspec как единый operspec и значения параметров в param производить состояния, которые конфликтуют с известными состояниями в opspec, findop обрезает модель, используя спецификации в opspec. Чтобы обрезать модель по значениям состояния, полученным из значений параметров, укажите opspec как массив соответствующих operspec объекты. Пример см. в разделе Модель симулятора пакетной обрезки для изменения параметра.
options - Параметры обрезкиfindopOptions набор опцийПараметры обрезки, заданные как findopOptions набор опций.
tsnapshot - Время моментального снимка моделированияВремя моделирования снимка, при котором извлекается рабочая точка модели, заданная как скаляр для одного снимка или вектор для нескольких снимков. findop моделирует модель и вычисляет рабочую точку для состояния модели в каждый момент снимка.
op - Рабочая точкаОперационная точка, возвращаемая как объект операционной точки или массив объектов операционной точки. Размеры op зависит от указанных вариаций параметров и либо от спецификаций рабочей точки, либо от времени снимка моделирования.
| Изменение параметра | Найти операционную точку для... | Заканчивание op Размеры |
|---|---|---|
| Без изменения параметров | Спецификация одной рабочей точки, указанная opspec | объект с одной рабочей точкой |
Время одиночного снимка, указанное tsnapshot | ||
N1-by-...-по-Нм массив спецификаций рабочих точек, указанный opspec | N1-by-...- по Нм | |
Снимки Ns, указанные tsnapshot | Вектор столбца длиной Ns | |
N1-by-...- по - сетка параметров Nm, заданная param | Спецификация одной рабочей точки, указанная opspec | N1-by-...- по Нм |
Время одиночного снимка, указанное tsnapshot | ||
N1-by-...-по-Нм массив спецификаций рабочих точек, указанный opspec | ||
Снимки Ns, указанные tsnapshot | Ns-by-N1-by-...-by-Nm. |
Например, предположим:
opspec является одним объектом спецификации операционной точки и param задает сетку параметров 3 на 4 на 2. В этом случае op представляет собой массив рабочих точек 3 на 4 на 2.
tsnapshot является скаляром и param задает сетку параметров 5 на 6. В этом случае op представляет собой массив рабочих точек 1 на 5 на 6.
tsnapshot является вектором строки с тремя элементами и param задает сетку параметров 5 на 6. В этом случае op представляет собой массив рабочих точек 3 на 5 на 6.
Каждый объект операционной точки имеет следующие свойства:
| Собственность | Описание | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model | Имя модели Simulink, возвращаемое как символьный вектор. | ||||||||||||||||||
States | Рабочая точка состояния, возвращаемая как вектор объектов состояния. Каждая запись в Список поддерживаемых состояний для объектов операционной точки см. в разделе Состояния модели Simulink, включенные в объект операционной точки. Примечание Если блок имеет несколько именованных непрерывных состояний, Каждый объект состояния имеет следующие поля:
| ||||||||||||||||||
Inputs | Входной уровень в рабочей точке, возвращаемый как вектор входных объектов. Каждая запись в Каждый входной объект имеет следующие поля:
| ||||||||||||||||||
Time | Времена, в которые вычисляются любые изменяющиеся во времени функции в модели, возвращаемые в виде вектора. | ||||||||||||||||||
Version | Номер версии объекта |
Можно редактировать свойства op с использованием точечной нотации или set функция.
opreport - Отчет по поиску рабочих точекОтчет о поиске в операционной точке, возвращаемый как объект отчета о поиске в операционной точке. Если op является массивом объектов операционной точки, то opreport представляет собой массив соответствующих отчетов поиска.
Этот отчет отображается автоматически даже при подавлении вывода с помощью точки с запятой. Чтобы скрыть отчет, установите DisplayReport поле в options кому 'off'.
Каждый отчет поиска операционной точки имеет следующие свойства:
| Собственность | Описание | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Model |
| ||||||||||||||||||
Inputs |
| ||||||||||||||||||
Outputs |
| ||||||||||||||||||
States |
| ||||||||||||||||||
Time | Time значение свойства op | ||||||||||||||||||
TerminationString | Условие завершения оптимизации, возвращаемое в виде символьного вектора. | ||||||||||||||||||
OptimizationOutput |
Результаты поиска алгоритма оптимизации, возвращенные в виде структуры со следующими полями:
Дополнительные сведения об алгоритме оптимизации см. в документации по Toolbox™ оптимизации. |
Установившаяся рабочая точка модели, также называемая условием равновесия или подстройки, включает переменные состояния, которые не изменяются со временем.
Модель может иметь несколько стационарных рабочих точек. Например, подвесной демпфированный маятник имеет две установившиеся рабочие точки, в которых положение маятника не изменяется со временем. Стабильная установившаяся рабочая точка возникает, когда маятник висит прямо вниз. Когда положение маятника немного отклоняется, маятник всегда возвращается в равновесие. Другими словами, небольшие изменения в рабочей точке не заставляют систему оставлять область хорошей аппроксимации вокруг величины равновесия.
Нестабильная установившаяся рабочая точка возникает, когда маятник указывает вверх. Пока маятник указывает точно вверх, он остается в равновесии. Однако, когда маятник слегка отклоняется от этого положения, он качается вниз и рабочая точка покидает область вокруг величины равновесия.
При использовании поиска оптимизации для вычисления рабочих точек для нелинейных систем начальные догадки состояний и входных уровней должны быть близки к требуемой рабочей точке, чтобы обеспечить сходимость.
При линеаризации модели с несколькими установившимися рабочими точками важно иметь правильную рабочую точку. Например, линеаризация маятниковой модели вокруг стабильной рабочей точки установившегося состояния создает стабильную линейную модель, в то время как линеаризация вокруг нестабильной рабочей точки установившегося состояния создает нестабильную линейную модель.
Можно инициализировать поиск в рабочей точке в моментальном снимке моделирования или в ранее вычисленной рабочей точке с помощью initopspec.
Линеаризация модели в рабочей точке op использование linearize.
По умолчанию findop использует оптимизатор graddescent-elim. Чтобы использовать другой оптимизатор, измените значение OptimizerType в options использование findopOptions.
findop автоматически задает следующие свойства модели Simulink для оптимизации:
BufferReuse = 'off'
RTWInlineParameters = 'on'
BlockReductionOpt = 'off'
SaveFormat = 'StructureWithTime'
После завершения оптимизации Simulink восстанавливает свойства исходной модели.
В качестве альтернативы findop можно найти рабочие точки одним из следующих способов.
Вычислите рабочие точки с помощью Диспетчера устойчивого состояния (Steady State Manager). Пример см. в разделе Расчет рабочих точек из спецификаций с помощью диспетчера устойчивого состояния.
При вычислении рабочей точки для линеаризации можно найти рабочую точку и линеаризовать модель с помощью линеаризатора модели. Пример см. в разделе Расчет рабочих точек по спецификациям с помощью линеаризатора модели.
addoutputspec | findopOptions | initopspec | linearize | operspec
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.