ssest

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

Синтаксис

sys = ssest(data,nx)
sys = ssest(data,nx,Name,Value)
sys = ssest(___,opt)
sys = ssest(data,init_sys)
sys = ssest(data,init_sys,opt)
[sys,x0] = ssest(___)

Описание

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

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) оценивает модель с помощью дополнительных опций, заданных одним или несколькими аргументами пары Name,Value. Используйте Form, аргументы пары "имя-значение" Feedthrough и DisturbanceModel, чтобы изменить поведение по умолчанию A, B, C, D и матриц K.

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

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

sys = ssest(data,init_sys,opt) оценивает модель с помощью набора опции, opt.

[sys,x0] = ssest(___) возвращает значение начальных состояний, вычисленных во время оценки.

Входные параметры

свернуть все

data

Данные об оценке.

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

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

  • Записанные данные о частотной характеристике (frd или idfrd)

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

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

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

    • Domain'Frequency'

nx

Порядок предполагаемой модели.

Задайте nx как положительное целое число. nx может быть скаляром или вектором. Если nx является вектором, то ssest создает график, который можно использовать, чтобы выбрать подходящий порядок модели. График показывает сингулярные значения Ганкеля для моделей различных порядков. Состояния с относительно маленькими сингулярными значениями Ганкеля могут быть безопасно отброшены. Выбор по умолчанию предлагается в графике.

opt

Опции оценки.

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

  • Цель оценки

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

  • Числовой метод поиска используется для оценки

Если opt не задан, и init_sys является ранее предполагаемой моделью idss, опции от init_sys.Report.OptionsUsed используются.

init_sys

Линейная система, которая конфигурирует начальную параметризацию sys.

Вы получаете init_sys или выполнением оценки с помощью результатов измерений или прямой конструкцией.

Если init_sys является моделью idss, ssest использует значения параметров init_sys как исходное предположение для оценки sys. Для получения информации о том, как задать idss, смотрите Оценочные Модели в пространстве состояний со Структурированной Параметризацией. Ограничения на параметры init_sys, такие как зафиксированные коэффициенты и минимальные/максимальные границы соблюдаются в оценке 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 свободными параметрами для оценки

Если init_sys не является моделью (idss) пространства состояний, программное обеспечение сначала преобразовывает init_sys в модель idss. ssest использует параметры получившейся модели как исходное предположение для оценки.

Если opt не задан, и init_sys был получен оценкой, то опции оценки от init_sys.Report.OptionsUsed используются.

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Шаг расчета, заданный как положительная скалярная величина.

Для непрерывно-разовых моделей используйте Ts = 0. Для моделей дискретного времени задайте Ts как положительную скалярную величину, значение которой равно шагу расчета данных.

Введите задержку каждого входного канала, заданного как числовой вектор. Для непрерывно-разовых систем задайте входные задержки единицы измерения времени, сохраненной в свойстве TimeUnit. Для систем дискретного времени задайте входные задержки целочисленных множителей шага расчета Ts. Например, InputDelay = 3 означает задержку трех периодов выборки.

Для системы с входными параметрами Nu, набор InputDelay к Nu-by-1 вектор. Каждая запись этого вектора является численным значением, которое представляет входную задержку соответствующего входного канала.

Можно также установить InputDelay на скалярное значение применять ту же задержку со всеми каналами.

Тип канонической формы sys, заданного как одно из следующих значений:

  • 'modal' — Получите sys в модальной форме.

  • 'companion' — Получите sys в сопутствующей форме.

  • 'free' — Все записи A, B и матриц C обработаны как свободные.

  • 'canonical' — Получите sys в канонической форме наблюдаемости [1].

Используйте Form, аргументы пары "имя-значение" Feedthrough и DisturbanceModel, чтобы изменить поведение по умолчанию A, B, C, D и матриц K.

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

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

Используйте Form, аргументы пары "имя-значение" Feedthrough и DisturbanceModel, чтобы изменить поведение по умолчанию A, B, C, D и матриц K.

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

  • 'none' Шумовой компонент не оценивается. Значение матрицы K фиксируется к нулевому значению.

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

DisturbanceModel должен быть 'none' при использовании данных частотного диапазона.

Используйте Form, аргументы пары "имя-значение" Feedthrough и DisturbanceModel, чтобы изменить поведение по умолчанию A, B, C, D и матриц K.

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

sys

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

LossFcn

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

MSE

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

FPE

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

AIC

Необработанная мера по Критериям информации о Akaike (AIC) образцового качества.

AICc

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

nAIC

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

BIC

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

Parameters

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

OptionsUsed

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

RandState

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

DataUsed

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

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

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

Type

Тип данных. Для моделей ARX это установлено в 'Time domain data'.

