孔友 劉軍
摘要:隨著工業(yè)IT技術(shù)的不斷發(fā)展和應(yīng)用過程中,組態(tài)軟件測(cè)試技術(shù)逐漸成為工業(yè)自動(dòng)化系統(tǒng)的主要組成應(yīng)用技術(shù)。組態(tài)軟件測(cè)試技術(shù)下是面向數(shù)據(jù)采集與過程控制的軟件平臺(tái)工具,具有豐富的設(shè)置項(xiàng)目,靈活的操作方式、強(qiáng)大的功能,目前已廣泛應(yīng)用于電力系統(tǒng)、石油、化工等領(lǐng)域的數(shù)據(jù)采集與監(jiān)視控制等多個(gè)領(lǐng)域。由于組態(tài)軟件測(cè)試技術(shù)應(yīng)用領(lǐng)域的多樣性,給組態(tài)軟件的性能指標(biāo)、使用方式以及驅(qū)動(dòng)程序都提出了更高的要求。最新的組態(tài)軟件安全報(bào)告表明,超過90%已發(fā)現(xiàn)的安全問題主要在于驅(qū)動(dòng)程序,比存在安全漏洞的組態(tài)軟件更可怕的是驅(qū)動(dòng)程序因運(yùn)行狀態(tài)變化而產(chǎn)生的異常情況,造成數(shù)據(jù)丟失。在這種情況下,對(duì)應(yīng)用的組態(tài)軟件測(cè)試技術(shù)下驅(qū)動(dòng)程序進(jìn)行異常檢測(cè)變得越來越重要。
關(guān)鍵詞:組態(tài)軟件測(cè)試;電力系統(tǒng);程序缺陷;檢測(cè)仿真
1組態(tài)軟件測(cè)試下電力系統(tǒng)程序缺陷檢測(cè)原理
引入組態(tài)軟件測(cè)試技術(shù)下驅(qū)動(dòng)程序時(shí)間序列有效分?jǐn)?shù)向量作為檢測(cè)統(tǒng)計(jì)量,利用小波分析統(tǒng)計(jì)量的方法克服電力程序缺陷檢測(cè)過程中存在延時(shí)的缺陷,采用李氏指數(shù)以及小波變換關(guān)系實(shí)現(xiàn)在一個(gè)檢測(cè)框架內(nèi)同時(shí)在線監(jiān)測(cè)軟件驅(qū)動(dòng)電力程序缺陷以及突變點(diǎn),使得檢測(cè)結(jié)果更符合缺陷存在的實(shí)際情況,具體過程如下所述:
利用時(shí)間序列建模算法對(duì)組態(tài)軟件測(cè)試技術(shù)下驅(qū)動(dòng)程序時(shí)間序列進(jìn)行在線建模,即
其中,o表示驅(qū)動(dòng)程序時(shí)間序列模型階次,et表示擬合殘差,遵從高斯分布,即N(μ,σ2)。當(dāng)驅(qū)動(dòng)程序時(shí)間序列x1,x2,…中沒有出現(xiàn)缺陷時(shí),構(gòu)建的模型為g(·),假設(shè)在某個(gè)監(jiān)測(cè)時(shí)段τ內(nèi)出現(xiàn)缺陷,即τ時(shí)段之后的時(shí)間序列不再符合模型g(·)。假設(shè)仍然利用該模型對(duì)時(shí)段τ后的數(shù)據(jù)進(jìn)行擬合,將會(huì)出現(xiàn)擬合殘差,可將這種情況視為et,t≥τ遵從高斯分布的方差發(fā)生的變化。依據(jù)此分析以及式(1),重新給出假設(shè)
H0:σ2=σ02,對(duì)于全部觀測(cè)值μ未知;
從上式中可以看出,由于只對(duì)高斯分布中的方差σ2感興趣,統(tǒng)計(jì)量Wk在后續(xù)進(jìn)行在線缺陷檢測(cè)過程中僅是一個(gè)參數(shù)方差的統(tǒng)計(jì)量。
考慮到監(jiān)驅(qū)動(dòng)程序時(shí)間序列數(shù)據(jù)量較大,需要對(duì)其進(jìn)行在線缺陷檢測(cè)的要求,利用在線遞推小波分解方法對(duì)統(tǒng)計(jì)量Wk進(jìn)行在線小波分析,利用下式給出遞推小波的母小波函數(shù)
其中, 。最后推導(dǎo)出的小波分解式為
其中,Wx,Φ(kT,f)表示kT時(shí)段、頻率f下的小波系數(shù),T表示驅(qū)動(dòng)程序時(shí)間序列采樣周期,k表示整數(shù)標(biāo)記采樣點(diǎn),δ1,…,δ5表示小波分量,λ1,…,λ5表示常數(shù)。
由式(4)可知,僅需計(jì)算出多個(gè)小波系數(shù)Wx,Φ,就可以采用前5個(gè)時(shí)段的信號(hào)x以及前6個(gè)時(shí)段的小波系數(shù)計(jì)算出當(dāng)前的小波系數(shù),實(shí)現(xiàn)組態(tài)軟件測(cè)試技術(shù)下驅(qū)動(dòng)程序時(shí)間序列小波分解,以滿足缺陷在線檢測(cè)的要求。
綜上所述為電力程序缺陷檢測(cè)原理,根據(jù)該原理完成組態(tài)軟件測(cè)試技術(shù)下驅(qū)動(dòng)電力程序缺陷的檢測(cè)。
2組態(tài)軟件測(cè)試技術(shù)下電力程序缺陷檢測(cè)方法
2.1驅(qū)動(dòng)程序時(shí)間序列多分量特征提取
利用大數(shù)據(jù)方法將組態(tài)軟件測(cè)試技術(shù)下驅(qū)動(dòng)程序時(shí)間序列分解成周期分量、趨勢(shì)分量、隨機(jī)誤差分量以及突發(fā)分量等多個(gè)不同分量,對(duì)不同的時(shí)間序列分量進(jìn)行特征提取,并對(duì)分量特征提取結(jié)果進(jìn)行奇異點(diǎn)檢測(cè),具體過程如下所述:
根據(jù)組態(tài)軟件測(cè)試技術(shù)下驅(qū)動(dòng)程序時(shí)間序列周期特點(diǎn),結(jié)合大數(shù)據(jù)處理方法來確定驅(qū)動(dòng)程序時(shí)間序列周期L,利用下式對(duì)驅(qū)動(dòng)程序時(shí)間序列X{x1,…,xM}進(jìn)行差分計(jì)算獲得矩陣A,即
對(duì)矩陣A的各行進(jìn)行線性擬合,(a1,…,am-1)、(b1,…,bm-1)分別表示參數(shù),將矩陣A中的各行帶入相應(yīng)的Y=aN+b中獲得矩陣A',利用下式進(jìn)行表示:
利用最小二乘法計(jì)算A與A'各行最小誤差,將每次出現(xiàn)最小誤差的行數(shù)描述為周期L,即
軟件驅(qū)動(dòng)程序時(shí)間序列周期分量特征的正確提取是進(jìn)行趨勢(shì)分量特征提取的前提條件,根據(jù)驅(qū)動(dòng)程序周期分量特征提取獲得周期L,將驅(qū)動(dòng)程序時(shí)間序列X'按照周期L進(jìn)行劃分獲得矩陣B,xM表示驅(qū)動(dòng)程序時(shí)間序列X'的最終數(shù)據(jù),xM之后的數(shù)據(jù)描述為空值NA。
根據(jù)驅(qū)動(dòng)程序時(shí)間的實(shí)際情況來確定隨機(jī)誤差分量的分布函數(shù),將矩陣B中的各行逐次取出,獲得共計(jì)N″個(gè)時(shí)間序列,通過對(duì)X進(jìn)行統(tǒng)計(jì)分析,獲得驅(qū)動(dòng)程序時(shí)間序列X的分布模型,對(duì)于全部的軟件驅(qū)動(dòng)程序時(shí)間序列Ni,依據(jù)F(x)分布模型可獲得一組新的時(shí)間序列N'1,…,N'N,對(duì)于本身就有的序列N1,…,NN內(nèi)元素根據(jù)從小到大排序,并將其與序列N'1,…,N'N內(nèi)元素逐次相減,獲得N個(gè)隨機(jī)誤差序列,將其標(biāo)記為Rt(i)。采用Rt(i)可獲得驅(qū)動(dòng)程序時(shí)間序列Ni的隨機(jī)誤差分布模型,即
通過誤差隨機(jī)分布模型,可獲得軟件驅(qū)動(dòng)程序時(shí)間序列X的隨機(jī)誤差分布區(qū)間,為后續(xù)判別奇異點(diǎn)是否為缺陷做好準(zhǔn)備工作。
2.2基于似然比檢驗(yàn)的驅(qū)動(dòng)電力程序缺陷判決
根據(jù)驅(qū)動(dòng)程序時(shí)間序列奇異點(diǎn)檢測(cè)結(jié)果為基礎(chǔ),量化待檢測(cè)軟件驅(qū)動(dòng)程序時(shí)間序列點(diǎn)的異常程序,結(jié)合驅(qū)動(dòng)程序的故障模型,利用似然比檢驗(yàn)對(duì)該軟件驅(qū)動(dòng)程序當(dāng)前時(shí)刻是否異常做出判定。具體過程如下所述:
將待檢測(cè)驅(qū)動(dòng)程序時(shí)間序列點(diǎn)與奇異點(diǎn)在測(cè)量時(shí)間序列上的差值進(jìn)行加權(quán)求和,作為對(duì)組態(tài)軟件測(cè)試技術(shù)下η當(dāng)前時(shí)刻異常程度的度量,通過在正常工作時(shí)驅(qū)動(dòng)程序時(shí)間序列之間的近似程序計(jì)算加權(quán)系數(shù),利用下式計(jì)算
9其中,An,Δt表示待檢測(cè)時(shí)間序列點(diǎn)v(t)n與奇異點(diǎn) 之間的測(cè)量差的加權(quán)系數(shù),An,m表示待檢測(cè)程序序列點(diǎn)v(t)n與奇異點(diǎn)v(t)m之間的測(cè)量值之差的加權(quán)系數(shù)。通過對(duì)組態(tài)軟件測(cè)試技術(shù)下測(cè)量數(shù)據(jù)的平穩(wěn)性假設(shè),利用前一時(shí)刻的驅(qū)動(dòng)程序歷史測(cè)量數(shù)據(jù)采用Gauss函數(shù)計(jì)算上式給出的加權(quán)系數(shù)將以上兩式帶入式(9)中,即可計(jì)算獲得待檢測(cè)序列點(diǎn)vn(t)的異常程序值。
對(duì)于待檢測(cè)驅(qū)動(dòng)程序時(shí)間序列點(diǎn)vn(t),假設(shè)H0表示軟件η在t時(shí)段正常工作,H1表示組態(tài)軟件測(cè)試技術(shù)下η在t時(shí)段為缺陷,程序節(jié)點(diǎn)的測(cè)量值sn(t)為實(shí)際值與測(cè)量偏差的線性疊加,采用Δs描述故障驅(qū)動(dòng)程序的測(cè)量偏差,則在H1下,程序節(jié)點(diǎn)vn(t)的測(cè)量值滿足下式
利用似然比檢驗(yàn)的方法對(duì)驅(qū)動(dòng)程序節(jié)點(diǎn)進(jìn)行判決
其中, 用于描述節(jié)點(diǎn)異常程度值xn(t)相應(yīng)的似然比,γ(λ',t)表示似然比對(duì)應(yīng)的判決門限,具體驅(qū)動(dòng)電力程序缺陷檢測(cè)步驟以及似然比和判決門限通過以下過程計(jì)算:
計(jì)算在H0假設(shè)下驅(qū)動(dòng)程序節(jié)點(diǎn)異常程度值xn(t)的分布,假定在軟件驅(qū)動(dòng)程序正常工作時(shí),其相應(yīng)的測(cè)量數(shù)據(jù)遵從Gauss分布。由于異常程序值為不同時(shí)間序列點(diǎn)測(cè)量值的線性組合,在H0假設(shè)下xn(t)遵從Gauss分布
式中,期望μn(t)與σn(t)方差可以結(jié)合軟件驅(qū)動(dòng)程序歷史時(shí)間序列,利用極大似然無偏估計(jì)器獲得
在H1假設(shè)下,故障軟件驅(qū)動(dòng)程序的測(cè)量值是實(shí)際值與測(cè)量偏差的疊加,故障程序的測(cè)量偏差Δs遵從均值為μe,方差為σe的Gauss分布,此分布與方差由驅(qū)動(dòng)程序的實(shí)際運(yùn)行情況決定,其中Δs的分布可描述為
結(jié)合式(15)和式(16)以及式(17)可計(jì)算出軟件驅(qū)動(dòng)時(shí)間序列異常程序值xn(t)的似然比
假設(shè)軟件驅(qū)動(dòng)程序故障達(dá)到時(shí)間遵從負(fù)指數(shù)分布,則依據(jù)軟件驅(qū)動(dòng)程序單位時(shí)間內(nèi)平均故障次數(shù)λ',獲得程序在t時(shí)段出現(xiàn)故障的概率 。隨著軟件驅(qū)動(dòng)程序工作時(shí)間的增加,其出現(xiàn)故障的概率逐漸增大,對(duì)電力程序缺陷的判決門限將隨著軟件驅(qū)動(dòng)程序的使用時(shí)間而逐步調(diào)整。給定驅(qū)動(dòng)電力程序缺陷檢測(cè)結(jié)果的置信區(qū)間為α',選擇的判決門限為γ(λ',t),應(yīng)當(dāng)遵從以下約束條件
根據(jù)上式,結(jié)合組態(tài)軟件測(cè)試技術(shù)下驅(qū)動(dòng)程序當(dāng)前時(shí)刻的缺陷檢測(cè)結(jié)果為
根據(jù)以上步驟完成電力程序程序的缺陷檢測(cè)。
結(jié)論
量化待檢測(cè)軟件驅(qū)動(dòng)程序時(shí)間序列點(diǎn)的異常程序,結(jié)合驅(qū)動(dòng)程序的故障模型,利用似然比檢驗(yàn)對(duì)該軟件驅(qū)動(dòng)程序當(dāng)前時(shí)刻是否異常做出判定。彌補(bǔ)了傳統(tǒng)閾值判斷方法的不足,提高了檢測(cè)成功率、降低了誤檢率。進(jìn)一步的改進(jìn)之處是在于軟件驅(qū)動(dòng)程序故障模型的完善以及方法對(duì)缺陷判決門限的普適性。
參考文獻(xiàn)
[1]張曉風(fēng),張德平.基于不平衡數(shù)據(jù)集的軟件缺陷預(yù)測(cè)[J].計(jì)算機(jī)應(yīng)用研究,2017,34(7):2027-2031.
[2]陳翔,等.靜態(tài)軟件缺陷預(yù)測(cè)方法研究[J].軟件學(xué)報(bào),2016,27(1):1-25.
(作者單位:國(guó)網(wǎng)安徽省電力有限公司淮南供電公司)