n4sid

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

Описание

пример

sys = n4sid(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), 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);

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

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

Выберите порядок модели в списке Chosen 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 (Control System Toolbox) или idfrd)

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

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

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

    • Domain'Frequency'

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 'estimate' - Оцените компонент. Матрица K рассматривается как свободный параметр. Для данных временной области, 'estimate' является значением по умолчанию.

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

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

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

свернуть все

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

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

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

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

Method

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

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

Необработанная мера качества модели 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. System Identification: Theory for the User, Appendix 4A, Second Edition, pp. 132-134. Upper Saddle River, NJ: Prentice Hall PTR, 1999.

[2] van Overschee, P., and B. De Moor. Идентификация подпространства линейных систем: теория, реализация, приложения. Springer Publishing: 1996.

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

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

[5] McKelvey, T., H. Akcay, and L. Ljung. «Основанная на подпространстве многопараметрическая система идентификации из данных частотной характеристики». Транзакции IEEE по автоматическому контролю, 1996, том 41, стр. 960-979.

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