主要内容

periodicRegressor

为非线性ARX模型指定周期回归量

描述

周期回归函数是延迟输入和输出变量的正弦和余弦函数。例如,罪(yt1)),因为(yt-1))都是具有单样本延迟的周期回归量。一个periodicRegressor对象封装一组周期回归器。使用periodicRegressor对象在创建非线性ARX模型时使用idnlarxnlarx.您可以指定periodicRegressor对象与linearRegressorpolynomialRegressor,customRegressor对象,并将它们组合成一个组合回归集。

创建

描述

例子

scReg= periodicRegressor(变量、滞后)创建一个periodicRegressor对象,该对象包含每个输出和输入变量的正弦和余弦函数变量和相应的滞后滞后.例如,如果变量包含{' y ', ' u '}而且滞后包含相应的滞后向量{1,2},则函数创建回归量sin(yt1)),因为(yt1)),罪(ut2)),因为(ut2))。

例子

scReg= periodicRegressor(变量、滞后、W)应用倍频器W每一个公式。例如,如果变量包含{' y ', ' u '}滞后包含{1,2},W等于1.5,则函数创建回归量sin(1.5yt1)),因为(1.5yt1)),罪(1.5ut2)),因为(1.5ut2))。

例子

scReg= periodicRegressor(变量、滞后、W, NumTerms)将每个回归信号近似为包含的傅立叶级数NumTerms系数通过创建NumTerms每个滞后变量的周期回归量,如序列sin(x),罪(2x),…,罪(x),因为(x),因为(2x),…,cos (x).

在这个序列,x表示滞后变量,例如yt1),等于NumTerms

例子

scReg= periodicRegressor(变量、滞后、W, NumTerms,UseAbsolute指定是否应用绝对值操作来创建回归函数,例如|sin(yt-k) |和| cos (ut) |。

例子

scReg= periodicRegressor(变量、滞后、W, NumTerms,类型只生成正弦函数、余弦函数或同时生成正弦和余弦函数,取决于的值类型

输入参数

全部展开

回归器类型,指定为“所有”“罪”,或“因为”.当类型被设置为“罪”“因为”,该软件分别生成只包含正弦函数或只包含余弦函数的回归函数。当类型被设置为“所有”,该软件可生成正弦和余弦函数。

的价值类型确定属性的值UseSin而且UseCos

举个例子类型,请参阅指定具有绝对值且仅包含正弦项的周期回归量

属性

全部展开

回归公式组合的输出和输入变量的名称,指定为字符串数组或字符向量的单元格数组。对于估计,这些变量通常是估计数据的输入和输出的子集。每个条目必须是一个字符串,除了空白之外没有其他特殊字符。有关使用此属性的示例,请参见利用周期回归量估计非线性ARX模型

例子:{“日元”,‘u1’}

例子:[z.OutputName;z.InputName]“,在那里z是一个iddata对象

每个变量的延迟,指定为1 × -nv非负整数行向量的单元格数组,其中nv是回归变量的总数。每个行向量包含nr指定nr对应变量的回归滞后。例如,假设你想要以下回归量:

  • 输出变量y1:因为(y1t1)),因为(y1t2))

  • 输入变量u1:罪恶(u1t3))

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

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

有关使用此属性的示例,请参见利用周期回归量估计非线性ARX模型

例子:{1}

例子:{(1 2), (1, 3, 4)}

频率倍增器,指定为数值。使用此属性将相同的频率乘法器应用于您创建的所有回归器。例如,如果你设置W1.5,则得到变量的正弦回归量y随着时间的推移1罪(1.5 y (t - 1)).有关使用此属性的示例,请参见为周期回归器指定频率倍增器

每个滞后变量使用的术语数。当你想近似回归信号的傅里叶级数时,使用这个性质。项的个数表示傅里叶系数的个数。有关使用此属性的示例,请参见指定周期回归器的傅立叶级数系数

绝对值指示符,确定是否使用变量回归函数的绝对值而不是有符号的值,指定为长度等于变量数量的逻辑向量。如果您指定UseAbsolute作为单个值,则该值将应用于所有变量。例如,如果您指定当有三个回归量时,UseAbsolute所有三个回归量的值为

有关设置此属性的示例,请参见指定具有绝对值且仅包含正弦项的周期回归量

例子:(真的,假的)

正弦回归指标,决定是否生成正弦回归指标,指定为一个标量。的价值类型的值。UseSin

  • 如果类型等于“所有”“罪”,然后UseSin真正的

  • 如果类型等于“因为”,然后UseSin

