exponenta event banner

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 (t) = y (t) -f (x (t), u (t)), где:

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

  • u (t) - входной сигнал.

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

  • y (t) - выходной сигнал модели.

Можно указать алгоритм поиска и параметры поиска с помощью findopOptions набор опций.

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

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

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

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

Вычисление рабочей точки в моментальном снимке моделирования

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

Примечание

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

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

Представлен в R2008a