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