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 object. The axes object 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 object. The axes object 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 создает график сингулярного значения Ганкеля, который показывает относительные энергетические вклады каждого состояния в системе. Состояния с относительно маленькими сингулярными значениями Ганкеля способствуют мало точности модели и могут быть отброшены с небольшим ударом. Индекс самого высокого состояния, которое вы сохраняете, является порядком модели. Окно графика включает предложение для порядка использовать. Можно принять это предложение или ввести различный заказ. Для примера смотрите, Определяют Оптимальный Предполагаемый Порядок Модели.

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

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

Опции оценки в виде n4sidOptions опция установлена. Опции заданы opt включение:

  • Цель оценки

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

  • Подпространство связанный с алгоритмом выбор

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

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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

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

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

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

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

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

N4Horizon

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

Fit

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

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

Мера по нормированной среднеквадратической ошибке (NRMSE) того, как хорошо ответ модели соответствует данным об оценке, описанным как процент fitpercent = 100 (1-NRMSE).

LossFcn

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

MSE

Мера по среднеквадратической ошибке (MSE) того, как хорошо ответ модели соответствует данным об оценке.

FPE

Итоговая ошибка предсказания для модели.

AIC

Необработанная мера по Критериям информации о Akaike (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: Теория для Пользователя, Приложение 4A, Второй Выпуск, стр 132–134. Верхний Сэддл-Ривер, NJ: PTR Prentice Hall, 1999.

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

[3] Verhaegen, M. "Идентификация детерминированной части моделей в пространстве состояний MIMO". Automatica, 1994, Издание 30, стр 61–74.

[4] Larimore, W.E. "Канонический анализ варьируемой величины в идентификации, фильтрации и адаптивном управлении". Продолжения 29-й Конференции по IEEE по Решению и Управлению, 1990, стр 596–604.

[5] Маккельви, T., Х. Аккей и Л. Лджанг. "Основанная на подпространстве многомерная система идентификации из данных о частотной характеристике". Транзакции IEEE на Автоматическом управлении, 1996, Издание 41, стр 960–979.

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