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)

График показывает, что подходящий процент между симулированной моделью и данными об оценке больше 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: 8.1714
         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.Report.

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

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

impulse(trueSys,m,mr,50);
legend('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 или idfrd)

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

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

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

    • Domain'Frequency'

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

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

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

  • Временной интервал или данные частотного диапазона дискретного времени — Модели непрерывного и дискретного времени

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

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

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

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

    Если вы не задаете 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 в канонической форме наблюдаемости.

Для определений канонических форм смотрите Каноническую Реализацию Пространства состояний.

Для получения дополнительной информации смотрите Оценочные Модели в пространстве состояний с Канонической Параметризацией. Для примера смотрите, Изменяют Форму, Сквозное соединение и Матрицы Возмущения.

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

Для примера смотрите, Изменяют Форму, Сквозное соединение и Матрицы Возмущения.

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

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

  • 'none' — Не оценивайте шумовой компонент. Элементы матрицы K фиксируются в нуле.

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

Для примера смотрите, Изменяют Форму, Сквозное соединение и Матрицы Возмущения.

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

свернуть все

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

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

Сообщите о полеОписание
Status

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

Method

Команда оценки используется.

InitialState

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

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

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

  • 'backcast' — Начальное состояние оценивается с помощью лучшего метода наименьших квадратов.

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

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

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

N4Weight

Схема Weighting, используемая в сингулярном разложении алгоритмом 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 (AIC) качества модели.

AICc

Маленький объем выборки откорректировал AIC.

nAIC

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

BIC

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

Parameters

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

OptionsUsed

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

RandState

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

DataUsed

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

Поле Описание
Name

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

Type

Тип данных.

Length

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

Ts

'SampleTime' . Это эквивалентно Data.Ts.

InterSample

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

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

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

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

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

InputOffset

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

OutputOffset

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

Termination

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

Поле Описание
WhyStop

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

Iterations

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

FirstOrderOptimality

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

FcnCount

Число раз целевая функция было названо.

UpdateNorm

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

LastImprovement

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

Algorithm

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

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

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

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

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

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

Алгоритмы

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

Ссылки

[1] Ljung, L. System Identification: теория для пользователя, второго выпуска. Верхний Сэддл-Ривер, NJ: PTR Prentice Hall, 1999.

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

Представленный в R2012a