exponenta event banner

ssest

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

Описание

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

пример

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

(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) использует модель state-space 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 объект. Это те же данные, которые используются для оценки модели четвертого порядка в State-Space Model.

load iddata1 z1

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

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

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

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

Выберите порядок модели в списке Выбранный порядок (Selected 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);

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(Панель инструментов системы управления) или 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 не является state-space (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

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

Показатель качества модели Raw 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. Идентификация системы: теория для пользователя, второе издание. Река Верхнее Седло, Нью-Джерси: Prentice Hall PTR, 1999.

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

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