nlgreyestOptions

Набор опций для nlgreyest

Описание

пример

opt = nlgreyestOptions создает набор опций по умолчанию для nlgreyest. При необходимости используйте запись через точку, чтобы настроить набор опций.

пример

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' и структуру с полями:

Имя поляОписаниеДефолт
MaxDifference

Наибольшее допустимое возмущение параметра при вычислении числовых производных. Задано как положительное действительное значение > 'MinDifference'.

Inf
MinDifference

Наименьшее допустимое возмущение параметра при вычислении числовых производных. Задается как положительное действительное значение < 'MaxDifference'.

0.01*sqrt(eps)
DifferenceScheme

Метод для вычисления числовых производных относительно компонентов параметров и/или начального состояния (состояний), чтобы сформировать якобиан. Указывается как одно из следующего:

  • 'Auto' - Автоматически выбирает из следующих методов.

  • 'Central approximation'

  • 'Forward approximation'

  • 'Backward approximation'

'Auto'
Type

Метод, используемый при вычислении производных (якобиан) параметров или начальных состояний, которые будут оценены. Указывается как одно из следующего:

  • 'Auto' - Автоматически выбирает из следующих методов.

  • 'Basic' - Индивидуально вычисляет все числовые производные, необходимые для формирования каждого столбца якобиана.

  • 'Refined' - Одновременно вычисляет все числовые производные, необходимые для формирования каждого столбца якобиана.

'Auto'

Чтобы задать значения полей в GradientOptions, создайте nlgreyestOptions по умолчанию установите и измените поля с помощью записи через точку. Все поля, которые вы не изменяете, сохраняют значения по умолчанию.

opt = nlgreyestOptions;
opt.GradientOptions.Type = 'Basic';

Управляет, генерируются ли ковариационные данные параметра, задается как true (1) или false (0).

Настройка отображения прогресса оценки, заданная как разделенная разделенными запятой парами, состоящая из 'Display' и одно из следующих:

  • 'off' - Информация о прогрессе или результатах не отображается.

  • 'on' - Информация о структуре модели и результатах оценки отображаются в окне progress-viewer.

Опции для регулярной оценки параметров модели, заданные как разделенная разделенными запятой парами, состоящая из 'Regularization' и структуру с полями:

Имя поляОписаниеДефолт
LambdaСмещение от балансовой константы отклонения, заданное как неотрицательный скаляр.0 - Отсутствие регуляризации.
RВзвешивающая матрица, заданная как вектор неотрицательных скаляров или квадратная положительная полуопределенная матрица. Длина должна быть равна количеству свободных параметров в модели, np. Используйте nparams команда для определения количества параметров модели.1 - Указывает значение eye(np).
Nominal

Номинальное значение, к которому тянутся свободные параметры во время оценки, задается как одно из следующего:

  • 'zero' - Потяните параметры к нулю.

  • 'model' - Потяните параметры к ранее существующим значениям в начальной модели.

'zero'

Чтобы задать значения полей в Regularization, создайте nlgreyestOptions по умолчанию установите и измените поля с помощью записи через точку. Все поля, которые вы не изменяете, сохраняют значения по умолчанию.

opt = nlgreyestOptions;
opt.Regularization.Lambda = 1.2;
opt.Regularization.R = 0.5*eye(np);

Регуляризация является методом для определения ограничений гибкости модели, которые уменьшают неопределенность в оцененных значениях параметров. Для получения дополнительной информации см. «Регуляризованные оценки параметров модели».

Численный метод поиска, используемый для итерационной оценки параметра, заданный как разделенная разделенными запятой парами, состоящая из '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' и набор опций поиска с полями, которые зависят от значения SearchMethod.

SearchOptions Структура при SearchMethod Задается как 'lsqnonlin' или 'auto', Когда Optimization Toolbox доступен

Имя поляОписаниеДефолт
FunctionTolerance

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

Значение FunctionTolerance является тем же самым, что и у opt.SearchOptions.Advanced.TolFun.

1e-5
StepTolerance

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

Значение StepTolerance является тем же самым, что и у opt.SearchOptions.Advanced.TolX.

1e-6
MaxIterations

Максимальное количество итераций во время минимизации функции потерь, заданное как положительное целое число. Итерации останавливаются, когда MaxIterations достигается или удовлетворяется другой критерий остановки, такой как FunctionTolerance.

Значение MaxIterations является тем же самым, что и у opt.SearchOptions.Advanced.MaxIter.

20
Advanced

Расширенные настройки поиска, заданные как набор опций для lsqnonlin.

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

Использование optimset('lsqnonlin') чтобы создать набор опций по умолчанию.

SearchOptions Структура при SearchMethod Задается как 'gn', 'gna', 'lm', 'grad', или 'auto', Когда Optimization Toolbox не доступен

Имя поляОписаниеДефолт
Tolerance

Минимальный процент различия между текущим значением функции потерь и ее ожидаемым улучшением после следующей итерации, заданным как положительная скалярная величина. Когда процент ожидаемого улучшения меньше Tolerance, итерации прекращаются. Оценка ожидаемого улучшения функции потерь при следующей итерации основана на векторе Гаусса-Ньютона, вычисленном для текущего значения параметров.

1e-5
MaxIterations

Максимальное количество итераций во время минимизации функции потерь, заданное как положительное целое число. Итерации останавливаются, когда MaxIterations достигается или удовлетворяется другой критерий остановки, такой как Tolerance.

Настройка MaxIterations = 0 возвращает результат процедуры запуска.

Использование sys.Report.Termination.Iterations чтобы получить фактическое количество итераций во время оценки, где sys является idtf модель.

20
Advanced

