ssest

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

Описание

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

пример

sys = ssest(data,nx) оценивает модель пространства состояний в непрерывном времени sys порядка nx, использование данных data который может находиться в временном интервале или частотном диапазоне. sys является моделью следующей формы:

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).

пример

sys = ssest(data,nx,Name,Value) включает дополнительные опции, заданные одним или несколькими аргументами пары "имя-значение". Для примера оцените модель в дискретном времени путем определения шага расчета 'Ts' аргумент пары "имя-значение". Используйте 'Form', 'Feedthrough', и 'DisturbanceModel' Аргументы пары "имя-значение" для изменения поведения по умолчанию матриц A, B, C, D и K.

пример

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

Сконфигурируйте начальные параметры

пример

sys = ssest(data,init_sys) использует модель пространства состояний init_sys для конфигурирования начальной параметризации.

sys = ssest(data,init_sys,opt) оценивает модель с помощью набора опций opt.

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

пример

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

Примеры

свернуть все

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

Загрузите входно-выходные данные, которые хранятся в iddata объект.

load iddata1 z1

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

nx = 4;
sys = ssest(z1,nx);

Сравните моделируемую характеристику модели с измеренным выходом.

compare(z1,sys)

Figure contains an axes. The axes contains 2 objects of type line. These objects represent z1 (y1), sys: 70.78%.

График показывает, что процент соответствия между моделируемой моделью и данными оценки больше 70%.

Вы можете просмотреть больше информации об оценке, исследуя idss свойства sys.Report.

sys.Report
ans = 
          Status: 'Estimated using SSEST with prediction focus'
          Method: 'SSEST'
    InitialState: 'zero'
        N4Weight: 'CVA'
       N4Horizon: [6 10 10]
             Fit: [1x1 struct]
      Parameters: [1x1 struct]
     OptionsUsed: [1x1 idoptions.ssest]
       RandState: []
        DataUsed: [1x1 struct]
     Termination: [1x1 struct]

Для примера узнайте больше об условиях расторжения.

sys.Report.Termination
ans = struct with fields:
                 WhyStop: 'No improvement along the search direction with line search.'
              Iterations: 7
    FirstOrderOptimality: 85.9759
                FcnCount: 123
              UpdateNorm: 14.2002
         LastImprovement: 0

Отчет включает информацию о количестве итераций и причине остановки итерации оценки.

Загрузите входно-выходные данные z1, который хранится в iddata объект. Это те же данные, что и для оценки модели четвертого порядка в модели пространства состояний.

load iddata1 z1

Определите оптимальный порядок модели путем определения аргумента nx как область значений от 1:10.

nx = 1:10;
sys = ssest(z1,nx);

Автоматически сгенерированный график показывает сингулярные значения Ханкеля для моделей порядков, заданных nx.

Состояния с относительно маленькими сингулярными значениями Ханкеля могут быть безопасно отброшены. Предлагаемый выбор порядка по умолчанию 2.

Выберите порядок модели в списке Chosen Order и нажмите Apply.

Загрузка данных отклика системы во временной области.

load iddata7 z7;

Идентифицируйте модель данных в пространстве состояний четвертого порядка. Задайте известную задержку 2 секунд для первого входа и 0 секунд для второго входа.

nx = 4;
sys = ssest(z7(1:300),nx,'InputDelay',[2;0]);

Измените каноническую форму матриц A, B и C, включите исходный член в матрицу D и устраните оценку модели возмущения в матрице K.

Загрузите данные ввода-вывода и оцените систему четвертого порядка с помощью ssest опции по умолчанию.

load iddata1 z1
sys1 = ssest(z1,4);

Укажите сопутствующую форму и сравните A матрица с A по умолчанию матрица.

sys2 = ssest(z1,4,'Form','companion');
A1 = sys1.A
A1 = 4×4

   -0.5155   -3.8483    0.6657   -0.2666
    5.8665   -2.7285    1.0649   -1.4694
   -0.4487    0.9308   -0.6235   18.8148
   -0.4192    0.5595  -16.0688    0.5399

