主要内容

分析数据在多变量系统和识别模型

这个例子显示了如何处理数据与几个输入和输出通道(MIMO数据)。常见的操作,如查看MIMO数据,估算和比较模型,突出显示和查看相应的模型响应。

数据集

我们开始通过查看数据集SteamEng。

负载SteamEng

这个数据集收集从一个实验室规模的蒸汽机。它的输入压力的蒸汽控制阀后(实际上压缩空气),和磁化电压在发电机连接到输出轴。

输出是产生的电压在发电机和转速的发电机(生成的交流电压的频率)。样品时间是50 ms。

首先收集到一个测量通道iddata对象:

蒸汽= iddata (GenVolt,速度,压力,MagVolt, 0.05);蒸汽。InputName = {“压力”;“MagVolt”};蒸汽。OutputName = {“GenVolt”;“速度”};

让我们看一看数据

情节(蒸汽(:,1,1))

图包含2轴对象。坐标轴对象1标题GenVolt包含一个类型的对象。该对象代表untitled1。轴压力对象2标题包含一个类型的对象。该对象代表untitled1。

情节(蒸汽(:,1,2))

图包含2轴对象。坐标轴对象1标题GenVolt包含一个类型的对象。该对象代表untitled1。坐标轴对象2标题MagVolt包含一个类型的对象。该对象代表untitled1。

情节(蒸汽(:2 1))

图包含2轴对象。坐标轴对象以标题的速度1包含一个类型的对象。该对象代表untitled1。轴压力对象2标题包含一个类型的对象。该对象代表untitled1。

情节(蒸汽(:2 2))

图包含2轴对象。坐标轴对象以标题的速度1包含一个类型的对象。该对象代表untitled1。坐标轴对象2标题MagVolt包含一个类型的对象。该对象代表untitled1。

步进脉冲响应

了解动态的第一步是看一步反应不同通道之间的估计直接从数据:

mi =冲动(蒸汽、50);clf,步骤(mi)

图包含4轴对象。坐标轴对象的标题1:压力,ylabel: GenVolt包含一个类型的对象。该对象代表mi。轴对象与ylabel 2:速度包含一个类型的对象。该对象代表mi。轴对象的标题3:MagVolt包含一个类型的对象。该对象代表mi。4轴对象包含一个类型的对象。该对象代表mi。

满怀信心地反应区域

看反应的重要性,可以使用脉冲情节相反,满怀信心地区域对应3个标准差:

showConfidence (impulseplot (mi), 3)

图包含4轴对象。坐标轴对象的标题1:压力,ylabel: GenVolt包含2线类型的对象。一个或多个行显示的值只使用标记这个对象代表mi。轴对象与ylabel 2:速度包含2线类型的对象。一个或多个行显示的值只使用标记这个对象代表mi。轴对象的标题3:MagVolt包含2线类型的对象。一个或多个行显示的值只使用标记这个对象代表mi。轴对象4包含2线类型的对象。一个或多个行显示的值只使用标记这个对象代表mi。

显然,非对角的影响占主导地位(比较y-scales !)也就是说,GenVolt主要是受MagVolt(没有多少动力)和速度主要取决于压力。明显的反应MagVolt速度不是很重要的。

Two-Input-Two-Output模型

快速的第一个测试也看一个默认的连续时间状态空间预测误差模型。只使用上半年的数据估计:

