張學軍,燕美玲,田俊梅,冀一鳴,張 濤
(山西大學 a.動力工程系,b.電力工程系,太原 030006)
近年來,隨著系統仿真理論和技術的深入研究、數字計算技術的快速發展,系統仿真為分析、研究復雜系統問題提供了有效的解決方法。離散事件系統是指受事件驅動、系統狀態發生跳躍式變化的動態系統。其特點是狀態遷移發生在一些確定或不確定的、離散的時間點上,且內部轉換機制較為復雜,難以用微分、差分方程等常規的數學方法來描述[1]。離散事件系統仿真是現代仿真技術的重要研究內容之一,如何描述系統的行為是建立離散事件系統仿真模型的關鍵。1976年亞利桑那大學BERNARD Z教授提出的離散事件系統規范(discrete event system specification,DEVS)為離散事件系統仿真建模提供了分層模塊化的形式化機制[2]。
DEVS從面向對象的角度出發依據系統理論[3],通過一組嚴格的數學符號建立了完備的系統模型框架,保證了模型的規范性、重用性和仿真互操作能力[4]。DEVS一經提出就引起了廣泛的關注,相繼出現了許多實現DEVS的仿真平臺和程序庫,如ADEVS,DEVSim++,DEVS/C++,DEVSJAVA,CD++等[5-6]。DEVS++是一個實現DEVS的開源程序庫[7],采用面向對象的C++語言開發了模型的基類和仿真引擎,為基于DEVS模型的仿真軟件開發提供了標準的架構。
智能變電站過程層網絡采用以太網代替傳統點對點硬接線作為信息傳輸的載體,由此帶來的信息傳輸不確定延時能否滿足保護和自動化功能實現的要求成為近年來關注的熱點問題。文獻[8]分析了間隔內GOOSE和SV報文的傳輸延時。文獻[9]在分析了不同網絡規模、采樣頻率、網絡帶寬和形式的情況下間隔內SV報文傳輸延時的基礎上,提出了過程層網絡配置的建議。文獻[10]研究了全站統一環形網和星形網情況下SV報文的傳輸延時、交換式以太網能夠承載的鏈路吞吐量的上限及網絡故障對環形網傳輸延時的影響等問題。文獻[11]和[12]分析了不同VLAN劃分方案對信息傳輸延時的影響。從文獻[8-12]可知,目前國內有關研究都是以專業通訊網絡仿真軟件(如OPNET)為工具開展的。
智能變電站過程層網絡是一個復雜的離散事件系統。我們基于DEVS形式化建立了模擬智能變電站過程層網絡元件(數據鏈路層、物理層、集線器、交換機和智能電子設備等)數據的傳輸動態模型,在DEVS++程序庫的基礎上編制了相應的仿真程序,不僅能統計計算得到信息端到端的傳輸延時,還能完整地展現數據傳輸過程各環節,為分析網絡瓶頸提供了方便。
本文介紹了DEVS的建模思想以及DEVS++程序庫。以智能變電站過程層網絡數據鏈路層發送適器模型實現為例,說明了基于DEVS++建模和開發仿真程序的方法。最后通過仿真試驗進行了驗證。
DEVS用兩種模型來描述系統的行為和組成,分別為Atomic(原子)模型和Coupled(耦合)模型[13]。Atomic描述系統中基本實體的動態行為,Coupled描述組成系統或子系統的實體及它們間關聯關系。Atomic和Coupled有許多不同的定義,以下是在DEVS++中引用的定義[7]。
Atomic模型用一個7元組來定義:
M=
(1)
式中:X為輸入事件集,是影響實體動態行為的外部環境;Y為輸出事件集,是實體動態行為的結果和對系統中其它實體的影響;S為實體離散狀態集;s0為初始狀態,s0∈S;tα(s)為確定在沒有外部輸入的情況下實體處于狀態s的持續時間(狀態壽命)的函數;tα(s)的返回值用來確定下一最早發生事件的時間從而推動仿真時鐘,被稱為時間推進函數;δx為外部轉換函數,用來描述實體的狀態轉換與外部輸入的關系;δy為輸出和內部轉換函數,用來說明當狀態壽命自然耗盡時,實體產生怎樣的輸出和如何改變其狀態。
δx,δy和tα(s)共同定義了實體的動態行為。δx在新的外部事件到來時被觸發;δy在實體當前狀態的壽命耗盡時被觸發;tα(s)在實體的狀態發生了變化時被調用。
Coupled提供了分層模塊化描述系統的結構,由下式7元組來定義:
NCM=
(2)
式中:X和Y分別是Coupled的輸入和輸出事件集,Coupled與Atomic一樣,都通過輸入輸出事件來與外部交互;D是Coupled成員的名字集;{Mi}是Coupled成員集,成員Mi可以是Atomic也可以是其它的Coupled,(i∈D);EIC是外部輸入耦合集,描述了Coupled的外部輸入與Coupled成員的輸入之間的耦合關聯;ITC是內部耦合集,描述Coupled成員的輸出與其它成員輸入之間的耦合關聯;EOC是外部輸出耦合集,描述Coupled成員的輸出與Coupled自身輸出之間的耦合關聯。
DEVS++ [7]是實現DEVS仿真的開源程序庫,采用面向對象的技術,用C++類為DEVS仿真模型的建立和運行搭建了標準的程序架構,使得具體的仿真程序開發人員只需致力于系統實體動態行為的分析、建模和程序開發,而不關心仿真實現的細節,降低了仿真程序開發的復雜度。
DEVS++對象類用UML類圖表示,如圖1所示。Port是端口的基類。派生自Port的InputPort和OutputPort分別是DEVS模型(Atomic或Coupled)與外部進行交互的事件輸入和事件輸出端口類。Port類中的動態數組ToP和FormP保存了式(2)中集合EIC,ITC和EOC中的內容。

