idnlarx/findop

Вычислите рабочую точку для нелинейной модели ARX

Описание

пример

[X,U] = findop(sys,'steady',InputLevel,OutputLevel) возвращает значения состояния рабочей точки, X, и входные значения, U, дляidnlarx модель, sys, с использованием статических входных и выходных спецификаций.

пример

[X,U] = findop(sys,spec) возвращает установившуюся рабочую точку для sys используя спецификацию рабочей точки, spec.

пример

[X,U] = findop(___,Options) задает опции поиска оптимизации для всех предыдущих синтаксисов.

пример

[X,U,Report] = findop(___) возвращает сводный отчет по результатам поиска оптимизации для всех предыдущих синтаксисов.

пример

[X,U] = findop(sys,'snapshot',T,Uin) возвращает рабочую точку для sys на моментальном снимке симуляции в момент времени, T, используя указанный вход, Uin. Начальные состояния sys приняты равными нулю.

пример

[X,U] = findop(sys,'snapshot',T,Uin,X0) задает начальные состояния симуляции.

Примеры

свернуть все

Оцените нелинейную модель ARX.

load iddata6;
M = nlarx(z6,[4 3 1]);

Найдите установившуюся рабочую точку, к которой фиксирован входной уровень 1 и выход неизвестен.

[X,U] = findop(M,'steady',1,NaN);

Оцените нелинейную модель ARX.

load iddata7;
M = nlarx(z7,[4 3*ones(1,2) 2*ones(1,2)]);

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

spec = operspec(M);

Установите значения для входных сигналов.

spec.Input.Value(1) = -1;
spec.Input.Value(2) = 1;

Установите максимальное и минимальное значения для сигнала выхода.

spec.Output.Max = 10;
spec.Output.Min = -10;

Найдите установившуюся рабочую точку с помощью заданных спецификаций.

[X,U] = findop(M,spec);

Оцените нелинейную модель ARX.

load iddata6;
M = nlarx(z6,[4 3 2]);

Создайте findopOptions по умолчанию набор опций.

opt = findopOptions(M);

Измените набор опций, чтобы задать метод поиска градиента наискорейшего спуска с максимум 50 итерациями.

opt.SearchMethod = 'grad';
opt.SearchOptions.MaxIterations = 50;

Найдите установившуюся рабочую точку с помощью заданных опций.

[X,U] = findop(M,'steady',1,1,opt);

Оцените нелинейную модель ARX.

load iddata7;
M = nlarx(z7,[4 3*ones(1,2) 2*ones(1,2)]);

Найдите установившуюся рабочую точку, где вход 1 установлен в 1 и вход 2 не ограничен. Начальное предположение для выхода значения 2.

[X,U,R] = findop(M,'steady',[1 NaN],2);

Отображение сводного отчета.

disp(R);
            SearchMethod: 'auto'
                 WhyStop: 'Near (local) minimum, (norm(g) < tol).'
              Iterations: 20
               FinalCost: 1.9722e-31
    FirstOrderOptimality: 2.4434e-16
            SignalLevels: [1x1 struct]

Загрузите данные оценки и оцените нелинейную модель ARX.

load twotankdata;
z = iddata(y,u,1);
M = nlarx(z,[4 3 1]);

Найдите снимок симуляции через 10 секунд, принимая начальные состояния в нуле.

[X,U] = findop(M,'snapshot',10,z);

Загрузите данные оценки и оцените нелинейную модель ARX.

load twotankdata;
z = iddata(y,u,1);
M = nlarx(z,[4 3 1]);

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

X0 = [2;2;2;2;5;5;5];

Найдите снимок симуляции через 10 секунд с использованием заданных начальных состояний.

[X,U] = findop(M,'snapshot',10,z,X0);

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

свернуть все

Нелинейная модель ARX, заданная как idnlarx объект.

Установившийся входной уровень для вычисления рабочей точки, заданный как вектор. Длина InputLevel должно равняться количеству входов, заданных в sys.

