exponenta event banner

getDelayInfo

Получение информации о задержке ввода/вывода для idnlarx структура модели

Синтаксис

DELAYS = getDelayInfo(MODEL)
DELAYS = getDelayInfo(MODEL,TYPE)

Описание

DELAYS = getDelayInfo(MODEL) получает максимальную задержку в каждой входной и выходной переменной idnlarx модель.

DELAYS = getDelayInfo(MODEL,TYPE) позволяет выбирать между получением максимальных задержек для всех входных и выходных переменных или максимальных задержек для каждой выходной переменной по отдельности. Когда задержки получаются для каждой выходной переменной по отдельности, возвращается матрица, где каждая строка является вектором, содержащим ny + nu максимальных задержек для каждой выходной переменной, и:

  • ny - количество выходов MODEL.

  • nu - количество входов MODEL.

Информация о задержке полезна для определения количества состояний в модели. Для нелинейных моделей ARX состояния связаны с набором отложенных входных и выходных переменных, которые определяют структуру модели (регрессоры). Например, если входная или выходная переменная p имеет максимальную задержку в D выборок, то она вносит D элементов в вектор состояния:

p (t-1), p (t-2),... p (t-D)

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

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

getDelayInfo принимает следующие аргументы:

  • MODEL: idnlarx модель.

  • TYPE: (Необязательно) Указывает, следует ли получать задержки канала 'channelwise' или 'all' следующим образом:

    • 'all': Значение по умолчанию. DELAYS содержит максимальные задержки на каждом выходе (вектор записей ny + nu, где[ny, nu] = size(MODEL)).

    • 'channelwise': DELAYS содержит значения задержки, разделенные для каждого выхода (матрица ny-by- (ny + nu)).

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

  • DELAYSСодержит информацию о задержке в векторе длиной ny + nu, расположенном с выходными каналами, предшествующими входным каналам, т.е .[y1, y2,.., u1, u2,..].

Примеры

свернуть все

Создайте нелинейную модель ARX с двумя выходами и тремя входами.

M = idnlarx([2 0 2 2 1 1 0 0; 1 0 1 5 0 1 1 0],'linear');

Вычислите максимальные задержки для каждой выходной переменной по отдельности.

Del = getDelayInfo(M,'channelwise')
Del = 2×5

     2     0     2     1     0
     1     0     1     5     0

Матрица Del содержит максимальные задержки для первого и второго выходных данных модели M. Можно интерпретировать содержимое матрицы Del следующим образом:

  • В динамике для выхода 1 (y1) максимальные задержки в каналах y1, y2, u1, u2, u3 равны 2, 0, 2, 1 и 0 соответственно.

  • Аналогично, в динамике для выхода 2 (y2) модели максимальные задержки в каналах y1, y2, u1, u2, u3 равны 1, 0, 1, 5 и 0 соответственно.

Найдите максимальные задержки для всех входных и выходных переменных в порядке y1, y2, u1, u2, u3.

Del = getDelayInfo(M,'all')
Del = 1×5

     2     0     2     5     0

Обратите внимание, что максимальная задержка для всех выходных уравнений может быть получена путем выполнения MaxDel = max(Del,[],1). Поскольку вход u2 имеет 5 задержек (четвертая запись в Del), в векторе состояния имеется 5 членов, соответствующих u2. Применение этого определения ко всем каналам ввода-вывода, полный вектор состояния для модели M становится:

X (t) = [y1 (t-1), y1 (t-2), u1 (t-1), u1 (t-2), u2 (t-1), u2 (t-2), u2 (t-3), u2 (t-4), u2 (t-5)]

См. также

| |

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