圖1 DEVS++中的類Fig.1 Class in DEVS++
PortValue聚合了Port和Value,是事件的類。Port是事件輸入或輸出模型的端口;Value是事件的值,是純虛基類,具體事件的值可從Value派生,表達事件的各種屬性。
DEVS是Atomic類和Coupled類的共同純虛基類。它聚合了InputPort和OutputPort,使得Atomic和Coupled具有相同類型的外部接口。它的虛函數when_receive_init,when_receive_star和when_receive_x在派生類Atomic和Coupled中被重載實現了Atomic和Coupled模型初始化、內部狀態轉換和外部狀態轉換的仿真邏輯。
Atomic類封裝了Atomic模型的結構和仿真算法,是純虛基類。其純虛函數init,tau,delta_x和delta_y由具體實體的Atomic模型類重載定義其動態行為。init是模型初始化函數,tau,delta_x和delta_y分別對應式(1)中的tα(s),δx和δy.
Coupled類封裝了Coupled模型的結構和仿真算法,可直接實例化。其成員函數when_receive_y用來根據式(2)中ITC和EOC配發Coupled成員的輸出事件,實現了成員間的相互關聯影響。
SRTEngine類是DEVS++的仿真引擎,支持實時、超實時和欠實時仿真運行,提供了運行控制、輸出、統計和外部交互等功能。
基于DEVS++進行仿真軟件開發只需要做以下幾項工作:
1) 對每一類基本實體,繼承Atmoic類并重載init,tau,delta_x和delta_y.
2) 對系統或子系統,繼承Coupled類,在構造函數中實例化子模型并設定關聯耦合關系。
3) 直接實例化SRTEngine或繼承SRTEngine構建仿真環境。
4) 編譯、調試,載入仿真模型進行試驗。
智能變電站過程層網絡由物理介質、交換機、集線器和智能電子設備等組成,基本實體有通訊信道、通訊總線、交換單元、數據鏈路層接收器和發送器等。本節以數據鏈路層發送器Atomic模型為例說明基于DEVS++仿真程序開發的主要內容。
智能變電站過程層網絡采用發布/訂閱者機制,以無連接無確認的方式發送數據[14-15]。數據鏈路層發送器的功能有2個,一是接收上層協議數據并組成數據幀后發送,二是載波偵聽和碰撞檢測。本文模型采用1-堅持載波偵聽協議,即發送前偵聽信道,如信道空閑則開始發送數據幀,如信道忙則堅持等待直到信道空閑時將數據發出。在發送過程中仍檢測信道,若發生碰撞則停止發送,并發出沖突擁擠信號通知同一沖突域內的所有發送器停止發送,然后等待一個隨機時間(采用二進制退避算法產生)后重新嘗試發送[16]。
數據鏈路層發送器有2個輸入端口和1個輸出端口。輸入端口DataIn接收上層協議待發送的數據,CarrieIn接收發送信道上的載波信號,輸出端口FrameOut發送數據幀或碰撞擁擠信號到信道。各端口事件集表示為:
XDataIn={Data} ,
(3)
XCarrieIn={Frame,Jam} ,
(4)
YFrameOut={Frame,Jam} .
(5)
式中:集合中的元素是事件的值,為包含若干屬性的結構類型。Data包含了上層協議待發送的數據及通訊控制信息,如目的MAC地址、優先級、虛擬局域網號等。Frame除包含正在發送或接收到的數據幀外,還含有一個標識事件是發送或接收過程的開始還是結束的標志。即本文將幀的發送和接收看作為相應的開始和結束事件之間的過程,這樣做一是可以用事件驅動發送器狀態的變換,二是使得能夠在仿真中計及幀在各環節傳輸的耗時,三是方便實現碰撞檢測、碰撞后再傳和碎片處理等邏輯。Jam是沖突擁擠信息,它的長度很小(48 bit),這里忽略了發送或接收耗時,把沖突擁擠信息的發送和接收按瞬時完成的事件來處理。
發送器的狀態集表示為
S={Idling,Sensing,Sending,Reseting,SendingJam,AfterJam,Backoff} .
(6)
式中:Idling為空閑狀態,只有在有輸入事件到來時才可能觸發從Idling狀態轉出,壽命為∞;Sensing為發送前偵聽網絡的狀態,根據以太網1-堅持偵聽協議,當信道忙時堅持偵聽,壽命為∞,當信道空閑時,再持續偵聽1個幀間隙后仍空閑開始發送,壽命為1個幀間隙(固定為96 bit的傳輸時間);Sending為正在發送的狀態,壽命為當前幀全部輸出到信道中的時間,等于數據幀的長度(bit)與網絡帶寬(bit/ms)的比值;Reseting為成功發送后的復位狀態,壽命為1個幀間隙的長度;SendingJam為發送過程中檢測到碰撞后發送擁擠信號的狀態,忽略擁擠信號的發送過程,狀態壽命取為0;AfterJam為發送或接受到擁擠信號后的等待同一沖突域內所有發送器停止發送的狀態,壽命為1個時隙的長度(固定為以太網最短幀512 bit的傳輸時間);Backoff為發生碰撞后等待再次發送的狀態。根據二進制退避算法,Backoff狀態的壽命
τ=rand(0,2c-1)×tl.
(7)
式中:c是碰撞次數;tl是1個時隙的長度;rand是隨機函數。
發送器的初始化函數init完成為仿真運行設定初始狀態、變量賦初值、緩沖區清零等任務,在此不多贅述。
外部轉換函數delta_x根據輸入事件、當前狀態等信息確定實體的下一狀態。發送器收到經端口DataIn輸入的上層協議數據后的處理過程如圖2所示,圖中Buffer為發送緩沖區。

