Оцените модель Хаммерстайна-Винера
совершенствовал или оценивает параметры модели Хаммерстайна-Винера, sys
= nlhw(Data
,sys0
)sys0
, использование данных об оценке.
Используйте этот синтаксис для:
Обновите параметры ранее предполагаемой модели, чтобы улучшить подгонку к данным об оценке. В этом случае алгоритм оценки использует параметры sys0
как исходные предположения.
Оцените, что параметры модели ранее создали использование idnlhw
конструктор. До оценки можно сконфигурировать свойства модели с помощью записи через точку.
load iddata3
m1 = nlhw(z3,[4 2 1]);
Загрузка данных.
load twotankdata; z = iddata(y,u,0.2,'Name','Two tank system'); z1 = z(1:1000);
Создайте объект насыщения с нижним пределом 0 и верхним пределом 5.
InputNL = idSaturation('LinearInterval',[0 5]);
Оценочная модель без выходной нелинейности.
m = nlhw(z1,[2 3 0],InputNL,[]);
Генерация пользовательской сетевой нелинейности требует определения пользовательской модульной функции.
Задайте модуль, функционируют и сохраняют его как gaussunit.m
.
function [f,g,a] = gaussunit(x) % Custom unit function nonlinearity. % % Copyright 2015 The MathWorks, Inc. f = exp(-x.*x); if nargout>1 g = -2*x.*f; a = 0.2; end
Создайте пользовательскую сетевую нелинейность с помощью gaussunit
функция.
H = @gaussunit; CNet = idCustomNetwork(H);
Загрузите данные об оценке.
load twotankdata; z = iddata(y,u,0.2,'Name','Two tank system'); z1 = z(1:1000);
Оцените модель Хаммерстайна-Винера использование пользовательской сети.
m = nlhw(z1,[5 1 3],CNet,[]);
Оцените линейную модель OE.
load throttledata.mat Tr = getTrend(ThrottleData); Tr.OutputOffset = 15; DetrendedData = detrend(ThrottleData, Tr); opt = oeOptions('Focus','simulation'); LinearModel = oe(DetrendedData,[1 2 1],opt);
Оцените модель Хаммерстайна-Винера использование модели OE как ее линейный компонент и насыщение как ее выходная нелинейность.
sys = nlhw(ThrottleData,LinearModel,[],idSaturation);
idnlhw
сначала Задавать Model PropertiesЗагрузите данные об оценке.
load iddata1
Создайте модель Хаммерстайна-Винера использование idnlhw
задавать свойства B
модели и
F
.
sys0 = idnlhw([2,2,0],[],'idWaveletNetwork');
sys0.B{1} = [0.8,1];
sys0.F{1} = [1,-1.2,0.5];
Оцените модель.
sys = nlhw(z1,sys0);
Оцените модель Хаммерстайна-Винера использование nlhw
задавать свойства B
модели и
F
.
sys2 = nlhw(z1,[2,2,0],[],'idWaveletNetwork','B',{[0.8,1]},'F',{[1,-1.2,0.5]});
Сравните две предполагаемых модели, чтобы видеть, что они эквивалентны.
compare(z1,sys,'g',sys2,'r--');
nlhw
Оцените модель Хаммерстайна-Винера.
load iddata3 sys = nlhw(z3,[4 2 1],'idSigmoidNetwork','idWaveletNetwork');
Совершенствуйте модель, sys
.
sys = nlhw(z3,sys);
Создайте набор опции оценки для nlhw
чтобы просмотреть прогресс оценки, используйте метод поиска Levenberg-Marquardt и установите максимальные шаги итерации на 50
.
opt = nlhwOptions; opt.Display = 'on'; opt.SearchMethod = 'lm'; opt.SearchOptions.MaxIterations = 50;
Загрузите данные и оцените модель.
load iddata3
sys = nlhw(z3,[4 2 1],idSigmoidNetwork,idPiecewiseLinear,opt);
Data
— Данные об области времениiddata
объектДанные об оценке временного интервала в виде iddata
.
Orders
— Порядок и задержки линейной передаточной функции подсистемы [nb nf nk]
вектор из положительных целых чисел | [nb nf nk]
вектор из матрицПорядок и задержки линейной передаточной функции подсистемы в виде [nb nf nk]
вектор.
Размерности Orders
:
Для передаточной функции SISO, Orders
вектор из положительных целых чисел.
nb
количество нулей плюс 1, nf
количество полюсов и nk
входная задержка.
Для передаточной функции MIMO с nu
входные параметры и ny
выходные параметры, Orders
вектор из матриц.
nb
, nf
, и nk
ny
- nu
матрицы, i-j которых th запись задает порядки и задержку передаточной функции от j th вход к i th выход.
InputNL
— Введите статическую нелинейность'idPiecewiseLinear'
(значение по умолчанию) | 'idSigmoidNetwork'
| 'idWaveletNetwork'
| 'idSaturation'
| 'idDeadZone'
| 'idPolynomial1D'
| 'idUnitGain'
| средство оценки нелинейности возражает | массив средств оценки нелинейностиВведите статическое средство оценки нелинейности в виде одного из следующих.
'idPiecewiseLinear' или idPiecewiseLinear объект(значение по умолчанию) | Кусочная линейная функция |
'idSigmoidNetwork' или idSigmoidNetwork объект | Сигмоидальная сеть |
'idWaveletNetwork' или idWaveletNetwork объект | Сеть Wavelet |
'idSaturation' или idSaturation объект | Насыщение |
'idDeadZone' или idDeadZone объект | Мертвая зона |
'idPolynomial1D' или idPolynomial1D объект | Одномерный полином |
'idUnitGain' или [] илиidUnitGain объект | Модульное усиление |
idCustomNetwork объект | Пользовательская сеть — Подобно idSigmoidNetwork , но с пользовательской заменой для сигмоидальной функции. |
Определение вектора символов, например, 'idSigmoidNetwork'
, создает объект средства оценки нелинейности с настройками по умолчанию. Используйте объектное представление вместо этого, чтобы сконфигурировать свойства средства оценки нелинейности.
InputNL = idWaveletNetwork; InputNL.NumberOfUnits = 10;
В качестве альтернативы используйте связанную входную функцию средства оценки нелинейности с Аргументами пары "имя-значение".
InputNL = idWaveletNetwork('NumberOfUnits',10);
Для nu
введите каналы, можно задать нелинейные средства оценки индивидуально для каждого входного канала установкой InputNL
к nu
- 1 массив средств оценки нелинейности.
InputNL = [idSigmoidNetwork('NumberofUnits',5); idDeadZone([-1,2])]
OutputNL
— Выведите статическую нелинейность'idPiecewiseLinear'
(значение по умолчанию) | 'idSigmoidNetwork'
| 'idWaveletNetwork'
| 'idSaturation'
| 'idDeadZone'
| 'idPolynomial1D'
| 'idUnitGain'
| средство оценки нелинейности возражает | массив средств оценки нелинейностиВыведите статическое средство оценки нелинейности в виде одного из следующего:
'idPiecewiseLinear' или idPiecewiseLinear объект(значение по умолчанию) | Кусочная линейная функция |
'idSigmoidNetwork' или idSigmoidNetwork объект | Сигмоидальная сеть |
'idWaveletNetwork' или idWaveletNetwork объект | Сеть Wavelet |
'idSaturation' или idSaturation объект | Насыщение |
'idDeadZone' или idDeadZone объект | Мертвая зона |
'idPolynomial1D' или idPolynomial1D объект | Одномерный полином |
'idUnitGain' или [] илиidUnitGain объект | Модульное усиление |
idCustomNetwork объект | Пользовательская сеть — Подобно idSigmoidNetwork , но с пользовательской заменой для сигмоидальной функции. |
Определение вектора символов создает объект средства оценки нелинейности с настройками по умолчанию. Используйте объектное представление вместо этого, чтобы сконфигурировать свойства средства оценки нелинейности.
OutputNL = idSigmoidNetwork; OutputNL.NumberOfUnits = 10;
В качестве альтернативы используйте связанную входную функцию средства оценки нелинейности с Аргументами пары "имя-значение".
OutputNL = idSigmoidNetwork('NumberOfUnits',10);
Для ny
выведите каналы, можно задать нелинейные средства оценки индивидуально для каждого выходного канала установкой OutputNL
к ny
- 1 массив средств оценки нелинейности. Чтобы задать ту же нелинейность для всех выходных параметров, задайте одно выходное средство оценки нелинейности.
LinModel
— Дискретное время линейная модельidpoly
| idss
с K
= 0
| idtf
Дискретное время линейная модель раньше задавало линейную подсистему в виде одного из следующего:
Полиномиальная модель ввода - вывода структуры Ошибки на выходе (OE) (idpoly
)
Модель в пространстве состояний без компонента воздействия (idss
с K
= 0 )
Модель передаточной функции (idtf
)
Как правило, вы оцениваете использование модели oe
, n4sid
, или tfest
.
sys0
— Модель Хаммерстайна-Винераidnlhw
объектМодель Хаммерстайна-Винера в виде idnlhw
объект. sys0
может быть:
Модель ранее создала использование idnlhw
задавать свойства модели.
Модель ранее оценила использование nlhw
, то, что вы хотите обновить использование нового набора данных оценки.
Можно также совершенствовать sys0
использование исходного набора данных оценки. Если предыдущая оценка, остановленная, когда числовой поиск застрял в локальной переменной минимумы функции стоимости, использовать init
сначала рандомизировать параметры sys0
. Смотрите sys0.Report.Termination
для условий остановки поиска. Используя init
не гарантирует лучшего решения на дальнейшем улучшении.
Options
— Опции оценкиnlhwOptions
опция установленаОпции оценки для идентификации модели Хаммерстайна-Винера в виде nlhwOptions
опция установлена.
sys
— Предполагаемая модель Хаммерстайна-Винераidnlhw
объектПредполагаемая модель Хаммерстайна-Винера, возвращенная как idnlhw
объект. Модель оценивается с помощью заданных порядков модели и задержек, средств оценки нелинейности ввода и вывода и опций оценки.
Информация о результатах оценки и используемых опциях хранится в Report
свойство модели. Report
имеет следующие поля:
Сообщите о поле | Описание | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Сводные данные состояния модели, которое указывает, была ли модель создана конструкцией или получена оценкой. | ||||||||||||||||||
Method | Команда оценки используется. | ||||||||||||||||||
Fit | Количественная оценка оценки, возвращенной как структура. Смотрите Функцию потерь и Метрики качества Модели для получения дополнительной информации об этих метриках качества. Структура имеет следующие поля:
| ||||||||||||||||||
Parameters | Ориентировочные стоимости параметров модели. | ||||||||||||||||||
OptionsUsed | Набор опции используется для оценки. Если никакие пользовательские опции не были сконфигурированы, это - набор опций по умолчанию. Смотрите | ||||||||||||||||||
RandState | Состояние потока случайных чисел в начале оценки. | ||||||||||||||||||
DataUsed | Атрибуты данных используются для оценки, возвращенной как структура со следующими полями.
| ||||||||||||||||||
Termination | Условия завершения для итеративного поиска, используемого для ошибочной минимизации предсказания, возвращенной как структура со следующими полями:
Для методов оценки, которые не требуют числовой оптимизации поиска, |
Для получения дополнительной информации см. Отчет Оценки.
idnlarx
и idnlhw
отображение имен объектов не рекомендуется.Не рекомендуемый запуск в R2021b
Начиная в R2021b, объекты отображения (также известный как нелинейность) используемый в нелинейных компонентах idnlarx
и idnlhw
объекты были переименованы. В следующей таблице перечислены смены имени.
Имя Pre-R2021b | Имя R2021b |
---|---|
wavenet | idWaveletNetwork |
sigmoidnet | idSigmoidNetwork |
treepartition | idTreePartition |
customnet | idCustomNetwork |
saturation | idSaturation |
deadzone | idDeadZone |
pwlinear | idPiecewiseLinear |
poly1d | idPolynomial1D |
unitgain | idUnitGain |
linear | idLinear |
neuralnet | idFeedforwardNetwork |
Скрипты со старыми названиями все еще обычно запускаются, несмотря на то, что они произведут предупреждение. Рассмотрите использование новых имен для продолжения совместимости с недавно разработанными оценками и алгоритмами. Нет никаких планов исключить использование этих имен объектов в это время
Поддержка параллельных вычислений доступна для оценки с помощью lsqnonlin
метод поиска (требует Optimization Toolbox™). Чтобы включить параллельные вычисления, использовать nlhwOptions
, установите SearchMethod
к 'lsqnonlin'
, и набор SearchOptions.Advanced.UseParallel
к true
.
Например:
opt = nlhwOptions;
opt.SearchMethod = 'lsqnonlin';
opt.SearchOptions.Advanced.UseParallel = true;
idnlhw
| nlhwOptions
| idnlhw/findop
| linapp
| linearize
| pem
| init
| oe
| tfest
| n4sid
| goodnessOfFit
| aic
| fpe
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.