有关设置此属性的示例,请参见指定具有绝对值且仅包含正弦项的周期回归量

例子:真正的

余弦回归指标,确定是否生成余弦回归指标,指定为一个标量。的价值类型的值。UseCos

  • 如果类型等于“所有”“因为”,然后UseCos真正的

  • 如果类型等于“罪”,然后UseCos

例子:

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

例子:“ClockTime”

例子

全部折叠

加载数据并创建iddata对象z采样时间为0.1秒。

负载twotankdatayuz = iddata (y、u,“t”, 0.1);

指定包含滞后1和2个样本的输出变量和0和4个样本的输入变量的周期回归器。

使用的属性z来指定变量名。

变量= [z.OutputName; z.InputName];

指定滞后。

滞后= {[1:2],[0 4]};

创建解释变量。

scReg = periodicRegressor(变量、滞后)
scReg =周期回归变量y1, u1 with 1傅立叶项变量:{'y1' 'u1'} lag: {[1 2] [0 4]} W: 1 NumTerms: 1 UseSin: 1 UseCos: 1 TimeVariable: 't' UseAbsolute:[0 0]由这个集合描述的回归变量

使用scReg估计非线性ARX模型。

sys = nlarx (z, scReg)
sys = 1输出1输入的非线性ARX模型输入:u1输出:y1回归量:变量y1中的周期回归量,u1 (W = 1),和1个傅氏项所有回归量列表输出函数:6单位小波网络采样时间:0.1秒状态:使用时域数据“z”上的NLARX估计。与估计数据拟合:96.3%(预测焦点)FPE: 4.755e-05, MSE: 4.701e-05

查看解释变量。

getreg(系统)
ans =8 x1细胞{“罪(y1 (t - 1))”}{' cos (y1 (t - 1))}{罪(y1(2))的}{' cos (y1(2))}{“罪(u1 (t))”}{' cos (u1 (t))}{“罪(u1(第四节))”}{' cos (u1(第四节))}

指定一组周期回归器,对应于输入滞后2和输出滞后5,并包含0.4的倍频器。

变量= {“u”“y”};滞后= {2 5};W = 0.4;scReg = periodicRegressor(变量、滞后、W)
scReg =周期回归变量u, y与1傅里叶项变量:{'u' 'y'} lag: {[2] [5]} W: 0.4000 NumTerms: 1 UseSin: 1 UseCos: 1 TimeVariable: 't' UseAbsolute:[0 0]由此集合描述的回归变量

指定一组周期回归量,其中每个变量包含三个傅立叶级数项。还要指定输入滞后为2,输出滞后为5,频率乘法器为0.4。

numTerms = 3;scReg = periodicRegressor ({“u”“y”5}, {2}, 0.4, numTerms)
scReg =周期回归变量u, y与3个傅立叶项变量:{'u' 'y'} lag: {[2] [5]} W: 0.4000 NumTerms: 3 UseSin: 1 UseCos: 1 TimeVariable: 't' UseAbsolute:[0 0]描述的回归变量

加载数据并创建iddata对象z采样时间为0.1秒。

负载twotankdatayuz = iddata (y、u,“t”, 0.1);

使用的属性z来指定变量名。

变量= [z.OutputName; z.InputName];

仅为正弦项设置回归函数类型。

类型=“罪”

对于输入变量回归量,使用绝对值。

UseAbs = [0 1];

指定一组包含这些值的周期回归器。还指定输入滞后为2,输出滞后为5,频率倍增器为0.4,每个变量的傅立叶级数项为3。

scReg = periodicRegressor(变量,{2 5},0.4,3,UseAbs,类型);

用这些回归量估计一个非线性ARX模型

sys = nlarx (z, scReg)
sys = 1输出1输入的非线性ARX模型输入:u1输出:y1回归量:变量y1中的周期回归量,u1 W = 0.4,和3个傅里叶项所有回归量列表输出函数:65单位的小波网络采样时间:0.1秒状态:使用时域数据“z”上的NLARX估计。与估计数据拟合:96.44%(预测焦点)FPE: 4.576e-05, MSE: 4.354e-05

查看解释变量

getreg(系统)
ans =6 x1细胞{”罪(0.4 * y1(2))的}{”罪(2 * 0.4 * y1(2))的}{”罪(3 * 0.4 * y1(2))的}{|罪(0.4 * u1 (t-5 ))|' } {'| 罪(2 * 0.4 * u1 (t-5))”|}{' |罪(3 * 0.4 * u1 (t-5)) | '}

版本历史

介绍了R2022a