圖2 輸入端口DataIn處理流程Fig.2 Program flow of Input Port DataIn
發送器經端口CarrieIn收到2種事件,沖突擁擠信號和普通數據幀。發送器依據收到的事件類型和事件值判斷物理信道的狀態和是否發生了碰撞,過程如圖3所示。

圖3 輸入端口CarrieIn處理流程Fig.3 Program flow of Input Port CarrieIn
輸出和內部轉換函數delta_y在狀態壽命自然耗盡時輸出并確定實體的下一狀態。壽命為∞的狀態不能觸發delta_y函數的調用。發送器各狀態結束時的輸出和狀態轉換如下所述:
1) Sensing再次檢查信道,如信道空閑,輸出幀發送開始事件,狀態轉換為Sending;否則,不輸出,不進行狀態轉換。
2) Sending輸出幀發送結束事件,狀態轉換為Resting.
3) Resting無輸出。如緩沖區中沒有待發送的數據,狀態轉換為Idling;否則狀態轉換為Sensing.
4) SendingJam輸出沖突擁擠信息發送事件,狀態轉換為AfterJam.
5) AfterJam無輸出。如果當前幀發送碰撞次數不大于16,狀態轉換為Backoff;否則,丟棄當前幀,然后依據緩沖區中是否有待發送的數據,狀態轉換為Sensing或Idling.置信道狀態為空閑。
6) Backoff無輸出,狀態轉換為Sensing.
目前智能變電站多采用按間隔劃分虛擬局域網的技術來限制網絡流量,下面給出不同情形下間隔子網報文傳輸延時的仿真結果和分析,以說明模型和程序的正確、有效性。
網絡為星形結構,仿真參數為:網絡半徑100 m,數字信號在信道中的傳播速度為2×108m/s,集線器再生延時為0.001 5 ms,交換機交換速率為網絡帶寬的10倍。合并單元采樣周期0.25 ms,SV報文長度為156 Byte[10].GOOSE報文間隔為0~100 ms之間的隨機數,發送間隔t1=2 ms,t2=4 ms,t3=8 ms,t0=1 s,報文長度為130 Byte[10].保護發出跳閘指令的間隔為0~200 ms之間的隨機數,發送間隔t1=1 ms,t2=2 ms,t3=4 ms,報文長度為100 Byte[10].
對于含有合并單元、智能終端和保護各1套的過程層子網,分別采用集線器、交換機連成共享、交換網絡,在帶寬分別為10 Mbit/s,100 Mbit/s下的仿真結果如表1、表2和圖4、圖5所示。

