主要内容

使用识别技术检测系统突变

这个例子展示了如何使用在线估计和自动数据分割技术检测系统行为中的突然变化。本示例使用系统标识工具箱™的功能,不需要预测性维护工具箱™。

问题描述

考虑一个传输延迟从2秒到1秒的线性系统。传输延迟是输入影响被测输出的时间。在本例中,您将使用在线估计和数据分割技术检测传输延迟的变化。从系统测量的输入输出数据可在数据文件中获得pdmAbruptChangesData.mat

加载并绘制数据。

负载pdmAbruptChangesData.matZ = iddata(Z (:,1), Z (:,2));情节(z)网格

图中包含2个轴对象。标题为y1的Axes对象1包含一个类型为line的对象。标题为u1的Axes对象2包含一个类型为line的对象。这个对象表示z。

传输延迟的变化发生在20秒左右,但在图中不容易看到。

使用一个ARX结构对系统建模一个多项式系数,2B多项式系数,一个延时。

y t + 一个 y t - 1 b 1 u t - 1 + b 2 u t - 2

在这里,A = [1 A]而且B = [0 b1 b2]

的领先系数B多项式是零,因为模型没有馈通。随着系统动力学的变化,这三个系数的值一个b1,b2改变。当b1接近于零时,有效传输延迟将是2个样本,因为B多项式有两个前导0。当b1则有效传输延迟为1个样本。

因此,为了检测传输延迟的变化,您可以监视B多项式系数。

使用在线估计进行变更检测

当新的数据可用时,在线估计算法以递归的方式更新模型参数和状态估计。您可以使用来自系统识别工具箱库的Simulink块执行在线估计,或者在命令行上使万博1manbetx用递归识别例程,例如recursiveARX.在线估计可用于建模时变动态,如老化的机械和变化的天气模式,或检测机电系统的故障。

当估计者更新模型参数时,系统动力学(延迟)的变化将由比通常参数值更大的变化来表示b1而且b2.的变化B多项式系数将通过计算跟踪:

l t 一个 b 年代 B t - B t - 1

使用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) =动画线(“颜色”、颜色{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)结束

图中包含一个axes对象。标题为ARX递归参数估计的axis对象包含4个animatedline类型的对象。这些对象表示a b1 b2偏差。

第一个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)

图中包含一个axes对象。标题为ARX递归参数估计的axis对象包含5个类型为animatedline, line的对象。这些对象表示a b1 b2偏差。

流('在样本号%d处检测到系统延迟的变化。\n'疯狂的(我));
在样品编号21处检测到系统延迟的变化。

最大峰值的位置对应着最大的变化B多项式系数,因此是运输延迟变化的位置。

在线估计技术为估计方法和模型结构的选择提供了更多的选择,而数据分割方法有助于自动检测突变和孤立的变化。

使用数据分割进行变更检测

数据分割算法自动将数据分割成不同动态行为的区域。这对于捕获由于故障或操作条件的变化而引起的突变非常有用。的命令便于单次输出数据的操作。当您不需要捕获系统运行期间的时变行为时,是在线估计技术的备选方案。

数据分割的应用包括语音信号的分割(每个段对应一个音素),故障检测(每个段对应有故障和无故障的操作),以及系统不同工作模式的估计。

的输入命令包括测量数据,模型顺序和方差的猜测,r2,即影响系统的噪音。如果方差完全未知,则可以自动估计。使用与在线估计相同顺序的ARX模型执行数据分割。将方差设为0.1。

[seg,V,tvmod] = segment(z,[na nb nk],0.1);

分割方法基于AFMM (adaptive forget through multiple models)。有关方法的详细信息,参见Andersson, Int。1985年11月。

采用多模型方法对时变系统进行跟踪。得到的跟踪模型是多个模型的平均值,并作为的第三个输出参数返回tvmod

绘制跟踪模型的参数。

情节(tvmod)传说({“一个”“b_1”“b_2”},“位置”“最佳”)包含(“样本”), ylabel (的参数值)标题(“时变估计”

图中包含一个axes对象。标题为Time-varying estimate的axes对象包含3个类型为line的对象。这些对象表示a b_1 b_2。

注意这些参数轨迹和使用recursiveARX

确定发生更改时的时间点tvmod而且,表示模型出现突变的概率。通过对跟踪模型进行平滑处理,利用这些时间点构建分段模型。

中返回分段模型的参数值赛格的第一个输出参数.每个连续行的值是底层分段模型在相应时刻的参数值。这些值在连续的行中保持不变,只有当确定系统动态发生了变化时才会改变。因此,在赛格都是分段常数。

绘制参数的估计值一个b1,b2

情节(凹陷)标题(“参数值段”)({传奇“一个”“b1”“b2”},“位置”“最佳”)包含(的时间(秒)) ylabel (的参数值

图中包含一个axes对象。带有标题参数值分段的axis对象包含3个类型为line的对象。这些向量表示a b1 b2。

在样本号19附近的参数值中可以看到变化。的价值b1从小(接近于零)到大(接近于1)值的变化。的价值b2显示了相反的模式。的值的变化B参数表示传输延迟的变化。

的第二个输出参数V,为分段模型的损失函数(即分段模型的估计预测误差方差)。你可以用V评估分段模型的质量。

注意,分割算法的两个最重要的输入是r2而且,第四个输入参数为.在这个例子中,没有指定,因为默认值0.01已经足够。较小的值r2和更大的值将导致更多的分割点。为了找到合适的值,您可以进行更改r2而且使用效果最好的。通常情况下,分割算法对r2

结论

利用在线估计和数据分割技术检测系统动态突变进行了评估。在线评估技术对评估过程提供了更多的灵活性和更多的控制。然而,对于不频繁或突然的变化,促进了基于平滑时变参数估计的自动检测技术。

相关的话题