A2 = sys2.A
A2 = 4×4
103 ×

         0         0         0   -7.1122
    0.0010         0         0   -0.9547
         0    0.0010         0   -0.3263
         0         0    0.0010   -0.0033

Включите исходный термин и сравните D матрицы.

sys3 = ssest(z1,4,'Feedthrough',1);
D1 = sys1.D
D1 = 0
D3 = sys3.D
D3 = 0.0339

Исключите моделирование нарушений порядка и сравните K матрицы.

sys4 = ssest(z1,4,'DisturbanceModel','none');
K1 = sys1.K
K1 = 4×1

    0.0520
    0.0973
    0.0151
    0.0270

K4 = sys4.K
K4 = 4×1

     0
     0
     0
     0

Задайте ssest оценить начальные состояния как параметры независимой оценки.

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

Загрузите входно-выходные данные z1 и оцените модель пространства состояний второго порядка sys использование опций по умолчанию. Используйте синтаксис, который возвращает начальные состояния x0.

load iddata1 z1
[sys,x0] = ssest(z1,2);
x0
x0 = 2×1

     0
     0

По умолчанию оценка выполняется с помощью 'auto' настройка для InitialState. Узнайте, какой метод ssest применяется путем рассмотрения значения InitialState в sys.Reporт.

sys.Report.InitialState
ans = 
'zero'

Программное обеспечение применило 'zero' метод, означающий, что программное обеспечение устанавливает начальные состояния в нулевые, а не оценивает их. Этот выбор соответствует 0 значения, возвращенные для x0.

Задайте, что ssest оцените начальные состояния как независимые параметры, используя 'estimate' настройка. Использование ssestOptions чтобы создать измененный набор опций и задать этот набор опций для оценки новой модели.

opt = ssestOptions('InitialState','estimate');
[sys1,x0] = ssest(z1,2,opt);
x0
x0 = 2×1

    0.0068
    0.0052

x0 теперь имеет оцененные параметры с ненулевыми значениями.

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

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

load regularizationExampleData eData;

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

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

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

opt = ssestOptions('SearchMethod','lm');
m = ssest(eData,5,'form','modal','DisturbanceModel','none','Ts',eData.Ts,opt);

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

opt.Regularization.Lambda = 10;
mr = ssest(eData,5,'form','modal','DisturbanceModel','none','Ts',eData.Ts,opt);

Сравните выходы модели с данными оценки.

compare(eData,m,mr);

Figure contains an axes. The axes contains 3 objects of type line. These objects represent eData (y1), m: 83.85%, mr: 83.68%.

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

impulse(trueSys,m,mr,50);
legend('trueSys','m','mr');

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

Оцените модель пространства состояний измеренных входно-выходных данных. Сконфигурируйте ограничения параметров и начальные значения для оценки с помощью модели пространства состояний.

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

A = blkdiag([-0.1 0.4; -0.4 -0.1],[-1 5; -5 -1]);
B = [1; zeros(3,1)]; 
C = [1 1 1 1]; 
D = 0; 
K = zeros(4,1);
x0 = [0.1 0.1 0.1 0.1];
Ts = 0;
init_sys = idss(A,B,C,D,K,x0,Ts);

Установка всех записей K на 0 создает idss модель без элемента нарушения порядка состояния.

Используйте Structure свойство для фиксации значений некоторых параметров модели. Сконфигурируйте модель так, чтобы B и K являются фиксированными, и только ненулевые значения A могут быть оценены.

init_sys.Structure.A.Free = (A~=0);
init_sys.Structure.B.Free = false;
init_sys.Structure.K.Free = false;

Записи в init_sys.Structure.A.Free определить, соответствуют ли соответствующие записи в init_sys.A свободны (true) или фиксированный (false).

Загрузите измеренные данные и оцените модель пространства состояний с помощью ограничений параметра и начальных значений, заданных init_sys.

load iddata2 z2;
sys = ssest(z2,init_sys);

Предполагаемые параметры sys удовлетворить ограничениям, заданным в init_sys.

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

