主要内容

玻璃管制造工艺

这个例子展示了玻璃管制造过程的线性模型识别。实验和数据讨论在:

V. Wertz, G. Bastin和M. Heet:玻璃管拉拔工作台的识别。第十届国际会计师联合会大会,第10卷,第334-339页,论文号14.5-5-2。1987年8月,慕尼黑。

该过程的输出是制造管的厚度和直径。输入的是管内气压和拉拔速度。

从输入速度到输出厚度的过程建模问题如下所述。讨论了分析数据和确定模型顺序的各种选项。

实验数据

首先加载输入和输出数据,保存为iddata对象:

负载thispe25.mat

数据包含在变量中玻璃

玻璃
玻璃= 2700个样本的时域数据集。采样时间:1秒输出单位(如指定)Thickn输入单位(如指定)速度

数据有一个输入(Speed)和一个输出(Thickn)的2700个样本。采样时间为1秒。

为了评估和交叉验证,将其分为两部分:

Ze =玻璃(1001:1500);%估计数据Zv =玻璃(1501:2000,:);%验证数据

估算数据的特写视图:

情节(泽(101:200))绘制样本101到200的估计数据。

图中包含2个轴对象。标题为Thickn的Axes对象1包含一个line类型的对象。该对象表示untitled1。标题为Speed的Axes对象2包含一个line类型的对象。该对象表示untitled1。

数据初步分析

让我们去除平均值作为第一个预处理步骤:

Ze =趋势(Ze);Zv =趋势(Zv);

数据的采样时间为1秒,而处理时间常数可能要慢得多。我们可以在输出中检测到一些相当高的频率。为了确认这一点,让我们首先计算输入和输出光谱:

Sy = spa(ze(:,1,[]));Su = spa(ze(:,[],1));CLF谱(sy,su)轴([0.024 10 -5 20])图例({“输出”“输入”})网格

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示输出、输入。

请注意,在1 rad/sec以上的输入相对能量非常小,而在该频率以上的输出包含相对较大的值。因此,有一些高频干扰可能会对模型的建立造成一些问题。

我们计算脉冲响应,使用部分数据来了解从输入到输出的潜在反馈和延迟:

Imp =冲量(ze,[],“负面”impulseestOptions (“RegularizationKernel”“本身”));10:30 showConfidence (impulseplot (Imp), 3)网格

图中包含一个轴对象。标题为From: Speed To: Thickn的坐标轴对象包含2个line类型的对象。该节点表示Imp。

我们在脉冲响应中看到了大约12个样本的延迟(置信区间外的第一个显著响应值),这是相当可观的。此外,脉冲响应对于负时滞也不是微不足道的。这表明数据中有很好的反馈概率,因此未来的输出值影响(添加到)当前的输入。输入延迟可以显式地用延迟

延迟(泽)
Ans = 12

反馈的概率可以用反馈

反馈(泽)%计算数据中的反馈概率
Ans = 100

因此,几乎可以肯定数据中存在反馈。

作为初步测试,我们还计算了光谱分析估计值:

