主要内容

getreg

非线性ARX模型的回归表达式与数值

语法

Rs = getreg(模型)
Rm = getreg(模型,数据)
Rm = getreg(model,data,init)
Rm = getreg(___“类型”,regressorType)

描述

Rs = getreg(模型)返回非线性ARX模型中计算回归量的表达式。模型是一个idnlarx对象。一个典型的使用回归构建的矩阵getreg是生成输入数据时,您想评估映射函数的输出,如idWaveletNetwork使用评估.例如,下面这对命令计算映射函数的输出模型

Regressor_Value = getreg(模型,数据,“z”) y = evaluate(model.OutputFcn,RegressorValue)
这些命令等价于以下命令:
y = predict(model,data,1,predictOptions(“InitialCondition”“z”))

Rm = getreg(模型,数据)返回回归值为a时间表对于指定的输入/输出数据集数据

Rm = getreg(model,data,init)中指定的初始条件初始化.第一个N每个回归矩阵的行取决于初始状态初始化,在那里N最大延迟是否在回归函数(见getDelayInfo).

Rm = getreg(___“类型”,regressorType属性的回归函数的名称regressorType.例如,使用命令Rm = getreg(model,'Type','input')仅返回输入回归器的名称。

输入参数

数据

iddata包含测量数据的对象或按顺序包含输出变量和输入变量值的数值矩阵(模型。OutputName模型。InputName]

初始化

数据的初始条件:

  • “z”(默认)指定零初始状态。

  • 表示未知的初始条件。

  • 包含初始状态值的实列向量。有关初始状态的更多信息,请参见中idnlarx状态的定义idnlarx.对于多个实验数据,这是一个矩阵,其中每一列都指定了与该实验对应的模型的初始状态。

  • iddata对象,其中包含在第一个样本之前瞬间的输入和输出样本数据.当iddata对象包含的样本多于模型中的最大延迟,因此只使用最近的样本。所需要的样本数量等于max (getDelayInfo(模型)

模型

iddata对象表示非线性ARX模型。

regressorType

要返回的回归函数类型,指定为以下之一:

  • “所有”(默认)-所有回归

  • “输入”-仅输入回归器

  • “输出”-仅输出回归量

  • “标准”-只有线性和多项式回归

  • “自定义”-只有自定义回归

输出参数

Rm

时间表回归值的全部或一个特定子集的回归值。中的每一列Rm包含与数据示例相同数量的行。对于一个模型nr解释变量,Rm为每个回归函数包含一列。当数据包含多个实验,Rm是一个单元格数组,其中每个元素对应于一个实验的回归值时间表。

Rs

用字符向量的单元格数组表示的回归表达式。例如,表达式“u1(2)”通过延迟输入信号来计算回归函数u1通过两个时间样本。类似地,表达式“y2 (t - 1)”通过延迟输出信号来计算回归函数y2通过一次抽样。

回归量的顺序Rs中的回归指数idnlarx对象属性模型。RegressorUsage

例子

全部折叠

加载样本数据u和y。

负载twotankdata;Ts = 0.2;

采样时间为0.2秒。

创建数据对象并使用前1000个样本进行估计。

z = iddata(y,u,Ts);Ze = z(1:1000);

估计非线性ARX模型。

Model = nlarx(ze,[3 2 1]);

获取回归表达式。

Rs = getreg(模型)
Rs =5 x1细胞{y1 (t - 1)的}{‘y1 (2)} {y1(条t - 3)的}{u1 (t - 1)的}{的u1 (2)}

获取回归值。

Rm = getreg(model,ze)
Rm =1000×5时间表时间y1 (t - 1)(2)日元(条t - 3) u1 (t - 1) u1 (2 ) _______ ________ ________ ________ _______ _______ 0.2秒0 0 0 0 0 0 0 0.1003 0.4秒10 0 0.1003 0.094621 0.6秒0 10 10 1秒10 0.8秒0.084424 0.094621 0.1003 0.081449 0.084424 0.094621 10 10 1.2秒0.08546 0.081449 0.084424 1.4秒0.083002 0.08546 0.081449 10 10 1.6秒0.08443 0.083002 0.08546 1.8秒10 10 2秒0.092793 0.08443 0.083002 0.099804 0.092793 0.08443 10 10 2.2秒0.10559 0.099804 0.092793 0.1081 2.4秒0.10559 0.099804 10 10 2.6秒0.12108 0.1081 0.10559 10 10 2.8秒0.12404 0.12108 0.1081 10 10 3秒0.13551 0.12404 0.12108 10 10 3.2秒0.13405 0.13551 0.12404 10 10

评估和绘制模型输出的一步预测。

Y = evaluate(model.OutputFcn,Rm.Variables);情节(1:1000 Y)标题(“使用evaluate预测模型输出”

图中包含一个轴对象。标题为“使用evaluate预测模型输出”的axis对象包含一个类型为line的对象。

上面的结果与使用得到的结果是等价的预测在以下命令中。

Y_p = predict(model,ze,1,“z”);Y = Y_p.OutputData;情节(Y)标题(使用predict预测模型输出

图中包含一个轴对象。标题为“预测模型输出”的axis对象使用predict包含一个类型为line的对象。

版本历史

在R2007a中引入

全部展开

R2021a的行为发生了变化