свернуть все

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

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

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

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

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

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

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

    • Domain'Frequency'

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

Для мультиэксперентных данных шаги расчета и поведение интерсампов всех экспериментов должны совпадать.

Область данных определяет тип модели, которую вы можете оценить.

  • Данные частотного диапазона во временной области или в дискретном времени - модели непрерывного времени и дискретного времени

  • Непрерывные данные частотного диапазона - только модели непрерывного времени

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

  • Если вы уже знаете, какой порядок вы хотите, чтобы ваша предполагаемая модель имела, задайте nx как скаляр.

  • Если вы хотите сравнить область значений потенциальных порядков, чтобы выбрать наиболее эффективный порядок для вашей оценочной модели, задайте область значений в nx. ssest создает график Ханкеля с сингулярным значением, который показывает относительные энергетические вклады каждого состояния в системе. Состояния с относительно небольшими сингулярными значениями Ханкеля мало способствуют точности модели и могут быть отброшены с небольшим влиянием. Индекс самого высокого состояния, которое вы сохраняете, является порядком модели. Окно plot включает предложение для порядка на использование. Вы можете принять это предложение или ввести другой порядок. Для получения примера смотрите Определение Оптимального Предполагаемого Порядка Модели.

    Если вы не задаете nx, или если вы задаете nx как bestпрограммное обеспечение автоматически выбирает nx из области значений 1:10.

  • Если вы идентифицируете статическую систему, установите nx на 0.

Опции оценки, заданные как ssestOptions набор опций. Опции, заданные opt включают:

  • Цель оценки

  • Обработка начальных условий

  • Регуляризация

  • Численный метод поиска, используемый для оценки

Для примеров, показывающих, как использовать opt, см. Оценка начальных состояний как независимых параметров и оценка модели пространства состояний с использованием регуляризации.

Линейная система, которая конфигурирует начальную параметризацию sys, заданный как idss модель или как структура. Получаете init_sys путем выполнения оценки с использованием измеренных данных или путем прямой конструкции.

Если init_sys является idss модель, ssest использует значения параметров init_sys как исходное предположение для оценки sys. Для получения информации о том, как задать idss, см. Оценка моделей пространства состояний со структурированной параметризацией. ssest учитывает ограничения, накладываемые на параметры init_sys, таких как фиксированные коэффициенты и минимальные/максимальные границы.

Используйте Structure свойство init_sys настроить начальные значения параметров и ограничения для A, B, C, D, и K матрицы. Для примера:

  • Чтобы задать начальное предположение для матрицы A init_sys, задать init_sys.Structure.A.Value как начальное предположение.

  • Чтобы задать ограничения для B матрицы init_sys:

    • Задайте init_sys.Structure.B.Minimum к минимальному значению матрицы B

    • Задайте init_sys.Structure.B.Maximum к максимальному B значению матрицы

    • Задайте init_sys.Structure.B.Free чтобы указать, являются ли записи матрицы B свободными параметрами для оценки

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

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

Если init_sys не является пространством состояний (idss) модель, программное обеспечение сначала преобразует init_sys в idss модель. ssest использует параметры получившейся модели в качестве начального предположения для оценки.

Если вы не задаете opt и init_sys был получен путем оценки, затем программное обеспечение использует опции оценки из init_sys.Report.OptionsUsed.

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

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

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

Пример: sys = ssest(data,nx,'Ts',0.1)

Шаги расчета предполагаемой модели, заданные как разделенная запятой пара, состоящие из 'Ts' и любой из них 0 или положительная скалярная величина.

  • Для моделей в непрерывном времени задайте 'Ts' как 0.

  • Для моделей в дискретном времени задайте 'Ts' как данные шаги расчета в модулях, хранящейся в TimeUnit свойство.

Входная задержка для каждого входного канала, заданная как разделенная разделенными запятой парами, состоящая из 'InputDelay' и числовой вектор.

  • Для моделей в непрерывном времени задайте 'InputDelay' в модулях времени, сохраненных в TimeUnit свойство.

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

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

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

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

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

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

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

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

