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: 11
               FinalCost: 0
    FirstOrderOptimality: 0
            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.

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

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

Параметры поиска рабочей точки в виде a findopOptions опция установлена.

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

свернуть все

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

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

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

Поле Описание
SearchMethodМетод поиска используется для итеративной оценки параметра. Смотрите SearchMethod \in findopOptions для получения дополнительной информации.
WhyStopУсловие завершения алгоритма поиска.
IterationsКоличество итераций оценки выполняется.
FinalCostОкончательное значение целевой функции минимизации (сумма квадратичных невязок).
FirstOrderOptimality- норма поискового вектора градиента, когда алгоритм поиска останавливается.
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