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

Оценка модели черного ящика и структурированного пространства состояний

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

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

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

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

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

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

Примечание

  • Структурированный подход оценки также упоминается как серый ящик. Однако в этом тулбоксе терминология «моделирование серого ящика» используется только при обращении к 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 чтобы инициализировать матрицы пространства состояний и занимает больше времени, чем 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. Однако для свободных и канонических форм структура матрицы задана исходя из вашего выбора для 'Feedthrough' Пара "имя-значение" входного параметра.

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 опция, см. «Определение начальных состояний для итерационных алгоритмов оценки».

Похожие темы