ssregest

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

Описание

пример

sys = ssregest(data,nx) оценивает модель пространства состояний путем сокращения регуляризованной модели ARX.

пример

sys = ssregest(data,nx,Name,Value) задает дополнительные опции, используя один или несколько Name,Value аргументы в виде пар.

пример

sys = ssregest(___,opt) задает опции оценки, которые конфигурируют цель оценки, порядки ARX и опции сокращения порядка. Этот синтаксис может включать любое из комбинаций входных аргументов в предыдущих синтаксисах.

пример

[sys,x0] = ssregest(___) возвращает значение начальных состояний, вычисленных во время оценки. Этот синтаксис может включать любое из комбинаций входных аргументов в предыдущих синтаксисах.

Примеры

свернуть все

Данные оценки нагрузки.

load iddata2 z2;

z2 является iddata объект, который содержит данные отклика системы во временной области.

Идентифицируйте модель пространства состояний третьего порядка.

sys = ssregest(z2,3);

Данные оценки нагрузки.

load iddata2 z2

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

sys = ssregest(z2,3,'InputDelay',2);

Данные оценки нагрузки.

load iddata2 z2;

Задайте порядок регуляризованной модели ARX, используемой программным обеспечением во время оценки. Кроме того, установите особое внимание оценки на симуляцию.

opt = ssregestOptions('ARXOrder',[100 100 1],'Focus','simulation');

Идентифицируйте модель пространства состояний третьего порядка.

sys = ssregest(z2,3,opt);

Данные оценки нагрузки.

load iddata2 z2;

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

[sys,x0] = ssregest(z2,3);

Загрузка данных.

load regularizationExampleData eData;

Создайте модель передаточной функции, используемую для генерации данных оценки (истинная система).

trueSys = idtf([0.02008 0.04017 0.02008],[1 -1.561 0.6414],1);

Получите модель регуляризованной импульсной характеристики (конечной импульсной характеристики).

opt = impulseestOptions('RegularizationKernel','DC');
m0 = impulseest(eData,70,opt);

Преобразуйте модель в модель пространства состояний и уменьшите порядок модели.

m1 = balred(idss(m0),15);

Получите вторую модель пространства состояний, используя регулярное сокращение модели ARX.

m2 = ssregest(eData,15);

Сравните импульсные характеристики истинной системы и предполагаемых моделей.

impulse(trueSys,m1,m2,50);   
legend('trueSys','m1','m2');

Figure contains an axes. The axes with title From: u1 To: y1 contains 6 objects of type line. These objects represent trueSys, m1, m2.

Входные параметры

свернуть все

Оценочные данные, заданные как iddata, idfrd или frd (Control System Toolbox) объект.

Для оценки во временной области, data должен быть iddata объект, содержащий значения входного и выходного сигналов.

Для оценки частотного диапазона, data может быть одним из следующих:

  • Зарегистрированные данные частотной характеристики (frd (Control System Toolbox) или idfrd)

  • iddata объект со свойствами, заданными следующим образом:

    • InputData - Фурье-преобразование входного сигнала

    • OutputData - Фурье-преобразование выходного сигнала

    • Domain'Frequency'

    Шага расчета Ts iddata объект должен быть ненулевым.

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

Если nx является вектором, тогда ssregest создает график, который можно использовать для выбора подходящего порядка модели. На график показаны сингулярные значения Ханкеля для моделей выбранных значений в векторе. Состояния с относительно маленькими сингулярными значениями Ханкеля могут быть безопасно отброшены. Выбор по умолчанию предлагается на графике.

Можно также задать nx = 'best', как в ssregest(data,'best'), в этом случае оптимальный порядок выбирается автоматически в области значений 1:10.

Опции оценки для ssregest, заданный как набор опций, который вы создаете используя ssregestOptions.

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: sys = ssregest(z2,3,'InputDelay',2) задает задержку в 2 периода дискретизации.

Шаг расчета модели, заданная как 0 или равный шаг расчета data.

Для моделей в непрерывном времени используйте Ts = 0. Для моделей в дискретном времени задайте Ts как положительная скалярная величина, значение которой равно шагу расчета данных.

Входная задержка для каждого входного канала, заданная как числовой вектор. Для систем непрерывного времени задайте задержки на входе в модуле времени, сохраненной в TimeUnit свойство. Для систем в дискретном времени задайте входные задержки в целочисленных множителях шага расчета Ts. Для примера, InputDelay = 3 означает задержку на три периода дискретизации.

Для системы с Nu входы, задайте InputDelay в Nu-by-1 вектор. Каждый элемент этого вектора является числовым значением, которое представляет входу задержку для соответствующего канала входа.

Можно также задать InputDelay к скалярному значению, чтобы применить ту же задержку ко всем каналам.

Тип канонической формы sys, заданное как одно из следующих значений:

  • 'modal' - Получение sys в модальной форме.

  • 'companion' - Получение sys в сопутствующей форме.

  • 'free' - Все записи матриц A, B и C рассматриваются как свободные.

  • 'canonical' - Получение sys в канонической форме наблюдаемости [1].

Используйте Form, Feedthrough и DisturbanceModel Аргументы пары "имя-значение" для изменения поведения по умолчанию матриц A, B, C, D и K.

Прямое сквозное соединение от входа до выхода, заданный как логический вектор длины Nu, где Nu - количество входов. Если Feedthrough задается как логический скаляр, применяется ко всем входам.

Используйте Form, Feedthrough и DisturbanceModel Аргументы пары "имя-значение" для изменения поведения по умолчанию матриц A, B, C, D и K.

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

  • 'none' - Шумовой компонент не оценивается. Значение матрицы K фиксируется к нулю.

  • 'estimate' - Матрица K рассматривается как свободный параметр.