议员= ss(蒸汽(摘要)
议员=连续时间状态空间模型发现:dx / dt = x (t) + B u e (t) + K (t) y (t) = C x (t) + D u (t) + e (t) = (x1, x2) x3 x4 x1 x2 -29.43 -4.561 0.5994 -5.199 0.4849 -0.8662 -4.101 -2.336 x3 x4 -12.13 0.9224 1.818 -3.855 2.839 5.084 -8.566 -34.29 B =压力MagVolt x1 -1.566 - 0.2953 -0.3027 - -0.09415 0.1033 - -1.617 x2 x3 x4 -0.04477 - -2.681 C = (x1, x2) x3 x4 GenVolt速度-16.39 - 0.3767 -0.7566 - 2.808 -5.623 - 2.246 -0.5356 - 3.423 D =压力MagVolt GenVolt 0 0速度0 0 K = GenVolt速度x1 1.526 - 2.132 -0.0231 - 5.195 -0.3555 - 0.0853 x2 x3 x4 1.787 - 0.03216参数化:自由形式(所有系数A、B、C免费)。引线:没有干扰组件:估计数量的免费系数:40使用“idssdata”、“getpvec”、“getcov”参数及其不确定性。状态:估计对时域数据使用党卫军。适合估算数据:[86.9,74.84]%(预测聚焦)消防工程:3.896 e-05, MSE: 0.01414

与步骤的反应估计直接从数据:

h = stepplot (mi,“b”国会议员,“r”2);%蓝色直接估计,红色为议员showConfidence (h)

图包含4轴对象。坐标轴对象的标题1:压力,ylabel: GenVolt包含2线类型的对象。这些对象代表mi, mp。轴与ylabel对象2:速度包含2线类型的对象。这些对象代表mi, mp。坐标轴对象的标题3:MagVolt包含2线类型的对象。这些对象代表mi, mp。坐标轴对象4包含2线类型的对象。这些对象代表mi, mp。

的协议是好的变化允许范围内显示信心。

测试的质量,状态空间模型模拟的数据,并不是用于估计和比较输出:

比较(蒸汽(251:450)议员)

图包含2轴对象。坐标轴对象1 ylabel GenVolt包含2线类型的对象。这些对象代表验证数据(GenVolt)议员:83.55%。坐标轴对象以ylabel速度2包含2线类型的对象。这些对象代表验证数据(速度),国会议员:39.33%。

模型非常擅长复制生成的电压验证数据,和一个合理的工作速度。(使用下拉菜单查看适合不同的输出)。

光谱分析

同样,频率响应的比较国会议员与光谱分析的估计:

msp = spa(蒸汽);

波德(msp, mp)

clf,波德(msp,“b”国会议员,“r”)

图包含8轴对象。坐标轴对象的标题1:压力,ylabel: GenVolt包含2线类型的对象。这些对象代表msp, mp。轴与ylabel对象2:GenVolt包含2线类型的对象。这些对象代表msp, mp。轴与ylabel对象3:速度包含2线类型的对象。这些对象代表msp, mp。坐标轴对象与ylabel 4:速度包含2线类型的对象。这些对象代表msp, mp。5轴对象的标题:MagVolt包含2线类型的对象。 These objects represent msp, mp. Axes object 6 contains 2 objects of type line. These objects represent msp, mp. Axes object 7 contains 2 objects of type line. These objects represent msp, mp. Axes object 8 contains 2 objects of type line. These objects represent msp, mp.

您可以右键单击情节和选择不同的I / O对亲密的样子。你也可以选择的特点:置信区域波德图的可靠性的照片。

像以前一样的反应MagVolt速度是无关紧要的,难以估计。

Single-Input-Single-Output模型的输出

这个数据集快速给好的模型。否则你经常尝试子模型对于特定频道,看到显著影响工具箱对象充分支持必要的记账等工作。金宝app输入和输出的名称是至关重要的。

这一步反应表明MagVolt主要的影响GenVolt压力主要影响速度。构建这两个简单的输出模型:名字和号码可以使用在选择渠道。

m1 =特遣部队(蒸汽(摘要,“速度”,“压力”)、2、1);% TF模型2杆1 0m2 =特遣部队(蒸汽(摘要、1、2),1,0)%简单的TF模型1。
m2 =从输入“MagVolt”输出“GenVolt”: 18.57 - - - - - - - - - - - - s + 43.53连续时间确定传递函数。参数化:极数:1 0数量:0很多免费的系数:2使用“tfdata”、“getpvec”、“getcov”参数及其不确定性。状态:使用tf时域数据的估计。适合估算数据:73.34%消防工程:0.04645,MSE: 0.04535

比较这些模型与MIMO模型议员:

比较(蒸汽(251:450),m1, m2, mp)

图包含2轴对象。坐标轴对象1 ylabel GenVolt包含3线类型的对象。这些对象代表验证数据(GenVolt), m2: 80.33%,议员:83.55%。坐标轴对象以ylabel速度2包含3线类型的对象。这些对象代表验证数据(速度),m1: 47.2%,议员:39.33%。

输出模型比较完整的模型。现在让我们比较尼奎斯特图。m1是蓝色的,平方米是绿色的,国会议员是红色的。注意,排序是自动的。国会议员描述了所有输入输出对,m1只包含压力速度平方米只包含MagVoltGenVolt

clf showConfidence (nyquistplot (m1,“b”平方米,‘g’国会议员,“r”),3)

图包含4轴对象。坐标轴对象的标题1:压力,ylabel: GenVolt包含5线类型的对象。一个或多个行显示的值只使用标记这个对象代表议员。轴与ylabel对象2:速度包含10线类型的对象。一个或多个行显示的值只使用这些对象标记代表m1, mp。坐标轴对象的标题3:MagVolt包含10线类型的对象。一个或多个行显示的值只使用这些对象标记代表m2, mp。坐标轴对象4包含5线类型的对象。一个或多个行显示的值只使用标记这个对象代表议员。

繁殖输出模型做好各自的输出。

经验法则是,模型拟合越来越难,当你添加更多的输出(更多的解释!)和简单的,当你添加更多的输入。

Two-Input-Single-Output模型

做一份好工作的输出GenVolt,两个输入都可以被使用。

m3 = armax(蒸汽(摘要,“GenVolt”:)“na”4“注”(4 - 4),“数控”2,“朝鲜”[1]);m4 =特遣部队(蒸汽(摘要,“GenVolt”:),2、1);比较(蒸汽(251:450),mp, m3, m4, m2)

图包含2轴对象。坐标轴对象1 ylabel GenVolt包含5线类型的对象。这些对象代表验证数据(GenVolt)议员:83.55%,m3: 90.18%, m4: 89.38%, m2: 80.33%。坐标轴对象以ylabel速度2包含2线类型的对象。这些对象代表验证数据(速度),国会议员:39.33%。

约10%的改善是可能的,包括输入压力在模型中m3(离散时间)m4(持续时间),相比平方米只使用MagVolt作为输入。

合并的输出模型

如果需要,两个输出模型m1平方米可以放在一起作为一个“非对角的”模型,首先创建一个零虚拟模型:

mdum = idss (0 (2, 2), 0 (2, 2), 0 (2, 2), 0 (2, 2));mdum。InputName = steam.InputName;mdum。OutputName = steam.OutputName;mdum。t = 0;%连续时间模型m12 = [ids (m1), mdum (“速度”,“MagVolt”));%增加投入。%来自输入速度锰= [mdum (“GenVolt”,“压力”),ids (m2)];%增加投入。%来自GenVolt输入毫米= (m12;锰);%添加一个2×2的输出模型。比较(蒸汽(251:450)、国会议员、毫米)

图包含2轴对象。坐标轴对象1 ylabel GenVolt包含3线类型的对象。这些对象代表验证数据(GenVolt)议员:83.55%,mm: 80.33%。坐标轴对象以ylabel速度2包含3线类型的对象。这些对象代表验证数据(速度),国会议员:39.33%,mm: 47.2%。

显然,“非对角的”模型毫米执行像m1平方米在解释输出。