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