system: [SYSTEM]

user: 3. 混合事件检测算法 3.1. CUSUM事件检测算法 设有一电流有效值(简称电流)时间序列 I = { i ( j ) } j = 1 ∞ ，定义两个连续的滑动窗口W m (均值计算窗)和W d (暂态检测窗)，其长度分别为m和n。分别计算两个窗口内的均值M m 和M d ，如式(1)、式(2)： M m = ∑ j = k k + m − 1 i ( j ) m (1) M d = ∑ j = k + m k + m + n − 1 i ( j ) n (2) 式中：k为时间序列的第一个采样点。 再分别定义 g k + 和 g k − 用于检测事件投入和切除，其计算方式如式(3)、式(4)所示： g k + = max { 0 ， g k − 1 + + M d − ( M m + β ) } ， g 0 + = 0 (3) g k − = max { 0 ， g k − 1 − − M d + ( M m − β ) } ， g 0 − = 0 (4) 式中： β 为外界引入的噪声，表示该电流时间序列电流稳定时的波动水平。 以投入事件为例，令 g 0 + = 0 ，当检测窗口均值M d 大于 M m + β 时， g k + 开始大于零。根据检测需求设置累计和阈值H，当 0 < g k + < H 时，说明有事件发生的可能，但是累计的变化量尚未达到确定事件发生的程度，此时引入时间延迟因子d (初始值为0)，当 0 < g k + < H 时，令 d = d + 1 ，计算 g k + d + ，直至 g k + d + > H ，则发生的时刻可根据 t = k − d 倒推得出。为了避免序列震荡导致的事件多识别，引入时间延迟因子后，延迟因子每增加1，都要对 g k + d + 和 g k + d − 1 + 进行比较，如果 g k + d + ≤ g k + d − 1 + ，则认为此时是波动引起的电流变化，并令 g k + d + = 0 ， d = 0 ，从而避免了由数据波动导致的多识别事件。以负荷投入事件检测为例的滑动窗双边CUSUM事件检测流程见附图1，检测切除事件的流程与此相似，不再累赘。 滑动窗口大小会影响CUSUM检测的灵敏度，窗口大可以有效避开尖峰的影响，但对样本点不够灵敏，是因为窗口累计和减小，导致漏测。应根据不同负荷特征，设置窗口大小。 3.2. shapeDTW算法 动态时间规整算法(Dynamic time warping， DTW)是一种在两个时间序列之间搜索最佳比对的方法。它用一个距离来度量测量和样本序列之间的相似性。由于序列在时间维度上出现局部非线性失真，而采用DTW可以很好地解决局部扭曲问题。 设时间序列X、Y的长度分别为M、N，即 X = { x 1 ， x 2 ， ⋯ ， x M } ， Y = { y 1 ， y 2 ， ⋯ ， y N } 。构造成对距离矩阵代价矩阵 C M × N ，其中 C ( i ， j ) 是x i 和y j 的距离 d i j = ‖ y j − x i ‖ 2 ， ‖   ⋅   ‖ 2 表示2范数。 设X和Y之间的时间弯曲路径为 p = ( p 1 ， p 2 ， ⋯ ， p k ， ⋯ ， p l ) (5) 其中， p k = ( i k ， j k ) ∈ { 1 ， 2 ， ⋯ ， i } × { 1 ， 2 ， ⋯ ， j } 。 计算距离时需要满足边界性，连续性和单调性三个原则，如式(6)所示。 { p 1 = ( 1 ， 1 ) ， p l = ( i ， j ) i 1 ≤ i 2 ≤ ⋅ ⋅ ⋅ ≤ i l ， j 1 ≤ j 2 ≤ ⋅ ⋅ ⋅ ≤ j l p k + 1 − p k ∈ { ( 1 ， 1 ) ， ( 0 ， 1 ) ， ( 1 ， 0 ) } (6) 两个序列若要得到最佳的匹配，需要从代价矩阵的起点(1， 1)和终点(M， N)之间找到一条路径来获得最小的累计距离。 根据式(7)所示的递推规则，用动态规划算法搜索满足上述约束条件的X和Y之间的最优匹配路径，并计算出相应的最小累计距离D(M， N)，则X和Y之间的DTW距离可以定义为 DTW ( X ， Y ) = D ( M ， N ) / L ，其中L是最优匹配路径的长度。 D ( i ， j ) = C ( i ， j ) + min { D ( i − 1 ， j ) ， D ( i − 1 ， j − 1 ) ， D ( i ， j − 1 ) } (7) 根据上述原理，DTW算法在寻找最佳匹配路径的同时对齐两个时间序列的数据点，使得它们之间的“距离”最小化，例如图2所示。 DTW算法在某些约束条件下找到了全局最优的匹配，但它不一定能实现局部合理的匹配。因此在实际应用时会存在一定的误判情况，原因之一是因为DTW算法为寻求全局最优解而过度拉伸和缩放 [ 19 ]，如附图2(a)所示。为了解决这个问题，本文引入了shapeDTW算法 [ 20 ]。shapeDTW算法先针对每个时序数据点，利用其前序和后序的部分数据提取出其局部形态特征，再将每个点周围的局部形状信息结合到动态规划匹配过程中，从而产生更正确的对齐结果，即具有相似局部形状的点倾向于被匹配，而具有不相似领域的点不太可能被匹配。相比于标准的DTW算法只关注全局最优解，shapeDTW算法更加关注时间序列在局部形态特征上的匹配长度。由此可见，shapeDTW算法可以利用局部形态特征，在很大程度上避免了过度拉伸和缩放所导致的误判问题。 图2. DTW算法原理示意图 3.3. 建立自适应周期性波形数据库 3.3.1. 波形聚类 通过k-mean聚类方法对周期性波形进行聚类。考虑到聚类的对象是时间序列，时间序列可能长度不同。因此采用DTW距离代替欧式距离作为样本间的相似度度量标准。两个向量DTW距离越近则两个向量相似性越高，划分为同一类的可能性越高，否则相似性越低，划分为同一类的可能性越低。假设待聚类的样本集为 Z = { z i | i = 1 ， 2 ， ⋯ ， n } ，待聚类样本集实际类数为K。聚类误差平方和如式(8)所示。 E = ∑ i = 1 K ∑ j ∈ C i DTW ( z j − m i ) (8) 其中，C i 是第i类的所有样本。m i 是第i类的聚类中心。 ∑ j ∈ C i DTW ( z j − m i ) 表示第i类的所有样本到该聚类中心的DTW距离之和，该值越小，说明该类样本的相似性越高，聚类效果越好。 为了保证shapeDTW算法的有效性，需建立周期性波形数据库。本文采用改进k_means聚类算法对电器的工作波形进行聚类，将离聚类中心最近的波形作为该电器的典型波形。如图1所示，以洗衣机为例，洗衣机具有四类典型波形，设置聚类数量为4。本文建立的周期性波形数据库共有6种波形，见附图3。 3.3.2. 自适应周期性波形数据库 为保证周期性波形数据库的构建方法对于多数独立用户具有普适性，在聚类方法中，依据周期性负荷具有的操作特性对分类判别条件进行设定，从而实现对周期波形的无监督分类问题。 根据shapeDTW的原理只能将待测波形分配到已知的类别中，但是待测波形可能属于新出现的周期性波形，该待测波形与已知的类别相似度很小，因此可以预设一个阈值T，来识别新出现的周期性波形。自适应建立波形数据库步骤为：1) 待测波形z与周期性波形数据库的距离满足 DTW ( z ， z i ) ≤ T 的最小值所对应的类别就判定该波形为哪一类。2) 若 DTW ( z ， z i ) > T ，则将待测样本暂时判定为新出现的波形类别z new ，并暂时加入周期性波形数据库。3) 继续匹配下一个波形，如连续出现3个波形都匹配为z new ，则认为切入了周期性设备z new ，并永久将z new 加入周期性波形数据库。反之，则删除z new 。 3.4. 混合事件检测算法流程 本文共用到两次CUSUM检测，记为CUSUM_1和CUSUM_2。 1) 输入总负荷电流数据。通常事件检测考虑电流与功率特征，由于电流数据更加稳定，本文取电流为被检测的电气量。 2) 检测启停波形。CUSUM_1用于检测周期性波形的启停，由于洗衣进周期性波形的启停间隔较短，因此需设置较小的窗口。 3) 识别周期性波形。将2)中检测到的启停波形进行shapeDTW匹配，若出现连续3次波形匹配为同一个电器，则认为此时打开了该电器。当判断有周期性波形设备打开时，则将同类波形删除，即将连续检测到的启–停位置之间的数据剥离。最后，将各个片段重新连接成一个新的时间序列。 4) 检测其他电器波形。CUSUM_2用于检测3)处理后的数据。此时可认为无周期性电器运行，即SCP成立。因此窗口设置较大。具体设置可参考案例中电器的事件间隔大小。 本文提出的混合事件检测算法流程图如图3所示。 图3. 混合事件检测算法流程图