張明艷,查曉銳
(1.國(guó)網(wǎng)馬鞍山供電公司,安徽馬鞍山243000;2.南京國(guó)電南自電網(wǎng)自動(dòng)化有限公司,江蘇南京211100)
用電信息采集系統(tǒng)是指在電力系統(tǒng)連續(xù)運(yùn)行過程中,通過不間斷地采集現(xiàn)場(chǎng)終端各類設(shè)備信息并將信息上送主站,達(dá)到監(jiān)控和管理現(xiàn)場(chǎng)終端用電的目的。用電信息采集系統(tǒng)是一個(gè)多層的主從模型,每一層設(shè)備均是下一層設(shè)備的時(shí)鐘基準(zhǔn)源,集中器在系統(tǒng)中承擔(dān)著鏈接主站和電能表的作用,其自身的時(shí)鐘精度尤為重要[1]。采集主站通過通用分組無線服務(wù)(general packet radio service,GPRS)通信鏈路,采用NTP對(duì)集中器進(jìn)行對(duì)時(shí),主要的時(shí)鐘偏差來自于GPRS通信延時(shí)。文獻(xiàn)[2]利用最大似然估計(jì)的方法計(jì)算多組測(cè)量的網(wǎng)絡(luò)延時(shí)δ和時(shí)鐘偏差θ,將得到的多組時(shí)鐘偏差均值作為時(shí)鐘偏差的最優(yōu)估計(jì)值。文獻(xiàn)[3]采用雙NTP專用服務(wù)器,形成冗余系統(tǒng),并采用P/S模式的同步算法計(jì)算時(shí)鐘偏差θ,利用鎖相環(huán)進(jìn)行本地時(shí)鐘對(duì)時(shí),但該方法使用冗余服務(wù)器配置,增加了設(shè)備成本。為解決用電信息采集系統(tǒng)中主站對(duì)集中器的對(duì)時(shí)精度問題,筆者在不增加任何成本的前提下,基于K-Means算法,設(shè)計(jì)一種改進(jìn)的NTP方案,并將其應(yīng)用于用電信息采集系統(tǒng)中的主站和集中器對(duì)時(shí),以期提高時(shí)鐘偏差的計(jì)算精度,滿足用電信息采集系統(tǒng)對(duì)對(duì)時(shí)方案精度的要求。
NTP 指采用國(guó)際標(biāo)準(zhǔn)時(shí)間(coordinated universal time,UTC)使同一網(wǎng)絡(luò)中的設(shè)備時(shí)鐘同步,其可提供高精準(zhǔn)度的時(shí)間校準(zhǔn)。理論上NTP 可達(dá)到1~50 ms 的對(duì)時(shí)精度,且可通過加密的方式來阻擋網(wǎng)絡(luò)攻擊[4]。典型的NTP對(duì)時(shí)模型如圖1。
圖中:t1為client發(fā)送同步請(qǐng)求報(bào)文時(shí)的本地時(shí)間;t2為server 收到同步請(qǐng)求時(shí)的本地時(shí)間;t3為server 回送時(shí)間同步信息時(shí)的本地時(shí)間;t4為client接收到同步信息時(shí)的本地時(shí)間;δ1為請(qǐng)求報(bào)文在路徑上的傳輸時(shí)間;δ2為回復(fù)報(bào)文在路徑上的傳輸時(shí)間。令θ 為client和server的時(shí)鐘偏差值,則由圖1可得:
圖1 NTP對(duì)時(shí)過程Fig.1 Timing process of NTP
其中δ 為總的傳輸延時(shí)時(shí)間。理想情況下,往返報(bào)文的路徑一致,即δ1=δ2,可得
根據(jù)式(2)可得到client 與server 的時(shí)鐘偏差值,利用得到的時(shí)鐘偏差值補(bǔ)償client 時(shí)鐘時(shí)間,即可使client和server的時(shí)鐘同步。
用電信息采集系統(tǒng)中,集中器的GPRS模塊接收主站的GPRS信號(hào),通過NTP完成同步對(duì)時(shí)。集中器完成對(duì)時(shí)后通過RS485、電力載波通信等方式與智能電能表建立通信,并從電能表中提取電壓、電流、用電量等數(shù)據(jù);之后,集中器一般按照采集時(shí)間對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)梳理,等待主站上召數(shù)據(jù)或者主動(dòng)上送給主站[5]。由此可知,集中器時(shí)鐘準(zhǔn)確是實(shí)現(xiàn)主站到智能電能表各層設(shè)備時(shí)鐘同步的前提,也是用電信息采集系統(tǒng)正常工作的關(guān)鍵所在。
在用電信息采集系統(tǒng)中,一般采用單一時(shí)鐘源分層對(duì)時(shí)的方案,主站和集中器的時(shí)鐘同步采用NTP,通過集中器多次向主站發(fā)送對(duì)時(shí)報(bào)文計(jì)算出通信延時(shí)和時(shí)鐘偏差,從而實(shí)現(xiàn)時(shí)鐘同步[6]。NTP一般有3種工作模式:
1)廣播模式 服務(wù)器以固定周期廣播自己的時(shí)標(biāo),客戶端用一定的過濾算法修正接收到的時(shí)標(biāo);
2)主從模式 客戶端向一個(gè)或多個(gè)服務(wù)器發(fā)送對(duì)時(shí)請(qǐng)求,雙方交換信息的時(shí)間戳,估算時(shí)間偏差和網(wǎng)絡(luò)延時(shí),采用過濾算法從中計(jì)算出最優(yōu)的時(shí)間偏差;
3)對(duì)稱模式 服務(wù)器之間交換信息的時(shí)間戳,使整個(gè)網(wǎng)絡(luò)時(shí)間保持一致。
用電信息采集系統(tǒng)中的終端一般采用主從模式通過主站的對(duì)時(shí)服務(wù)器對(duì)集中器進(jìn)行對(duì)時(shí)[7]。針對(duì)主從模式的NTP方案,在計(jì)算時(shí)鐘偏差的過程中,將主站和集中器往返的通信延時(shí)視為對(duì)稱,簡(jiǎn)化時(shí)鐘偏差的計(jì)算難度,但實(shí)際情況下主站和集中器的往返通信延時(shí)是有差異的且存在測(cè)量誤差。
基于K-Means 算法,設(shè)計(jì)一種NTP 集中器時(shí)鐘同步的改進(jìn)方案。首先,根據(jù)n 次NTP 對(duì)時(shí)時(shí)標(biāo)t1、t2、t3、t4求出n組時(shí)鐘偏差θ,通過對(duì)時(shí)誤差閾值濾波方法對(duì)時(shí)鐘偏差值進(jìn)行篩選,過濾畸變的數(shù)據(jù),保留較優(yōu)的樣本數(shù)據(jù);其次,利用改進(jìn)的K-Means算法對(duì)濾波后的數(shù)據(jù)進(jìn)行迭代計(jì)算;最后,根據(jù)計(jì)算出的時(shí)鐘偏差值對(duì)集中器時(shí)間進(jìn)行補(bǔ)償從而完成主站和集中器的時(shí)鐘同步。
理論上,NTP 對(duì)時(shí)在多數(shù)情況下延時(shí)誤差可精確到±1 ms 以內(nèi),但在實(shí)際使用中,延時(shí)誤差值遠(yuǎn)大于1 ms,造成這一現(xiàn)象的主要原因是測(cè)量誤差[8]。文獻(xiàn)[9]根據(jù)NTP對(duì)時(shí)原理,基于多組對(duì)時(shí)報(bào)文,對(duì)延時(shí)計(jì)算公式進(jìn)行變換,得出實(shí)際時(shí)鐘偏差的限定范圍,剔除畸變數(shù)據(jù),優(yōu)化樣本數(shù)據(jù)。典型的NTP對(duì)時(shí)過程如圖1,由圖1可知:
其中θt為實(shí)際時(shí)鐘偏差。式(3)可等效變換為:
δ1和δ2分別為請(qǐng)求信息和回復(fù)信息在路徑上的傳輸時(shí)間,實(shí)際值不小于0。由此,結(jié)合式(1)~(2)可得:
由式(5)可知
將實(shí)際時(shí)鐘偏差θt和理想情況下時(shí)鐘偏差θ 的差值定義為時(shí)鐘偏差的對(duì)時(shí)誤差。由式(6)可知,在實(shí)際NTP對(duì)時(shí)過程中,時(shí)鐘偏差值的對(duì)時(shí)誤差是有邊界的,根據(jù)NTP對(duì)時(shí)過程中的4個(gè)時(shí)標(biāo)t1、t2、t3、t4可確定對(duì)應(yīng)對(duì)時(shí)過程實(shí)際時(shí)鐘偏差的有效范圍。
在實(shí)際NTP對(duì)時(shí)過程中,1次對(duì)時(shí)選定的時(shí)間服務(wù)器有代表性,其有效性在較長(zhǎng)時(shí)間內(nèi)都有效,無需在每次對(duì)時(shí)重新對(duì)新的數(shù)據(jù)進(jìn)行處理[10]。由此,利用1次NTP對(duì)時(shí)得出限定范圍,在多次NTP對(duì)時(shí)過程中進(jìn)行對(duì)時(shí)樣本點(diǎn)的優(yōu)化選擇,將時(shí)鐘偏差不在限定范圍內(nèi)的對(duì)時(shí)樣本點(diǎn)剔除,可將延時(shí)嚴(yán)重不對(duì)稱或測(cè)量誤差較大的畸變數(shù)據(jù)濾除。
K-Means算法在原始數(shù)據(jù)集中隨機(jī)選K個(gè)數(shù)據(jù)作為初始聚類中心,計(jì)算剩余數(shù)據(jù)到初始聚類中心的歐式距離,將剩余的數(shù)據(jù)歸類至其距離最小聚類中心所在的類當(dāng)中,根據(jù)各類中的數(shù)據(jù)對(duì)象計(jì)算他們的平均值,以此作為新的聚類中心,繼續(xù)聚類,直至相鄰的兩次聚類中心不再變化,則準(zhǔn)則函數(shù)收斂,輸出最終的聚類中心[11]。
K-Means算法中,收斂效果依賴于合適的聚類個(gè)數(shù)和初始聚類中心,且可能收斂到局部最優(yōu)解[12]。鑒于此,采用逐一劃分的方式優(yōu)化初始聚類中心對(duì)K-Means算法進(jìn)行改進(jìn),避免聚類過程陷入局部最優(yōu)解。令原始數(shù)據(jù)集N={ x1,x2,x3,…,xn-2,xn-1,xn} ,N 中每個(gè)對(duì)象均含有p 個(gè)屬性,第i 個(gè)數(shù)據(jù)對(duì)象xi={xi1,xi2,xi3,…,xip} ,從N中隨機(jī)選擇K個(gè)對(duì)象作為初始聚類中心,聚類步驟如下:
1)建立原始數(shù)據(jù)集N;
2)建立K個(gè)空類簇,從N中隨機(jī)選擇多個(gè)對(duì)象,將選擇的對(duì)象隨機(jī)分配到建立的K個(gè)空類簇;
3)選擇數(shù)據(jù)對(duì)象最多的一個(gè)類簇,記為M;
4)計(jì)算M中兩兩數(shù)據(jù)對(duì)象之間的歐式距離,找出距離最大的兩個(gè)數(shù)據(jù)對(duì)象Mi和Mj,并填充到創(chuàng)建的空類簇中;
5)以Mi和Mj為聚類中心,分別計(jì)算M中剩余數(shù)據(jù)對(duì)象到Mi和Mj的歐式距離,將他們分別劃分至離其距離最小的類中;
6)檢查是否將數(shù)據(jù)集N劃分為K個(gè)類簇,若是則結(jié)束,以得到的K個(gè)聚類中心進(jìn)行常規(guī)的K-Means算法聚類,否則跳至步驟3)。
改進(jìn)的K-Means算法流程如圖2。
改進(jìn)的NTP集中器時(shí)鐘同步方案為:基于NTP原理,根據(jù)用電信息采集系統(tǒng)集中器時(shí)鐘的同步設(shè)置,啟動(dòng)對(duì)時(shí)流程;集中器向主站請(qǐng)求時(shí)間,主站回應(yīng)請(qǐng)求并向集中器答復(fù)時(shí)間,重復(fù)此同步過程若干次;依據(jù)若干次請(qǐng)求的各個(gè)時(shí)標(biāo)計(jì)算每次對(duì)應(yīng)的總延時(shí)時(shí)間和時(shí)鐘偏差;根據(jù)對(duì)時(shí)誤差閾值濾波方法,對(duì)若干組計(jì)算出的總延時(shí)時(shí)間和時(shí)鐘偏差進(jìn)行篩選,剔除因測(cè)量或延時(shí)嚴(yán)重不對(duì)稱導(dǎo)致誤差較大的樣本點(diǎn);對(duì)保留的樣本點(diǎn)利用改進(jìn)K-Means算法進(jìn)行時(shí)鐘偏差聚類,直到準(zhǔn)則函數(shù)收斂,輸出最終的時(shí)鐘偏差;將計(jì)算出的時(shí)鐘偏差值補(bǔ)償?shù)郊衅鞯臅r(shí)鐘,完成對(duì)集中器的對(duì)時(shí)。改進(jìn)的NTP集中器時(shí)鐘同步流程如圖3。
圖2 改進(jìn)的K-Means算法流程Fig.2 Flow of improved K-means algorithm
圖3 改進(jìn)的NTP集中器對(duì)時(shí)流程Fig.3 Timing process of collector based on improved NTP
表1 改進(jìn)的NTP方案時(shí)鐘偏差實(shí)際值Tab.1 Actual clock deviation values by using the improved NTP
由表1知,采用對(duì)時(shí)誤差閾值濾波和改進(jìn)的K-Means算法對(duì)用電信息采集系統(tǒng)中的集中器和主站進(jìn)行同步,同步后的時(shí)鐘偏差平均誤差為-88.1 ms,滿足國(guó)家電網(wǎng)公司企業(yè)標(biāo)準(zhǔn)中集中器對(duì)時(shí)誤差在±5 s的精度要求。
為提高用電信息采集系統(tǒng)中主站對(duì)集中器的對(duì)時(shí)精度,基于K-Means算法,提出一種改進(jìn)的NTP方案,即采用對(duì)時(shí)誤差閾值濾波算法,對(duì)若干次NTP對(duì)時(shí)過程中由于各種因素導(dǎo)致的畸變數(shù)據(jù)進(jìn)行過濾;采用改進(jìn)的K-Means算法對(duì)保留的對(duì)時(shí)數(shù)據(jù)進(jìn)行聚類迭代,輸出準(zhǔn)則函數(shù)收斂對(duì)應(yīng)的時(shí)鐘偏差值;將輸出的時(shí)鐘偏差值補(bǔ)償?shù)郊衅鲿r(shí)間上,即可完成主站對(duì)集中器的對(duì)時(shí)同步。根據(jù)某供電公司提供的主站和集中器對(duì)時(shí)數(shù)據(jù),采用改進(jìn)的NTP方案對(duì)集中器進(jìn)行對(duì)時(shí)同步,對(duì)時(shí)后的集中器時(shí)鐘精度滿足實(shí)際現(xiàn)場(chǎng)要求,可為用電信息采集系統(tǒng)的穩(wěn)定可靠運(yùn)行提供了重要保障。