主要内容

本页采用了机器翻译。点击此处可查看英文原文。

在命令行中优化初始 ARMAX 模型

本示例演示了如何使用 pem 估计初始模型并对其进行优化。

加载测量数据。

load iddata8

将数据分为初始估计数据集和精细化数据集。

init_data = z8(1:100);
refine_data = z8(101:end);

init_data 是一个 iddata 对象,其中包含 z8 的前 100 个样本;而 refine_data 是一个 iddata 对象,代表 z8 中的剩余数据。

对一个 ARMAX 模型进行估计。

na = 4;
nb = [3 2 3];
nc = 2;
nk = [0 0 0];

sys = armax(init_data,[na nb nc nk]);

armax 使用默认的算法属性来估计 sys

通过指定估计法的选项来优化估计模型。指定更严格的容差,并增加最大迭代次数。

opt = armaxOptions;
opt.SearchOptions.Tolerance = 1e-5;
opt.SearchOptions.MaxIterations = 50;

refine_sys = pem(refine_data,sys,opt);

比较初始模型和优化后的模型的拟合效果。

compare(refine_data,sys,refine_sys)
legend(Interpreter="none")

MATLAB figure

refine_syssys 更能贴合数据。

同样地,您也可以使用 polyestarmax 来优化估计模型。

另请参阅

函数