本發(fā)明屬于電力通信系統(tǒng)仿真領域,涉及電力系統(tǒng)仿真、通信系統(tǒng)仿真以及多仿真軟件的協(xié)同交互機制研究,該方法可以有效解決傳統(tǒng)電力系統(tǒng)仿真軟件無法仿真通信系統(tǒng)導致的仿真真實性差的問題。
背景技術:
長期以來,由于電力系統(tǒng)與通信系統(tǒng)的耦合程度較低,因此在進行電力系統(tǒng)仿真分析時,往往忽略通信系統(tǒng)帶來的影響。然而,隨著大量具有間歇性、波動性的可再生能源的接入,智能負荷、電動汽車等可控負荷的加入,以及電力系統(tǒng)數(shù)據(jù)采集與監(jiān)視控制系統(tǒng)、廣域監(jiān)控保護和控制等自動化系統(tǒng)的投入使用,電力系統(tǒng)和通信系統(tǒng)的耦合程度顯著提高,通信系統(tǒng)的運行狀態(tài)將直接影響整個電力系統(tǒng)的安全運行。因此在分析電力系統(tǒng)運行特性時必須充分考慮通信系統(tǒng)的影響。
目前,研究電力系統(tǒng)的運行特性的最直接方法就是建模仿真,然而常規(guī)的電力系統(tǒng)仿真軟件并不支持通信系統(tǒng)的建模仿真,因此需要對現(xiàn)有的電力系統(tǒng)仿真方式進行改進。考慮通信影響的仿真的實現(xiàn)方式主要可以分為三種:擴展物理仿真軟件以實現(xiàn)通信仿真功能、擴展通信仿真軟件以實現(xiàn)物理系統(tǒng)仿真功能和聯(lián)合物理系統(tǒng)仿真軟件和通信仿真軟件實現(xiàn)聯(lián)合仿真功能。前兩種仿真方式受限于其工具性能限制,仿真局限性大,因此通常采用第三種方式進行電力-通信聯(lián)合仿真。然而當前的電力-通信聯(lián)合仿真系統(tǒng)普遍采用定時同步或是全局事件列表同步機制,其仿真局限性高,適應性較差,仿真效率不高,容易產(chǎn)生仿真誤差等問題,因此需要對其進行改進。
技術實現(xiàn)要素:
技術問題:本發(fā)明提供了一種可以實現(xiàn)電力通信系統(tǒng)聯(lián)合仿真的仿真方法,其包含主從式電力通信聯(lián)合仿真平臺的仿真架構設計,仿真雙方軟件的數(shù)據(jù)同步方法和時間同步機制研究,通過該平臺可以準確反映受通信系統(tǒng)影響的電力系統(tǒng)實時響應,提高電力系統(tǒng)仿真的準確性的正確性。
技術方案:本發(fā)明的一種基于主從式的電力通信聯(lián)合仿真平臺及仿真方法,包括以下內(nèi)容:
1)由電力系統(tǒng)仿真軟件、通信系統(tǒng)仿真軟件和通信中間件構成,其中電力系統(tǒng)仿真軟件為主導軟件,通信系統(tǒng)仿真軟件為從屬軟件,通信中間件作為輔助軟件。
11)所述電力系統(tǒng)軟件對電力系統(tǒng)模型進行連續(xù)時步仿真,其包含電力系統(tǒng)仿真模型和聯(lián)合仿真控制模塊,其中電力系統(tǒng)仿真模型通過電力系統(tǒng)建模獲得;
12)所述通信系統(tǒng)仿真軟件對通信系統(tǒng)模型進行離散時步仿真,其包含通信系統(tǒng)仿真模型,通過通信系統(tǒng)建模分析獲得;
13)所述通信中間件通過C++編程語言編譯獲得,具有傳遞雙方軟件數(shù)據(jù)流和控制流信息的功能,其采用通用Socket套接字通信方式,實現(xiàn)與電力系統(tǒng)仿真軟件對外交互接口無縫匹配,采用專用通信仿真軟件對外函數(shù)實現(xiàn)與通信系統(tǒng)仿真軟件的數(shù)據(jù)交互。
2)上述仿真控制模塊,其包含仿真系統(tǒng)的時間同步模塊和數(shù)據(jù)同步模塊;其中時間同步模塊基于仿真時間同步機制驅動,主要用于控制電力系統(tǒng)仿真軟件和通信系統(tǒng)仿真軟件的啟停,并控制數(shù)據(jù)同步模塊的運行;數(shù)據(jù)同步模塊受時間同步模塊的控制,執(zhí)行向雙方軟件收發(fā)仿真數(shù)據(jù)的工作。其具體流程為:
21)仿真控制模塊執(zhí)行全局初始化操作,引導時間同步模塊根據(jù)定時同步事件和突發(fā)同步事件構建仿真事件池;同時分別初始化電力系統(tǒng)仿真模型和通信系統(tǒng)仿真模型,并使雙方仿真模型暫停在首次同步事件時刻;
22)時間同步模塊從仿真事件池中獲取距當前仿真時刻最近的仿真事件的時間,將其作為下一個仿真同步點;
23)仿真控制模塊觸發(fā)數(shù)據(jù)同步模塊,使其采集當前時刻下的電力系統(tǒng)仿真模型的采樣數(shù)據(jù),對數(shù)據(jù)進行添加時標、打包等操作,并將數(shù)據(jù)轉發(fā)至通信系統(tǒng)仿真模型中;推進通信仿真模型至步驟22)的仿真同步點;;
24)仿真控制模塊推進通信系統(tǒng)仿真模型至步驟22)的仿真同步點時刻的過程中,收集通信系統(tǒng)仿真過程中的仿真數(shù)據(jù),并由數(shù)據(jù)同步模塊對數(shù)據(jù)進行解析處理再返回電力系統(tǒng)仿真模型中,同時對電力系統(tǒng)仿真模型中的仿真參數(shù)進行更新,推進電力系統(tǒng)仿真模型至步驟22)中的仿真同步點時刻;
25)時間同步模塊更新當前仿真事件池中的事件,并判斷事件池是否已空,如是,則仿真控制模塊分別向電力系統(tǒng)仿真軟件和通信系統(tǒng)仿真軟件發(fā)送終止命令,否則返回步驟22)。
3)根據(jù)發(fā)明內(nèi)容2所述的仿真時間同步機制,其由定時時間同步機制和全局事件列表同步機制構成;其中定時時間同步機制采用固定時間間隔設定仿真同步點,主要用于含有周期性同步操作的仿真場景;全局事件列表同步機制則通過構建仿真未來發(fā)生的事件列表來確定仿真同步點,主要用于記錄未來可能發(fā)生突發(fā)事件而需要進行同步操作的仿真場景。
本發(fā)明通過主從架構方式構建電力通信聯(lián)合仿真平臺,可大大簡化平臺開發(fā)的難度和工作量,此外,所設計的時間同步方法,可以有效解決傳統(tǒng)仿真平臺同步機制復雜,易累積誤差和同步過于頻繁的問題,提高仿真的精度。
有益效果:本發(fā)明與現(xiàn)有技術相比,具有以下優(yōu)點:
傳統(tǒng)仿真工具往往只能執(zhí)行單一系統(tǒng)的仿真,如電力系統(tǒng)仿真工具無法進行通信系統(tǒng)仿真,通信系統(tǒng)仿真工具無法進行電力系統(tǒng)仿真,現(xiàn)有的電力通信混合仿真雖然具有電力-通信混合仿真功能,但是其仿真時間同步機制均存在一定程度上的缺陷與不足。其中步進式同步機制雖然同步機制簡單,設計容易,但是當一個時間步長內(nèi)出現(xiàn)突發(fā)事件需要執(zhí)行數(shù)據(jù)同步時,往往需要等到固定同步時刻才能執(zhí)行,該機制適應能力差,且容易造成仿真累積誤差;全局事件列表方式的同步機制,雖然能夠有效避免上述同步機制的缺陷,但易受仿真事件冗余影響仿真效率;而采用主從式的同步機制的電力通信聯(lián)合仿真,當受控軟件需要進行信息交互時,難以將該事件傳遞到主控軟件,因此無法響應受控軟件其同步需求,易造成仿真結果的偏差。
本發(fā)明通過構建主從式的電力通信聯(lián)合仿真架構,簡化仿真平臺開發(fā)難度;同時設計了一種融合定時同步機制和全局事件列表機制的時間同步機制,有效解決了主從仿真模式下無法響應受控軟件請求的問題,在有效提高仿真效率,降低仿真復雜度的情況下,避免了由此帶來的仿真誤差。
附圖說明
圖1為本發(fā)明的基于主從式的電力通信聯(lián)合仿真平臺架構圖。
圖2為本發(fā)明的電力通信聯(lián)合仿真平臺信息流示意圖。
圖3為本發(fā)明的電力通信聯(lián)合仿真平臺時間同步示意圖。
具體實施方式
下面結合附圖和具體實施方法來詳細說明本發(fā)明技術方案。
1)首先對基于主從式的電力通信聯(lián)合仿真平臺的整體架構進行詳細說明。電力通信聯(lián)合仿真平臺主要由三個部分組成,分別是電力系統(tǒng)仿真軟件(以MATLAB為例),通信系統(tǒng)仿真軟件(以OPNET為例)和通信中間件。其中,電力系統(tǒng)仿真軟件包含兩個主模塊,分別是仿真控制模塊和電力系統(tǒng)仿真模塊,以及一個輔助模塊:API接口模塊;通信系統(tǒng)仿真軟件包含一個主模塊和一個輔助模塊,分別是通信系統(tǒng)仿真模型和外部通信接口模塊。其整體架構如圖1所示。
2)根據(jù)上述仿真框架,對仿真的同步數(shù)據(jù)流和控制指令信息傳輸路徑進行說明,其具體步驟如下:
步驟1,對雙方軟件的數(shù)據(jù)緩存進行初始化,仿真控制模塊控制雙方軟件進行初始化,并暫停在初始時刻;
步驟2,判斷當前時刻是否需要進行數(shù)據(jù)同步,如是,則數(shù)據(jù)同步模塊從MATLAB工作空間的數(shù)據(jù)緩存中收集相關同步數(shù)據(jù),并確定同步數(shù)據(jù)的源、目的通信節(jié)點地址,隨后將上述信息和數(shù)據(jù)進行打包并調用API接口,將數(shù)據(jù)發(fā)送至通信中間件,并進入步驟3;如否,則掛起等待;
步驟3,通信中間件收到數(shù)據(jù)后,首先判斷數(shù)據(jù)類型,若為同步數(shù)據(jù),則對數(shù)據(jù)進行解析和重構,并調用OPNET的外部通信接口函數(shù),將信息發(fā)送至OPNET的外部系統(tǒng)中,并進入步驟4;若為控制指令信息,則進入步驟5;
步驟4,OPNET的外部系統(tǒng)收到同步數(shù)據(jù)后,將數(shù)據(jù)進行解析,并存儲至OPNET的內(nèi)部數(shù)據(jù)緩存中,同時觸發(fā)OPNET的聯(lián)合仿真接口模塊工作,聯(lián)合仿真接口模塊首先對緩存數(shù)據(jù)進行解析,獲得數(shù)據(jù)對應的源、目的節(jié)點地址,再通過調用相關核心函數(shù),將緩存數(shù)據(jù)封裝為一個通信仿真的數(shù)據(jù)包,并放入對應源節(jié)點,并等待仿真推進信號;
步驟5,OPNET外部系統(tǒng)收到控制指令信息后,對指令信息進行解析,獲得仿真推進的時間信息,并調用其仿真運行核心函數(shù),將OPNET仿真向前推進至目標時間,然后暫態(tài)仿真;
步驟6,當OPNET獲得仿真推進后,目的節(jié)點收到源節(jié)點發(fā)送的數(shù)據(jù)包,將數(shù)據(jù)包進行解析,并獲得相關的通信延時、丟包率等通信指標,接著將上述信息打包,同時調用相關核心函數(shù),將仿真結果返回到外部通信接口中;
步驟7,外部通信接口在收到返回信息后,將信息寫入通信中間件的預留緩存中,同時通信中間件通過API接口,將數(shù)據(jù)返送至MATLAB工作空間的回調數(shù)據(jù)緩存中;
步驟8,數(shù)據(jù)同步模塊對回調數(shù)據(jù)進行解析,并根據(jù)數(shù)據(jù)的通信系統(tǒng)仿真模型目的節(jié)點確定其電力系統(tǒng)的目的節(jié)點地址,并將同步數(shù)據(jù)、通信延時和丟包率等信息寫入對應電力系統(tǒng)的目的節(jié)點中,執(zhí)行更新操作;
步驟9,仿真控制模塊向電力系統(tǒng)仿真模型發(fā)送仿真推進指令,將仿真推進至下一個同步點,同時將電力系統(tǒng)仿真的相關數(shù)據(jù)寫入MATLAB工作空間的數(shù)據(jù)緩存中,并進入步驟2。
其信息流示意圖如圖2所示。
3)仿真控制模塊是電力系統(tǒng)仿真軟件的重要部分,是電力通信聯(lián)合仿真平臺的核心,起到控制雙方軟件啟停,協(xié)調雙方軟件和執(zhí)行軟件間信息交互的功能。仿真控制模塊由兩個主模塊和一個輔助模塊構成,分別是時間同步模塊、數(shù)據(jù)同步模塊和仿真時間模塊。其中仿真時間模塊用于確立了一個全局的仿真參考時間,時間同步模塊主要包含協(xié)調整體仿真并設置仿真時間同步點的作用,數(shù)據(jù)同步模塊負責收發(fā)雙方軟件的仿真數(shù)據(jù)。其控制流程如下:
步驟1,仿真控制模塊啟動全局仿真參考時間,同時對雙方軟件進行初始化,并使雙方軟件暫停在時刻T,同時根據(jù)設定的定時同步間隔,初始化定時同步機制,并初始化突發(fā)事件同步列表,然后根據(jù)同步機制,將未來需要發(fā)送同步的事件寫入仿真事件池,其仿真事件池事件分別在時間為T,2T,t,3T,4T…時;
步驟2,時間同步模塊從仿真事件池中獲取距當前仿真時刻最近的仿真事件的時間,為2T,將其作為下一仿真同步點;
步驟3,仿真控制模塊獲取同步數(shù)據(jù),并分別對同步數(shù)據(jù)和控制指令添加時標和打包操作,再發(fā)送給通信系統(tǒng)仿真軟件,使通信系統(tǒng)仿真模型推進至下一仿真同步點,并返回相關仿真數(shù)據(jù);
步驟4,仿真控制模塊獲得通信仿真相關數(shù)據(jù)后,觸發(fā)數(shù)據(jù)同步模塊進行相關更新操作,并對MATLAB仿真模型的相關數(shù)據(jù)進行更新,然后推進電力系統(tǒng)仿真模型至下一仿真同步點,獲得下一步電力系統(tǒng)仿真數(shù)據(jù);
步驟5,時間同步模塊更新當前仿真事件池中的事件,同時判斷仿真事件池是否為空,如是,則仿真控制模塊分別向MATLAB仿真模型和OPNET仿真模型發(fā)送終止命令,結束仿真,否則返回步驟2。
4)電力系統(tǒng)仿真模型和通信系統(tǒng)仿真模型
電力系統(tǒng)仿真模型和通信系統(tǒng)仿真模型通過對實際的物理場景進行電力通信解耦,并分別進行建模獲得。其中電力系統(tǒng)仿真模型中的節(jié)點為電力母線節(jié)點,通信系統(tǒng)仿真模型中的節(jié)點為通信節(jié)點。
5)通信中間件、外部通信接口模塊與API接口模塊
通信中間件、外部通信接口模塊與API接口模塊可構成兩個通信通道,其中通信中間件與API接口模塊構成Socket套接字通道,通信中間件與外部通信模塊構成OPNET對外交互通道。Socket套接字通道部分的API接口模塊為客戶端,通信中間件為服務器端,實現(xiàn)數(shù)據(jù)交互;OPNET對外交互通道部分則通過OPNET的外部系統(tǒng)函數(shù)實現(xiàn)OPNET外部系統(tǒng)與外部軟件之間的信息交互,OPNET對外交互通道封裝為一個函數(shù)模塊,植入Socket套接字通道的執(zhí)行代碼中。其工作的主要流程如下:
步驟1,通信中間件進行初始化,開始監(jiān)聽客戶端的請求;同時API接口模塊程序進行初始化,并與通信中間件建立連接;
步驟2,當API接口模塊需要與OPNET進行通信時,客戶端向服務器端發(fā)送寫入數(shù)據(jù)請求,服務器端響應該請求,客戶端向服務器端寫入相關數(shù)據(jù),客戶端掛起,并等待服務器端數(shù)據(jù)應答;
步驟3,服務器端對寫入數(shù)據(jù)進行處理,并按照用戶定義重構信息,并調用OPNET對外交互通道,將數(shù)據(jù)發(fā)送至OPNET的外部系統(tǒng)接口模塊,并等待OPNET端的數(shù)據(jù)反饋;
步驟4,當接收完OPNET端的反饋數(shù)據(jù)后,服務器端向客戶端發(fā)出應答請求,客戶端響應該請求,并接受來自服務器端的數(shù)據(jù);
步驟5,客戶端接收應答數(shù)據(jù)后,反饋給仿真控制模塊,并返回步驟2,等待下一次數(shù)據(jù)交互請求。
本發(fā)明通過構建一種主從式的電力通信聯(lián)合仿真平臺,并設計了一種融合主從式和全局事件列表方式的時間同步機制,有效解決了主從仿真模式下無法響應受控軟件請求的問題,在有效提高仿真效率,降低仿真復雜度的情況下,避免了由此帶來的仿真誤差。
以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本發(fā)明不受上述實施例的限制。本發(fā)明要求保護范圍由所附的權利要求書及其等效物界定。