Алгоритм оптимизации принимает, что конечные значения в InputLevel являются фиксированными входными значениями. Использование NaN для задания неизвестных входных сигналов с начальными предположениями 0. Минимальная и максимальная границы для всех входов имеют значения по умолчанию -Inf и +Inf соответственно.

Установившийся выходной уровень для вычисления рабочей точки, заданный как вектор. Длина OutputLevel должно равняться количеству выходов, указанных в sys.

Значения в OutputLevel указать начальные догадки для алгоритма оптимизации. Использование NaN для задания неизвестных выходных сигналов с начальными предположениями 0. Минимальная и максимальная границы для всех выходов имеют значения по умолчанию -Inf и +Inf соответственно.

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

Время моментального снимка рабочей точки, заданное как положительная скалярная величина. Значение T должен находиться в диапазоне [T0, N * Ts], где N - количество входных выборок, Ts - время расчета и T0 - время начала ввода (Uin.Tstart).

Вход симуляции моментального снимка, заданный как один из следующих:

  • Временная область iddata объект с шагом расчета и входом размером, соответствующим sys.

  • Матрица с таким количеством столбцов, сколько существует входных каналов. Если матрица имеет N строки, входные данные приняты соответствующими временному вектору (1:N)*sys.Ts.

Начальные состояния симуляции, заданные как вектор-столбец с размером, равным количеству состояний в sys. X0 обеспечивает начальные условия в момент времени, соответствующий первой входной выборке (Uin.Start, если Uin является iddata объект, или sys.Ts если Uin является двойной матрицей).

Для получения дополнительной информации о состояниях idnlarx модель, см. Определение состояний idnlarx.

Опции поиска рабочей точки, заданные как findopOptions набор опций.

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

свернуть все

Значения состояния рабочей точки, возвращенные как вектор-столбец длины, равной количеству состояний модели.

Входные значения рабочей точки, возвращенные как вектор-столбец длины, равной количеству входов.

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

ОбластьОписание
SearchMethodМетод поиска, используемый для итерационной оценки параметра. См. SearchMethod в findopOptions для получения дополнительной информации.
WhyStopУсловие завершения алгоритма поиска.
IterationsКоличество выполненных итераций оценки.
FinalCostОкончательное значение целевой функции минимизации (сумма квадратичных невязок).
FirstOrderOptimality-norm вектора градиента поиска, когда алгоритм поиска заканчивается.
SignalLevelsСтруктура, содержащая поля Input и Output, которые являются входами и выходного сигналов рабочей точки соответственно.

Алгоритмы

свернуть все

findop вычисляет рабочую точку из статических спецификаций рабочей точки или на моментальном снимке симуляции.

Вычисление рабочей точки из статических спецификаций

Чтобы вычислить установившуюся рабочую точку, вызовите findop использование любого из следующих синтаксисов:

[X,U] = findop(sys,'steady',InputLevel,OutputLevel)
[X,U] = findop(sys,spec)

Чтобы вычислить состояния, X, и вход, U, установившейся рабочей точки, findop минимизирует норму ошибки e (<reservedrangesplaceholder7>) = y (<reservedrangesplaceholder5>) - f (x (<reservedrangesplaceholder2>), u (<reservedrangesplaceholder0>)), где:

  • f является оценщиком нелинейности.

  • u (t) является входом.

  • x (t) является состоянием модели.

  • y (t) является выходом модели.

Вы можете задать алгоритм поиска и опции поиска, используя findopOptions набор опций.

Алгоритм использует следующие независимые переменные для минимизации:

  • Неизвестные (неопределенные) уровни входного сигнала

  • Уровни выходного сигнала

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

Вычисление рабочей точки на снимке симуляции

Когда вы используете синтаксис [X,U] = findop(sys,'snapshot',T,Uin,X0)алгоритм моделирует выход модели до момента моментального снимка, T. Во время моментального снимка алгоритм передает входную и выходную выборки data2state команда, чтобы сопоставить эти значения с вектором текущего состояния.

Примечание

Для расчетов на основе моментальных снимков, findop не выполняет числовую оптимизацию.

Расширенные возможности

Введенный в R2008a