Можно оценить модели пространства состояний двумя способами в командной строке, в зависимости от ваших предыдущих знаний о характере системы и ваших требованиях.
В этом подходе вы задаете порядок модели и, необязательно, дополнительные атрибуты структуры модели, которые конфигурируют общую структуру матриц пространства состояний. Вы звоните ssest
, ssregest
или n4sid
с порядком данных и модели в качестве первичных входных аргументов и используйте пары "имя-значение", чтобы задать любые дополнительные атрибуты, такие как шаг расчета модели, наличие сквозного соединения, отсутствие шумового компонента и т.д. Вы не работаете непосредственно с коэффициентами A, B, C, D, K, и X0 матрицы.
В этом подходе вы создаете и конфигурируете idss
модель, которая содержит начальные значения для всех системных матриц. Вы используете Structure
свойство idss
модель, чтобы задать все ограничения параметра. Для примера можно задать определенные коэффициенты системных матриц как фиксированные и наложить минимальные/максимальные ограничения на значения других. Для быстрого строения параметризации и оценки динамики сквозного соединения и нарушения порядка используйте ssform
.
После настройки idss
модель с желаемыми ограничениями, вы задаете эту модель как входной параметр к ssest
команда. Вы не можете использовать n4sid
или ssregest
для структурированной оценки.
Примечание
Структурированный подход оценки также упоминается как серый ящик. Однако в этом тулбоксе терминология «моделирование серого ящика» используется только при обращении к idgrey
и idnlgrey
модели.
Используя подход структурированной оценки, вы не можете задать отношения между коэффициентами пространства состояний. Каждый коэффициент по существу рассматривается независимым от других. Для наложения зависимостей или использования более сложных форм параметризации используйте idgrey
модель и greyest
оценщик.
Можно оценить модели пространства состояний в непрерывном времени и дискретном времени с помощью команды итерационной оценки 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 пространства состояний рассматриваются как свободные параметры. Использование 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. Однако для свободных и канонических форм структура матрицы задана исходя из вашего выбора для 'Feedthrough'
Пара "имя-значение" входного параметра.
По умолчанию матрица не оценивается и ее значение фиксируется в нуле, кроме статических моделей.
Оценка черного ящика: Используйте 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 устанавливается на 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 начального состояния получают как побочный продукт оценки модели. 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
опция, см. «Определение начальных состояний для итерационных алгоритмов оценки».