DisturbanceModel должен быть 'none' при использовании данных частотного диапазона.

Используйте Form, Feedthrough и DisturbanceModel Аргументы пары "имя-значение" для изменения поведения по умолчанию матриц A, B, C, D и K.

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

свернуть все

Расчетная модель порядка <reservedrangesplaceholder0> в пространстве состояний, возвращается как idss объект модели. Модель представляет:

x˙(t)=Ax(t)+Bu(t)+Ke(t)y(t)=Cx(t)+Du(t)+e(t)

A, B, C, D, и K являются матрицами пространства состояний. u (t) - вход, y (t) - выход, e (t) - нарушение порядка, а x (t) - вектор nx состояния.

Все значения A, B, C и K по умолчанию являются свободно оцениваемыми параметрами. D по умолчанию фиксируется на нуле, что означает отсутствие сквозного соединения, кроме статических систем (nx=0).

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

Поле отчетаОписание
Status

Сводными данными статуса модели, которое указывает, была ли модель создана конструкцией или получена оценкой.

Method

Используется команда estimation.

InitialState

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

  • 'zero' - Начальное состояние было установлено в нуль.

  • 'estimate' - начальное состояние рассматривалось как независимый параметр оценки.

Это поле особенно полезно, когда InitialState опция в наборе опций оценки 'auto'.

ARXOrder

ARX модели порядков, возвращенный как матрица неотрицательных целых чисел [na nb nk].

Fit

Количественная оценка оценки, возвращенная как структура. Смотрите функции потерь и метрики качества модели для получения дополнительной информации об этих метриках качества. Структура имеет следующие поля:

ОбластьОписание
FitPercent

Нормированная мера средней квадратичной невязки корня (NRMSE) того, насколько хорошо реакция модели соответствует данным оценки, выраженным в процентах fit = 100 (1-NRMSE).

LossFcn

Значение функции потерь, когда оценка завершается.

MSE

Средняя квадратичная невязка (MSE) мера того, насколько хорошо реакция модели соответствует данным оценки.

FPE

Окончательная ошибка предсказания для модели.

AIC

Необработанная мера качества модели Akaike Information Criteria (AIC).

AICc

Скорректированный AIC небольшого размера.

nAIC

Нормализованный AIC.

BIC

Байесовские информационные критерии (BIC).

Parameters

Оценочные значения параметров модели.

OptionsUsed

Набор опций, используемый для оценки. Если пользовательские опции не были настроены, это набор опций по умолчанию. Посмотрите ssregestOptions для получения дополнительной информации.

RandState

Состояние потока случайных чисел в начале оценки. Пустой, [], если рандомизация не использовалась во время оценки. Для получения дополнительной информации см. rng.

DataUsed

Атрибуты данных, используемых для оценки, возвращаются как структура со следующими полями:

ОбластьОписание
Name

Имя набора данных.

Type

Тип данных.

Length

Количество выборок данных.

Ts

Шаг расчета.

InterSample

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

  • 'zoh' - Удержание нулевого порядка поддерживает кусочно-постоянный входной сигнал между выборками.

  • 'foh' - Удержание первого порядка поддерживает кусочно-линейный входной сигнал между выборками.

  • 'bl' - Ограниченное по полосе поведение задает, что входной сигнал в непрерывном времени имеет нулевую степень выше частоты Найквиста.

InputOffset

Смещение удалено из входных данных временной области во время оценки. Для нелинейных моделей это [].

OutputOffset

Смещение удалено из выходных данных временной области во время оценки. Для нелинейных моделей это [].

Для получения дополнительной информации об использовании Report, см. Отчет по оценке.

Начальные состояния, вычисленные во время оценки, возвращаются как скаляр. Если data содержит несколько экспериментов, затем x0 является матрицей с каждым столбцом, соответствующим эксперименту.

Это значение также сохранено в Parameters поле Report модели свойство.

Подробнее о

свернуть все

Модальная форма

В модальной форме A является блок-диагональной матрицей. Размер блока обычно 1 на 1 для реальных собственных значений и 2 на 2 для сложных собственных значений. Однако, если существуют повторные собственные значения или кластеры ближайших собственных значений, размер блока может быть больше.

Например, для системы с собственными значениями (λ1,σ±jω,λ2), модальная матрица A имеет вид

[λ10000σω00ωσ0000λ2]

Сопутствующая форма

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

Для системы с характеристическим полиномом

P(s)=sn+α1sn1++αn1s+αn

соответствующая матрица A компаньона

A=[01000001000001000001αnαn1αn2αn3  α1]

Сопутствующее преобразование требует, чтобы система была управляема с первого входа. Близкая форма плохо обусловлена для большинства расчетов в пространстве состояний; избегайте использовать его, когда это возможно.

Совет

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

  • Для некоторых проблем, качество подгонки используя n4sid чувствителен к опциям, таким как N4Horizon, значения которого могут оказаться трудными для определения. Для сравнения, качество подгонки ssregest менее чувствителен к его опциям, что делает ssregest более простой в использовании.

Алгоритмы

ssregest оценивает регулярную модель ARX и преобразует модель ARX в модель пространства состояний. Затем программное обеспечение использует сбалансированные методы сокращения модели, чтобы уменьшить модель пространства состояний до заданного порядка.

Ссылки

[1] Ljung, L. System Identification: Theory For the User, Second Edition, Appendix 4A, pp 132-134, Upper Saddle River, N.J: Prentice Hall, 1999.

Введенный в R2014a