1.一种基于字符消息队列的非侵入式负荷识别方法,其特征在于,所述方法包括以下步骤:步骤1:低频数据在线实时输入,数据预处理
计算模块接受数据,将数据强制转换成字符串格式,计算参数;
步骤2:数据整合传输
kafka消息系统作为消息中间件,producer端将步骤1所得的数据逐条发送到消息队列中,根据步骤1计算得到的检测窗口长度n,初始化偏移量为i,评估窗口长度为b,consumer端指定从消息队列中获取偏移量为i到i+n+b的数据;
步骤3:事件检测
将步骤2所得的数据格式化,进行事件检测后返回事件数据列表database_event,包±括:评估均值μ_mean、检测均值μ_det、均值偏移量累积和S 和事件持续时间Δi,若无事件发生则Δi=1;
步骤4:特征提取
将步骤3所得的database_event进行处理,提取特征包含如下:均值差Δμ、均值偏移量±累积和S 、功率极差Δpower、功率均值power_mean;
步骤5:事件识别
使用LightGBM算法进行事件识别分类,使用贝叶斯算法优化LightGBM参数,将步骤4所得的特征输入事件识别模型中,得到事件概率列表,取概率最大的事件类型为最终识别结果;
步骤6:更新偏移量
根据步骤3所得的事件持续时间Δi,修改偏移量为i+Δi;
所述步骤1中,获取最小功率负荷的功率pmin,设检测窗口为n,事件检测算法累积和阈值为thd,其中pmin为已知参数,n和thd为未知参数,为使算法能够以最小的算力进行检测,n和thd应满足以下公式:thd≈pmin×n
式中 为最大功率设备切出时,第一次出现功率下降的检测窗口, 为设备完全切出时的检测窗口,pj为偏移量为j的功率值,l和m为偏移量;
所述步骤3中,使用改进的变长滑窗CUSUM算法,将步骤3所得的窗口数据,划分为评估窗口MW和检测窗口DW,评估窗口给出评估均值μ_mean,检测窗口根据检测均值μ_det相对于±μ_mean的变化情况,来判断是否发生事件,若发生事件则获取当前事件的μ_mean、μ_det、S及事件持续时间Δi,制成1维事件数据列表。
2.如权利要求1所述的基于字符消息队列的非侵入式负荷识别方法,其特征在于,所述步骤2中,计算每条数据的字节数num,初始化偏移量为i,使得consumer从i处开始获取数据,设置单次能够获取的最大记录数为n+b、单次返回的最小数据量为num×(n+b),使consumer每次从消息队列中获取指定数量n的数据,当consumer无法从消息队列中获取到足够数量n的数据时,将自动暂停数据获取操作,直至能够获取n+b条。
3.如权利要求1所述的基于字符消息队列的非侵入式负荷识别方法,其特征在于,改进的变长滑窗CUSUM算法中,以变长窗口的方式计算检测均值,其计算公式如下:μ_det=(p1+p2+…pk)/k
±
初始时k=1,之后每次k+1,当S >thd时,记录Δi=k,即为事件持续时间,而当k大于DW的长度时,即视为未检测到事件,Δi=1。
4.如权利要求1所述的基于字符消息队列的非侵入式负荷识别方法,其特征在于,所述步骤6中,根据事件持续时间Δi,修改偏移量i=i+Δi,使consumer下次获取偏移量为i+Δi到i+Δi+n+b的数据,此方案使算法不会对同一事件进行重复检测。