exponenta event banner

n4sid

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

Описание

пример

sys = n4sid(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), D по умолчанию является оцениваемым параметром.

пример

sys = n4sid(data,nx,Name,Value) включает дополнительные параметры, заданные одним или несколькими аргументами пары «имя-значение». Например, чтобы оценить модель непрерывного времени, укажите время выборки 'Ts' как 0. Используйте 'Form', 'Feedthrough', и 'DisturbanceModel' аргументы пары имя-значение для изменения поведения по умолчанию матриц A, B, C, D и K.

пример

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

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

Примеры

свернуть все

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

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

load iddata1 z1

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

nx = 4;
sys = n4sid(z1,nx)
sys =
  Discrete-time identified state-space model:
    x(t+Ts) = A x(t) + B u(t) + K e(t)
       y(t) = C x(t) + D u(t) + e(t)
 
  A = 
              x1         x2         x3         x4
   x1     0.8392    -0.3129    0.02105    0.03743
   x2     0.4768     0.6671     0.1428   0.003757
   x3   -0.01951    0.08374   -0.09761      1.046
   x4  -0.003885   -0.02914    -0.8796   -0.03171
 
  B = 
              u1
   x1    0.02635
   x2   -0.03301
   x3  7.256e-05
   x4  0.0005861
 
  C = 
            x1       x2       x3       x4
   y1    69.08    26.64   -2.237  -0.5601
 
  D = 
       u1
   y1   0
 
  K = 
              y1
   x1   0.003282
   x2   0.009339
   x3  -0.003232
   x4   0.003809
 
Sample time: 0.1 seconds
  
Parameterization:
   FREE form (all coefficients in A, B, C free).
   Feedthrough: none
   Disturbance component: estimate
   Number of free coefficients: 28
   Use "idssdata", "getpvec", "getcov" for parameters and their uncertainties.

Status:                                          
Estimated using N4SID on time domain data "z1".  
Fit to estimation data: 76.33% (prediction focus)
FPE: 1.21, MSE: 1.087                            

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

compare(z1,sys)

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

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

Дополнительную информацию об оценке можно просмотреть, изучив idss собственность sys.Report.

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

Например, узнайте больше о предполагаемом начальном состоянии.

sys.Report.Parameters.X0
ans = 4×1

   -0.0085
    0.0052
   -0.0193
    0.0282

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

load iddata1 z1

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

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

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

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

Выберите порядок модели в списке Выбранный порядок (Selected Order) и нажмите кнопку Применить (Apply).

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

load iddata2 z2

Укажите параметры оценки. Установка схемы взвешивания 'N4Weight' кому 'SSARX' и опция отображения состояния оценки 'Display' кому 'on'.

opt = n4sidOptions('N4Weight','SSARX','Display','on')
Option set for the n4sid command:

          InitialState: 'estimate'
              N4Weight: 'SSARX'
             N4Horizon: 'auto'
               Display: 'on'
           InputOffset: []
          OutputOffset: []
    EstimateCovariance: 1
          OutputWeight: []
                 Focus: 'prediction'
       WeightingFilter: []
      EnforceStability: 0
              Advanced: [1x1 struct]

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

nx = 3;
sys = n4sid(z2,nx,opt);

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

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

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

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

sys2 = n4sid(z1,4,'Form','modal');
A1 = sys1.A
A1 = 4×4

    0.8392   -0.3129    0.0211    0.0374
    0.4768    0.6671    0.1428    0.0038
   -0.0195    0.0837   -0.0976    1.0462
   -0.0039   -0.0291   -0.8796   -0.0317

A2 = sys2.A
A2 = 4×4

    0.7554    0.3779         0         0
   -0.3779    0.7554         0         0
         0         0   -0.0669    0.9542
         0         0   -0.9542   -0.0669

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

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

Устранение моделирования возмущений и сравнение K матрицы.

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

    0.0033
    0.0093
   -0.0032
    0.0038

K4 = sys4.K
K4 = 4×1

     0
     0
     0
     0

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

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

load iddata1 z1

Оцените модель. Набор Ts кому 0 для задания непрерывной модели.

nx = 2;
sys = n4sid(z1,nx,'Ts',0,'Form','canonical');

