使用识别技术检测突然的系统变化
这个例子展示了如何使用在线估计和自动数据分割技术检测系统行为中的突然变化。本例使用系统识别工具箱™中的功能,不需要预测性维护工具箱™。
问题描述
考虑一个线性系统,其传输延迟从2秒变为1秒。传输延迟是输入影响测量输出所花费的时间。在本例中,使用在线估计和数据分割技术检测传输延迟的变化。从系统测量的输入-输出数据在数据文件中可用pdmAbruptChangesData.mat
。
加载并绘制数据。
负载pdmAbruptChangesData.matZ = iddata(Z (:,1), Z (:,2));情节(z)网格在
运输延迟的变化发生在20秒左右,但在情节中不容易看到。
使用ARX结构对系统进行建模一个
多项式系数,2B
多项式系数,一个延迟。
在这里,A = [1 A]
而且B = [0 b1 b2]
。
的领先系数B
多项式为零,因为模型没有馈通。随着系统动态的变化,这三个系数的值也随之变化一个
,b1
,b2
改变。当b1
接近于零时,有效传输延迟将为2个样本,因为B
一个多项式有两个前导零。当b1
较大时,有效传输延迟为1个样本。
因此,要检测传输延迟的变化,可以监视B
多项式系数。
使用在线估计进行变更检测
在线估计算法在新数据可用时,以递归的方式更新模型参数和状态估计。您可以使用系统识别工具箱库中的Simulink块或在命令行中使用递归识别例程执行金宝app在线估计,例如recursiveARX
。在线估计可用于建模随时间变化的动态,如老化的机械和变化的天气模式,或检测机电系统中的故障。
当估计器更新模型参数时,系统动力学(延迟)的变化将由参数值的比通常更大的变化表示b1
而且b2
。的变化B
多项式系数将通过计算跟踪:
使用recursiveARX
对象,用于ARX模型的在线参数估计。
Na = 1;Nb = 2;Nk = 1;Estimator = recursiveARX([na nb nk]);
指定递归估计算法为NormalizedGradient
适应增益为0.9。
估计量。EstimationMethod =“NormalizedGradient”;估计量。一个daptationGain = .9;
中提取原始数据iddata
对象,z
。
Output = z.OutputData;Input = z.InputData;t = z.SamplingInstants;N =长度(t);
使用动画线绘制估计的参数值和l
。在估计之前初始化这些动画线条。为了模拟流数据,每次向估计器输入一个样本。在估计前初始化模型参数,然后进行在线估计。
初始化绘图颜色= {“r”,‘g’,“b”};Ax = gca;班(ax)为K = 3:-1:1 h(K) = animatedline(“颜色”、颜色{k});%行用于a, b1和b2参数结束H (4) = animatedline(“标记”,'.',“颜色”,[0 0 0]);L的%线传奇({“一个”,“b1”,“b2”,“偏差”},“位置”,“东南”)标题(“ARX递归参数估计”)包含(的时间(秒)) ylabel (的参数值斧头。XLim = [t(1),t(end)];斧子。YLim = [- 2,2];网格在盒子在现在执行递归估计并显示结果N0 = 6;L = NaN(N,nk);B_old = NaN(1,3);为ct = 1:N [A,B] = step(估计器,输出(ct),输入(ct));如果ct>n0 L(ct) = norm(B-B_old);B_old = B;结束addpoints (h(1)、t (ct), (2)) addpoints (h(2)、t (ct)、B (2)) addpoints (h (3), t (ct)、B (3)) addpoints (h (4), t (ct), L (ct))暂停(0.1)结束
第一个n0
= 6个样本数据不用于计算变化检测器,l
。在这段时间内,由于初始条件未知,参数变化很大。
找到所有峰的位置l
通过使用findpeaks
命令从信号处理工具箱。
[v,Loc] = findpeaks(L);[~,I] = max(v);线(t (Loc (I)), L (Loc (I)),“父”ax,“标记”,“o”,“MarkerEdgeColor”,“r”,…“MarkerFaceColor”,“y”,“MarkerSize”, 12)
流('在样本编号%d.\n处检测到系统延迟的变化'疯狂的(我));
在编号21的样本中检测到系统延迟的变化。
最大峰值的位置对应的变化最大B
多项式系数,因此是传输延迟变化的位置。
在线估计技术为选择估计方法和模型结构提供了更多的选择,而数据分割方法可以帮助自动检测突变和孤立的变化。
使用数据分段进行变化检测
数据分割算法自动将数据分割成不同动态行为的区域。这对于捕捉由故障或操作条件变化引起的突然变化很有用。的段
命令为单输出数据提供了操作便利。段
当您在系统运行期间不需要捕获时变行为时,是在线估计技术的替代方案。
数据分割的应用包括语音信号的分割(每段对应一个音素)、故障检测(每段对应有故障和没有故障的操作)以及系统不同工作模式的估计。
的输入段
命令包括测量数据、模型顺序和方差的猜测,r2
,表示影响系统的噪声。如果方差完全未知,则可以自动估计。使用与在线估计相同顺序的ARX模型执行数据分割。将方差设置为0.1。
[seg,V,tvmod] = segment(z,[na nb nk],0.1);
分割的方法是基于AFMM(自适应遗忘通过多模型)。有关该方法的详细信息,请参见Andersson, Int。1985年11月。
采用多模型方法对时变系统进行跟踪。生成的跟踪模型是多个模型的平均值,并作为的第三个输出参数返回段
,tvmod
。
绘制跟踪模型参数图。
情节(tvmod)传说({“一个”,“b_1”,“b_2”},“位置”,“最佳”)包含(“样本”), ylabel (的参数值)标题(“时变估计”)
请注意这些参数轨迹和那些使用估计的轨迹之间的相似性recursiveARX
。
段
使用确定发生更改时的时间点tvmod
而且问
,即模型显示突变的概率。通过对跟踪模型进行平滑处理,这些时间点被用于构造分段模型。
中返回分段模型的参数值赛格
的第一个输出参数段
。每个连续行的值是底层分段模型在相应时刻的参数值。这些值在连续的行中保持不变,只有在确定系统动态发生变化时才会改变。因此,在赛格
都是分段常数。
绘制参数的估计值一个
,b1
,b2
。
情节(凹陷)标题(“参数值段”)({传奇“一个”,“b1”,“b2”},“位置”,“最佳”)包含(的时间(秒)) ylabel (的参数值)
在样本号19附近的参数值中可以看到变化。的价值b1
从小值(接近零)到大值(接近1)的变化。的价值b2
显示相反的模式。的值的变化B
参数表示传输延迟的变化。
的第二个输出参数段
,V
,为分割模型的损失函数(即估计的分割模型的预测误差方差)。你可以使用V
评估分割模型的质量。
请注意,分割算法的两个最重要的输入是r2
而且问
的第四个输入参数段
。在这个例子中,问
没有指定,因为默认值0.01是足够的。较小的值r2
更大的值问
将导致更多的分割点。为了找到合适的值,您可以更改r2
而且问
使用效果最好的。通常,分割算法对r2
比问
。
结论
评估了在线估计和数据分割技术用于检测系统动态中的突变。在线评估技术对评估过程提供了更大的灵活性和更多的控制。然而,对于不频繁或突然的变化,段
促进基于平滑时变参数估计的自动检测技术。