Length

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

Ts

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

InterSample

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

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

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

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

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

InputOffset

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

OutputOffset

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

Termination

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

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

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

Iterations

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

FirstOrderOptimality

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

FcnCount

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

UpdateNorm

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

LastImprovement

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

Algorithm

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

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

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

x0

Начальные состояния вычисляются во время оценки.

Если data содержит несколько экспериментов, то x0 является массивом с каждым столбцом, соответствующим эксперименту.

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

Примеры

Определите оптимальный предполагаемый порядок модели

Получите измеренные данные ввода - вывода.

load icEngine.mat;
data = iddata(y,u,0.04);

data является объектом iddata, содержащим 1 500 выборок данных ввода - вывода. Шаг расчета данных составляет 0,04 секунды.

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

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

Появляется график, который показывает сингулярные значения Ганкеля (SVD) для моделей порядков, заданных nx.

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

Выберите порядок модели в Model Order выпадающий список и нажмите Apply.

Идентифицируйте модель в пространстве состояний с входной задержкой

Загрузите данные об отклике системы временного интервала.

load iddata7 z7;

Идентифицируйте модель в пространстве состояний четвертого порядка данных. Задайте известную задержку секунд 2 для первого входа и секунды 0 для второго входа.

nx = 4;
sys = ssest(z7(1:300),nx,'InputDelay',[2;0]);

Оцените модель в пространстве состояний Используя регуляризацию

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

Загрузите данные об оценке.

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.

Сокращение порядка модели по оценке

Считайте модель Simulink idF14Model. Линеаризация этой модели дает модель девятого порядка. Однако динамика модели может быть получена, не ставя под угрозу подходящее качество слишком много, с помощью модели более низкоуровневой.

Получите линеаризовавшую модель.

load_system('idF14Model');
io = getlinio('idF14Model');
sys_lin = linearize('idF14Model',io);

sys_lin является моделью в пространстве состояний девятого порядка с двумя выходными параметрами и одним входом.

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

Ts = 0.0444;
t = (0:Ts:4.44)';
y = step(sys_lin,t);

data = iddata([zeros(20,2);y],[zeros(20,1); ones(101,1)],Ts);

data является объектом iddata, который инкапсулирует переходной процесс sys_lin.

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

compare(data,sys_lin);

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

Идентифицируйте модель в пространстве состояний с уменьшаемым порядком, который соответственно соответствует данным.

Определите оптимальный порядок модели.

nx = 1:9;
sys1 = ssest(data,nx,'DisturbanceModel','none');

Появляется график, показывающий сингулярные значения Ганкеля (SVD) для моделей порядков, заданных nx.

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

В подсказке команды MATLAB выберите порядок модели для предполагаемой модели в пространстве состояний. Задайте порядок модели как 5 или нажмите Enter, чтобы использовать стоимость заказа по умолчанию.

Сравните данные с предполагаемой моделью.

compare(data,sys1);

sys1 обеспечивает 98,4%, подходящие для первого вывода и 97,7%, подходящие для второго вывода.

Исследуйте останавливающееся условие на алгоритм поиска.

sys1.Report.Termination.WhyStop
ans = 
'Maximum number of iterations reached.'

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

opt = ssestOptions('SearchMethod','lm');
opt.SearchOptions.MaxIterations = 50;
opt.Display = 'on';

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

sys2 = ssest(data,sys1,opt);

Сравните ответ линеаризовавшего и предполагаемых моделей.

compare(data,sys_lin,sys2);

sys2 обеспечивает 99%, подходящих для первого вывода и 98%, подходящих для второго вывода при использовании 4 меньше состояний, чем sys_lin.

Больше о

свернуть все

Модальная форма

В модальной форме A является блочно диагональной матрицей. Размер блока обычно 1 на 1 для действительных собственных значений и 2 на 2 для комплексных собственных значений. Однако, если существуют повторенные собственные значения или кластеры соседних собственных значений, размер блока может быть больше.

Например, для системы с собственными значениями (λ1,σ±jω,λ2), модальная матрица A имеет форму

[λ10000σω00ωσ0000λ2]

Сопутствующая форма

В сопутствующей реализации характеристический полином системы появляется явным образом в крайнем правом столбце матрицы A.

Для системы с характеристическим полиномом

p(s)=sn+α1sn1++αn1s+αn

соответствующий компаньон матрица A

A=[00....0αn100..0αn1010.:::0..::0..10α20....01α1]

Сопутствующее преобразование требует, чтобы система была управляема от первого входа. Сопутствующая форма плохо обусловливается для большинства вычислений пространства состояний; избегайте использования его, если это возможно.

Алгоритмы

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

Ссылки

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

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

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