exponenta event banner

Оценка моделей состояния-пространства в командной строке

«Черный ящик» в сравнении с оценкой структурированной модели состояния-пространства

Модели пространства состояний можно оценить двумя способами в командной строке, в зависимости от ваших предыдущих знаний о характере системы и ваших требований.

Оценка черного ящика

В этом подходе указывается порядок модели и, при необходимости, дополнительные атрибуты структуры модели, которые конфигурируют общую структуру матриц state-space. Вы звоните ssest, ssregest или n4sid с данными и порядком модели в качестве первичных входных аргументов, и использовать пары «имя-значение» для указания любых дополнительных атрибутов, таких как время выборки модели, наличие сквозного канала, отсутствие шумовой составляющей и т.д. Вы не работаете непосредственно с коэффициентами матриц A, B, C, D, K и X0.

Структурированная оценка

В этом подходе создается и конфигурируется idss модель, которая содержит начальные значения для всех системных матриц. Вы используете Structure имущества idss для указания всех ограничений параметров. Например, можно обозначить определенные коэффициенты системных матриц как фиксированные и наложить минимальные/максимальные границы на значения других. Для быстрой настройки параметризации и оценки динамики прохождения и возмущения используйте ssform.

После конфигурирования idss модель с требуемыми ограничениями указывается в качестве входного аргумента для ssest команда. Вы не можете использовать n4sid или ssregest для структурированной оценки.

Примечание

  • Структурированный подход к оценке также называют серым моделированием. Однако в этом инструментарии терминология «grey box modeling» используется только при ссылке на idgrey и idnlgrey модели.

  • Используя структурированный подход оценки, нельзя определить взаимосвязи между коэффициентами состояния и пространства. Каждый коэффициент по существу считается независимым от других. Для навязывания зависимостей или использования более сложных форм параметризации используйте idgrey модель и greyest оценщик.

Оценка моделей состояния-пространства с использованием ssest, ssregest и n4sid

 Предпосылки

С помощью команды итеративной оценки можно оценить непрерывные и дискретные модели состояния-пространства. ssest это минимизирует ошибки прогнозирования для получения значений максимального правдоподобия.

Используйте следующий общий синтаксис для настройки и оценки моделей пространства состояний:

m = ssest(data,n,opt,Name,Value)

где data - оценочные данные, n - порядок модели, и opt содержит опции для настройки оценки моделей состояния-пространства. Эти опции включают в себя обработку начальных условий, входных и выходных смещений, фокусировку оценки и опции алгоритма поиска. opt может сопровождаться аргументами ввода пары «имя-значение», указывающими необязательные атрибуты структуры модели, такие как наличие сквозной передачи, каноническая форма модели и задержка ввода.

В качестве альтернативы ssest, вы можете использовать безразличные оценки подпространства n4sid или ssregest:

m = n4sid(data,n,opt,Name,Value)
m = ssregest(data,n,opt,Name,Value)

Если в качестве входного аргумента пары имя-значение не указано время выборки, n4sid и ssregest оценить дискретную модель времени, в то время как ssest оценивает модель непрерывного времени.

Примечание

ssest использование n4sid для инициализации матриц state-space и занимает больше времени, чем n4sid для оценки модели, но обычно обеспечивает лучшее соответствие данным.

Сведения о проверке модели см. в разделе Проверка моделей после оценки

Выбор структуры матриц A, B, C

По умолчанию все записи матриц состояния-пространства A, B и C обрабатываются как свободные параметры. Использование Form входной аргумент пары имя-значение ssest , можно выбрать различные канонические формы, такие как сопутствующие и модальные формы, которые используют меньшее количество параметров.

Дополнительные сведения об оценке параметризации определенного состояния и пространства см. в разделе:

Выбор между представлениями непрерывного времени и дискретного времени

Для оценки моделей состояния-пространства имеется возможность переключения времени выборки модели между нулем и временем оценки данных. Это можно сделать с помощью Ts входной аргумент пары имя-значение.

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

    model = ssest(data,nx,'Ts',data.Ts);

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

  • По умолчанию n4sid и ssregest оценить модель, время выборки которой совпадает с временем выборки данных. Таким образом, для данных временной области n4sid и ssregest предоставление дискретно-временной модели. Модель непрерывного времени можно оценить с помощью:

    model = n4sid(data,nx,'Ts',0);
    

    или

    model = ssregest(data,nx,'Ts',0);
    

Выбор оценки матриц D, K и X0

