本發明屬于電力系統自動電壓控制,具體涉及一種基于protobuf構建的云邊架構的avc控制方法,主要適用于主網(國、網、省、地)自動電壓控制。
背景技術:
1、自動電壓控制(以下簡稱avc,automatic?voltage?control)系統是實現電網安全(提高電壓穩定裕度)、經濟(降低網絡損耗)、優質(提高電壓合格率)運行的重要手段。avc系統架構在電網能量管理系統(ems)之上,能夠利用電網實時運行數據,從電網全局優化的角度科學決策出最佳的無功電壓調整方案,自動下發給電廠、變電站以及下級電網調度機構執行。avc系統以電壓安全和優質為約束,以系統運行經濟性為目標,連續閉環地進行電壓的實時優化控制,實現了無功電壓協調控制方案的在線生成、實時下發、閉環自動控制等一整套分析、決策、控制,以及再分析,再決策、再控制的無功電壓實時追蹤控制問題,能夠有效地克服傳統的電網無功電壓控制手段存在的不足,提高電網安全穩定經濟運行的水平。
2、目前主網省級、地級等各級電網調度中心部署一套avc系統,用于各級自動電壓控制,通過上下級協調控制完成區域內的無功平衡。目前的主網基本采用三級控制模式基于平臺電網模型進行計算,各個調度中心各自進行計算,涉及到電網邊界處需要進行相關的協調控制,如進行上下級控制協調、同級邊緣站廠間協調,則是生成一些約束條件,并通過前置發給其它調度中心的自動電壓控制系統,其它調度中心的自動電壓控制系統接收到后進行全局優化計算后再應用到具體控制中,此過程中的協調數據需要通過前置數據轉發完成,該過程就需要定義大量的遙測遙信,增加運維人員的工作。
3、孫宏斌、張伯明、郭慶來在《基于軟分區的全局電壓優化控制系統設計》(電力系統自動化,2003年,第27卷第8期,16-20頁)中說明了大電網自動電壓控制的體系結構。該方法采用基于“軟分區”的三級自動電壓控制架構,實現大電網的自動電壓控制。其中:
4、三級控制為全局無功優化計算,充分考慮各種可調節的無功手段,通過最優潮流計算給出全網協調的母線電壓優化控制目標;二級控制為分區解耦的控制策略計算:將電網自動劃分為解耦的各個區域,每個區域內選擇若干中樞母線,對每個分區分別計算分區內各種無功資源的控制策略,以追隨三級控制給出的區內的中樞母線優化目標;一級控制為廠站端的就地控制,執行avc主站給出的電壓或無功控制指令。
5、在控制中,avc系統采用協調二級電壓控制方法(csvc)實現對某個包含發電廠的區域電網的電壓控制,二級控制為分區解耦的控制策略計算,其將電網自動劃分為解耦的各個分區,每個分區內選擇若干中樞母線,對每個分區分別計算分區內包括電廠在內的各種無功資源的控制策略,以追隨該分區中樞母線的優化目標。
技術實現思路
1、本發明的目的是為克服已有技術的不足之處,提出一種基于protobuf構建的云邊架構的avc控制方法。本發明基于云邊架構部署模式,云邊兩端間采用protobuf數據序列化協議進行數據交互,有助于在邊端兼容更多的自動電壓控制系統,減少系統間的協調、減少工作人員的維護量,使自動電壓控制系統更穩定。
2、本發明實施例提出一種基于protobuf構建的云邊架構的avc控制方法,包括:
3、構建采用云邊架構的自動電壓控制系統;
4、基于所述云邊架構,在邊端自動電壓控制的啟動周期到來時,邊端基于當前電力系統模型,使用protobuf統一通信協議規則定義的結構化對象組裝數據并發送至云端,向云端提出計算請求;
5、云端接收到邊端的請求后,基于邊端發送的數據,進行全局無功優化計算并將計算結果返回至邊端;
6、邊端基于所述計算結果形成母線三級優化目標并進行自動電壓控制的優化計算;
7、邊端將所述優化計算的結果下發到終端發電廠的各自動電壓控制電廠子站進行執行。
8、在本發明的一個具體實施例中,所述云邊架構包含一個云端、若干邊端與若干終端;其中,所述云端連接每個邊端,每個邊端對應一個調度控制中心自動電壓控制系統,每個邊端控制其連接的一個或多個終端;
9、所述云端用于基于國網調度云模型中心的大模型進行全局無功優化的計算,該計算考慮邊端請求設置的約束條件,計算完成后返回邊端所控制終端設備的優化目標;
10、所述邊端用于進行負責本次調度關鍵參數信息維護的自動電壓控制,從終端獲取當前各設備的投入狀態,并根據投入狀態下發電壓控制目標到終端,通過請求云端設置約束條件的計算并返回全局無功優化控制計算的結果,所述邊端還用于本地的二次規劃自動電壓控制中,形成母線的控制目標下發給終端;
11、所述終端用于通過接收邊端的電壓控制目標,進行機組調整。
12、在本發明的一個具體實施例中,所述邊端基于當前電力系統模型,使用protobuf統一通信協議規則定義的結構化對象組裝數據并發送至云端,包括:
13、(1)在電力系統模型中,獲取所有母線組成的集合記為bs={bsk,k=1,…,n1},n1為當前模型包含的所有母線數量,將bs存入protobuf定義的內存結構對象母線約束rolfbarconstr中;rolfbarconstr具體包括:母線關鍵字id_bar、母線是否約束qopt_bar、母線電壓上限vmax_bar、母線電壓下限vmin_bar;
14、(2)在電力系統模型中,獲取所有的機組組成的集合記為gen={genk,k=1,…,n2},n2為當前模型包含的所有機組數量,將gen存入protobuf定義的內存結構對象機組約束rolfgenconstr中;rolfgenconstr具體包括:機組關鍵字id_gen、機組是否參與優化qopt_gen、機組類型gtype_gen、機組有功上限pmax_gen、機組有功下限pmin_gen、機組無功上限qmax_gen、機組無功下限qmin_gen;
15、(3)在電力系統模型中,獲取所有的容抗器組成的集合記為cp={cpk,k=1,…,n3},n3為當前模型包含的所有容抗器數量,將cp存入protobuf定義的內存結構對象容抗約束rolfcompconstr中;rolfcompconstr具體包括:容抗器序號id_cp、容抗器是否參與優化qopt_cp、容抗器當日動作次數cnum_cp;
16、(4)在電力系統模型中,獲取所有的主變組成的集合記為trfm={trfmk,k=1,…,n4},n4為當前模型包含的所有主變數量,將trfm存入protobuf定義的內存結構對象主變約束rolftransconstr中;rolftransconstr具體包括:主變關鍵字id_trfm、主變是否參與優化qopt_trfm、主變最高檔位htap_trfm、主變最低檔位ltap_trfm;
17、(5)在電力系統模型中,獲取所有的繞組組成的集合記為xf={xfk,k=1,…,n5},n5為當前模型包含的所有繞組數量,將xf存入protobuf定義的內存結構對象繞組約束rolfxfconstr中;rolfxfconstr具體包括:繞組關鍵字id_xf、繞組可調無功上限max_q_xf、繞組可調無功下限min_q_xf、繞組是否為關口設備bgate_xf、繞組是否參與優化qopt_xf;
18、(6)在電力系統模型中,獲取所有的線路組成的集合記為ln={lnk,k=1,…,n6},n6為當前模型包含的所有線路數量,將ln存入protobuf定義的內存結構對象線路約束rolflnconstr中;rolflnconstr具體包括:線路關鍵字id_ln、線路功率因數上限max_cos_ln、線路功率因數下限min_cos_ln、線路是否為關口設備bgate_ln、線路是否參與優化qopt_ln;
19、(7)在電力系統模型中,獲取當前的計算參數,記為para,將para存入protobuf定義的內存結構對象參數rolfpara中;rolfpara具體包括:計算參數關鍵字id_para、優化步長nstep_para、發電機是否參與優化m_bun_para、電容器是否參與優化m_bcp_para、分接頭是否參與優化m_btap_para、是否松弛母線電壓約束m_bvslack_para、是否松弛線路潮流約束m_blnslack_para、是否松弛繞組潮流約束m_bxfslack_para、是否松弛變壓器變比約束m_btslack_para、是否松弛發電機無功約束m_bqslack_para、是否松弛發電機有功約束m_bpslack_para、控制目標m_nctrlobj_para;
20、(8)把內存結構中的母線約束rolfbarconstr、機組約束rolfgenconstr、容抗約束rolfcompconstr、主變約束rolftransconstr、繞組約束rolfxfconstr、線路約束rolflnconstr、參數rolfpara寫入到內存結構設備約束rolfdevconstr中;
21、(9)把內存結構設備約束rolfdevconstr寫入內存結構rolfcalrequest中,并設置模型方式model_type、請求計算時間cal_time;
22、(10)對組裝好的protobuf定義的內存結構rolfcalrequest,進行序列化后形成字節序列數據包并發送給云端。
23、在本發明的一個具體實施例中,所述云端接收到邊端的請求后,基于邊端發送的數據,進行全局無功優化計算包括:
24、(1)云端對接收到的邊端的字節序列數據包進行protobuf反序列化形成輸入內存結構rolfcalrequest,依次讀取設備約束rolfdevconstr內的母線約束rolfbarconstr、機組約束rolfgenconstr、容抗器約束rolfcompconstr、主變約束rolftransconstr、繞組約束rolfxfconstr、線路約束rolflnconstr、參數rolfpara,形成約束lmt,基于國網調度云大模型及解析出的約束lmt,進行全局無功優化計算,計算完成后的數據存入數據緩沖區thnetdata中;
25、(2)根據步驟(1)的計算結果,形成返回數據結果protobuf對象rolfcalresponse;具體步驟如下:
26、(2-1)在數據緩沖區thnetdata中,獲取所有的母線組成的集合記為bs_o={bs_ok,k=1,…,m1},m1為當前數據緩沖區中包含的所有母線數量,將bs_o存入protobuf定義的內存結構對象母線信息rolfbarinfo中;rolfbarinfo具體包括:母線關鍵字id_bar、母線名稱name_bar、母線電壓量測vmeas_bar、母線優化前值vfop_bar、母線優化后值vop_bar、母線優化前越限標識ovrp_bar、母線優化后越限標識ovrop_bar、母線電壓上限vmax_bar、母線電壓下限vmin_bar;
27、(2-2)在數據緩沖區thnetdata中,獲取所有的機組組成的集合記為un_o={un_ok,k=1,…,m2},m2為當前數據緩沖區中包含的所有機組數量,將un_o存入protobuf定義的內存結構對象機組信息rolfunitinfo中;rolfunitinfo具體包括:機組關鍵字id_un、機組名稱name_un、機組有功p_un、機組無功q_un、機組優化前有功plf_un、機組優化前無功qlf_un、機組優化后有功pop_un、機組優化后無功qop_un、機組優化前越限ovrq_un、機組優化后越限ovroq_un;
28、(2-3)在數據緩沖區thnetdata中,獲取所有容抗器組成的集合記為cp_o={cp_ok,k=1,…,m3},m3為當前數據緩沖區中包含的所有容抗數量,將cp_o存入protobuf定義的內存結構對象容抗信息rolfcompinfo中;rolfcompinfo具體包括:容抗器關鍵字id_cp、容抗器名稱name_cp、容抗器容量qnom_cp、容抗器額定電壓kvnom_cp、容抗器開關狀態stopflag_cp、容抗器控制類型ctrltype_cp;
29、(2-4)在數據緩沖區thnetdata中,獲取所有的主變組成的集合記為trfm_o={trfm_ok,k=1,…,m4},m4為當前數據緩沖區中包含的所有主變數量,將trfm_o存入protobuf定義的內存結構對象主變信息rolftrwdinfo中;rolftrwdinfo具體包括:主變關鍵字id_trfm、主變名稱name_trfm、主變變比t_trfm、主變步長tstap_trfm、主變檔位tap_trfm、主變優化檔位otap_trfm;
30、(2-5)在數據緩沖區thnetdata中,獲取所有的線路組成的集合記為ln_o={ln_ok,k=1,…,m5},m5為當前數據緩沖區中包含的所有線路的數量,將ln_o存入protobuf定義的內存結構對象線路信息rolflninfo中;rolflninfo具體包括:線路關鍵字id_ln、線路名稱name_ln、線路首端實時有功p_ln、線路首端實時無功q_ln、線路首端優化有功opfp_ln、線路首端優化無功opfq_ln、線路末端實時有功p2_ln、線路末端實時無功q2_ln、線路末端優化有功opfp2_ln、線路末端優化無功opfq2_ln、線路無功減少qdec_ln、線路降損量lossdec_ln;
31、(2-6)在數據緩沖區thnetdata中,獲取所有的繞組組成的集合記為xf_o={xf_ok,k=1,…,m6},m6為當前數據緩沖區中包含的所有繞組數量,將xf_o存入protobuf定義的內存結構對象繞組信息rolfxfinfo中;rolfxfinfo具體包括:繞組關鍵字id_xf、繞組名稱name_xf、繞組首端實時有功p_xf、繞組首端實時無功q_xf、繞組實時檔位tap_xf、繞組首端優化有功opfp_xf、繞組首端優化無功opfq_xf、繞組優化檔位opftap_xf、繞組無功變化量adjq_xf、繞組無功減少qdec_xf、繞組降損量lossdec_xf、繞組末端實時有功p2_xf、繞組末端實時無功q2_xf、繞組末端優化有功opfp2_xf、繞組末端優化無功opfq2_xf;
32、(2-7)在數據緩沖區thnetdata中,獲取計算結果數據,記為rst_o,將rst_o存入protobuf定義的內存結構對象全局計算結果rolfsysinfo中;rolfsysinfo具體包括:全局計算關鍵字id_rst、系統負荷fpload、優化前有功損耗fploss0、優化后有功損耗fplossopf、網損減少fp、降損百分比value_opf、優化前網損率value、優化后網損率fwsl、起始計算時間stm、結束計算時間etm、計算狀態nstat、計算信息sztmp、計算節點szlocalhost、計算電氣島數nlvisl、500優化后網損率wsl500、220優化后網損率wsl220、110優化后網損率wsl110、500優化后網損ws500、220優化后網損ws220、110優化后網損ws110、750優化后網損率wsl750、750優化后網損ws750、330優化后網損率wsl330、330優化后網損ws330;
33、(2-8)在數據緩沖區thnetdata中,獲取所有的區域信息,記為dv_o={dv_ok,k=1,…,m7},m7為當前數據緩沖區中包含的所有區域數量,將dv_o存入protobuf定義的內存結構對象區域統計rolfdvinfo中;rolfdvinfo具體包括:區域關鍵字id_dv、區域名稱name_dv、區域負荷pload_dv、區域優化前有功損耗ploss0_dv、區域優化后有功損耗plossopf_dv、區域網損減少ploss_dv、區域降損百分比dlossopf_dv、區域優化前網損率dloss_dv、區域優化后網損率wsl_dv;
34、(2-9)依次將rolfbarinfo、rolfunitinfo、rolfcompinfo、rolftrwdinfo、rolflninfo、rolfxfinfo、rolfsysinfo、rolfdvinfo寫入到計算信息對象rolfcalinfo中;將計算信息對象rolfcalinfo寫入到輸出對象rolfcalresponse中,設置輸出對象rolfcalresponse的計算時間time_rps、計算狀態cal_stat_rps;對組裝好的protobuf定義的內存結構對象rolfcalresponse,進行序列化后形成字節序列數據包。
35、在本發明的一個具體實施例中,所述邊端基于所述計算結果形成母線三級優化目標并進行自動電壓控制的優化計算,包括:
36、(1)邊端對云端返回的字節序列數據進行反序列化形成數據計算結果結構對象rolfcalresponse,之后對rolfcalresponse中rolfbarinfo的優化后值vop_bar進行遍歷,形成母線三級優化目標
37、(2)根據步驟(1)獲取的優化目標采用二次規劃模型計算電廠控制指令,具體包括:
38、首先建立自動電壓控制優化模型,該優化模型的目標函數的表達式如下:
39、
40、其中,vp表示電力系統區域中樞母線的當前電壓,表示電力系統區域中樞母線設定電壓,cg為中樞母線無功電壓靈敏度矩陣,δqg表示發電機無功出力的調節量,wp和wq為發電機組的權重系數,α為增益系數,θg為無功裕度向量,θg的第i個分量為:
41、
42、其中,為發電機i的當前無功出力,為發電機i的無功出力的調節量,為發電機i的無功最大值,為發電機i的無功最小值,i為發電機的序號,||θg||2為無功裕度向量集;
43、確定自動電壓控制優化模型的約束條件,表達式如下:
44、
45、其中,c0、c1、c2、c3分別為限值約束方程;cvg為高壓側母線無功電壓靈敏度矩陣;vh表示發電機高壓側母線的當前電壓;和分別表示中樞母線電壓下限和中樞母線電壓上限;和分別表示發電機無功下限和無功上限;qg為發電機的當前無功出力;和分別表示發電機高壓側母線的電壓下限、電壓上限和允許的單步電壓最大調整量;
46、求解該優化模型,得到發電機無功出力的調節量δqg。
47、本發明的特點及有益效果在于:
48、本發明基于三級控制模式,在云端部署基于國網調度云模型中心的大模型的全局無功優化功能,統一計算全部電網的三級優化目標,邊端部署各調度自動電壓控制功能,各邊端的調度自動電壓控制通過對云端的全局無功優化功能進行請求計算,完成后的結果進行區域控制計算校驗后,形成控制命令后交由終端電廠進行執行。其中,云邊兩端間采用protobuf數據序列化協議進行數據交互,相較于目前的自動電壓控制模式下,省去上下級協調及相鄰區域協調的工作,同時使用protobuf協議使云端具有很好的兼容及可插拔性,通過此協議可以在邊端兼容更多的自動電壓控制系統。通過實現該控制方法可以減少系統間的協調、減少工作人員的維護量,使自動電壓控制系統更穩定。