唐海華,李 琪,黃瓅瑤,周 超,羅 斌
(長江勘測規(guī)劃設(shè)計研究有限責(zé)任公司,武漢 430010)
流域洪水調(diào)控計算本質(zhì)上是深度運用計算機技術(shù),模擬流域洪水在其防洪體系下的傳播演進與調(diào)度控制過程。我國流域的防洪體系主要包括水庫、河段、測站、堤防、蓄滯洪區(qū)、水閘、泵站等水利對象[1-2],重點涉及河道洪水一維演進、水庫洪水調(diào)度、水庫回水模擬、水庫潰壩模擬、堤防潰決模擬、蓄滯洪區(qū)分洪計算、泄洪閘門分配計算、洪水二維淹沒模擬、洪災(zāi)損失計算和洪水風(fēng)險評估等業(yè)務(wù)計算[3-7]。充分運用各類專業(yè)模型對水利工程對象群開展聯(lián)合調(diào)度控制,對提升流域防洪能力、降低洪水淹沒風(fēng)險、減小洪水災(zāi)害損失具有重要支撐作用。
目前,流域各層級防汛調(diào)度部門主要依靠防汛調(diào)度決策指揮系統(tǒng)開展洪水調(diào)控工作。此類系統(tǒng)主要基于固定的范圍、對象、流程和模型進行設(shè)計建設(shè)[8-9],其應(yīng)用功能模塊、防洪控制對象、調(diào)度計算任務(wù)、業(yè)務(wù)數(shù)據(jù)流程、設(shè)施控制方式等大多按定制化方式開發(fā)實現(xiàn),各類專業(yè)模型分散在不同的軟件功能中,原本連續(xù)的洪水調(diào)控任務(wù)被模塊化分割,缺乏整體性、系統(tǒng)性和一致性,數(shù)據(jù)銜接與信息處理需大量人工干預(yù),流程繁瑣;同時,流域及各類水利工程的洪水調(diào)度方案通常需要定期修編,對應(yīng)的系統(tǒng)功能及專業(yè)模型必須配套開發(fā)調(diào)整才能滿足新方案要求,工作量大,效率較低;此外,當(dāng)遭遇超標(biāo)準(zhǔn)洪水時,由于超標(biāo)準(zhǔn)洪水具有偶發(fā)性、不確定性、復(fù)雜性和特殊性,調(diào)度人員通常需要根據(jù)洪水的演變態(tài)勢在線開展多方案調(diào)控計算模擬,才能科學(xué)下達防汛決策和調(diào)控指令,計算范圍、對象和流程會隨著洪水影響程度不同而動態(tài)變化,專業(yè)模型、參數(shù)類型與數(shù)據(jù)規(guī)模也較為龐大,無法提前預(yù)置計算對象和業(yè)務(wù)流程[10]。
綜上,按定制化方式建設(shè)防汛調(diào)度決策支持系統(tǒng)很難支撐變化場景下的不確定性洪水調(diào)控需求,應(yīng)對能力明顯不足。組態(tài)化、組件化和流程化技術(shù)是應(yīng)對系統(tǒng)研發(fā)不確定性需求的重要手段。馬振宇等[11]將組態(tài)設(shè)計思想引入管理信息系統(tǒng)結(jié)構(gòu)及其業(yè)務(wù)工作流,使系統(tǒng)可有效適應(yīng)業(yè)務(wù)流程重組,大幅減少了需求的不確定性風(fēng)險;唐海華等[12]充分應(yīng)用組件化技術(shù)提出了水庫群調(diào)度的多模型一體化集成架構(gòu),實現(xiàn)了模型算法的通用集成;萬書鵬等[13]基于組態(tài)化和流程化模式開展了調(diào)控系統(tǒng)的微服務(wù)編排技術(shù)研究,實現(xiàn)了系統(tǒng)業(yè)務(wù)場景的靈活組裝,滿足了各級調(diào)度控制中心業(yè)務(wù)場景的功能組合需求。本文充分借鑒上述思想,深入分析其與洪水調(diào)控計算的融合應(yīng)用方法,重點研究不同洪水調(diào)控場景下差異化計算需求的一體化動態(tài)耦合技術(shù)。
為解決洪水調(diào)控模擬過程的定制化和模塊分割問題,實現(xiàn)流域洪水的河道傳播演進、水庫調(diào)度決策、庫區(qū)回水線推求、泄洪控制計劃擬定、堤壩潰決與蓄滯洪區(qū)分洪、洪水淹沒分析、洪災(zāi)損失統(tǒng)計及洪水風(fēng)險等級評估等全過程一體化模擬,并支持按需自定義組織不同規(guī)模、不同類型的洪水調(diào)控計算任務(wù),本文將組件化、組態(tài)化和流程引擎技術(shù)引入流域洪水調(diào)度控制領(lǐng)域。
組件化技術(shù)是模塊化思想的演進和延伸,主要通過深層次解耦與隔離不需要關(guān)注的部分來強化模塊角色的可轉(zhuǎn)換性;組態(tài)化技術(shù)的精髓在于可通過“搭積木”的方式來按需配置自己想實現(xiàn)的不同模擬計算功能,而不依賴編寫計算機程序代碼;流程引擎技術(shù)的核心則是將不同的目標(biāo)任務(wù)分解為節(jié)點、流向和流程,然后根據(jù)不同的角色、分工、條件來決定信息流和業(yè)務(wù)流的傳遞方向與轉(zhuǎn)換邏輯,從而實現(xiàn)多項任務(wù)的靈活銜接與自動關(guān)聯(lián)。
將以上技術(shù)與洪水調(diào)控計算的水利對象、業(yè)務(wù)邏輯和模型算法深度融合,即可構(gòu)建一套以“流程節(jié)點組件分解”與“調(diào)控計算組態(tài)耦合”相銜接的技術(shù)方案,按照“先分后合”的方式實現(xiàn)各類流域洪水調(diào)控任務(wù)的按需組態(tài)耦合,以動態(tài)配置搭建替代程序定制開發(fā),有效應(yīng)對不同洪水調(diào)控場景下的不確定性計算需求。
針對流域防洪體系各類水利對象、模型算法和方案參數(shù),按對象庫、規(guī)則庫和節(jié)點庫3類進行分解和管理,為調(diào)控計算組態(tài)耦合提供關(guān)鍵要素支撐,如圖1所示。
圖1 流程節(jié)點組件分解示意圖Fig.1 Schematic diagram of process node decomposition
(1)防洪體系數(shù)字化建模:梳理流域內(nèi)所有防洪體系資料,按照不同計算對象類型,分別進行數(shù)字化建模,分類定義并量化當(dāng)前流域內(nèi)所有對象的基礎(chǔ)屬性、設(shè)計參數(shù)和特征指標(biāo),構(gòu)建防洪體系對象庫。
(2)模型參數(shù)規(guī)范化定義:針對洪水調(diào)控涉及的各類計算模型,按對象庫分類方式分別梳理輸入輸出參數(shù),并剔除重復(fù)變量,統(tǒng)一制定數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn),構(gòu)建所有模型的參數(shù)庫。
(3)模型算法組件化封裝:將洪水調(diào)控涉及的各類計算模型與具體水利對象解耦,統(tǒng)一采用參數(shù)庫中的抽象定義作為輸入輸出接口,按組件化方式實現(xiàn)算法開發(fā),提升模型自身的通用性和移植性,構(gòu)建支撐洪水調(diào)控計算的組件庫。
(4)模型組件節(jié)點化構(gòu)建:針對所有模型算法組件,根據(jù)其接口需求逐一與參數(shù)庫關(guān)聯(lián),構(gòu)成具有“輸入-計算-輸出”標(biāo)準(zhǔn)化結(jié)構(gòu)的流程節(jié)點,最終將組件庫和參數(shù)庫全部封裝為面向調(diào)控任務(wù)的節(jié)點庫。
(5)對象耦合校驗邏輯制定:由于節(jié)點庫中每個節(jié)點已全部與水利對象解耦,當(dāng)創(chuàng)建流程節(jié)點開展實例計算時,必須與對象庫中的某一類或幾類水利對象進行耦合。因此,針對任一類水利對象,必須判斷節(jié)點與對象耦合的有效性,只有節(jié)點內(nèi)封裝的模型組件接口與該類對象的屬性參數(shù)存在關(guān)聯(lián)性才為有效耦合。
定義對象庫的類型集合OT,類型總數(shù)m;節(jié)點庫的節(jié)點集合ND,節(jié)點總數(shù)n??芍贫ü?jié)點對象耦合有效性集合C為
(1)
式中C(i,j)為0-1變量,表示節(jié)點NDi與對象OTj的耦合有效性,且i∈(1,2,…,n),j∈(1,2,…,m)。
針對集合C中C(i,j)=1的元素,構(gòu)建對應(yīng)的節(jié)點對象適配集合A為
(2)
式中A(i,j) 表示節(jié)點NDi與對象OTj的接口參數(shù)適配關(guān)系,具體表達式根據(jù)不同節(jié)點和對象類型分別定義。若C(i,j)=0,則對應(yīng)A(i,j)無效,按置空處理。
(6)節(jié)點流向校驗邏輯制定:節(jié)點庫中的每個節(jié)點在開展組合計算流程搭建時,需與其他節(jié)點進行連接。若將節(jié)點A連接至節(jié)點B時,則產(chǎn)生節(jié)點流向A-B,其中A為上級節(jié)點,B為下級節(jié)點。此時,必須判斷節(jié)點流向的有效性,其中上級節(jié)點的輸出參數(shù)中至少存在一項與下級節(jié)點的輸入?yún)?shù)關(guān)聯(lián),節(jié)點流向才有效,否則無效。
構(gòu)建節(jié)點流向有效性集合V為
(3)
式中V(i,j)為0-1變量,表示節(jié)點流向NDi-NDj的有效性,且i∈(1,2,…,n),j∈(1,2,…,n)。
針對集合V中V(i,j)=1的元素,構(gòu)建對應(yīng)的節(jié)點參數(shù)關(guān)聯(lián)集合L為
(4)
式中L(i,j)表示節(jié)點流向NDi-NDj的參數(shù)關(guān)聯(lián)邏輯,具體表達式根據(jù)不同節(jié)點類型分別定義。若V(i,j)=0,則對應(yīng)L(i,j)無效,按置空處理。
式(1)—式(4)共同構(gòu)成了所有節(jié)點、對象和流向的邏輯校驗規(guī)則庫。
圖2 調(diào)控計算組態(tài)耦合流程示意圖Fig.2 Flowchart of configuration coupling for control calculation
根據(jù)對象庫、規(guī)則庫和節(jié)點庫成果,針對不同調(diào)控計算任務(wù)的業(yè)務(wù)邏輯,依次組織對應(yīng)的對象、規(guī)則和節(jié)點,即可按流程化方式實現(xiàn)該任務(wù)的組態(tài)耦合,如圖2所示。具體過程為:啟動流程,從節(jié)點庫中選擇一個節(jié)點作為流程起點;為起始節(jié)點耦合計算對象,并根據(jù)規(guī)則庫校驗當(dāng)前節(jié)點與對象耦合是否有效,若無效,則重選對象類型;根據(jù)組合需求創(chuàng)建下級節(jié)點,并根據(jù)規(guī)則庫校驗上下級節(jié)點流向是否有效,若無效,則重選下級節(jié)點;為下級節(jié)點耦合計算對象,并校驗有效性;根據(jù)組合計算需求,創(chuàng)建新的下級流程節(jié)點并完成對應(yīng)的節(jié)點流向和對象耦合校驗,若下級需同時開展多項任務(wù),則創(chuàng)建多個并聯(lián)子節(jié)點,依次循環(huán),直至節(jié)點創(chuàng)建完畢;將上述所有流程節(jié)點的輸入信息進行歸納集中,各上、下級節(jié)點之間存在關(guān)聯(lián)的參數(shù),根據(jù)式(4)的邏輯規(guī)則確定,其余則由用戶輸入確認(rèn);執(zhí)行計算任務(wù),按流程順序逐節(jié)點完成計算和信息傳遞;輸出所有流程節(jié)點的對象計算結(jié)果,流程結(jié)束。
本文技術(shù)已成功應(yīng)用于長江流域控制性水工程防災(zāi)聯(lián)合調(diào)度示范系統(tǒng),實現(xiàn)了水庫群防洪調(diào)度、河道洪水演進、庫區(qū)回水分析等一體化流域洪水調(diào)控計算。以長江中上游為例,其防洪體系主要涵蓋:梨園、阿海、三峽等16座水庫;梨園—阿海、阿?!鸢矘颉⑷龒{—宜昌等19個河段;李莊、朱沱、宜昌等8個測站,以及三峽庫區(qū)140個河道斷面對象。防洪體系拓?fù)浣Y(jié)構(gòu)概化如圖3所示。
圖3 防洪體系拓?fù)浣Y(jié)構(gòu)示意圖Fig.3 Topological structure of flood control system
首先,建立水庫、河段、測站、河道斷面等4種對象類型,分別記為RV、RR、ST、RS;然后針對各類型的實體對象進行數(shù)字化建模,構(gòu)成對象庫。
針對4種對象分類定義輸入輸出及屬性參數(shù),構(gòu)成參數(shù)庫。其中水庫參數(shù)包括入庫流量、出庫流量、壩上水位、水位庫容曲線、泄流能力曲線、下游水位流量曲線、最高水位約束、最低水位約束、最大出庫約束、最小出庫約束、下游安全泄量、回水?dāng)嗝婕龋缓佣螀?shù)包括上邊界編碼、下邊界編碼、區(qū)間匯入站編碼集、河道斷面編碼集等;測站參數(shù)主要包括雨量、水位、流量、關(guān)聯(lián)斷面編碼、警戒水位、保證水位、警戒流量、保證流量、水位流量曲線等;河道斷面參數(shù)包括起點距-高程數(shù)組、下斷面間距、糙率、水位、流量、移民水位、土地征用水位等。
將河道洪水一維演進、水庫洪水調(diào)度、水庫回水模擬3個模型按統(tǒng)一接口梳理輸入輸出參數(shù),然后采用“輸入接口+算法+輸出接口”的格式進行通用化封裝,形成模型組件庫。
將各模型組件的輸入、輸出接口逐一與參數(shù)庫關(guān)聯(lián),可封裝為河道洪水一維演進、水庫洪水調(diào)度、水庫回水模擬共3個流程節(jié)點,分別記為FR、RD、BW,形成節(jié)點庫。
令對象庫中4種對象類型集合為OT,節(jié)點庫中3個節(jié)點集合為ND,則:
OT={RV,RR,ST,RS} ;
(5)
ND={FR,RD,BW} 。
(6)
將式(5)—式(6)代入式(1),得4×3的節(jié)點與對象類型耦合有效性集合C,即
(7)
式(7)中C(i,j)=1的耦合項繼續(xù)構(gòu)建節(jié)點NDi與對象OTj的接口參數(shù)適配關(guān)系集合A,用于確定對象庫中參與節(jié)點計算的實例對象編碼,以及參數(shù)庫中與節(jié)點計算相關(guān)聯(lián)的對象參數(shù)。
將式(6)代入式(3),得3×3的節(jié)點流向有效性集合為
(8)
式(8)中V(i,j)=1的節(jié)點繼續(xù)構(gòu)建NDi對應(yīng)NDj的參數(shù)關(guān)聯(lián)集合L,用于確定NDi的輸出參數(shù)與NDj的輸入?yún)?shù)之間的關(guān)聯(lián)方式。
至此,本例所有對象庫、節(jié)點庫和規(guī)則庫全部創(chuàng)建完成,根據(jù)計算任務(wù)分解需求,其搭建步驟為:
(1)啟動流程,從節(jié)點庫中選擇RD為流程起點,根據(jù)式(7)得有效耦合對象類型為RV,選擇龍頭水庫梨園。
(2)根據(jù)式(8)得RD的有效節(jié)點流向為FR和BW。創(chuàng)建二級節(jié)點FR,其有效耦合對象類型為RR,選擇梨園—阿海河段。
(3)按照上述方式,根據(jù)圖3的拓?fù)潢P(guān)系依次創(chuàng)建下級節(jié)點并耦合計算對象。其中三峽水庫調(diào)度完成后需同時開展回水計算和下游河道演算,因此包含BW和FR兩個子節(jié)點,分別耦合三峽水庫和三峽—宜昌河段。
(4)根據(jù)式(2)歸集上述各級流程節(jié)點的輸入信息。其中RD節(jié)點包括各水庫的入庫流量、壩上水位、水位庫容曲線、泄流能力曲線、最高水位約束、最低水位約束、最大出庫約束、最小出庫約束;RR節(jié)點包括各河段的上邊界流量、下邊界水位、區(qū)間匯入流量,以及河道斷面集合的水位、起點距-高程數(shù)組、斷面間距和糙率;BW節(jié)點包括各水庫的入庫流量、出庫流量、壩上水位、下游水位流量曲線,以及回水?dāng)嗝婕系乃?、起點距-高程數(shù)組、斷面間距和糙率。
(5)根據(jù)式(4)將各級節(jié)點的上級輸出參數(shù)與下級輸入?yún)?shù)進行關(guān)聯(lián),如梨園—阿海河段的下邊界流量可直接關(guān)聯(lián)阿海水庫的入庫流量、阿海水庫的出庫流量則直接關(guān)聯(lián)阿?!鸢矘蚝佣蔚纳线吔缌髁?,其余節(jié)點依此類推。對于無法關(guān)聯(lián)的參數(shù),直接從數(shù)據(jù)庫自動提取,若需用戶交互則開放至界面輸入。
(6)執(zhí)行流程任務(wù),各級節(jié)點按流程順序依次計算,并自動往下級節(jié)點流轉(zhuǎn)信息,計算完成后,輸出所有對象計算結(jié)果,流程結(jié)束。
根據(jù)本文提出的流域洪水調(diào)控計算組態(tài)耦合技術(shù)成果,開發(fā)配套軟件操作界面,可有效解決不確定性洪水差異化調(diào)控需求的快速響應(yīng)問題,支撐防汛決策支持系統(tǒng)的敏捷開發(fā)搭建。若任務(wù)需求發(fā)生變化,根據(jù)新的業(yè)務(wù)邏輯靈活調(diào)整流程節(jié)點和計算對象,即可完成動態(tài)適應(yīng)。目前,本文技術(shù)僅在流域洪水調(diào)控領(lǐng)域進行了應(yīng)用驗證,未來還可進一步凝練概化,增強通用性與普適性,拓展應(yīng)用于水資源配置、引調(diào)水工程水量調(diào)度、水生態(tài)調(diào)度、水環(huán)境水質(zhì)模擬、水污染擴散模擬、泥沙調(diào)度模擬、水電站群發(fā)電調(diào)度、電網(wǎng)水風(fēng)光互補調(diào)節(jié)等類似業(yè)務(wù),在水利、水電行業(yè)具有廣闊的應(yīng)用前景。