sys - модель пространства состояний непрерывного времени второго порядка в канонической форме.

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

Формирование данных оценки с замкнутым контуром для системы второго порядка, поврежденной белым шумом.

N = 1000; 
K = 0.5;
rng('default');
w = randn(N,1);
z = zeros(N,1); 
u = zeros(N,1); 
y = zeros(N,1);
e = randn(N,1);
v = filter([1 0.5],[1 1.5 0.7],e);
for k = 3:N
   u(k-1) = -K*y(k-2) + w(k);
   u(k-1) = -K*y(k-1) + w(k);
   z(k) = 1.5*z(k-1) - 0.7*z(k-2) + u(k-1) + 0.5*u(k-2);
   y(k) = z(k) + 0.8*v(k);
end
dat = iddata(y, u, 1);

Укажите схему взвешивания 'N4weight' используется алгоритмом N4SID. Создайте два набора опций. Для одного набора опций установите 'N4weight' кому 'CVA'. Для другого набора опций установите 'N4weight' кому 'SSARX'.

optCVA = n4sidOptions('N4weight','CVA');
optSSARX = n4sidOptions('N4weight','SSARX');

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

sysCVA = n4sid(dat,2,optCVA);
sysSSARX = n4sid(dat,2,optSSARX);

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

compare(dat,sysCVA,sysSSARX);

Figure contains an axes. The axes contains 3 objects of type line. These objects represent dat (y1), sysCVA: 71.26%, sysSSARX: 77.1%.

Как показано на графике, модель, оцененная с использованием алгоритма SSARX, производит лучшее соответствие, чем модель, оцененная с использованием алгоритма CVA.

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

свернуть все

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

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

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

  • Записанные данные частотной характеристики (frd(Панель инструментов системы управления) или idfrd)

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

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

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

    • Domain'Frequency'

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

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

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

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

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

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

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

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

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

  • При идентификации статической системы установите nx кому 0.

Параметры оценки, указанные как n4sidOptions набор опций. Параметры, указанные opt включают:

  • Цель оценки

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

  • Варианты, связанные с алгоритмом подпространства

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

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

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

Пример: sys = n4sid(data,nx,'Form','modal')

Время выборки расчетной модели, указанной как разделенная запятыми пара, состоящая из '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-матрица рассматривается как свободный параметр. Для данных временной области 'estimate' является значением по умолчанию.

  • 'none' - Не оценивайте шумовую составляющую. Элементы матрицы K зафиксированы на нуле. Для данных в частотной области 'none' является значением по умолчанию и единственным допустимым значением.

Пример см. в разделе Изменение матриц форм, каналов и моделей возмущений.

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

свернуть все

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

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

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

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

Method

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

InitialState

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

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

  • 'estimate' - Исходное состояние рассматривается как независимый параметр оценки.

Это поле особенно полезно, когда '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

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

RandState

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

DataUsed

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

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

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

Type

Тип данных.

Length

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

Ts

Время выборки.

InterSample

Поведение ввода между образцами, возвращаемое как одно из следующих значений:

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

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

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

InputOffset

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

OutputOffset

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

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

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

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

Ссылки

[1] Ljung, L. Идентификация системы: теория для пользователя, Приложение 4A, второе издание, стр. 132-134. Река Верхнее Седло, Нью-Джерси: Prentice Hall PTR, 1999.

[2] ван Оверчи, П. и Б. Де Моор. Идентификация линейных систем в подпространстве: теория, реализация, применение. Springer Publishing: 1996.

[3] Верхеген, М. «Идентификация детерминированной части моделей пространства состояний MIMO». Automatica, 1994, том 30, стр. 61-74.

[4] Ларимор, W.E. «Канонический вариативный анализ в идентификации, фильтрации и адаптивном управлении». Материалы 29-й Конференции ИЭЭЭ по принятию решений и контролю, 1990 год, стр. 596-604.

[5] Маккельви, T., Х. Аккей и Л. Лджанг. «Многопараметрическая идентификация системы на основе подпространства из данных частотного отклика». IEEE Transactions on Automatic Control, 1996, том 41, стр. 960-979.

Представлен до R2006a