Для моделей «состояние-пространство» с любой параметризацией можно указать, следует ли оценивать матрицы D, K и X0, которые представляют сквозной канал «вход-выход», шумовую модель и начальные состояния соответственно.

Для моделей пространства состояний со структурированной параметризацией можно также указать, чтобы оценить матрицу D. Однако для свободных и канонических форм структура матрицы D задается на основе вашего выбора для 'Feedthrough' входной аргумент пары имя-значение.

Матрица D

По умолчанию матрица D не оценивается и ее значение фиксируется равным нулю, за исключением статических моделей.

  • Оценка черного ящика: Использовать Feedthrough входной аргумент пары имя-значение для обозначения наличия или отсутствия прохождения от отдельных входов. Например, в случае модели с двумя входами, в которой имеется проход только от второго входа, используйте:

    model = n4sid(data,n,'Feedthrough',[false true]);
  • Структурированная оценка: настройка значений init_sys.Structure.D, где init_sys является idss модель, представляющая требуемую структуру модели. Чтобы принудительно не проходить по i-му входу, установите:

    init_sys.Structure.D.Value(:,i) = 0;
    init_sys.Structure.D.Free = true;
    init_sys.Structure.D.Free(:,i) = false;

    Первая строка указывает значение i-го столбца D как ноль. Следующая строка указывает все элементы D как свободные, оцениваемые параметры. Последняя строка указывает, что i-й столбец матрицы D фиксирован для оценки.

    В качестве альтернативы можно использовать ssform с 'Feedthrough' пара имя-значение.

K-матрица

K представляет матрицу шума модели, так что шумовая составляющая модели равна:.

x˙=Ax+Keyn=Cx+e

Для данных в частотной области модель шума не оценивается, и K устанавливается равным 0. Для данных временной области K оценивается по умолчанию в настройке оценки черного ящика. yn - вклад возмущений в выход модели.

  • Оценка черного ящика: Использовать DisturbanceModel входной аргумент пары «имя-значение» для указания на то, что компонент возмущения зафиксирован в нуле (укажите Value = 'none') или оценивается как свободный параметр (укажите Value = 'estimate'). Например, используйте:

    model = n4sid(data,n,'DisturbanceModel','none');
  • Структурированная оценка: Настройка значения init_sys.Structure.K параметр, где init_sys является idss модель, представляющая требуемую структуру модели. Можно зафиксировать некоторые коэффициенты матрицы K до известных значений и назначить минимальные/максимальные границы для свободных коэффициентов. Например, чтобы оценить только первый столбец матрицы K для модели с двумя выходами:

    kpar = init_sys.Structure.K;
    kpar.Free(:,1) = true;
    kpar.Free(:,2) = false;
    kpar.Value(:,2) = 0; % second column value is fixed to zero
    init_sys.Structure.K = kpar;

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

Если вы не уверены, как легко зафиксировать или освободить все коэффициенты K, сначала вы можете опустить оценку параметров шума в K, чтобы сосредоточиться на достижении разумной модели для динамики системы. После оценки динамической модели можно использовать ssest для уточнения модели при настройке свободных параметров K. Например:

init_sys = ssest(data, n,'DisturbanceModel','none');
init_sys.Structure.K.Free = true;
sys = ssest(data,init_sys);

где init_sys является динамической моделью без шума.

Чтобы установить K равным нулю в существующей модели, можно задать его Value кому 0 и Free флаг для false:

m.Structure.K.Value = 0;
m.Structure.K.Free = false;

X0 Матрицы

Получают вектор начального состояния X0 как побочный продукт оценки модели. n4sid, ssest и ssregest команды возвращают значение X0 в качестве их вторых выходных аргументов. Можно выбрать способ обработки начальных условий во время оценки модели с помощью InitialState вариант оценки. Использовать n4sidOptions (для n4sid), ssestOptions (для ssest) или ssregestOptions (для ssregest) для создания набора опций оценки. Например, чтобы удерживать начальные состояния равными нулю во время оценки с использованием n4sid:

opt = n4sidOptions;
opt.InitialState = 'zero';
[m,X0] = n4sid(data,n,opt);

Возвращенный X0 переменная является нулевым вектором длины n.

При оценке моделей с использованием данных мультиэксперимента X0 матрица содержит столько же столбцов, сколько экспериментов с данными.

Полный список значений для InitialStates см. раздел Определение начальных состояний для алгоритмов итеративной оценки.

Связанные темы