Оцените модель пространства состояний с использованием данных временной области или частотного диапазона
оценивает модель пространства состояний в непрерывном времени sys
= ssest(data
,nx
)sys
порядка nx
, использование данных data
который может находиться в временном интервале или частотном диапазоне. sys
является моделью следующей формы:
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.
Оцените модель пространства состояний и сравните ее ответ с измеренным выходом.
Загрузите входно-выходные данные, которые хранятся в iddata
объект.
load iddata1 z1
Оцените модель пространства состояний четвертого порядка.
nx = 4; sys = ssest(z1,nx);
Сравните моделируемую характеристику модели с измеренным выходом.
compare(z1,sys)
График показывает, что процент соответствия между моделируемой моделью и данными оценки больше 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
объект. Это те же данные, что и для оценки модели четвертого порядка в модели пространства состояний.
load iddata1 z1
Определите оптимальный порядок модели путем определения аргумента nx
как область значений от 1:10
.
nx = 1:10; sys = ssest(z1,nx);
Автоматически сгенерированный график показывает сингулярные значения Ханкеля для моделей порядков, заданных nx
.
Состояния с относительно маленькими сингулярными значениями Ханкеля могут быть безопасно отброшены. Предлагаемый выбор порядка по умолчанию 2
.
Выберите порядок модели в списке Chosen 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.Repor
т.
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);
Сравните импульсные характеристики модели.
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
.
data
- Оценка данныхiddata
| объекта frd
| объекта idfrd
объектОценочные данные, заданные как iddata
объект, frd
объект, или idfrd
объект.
Для оценки во временной области, data
должен быть iddata
объект, содержащий значения входного и выходного сигналов.
Для оценки частотного диапазона, data
может быть одним из следующих:
Данные оценки должны быть равномерно отобраны. По умолчанию программное обеспечение устанавливает шаг расчета модели на шаг расчета данных оценки.
Для мультиэксперентных данных шаги расчета и поведение интерсампов всех экспериментов должны совпадать.
Область данных определяет тип модели, которую вы можете оценить.
Данные частотного диапазона во временной области или в дискретном времени - модели непрерывного времени и дискретного времени
Непрерывные данные частотного диапазона - только модели непрерывного времени
nx
- Порядок расчетной модели1:10
(по умолчанию) | положительный целочисленный скаляр | положительный целочисленный вектор | 0
Порядок предполагаемой модели, заданный как неотрицательное целое число или как вектор, содержащий область значений положительных целых чисел.
Если вы уже знаете, какой порядок вы хотите, чтобы ваша предполагаемая модель имела, задайте nx
как скаляр.
Если вы хотите сравнить область значений потенциальных порядков, чтобы выбрать наиболее эффективный порядок для вашей оценочной модели, задайте область значений в nx
. ssest
создает график Ханкеля с сингулярным значением, который показывает относительные энергетические вклады каждого состояния в системе. Состояния с относительно небольшими сингулярными значениями Ханкеля мало способствуют точности модели и могут быть отброшены с небольшим влиянием. Индекс самого высокого состояния, которое вы сохраняете, является порядком модели. Окно plot включает предложение для порядка на использование. Вы можете принять это предложение или ввести другой порядок. Для получения примера смотрите Определение Оптимального Предполагаемого Порядка Модели.
Если вы не задаете nx
, или если вы задаете nx
как best
программное обеспечение автоматически выбирает nx
из области значений 1:10
.
Если вы идентифицируете статическую систему, установите nx
на 0
.
opt
- опции оценкиssestOptions
набор опцийОпции оценки, заданные как ssestOptions
набор опций. Опции, заданные opt
включают:
Цель оценки
Обработка начальных условий
Регуляризация
Численный метод поиска, используемый для оценки
Для примеров, показывающих, как использовать opt
, см. Оценка начальных состояний как независимых параметров и оценка модели пространства состояний с использованием регуляризации.
init_sys
- Линейная система, которая конфигурирует начальную параметризацию системыidss
модель | линейная модель | структураЛинейная система, которая конфигурирует начальную параметризацию 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
не является пространством состояний (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
(непрерывное время) (по умолчанию) | время расчета данных (data.Ts
) | положительная скалярная величинаШаги расчета предполагаемой модели, заданные как разделенная запятой пара, состоящие из 'Ts'
и любой из них 0
или положительная скалярная величина.
Для моделей в непрерывном времени задайте 'Ts'
как 0
.
Для моделей в дискретном времени задайте 'Ts'
как данные шаги расчета в модулях, хранящейся в TimeUnit
свойство.
'InputDelay'
- Входные задержки0
(по умолчанию) | скалярный вектор |Входная задержка для каждого входного канала, заданная как разделенная разделенными запятой парами, состоящая из 'InputDelay'
и числовой вектор.
Для моделей в непрерывном времени задайте 'InputDelay'
в модулях времени, сохраненных в TimeUnit
свойство.
Для моделей в дискретном времени задайте 'InputDelay'
в целочисленных множителях шага расчета Ts
. Для примера установка 'InputDelay'
на 3
задает задержку на три периода дискретизации.
Для системы с Nu входами установите InputDelay
к Nu -by-1 вектору. Каждый элемент этого вектора является числовым значением, которое представляет входу задержку для соответствующего канала входа. Для получения примера смотрите Идентифицируйте модель пространства состояний с Входом задержкой.
Чтобы применить ту же задержку ко всем каналам, задайте InputDelay
как скаляр.
'Form'
- Тип канонической формы'free'
(по умолчанию) | 'modal'
| 'companion'
| 'canonical'
Тип канонической формы sys
, заданная как разделенная разделенными запятой парами, состоящая из 'Form'
и одно из следующих значений:
'free'
- Все записи матриц A, B, C, D, и K рассматривают как свободные.
'modal'
- Получение sys
в модальной форме.
'companion'
- Получение sys
в сопутствующей форме.
'canonical'
- Получение sys
в канонической форме наблюдаемости.
Определения канонических форм см. в Canonical State-Space Realizations.
Для получения дополнительной информации см. «Оценка моделей пространства состояний с канонической параметризацией». Для получения примера см. раздел «Изменение форм, Сквозного соединения и Возмущения матриц».
'Feedthrough'
- Прямое сквозное соединение от входа до выхода0
(по умолчанию) | 1
| логический векторПрямое сквозное соединение от входа до выхода, заданная как разделенная разделенными запятой парами, состоящая из 'Feedthrough'
и логический вектор длины Nu, где Nu - количество входов. Если вы задаете Feedthrough
в качестве логического скаляра это значение применяется ко всем входам. Для статических систем программное обеспечение всегда принимает 'Feedthrough'
является 1
.
Для получения примера см. раздел «Изменение форм, Сквозного соединения и Возмущения матриц».
'DisturbanceModel'
- Опция для оценки параметров шумовой составляющей во временной области'estimate'
(по умолчанию) | 'none'
Опция для оценки параметров шумового компонента во временной области в матрице K, заданная как разделенная разделенными запятой парами, состоящая из 'DisturbanceModel'
и одно из следующих значений:
'estimate'
- Оцените компонент. Матрица K рассматривается как свободный параметр.
'none'
- Не оценивать компонент. Элементы матрицы K зафиксированы в нуле.
Для данных частотного диапазона программное обеспечение принимает, что 'DisturbanceModel'
является 'none'
.
Для получения примера см. раздел «Изменение форм, Сквозного соединения и Возмущения матриц».
sys
- Идентифицированная модель пространства состоянийidss
модельИдентифицированная модель пространства состояний, возвращенная как idss
модель. Эта модель создается с использованием заданных порядков модели, задержек и опций оценки.
Информация о результатах оценки и используемых опциях хранится в Report
свойство модели. Report
имеет следующие поля.
Поле отчета | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Сводными данными статуса модели, которое указывает, была ли модель создана конструкцией или получена оценкой. | ||||||||||||||||||
Method | Используется команда estimation. | ||||||||||||||||||
InitialState | Как исходные состояния обрабатывались во время оценки, возвращается как одно из следующих значений:
Это поле особенно полезно, когда | ||||||||||||||||||
N4Weight | Схема взвешивания, используемая для сингулярного разложения алгоритмом N4SID, возвращенная как одно из следующих значений:
Эта опция особенно полезна, когда | ||||||||||||||||||
N4Horizon | Прямой и обратный горизонты предсказания, используемые алгоритмом N4SID, возвращенные как вектор-строка с тремя элементами - | ||||||||||||||||||
Fit | Количественная оценка оценки, возвращенная как структура. Смотрите функции потерь и метрики качества модели для получения дополнительной информации об этих метриках качества. Структура имеет следующие поля:
| ||||||||||||||||||
Parameters | Оценочные значения параметров модели. | ||||||||||||||||||
OptionsUsed | Набор опций, используемый для оценки. Если пользовательские опции не были настроены, это набор опций по умолчанию. Посмотрите | ||||||||||||||||||
RandState | Состояние потока случайных чисел в начале оценки. Пустой, | ||||||||||||||||||
DataUsed | Атрибуты данных, используемых для оценки. Структурируйте следующие поля:
| ||||||||||||||||||
Termination | Условия завершения итерационного поиска, используемого для минимизации ошибки предсказания, возвращаются как структура со следующими полями:
Для методов оценки, которые не требуют численной оптимизации поиска, |
Для получения дополнительной информации об использовании Report
, см. Отчет по оценке.
x0
- Начальные состояния, вычисленные во время оценкиНачальные состояния, вычисленные во время оценки, возвращаются как массив, содержащий вектор-столбец, соответствующий каждому эксперименту.
Этот массив также хранится в Parameters
поле модели Report
свойство.
Для получения примера смотрите Оценку начальных состояний как независимых Параметров.
ssest
инициализирует оценки параметров с помощью или нетеративного подпространственного подхода, или итерационного подхода оценки рациональной функции. Затем он уточняет значения параметров, используя подход минимизации ошибок предсказания. Для получения дополнительной информации см. pem
и ssestOptions
.
[1] Ljung, L. System Identification: Теория для пользователя, Second Edition. Upper Saddle River, NJ: Prentice Hall PTR, 1999.
Поддержка параллельных вычислений доступна для оценки с помощью lsqnonlin
метод поиска (требует Optimization Toolbox™). Чтобы включить параллельные вычисления, используйте ssestOptions
, задать SearchMethod
на 'lsqnonlin'
, и задать SearchOptions.Advanced.UseParallel
на true
.
Для примера:
opt = ssestOptions;
opt.SearchMethod = 'lsqnonlin';
opt.SearchOptions.Advanced.UseParallel = true;
canon
| iddata
| idfrd
| idgrey
| idss
| n4sid
| pem
| polyest
| procest
| ssestOptions
| ssregest
| tfest
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.