Оценка параметров нелинейной модели ARX
оценивает нелинейную модель ARX в соответствии с заданными оценочными данными, используя указанные порядки моделей ARX и функцию вывода вейвлет-сети по умолчанию. Этот синтаксис используется при расширении линейной модели ARX или при использовании только тех регрессоров, которые являются линейными с последовательными лагами.sys = nlarx(data,orders)
оценивает нелинейную модель ARX с использованием указанного набора регрессоров sys = nlarx(data,regressors)regressors. Этот синтаксис используется при наличии линейных регрессоров, не имеющих последовательных лагов, или при наличии полиномиальных регрессоров, пользовательских регрессоров или обоих.
определяет функцию вывода, которая сопоставляет регрессоры с выводом модели. Этот синтаксис можно использовать с любой из предыдущих комбинаций входных аргументов.sys = nlarx(___,output_fcn)
определяет функцию вывода, используемую для оценки модели.sys = nlarx(data,linmodel,output_fcn)
оценивает или уточняет параметры нелинейной модели ARX sys = nlarx(data,sys0)sys0.
Используйте этот синтаксис для:
Оцените параметры модели, ранее созданной с помощью idnlarx конструктор. Перед оценкой можно настроить свойства модели с помощью точечной нотации.
Обновление параметров ранее оцененной модели для улучшения соответствия данным оценки. В этом случае алгоритм оценки использует параметры sys0 как первоначальные догадки.
Загрузите оценочные данные.
load twotankdata;Создание iddata объект из оценочных данных с временем выборки 0,2 секунды.
Ts = 0.2; z = iddata(y,u,Ts);
Оцените нелинейную модель ARX, используя порядки моделей ARX для задания регрессоров.
sysNL = nlarx(z,[4 4 1])
sysNL = Nonlinear ARX model with 1 output and 1 input Inputs: u1 Outputs: y1 Regressors: Linear regressors in variables y1, u1 List of all regressors Output function: Wavelet Network with 11 units Sample time: 0.2 seconds Status: Estimated using NLARX on time domain data "z". Fit to estimation data: 96.84% (prediction focus) FPE: 3.482e-05, MSE: 3.431e-05
sys использует значение по умолчанию wavenet функция в качестве функции вывода.
Для сравнения вычислите линейную модель ARX с теми же порядками моделей.
sysL = arx(z,[4 4 1]);
Сравните выходные данные модели с исходными данными.
compare(z,sysNL,sysL)

Нелинейная модель гораздо лучше подходит к данным, чем линейная модель.
Укажите линейный регрессор, эквивалентный матрице порядка модели ARX [4 4 1].
Матрица порядка [4 4 1] указывает, что наборы входных и выходных регрессоров содержат четыре регрессора с лагами в диапазоне от 1 до 4. Например, ) представляет второй входной регрессор.
Укажите имена вывода и ввода.
output_name = 'y1'; input_name = 'u1'; names = {output_name,input_name};
Укажите выходные и входные задержки.
output_lag = [1 2 3 4];
input_lag = [1 2 3 4];
lags = {output_lag,input_lag};Создайте объект линейного регрессора.
lreg = linearRegressor(names,lags)
lreg =
Linear regressors in variables y1, u1
Variables: {'y1' 'u1'}
Lags: {[1 2 3 4] [1 2 3 4]}
UseAbsolute: [0 0]
TimeVariable: 't'
Regressors described by this set
Загрузите оценочные данные и создайте объект iddata.
load twotankdata
z = iddata(y,u,0.2);Оцените нелинейную модель ARX.
sys = nlarx(z,lreg)
sys = Nonlinear ARX model with 1 output and 1 input Inputs: u1 Outputs: y1 Regressors: Linear regressors in variables y1, u1 List of all regressors Output function: Wavelet Network with 11 units Sample time: 0.2 seconds Status: Estimated using NLARX on time domain data "z". Fit to estimation data: 96.84% (prediction focus) FPE: 3.482e-05, MSE: 3.431e-05
Просмотр регрессоров
getreg(sys)
ans = 8×1 cell
{'y1(t-1)'}
{'y1(t-2)'}
{'y1(t-3)'}
{'y1(t-4)'}
{'u1(t-1)'}
{'u1(t-2)'}
{'u1(t-3)'}
{'u1(t-4)'}
Сравните выходные данные модели с оценочными данными.
compare(z,sys)