G = spa(ze);showConfidence (bodeplot (g)网格

图中包含2个轴对象。标题为From: Speed到:Thickn的坐标轴对象1包含一个line类型的对象。该对象表示g。坐标轴对象2包含一个line类型的对象。这个物体表示g。

我们注意到,除其他事项外,高频行为是相当不确定的。建议将模型范围限制为频率低于1 rad/s。

过程行为的参数化模型

让我们快速检查一下是否可以通过使用估计数据计算四阶ARX模型并使用验证数据模拟该模型来获得良好的动态。我们知道延迟大约是12秒。

M1 = arx(ze,[4 4 12]);比较(zv m1);

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(Thickn), m1: 11.14%。

模拟结果近景图:

比较(zv, m1,正无穷,“样本”101:200)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(Thickn), m1: 12.62%。

处理输出的高频分量有明显的困难。这与长延迟相结合,表明我们将数据抽取4个(即低通滤波,每四个值选取一次):

如果存在(重新取样的“文件”) = = 2如果信号处理工具箱(TM)使用“resample”命令抽取%可用。Zd = resample(趋向(玻璃),1,4,20);其他的否则,请使用慢速的“idresamp”。Zd = idresamp(趋势(玻璃),4);结束Zde = zd(1:500);ZDV = zd(501:size(zd,“N”));

让我们为抽取后的数据找到一个好的结构。首先计算脉冲响应:

Imp =冲量(zde);showConfidence(impulseplot(Imp,200),3)轴([0 100 -0.05 0.01])网格

图中包含一个轴对象。标题为From: Speed To: Thickn的坐标轴对象包含2个line类型的对象。该节点表示Imp。

我们再次看到延迟大约是3个样本(这与我们上面看到的一致;12秒延迟,采样时间为4秒zde)。现在让我们尝试估计一个默认模型,其中的顺序由估计器自动选择。

Mdefault = n4sid(zde);比较(zdv Mdefault)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(Thickn), Mdefault: 32.73%。

估计器选择了一个四阶模型。它似乎比未修饰的数据提供了更好的拟合。现在让我们系统地评估我们可以使用的模型结构和顺序。首先我们寻找延迟:

V = arxstruc(zde,zdv,struc(2,2,1:30));nn = selstruc(V,0)
nn =1×32 2 3

ARXSTRUC还提出了3个样本的延迟,这与脉冲响应的观测结果一致。因此,我们将延迟固定在3附近,并在这个延迟附近测试几个不同的阶数:

V = arxstruc (zde zdv struc(1:5, 1:5,神经网络(3)1:神经网络(3)+ 1));

现在我们调用selstruc在返回的矩阵上,以选择最优先的模型顺序(最小损失函数,如V的第一行所示)。

nn = selstruc(V,0);选择“最佳”型号订单

SELSTRUC可以只使用一个输入调用顺序选择的交互模式(nn = selstruc(V)).

让我们计算并检查模型中变量返回的“最佳”顺序神经网络

M2 = arx(zde,nn);比较(zdv, m2,正无穷,compareOptions (“样本”21:150));

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(Thickn), m2: 33.44%。

该模型平方米差不多和Mdefault拟合数据,但使用较低阶。

让我们来测试残差:

渣油(zdv m2);

图中包含2个轴对象。带有标题AutoCorr的Axes对象1包含2个类型为line的对象。这个对象代表m2。axis对象2,标题为XCorr (Speed),包含2个类型为line的对象。这个对象代表m2。

残差在置信区间内,表明模型已经捕捉到了基本动态。零点点图告诉我们什么?

clf showConfidence(iopzplot(m2),3) axis([-1.1898,1.3778,-1.5112,1.5688])

图中包含一个轴对象。标题为From: Speed To: Thickn的坐标轴对象包含4个line类型的对象。这个对象代表m2。

从零点点图中,有几对零点点消去的迹象。这是因为它们的位置在置信区域内重叠。这表明我们应该能够很好地处理低阶模型。尝试一个[1 1 3]ARX模型:

M3 = arx(zde,[1 1 3])
m3 =离散ARX模型:A(z)y(t) = B(z)u(t) + e(t) A(z) =1 - 0.115 z^-1 B(z) = -0.1788 z^-3采样时间:4秒参数化:多项式阶数:na=1 nb=1 nk=3自由系数数:2使用"polydata"、"getpvec"、"getcov"表示参数及其不确定性。状态:在时域数据“zde”上使用ARX估计。拟合估计数据:35.07%(预测焦点)FPE: 0.4437, MSE: 0.4384

模型仿真m3对比验证数据显示:

比较(zdv Mdefault, m2, m3)

图中包含一个轴对象。axis对象包含4个line类型的对象。这些对象表示验证数据(Thickn), Mdefault: 32.73%, m2: 34.77%, m3: 33.04%。

这三个模型提供了类似的结果。同样,我们可以比较模型提前5步的预测能力:

比较(zdv Mdefault, m2, m3, 5)

图中包含一个轴对象。axis对象包含4个line类型的对象。这些对象表示验证数据(Thickn), Mdefault: 31.91%, m2: 34.74%, m3: 33.04%。

正如这些图所示,模型顺序的降低并不会显著降低其预测未来值的有效性。

Baidu
map