一種基于fpga的高并行度的電力系統(tǒng)實(shí)時(shí)仿真方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及電力系統(tǒng)數(shù)字仿真技術(shù)領(lǐng)域,尤其涉及一種基于FPGA的高并行度的 電力系統(tǒng)實(shí)時(shí)仿真方法。
【背景技術(shù)】
[0002] 在新能源變革形勢下,智能電網(wǎng)已成為適應(yīng)新能源變革和承擔(dān)電網(wǎng)新使命的新一 代電網(wǎng)。發(fā)展數(shù)字實(shí)時(shí)仿真技術(shù)對智能電網(wǎng)一次系統(tǒng)故障再現(xiàn)分析、智能控制裝置試驗(yàn)等 諸多方面有著重大的意義。在推進(jìn)智能電網(wǎng)的建設(shè)中,新的二次設(shè)備和控制策略的綜合試 驗(yàn)研宄需要數(shù)字實(shí)時(shí)仿真平臺能夠模擬復(fù)雜故障,且能夠連接多種真實(shí)設(shè)備。隨著電力系 統(tǒng)日益變得復(fù)雜,仿真網(wǎng)絡(luò)包含大量電力電子元件與仿真規(guī)模愈發(fā)龐大對數(shù)字實(shí)時(shí)仿真從 計(jì)算能力和計(jì)算速度等方面提出了更高的要求。
[0003] 傳統(tǒng)實(shí)時(shí)仿真器一般設(shè)置多個(gè)處理器單元(如多核、PC機(jī)群等),通過"分解-協(xié) 調(diào)"策略實(shí)現(xiàn)系統(tǒng)級的并行,以使仿真具有實(shí)時(shí)的計(jì)算能力。由于單個(gè)處理器內(nèi)部串行執(zhí) 行、處理器之間通信耗時(shí)等硬件條件的制約,這種方法僅適用于粗粒度的并行仿真。
[0004] 現(xiàn)場可編程門陣列(fieldprogrammablegatearray,FPGA)擁有并行硬件結(jié)構(gòu), 可實(shí)現(xiàn)高度并行的數(shù)值計(jì)算。FPGA內(nèi)部包含的DSP模塊和高速收發(fā)器可分別實(shí)現(xiàn)多個(gè)浮點(diǎn) 運(yùn)算部件和低時(shí)延的高速通信。為矩陣運(yùn)算、快速傅里葉變換等領(lǐng)域設(shè)計(jì)高性能的硬件結(jié) 構(gòu)已成為當(dāng)前FPGA并行結(jié)構(gòu)設(shè)計(jì)的研宄熱點(diǎn)。
[0005] 從功能角度來說,電氣系統(tǒng)可以劃分為電氣系統(tǒng)、機(jī)械系統(tǒng)和控制系統(tǒng)。控制系統(tǒng) 大多是數(shù)字式控制裝置,而機(jī)械系統(tǒng)的時(shí)間常數(shù)要大于電氣系統(tǒng),故可采用弱耦合的粗粒 度并行計(jì)算方法對整個(gè)電力系統(tǒng)進(jìn)行實(shí)施仿真。采用輸電線分網(wǎng)、節(jié)點(diǎn)分裂分網(wǎng)等方法,還 可把電氣系統(tǒng)分為多個(gè)獨(dú)立的電氣子系統(tǒng)。這種按照功能和區(qū)域劃分的粗粒度并行計(jì)算方 法使電力系統(tǒng)實(shí)時(shí)仿真的規(guī)模有了很大的提高,但對包含繁重運(yùn)算量的大粗粒度顯得力不 從心。因此,研宄一種基于細(xì)粒度并行化的電力系統(tǒng)實(shí)時(shí)仿真方法具有重要意義。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明所要解決的技術(shù)問題是,提供一種能夠保證電力系統(tǒng)電磁暫態(tài)仿真實(shí)時(shí)性 的基于FPGA的高并行度的電力系統(tǒng)實(shí)時(shí)仿真方法,其充分利用FPGA在針對特定應(yīng)用特征 定制專門方案的優(yōu)勢,提出了一種基于FPGA的細(xì)粒度并行仿真策略。
[0007] -種基于FPGA的高并行度的電力系統(tǒng)實(shí)時(shí)仿真方法,所述電力系統(tǒng)實(shí)時(shí)仿真方 法包括以下步驟:
[0008] 構(gòu)建帶緩存的組合運(yùn)算組件,所述組合運(yùn)算組件包括:運(yùn)算器,
[0009] 其中,每個(gè)運(yùn)算器的輸入口配備有一個(gè)輸入口控制器,輸出口配備一個(gè)輸出口控 制器和任意位置可讀寫的緩沖通道;
[0010] 組合運(yùn)算組件通過讀寫數(shù)據(jù)存儲區(qū)獲得仿真參數(shù),并協(xié)同配合共同完成所有仿真 計(jì)算任務(wù),實(shí)現(xiàn)細(xì)粒度并行計(jì)算。
[0011] 其中,通過所述輸入口控制器、所述輸出口控制器、所述緩沖通道實(shí)現(xiàn)帶緩存的組 合運(yùn)算組件中運(yùn)算器的連接關(guān)系的可變性;
[0012]進(jìn)一步地,所述運(yùn)算器采用Altera公司提供的雙精度浮點(diǎn)數(shù)運(yùn)算器IP核,包括: 除法器、乘法器和加法器。
[0013] 其中,所述緩沖通道由一條寄存器級聯(lián)組成,緩沖通道的首端連接運(yùn)算器的輸出 口,末端懸空,每個(gè)時(shí)鐘緩沖通道中的數(shù)據(jù)都由首端集體向末端移動一個(gè)位置。
[0014] 所述輸入口控制器和輸出口控制器具有通用性,包括:存儲一系列控制指令的程 序存儲區(qū)、讀取程序和解析程序的指令解碼器、執(zhí)行指令的多路開關(guān)。
[0015] 其中,所述組合運(yùn)算組件通過讀寫數(shù)據(jù)存儲區(qū)獲得仿真參數(shù),并協(xié)同配合共同完 成所有仿真計(jì)算任務(wù),實(shí)現(xiàn)細(xì)粒度并行計(jì)算的步驟具體為:
[0016] 指令解碼器將程序存儲區(qū)中的所有控制指令程序進(jìn)行翻譯;多路開關(guān)根據(jù)翻譯后 的控制指令程序執(zhí)行指令完成數(shù)據(jù)存儲區(qū)或緩沖通道到運(yùn)算器輸入口的數(shù)據(jù)流控制,輸出 口控制器負(fù)責(zé)從緩沖通道到數(shù)據(jù)存儲區(qū)的數(shù)據(jù)流控制;
[0017] 組合運(yùn)算組件之間的協(xié)同配合是通過數(shù)據(jù)交換實(shí)現(xiàn)的,數(shù)據(jù)交換由交換站完成;
[0018] 指令安排程序?qū)⒎抡娉绦蜣D(zhuǎn)化為帶緩存的組合運(yùn)算組件可執(zhí)行的控制指令,并安 排控制指令的執(zhí)行順序。
[0019] 進(jìn)一步地,所述指令安排程序?qū)⒎抡娉绦蜣D(zhuǎn)化為帶緩存的組合運(yùn)算組件可執(zhí)行的 控制指令,并安排控制指令的執(zhí)行順序具體為:
[0020] 指令安排程序?qū)⒎抡娉绦蛑忻總€(gè)基本運(yùn)算看作一個(gè)任務(wù),利用有向無環(huán)圖描述任 務(wù)之間的依賴關(guān)系,通過表調(diào)度思想實(shí)現(xiàn)控制指令的安排。
[0021] 進(jìn)一步地,所述通過表調(diào)度思想實(shí)現(xiàn)控制指令的安排的步驟具體為:
[0022] 以理想最早啟動時(shí)間為主權(quán)值、理想最晚啟動時(shí)間為次權(quán)值、緩沖通道取出位置 為第三權(quán)值確定指令的優(yōu)先級排序,根據(jù)資源的占用情況為指令選擇執(zhí)行資源。
[0023] 本發(fā)明提供的技術(shù)方案的有益效果是:本發(fā)明采用日益廣泛應(yīng)用的現(xiàn)場可編程門 陣列(FPGA)作為細(xì)粒度并行計(jì)算的實(shí)時(shí)仿真平臺,提出了一種基于FPGA細(xì)粒度并行計(jì)算 的電力系統(tǒng)實(shí)時(shí)仿真方法。本發(fā)明設(shè)計(jì)了一種可實(shí)現(xiàn)任意運(yùn)算組合的帶緩存的組合運(yùn)算組 件使得FPGA內(nèi)部硬件資源充分利用;指令安排程序?qū)⒎抡娉绦蜃兂蓭Ь彺娴慕M合運(yùn)算組 件可以接受的控制指令,實(shí)現(xiàn)細(xì)粒度并行計(jì)算,并使控制指令的設(shè)計(jì)變得簡單方便。本發(fā)明 在智能電網(wǎng)對電力系統(tǒng)實(shí)時(shí)仿真技術(shù)提出了更高要求的情況下,提供了一種新的電力系統(tǒng) 電磁暫態(tài)實(shí)時(shí)仿真解決方案。
【附圖說明】
[0024] 圖1帶緩存的組合運(yùn)算組件的示意圖;
[0025] 圖2DAG模型示意圖;
[0026] 圖3生成控制指令流程圖;
[0027] 圖4IEEE-14電力系統(tǒng)網(wǎng)絡(luò)圖;
[0028] 圖5母線13的三相電壓;
[0029] 圖6發(fā)電機(jī)4的功角和勵磁電壓。
【具體實(shí)施方式】
[0030] 下面結(jié)合附圖對本發(fā)明的一種基于FPGA的高并行度的電力系統(tǒng)實(shí)時(shí)仿真方法具 體實(shí)施方式做出詳細(xì)說明。
[0031] 實(shí)施例1
[0032] -種基于FPGA的高并行度的電力系統(tǒng)實(shí)時(shí)仿真方法,參見圖1,其主要包括:帶緩 存的組合運(yùn)算組件和指令安排程序。帶緩存的組合運(yùn)算組件是在FPGA上實(shí)現(xiàn)的一種程序 指令控制運(yùn)算系統(tǒng),其通過讀寫數(shù)據(jù)存儲區(qū)獲得仿真參數(shù),并由多個(gè)帶緩存的組合運(yùn)算組 件協(xié)同配合共同完成所有仿真計(jì)算任務(wù);指令安排程序使得帶緩存的組合運(yùn)算組件處于最 優(yōu)的工作狀態(tài),實(shí)現(xiàn)細(xì)粒度并行計(jì)算。
[0033] 其中,帶緩存的組合運(yùn)算組件包括:運(yùn)算器、輸入口控制器、輸出口控制器、緩沖通 道。帶緩存的組合運(yùn)算組件中的每個(gè)運(yùn)算器之間連接關(guān)系并不是固定不變的,可以根據(jù)計(jì) 算需要組合出不同的計(jì)算功能;變結(jié)構(gòu)運(yùn)算組件中的每個(gè)運(yùn)算器的輸入口配備有一個(gè)輸入 口控制器,輸出口配備一個(gè)輸出口控制器和任意位置可讀寫的緩沖通道;通過輸入口控制 器、輸出口控制器、緩沖通道實(shí)現(xiàn)帶緩存的組合運(yùn)算組件中運(yùn)算器的連接關(guān)系的可變性。
[0034] 其中,運(yùn)算器采用Altera公司提供的雙精度浮點(diǎn)數(shù)運(yùn)算器IP核,包括:除法器、乘 法器和加法器,運(yùn)算器的個(gè)數(shù)根據(jù)FPGA芯片的運(yùn)算資源和實(shí)際需求決定。
[0035] 緩沖通道是一條由寄存器級聯(lián)組成的,緩沖通道中任意位置都可以進(jìn)行讀寫操 作。緩沖通道的首端連接運(yùn)算器的輸出口,末端懸空,每個(gè)時(shí)鐘緩沖通道中的數(shù)據(jù)都由首端 集體向末端移動一個(gè)位置。運(yùn)算器輸出的數(shù)據(jù)可以暫存在緩沖通道中,同時(shí)數(shù)據(jù)存儲區(qū)中 的數(shù)據(jù)也可以暫時(shí)存放在換種通道中。
[0036] 輸入口控制器和輸出口控制器具有通用性,其具體包括存儲一系列控制指令的程 序存儲區(qū)、讀取程序和解析程序的指令解碼器、執(zhí)行指令的多路開關(guān)。
[0037] 程序存儲區(qū)由FPGA內(nèi)部RAM實(shí)現(xiàn);指令解碼器將程序存儲區(qū)中的所有控制指令程 序進(jìn)行翻譯;多路開關(guān)根據(jù)翻譯后的控制指令程序執(zhí)行指令完成數(shù)據(jù)存儲區(qū)或緩沖通道到 運(yùn)算器輸入口的數(shù)據(jù)流控制,輸出口控制器負(fù)責(zé)從緩沖通道到數(shù)據(jù)存儲區(qū)的數(shù)據(jù)流控制。
[0038] 帶緩存的組合運(yùn)算組件之間的協(xié)同配合是通過數(shù)據(jù)交換實(shí)現(xiàn)的,數(shù)據(jù)交換由交換 站完成。交換站由一組寄存器和若干個(gè)輸出口控制器組成,其控制器負(fù)責(zé)交換站寄存器與 其他帶緩存的組合運(yùn)算組件的數(shù)據(jù)存儲區(qū)之間的數(shù)據(jù)流控制。
[0039] 其中,指令安排程序?qū)⒎抡娉绦蜣D(zhuǎn)化為帶緩存的組合運(yùn)算組件可執(zhí)行的控制指 令,并合理安排控制指令的執(zhí)行順序。指令安排程序?qū)⒎抡娉绦蛑忻總€(gè)基本運(yùn)算看作一個(gè) 任務(wù),可以利用有向無環(huán)圖(^DirectedAcyclicGraph,DAG)描述任務(wù)之間的依賴關(guān)系,在 有限的資源條件下通過表調(diào)度思想實(shí)現(xiàn)控制指令的合理安排。
[0040] 仿真程序是對電力系統(tǒng)實(shí)時(shí)仿真進(jìn)行描述的運(yùn)算級的偽代碼程序。運(yùn)算代碼由基 本運(yùn)算組成。各運(yùn)算代碼可描述出仿真模型中變量之間的依賴關(guān)系。
[0041] 其中,任務(wù)包括運(yùn)算任務(wù)、讀取RAM任務(wù)和寫RAM任務(wù)。任務(wù)執(zhí)行所需數(shù)據(jù)來源包 括數(shù)據(jù)存儲區(qū)RAM和緩沖通道,用前驅(qū)任務(wù)和后繼任務(wù)來表示任務(wù)之間的依賴關(guān)系,前驅(qū) 任務(wù)和后繼任務(wù)之間的數(shù)據(jù)引用可以通過數(shù)據(jù)存儲區(qū)RAM和緩沖通道實(shí)現(xiàn)。<