以代理人基方法之基礎設施互依性模擬
劉治宏
國立政治大學
[email protected]
李蔡彥
國立政治大學
[email protected]
林靖雅
國立政治大學
[email protected]
黃佳慧
行政院原子能委員會核能研究所
[email protected]
林家德
行政院原子能委員會核能研究所
[email protected]
摘要
基礎設施是民生不可或缺的元素之一。重要基 礎設施通常由許多節點構成,也因為彼此之間相依 性極高,所以也被視為一種典型的複雜系統。近年 來以資訊科技輔助分析這類重點基礎設施的研究 也越來越多,從文獻上來看主要可以分為兩大類: (1)互依性分析(2)系統分析。前者著重於使用像拓樸 分析這類數值分析的方式,找出弱點基礎設施;而 後者則是使用大量模擬的方式來找尋潛在的弱點 基礎設施,並模擬不同情境的危機情境。常見的基 礎設施分析,多以拓樸分析為基礎找出弱的節點, 並套用蒙地卡羅演算法到模型內,做為模擬的依據, 但較少見到以基礎設施的各項屬性和規則建立代 理人模型的模擬。本論文希望以台灣電力基礎設施 運轉規章、基礎設施的屬性等資料為例,建立代理 人模型,並利用Push-Relabel 演算法的步驟將電力 調 度 平 衡 的計 算 分 散 至各 代 理 人 上。 我 們 採 用 Repast Simphony 作為我們代理人基模擬的平台。藉 由操作這些節點的狀態,我們設計了七個不同情境 的模擬,並以 IEEE 指標評估模擬結果,藉以說明 我們可以透過代理人基模擬找出基礎設施中的弱 點,並能夠模擬各式不同的危機和災難,進而提供 災難防備的決策參考。此外,我們的模擬工具亦提 供不同的視覺化呈現結果,讓使用者能夠輕易觀察 模擬過程的變化,並能夠將結果儲存及重現。 關鍵詞:電力網路、代理人基模擬、軟體代理人1. 前言
國家許多重要的基礎建設都是建立在互相依 賴的基礎服務上,如:水、電、天然氣等。這些服 務設施都有著相當高的複雜依賴關係。隨著這些設 施服務的設計日趨複雜,仰賴資訊系統控管亦是無 可避免。也因為這樣的依賴性,原本看似毫無關聯 的服務,都有可能因為局部天災人禍的影響,產生 不可預期的連鎖效應,進而影響民眾的日常生活或 者產業運作,對國家的發展產生威脅。 重要的基礎建設是由獨立的、大量的、人造的 系統所組成的網路。這些系統共同提供了日常生活 中不可或缺的服務。然而,他們可能遭遇到多種的 潛在威脅(例如,有意的人為破壞或無意的疏失,無 法預期的複合型天災等),進而引發重大的災害。重 要的基礎設施也可說是一種透過資訊與訊息傳遞 而形成的一種互相依存的動態複雜網路,其中電力 供應系統(如圖 1 所示),和通信及資訊系統的關係 密切,更是重要基礎建設的典型範例。 圖1 電力供應系統示意圖[26]2. 相關研究
早期的網路分析著重於節點的分割,有使用最 傳統的Minimum Cut,也有使用線性代數的 Eigen Value 和 Eigen Vector 做為切割的方式[11],而[4] 利 用計算二分圖上的最小代價流(min cost flow)。這 些不同種類的切割方式主要是將圖上的節點切割 成不同的兩群,目的是找出當發生問題時,將電力 網路切割仍可以維持部分網路的穩定。 傳統網路分析多以分析圖的拓樸架構和節點 的Centrality 為主。Centrality 是指計算一個圖上任 兩點之最短路徑後,每個節點被經過的次數,即是 其Centrality。通常 Centrality 越高的節點表示越多 路徑經過它亦代表其重要性。Crucitti 提出了基礎設 施的連鎖反應模型後[5],即以拓樸分析的方式對義 大利的電力網路進行分析[6],之後更比較不同網路 的拓樸架構,並分析找出弱點線段[7]。Cadini 使用 Centrality 來衡量基礎設施網路上節點的重要性[2]。 Eusgeld 更是探討如何以物件導向的方式建立分析 模型[8]。Zio 在基礎設施網路分析也有許多貢獻, 在[23]中他以 IEEE 14 BUS 為例,從拓樸的角度和可靠性的角度進行分析,並使用Monte Carlo 的方 法進行驗證了IEEE 14 BUS 的網路結構符合小世界 網路,意即其擁有良好的Global 和 Local 的連接性。 傳統的 Centrality 分析是建立在兩節點間之最短路 徑之上,Zio 認為這樣的方式與真實世界的情況不 符,因此他也提出了Randomized flow 的概念去計 算Centrality[24]。 除了拓樸方式分析網路外,Rocco S 亦提出了 以 Cellular Automata 為基礎並搭配 Monte Carlo Sampling 演算法計算網路的可靠性[19]。而 Zio 亦 以Cellular Automata 和 Monte Carlo 進行複雜網路的 可用性分析[24] ,此分析還對失敗與回復的系統動 力進行分析。 傳統網路分析類的方法最大的問題都是效率 較差,複雜度隨著節點上升而增加。若要分析節點 的影響力,除了計算 Centrality 外,也可輪流將某 個節點或者是某個邊移除,再對整張圖分析,這類 計算都是相當費時的。此外進行分析的網路節點只 能是靜態的,分析的結果能指出具潛在弱點的節點, 但無法看出一個網路發生問題的動態變化,亦無法 動態模擬如災害發生時,面對整個網路的連鎖反應, 如何進行不同的應變而產生不同的結果。 近年來使用代理人基模擬在電力網路上的主 題多以電力市場的供應鏈為主,由於歐美各國的電 力交易十分頻繁且面積廣大,因此許多模擬的對象 都以歐洲市場為主,最早使用代理人基方式模擬電 力市場的是 SEPIA[12]。目前歐美各國都相當重視 基礎設施的防護,而美國的國土安全局更是針對基 礎設施安全和漏洞預防提出重點報告[17]。多代理 人基的架構在控制分散各處的資源,以產生高可靠 性,高品質電力和更有效率的發電及配電。代理人 基在電力系統模擬的最主要的兩個挑戰是大型網 路架構和能夠即時反應效能。因此 Tolbert[22]提出 了混和式多種代理人架構,在階層式的樹狀結構中, 同一層的代理人可以互相溝通,而這些代理人可以 選擇他們的父節點,即代表與前一層進行連結。 Amin 提出了能自我復原電力系統的代理人基架構 [1]。Panzieri 則提出 CISIA,是一個使用 Fuzzy Logic 能方便分析基礎設施中錯誤傳遞過程的系統[16]。 Schule 則是提出了結合地理資訊系統進行基礎設施 模擬的架構[20]。Casalicchio 則將代理人基模擬與 Federated 模擬結合加速模擬的過程[3]。Mihailescu 則是提出了階層架構的電廠合作模式,以額外的代 理人進行分散式的協同決策,進而發揮潛在發電機 組的價值[15]。Saleem 則認為分散式控制是未來的 趨勢,因此在同年也提出分散式的代理人基模擬的 決策系統,用來控制和保護電力網路[18]。此外[14] 將貝氏機率網路的模型應用在代理人基模擬,而[13] 也以賽局理論的 Cost-Sharing 概念來達到代理人合 作的行為。
3. 階層式代理人
3.1 電力網路特性 電力的特性是其無法儲存在電力網路系統上, 因此整個電力網路系統上的供給與需求需要維持 在大致平衡的狀態。概觀來說,用戶手上的電主要 是經過各式發電廠所產生的電能,經過超高壓變電 所升壓後,將高壓電經由輸電線傳輸至大型用戶, 如:捷運、高鐵或者是工廠等大型用戶。或者是將 電力送至一次或二次變電所降壓,最後送至一般用 戶端。 電力系統的需求在每個時段都是不固定的,而 如前所述,電力無法儲存在電力網路上,因此隨著 需求的不同,電力公司對於電廠發電機的調度除了 需考慮即時的用電量外,還需考慮發電機組輪修等 問題,以及提供足夠的機組當作備載電力,以應付 激增或激降的電力需求。 電力系統在正常運轉時,即會不斷遭受各式各 樣的隨機小型擾動,如:負載量的隨機變化。亦有 可能遭受到較大型的擾動,如:輸電幹線跳線、或 者是發電機跳機等。而觀察電力系統穩定度,是觀 察模擬結果的一個重要指標。廣義而言,電力系統 穩定度是指電力系統遭受整體大大小小的擾動時, 保持或者重返可接受之穩定平衡狀態的能力。電力 調度即是發電、輸電和配電的整合的過程。 3.2 代理人設計 電力網路上大致會有三種類型的節點:屬於生 產端的發電廠、傳遞電力用的各級變電站、和消費 端的消費者。而我們所使用之電力網路資料的生產 端以發電機組資訊為主,變電站則分為超高壓變電 站(ES)、一次變電站(PS)、二次變電站(SS)、以及配 電變電站(DS),線路的資訊則為 161 千伏特(kV)和 345 千伏特的線路資料為主。 根據以上所得資訊,我們的系統包含五種類別 的代理人,分別是:發電機代理人、電廠代理人、 調度代理人、變電站代理人以及消費者代理人,其 中電廠代理人和變電站代理人的腳色類似現實電 力網路上的節點類型。代理人類別將分別介紹如 下: 消費者代理人,以 CustomerAgent 表示。 CustomerAgent = {S, D, SA} 其中 S 代表此代理人的狀態(State),反映出其是否 得到充足的電力。D 代表此代理人的需求用電量 (Demand),SA 代表此代理人相連的變電站代理人 (SubstationAgent)。在我們的模型中消費者代理人屬 於單純的消費者。這種代理人代表用電端,可以是 一間公司、一座城市這類單純消費而不生產的角 色。 變電站代理人,以 SubstationAgent 表示。 SubstationAgent = {S, P, C, N} 其中 S 代表此代理人的狀態(State),與消費者代理 人類似,都是反映出與變電站代理人連結的消費者 代理人和調度代理人之間的供需是否平衡。P 則是包 含 電 力 如 何 分 配 給 其 相 連 的 代 理 人 的 決 策 (Policy),在電力供應不足的狀況下,變電站代理人 的決策就越顯重要。C 則是代表其相連的消費者代 理人(CustomerAgent),而 N 則是代表其所有相連的 代理人(Neighbor)。變電站代理人在輸配電的時,會 優先配電給自己所屬的消費者代理人 調度代理人,以 OperatorAgent 表示。 OperatorAgent = {PP} 其 中 PP 則 代 表 了 其 相 連 的 電 廠 代 理 人 (PowerPlantAgent)。在我們的模型裡面,調度代理 人主要作用是調度各個電廠的運作,控制每座電廠 應該產生的發電量。 電廠代理人,以 PowerPlantAgent 表示。 PowerPlantAgent = {S, P, O, G, N} 其中S 代表此代理人的狀態(State);P 則代表了該 電廠發電機組運用的策略集(Policy)。O 和 G 則分別 代表了其相連的調度代理人(OperatorAgent)和發電 機代理人(GeneratorAgent);N 則是代表其所有相連 的代理人(Neighbor)。電廠代理人連結了調度代理人 和發電機代理人。電廠代理人會根據調度代理人指 定的發電需求,適度調整其管轄之電廠代理人發電 的量;亦能對不同的發電機組個別指派該機組的發 電量。電廠代理人同時必須能判斷其管轄之發電機 是否異常,如溫度過高或者是長期過載,而給定的 策略集可讓該代理人根據策略,選定合適的發電機 組負責發電,避免其發電機過度使用造成損害。 發電機代理人,以 GeneratorAgent 表示。 GeneratorAgent = {S, P, PP, MW, MVAR, W, R, PW} 其中 S 代表此代理人的狀態(State),發電機代理人 是屬於底層的代理人,因此能夠反映的狀態較多, 除了常見是否滿足電廠代理人交付之發電量外,還 需監測是否過熱或過冷,或者是否過載等這些基礎 的硬體狀態。P 則代表了此發電機的發電策略 (Policy),例如:自我保護的機制,異常範圍的容許 值 等 。PP 則 是 代 表 其 相 連 的 電 廠 代 理 人 (PowerPlantAgent)。MW 和 MVAR 則代表了此發電 機的規格,最多可以產生多少有效和無效的電力。 W 則是此發電機目前的負載(Working Rate);R 代表 此發電機受到損傷的復原速度(Recover Speed);PW 則是該發電機偏好的工作效率(Preferred Working Rate),指該發電機組在此工作效率時性價比最高。 發電機代理人連結了電廠代理人,屬於一種規則相 對單純的代理人。他能夠根據電廠代理人指定的發 電量來發電。除了發電外,該代理人尚有自我保護 的機制,能夠判斷像是環境溫度或者是負載率等等 各項數據是否異常,進行自我保護。而在發生災害 時,透過每個發電機不同的R 值,也能模擬隨著時 間而漸漸回復的過程。 除了上述五種代理人外,我們亦將災害製作成 一種代理人。該代理人能根據與其他代理人的距離, 產生不同的傷害。以目前設計的模型為例,我們設 計了一個地震代理人,他能夠影響其範圍內的發電 設施,對其造成損害。發電設施因此需要時間進行 修復,因此造成消費者代理人缺電的現象。
4. 系統實作
4.1 資料前處理 我們所取得台灣電力公司的資料多為格式不 固定的文字檔,為了將來使用的彈性,我們將資料 進行前處理,把所有的節點和邊的資訊全部轉成 XML 檔,而收集到的節點資料分為變電站和發電 機組。變電站的資訊有變電站容量、變電站類型(分 為超高壓、一次、二次及配電變電站)。發電機組 的資訊則有發電機功率、發電機的種類(如:核能、 燃煤,燃油、燃氣及水力等)。而邊的資訊則有邊 的容量上限、邊的種類(分為161kV 和 345kV)。 我們給予每個節點重要度、回復速率以及對損 壞時間的容忍度,以做為未來實驗用的指標。由於 電力傳輸是一個從電廠經過超高壓變電站,再經過 一次變電站、二次變電站,最後送到配電變電站的 過程,因此我們會讓變電站的流出的邊只能流往同 階層或者更低階層的變電站,不能流向比自己階層 高的變電站,也就是說同階層的兩個變電站其相連 的邊是兩個反向的有向邊,而不同階層的變電站則 是由高階層往低階層的有向邊。 4.2 Push-Relabel 演算法 真實電網的節點數眾多,節點之間電力配置有 其順序性,如何以分散式的模型收集資料,並做出 適當的動態配電決策,是本研究的主要議題。整個 電力調度可以想像成是圖論上求最大網路流(max flow)的問題,而我們的模擬是以代理人基為基礎 的模擬,加上所述Scheduled Method 無法控制同類 型節點之間的執行順序,因此演算法必須能夠分散 處理。求最大網路流的演算法裡面,以Push-Relabel 演算法的構想最接近我們的需求。 Push-Relabel 演算法[24]是求圖上最大網路流 問題效率最好的演算法之一,最基本的演算法提供 了O(V2E)的複雜度,其中 V 代表圖上節點的數量, E 代表圖上所有邊的數量。其演算法定義如下: 給定一個網路流的圖G(V, E),假設點 u 到點 v 這個邊的容量(capacity)叫做 c(u, v),此外給定兩個 假設的點s 和 t,我們假設 s 是產生流的供應端,欲 將這些流導入到t。我們將圖內產生 flow 的節點定 為集合P,消耗 flow 的節點集合定為 D,則我們增 加這些邊:E(s, n),n ∈ P,以及 E(n, t),n ∈D,這 些節點的生產和消耗量將作為這些邊的容量,節點 內我們以正數表示生產,負數表示消耗,邊上的數 字表示邊的容量。 此外我們定義f(u, v)表示點 u 到點 v 的流(flow), c(u, v)表示點 u 到點 v 這個邊上的最大容量,且 f(v, u) = -f(u, v),且 f(u, v) ≦ c(u, v),而此邊剩餘的容點u 的淨量,我們定義流入的流量為正數,流出則 為負數,若excess(u)為正值時表示該點仍有多餘的 流量,且除了節點s 以外,所有的節點 u 都必須滿 足excess(u) ≧ 0。此外對每個節點 u,我們給定一 個高度:label(u),且 label(u)的值為非負數。 接下來我們將定義幾個網路流的操作: Push:Push(u, v)的意義為將結點 u 上多餘的流 量推給節點v,而 Push(u, v)能夠發生必須滿足 下列條件: 1. excess(u) > 0,表示節點 u 還有多餘的流 可以推出。 2. c(u, v) – f(u, v) > 0,表示節點 u 到結點 v 的邊還有容量可供網路流通過。 3. label(u) > label(v),表示節點只能將流 往較低點推出,不能推往label 較高的點。 如 果 以 上 三 個 條 件 皆 滿 足 時 , 便 可 以 把
min( excess(u), c(u, v) – f(u, v) )的流推到結點 v 上。
Relabel:Relabel(u)的意義為增加節點 u 的
label 值,而 Relabel(u) 必須滿足下列條件才
能發生:
1. excess(u) > 0,表示這個節點還有多餘的 流可以推出,但是label 較低無法推出。
2. label(u) ≦ label(v),v 是其相鄰節點中 c(u,
v) – f(u, v) > 0 的集合,表示節點 u 比周 圍尚有容量的所有節點的label 都還低。 如果以上兩個條件成立時,會將 label(u)設定 成條件二提到的節點集合 v 內 label 最小節點的 label 值加一,亦即會比其周圍仍有容量的最小 label 節點略高。 Preflow:Preflow 只適用在節點 s 上,在演算 法的初始化階段時,節點s 會對其相鄰的每個 節點Push 和邊的最大容量一樣多的流出去, 概念上類似預借所有的流量Push 出去,等演 算法結束後,再計算其鄰居返回的流量。 Push-Relabel 演算法初始化時,我們會將結點 t 的 label 設定為 0,節點 s 的 label 設定為|V|,剩餘 其他節點的label 值則是為離節點 t 的距離,此處的 距離是將每個邊的長度都當作1 時計算最短路徑的 距離。 Push-Relabel 演算法接下來做的步驟為:除了 節點 s 和節點 t 以外,只要還有合法的 Push 或者 Relabel 的行為時就繼續執行直到完全沒有可進行 的操作為止。由於節點s 不會參與 Push 和 Relabel 這兩個操作,因此當中間的這些節點隨著演算法進 行,他們的Label 最終將會比節點 s 還高,此時就 會將多餘的流量推回節點 s,降低節點 s 其各邊的 流量,Push-Relabel 演算法如下: 4.3 代理人實作 4.3.1 發電機代理人 在我們的系統實作中,發電機代理人會接受電 廠代理人的調度,產生指定需求的電力。電廠代理 人要求發電機代理人產生指定負載的電量後,發電 機代理人會根據自己的類型不同,而有不同遞增或 遞減的速度達到目標負載。此外,若是電廠代理人 產生不合理的負載,發電機代理人也會自我保護避 免達到不合理的負載。其每回合模擬過程如下: 第二行的demandFromPowerPlant 是上層的電 廠代理人設定的值,而MW 是此發電機最大能產生 的有效電力,第三行的w 是此發電機現在的負載, 第 五 行 的 r 值 是 輸 入 給 定 的 回 復 速 率 。 approachToTargetWR 會使此發電機代理人的負載漸 漸朝向目標負載,但因其增減速率受發電機種類的 影響,所以設定目標負載後,仍需經過若干回合後 負載才會到達目標負載。 4.3.2 電廠代理人 電廠代理人會接受調度代理人的命令,產生調度代 理人指定的需求,得到這些需求的量後,電廠代理 人會依據不同的策略來調度其管轄的發電機代理 人,設定這些發電機代理人的目標負載。而根據 Push-Relabel 演算法,電廠代理人是該演算法裡面 產生流的節點,因此他們都會被演算法提到的節點 s 連結,而節點 s 到此電廠這個邊上的容量上限就 是該電廠代理人所有發電機組最大有效電力的和, 而邊上的現有流量值則與此電廠產生的電力相等。 其每回合模擬過程如Algorithm 3 所示。 電廠代理人演算法第二行到第六行是設定發 電機代理人產生電力的部分,第四行的 demand 為 調度代理人給定的需求,而P 則是發電機運用的策 略,在我們目前的模型裡面實作了兩種策略:第一 種為快速貪婪(Greedy)的策略,此策略在需求增 加時會優先提高負載較低的發電機代理人的負載; 反之,當需求降低時,則會優先降低負載較高的發 電機代理人。第二種策略為偏好負載優先的策略, 由於每一個發電機代理人都有其偏好的負載,在此 負載時產生電力的性價比是最高的。因此在採用這 種策略時,我們會計算每個發電機代理人的負載與 其偏好負載的差距,優先將未達偏好負載的發電機 代理人調高或降低負載,使發電機代理人到達偏好 負載。而發電機代理人都到達偏好負載時,產生的 總電量仍無法滿足調度代理人指定的需求時,會採 Algorithm 1. Push-Relabel 演算法
1 initialize node label 2 preflow(s)
3 while there exist a valid push or relabel 4 perform push
5 or perform relabel 6 end while
Algorithm 2. Generator Agent Step
1 if not damaged then
2 target := demandFromPowerPlant / MW 3 w := approachToTargetWR(target) 4 else 5 recoverFromDamage(r) 6 end if 7 S:= determineStatus()
取第一種快速貪婪的策略,來保證達到調度代理人 剩餘未滿足的需求。 第七行則是取得其管轄所有發電機代理人目 前的電力產量,這個值將用於調度代理人更新其相 連邊的流量。而第九行到第十二行則是將現有的流 Push 去其他節點,而在這裡則是為了讓流能優先傳 遞出去,因此選擇優先 Push 給子節點,而不優先 Push 給父節點。當電廠代理人的流會推回給父節點 s 時則代表這些是多餘的流,調度代理人可根據這 些資訊降低電廠代理人的產量。 4.3.3 調度代理人 在我們的系統實作裡,調度代理人的角色最適 合 Push-Relabel 演算法裡面的節點 s,調度代理人 主要的目的就是做Push-Relabel 演算法內 preflow 這 個操作。在Push-Relabel 的演算法中 preflow 是直接 將其相連的邊注入容量上限的流,而在我們的實作 中,則是將其修改為先將所有管轄的電廠代理人的 目標發電量設定為完全滿載,來符合 preflow 預借 流的現象。根據前述,發電機代理人接收到電廠指 定的目標負載後,達到該目標負載仍需若干回合。 所以,調度代理人和各電廠相連邊上的流量的值, 會反映目前電廠代理人收到的總電量(gain 值),此 乃 與 傳 統 Push-Relabel 演 算 法 不 同 之 處 。 除 了 preflow 以外,調度代理人還需要根據其相連的電廠 代理人是否將流Push 回來,決定是否要將各個電廠 代理人的目標發電量進行增減。 4.3.4 消費者代理人 消費者代理人在 Push-Relabel 演算法內屬於 消費者節點的角色,其主要功用是比較得到的流是 否滿足其需求,並設定此節點之狀態。消費者代理 人的需求亦可以設定隨著不同回合而產生不同變 化,藉此模擬現實生活中不同時間不同季節的用電 變化。會特別設計此類型節點的原因是我們考慮資 料未來可能擴充的部分,消費者代理人是屬於變電 站代理人所管轄,我們考量到一個變電站代理人可 能管轄若干個消費者代理人,因此我們將變電站代 理人的功能專注於電力傳輸,消耗的部分則交給消 費者代理人。 4.3.5 變電站代理人 變電站代理人在我們的系統內主要負責電力 傳輸的部分,其類型可分為超高壓變電站(es)、一 次變電站(ps)、二次變電站(ss)以及配電變電站(ds), 不同變電站種類的差異主要是變電站的容量大小。 一個配電變電站負責的範圍約略是一個行政區的 大小,甚至可能也有兩個變電站負責一個行政區, 因此我們將配電變電站的容量當作該區需求的參 考。在我們的實作裡,我們會對配電變電站增加一 個消費者代理人作為其子節點,並以該配電變電站 的容量的 80%作為消費者代理人的需求,而會取 80%的原因則是我們將所有配電變電站的容量加總, 比較實際尖峰時段總需求量後,得到的觀察結果。 其每回合模擬過程如以下Algorithm 4: 其 步 驟 的 第 三 行 至 第 十 三 行 主 要 是 執 行 Push-Relabel 演算法的操作,然而在第二行的地方, 我們刻意對變電站代理人的子節點進行排序,藉此 控制哪些子節點能夠優先被供應到電力。我們目前 的排序方式是,如果此變電站代理人是配電變電站 的類型時,我們會優先把流推給消費者代理人,這 反映了電力流經此區域時會先被此區域消耗的現 象。而剩餘的部分我們則是以每個節點的重要程度 來排序,目前每個節點的重要程度是隨機給定。 4.3.6 災難代理人 災難代理人相對較為單純,在我們的實作裡面 可以給定災難代理人的啟動回合、結束回合、大小 以及影響強度。災難代理人會根據在指定的啟動回 合和結束回合之間,將範圍內的代理人給予不定程 度的影響。我們的影響範圍是以指定的節點為圓心, 給定長度範圍內形成的圓形包含的節點。而影響程 度目前則是以圓心為最嚴重,隨著離圓心距離越遠 而遞減。
Algorithm 3. PowerPlant Agent Step
1 if not damaged then 2 for each Gi in G 3 do 4 r := determineGenPower(demand, P) 5 generatePower(Gi, r) 6 end 7 gain := collectGenerateMW(G) 8
9 for each Suc/Predecessors Node Ni
10 do 11 push(Ni) 12 end 13 14 15 relabel() 16 end if 17 S := determineStatus(gain, demand)
Algorithm 4. Substation Agent Step
1 if not damaged then
2 successorsNodes := Sort( Successors Node, P )
3 for each Node Ni in successorsNodes
4 do
5 push(Ni)
6 end 7
8 for each Predecessors Node Ni
9 do 10 push(Ni) 11 end 12 13 relabel() 14 end if 15 S := determineStatus(gain, demand)
5. 模擬介面設計 在我們的系統實做內,我們將設計了三個主要 的圖形介面:第一種是地理座標的圖形視圖、第二 種是變電站代理人與消費者代理人階層架構的視 圖、第三種則是電廠代理人與發電機代理人階層架 構的視圖,我們將分別介紹於後。除了這三種圖形 介面外我們也對Repast Simphony 的操作面板進行 設計,讓我們可以在執行階段動態的加入災難代理 人。此外,我們也可以設定每個消費者代理人產生 需求的百分比數,來反映不同時間會有不同需求。 5.1 地理座標視圖 如圖2 所示,地理座標視圖的目的是提供使用 者綜觀整個電力網路的架構,在這個視圖裡會呈現 電廠代理人與變電站代理人的資訊,若有災害發生 時,亦會呈現災害代理人的影響範圍。由於使用者 必須要一次觀察大量的節點,因此我們的設計是以 不同的圖示來代表不同類型的代理人、文字顯示該 節點的名稱、以及不同的顏色來表示節點的狀態, 讓使用者快速了解該各個節點巨觀的資訊。此外, 不同顏色的線段則分別代表345kV 和 161kV 的線路, 線路上的箭頭則是代表電力可以傳遞的方向,也就 是我們資料前處理時設定的有向邊的方向。 5.2 變電站階層架構視圖 變電站階層架構視圖的目的是提供使用者仔 細觀察每一個節點資訊的視圖,在這個視圖裡面我 們可以看到每一個變電站代理人微觀的資訊,以及 對配電變電站來說,其包含的消費者代理人的資訊。 在這個視圖裡面每個變電站代理人(圖 3 紅色矩形 圈起處)都會有一個圓形的燈號表示其狀態,綠色表 示正常,紅色表示該節點有問題。此外也可以看到 每一個節點的重要程度(Importance)、目前累積缺電 的 回 合(Aging)、以及能夠忍受缺電回合的閾值 (tolerence) 和 超 過 門 檻 值 的 次 數 (UnHappyCount, UHC)。圓形燈號下方會有一往右成長的綠色矩形, 以及一條垂直黑線,此往右成長的綠色矩形表示目 前累積缺電的回合數,而黑線則是表示能夠忍受缺 電回合的門檻值,也就是說當綠色矩形成長超過此 黑線時,UHC 的值就會增加 1。 圖3 變電站階層架構視圖 5.3 電廠階層架構視圖 電廠階層架構視圖與變電站階層架構視圖類 似,差別在於此視圖觀察的對象為電廠代理人以及 發電機代理人。如圖4 所示,在這個視圖上我們可 以看到每座電廠的名稱下方皆有一個圓形燈號,綠 色表示產量滿足調度代理人指定的需求,而紅色則 是尚未達到。電廠名稱上方則是顯示整個電廠的總 有效電力。而每個電廠代理人圖示右邊則是其管轄 的發電機代理人,發電機代理人個數即為機組數, 每個發電機代理人的燈號以綠色表示其正常運作, 紅色則否。燈號底下的矩形則是用紅色的底表示發 電機代理人的最大有效電力,綠色填滿的程度則是 其現在產生有效電力的比例。 圖4 電廠階層架構圖形視圖 5.4 操作介面設計 代理人基模擬與傳統系統分析的優勢在於代 理人基的模擬過程是動態的,而且可以隨時對整個 系統進行修改以及互動,因此我們也實作了Repast Simphony 旁邊的操作面板(如圖 5 所示),讓我們 可以在執行期間動態加入災害代理人,以及設定消 費者代理人消耗需求的百分比數。
圖5 左側自訂的操作介面
6. 實驗分析
在本實驗中所使用的節點資訊分為兩種:第一 種是變電站節點,而第二種則是發電機組節點。變 圖2 地理座標視圖電站節點總數有279 個,其中包含了超高壓變電站 23 個、一次變電站 44 個、二次變電站 1 個以及配 電變電站211 個。發電機組節點則有 181 組,其中 核能發電機6 組、燃油發電機 6 組、燃煤發電機 23 組、氣渦輪發電機8 組、複循環燃氣發電機 91 組、 水力發電機39 組以及汽力燃氣發電機 8 組,這 181 個發電機組共分為 34 座電廠。除了節點資訊外, 實驗資料另含345 千伏與 161 千伏的電力線路資訊 903 筆,其中 345 千伏的線路資訊有 85 筆,161 千 伏的線路資訊有818 筆。 6.1 模型基本驗證 消費者代理人的需求是參考其上層配電變電 站的容量,在測試供需平衡的驗證中,我們將以10%、 50%、80%、90%以及 100%消費者代理人的需求進 行驗證。我們首先定義消費者代理人需求是否滿足, 是指其獲得的電量是否大於等於其需求,亦即全有 或全無。下表是不同百分比在經過若干回合後模擬, 最後總供給與總需求的數值。Push-Relabel 演算法 在最後會將 preflow 出來的流返還給節點 s 求得網 路最大流。在我們的實作裡節點s 以調度代理人為 代表,當流返還調度代理人以後代表趨於穩態。上 述幾個例子中,消費者代理人的需求為90%和 100% 時,約略要在 1000 回合以後才會將流返還給調度 代理人;而其他百分比則是在110 回合內就已經完 成返還的動作。 表1 不同百分比的供需平衡驗證 百分比 總生產量 總需求量 未滿足消費 者代理人數 10% 2941.0 2941.0 0 50% 14357.0 14357.0 0 80% 22919.0 22919.0 0 90% 25724.3 25773.0 9 100% 27608.7 28627.0 20 由表1 可以發現在百分比 90%和百分比 100% 時,出現了有消費者代理人無法被滿足的現象,此 乃因為電力網路的線也有其容量限制,即便所有電 廠代理人的總產量高於 100%的需求量,但是線路 之間無法負擔這樣大的流量也無法將夠多的電傳 入,因此會導致部分節點無法得到充足的電力。 6.2 模擬分析 在開始實驗分析之前我們將先定義三個由電 網表現指標,這三個指標是由[25]從 IEEE Standard 1366-2012[26]的眾多指標內選出的,分別介紹如 下: 6.2.1 大台北地區電廠損害分析 在這個實驗分析裡面我們會對大台北地區的 三座電廠,以及中部的一座電廠,進行損害分析比 較。我們將比較大台北地區這三座電廠,損害任意 數量時和中部這座電廠單獨損害時所造成的影響。 結果如表2: 表2 大台北地區與中部電廠損害比較 損害電廠數 0 1 2 3 中部電廠 單獨損害 消費端缺電 數 0 0 0 17 2 SAIFI 0.0 0.0 0.0 0.092 0.015 SAIDI 0.0 0.0 0.0 27.55 3.12
CAIDI Inf. Inf. Inf. 300.0 203.67
6.2.2 電網分割對大台北地區電廠損害分析 在這個分析實驗裡,我們將假設台灣的三個重 要樞紐節點發生損害,而此三個節點損害時會將台 灣電力網路主幹分割成兩大區域。我們假定這三個 節點已經損壞的情形下,比較此時大台北地區這三 座電廠發生不同程度的損害時,其造成的影響。結 果如表3 所示。 表3 南北形成獨立電網時,大台北地區缺電比較 大台北地區 損害電廠數 0 1 2(Avg.) 3 消費端 缺電數 7 7 7 24 SAIFI 0.036 0.036 0.056 0.128 SAIDI 10.71 10.71 10.87 38.27 CAIDI 300 300 215.27 300 6.2.3 中部電廠損害對大台北地區電廠損害分析 在接下來的實驗分析中,我們會假設6.2.1 節 提到的中部電廠發生損害,在這個情況下大台北地 區這三座電廠發生損害時的比較。這個分析主要是 提供下一節實驗比較的對象。在中部這座電廠單獨 發生災害時,根據 6.2.1 會造成 2 個消費端缺電, 而我們可以從這個實驗分析結果得知,在此電廠發 生損壞後,大台北地區的這三座電廠若同時發生損 壞時,除了三座電廠全壞時,消費端缺電數會再增 加1 以外,其餘消費端缺電數皆為直接增加 2,結 果如表4 所示。 表4 中部電廠損害與大台北地區電廠損壞比較 大台北地區損 害電廠數 1(Avg.) 2(Avg.) 3 消費端缺電數 2 2 20 SAIFI 0.026 0.046 0.122 SAIDI 3.213 5.619 30.939 CAIDI 128.928 85.245 252.667 6.2.4 電網分割與中部電廠損壞對大台北電廠分析
接下來這個例子中,我們會將6.2.2 節提到的 三個重要樞紐節點假設為損壞,此時台灣的電力網 路將分割成南北兩個電網,同時若中部電廠亦發生 損害時,大台北地區這三座電廠損害的比較。如前 文所述,這三個重要的樞紐節點因地理位置接近, 容易被大範圍型的天災所破壞,而中部此座電廠則 位於海邊,我們假設地震同時引發了海嘯,使得該 座電廠也被破壞時,對於缺電的北半部的台灣所造 成的影響。 表5 加成效果與大台北地區電廠損壞比較 大台北地區 損害電廠數 1(Avg.) 2(Avg.) 3 消費端 缺電數 25.3 45 64 SAIFI 0.146 0.229 0.327 SAIDI 39.75 68.88 97.96 CAIDI 270.69 300 300 由表5 中我們可以發現,與 6.2.3 的結果相比, 唯一的操縱變因是我們額外損壞了這三個樞紐節 點當作模型的假設,在 6.2.3 不論大台北地區損壞 任意一座或兩座電廠,造成的消費端缺電數皆為2, 即使三座電廠全部損壞時,消費端缺電數為20。我 們若與6.2.2 的結果相比,在 6.2.2 中電網分割後大 台北地區不論損壞一座或兩座電廠,也都只會造成 7 個消費端缺電,即便是三座電廠全部損壞,也只 會造成 24 個消費端缺電。然而,這三個樞紐節點 將台灣分割為兩個電力網路後,使得南半部的電無 法傳遞到北半部,加上根據 6.2.1 我們知道中部這 座電廠是相當大的電廠,一旦損壞後又無其他供給 能夠遞補這個產量的空缺,兩項假設的災害獨立發 生造成的結果皆不是很嚴重,但若同時發生,卻可 以造成最嚴重有64 個消費端缺電,最輕微也有 20 個消費端缺電。由這個實驗分析我們亦可以得知, 這三個樞紐與中部該電廠的重要性。 6.2.5 南北電力迴路分析 台灣南北三條主要迴路皆由345kV 線路所構成, 在這個實驗分析裡面,我們針對這三條迴路進行損 壞分析比較。將比較分別損壞各路及任意兩路損壞 時所造成的影響,結果如下表6 所示。 表6 中部電廠損害與大台北地區電廠損壞比較 損壞迴路 造成缺電數 A 0 B 0 C 23 A+B 0 A+C 22 B+C 30 A+B+C 29 由此結果可以發現,損壞A 或 B 兩種迴路並不 會造成消費端缺電,但當損壞C 迴路時,即造成有 23 個消費端無法滿足需求,代表 C 的影響力比其他 兩迴路都還要大。而損壞兩條迴路時,可看出當僅 損壞A 和 B 時,並不會造成消費端缺電,而一旦 C 受到損壞,即造成消費端缺電。會造成這樣的結果, 可能與C 所連接的變電所有關,其所連接到的變電 所數量相較A、B 為多,而缺電的消費端大多分布 在特定超高壓變電所附近,可以看出其周圍變電所 相當倚賴該超高壓變電所之輸送,當連接該變電站 的兩條345kV 輸電線損壞時,其能供應的電將大幅 下降。由於Push-Relabel 是求網路最大流的演算法, 因此迴路損壞越多不保證缺電數越多,但不同程度 損壞其缺電數仍會在特定範圍。
7. 結論與未來展望
在本研究中,我們觀察了電力系統的特性,並 嘗試設計了階層式架構的代理人模擬系統,我們將 Push-Relabel 演算法的特性與代理人模擬結合。在 實作上,我們使用了Repast Simphony 模擬平台, 在此平台上我們可以專注於設計五種代理人的模 型以及其使用者介面顯示的樣貌。因此,我們也設 計了不同的使用者介面,讓操作者能夠有效地找出 其所需的資訊。此外,我們還設計了不同的發電策 略,而這些發電策略會影響最後的發電成本。透過 這些代理人簡單的策略,我們能夠快速地模擬大量 節點下的電力網路系統。在我們的實作中,總共有 665 個代理人同時進行模擬,而模擬一回合的時間 僅需 0.005 秒,和傳統系統動力學的方法相比速度 是相當的快。此外,我們也對這個模型進行驗證, 我們測試了在不同消費者需求的百分比下時,其供 給與需求是否平衡。由於我們的模型有考量線路容 量的問題,即使我們仍有生產餘裕,也無法滿足過 大的需求。最後我們也進行了相當多的實驗與分析, 在我們分析的例子裡面可以發現,台灣的電力網路 從以前的南電北送到現在確實能夠達到中電北送 的目標,即便是分成南北兩個電力網路也能有一定 的服務水準。然而我們也分析出一些情境是單獨發 生造成的影響都相當有限,而一起發生時則會產生 大型的災害。這也顯示出以代理人基模擬的優點。 然而我們仍有許多現象還未模擬,例如現實生 活中的連鎖失敗效應發生乃因電力網路必須保持 著動態平衡,倘若是消費端突然有節點損壞導致需 求降低時,電廠沒有馬上降低其功率或者是解聯, 那麼多餘的電力就會在電力網路上影響其他節點, 造成其他節點損壞,進而引發大規模的連鎖效應。 此外當發生大規模停電時,電力系統的回復也是我 們想探討的,大型的電廠多半配有能夠啟動一組發 電機所需電力的柴油發電機。此外,模擬系統的圖 形介面美化與設計,以及此圖形介面帶給使用者的 便利尚未驗證。這些都是我們未來希望能夠努力的 方向。致謝
本研究承蒙行政院原子能委員會核能研究所的 支助(計畫編號:NL1010343),得以順利完成,特 此致謝。
參考文獻
[1] M. Anim, “Toward Self-Healing Energy Infrastructure Systems,” Computer Applications
in Power, IEEE, 14:20-28, 2001.
[2] F. Cadini, E. Zio, C.-A. Petrescu, “Using Centrality Measures to Rank the Importance of the Components of a Complex Network Infrastructure,” in: R. Setola, S. Geretshuber (Eds.) Critical Information Infrastructure
Security, pp.155-167, 2009.
[3] E. Casalicchio, E. Galli, S. Tucci, “Federated Agent-Based Modeling and Simulation Approach to Study Interdependencies in IT Critical Infrastructures,” in: Proc. of the 11th
IEEE Intl. Symp. on Distributed Simulation and Real-Time Applications, pp.182-189, 2007.
[4] L. Ciupaka, “The Cost Scaling Algorithm for Bipartite Network,” Bulletin of the Transilvania
University of Brasov, 2:8, 2009.
[5] P. Crucitti, V. Latora, M. Marchiori, “Model for Cascading Failures in Complex Networks,”
Physical Review E, 69, 2004.
[6] P. Crucitti, V. Latora, M. Marchiori, “A Topological Analysis of the Italian Electric Power Grid,” Physica A, 338:92-97, 2004. [7] P. Crucitti, V. Latora, M. Marchiori, “Locating
Critical Lines in High-Voltage Electrical Power Grids,” Fluctuation and Noise Letters, 5, 2005. [8] I. Eusgeld, W. Kröger, G. Sansavini, M.
Schläpfer, E. Zio, “The Role of Network Theory and Object-Oriented Modeling within a Framework for the Vulnerability Analysis of Critical Infrastructures,” Reliability Engineering
& System Safety, 94:954-963, 2009.
[9] J.D. Glover, M.S. Sarma, T.J. Overbye, Power
System Analysis and Design, Fifth Edition,
(2011).
[10] A.V. Goldberg, R.E. Tarjan, “A New Approach to the Maximum Flow Problem,” in Proc. STOC
'86 Proc. of the Eighteenth Annual ACM Symp. on Theory of computing, pp.11, 1986.
[11] L. Hagen, A.B. Kahng, “New Spectral Methods for Ratio Cut Partitioning and Clustering,” IEEE
Trans. on Computer-Aided Design of Integrated Circuits and Systems, 1992.
[12] S.A. Harp, S. Brignone, B.F. Wollenberg, T. Samad, “SEPIA. A Simulator for Electric Power Industry Agents,” Control Systems, IEEE, 20:53-69, 2000.
[13] M. Hoefer, “Strategic Cooperation in Cost Sharing Games,” Proc. of the 6th Intl. Workshop,
WINE, (2010) 17.
[14] W. Lam, A.M. Segre, “A Distributed Learning
Algorithm for Bayesian Inference Networks,” IEEE Tran. on Knowledge and Data Engineering, pp.13, 2002.
[15] R.C. Mihailescu, M. Vasirani, S. Ossowski, “Towards Agent-Based Virtual Power Stations via Multi-Level Coalition Formation,” in: First
Intl. Workshop on Agent Technologies for Energy Systems, 2010.
[16] S. Panzieri, R. Setola, G. Ulivi, “An Agent Based Simulator for Critical Interdependent Infrastructures,” in Proc. of the 2nd Intl. Conf.
on Critical Infrastructures (CRIS 2004),
Grenoble, France, 2004.
[17] P. Pederson, D. Dudenhoeffer, S. Hartley, M. Permann, “Critical Infrastructure Interdependency Modeling A Survey of U.S and international research,”
Idaho National Laboratory, 2006.
[18] A. Saleem, M. Lind, M.M. Veloso, “Multiagent-Based Protection and Control in Decentralized Electric Power Systems,” in First
Intl. Workshop on Agent Technologies for Energy Systems, 2010.
[19] C.M.R. Sanseverino, E. Zio, “Solving Advanced Network Reliability Problems by Means of Cellular Automata and Monte Carlo Sampling,”
Reliability Engineering & System Safety, 89:
219-226, 2005.
[20] M. Schüle, R. Herrler, F. Klügl, “Coupling GIS and Multi-Agent Simulation – Towards Infrastructure for Realistic Simulation,” in: G. Lindemann, J. Denzinger, I. Timm, R. Unland (Eds.) Multiagent System Technologies,
pp.228-242, 2004.
[21] I.P.E. Society, IEEE Guide for Electric Power
Distribution Reliability Indices, 2012.
[22] L. Tolbert, H. Qi, F. Peng, “Scalable Multi-Agent System for RealTime Electric Power Management,” in: Proc. Power
Engineering Society Summer Meeting,
pp.1676-1679, 2001.
[23] E. Zio, C.-A. Petrescu, G. Sansavini, “Vulnerability Analysis of a Power Transmission System,”
Proc. of the Intl. Probabilistic Safety Assessment and Management Conf. (PSAM’09), 2008.
[24] E. Zio, L. Podofillini, V. Zille, “A Combination of Monte Carlo Simulation and Cellular Automata for Computing the Availability of Complex Network Systems,” Reliability
Engineering & System Safety, 91: 181-190,
2006.
[25] E. Zio, R. Piccinelli, “Randomized Flow Model and Centrality Measure for Electrical Power Transmission Network Analysis,” Reliability
Engineering & System Safety, 95: 379-385,
2010.
[26] http://www.taipower.com.tw/left_bar/power_life /power_flow.htm