Создание массивов времени и данных.
dt = 0.01; t = 0:dt:10; y = 10*sin(2*pi*t)+rand(size(t));
Создание iddata объект без указанного входного сигнала.
z = iddata(y',[],dt);
Оцените нелинейную модель ARX.
sys = nlarx(z,2)
sys = Nonlinear time series model Outputs: y1 Regressors: Linear regressors in variables y1 List of all regressors Output function: Wavelet Network with 8 units Sample time: 0.01 seconds Status: Estimated using NLARX on time domain data "z". Fit to estimation data: 92.92% (prediction focus) FPE: 0.2568, MSE: 0.2507
Оценка нелинейной модели ARX, использующей функцию отображения sigmoidnet в качестве функции вывода.
Загрузка данных и их разделение на наборы данных оценки и проверки ze и zv.
load twotankdata.mat u y z = iddata(y,u,'Ts',0.2); ze = z(1:1500); zv = z(1501:end);
Сконфигурируйте sigmoidnet функция отображения. Зафиксируйте смещение равным 0,2, а количество единиц - равным 15.
s = sigmoidnet; s.Offset.Value = 0.2; s. NonlinearFcn.NumberOfUnits = 15;
Создайте спецификацию регрессора линейной модели, которая содержит четыре выходных регрессора и пять входных регрессоров.
reg1 = linearRegressor({'y1','u1'},{1:4,0:4});Создайте спецификацию регресса полиномиальной модели, которая содержит квадраты двух входных членов и трех выходных членов.
reg2 = polynomialRegressor({'y1','u1'},{1:2,0:2},2);Задайте параметры оценки для метода поиска и максимальное количество итераций.
opt = nlarxOptions('SearchMethod','fmincon')'; opt.SearchOptions.MaxIterations = 40;
Оцените нелинейную модель ARX.
sys = nlarx(ze,[reg1;reg2],s,opt);
Утвердить sys сравнивая смоделированный отклик модели с набором данных проверки.
compare(zv,sys)

Оцените линейную модель и улучшите модель, добавив treepartition функция вывода.
Загрузите оценочные данные.
load throttledata ThrottleData
Оценка линейной модели ARX linsys с заказами [2 2 1].
linsys = arx(ThrottleData,[2 2 1]);
Создание idnlarx модель шаблона, использующая linsys и определяет sigmoidnet в качестве функции вывода.
sys0 = idnlarx(linsys,treepartition);
Фиксация линейного компонента sys0 чтобы во время оценки линейная часть sys0 остается идентичным linsys.
sys0.OutputFcn.LinearFcn.Free = false;
Оценить свободные параметры sys0, которые являются нелинейными параметрами функции и смещением.
sys = nlarx(ThrottleData,sys0);
Сравните точность подгонки для линейной и нелинейной моделей.
compare(ThrottleData,linsys,sys)

Для создания пользовательского объекта сопоставления сети требуется определение определяемой пользователем единичной функции.
Определите функцию единицы измерения и сохраните ее как gaussunit.m.
% Copyright 2015 The MathWorks, Inc. function [f, g, a] = gaussunit(x) f = exp(-x.*x); if nargout>1 g = -2*x.*f; a = 0.2; end
Создание пользовательского объекта сопоставления сети с помощью дескриптора gaussunit функция.
H = @gaussunit; CNet = customnet(H);
Загрузите оценочные данные.
load iddata1;
Оцените нелинейную модель ARX с помощью пользовательской сети.
sys = nlarx(z1,[1 2 1],CNet)
sys = <strong>Nonlinear ARX model with 1 output and 1 input</strong> Inputs: u1 Outputs: y1 Regressors: Linear regressors in variables y1, u1 Output function: Custom Network with 10 units Sample time: 0.1 seconds Status: Estimated using NLARX on time domain data "z1". Fit to estimation data: 64.35% (prediction focus) FPE: 3.58, MSE: 2.465
Загрузите оценочные данные.
load motorizedcamera;Создание iddata объект.
z = iddata(y,u,0.02,'Name','Motorized Camera','TimeUnit','s');
z является iddata объект с шестью входами и двумя выходами.
Укажите заказы модели.
Orders = [ones(2,2),2*ones(2,6),ones(2,6)];
Укажите различные функции отображения для каждого выходного канала.
NL = [wavenet('NumberOfUnits',2),linear];Оцените нелинейную модель ARX.
sys = nlarx(z,Orders,NL)
sys = Nonlinear ARX model with 2 outputs and 6 inputs Inputs: u1, u2, u3, u4, u5, u6 Outputs: y1, y2 Regressors: Linear regressors in variables y1, y2, u1, u2, u3, u4, u5, u6 List of all regressors Output functions: Output 1: Wavelet Network with 2 units Output 2: Linear Function Sample time: 0.02 seconds Status: Estimated using NLARX on time domain data "Motorized Camera". Fit to estimation data: [98.72;98.77]% (prediction focus) FPE: 0.5719, MSE: 1.061
Загрузка данных оценки и создание iddata объект z. z содержит два выходных канала и шесть входных каналов.
load motorizedcamera;
z = iddata(y,u,0.02);Укажите набор линейных регрессоров, которые используют выходные и входные имена из z и содержит:
2 выходных регрессора с 1 запаздыванием.
6 пар входных регрессоров с 1 и 2 лагами.
names = [z.OutputName; z.InputName];
lags = {1,1,[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]};
reg = linearRegressor(names,lags);Оценка нелинейной модели ARX с помощью sigmoidnet функция отображения с четырьмя блоками для всех выходных каналов.
sys = nlarx(z,reg,sigmoidnet(4))
sys = Nonlinear ARX model with 2 outputs and 6 inputs Inputs: u1, u2, u3, u4, u5, u6 Outputs: y1, y2 Regressors: Linear regressors in variables y1, y2, u1, u2, u3, u4, u5, u6 List of all regressors Output functions: Output 1: Sigmoid Network with 4 units Output 2: Sigmoid Network with 4 units Sample time: 0.02 seconds Status: Estimated using NLARX on time domain data "z". Fit to estimation data: [98.86;98.79]% (prediction focus) FPE: 2.641, MSE: 0.9233
Загрузка оценочных данных z1, который имеет один вход и один выход, и получить выходные и входные имена.
load iddata1 z1; names = [z1.OutputName z1.InputName]
names = 1×2 cell
{'y1'} {'u1'}
Определить L как набор линейных регрессоров, который представляет ), t-2) t-5).
L = linearRegressor(names,{1,[2 5]});Определить P в качестве полиномиального регрессора 2.
P = polynomialRegressor(names(1),1,2);
Определить C в качестве пользовательского регрессора t-3). Используйте анонимный дескриптор функции для определения этой функции.
C = customRegressor(names,{2 3},@(x,y)x.*y)C =
Custom regressor: y1(t-2).*u1(t-3)
VariablesToRegressorFcn: @(x,y)x.*y
Variables: {'y1' 'u1'}
Lags: {[2] [3]}
Vectorized: 1
TimeVariable: 't'
Regressors described by this set
Объединение регрессоров в векторе столбца R.
R = [L;P;C]
R=3×1 object
[3 1] array of linearRegressor, polynomialRegressor, customRegressor objects.
------------------------------------
1. Linear regressors in variables y1, u1
Variables: {'y1' 'u1'}
Lags: {[1] [2 5]}
UseAbsolute: [0 0]
TimeVariable: 't'
------------------------------------
2. Order 2 regressors in variables y1
Order: 2
Variables: {'y1'}
Lags: {[1]}
UseAbsolute: 0
AllowVariableMix: 0
AllowLagMix: 0
TimeVariable: 't'
------------------------------------
3. Custom regressor: y1(t-2).*u1(t-3)
VariablesToRegressorFcn: @(x,y)x.*y
Variables: {'y1' 'u1'}
Lags: {[2] [3]}
Vectorized: 1
TimeVariable: 't'
Regressors described by this set
Оценка нелинейной модели ARX с помощью R.
sys = nlarx(z1,R)
sys = Nonlinear ARX model with 1 output and 1 input Inputs: u1 Outputs: y1 Regressors: 1. Linear regressors in variables y1, u1 2. Order 2 regressors in variables y1 3. Custom regressor: y1(t-2).*u1(t-3) List of all regressors Output function: Wavelet Network with 1 unit Sample time: 0.1 seconds Status: Estimated using NLARX on time domain data "z1". Fit to estimation data: 59.73% (prediction focus) FPE: 3.356, MSE: 3.147
Просмотр полного набора регрессоров.
getreg(sys)
ans = 5×1 cell
{'y1(t-1)' }
{'u1(t-2)' }
{'u1(t-5)' }
{'y1(t-1)^2' }
{'y1(t-2).*u1(t-3)'}
Загрузите оценочные данные.
load iddata1;Создайте объект отображения сигмоидной сети с 10 единицами измерения и без линейного члена.
SN = sigmoidnet(10,false);
Оцените нелинейную модель ARX. Убедитесь, что модель не использует линейную функцию.
sys = nlarx(z1,[2 2 1],SN); sys.OutputFcn.LinearFcn.Use
ans = logical
0
Загрузите оценочные данные.
load throttledata;Уменьшите данные.
Tr = getTrend(ThrottleData); Tr.OutputOffset = 15; DetrendedData = detrend(ThrottleData,Tr);
Оцените линейную модель ARX.
LinearModel = arx(DetrendedData,[2 1 1]);
Оцените нелинейную модель ARX с помощью линейной модели. Порядки моделей, задержки и линейные параметры NonlinearModel являются производными от LinearModel.
NonlinearModel = nlarx(ThrottleData,LinearModel)
NonlinearModel = Nonlinear ARX model with 1 output and 1 input Inputs: Step Command Outputs: Throttle Valve Position Regressors: Linear regressors in variables Throttle Valve Position, Step Command List of all regressors Output function: Wavelet Network with 7 units Sample time: 0.01 seconds Status: Estimated using NLARX on time domain data "ThrottleData". Fit to estimation data: 99.03% (prediction focus) FPE: 0.1127, MSE: 0.1039
idnlarx ОбъектЗагрузите оценочные данные.
load iddata1;Создание idnlarx модель.
sys = idnlarx([2 2 1]);
Сконфигурируйте модель с помощью точечной нотации для:
Используйте объект сопоставления сети sigmoid.
Присвойте имя.
sys.Nonlinearity = 'sigmoidnet'; sys.Name = 'Model 1';
Оценка нелинейной модели ARX со структурой и свойствами, указанными в idnlarx объект.
sys = nlarx(z1,sys)
sys = Nonlinear ARX model with 1 output and 1 input Inputs: u1 Outputs: y1 Regressors: Linear regressors in variables y1, u1 List of all regressors Output function: Sigmoid Network with 10 units Name: Model 1 Sample time: 0.1 seconds Status: Estimated using NLARX on time domain data "z1". Fit to estimation data: 69.03% (prediction focus) FPE: 2.918, MSE: 1.86
Если оценка останавливается на локальном минимуме, можно нарушить модель с помощью init и переоценить модель.
Загрузите оценочные данные.
load iddata1;Оцените начальную нелинейную модель.
sys1 = nlarx(z1,[4 2 1],'sigmoidnet');Случайное возмущение параметров модели во избежание локальных минимумов.
sys2 = init(sys1);
Оцените новую нелинейную модель с возмущенными значениями.
sys2 = nlarx(z1,sys1);
Загрузите оценочные данные.
load twotankdata;Создание iddata объект из оценочных данных.
z = iddata(y,u,0.2);
Создание nlarxOptions набор опций, задающий цель минимизации ошибки моделирования и максимум 50 итераций оценки.
opt = nlarxOptions;
opt.Focus = 'simulation';
opt.SearchOptions.MaxIterations = 50;Оцените нелинейную модель ARX.
sys = nlarx(z,[4 4 1],'sigmoidnet',opt)sys = Nonlinear ARX model with 1 output and 1 input Inputs: u1 Outputs: y1 Regressors: Linear regressors in variables y1, u1 List of all regressors Output function: Sigmoid Network with 10 units Sample time: 0.2 seconds Status: Estimated using NLARX on time domain data "z". Fit to estimation data: 88.79% (simulation focus) FPE: 3.341e-05, MSE: 0.0004307
Загрузите данные примера регуляризации.
load regularizationExampleData.mat nldata;
Создать sigmoidnet сопоставить объект с 30 единицами измерения и указать порядки моделей.
MO = sigmoidnet(30); Orders = [1 2 1];
Создайте набор опций оценки и задайте для метода поиска оценки значение lm.
opt = nlarxOptions('SearchMethod','lm');
Оценка нерегулируемой модели.
sys = nlarx(nldata,Orders,MO,opt);
Конфигурирование регуляризации Lambda параметр.
opt.Regularization.Lambda = 1e-8;
Оценка регуляризованной модели.
sysR = nlarx(nldata,Orders,MO,opt);
Сравните две модели.
compare(nldata,sys,sysR)