Дополнительные параметры поиска, заданные как структура со следующими полями:

Имя поляОписаниеДефолт
GnPinvConstant

Якобианский матричный порог сингулярного значения, заданный как положительная скалярная величина. Сингулярные значения якобиевой матрицы, которые меньше GnPinvConstant*max(size(J)*norm(J)*eps) отбрасываются при вычислении направления поиска. Применяется при SearchMethod является 'gn'.

10000
InitialGnaTolerance

Начальное значение gamma, заданное как положительная скалярная величина. Применяется при SearchMethod является 'gna'.

0.0001
LMStartValue

Начальное значение длины направления поиска, d в методе Левенберга-Марквардта, задается как положительная скалярная величина. Применяется при SearchMethod является 'lm'.

0.001
LMStep

Размер шага Левенберга - Марквардта, заданный как положительное целое число. Следующее значение длины направления поиска, d в методе Левенберга-Марквардта LMStep умножить на предыдущий. Применяется при SearchMethod является 'lm'.

2
MaxBisections

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

25
MaxFunctionEvaluations

Максимальное количество вызовов файла модели в виде положительного целого числа. Итерации останавливаются, если количество вызовов файла модели превышает это значение.

Inf
MinParameterChange

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

0
RelativeImprovement

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

0
StepReduction

Коэффициент сокращения шага, заданный как положительная скалярная величина, которая больше 1. Предлагаемое обновление параметра уменьшается на множитель StepReduction после каждой попытки. Это сокращение продолжается до любого из них MaxBisections попытка завершена или получено меньшее значение функции критерия.

StepReduction не применяется для SearchMethod 'lm' (метод Левенберга-Марквардта).

2

SearchOptions Структура при SearchMethod Задается как 'fmincon'

Имя поляОписаниеДефолт
Algorithm

fmincon алгоритм оптимизации, заданный как один из следующих:

  • 'sqp' - Алгоритм последовательного квадратичного программирования. Алгоритм удовлетворяет границам на всех итерациях, и он может восстановиться после NaN или Inf результаты. Это не масштабный алгоритм. Для получения дополнительной информации см. «Алгоритмы большого и среднего масштаба» (Optimization Toolbox).

  • 'trust-region-reflective' - Метод доверительной области подпространства, основанный на светоотражающем внутреннем методе Ньютона. Это масштабный алгоритм.

  • 'interior-point' - Крупномасштабный алгоритм, который требует программного обеспечения Optimization Toolbox. Алгоритм удовлетворяет границам на всех итерациях, и он может восстановиться после NaN или Inf результаты.

  • 'active-set' - Требуется программное обеспечение Optimization Toolbox. Алгоритм может сделать большие шаги, что добавляет скорости. Это не масштабный алгоритм.

Для получения дополнительной информации об алгоритмах смотрите Ограниченные алгоритмы нелинейной оптимизации (Optimization Toolbox) и Выбор алгоритма (Optimization Toolbox).

'sqp'
FunctionTolerance

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

1e-6
StepTolerance

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

1e-6
MaxIterations

Максимальное количество итераций во время минимизации функции потерь, заданное как положительное целое число. Итерации останавливаются, когда MaxIterations достигается или удовлетворяется другой критерий остановки, такой как FunctionTolerance.

100

Чтобы задать значения полей в SearchOptions, создайте nlgreyestOptions по умолчанию установите и измените поля с помощью записи через точку. Все поля, которые вы не изменяете, сохраняют значения по умолчанию.

opt = nlgreyestOptions('SearchMethod','gna');
opt.SearchOptions.MaxIterations = 50;
opt.SearchOptions.Advanced.RelImprovement = 0.5;

Взвешивание ошибки предсказания в оценках мультивыхода, заданное как разделенная разделенными запятой парами, состоящая из 'OutputWeight' и одно из следующих:

  • [] - Взвешивание не используется. Определение как [] то же, что и eye(Ny), где Ny - количество выходов.

  • 'noise' - Оптимальное взвешивание автоматически вычисляется как обратное расчетного отклонения шума. Это взвешивание минимизирует det(E'*E/N), где E - матрица ошибок предсказания и N количество выборок данных. Эта опция недоступна при использовании 'lsqnonlin' как 'SearchMethod'.

  • Положительная полуопределённая матрица, W, размера, равного количеству выходов. Это взвешивание минимизирует trace(E'*E*W/N), где E - матрица ошибок предсказания и N количество выборок данных.

Дополнительные расширенные опции, заданные как разделенная разделенными запятой парами, состоящая из 'Advanced' и структуру с полем:

Имя поляОписаниеДефолт
ErrorThresholdПорог того, когда настроить вес больших ошибок с квадратичного на линейный, задаётся как неотрицательный скаляр. Ошибки больше ErrorThreshold умножение предполагаемого стандартного отклонения на линейный вес в функции потерь. Стандартное отклонение оценивается робастно как медиана абсолютных отклонений от медианы ошибок предсказания, разделенных на 0,7. Если ваши данные оценки содержат выбросы, попробуйте задать ErrorThreshold на 1.6.0 - Приводит к чисто квадратичной функции потерь.

Чтобы задать значения полей в Advanced, создайте nlgreyestOptions по умолчанию установите и измените поля с помощью записи через точку. Все поля, которые вы не изменяете, сохраняют значения по умолчанию.

opt = nlgreyestOptions;
opt.Advanced.ErrorThreshold = 1.2;

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

свернуть все

Набор опций для nlgreyest, возвращается как nlgreyestOptions набор опций.

Вопросы совместимости

расширить все

См. также

Введенный в R2015a
Для просмотра документации необходимо авторизоваться на сайте