Определения канонических форм см. в Canonical State-Space Realizations.

Для получения дополнительной информации см. «Оценка моделей пространства состояний с канонической параметризацией». Для получения примера см. раздел «Изменение форм, Сквозного соединения и Возмущения матриц».

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

Для получения примера см. раздел «Изменение форм, Сквозного соединения и Возмущения матриц».

Опция для оценки параметров шумового компонента во временной области в матрице K, заданная как разделенная разделенными запятой парами, состоящая из 'DisturbanceModel' и одно из следующих значений:

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

  • 'none' - Не оценивать компонент. Элементы матрицы K зафиксированы в нуле.

Для данных частотного диапазона программное обеспечение принимает, что 'DisturbanceModel' является 'none'.

Для получения примера см. раздел «Изменение форм, Сквозного соединения и Возмущения матриц».

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

свернуть все

Идентифицированная модель пространства состояний, возвращенная как idss модель. Эта модель создается с использованием заданных порядков модели, задержек и опций оценки.

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

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

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

Method

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

InitialState

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

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

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

  • 'backcast' - начальное состояние оценивается с использованием наилучшей аппроксимации методом наименьших квадратов.

  • Вектор-столбец длины Nx, где Nx - количество состояний. Для мультиэкспериментных данных - матрица с Ne столбцами, где Ne - количество экспериментов.

  • Параметрический объект начального условия (x0obj), созданный с использованием idpar. Только для моделей пространства состояний в дискретном времени.

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

N4Weight

Схема взвешивания, используемая для сингулярного разложения алгоритмом N4SID, возвращенная как одно из следующих значений:

  • 'MOESP' - Использует алгоритм MOESP.

  • 'CVA' - Использует канонический алгоритм вариации.

  • 'SSARX' - метод идентификации подпространства, который использует основанный на оценке ARX алгоритм для вычисления взвешивания.

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

N4Horizon

Прямой и обратный горизонты предсказания, используемые алгоритмом N4SID, возвращенные как вектор-строка с тремя элементами -   [r sy su], где r - максимальный горизонт предсказания вперед. sy количество прошлых выходов и su - количество прошлых входов, используемых для предсказаний.

Fit

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

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

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

LossFcn

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

MSE

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

FPE

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

AIC

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

AICc

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

nAIC

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

BIC

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

Parameters

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

OptionsUsed

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

RandState

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

DataUsed

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

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

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

Type

Тип данных.

Length

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

Ts

Шаг расчета. Это эквивалентно Data.Ts.

InterSample

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

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

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

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

Значение Intersample не влияет на результаты оценки для моделей в дискретном времени.

InputOffset

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

OutputOffset

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

Termination

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

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

Причина завершения численного поиска.

Iterations

Количество итераций поиска, выполненных алгоритмом оценки.

FirstOrderOptimality

-norm вектора поиска градиента, когда алгоритм поиска заканчивается.

FcnCount

Количество вызовов целевой функции.

UpdateNorm

Норма вектора поиска градиента в последней итерации. Опускается, когда метод поиска 'lsqnonlin' или 'fmincon'.

LastImprovement

Улучшение критерия в последней итерации, выраженное в процентах. Опускается, когда метод поиска 'lsqnonlin' или 'fmincon'.

Algorithm

Алгоритм, используемый 'lsqnonlin' или 'fmincon' метод поиска. Опускается, когда используются другие методы поиска.

Для методов оценки, которые не требуют численной оптимизации поиска, Termination поле опущено.

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

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

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

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

Алгоритмы

ssest инициализирует оценки параметров с помощью или нетеративного подпространственного подхода, или итерационного подхода оценки рациональной функции. Затем он уточняет значения параметров, используя подход минимизации ошибок предсказания. Для получения дополнительной информации см. pem и ssestOptions.

Ссылки

[1] Ljung, L. System Identification: Теория для пользователя, Second Edition. Upper Saddle River, NJ: Prentice Hall PTR, 1999.

Расширенные возможности

Введенный в R2012a