唐海華,黃瓅瑤,馮快樂
(長(zhǎng)江勘測(cè)規(guī)劃設(shè)計(jì)研究有限責(zé)任公司,湖北 武漢 430010)
洪水調(diào)度是水庫(kù)防洪度汛工作的核心要?jiǎng)?wù)。目前,圍繞水庫(kù)防洪調(diào)度已開展了大量的理論、技術(shù)與方法研究[1-5],相關(guān)成果已廣泛應(yīng)用于我國(guó)各大流域、省市的防汛抗旱指揮系統(tǒng)[6]、智慧水利業(yè)務(wù)應(yīng)用系統(tǒng)[7],以及各級(jí)電網(wǎng)調(diào)度機(jī)構(gòu)、梯級(jí)集控中心、水庫(kù)電廠的水調(diào)自動(dòng)化系統(tǒng)[8-14],在流域防洪減災(zāi)領(lǐng)域發(fā)揮了重大作用。模型是支撐洪水調(diào)度決策的關(guān)鍵基礎(chǔ),主要以防汛管理機(jī)構(gòu)頒發(fā)的洪水調(diào)度方案為依據(jù),梳理出核心條款和執(zhí)行邏輯,以程序代碼開發(fā)實(shí)現(xiàn)后才能為洪水調(diào)度決策提供計(jì)算支撐。
由于不同水庫(kù)的工程規(guī)模、防洪任務(wù)、調(diào)度目標(biāo)和控制方式等各不相同,其洪水調(diào)度方案成果也各有差異;目前尚缺乏通用的洪水調(diào)度方案適配技術(shù),主要依賴開發(fā)人員定制開發(fā)才能將方案成果轉(zhuǎn)化為模型計(jì)算資源。若水庫(kù)的洪水調(diào)度方案發(fā)生改變,則必須由開發(fā)人員調(diào)整對(duì)應(yīng)的調(diào)度規(guī)程模型后再對(duì)軟件進(jìn)行更新升級(jí)。近年來,隨著人類活動(dòng)對(duì)流域產(chǎn)匯流及洪水演變規(guī)律的影響日益加劇,很多大中型水庫(kù)的防洪任務(wù)、要求、目標(biāo)頻頻改變,同一水庫(kù)不同年份的洪水調(diào)度方案通常存在差異,甚至很多原設(shè)計(jì)不承擔(dān)防洪任務(wù)的水庫(kù)也開始逐步納入防洪體系。因此,在防汛調(diào)度實(shí)際工作中,水庫(kù)洪水調(diào)度方案的修編調(diào)整及新增擴(kuò)展越來越頻繁?,F(xiàn)有的定制開發(fā)升級(jí)模式已遭遇了極大挑戰(zhàn),模型更新效率較低,升級(jí)維護(hù)困難。這在很大程度上削弱了水庫(kù)洪水調(diào)度方案在實(shí)時(shí)調(diào)度場(chǎng)景下的支撐作用,嚴(yán)重影響了水庫(kù)洪水調(diào)度的模擬計(jì)算時(shí)效性及決策響應(yīng)效率。
針對(duì)以上問題,本文以國(guó)內(nèi)50余座不同類型水庫(kù)的洪水調(diào)度方案為基礎(chǔ),深入分析不同洪水調(diào)度方案的內(nèi)在結(jié)構(gòu)、邏輯聯(lián)系及語義描述方式等共性規(guī)律,研究提出洪水調(diào)度方案的結(jié)構(gòu)化解析存儲(chǔ)方法,將不同水庫(kù)洪水調(diào)度方案的文字描述全部轉(zhuǎn)化為具有完整邏輯關(guān)聯(lián)的量化條款庫(kù),并設(shè)計(jì)通用的驅(qū)動(dòng)引擎,采用面向服務(wù)方式進(jìn)行模型化封裝后提供在線計(jì)算支持[15]。決策者只需梳理出洪水調(diào)度方案中的規(guī)程條款,通過界面錄入系統(tǒng)數(shù)據(jù)庫(kù),即可支撐洪水調(diào)度計(jì)算。
水庫(kù)洪水調(diào)度方案解析驅(qū)動(dòng)的總體思路為:首先,深入解析水庫(kù)洪水調(diào)度方案中的來水形勢(shì)、調(diào)度需求、調(diào)度目標(biāo)、調(diào)度對(duì)象、啟用條件、運(yùn)行方式等各類調(diào)度要素,挖掘出各類調(diào)度要素的特征值及不同調(diào)度要素之間的語義邏輯關(guān)系和內(nèi)在規(guī)律,創(chuàng)建一套通用的結(jié)構(gòu)化條款描述框架,將洪水調(diào)度方案的所有條款和特征值進(jìn)行量化、邏輯化和關(guān)聯(lián)化,形成一套可適配不同水庫(kù)洪水調(diào)度方案的通用性結(jié)構(gòu)化解析體系;其次,設(shè)計(jì)相應(yīng)的庫(kù)表結(jié)構(gòu)標(biāo)識(shí)符,對(duì)水庫(kù)洪水調(diào)度方案的結(jié)構(gòu)化條款進(jìn)行統(tǒng)一存儲(chǔ),并通過可視化界面實(shí)現(xiàn)所有水庫(kù)洪水調(diào)度方案結(jié)構(gòu)化解析成果的管理維護(hù);然后,建立一套驅(qū)動(dòng)引擎,根據(jù)水庫(kù)的蓄水狀態(tài)、入庫(kù)洪水智能適配出滿足當(dāng)前水庫(kù)狀態(tài)的調(diào)度條款并完成調(diào)度計(jì)算,并模擬多種調(diào)度場(chǎng)景調(diào)用驅(qū)動(dòng)引擎進(jìn)行模擬計(jì)算,校核驗(yàn)證調(diào)度條款解析成果的準(zhǔn)確性和閉環(huán)性;最后,將驅(qū)動(dòng)引擎封裝為通用計(jì)算服務(wù)集成到洪水調(diào)度系統(tǒng)軟件中,在實(shí)時(shí)調(diào)度場(chǎng)景下,設(shè)置水庫(kù)的起調(diào)水位和預(yù)報(bào)洪水過程后,就可快速完成調(diào)度計(jì)算。
采用“九項(xiàng)三類”增量式結(jié)構(gòu)化方法對(duì)水庫(kù)的洪水調(diào)度方案進(jìn)行條款化解析。九項(xiàng)指編碼、判別因子、判別方式、判別值、決策類型、決策因子、決策值、關(guān)聯(lián)條件、是否排序共9種調(diào)度要素。三類指判別依據(jù)、決策措施和組合條件共3種邏輯表達(dá)類別。其中,判別依據(jù)由判別因子、判別方式和判別值構(gòu)成;決策措施由決策類型、決策因子和決策值構(gòu)成;組合條件由關(guān)聯(lián)條件和是否排序構(gòu)成。
(1)編碼,按水庫(kù)洪水調(diào)度方案梳理形成的調(diào)度條款序號(hào),取自然數(shù),必須唯一;同時(shí)也作為調(diào)度條款在驅(qū)動(dòng)引擎中的執(zhí)行順序,編碼越小,優(yōu)先級(jí)越高。
(2)判別因子,主要包括TINQ、INQ、ZB、MONTH、MONTH-DAY、OUTQ、PREHOUR、PREINQ、MAXZ、MAXQI、FCOID、FCOZ、FCOQ等,分別代表時(shí)段號(hào)、入庫(kù)流量、時(shí)段初水庫(kù)水位、月份、日期、出庫(kù)流量、預(yù)泄小時(shí)數(shù)、預(yù)泄依據(jù)流量、最高水位、入庫(kù)洪峰、防洪對(duì)象編碼、防洪對(duì)象水位、防洪對(duì)象流量,可增量擴(kuò)展。
(3)判別方式,指各判別因子的邏輯表達(dá)方式,包括≥、>、≤、<、=。
(4)判別值,對(duì)應(yīng)判別因子和判別方式的特征值,包括數(shù)值、TMAXINQ(洪峰時(shí)段號(hào))等,可增量擴(kuò)展。
(5)決策類型,主要包括前提條件、輔助條件、數(shù)值計(jì)算、模式控制、邊界約束、防洪對(duì)象、特征統(tǒng)計(jì)等類別,可增量擴(kuò)展。其中,前提條件用于計(jì)算前判別,是判斷當(dāng)前條款是否有效的前提依據(jù);輔助條件用于計(jì)算時(shí)匹配,是適配當(dāng)前判別條件的輔助信息;數(shù)值計(jì)算用于按照給定的決策數(shù)值進(jìn)行計(jì)算;模式控制用于按照給定的決策方式進(jìn)行模擬控制;邊界約束用于計(jì)算后處理,要求計(jì)算完成后必須滿足該條件,如不滿足,則按給定邊界反算;防洪對(duì)象要求針對(duì)防洪對(duì)象的給定指標(biāo)進(jìn)行水庫(kù)決策控制;特征統(tǒng)計(jì)用于全局后處理,統(tǒng)計(jì)滿足給定條件的特征值。
(6)決策因子,主要包括ZE、OUTQ、RIGHT、FCOZ、FCOQ、MAXZ、MAXQO等。其中,ZE、RIGHT、MAXQO分別代表時(shí)段末水庫(kù)水位、調(diào)度權(quán)限和最大泄洪流量,其余同判別因子,可增量定義。
(7)決策值,主要包括出入庫(kù)平衡、敞泄、入庫(kù)洪水演進(jìn)、出庫(kù)洪水演進(jìn)、數(shù)值、字符串等,可增量擴(kuò)展。其中,出入庫(kù)平衡代表按來多少泄多少維持水庫(kù)水位不變,敞泄代表按最大泄流能力泄洪,入庫(kù)洪水演進(jìn)、出庫(kù)洪水演進(jìn)則分別代表按入庫(kù)流量、出庫(kù)流量往下游防洪控制對(duì)象進(jìn)行洪水演進(jìn)計(jì)算,這幾類與決策類型中的模式控制對(duì)應(yīng);數(shù)值與決策類型中的數(shù)值計(jì)算對(duì)應(yīng),代表按給定數(shù)值進(jìn)行計(jì)算;字符串與決策類型中的特征統(tǒng)計(jì)對(duì)應(yīng),代表按給定的字符串返回結(jié)果。
(8)關(guān)聯(lián)條件,指與當(dāng)前條款同時(shí)生效的配套組合條件,僅提取判別因子、判別方和判別值作為關(guān)聯(lián)依據(jù)。若有多個(gè),則所有關(guān)聯(lián)條款編碼按英文逗號(hào)分隔。
(9)是否排序,用于確定當(dāng)前條款是否需要按編碼順序執(zhí)行,為0-1(0表示不排序,1表示排序)型變量。
所有水庫(kù)的調(diào)度條款按表1結(jié)構(gòu)在數(shù)據(jù)庫(kù)中進(jìn)行統(tǒng)一存儲(chǔ)管理。針對(duì)該表開發(fā)配套的可視化管理工具,提供查詢、修改、新增、刪除、保存等功能,當(dāng)某水庫(kù)的洪水調(diào)度方案修編或新增后,決策者通過該界面即可實(shí)現(xiàn)對(duì)調(diào)度條款庫(kù)的配套調(diào)整。
表1 水庫(kù)洪水調(diào)度條款庫(kù)存儲(chǔ)結(jié)構(gòu)
洪水調(diào)度條款庫(kù)生成后,通過驅(qū)動(dòng)引擎支撐在線計(jì)算,將水庫(kù)洪水調(diào)度條款庫(kù)與調(diào)度運(yùn)行的時(shí)間序列及狀態(tài)數(shù)據(jù)進(jìn)行耦合,智能適配出不同水庫(kù)對(duì)象在不同運(yùn)行狀態(tài)下的對(duì)應(yīng)調(diào)度條款,為水庫(kù)的全過程調(diào)度運(yùn)行提供決策依據(jù),并完成模擬調(diào)度計(jì)算,主要流程如圖1所示。
圖1 驅(qū)動(dòng)引擎流程
(1)調(diào)度條款提取。根據(jù)水庫(kù)編碼從調(diào)度條款庫(kù)中提取當(dāng)前水庫(kù)的所有調(diào)度條款,按I×9的二維表格rule[I][9]進(jìn)行存儲(chǔ)。I為當(dāng)前水庫(kù)條款總數(shù),9為每個(gè)條款對(duì)應(yīng)的九項(xiàng)調(diào)度要素。若按水庫(kù)編碼獲取的調(diào)度條款庫(kù)為空,為保證引擎順利執(zhí)行,采用出入庫(kù)平衡方式作為缺省邏輯。
(2)決策分組與排序。將決策類型rule[I][4]為數(shù)值計(jì)算、模式控制、防洪對(duì)象、邊界約束和特征統(tǒng)計(jì)的所有條款提取出來,依次存儲(chǔ)為A、B、C、D、E等5類。數(shù)值計(jì)算A類,存放數(shù)值控制方式的所有條款;模式控制B類,存放按固定模式控制的所有條款;防洪對(duì)象C類,存放按照防洪對(duì)象給定條件控制調(diào)度決策的所有條款;邊界約束D類,存放需要按照給定約束條件進(jìn)行校核反算的所有條款;特征統(tǒng)計(jì)E類存放計(jì)算完成后需要統(tǒng)計(jì)分析的所有條款。同時(shí),上述各類決策條款根據(jù)rule[I][8]判斷是否存在執(zhí)行順序,對(duì)所有需要按順序執(zhí)行的條款按rule[I][0]的編碼從小到大排序。
(3)時(shí)序循環(huán)。根據(jù)水庫(kù)的起調(diào)水位和入庫(kù)洪水過程,逐時(shí)段循環(huán)執(zhí)行條件判斷、決策執(zhí)行和邊界約束。條件判斷用于確定與當(dāng)前水庫(kù)狀態(tài)匹配的唯一調(diào)度條款,判斷流程如圖2所示,針對(duì)面臨時(shí)段的水庫(kù)狀態(tài),遍歷所有調(diào)度條款,分別提取判別因子、判別條件和判別值與水庫(kù)的狀態(tài)數(shù)據(jù)進(jìn)行對(duì)比,若水庫(kù)狀態(tài)與判別條件完全匹配,則返回當(dāng)前條款,否則繼續(xù)循環(huán),若所有調(diào)度條款都無法匹配,則返回空條款;決策執(zhí)行以條件判斷的返回條款為依據(jù)執(zhí)行模擬調(diào)度計(jì)算,若返回空條款,則按出入庫(kù)平衡執(zhí)行;約束邊界以邊界約束條款為依據(jù),提取判別條件,按判別值控制判別因子進(jìn)行約束控制。
圖2 條件判斷流程
(4)特征統(tǒng)計(jì)。當(dāng)時(shí)序循環(huán)執(zhí)行完成后,按照特征統(tǒng)計(jì)E類逐條執(zhí)行特征統(tǒng)計(jì),完成后返回水庫(kù)各調(diào)度時(shí)段的入庫(kù)流量、出庫(kù)流量、庫(kù)水位等所有詳細(xì)過程結(jié)果及各類統(tǒng)計(jì)結(jié)果,驅(qū)動(dòng)引擎執(zhí)行結(jié)束。
水庫(kù)的洪水調(diào)度方案往往只對(duì)一般性情況下的洪水應(yīng)對(duì)方式進(jìn)行了規(guī)定,不一定完整;同時(shí),在結(jié)構(gòu)化邏輯解析過程中,也可能出現(xiàn)解析錯(cuò)誤或遺漏。因此,洪水調(diào)度條款庫(kù)必須進(jìn)行校核修正。結(jié)合水庫(kù)在洪水調(diào)度方案中規(guī)定的水庫(kù)水位及入庫(kù)洪水覆蓋范圍,可模擬大洪水、中洪水、小洪水及破壞條件4類調(diào)度場(chǎng)景,分別調(diào)用驅(qū)動(dòng)引擎進(jìn)行模擬計(jì)算,然后逐時(shí)段人工校驗(yàn)調(diào)度條款的驅(qū)動(dòng)結(jié)果與洪水調(diào)度方案文本中的運(yùn)行方式描述是否相符。大洪水、中洪水和小洪水調(diào)度場(chǎng)景主要用于驗(yàn)證調(diào)度條款解析成果的驅(qū)動(dòng)執(zhí)行是否正確,破壞條件調(diào)度場(chǎng)景主要用于驗(yàn)證調(diào)度條款解析成果的驅(qū)動(dòng)執(zhí)行是否閉環(huán),確保調(diào)度邏輯完善。若校核過程中發(fā)現(xiàn)問題,則針對(duì)性修正調(diào)度條款,確保調(diào)度條款庫(kù)合理有效。最后,采用http服務(wù)方式對(duì)驅(qū)動(dòng)引擎進(jìn)行模型化封裝即能為各類系統(tǒng)提供計(jì)算支持,包括計(jì)算服務(wù)、輸入體和輸出體三部分。其中,輸入體主要包括水庫(kù)的調(diào)度期、時(shí)段步長(zhǎng)、起調(diào)水位、入庫(kù)流量過程、庫(kù)容曲線、泄流能力曲線、調(diào)度條款庫(kù)等信息;輸出體主要包括水庫(kù)水位、入庫(kù)流量、出庫(kù)流量等詳細(xì)過程數(shù)據(jù)及各類特征統(tǒng)計(jì)結(jié)果;計(jì)算服務(wù)則通過URL地址按POST方式進(jìn)行調(diào)用,調(diào)用輸入體和執(zhí)行返回輸出體中的所有數(shù)據(jù)信息統(tǒng)一采用JSON格式進(jìn)行組織傳遞。
以河北灤河潘家口水庫(kù)為例,主汛期7月1日至8月15日,后汛期8月16日至9月30日,洪水調(diào)度方式主要為:主汛期,若預(yù)報(bào)入庫(kù)洪峰達(dá)14 000 m3/s,則在漲水段提前12 h按700、2 200、3 400 m3/s和6 000 m3/s 4個(gè)流量級(jí)預(yù)泄,然后再根據(jù)入庫(kù)洪水按6 000、14 000、28 000 m3/s 3個(gè)流量級(jí)控泄;后汛期同主汛期的三級(jí)流量控泄方式。按本文方法對(duì)該水庫(kù)的洪水調(diào)度方案進(jìn)行調(diào)度條款解析,經(jīng)校核修正,共確定出48條調(diào)度條款,其中漲水段部分見表2。
表2 漲水段調(diào)度條款庫(kù)
以第10條為例,其面臨時(shí)段的解析規(guī)則可描述為:在7月1日至8月15日期間,若預(yù)報(bào)入庫(kù)洪峰達(dá)到14 000 m3/s,處于漲水段,且12 h后的預(yù)報(bào)流量小于2 220 m3/s,則按12 h后的預(yù)報(bào)流量進(jìn)行預(yù)泄控制,且時(shí)段末水位應(yīng)介于216~218 m之間。
設(shè)調(diào)度開始時(shí)間為2020年7月14日8時(shí),時(shí)段步長(zhǎng)3 h,時(shí)段個(gè)數(shù)24(即調(diào)度期3 d),起調(diào)水位217.5 m,模擬一場(chǎng)入庫(kù)洪水過程,調(diào)用驅(qū)動(dòng)引擎進(jìn)行模擬調(diào)度計(jì)算,其入庫(kù)流量及計(jì)算結(jié)果過程詳見表3。
表3 計(jì)算結(jié)果
本例入庫(kù)洪水發(fā)生在主汛期,洪峰25 314 m3/s,在漲水段中,14日11時(shí)和14時(shí)滿足第10條規(guī)則,分別按12 h后對(duì)應(yīng)的預(yù)報(bào)流量進(jìn)行預(yù)泄;14日17時(shí)滿足第14條規(guī)則,按3 400 m3/s流量下泄;14日20時(shí)至15日5時(shí)滿足第16條規(guī)則,分別按6 000 m3/s流量下泄,其中14日20時(shí)因不滿足216 m最低水位約束,出庫(kù)流量調(diào)減至5 988 m3/s;15日8時(shí)至16日2時(shí)滿足第21條規(guī)則,分別按14 000 m3/s流量下泄,但部分時(shí)段受泄流能力限制,實(shí)際出庫(kù)流量小于控泄要求;16日5時(shí)和8時(shí)滿足第24條規(guī)則,原則上應(yīng)按28 000 m3/s流量下泄,實(shí)際受泄流能力限制,均按泄流能力下泄(退水段分析過程相同,略)。由此可見,按本文解析驅(qū)動(dòng)方法進(jìn)行入庫(kù)洪水模擬計(jì)算,其調(diào)度結(jié)果與洪水調(diào)度方案文字描述完全吻合。
本文提出的水庫(kù)洪水調(diào)度方案解析驅(qū)動(dòng)方法具有較強(qiáng)的通用性,不限定任何流域水庫(kù)對(duì)象、開發(fā)語言和架構(gòu)模式,可直接以模型服務(wù)為各類系統(tǒng)軟件和調(diào)度場(chǎng)景提供計(jì)算支持;同時(shí),還實(shí)現(xiàn)了水庫(kù)洪水調(diào)度方案關(guān)鍵要素的量化表達(dá),調(diào)度方案修編后直接修改調(diào)度條款庫(kù)即可生效,方便快捷。本文給出的判別因子、判別值、決策類型、決策因子、決策值等調(diào)度要素取值類型,全部來源于筆者對(duì)國(guó)內(nèi)50多座水庫(kù)洪水調(diào)度方案進(jìn)行驅(qū)動(dòng)解析的應(yīng)用實(shí)踐。實(shí)際應(yīng)用中,水庫(kù)洪水調(diào)度方案涉及各類的調(diào)度要素并不局限于本文給出的取值類型,需結(jié)合實(shí)際情況進(jìn)行增量式擴(kuò)展,并在驅(qū)動(dòng)引擎中對(duì)新增取值類型進(jìn)行同步擴(kuò)展,但并不改變解析方法和存儲(chǔ)結(jié)構(gòu)。因此,本文成果只有推廣應(yīng)用到更多的水庫(kù)工程,才能不斷增強(qiáng)驅(qū)動(dòng)引擎的通用化適配能力。此外,本文方法僅考慮了單一水庫(kù)的洪水調(diào)度,對(duì)于發(fā)電、生態(tài)、灌溉、供水等其他調(diào)度目標(biāo)以及水庫(kù)群聯(lián)合防洪調(diào)度方式等尚未考慮,其適應(yīng)性還有待進(jìn)一步開展研究和分析驗(yàn)證。