Набор опций для nlgreyest
создает набор опций по умолчанию для opt
= nlgreyestOptionsnlgreyest
. При необходимости используйте запись через точку, чтобы настроить набор опций.
создает набор опций с опциями, заданными одним или несколькими opt
= nlgreyestOptions(Name,Value
)Name,Value
аргументы в виде пар. Опции, которые вы не задаете, сохраняют свое значение по умолчанию.
opt = nlgreyestOptions;
Создайте набор опций оценки для nlgreyest
для просмотра прогресса оценки и установки максимальных шагов итерации равными 50.
opt = nlgreyestOptions;
opt.Display = 'on';
opt.SearchOptions.MaxIterations = 50;
Загрузка данных.
load(fullfile(matlabroot,'toolbox','ident','iddemos','data','dcmotordata')); z = iddata(y,u,0.1,'Name','DC-motor');
Данные от линейного двигателя постоянного тока с одним входом (напряжением) и двумя выходами (угловое положение и скорость вращения). Структура модели задается dcmotor_m.m
файл.
Создайте нелинейную модель серого ящика.
file_name = 'dcmotor_m'; Order = [2 1 2]; Parameters = [1;0.28]; InitialStates = [0;0]; init_sys = idnlgrey(file_name,Order,Parameters,InitialStates,0, ... 'Name','DC-motor');
Оцените параметры модели с помощью опций оценки.
sys = nlgreyest(z,init_sys,opt);
Создайте набор опций для nlgreyest
где:
Ковариационные данные параметра не генерируются.
Для оценки используется метод подпространства Гаусса-Ньютона методом наименьших квадратов.
opt = nlgreyestOptions('EstimateCovariance',false,'SearchMethod','gn');
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
nlgreyestOptions('Display','on')
'GradientOptions'
- Опции для вычисления якобианов и градиентовОпции для вычисления якобианов и градиентов, заданные как разделенная разделенными запятой парами, состоящая из 'GradientOptions'
и структуру с полями:
Имя поля | Описание | Дефолт |
---|---|---|
MaxDifference | Наибольшее допустимое возмущение параметра при вычислении числовых производных. Задано как положительное действительное значение > | Inf |
MinDifference | Наименьшее допустимое возмущение параметра при вычислении числовых производных. Задается как положительное действительное значение < | 0.01*sqrt(eps) |
DifferenceScheme | Метод для вычисления числовых производных относительно компонентов параметров и/или начального состояния (состояний), чтобы сформировать якобиан. Указывается как одно из следующего:
| 'Auto' |
Type | Метод, используемый при вычислении производных (якобиан) параметров или начальных состояний, которые будут оценены. Указывается как одно из следующего:
| 'Auto' |
Чтобы задать значения полей в GradientOptions
, создайте nlgreyestOptions
по умолчанию установите и измените поля с помощью записи через точку. Все поля, которые вы не изменяете, сохраняют значения по умолчанию.
opt = nlgreyestOptions;
opt.GradientOptions.Type = 'Basic';
'EstimateCovariance'
- Настройка ковариации данных1
или true
(по умолчанию) | 0
или false
Управляет, генерируются ли ковариационные данные параметра, задается как true
(1
) или false
(0
).
'Display'
- Настройка отображения прогресса оценки'off'
(по умолчанию) | 'on'
Настройка отображения прогресса оценки, заданная как разделенная разделенными запятой парами, состоящая из 'Display'
и одно из следующих:
'off'
- Информация о прогрессе или результатах не отображается.
'on'
- Информация о структуре модели и результатах оценки отображаются в окне progress-viewer.
'Regularization'
- Опции для регулярной оценки параметров моделиОпции для регулярной оценки параметров модели, заданные как разделенная разделенными запятой парами, состоящая из 'Regularization'
и структуру с полями:
Имя поля | Описание | Дефолт |
---|---|---|
Lambda | Смещение от балансовой константы отклонения, заданное как неотрицательный скаляр. | 0 - Отсутствие регуляризации. |
R | Взвешивающая матрица, заданная как вектор неотрицательных скаляров или квадратная положительная полуопределенная матрица. Длина должна быть равна количеству свободных параметров в модели, np . Используйте nparams команда для определения количества параметров модели. | 1 - Указывает значение eye(np) . |
Nominal |
Номинальное значение, к которому тянутся свободные параметры во время оценки, задается как одно из следующего:
| 'zero' |
Чтобы задать значения полей в Regularization
, создайте nlgreyestOptions
по умолчанию установите и измените поля с помощью записи через точку. Все поля, которые вы не изменяете, сохраняют значения по умолчанию.
opt = nlgreyestOptions; opt.Regularization.Lambda = 1.2; opt.Regularization.R = 0.5*eye(np);
Регуляризация является методом для определения ограничений гибкости модели, которые уменьшают неопределенность в оцененных значениях параметров. Для получения дополнительной информации см. «Регуляризованные оценки параметров модели».
'SearchMethod'
- Численный метод поиска, используемый для итерационной оценки параметра'auto'
(по умолчанию) | 'gn'
| 'gna'
| 'lm'
| 'grad'
| 'lsqnonlin'
Численный метод поиска, используемый для итерационной оценки параметра, заданный как разделенная разделенными запятой парами, состоящая из 'SearchMethod'
и одно из следующих:
'auto'
- Если Optimization Toolbox™ доступна, 'lsqnonlin'
используется. В противном случае, комбинация алгоритмов поиска по линии, 'gn'
, 'lm'
, 'gna'
, и 'grad'
методы пробуются последовательно при каждой итерации. Используется первое направление спуска, ведущее к снижению стоимости оценки.
'gn'
- Подпространство Гаусса-Ньютона поиск наименьших квадратов. Сингулярные значения якобиевой матрицы менее GnPinvConstant*eps*max(size(J))*norm(J)
отбрасываются при вычислении направления поиска. J - якобианская матрица. Матрица Гессия аппроксимируется JTJ. Если улучшения в этом направлении нет, функция пробует градиентное направление.
'gna'
- Адаптивный подпространство Gauss-Newton search. Собственные значения меньше gamma*max(sv)
Гессиан игнорируются, где sv являются сингулярными значениями Гессиана. Направление Гаусса-Ньютона вычисляется в оставшемся подпространстве. gamma имеет начальное значение InitialGnaTolerance
(см. Advanced
в 'SearchOptions'
для получения дополнительной информации. Это значение увеличивается на множитель LMStep
каждый раз, когда поиск не находит меньшее значение критерия менее чем за пять бисекций. Это значение уменьшается на множитель 2*LMStep
каждый раз, когда поиск успешен без каких-либо бисекций.
'lm'
- поиск Левенберга-Марквардта методом наименьших квадратов, где следующее значение параметров -pinv(H+d*I)*grad
от предыдущего. H - Гессиан, I - тождества матрица, а grad - градиент. d - это число, которое увеличивается до тех пор, пока не будет найдено более низкое значение критерия.
'grad'
- Наискорейший спуск поиска методом наименьших квадратов.
'lsqnonlin'
- Алгоритм, отражающий доверительную область lsqnonlin
(Optimization Toolbox). Требуется программное обеспечение Optimization Toolbox.
'fmincon'
- Нелинейные решатели с ограничениями. Можно использовать последовательное квадратичное программирование (SQP) и отражающие доверительную область алгоритмы fmincon
решатель. Если у вас есть программное обеспечение Optimization Toolbox, можно также использовать алгоритмы interior-point и active-set fmincon
(Optimization Toolbox) решатель. Задайте алгоритм в SearchOptions.Algorithm
опция. The fmincon
алгоритмы могут привести к улучшению результатов оценки в следующих сценариях:
Ограниченные задачи минимизации, когда существуют ограничения, накладываемые на параметры модели.
Моделируйте структуры, где функция потерь является нелинейной или не сглаженной функцией параметров.
Оценка модели с мультивыходами. Функция определяющих минимизируется по умолчанию для оценки модели MIMO. fmincon
алгоритмы способны минимизировать такие функции потерь непосредственно. Другие доступные методы поиска, такие как 'lm'
и 'gn'
минимизировать функцию определяющих путем поочередной оценки отклонения шума и уменьшения значения потерь для заданного значения отклонения шума. Следовательно, fmincon
алгоритмы могут предложить лучшую эффективность и точность для оценок мультивыхода.
'SearchOptions'
- Набор опций для алгоритма поискаНабор опций для алгоритма поиска, заданный как разделенная разделенными запятой парами, состоящая из 'SearchOptions'
и набор опций поиска с полями, которые зависят от значения SearchMethod
.
SearchOptions
Структура при SearchMethod
Задается как 'lsqnonlin'
или 'auto'
, Когда Optimization Toolbox доступен
Имя поля | Описание | Дефолт |
---|---|---|
FunctionTolerance | Допуск на разрыв функции потерь, которую программное обеспечение минимизирует, чтобы определить оцененные значения параметров, заданные как положительная скалярная величина. Значение | 1e-5 |
StepTolerance | Допуск на разрыв для предполагаемых значений параметров, заданный как положительная скалярная величина. Значение | 1e-6 |
MaxIterations | Максимальное количество итераций во время минимизации функции потерь, заданное как положительное целое число. Итерации останавливаются, когда Значение | 20 |
Advanced | Расширенные настройки поиска, заданные как набор опций для Для получения дополнительной информации смотрите таблицу Опции Оптимизации в Опциях Оптимизации (Optimization Toolbox). | Использование optimset('lsqnonlin') чтобы создать набор опций по умолчанию. |
SearchOptions
Структура при SearchMethod
Задается как 'gn'
, 'gna'
, 'lm'
, 'grad'
, или 'auto'
, Когда Optimization Toolbox не доступен
Имя поля | Описание | Дефолт | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tolerance | Минимальный процент различия между текущим значением функции потерь и ее ожидаемым улучшением после следующей итерации, заданным как положительная скалярная величина. Когда процент ожидаемого улучшения меньше | 1e-5 | ||||||||||||||||||||||||||||||
MaxIterations | Максимальное количество итераций во время минимизации функции потерь, заданное как положительное целое число. Итерации останавливаются, когда Настройка Использование | 20 | ||||||||||||||||||||||||||||||
Advanced | Дополнительные параметры поиска, заданные как структура со следующими полями:
|
SearchOptions
Структура при SearchMethod
Задается как 'fmincon'
Имя поля | Описание | Дефолт |
---|---|---|
Algorithm |
Для получения дополнительной информации об алгоритмах смотрите Ограниченные алгоритмы нелинейной оптимизации (Optimization Toolbox) и Выбор алгоритма (Optimization Toolbox). | 'sqp' |
FunctionTolerance | Допуск на разрыв функции потерь, которую программное обеспечение минимизирует, чтобы определить оцененные значения параметров, заданные как положительная скалярная величина. | 1e-6 |
StepTolerance | Допуск на разрыв для предполагаемых значений параметров, заданный как положительная скалярная величина. | 1e-6 |
MaxIterations | Максимальное количество итераций во время минимизации функции потерь, заданное как положительное целое число. Итерации останавливаются, когда | 100 |
Чтобы задать значения полей в SearchOptions
, создайте nlgreyestOptions
по умолчанию установите и измените поля с помощью записи через точку. Все поля, которые вы не изменяете, сохраняют значения по умолчанию.
opt = nlgreyestOptions('SearchMethod','gna'); opt.SearchOptions.MaxIterations = 50; opt.SearchOptions.Advanced.RelImprovement = 0.5;
'OutputWeight'
- Взвешивание ошибки предсказания в многозначных оценках[]
(по умолчанию) | 'noise'
| матрицаВзвешивание ошибки предсказания в оценках мультивыхода, заданное как разделенная разделенными запятой парами, состоящая из 'OutputWeight'
и одно из следующих:
[]
- Взвешивание не используется. Определение как []
то же, что и eye(Ny)
, где Ny
- количество выходов.
'noise'
- Оптимальное взвешивание автоматически вычисляется как обратное расчетного отклонения шума. Это взвешивание минимизирует det(E'*E/N)
, где E
- матрица ошибок предсказания и N
количество выборок данных. Эта опция недоступна при использовании 'lsqnonlin'
как 'SearchMethod'
.
Положительная полуопределённая матрица, W
, размера, равного количеству выходов. Это взвешивание минимизирует trace(E'*E*W/N)
, где E
- матрица ошибок предсказания и N
количество выборок данных.
'Advanced'
- Дополнительные расширенные опцииДополнительные расширенные опции, заданные как разделенная разделенными запятой парами, состоящая из 'Advanced'
и структуру с полем:
Имя поля | Описание | Дефолт |
---|---|---|
ErrorThreshold | Порог того, когда настроить вес больших ошибок с квадратичного на линейный, задаётся как неотрицательный скаляр. Ошибки больше ErrorThreshold умножение предполагаемого стандартного отклонения на линейный вес в функции потерь. Стандартное отклонение оценивается робастно как медиана абсолютных отклонений от медианы ошибок предсказания, разделенных на 0,7. Если ваши данные оценки содержат выбросы, попробуйте задать ErrorThreshold на 1.6 . | 0 - Приводит к чисто квадратичной функции потерь. |
Чтобы задать значения полей в Advanced
, создайте nlgreyestOptions
по умолчанию установите и измените поля с помощью записи через точку. Все поля, которые вы не изменяете, сохраняют значения по умолчанию.
opt = nlgreyestOptions; opt.Advanced.ErrorThreshold = 1.2;
opt
- Набор опций для nlgreyest
nlgreyestOptions
набор опцийНабор опций для nlgreyest
, возвращается как nlgreyestOptions
набор опций.
В имена году были изменены опции анализа некоторых оценок и R2018a. Прежние имена все еще работают. Для получения дополнительной информации смотрите R2018a релиза примечание Переименование оценки и Опции анализа.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.