主要内容

线性重构器

指定非线性ARX模型的线性回归器

描述

线性回归器是滞后输出或输入变量,例如y((t-1)或((t-2)。在这里,y术语有1个样本和项有2个样本的滞后。一个线性重构器对象封装一组线性回归器。利用线性重构器当您使用非线性ARX模型时idnlarx或者Nlarx线性重构器概括订单在ARX模型或换句话说,[na nb nk]矩阵,允许绝对值和非连续滞后。使用线性重构器对象还使您可以将线性回归器与polyenmialRegressor,,,,周期性重物, 和CustomRegressor单个回归器集中的对象。

创建

描述

例子

lreg= LinearRegressor(变量,滞后)创建一个线性重构器包含输出和输入名称的对象变量以及相应的滞后滞后

例子

lreg= LinearRegressor(变量,滞后,UseAbsolute)指定用途是否使用变量的绝对值来创建回归剂。

特性

展开全部

输出和输入变量名称,指定为字符串或单元格数组的单元格数组输出名称输入名An的属性iddata目的。每个条目必须是一个没有特殊字符的字符串。有关使用此属性的示例,请参见使用线性回归器集估算非线性ARX模型

例子:{'y1','u1'}

例子:[z.Outputname;Z.InputName]''

每个变量中的滞后,指定为1乘nv非负整数行向量的单元格数,其中nv是回归变量的总数。每个行向量都包含nr指定的整数nr相应变量的回归滞后。例如,假设您需要以下回归量:

  • 输出变量y1y1((t–1)和y1((t–2)

  • 输入变量11((t–3)

要获得这些滞后,请设置滞后{[1 2],3}

如果滞后对应于一个的输出变量idnlarx模型,最小滞后必须大于或等于1。

有关使用此属性的示例,请参见使用线性回归器集估算非线性ARX模型

例子:{1 1}

例子:{[1 2],[1,3,4]}

绝对值指示灯确定是否使用回归器变量的绝对值,而不是符号值,该值指定为逻辑向量,其长度等于变量数量。有关设置此属性的示例,请参阅在线性回归器集中使用绝对值

例子:[真假]

时间变量的名称,指定为有效MATLAB®可变名称与值不同变量

例子:'时钟时间'

例子

全部收缩

指定等同于ARX模型订单矩阵的线性回归器[4 4 1]

订单矩阵的[4 4 1]指定输入和输出回归器集包含四个回归器,延迟范围为1到4。 1 (( t - 2 代表第二个输入回归器。

指定输出名称。

output_name ='y1';input_name ='u1';名称= {output_name,input_name};

指定输出和输入滞后。

output_lag = [1 2 3 4];input_lag = [1 2 3 4];lags = {output_lag,input_lag};

创建线性回归对象。

lreg =线性regressor(名称,滞后)
lreg =变量中的线性回归器y1,u1变量:{'y1''u1'} lags:{[1 2 3 4] [1 2 3 4]} useAbsolute:[0 0] timeVariable:timeVariable:'t'回归剂,由此描述。放

加载估计数据并创建一个IDDATA对象。

加载twotankdataz = iddata(y,u,0.2);

估计非线性ARX模型。

sys = nlarx(z,lreg)
SYS =具有1个输出和1个输入输入的非线性ARX模型:U1输出:Y1回归器:变量中的线性回归器Y1,所有回归器输出函数的U1列表:带有11个单位的小波网络样本时间:0.2秒样本:0.2秒状态:按时使用NLARX按时估算域数据“ Z”。适合估计数据:96.84%(预测焦点)FPE:3.482E-05,MSE:3.431E-05

查看回归器

getReg(sys)
ans =8x1单元{'y1(t-1)'} {'y1(t-2)'} {'y1(t-3)'} {'y1(t-4)'} {'u1(t-1)'}{'u1(t-2)'} {'u1(t-3)'} {'u1(t-4)'}

将模型输出与估计数据进行比较。

比较(z,sys)

图包含一个轴对象。轴对象包含2个类型行的对象。这些对象代表z(y1),系统:82.73%。

创建一个线性回归仪集,该集合在可变中使用3、10和100的滞后Y1和0和4的滞后U1

vars = {'y1',,,,'u1'};lags = {[3 10 100],[0,4]};

指定Y1回归器使用的绝对值Y1

useabs = [true,false];

创建线性回归器。

reg = linearregressor(var,lags,useabs)
reg =变量中的线性回归器y1,u1变量:{'y1''u1'} lags:{[3 10 100] [0 4]} useAbsolute:[1 0] TimeVariable:'t'regressor thit set sec

加载估计数据Z1,它具有一个输入和一个输出,并获得输出和输入名称。

加载IDDATA1Z1;名称= [z1.outputname z1.inputName]
名称=1x2单元{'y1'} {'u1'}

指定l作为代表的线性回归器集 y 1 (( t - 1 ,,,, 1 (( t - 2 , 和 1 (( t - 5

l = linearRegressor(名称,{1,[2 5]});

指定p作为多项式回归器 y 1 (( t - 1 2

p = polyenmialRegressor(名称(1),1,2);

指定C作为自定义回归器 y 1 (( t - 2 1 (( t - 3 。使用匿名函数句柄定义此功能。

C = CustomRegressor(名称,{2 3},@(x,y)x。*y)
c =自定义回归器:y1(t-2)。*u1(t-3)variablestoregressorfcn: @(x,y)x。}矢量化:1个时间变量:此集描述的“ T”回归剂

将回归器组合在列矢量中r

r = [l; p; c]
r = [3 1]线性Regressor,polyenmialRegressor,CustomRegressor对象的数组。-------------------------------------------- 1.变量中的线性回归器Y1,U1变量:{'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 =具有1个输出和1个输入输入的非线性ARX模型:U1输出:Y1回归器:1。变量中的线性回归器Y1,U1 2.订购2个变量中的Recressor y1 3.自定义回归器:y1(t-2)。*U1*U1(T-3)所有回归器输出功能的列表:带有1个单位样本时间的小波网络:0.1秒状态:使用NLARX在时域数据“ Z1”上估算。适合估计数据:59.73%(预测焦点)FPE:3.356,MSE:3.147

查看完整的回归器集。

getReg(sys)
ans =5x1单元{'y1(t-1)'} {'u1(t-2)'} {'u1(t-5)'} {'y1(t-1)^2'} {'y1(t-2)。*u1(t-3)'}

版本历史记录

在R2021a中引入