表1 4.1節共享網絡傳輸延時Table 1 Shared network transmission delay in section 4.1 ms

表2 4.1節交換網絡傳輸延時Table 2 Switching network transmission delay in section 4.1 ms

圖4 4.1節10 Mbit/s網絡傳輸延時Fig.4 10 Mbit/s network transmission delay in section 4.1

圖5 4.1節100 Mbit/s網絡傳輸延時Fig.5 100 Mbit/s network transmission delay in section 4.1
這種情形下,數據流量約為5 Mbit/s.從仿真結果看出,10 Mbit/s帶寬的延時基本為100 Mbit/s帶寬的10倍,這是顯然的。還發現,無論是10 Mbit/s還是100 Mbit/s帶寬情況下,交換網絡的最小和平均延時都約為共享網絡的2倍。這是由于大量流量(4.992 Mbit/s)是由單一數據源合并單元產生的,保護和智能終端產生的數據很少(約14.4 kbit/s)在共享網絡環境下發生沖突和碰撞的機會很小(實際在1 s仿真時間內共發生8次碰撞),造成延時增加的機會也很少;而在交換網絡環境下,數據經交換機轉發使每一報文都增加了一次傳輸延時,致使交換網絡的傳輸延時大多數情況下大于共享網絡。但應注意到,在共享網中一旦發生沖突或碰撞就會顯著增加的傳輸延時,如圖4和5所示,在仿真的最后1 ms內合并單元、智能終端和保護都有數據要發送,在共享網絡中發生了碰撞(實際8次碰撞均發生在該期間),使得共享網絡延時突增,而交換網絡延時在該期間的增量仍較平緩,致使共享網絡傳輸延時的最大值大于交換網絡。
對于含有2套合并單元和智能終端和保護各1套的過程層子網,數據流量已大于10 Mbit/s.圖6為10 Mbit/s帶寬下,共享網絡和交換網絡中報文傳輸延時隨時間變化的曲線。可見網絡傳輸延時隨時間呈線性增加。這是由于流量大于網絡處理速率,數據在發送緩沖區堆積而造成的。共享網絡延時曲線的跳變是由碰撞引發的。

圖6 4.2節10 Mbit/s帶寬時網絡傳輸延時曲線Fig.6 10 Mbit/s network transmission delay in section 4.2
對于網絡帶寬的100 Mbits/s的情況,仿真結如表3和圖7所示。該情形下,2套合并單元同時發送SV報文,在共享網絡中存在大量的碰撞。仿真結果(未在文中列出)顯示每個SV報文都經歷了1~5次碰撞,在1 s仿真時間內共發生碰撞6545次,加大了SV報文在共享網絡中傳輸延時,如表3所示,約為交換網絡的1.17倍。對于隨機產生的GOOSE和跳閘報文,其中大多數(136/150)在SV報文發送間隙發出,在共享網絡中未遭遇碰撞,因而GOOSE和跳閘報文在共享網絡中的最小和平均延時都較交換網絡小。但表3中共享網絡GOOSE和跳閘報文的最大延時比交換網絡大,及圖7中共享網絡傳輸延時變化劇烈,都說明了碰撞對網絡延時有較大干擾。

表3 4.2節100 Mbit/s網絡傳輸延時Table 3 100 Mbit/s network transmission delay in section 4.2 ms

圖7 4.2節100 Mbit/s網絡傳輸延時Fig.7 100 Mbit/s network transmission delay in section 4.2
對于含有3套合并單元和智能終端和保護各1套的過程層子網,僅將網絡帶寬為100 Mbits/s時的仿真列于表4.