Большой отрицательный результат подгонки для нерегулируемой модели указывает на плохую подгонку к данным. Оценка регуляризованной модели дает значительно лучший результат.
data - Данные оценки временной областиiddata объект | числовая матрицаДанные оценки временной области, указанные как iddata объект или числовая матрица.
Если data является iddata объект, затем data может иметь один или более выходных каналов и нуль или более входных каналов.
Если data является числовой матрицей, то количество столбцов данных должно совпадать с суммой количества входов (nu) и количества выходов (ny.
data должны быть равномерно отобраны и не могут содержать отсутствующие (NaN) образцы.
orders - заказы моделей ARXnlarx заказы [na nb nk]Заказы модели ARX, указанные как матрица [na nb nk]. na обозначает количество задержанных выходов, nb обозначает количество отложенных входов, и nk обозначает минимальную задержку на входе. Минимальная задержка на выходе фиксирована на 1. Дополнительные сведения о построении orders матрица, см. arx.
При указании orders, программное обеспечение преобразует информацию о порядке в форму линейного регрессора в idnlarx
Regressors собственность. Пример см. в разделе Создание нелинейной модели ARX с использованием заказов модели ARX.
regressors - Спецификация регрессораlinearRegressor объект | polynomialRegressor объект | customRegressor object | массив столбцов объектов спецификации регрессораСпецификация регрессора, заданная как вектор столбца, содержащий один или несколько объектов спецификации регрессора, которые являются linearRegressor объекты, polynomialRegressor объекты, и customRegressor объекты. Каждый объект задает формулу для создания регрессоров из запаздывающих переменных. Например:
L = linearRegressor({'y1','u1'},{1,[2 5]}) генерирует регрессоры y1 (t-1), u1 (t-2) и u2 (t-5).
P = polynomialRegressor('y2',4:7,2) генерирует регрессоры y2 (t-4) 2, y2 (t-5) 2, y2 (t-6) 2 и y2 (t-7) 2.
C = customRegressor({'y1','u1','u2'},{1 2 2},@(x,y,z)sin(x.*y+z)) генерирует одиночный регрессор sin (y1 (t-1) u1 (t-2) + u2 (t-2)).
При создании набора регрессоров для поддержки оценки с помощью iddata вместо создания имен для функции-регрессора можно использовать входные и выходные имена объекта. Например, предположим, что вы создаете линейный регрессор для модели, планируйте использовать iddata объект z для оценки модели. Для создания линейного регрессора можно использовать следующую команду.
L = linearRegressor([z.outputName;z.inputName],{1,[2 5]})Пример создания и использования набора линейных регрессоров SISO см. в разделе Оценка нелинейной модели ARX с использованием набора линейных регрессоров. Пример создания набора линейных регрессоров MIMO, который получает имена переменных из набора данных оценки, см. в разделе Оценка модели нелинейного ARX MIMO с одинаковой функцией отображения для всех выходов.
output_fcn - Функция вывода'wavenet' (по умолчанию) | 'linear' | [] | '' | 'sigmoidnet' | 'treepartition' | 'neuralnet' | 'customnet' | объект сопоставления | массив объектов сопоставленияФункция вывода, отображающая регрессоры idnlarx модель на выходе модели, заданная как массив столбцов, содержащий ноль или более следующих строк или объектов:
'wavenet' или wavenet объект | Вейвлет-сеть |
'linear' или '' или [] или linear объект | Линейная функция |
'sigmoidnet' или sigmoidnet объект | Сигмоидная сеть |
'treepartition' или treepartition объект | Модель регрессии секционирования двоичного дерева |
neuralnet объект | Нейронная сеть - Feedforward network of Deep Learning Toolbox™. |
customnet объект | Пользовательская сеть - Аналогично sigmoidnet, но с определяемой пользователем заменой сигмоидной функции. |
Использовать строку, например 'sigmoidnet', для использования свойств по умолчанию объекта функции отображения. Использовать сам объект, например sigmoidnet, если требуется настроить свойства объекта сопоставления.
wavenet, sigmoidnet, treepartion, и customnet объекты содержат как линейные, так и нелинейные компоненты. Можно удалить (не использовать) линейные компоненты wavenet, sigmoidnet, и customnet путем установки LinearFcn.Use значение для false.
neuralnet имеет только нелинейный компонент, который является network (Deep Learning Toolbox) Объект Deep Learning Toolbox. Линейная функция, как следует из названия, имеет только линейный компонент.
output_fcn статичен тем, что зависит только от значений данных в определенное время, но не непосредственно от самого времени. Например, если выходная функция y (t) равна y0 + a1
y (t-1) + a2 y (t-2) +... b1 u (t-1
) + b2 u (t-2) +..., затем
output_fcn является линейной функцией, которая linear объект сопоставления представляет.
Например, указание вектора символов 'sigmoidnet'создает объект сопоставления с параметрами по умолчанию. Можно также задать свойства объекта сопоставления двумя способами:
Создайте объект сопоставления с помощью аргументов для изменения свойств по умолчанию.
MO = sigmoidnet(15);
Сначала создайте объект сопоставления по умолчанию, а затем используйте точечное представление для изменения свойств.
MO = sigmoidnet; MO.NumberOfUnits = 15;
Для ny выходных каналов можно задать объекты отображения отдельно для каждого канала путем установки output_fcn в массив ny объектов сопоставления. Например, следующий код определяет OutputFcn использование точечной нотации для системы с двумя входными каналами и двумя выходными каналами.
sys = idnlarx({'y1','y2'},{'u1','u2'});
sys.OutputFcn = [wavenet; sigmoidnet];OutputFcn в виде символьного вектора или одиночного объекта сопоставления.
output_fcn представляет функцию статического отображения, которая преобразует регрессоры нелинейной модели ARX в выходные данные модели. output_fcn статичен, поскольку не зависит от времени. Например, если b1u (t − 1) + b2u (t − 2) +..., тоoutput_fcn - линейная функция, представленная linear объект.
Пример задания функции вывода см. в разделе Указание и настройка функции вывода.
linmodel - Дискретно-временная линейная модельidpoly объект | idss объект | idtf объект | idproc объектsys0 - Нелинейная модель ARXidnlarx модельНелинейная модель ARX, заданная как idnlarx модель. sys0 могут быть:
Модель, предварительно оцененная с помощью nlarx. Алгоритм оценки использует параметры sys0 как первоначальные догадки. В этом случае используйте init чтобы слегка нарушить свойства модели, чтобы избежать захвата модели в локальных минимумах.
sys = init(sys); sys = nlarx(data,sys);
Модель, ранее созданная с помощью idnlarx конструктора и со свойствами, заданными с помощью точечной нотации. Например, используйте следующее, чтобы создать объект idnlarx, задать его свойства и оценить модель.
sys1 = idnlarx('y1','u1',Regressors); sys1.OutputFcn = 'treepartition'; sys1.Ts = 0.02; sys1.TimeUnit = 'Minutes'; sys1.InputName = 'My Data'; sys2 = nlarx(data,sys1);
Предыдущий код эквивалентен следующей команде nlarx.
sys2 = nlarx(data,Regressors,'treepartition','Ts',0.02,'TimeUnit','Minutes', ... 'InputName','My Data');
Options - Варианты оценкиnlarxOptions набор опцийОпции оценки для нелинейной идентификации модели ARX, указанные как nlarxOptions набор опций.
sys - Нелинейная модель ARXidnlarx объектНелинейная модель ARX, которая соответствует данным оценки, возвращается как idnlarx объект. Эта модель создается с использованием указанных порядков моделей, оценщика нелинейности и опций оценки.
Информация о результатах оценки и используемых опциях хранится в Report свойство модели. Содержание Report зависит от выбора нелинейности и фокусировки оценки, указанной для nlarx. Report имеет следующие поля:
| Поле отчета | Описание | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Status | Сводка состояния модели, указывающая, была ли модель создана путем построения или получена путем оценки. | ||||||||||||||||||
Method | Используется команда оценки. | ||||||||||||||||||
Fit | Количественная оценка оценки, возвращенная как структура. Дополнительные сведения об этих показателях качества см. в разделе Метрики качества функции потери и модели. Структура имеет следующие поля:
| ||||||||||||||||||
Parameters | Оценочные значения параметров модели. | ||||||||||||||||||
OptionsUsed | Набор опций, используемый для оценки. Если пользовательские параметры не были настроены, это набор параметров по умолчанию. Посмотрите | ||||||||||||||||||
RandState | Состояние потока случайных чисел в начале оценки. Пустое, | ||||||||||||||||||
DataUsed | Атрибуты данных, используемых для оценки, возвращаемые в виде структуры со следующими полями:
| ||||||||||||||||||
Termination | Условия завершения итеративного поиска, используемые для минимизации ошибок прогнозирования, возвращены в виде структуры со следующими полями:
Для методов оценки, которые не требуют оптимизации числового поиска, |
Дополнительные сведения об использовании Report, см. Отчет по оценке.
Нелинейная модель ARX состоит из регрессоров модели и выходной функции. Функция вывода включает в себя линейные и нелинейные функции, которые действуют на регрессоры модели для получения выходного сигнала модели и фиксированного смещения для этого выходного сигнала. Эта блок-схема представляет структуру нелинейной модели ARX в сценарии моделирования.

Программное обеспечение вычисляет выход нелинейной модели ARX y в два этапа:
Он вычисляет значения регрессора из текущих и прошлых входных значений и прошлых выходных данных.
В простейшем случае регрессоры представляют собой запаздывающие входы и выходы, такие как u (t-1) и y (t-3). Такие регрессоры называются линейными регрессорами. Линейные регрессоры задаются с помощью linearRegressor объект. Можно также задать линейные регрессоры, используя линейные порядки моделей ARX в качестве входного аргумента. Дополнительные сведения см. в разделе Нелинейные заказы модели ARX и задержка. Однако этот второй подход ограничивает набор регрессоров линейными регрессорами с последовательными задержками. Для создания полиномиальных регрессоров используйте polynomialRegressor объект. Можно также указать пользовательские регрессоры, которые являются нелинейными функциями отложенных входов и выходов. Например, u (t-1) y (t-3) является пользовательским регрессором, который умножает экземпляры ввода и вывода вместе. Укажите пользовательские регрессоры с помощью customRegressor объект.
Можно назначить любой из регрессоров в качестве входных данных линейному функциональному блоку выходной функции, нелинейному функциональному блоку или и тому и другому.
Он отображает регрессоры на выходные данные модели с помощью функционального блока вывода. Выходной функциональный блок может включать в себя линейные и нелинейные блоки параллельно. Например, рассмотрим следующее уравнение:
Q (x − r)) + d
Здесь x - вектор регрессоров, а r - среднее значение x. r) + y0 - выход линейного функционального (x − r)) + y0 представляет выход нелинейного функционального блока. Q - это проекционная матрица, которая делает вычисления хорошо обусловленными. d - скалярное смещение, которое добавляется к объединенным выходам линейного и нелинейного блоков. Точная форма F (x) зависит от выбора функции вывода. Можно выбрать из доступных объектов отображения, таких как сети с древовидными разделами, вейвлет-сети и многослойные нейронные сети. Можно также исключить линейный или нелинейный функциональный блок из функции вывода.
При оценке нелинейной модели ARX программное обеспечение вычисляет значения параметров модели, такие как L, r, d, Q, и другие параметры, определяющие g.
Результирующими нелинейными моделями ARX являются idnlarx объекты, хранящие все данные модели, включая регрессоры модели и параметры выходной функции. Дополнительные сведения об этих объектах см. в разделе Нелинейные структуры модели.
idnlarx свойства не рекомендуется.Не рекомендуется начинать с R2021a
Начиная с R2021a, несколько свойств idnlarx были изменены или заменены.
Эти изменения влияют на синтаксисы в обоих idnlarx и nlarx. Использование свойств pre-R2021a в следующей таблице не рекомендуется. Однако программное обеспечение по-прежнему принимает синтаксисы вызова, которые включают эти свойства. В настоящее время исключать эти синтаксисы не планируется. Синтаксис команды, использующий порядки моделей ARX, по-прежнему является рекомендуемым синтаксисом.
| Pre-R2021a Свойство | R2021a Свойство | Использование |
|---|---|---|
Заказы моделей ARX na,nb,nk | Regressors, которые могут включать linearRegressor, polynomialRegressor, и customRegressor объекты. |
Нельзя больше изменять значения заказа в существующем |
customRegressors | Regressors | Использовать polynomialRegressor или customRegressor для создания объектов-регрессоров и добавления объектов в Regressors массив. |
NonlinearRegressors | RegressorUsage | RegressorUsage - таблица, содержащая назначения регрессоров линейным и нелинейным выходным компонентам. Изменение назначений путем изменения соответствующих RegressorUsageзаписи таблицы. |
Nonlinearity | OutputFcn | Изменение только по имени. Свойство остается объектом, массивом или объектами, отображающими входы регрессора на выходные данные. |
Поддержка параллельных вычислений доступна для оценки с использованием lsqnonlin метод поиска (требуется Toolbox™ оптимизации). Чтобы включить параллельные вычисления, используйте nlarxOptions, комплект SearchMethod кому 'lsqnonlin', и установить SearchOptions.Advanced.UseParallel кому true, как в следующем примере.
opt = nlarxOptions;
opt.SearchMethod = 'lsqnonlin';
opt.SearchOptions.Advanced.UseParallel = true;
aic | fpe | goodnessOfFit | idnlarx | isnlarx | linearRegressor | nlarxOptions | polynomialRegressor
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.