表4 4.3節100 Mbit/s網絡傳輸延時Table 4 100 Mbit/s network transmission delay in section 4.3 ms
以上仿真說明:
1) 對于只有1個節點發送SV報文,其它節點僅發送GOOSE報文的子網,即使流量已達網絡帶寬的50%,共享網絡較交換網絡仍具有較好的平均性能;
2) 對于含有2個及以上節點發送SV報文的子網,10 Mbit/s帶寬的網絡,無論共享方式或交換方式都不能滿足要求;
3) 隨著子網中SV節點數目的增加,SV報文傳輸延時增加,且共享網絡增加速度大于交換網絡;
4) 交換網絡傳輸延時的變動范圍小于交換網絡。
DEVS++建立了Atomic模型、Coupled模型和仿真引擎的基類,為離散事件系統仿真建模和軟件開發提供了標準的、統一的框架,提高了仿真模型的重用性和操作性,為二次開發提供了非常大的方便,簡化了系統建模和仿真的復雜程度。
本文將DEVS形式化理論和DEVS++仿真程序庫應用于智能變電站過程層網絡的建模和仿真,旨在為智能變電站乃至整個電力系統通信系統的優化設計提供仿真工具。文中仿真結果與網絡實際運行特性相符,說明了所建模型和開發的程序的正確和可行性。
[1] 康鳳舉, 楊慧珍, 高立娥,等.現代仿真技術與應用[M].北京:國防工業出版社,2014.
[2] 邱曉剛,段偉.DEVS研究進展及其對建模與仿真學科建立的作用[J].系統仿真學報,2009,21(21):6697-6704.
QIU X G,DUAN W.On research development of DEVS and its function to modeling and simulation discipline[J].Journal of System Simulation,2009,21(21):6697-6704.
[3] ROBINSON S.Modes of simulation practice:approaches to business and military simulation[J].Simulation Modelling Practice & Theory,2002,10(8):513-523.
[4] 陳洪輝,蘇偉,柳海峰.一種DEVS原子模型向UML狀態圖映射方法研究[J].計算機仿真,2006,23(10):61-64.
CHEN H H,SU W,LIU H F.Technology of mapping DEVS atomic models to UML state diagrams[J].Computer Simulation,2006,23(10):61-64.
[5] TAG GONKIM,CHANG H S,SU Y,et al.DEVSim++toolset for defense modeling and simulation and interoperation[J].Journal of Defense Modeling & Simulation,2011,8(3):129-142.
[6] BERGERO F,KOFMAN E.Power DEVS:A tool for hybrid system modeling and real-time simulation[J].Simulation Transactions of the Society for Modeling & Simulation International,2011,87(1/2):113-132.
[7] Open DEVS in C++[DB/OL].https://sourceforge.net/projrcts/odevspp/files/DEVSpp/.
[8] 董楠,朱林,段獻忠.基于OPNET的變電站過程層網絡的仿真研究[J].繼電器,2006,34(21):40-45.
DONG N,ZHU L,DUAN X Z.Study on process level network in substation using OPNET simulation[J].Relay,2006,34(21):40-45.
[9] 竇曉波,胡敏強,吳在軍,等.數字化變電站通信網絡性能仿真分析[J].電網技術,2008,32(17):98-104.
DOU X B,HU M Q,WU Z J,et al.Simualtion analysis on performance of communication networks in didital substations[J].Power System Technology,2008,32(17):98-104.
[10] 童曉陽,廖晨淞,周立龍,等.基于IEC61850-9-2的變電站通信網絡仿真[J].電力系統自動化,2010,34(2):69-74.
TONG X Y,LIAO C S,ZHOU L L,et al.The simulation of substation network based on IEC61850-9-2[J].Automation of Electric Power Systems,2010,34(2):69-74.
[11] 宋園果,舒勤,賀含峰.數字化變電站過程層通信網絡實時性仿真分析[J].電力系統及其自動化學報,2013,25(2):71-76.
SONG Y G,SHU Q,HE H F.Communication network real-time performenca simulation analysis based on process layer of digital substation[J].Proceedings of the CSU-EPSA,2013,25(2):71-76.
[12] 凌光,王志亮,呂建龍,等.基于OPNET的智能變電站過程層網絡建模方法[J].中國電力,2017,50(1):79-84.
LING G,WANG Z L,LYU J L,et al.Modeling method for process-level network in smart substation based on network[J].Electric Power,2017,50(1):79-84.
[13] 肖田元,范文慧.離散事件系統建模與仿真[M].北京:電子工業出版社,2011.
[14] 馮軍.智能變電站原理及測試技術[M].北京:中國電力出版社,2011.
[15] 何磊.IEC61850應用入門[M].北京:中國電力出版社,2012.
[16] 熊桂喜,王小虎.計算機網絡[M].北京:清華大學出版社,2000.