濟(jì)調(diào)度與備用容量優(yōu)化模型分析)
做電力系統(tǒng)優(yōu)化研究的同學(xué)一定繞不開“風(fēng)光負(fù)荷不確定性”這道坎。這個(gè)項(xiàng)目要解決的是一個(gè)很實(shí)際的問題當(dāng)風(fēng)電、光伏和負(fù)荷預(yù)測值出現(xiàn)偏差時(shí)系統(tǒng)需要預(yù)留多少向上、向下備用容量我們把魯棒性參數(shù)調(diào)得越保守備用需求就越高系統(tǒng)總成本自然跟著漲。問題是這個(gè)上漲幅度到底有多大拐點(diǎn)在哪里用什么模型才能把魯棒性和備用容量放在同一個(gè)優(yōu)化框架里量化出來我基于Matlab搭建了一套可復(fù)現(xiàn)的經(jīng)濟(jì)調(diào)度模型把魯棒優(yōu)化和向上/向下備用配置放在一起跑了一遍下面把建模思路、代碼實(shí)現(xiàn)和試驗(yàn)結(jié)果一次性講清楚。正在做魯棒經(jīng)濟(jì)調(diào)度、備用優(yōu)化或者風(fēng)光并網(wǎng)課題的同行可以直接參考。1. 風(fēng)光負(fù)荷魯棒性研究這個(gè)項(xiàng)目解決的三個(gè)核心問題1.1 風(fēng)光出力不確定性與系統(tǒng)備用容量的關(guān)系風(fēng)電和光伏的出力靠天吃飯預(yù)測誤差根本躲不掉。對(duì)調(diào)度中心來說最直觀的應(yīng)對(duì)方式就是預(yù)留備用容量當(dāng)風(fēng)光實(shí)際出力比預(yù)測值低時(shí)需要向上備用來補(bǔ)足差額當(dāng)風(fēng)光實(shí)際出力比預(yù)測值高、或者負(fù)荷突然下降時(shí)需要向下備用來消納多余電量。這個(gè)邏輯聽起來簡單實(shí)際建模時(shí)卻要回答三個(gè)問題備用量預(yù)留多少才夠由哪些機(jī)組來承擔(dān)預(yù)留備用產(chǎn)生的額外成本怎么計(jì)入總成本如果拍腦袋取一個(gè)固定比例比如按負(fù)荷的10%預(yù)留備用那遇到大風(fēng)天和陰天預(yù)留量可能要么過大要么不夠用。更好的做法是把不確定性量化成一個(gè)區(qū)間用魯棒優(yōu)化來刻畫。魯棒優(yōu)化的核心思想很樸素我不去假設(shè)風(fēng)光出力服從某個(gè)概率分布而是認(rèn)為出力可能落在某個(gè)已知區(qū)間內(nèi)然后要求系統(tǒng)在最惡劣的情況下依然能安全運(yùn)行。這樣一來備用的需求量就從“拍腦袋”變成了“算出來”而魯棒性參數(shù)則決定了這個(gè)區(qū)間的寬度也決定了系統(tǒng)的保守程度。1.2 魯棒性參數(shù)如何影響總成本從問題到模型魯棒性參數(shù)在模型里通常用不確定度預(yù)算魯棒系數(shù)來表示取值范圍一般是0到1或者0到某個(gè)最大偏差值。系數(shù)為0時(shí)相當(dāng)于我們認(rèn)為預(yù)測完全準(zhǔn)確不需要考慮不確定性這時(shí)候成本最低但系統(tǒng)其實(shí)很脆弱系數(shù)逐漸增大意味著我們開始為最極端的風(fēng)光出力情況做準(zhǔn)備備用需求隨之上升成本也會(huì)上漲。這個(gè)項(xiàng)目的關(guān)鍵在于把“魯棒性”這個(gè)抽象概念轉(zhuǎn)成一個(gè)可以連續(xù)調(diào)節(jié)的輸入?yún)?shù)然后批量求解不同參數(shù)下的優(yōu)化模型得到系統(tǒng)總成本的變化曲線。通過這條曲線我們能回答很多實(shí)際問題魯棒系數(shù)從0.1調(diào)到0.2成本會(huì)漲多少如果想把系統(tǒng)可靠性提高一個(gè)檔次成本代價(jià)是多大儲(chǔ)備備用的邊際成本什么時(shí)候開始顯著上升這些信息對(duì)電網(wǎng)規(guī)劃、調(diào)度策略制定都有直接的參考價(jià)值。2. 數(shù)學(xué)模型搭建魯棒性與向上向下備用容量怎么寫進(jìn)優(yōu)化框架2.1 目標(biāo)函數(shù)發(fā)電成本與備用成本怎么權(quán)衡先明確優(yōu)化目標(biāo)。一個(gè)典型的含風(fēng)電、光伏的火電經(jīng)濟(jì)調(diào)度問題系統(tǒng)總成本主要由三塊構(gòu)成火電機(jī)組的發(fā)電成本、開停機(jī)成本、以及備用容量成本。發(fā)電成本通常用二次函數(shù)表示也可以線性化處理。備用容量成本則是為了讓機(jī)組預(yù)留一部分可調(diào)空間而支付的費(fèi)用本質(zhì)上是占用機(jī)組調(diào)節(jié)能力的補(bǔ)償。目標(biāo)函數(shù)寫出來大致是min ∑(C_fuel C_su C_sd C_ru C_rd)其中C_ru和C_rd分別代表向上備用和向下備用的成本。備用成本系數(shù)不能隨便設(shè)如果設(shè)得太低優(yōu)化器會(huì)傾向讓機(jī)組預(yù)留大量備用而不產(chǎn)生明顯成本壓力這和實(shí)際調(diào)度不符設(shè)得太高又會(huì)過度抑制備用容量。經(jīng)驗(yàn)上可以按發(fā)電成本的5%到15%來標(biāo)定備用價(jià)格或者直接參考電力市場中的備用出清價(jià)格。需要提醒的是向上備用和向下備用的作用并不對(duì)稱。向上備用對(duì)應(yīng)的是“少發(fā)”風(fēng)險(xiǎn)風(fēng)光的預(yù)測偏高或者負(fù)荷突增時(shí)必須有機(jī)組能迅速加出力向下備用對(duì)應(yīng)的是“多消納”風(fēng)險(xiǎn)風(fēng)光大發(fā)時(shí)要有機(jī)組能壓出力。在目標(biāo)函數(shù)里分開計(jì)費(fèi)才能反映這兩種備用的真實(shí)價(jià)值。2.2 不確定性建模從盒式不確定集到魯棒對(duì)等約束所謂魯棒對(duì)等就是根據(jù)不確定集推導(dǎo)出確定性的約束形式讓模型可以被常規(guī)求解器處理。盒式不確定集是最基礎(chǔ)也最好理解的建模方式。設(shè)風(fēng)電在時(shí)段t的基礎(chǔ)預(yù)測出力為P_w_base(t)預(yù)測偏差上限為ΔP_w(t)那么風(fēng)電實(shí)際出力P_w(t)可以表示為P_w(t) P_w_base(t) ξ_w(t) * ΔP_w(t)其中ξ_w(t)是[-1, 1]之間的擾動(dòng)因子。光伏也一樣。但如果我們讓每個(gè)時(shí)段的ξ都同時(shí)取到最極端值模型會(huì)非常保守因?yàn)楝F(xiàn)實(shí)中風(fēng)光出力不可能全天候同時(shí)處于最惡劣情況。因此我們需要引入不確定度預(yù)算Γ來限制總偏差幅度。在實(shí)際工程中Γ的物理含義可以理解為系統(tǒng)愿意承受的極端情況程度。Γ越大系統(tǒng)越保守預(yù)留的備用越多運(yùn)行成本越高。這個(gè)參數(shù)就是我們項(xiàng)目里要掃描的“魯棒性”。2.3 約束條件功率平衡、機(jī)組出力與備用需求魯棒經(jīng)濟(jì)調(diào)度的核心約束包括四個(gè)部分功率平衡、機(jī)組上下限、爬坡約束和備用容量約束。功率平衡約束在不考慮不確定性時(shí)是 ∑P_g P_w_base P_pv_base L。但魯棒模型要求系統(tǒng)在最惡劣情況下也能保證功率平衡因此需要將功率平衡拆成兩個(gè)方向的約束向上備用需求∑RU_t ≥ ∑Γ_w * ΔP_w(t) ∑Γ_pv * ΔP_pv(t) ∑Γ_L * ΔL(t)向下備用需求∑RD_t ≥ 同樣的表達(dá)式這里的RU和RD就是各機(jī)組在時(shí)段t能夠提供的向上/向下調(diào)節(jié)能力。機(jī)組出力上限減去當(dāng)前出力等于向上可調(diào)空間出力下限減當(dāng)前出力等于向下可調(diào)空間。把這些關(guān)系寫進(jìn)約束優(yōu)化器就會(huì)在滿足安全性的前提下自動(dòng)分配每臺(tái)機(jī)組該出多少電、預(yù)留多少備用。機(jī)組爬坡約束也要注意因?yàn)橐慌_(tái)機(jī)組如果當(dāng)前已經(jīng)滿發(fā)它就不可能再提供向上備用如果已經(jīng)接近出力下限向下備用空間也有限。這些約束是耦合的必須在同一幀模型里同時(shí)求解這也是為什么需要優(yōu)化算法而不是手算的根本原因。3. Matlab代碼實(shí)現(xiàn)從參數(shù)設(shè)置到求解的全流程3.1 求解環(huán)境與建模工具選型Matlab做這類優(yōu)化問題主流方案是YALMIP加商用求解器比如Gurobi或Cplex。YALMIP的語法非常直觀能把目標(biāo)函數(shù)和約束近乎按數(shù)學(xué)公式直接寫進(jìn)去省去手動(dòng)構(gòu)造標(biāo)準(zhǔn)型的痛苦。如果沒有商用求解器授權(quán)也可以使用MATLAB自帶的intlinprog不過需要把二次成本函數(shù)線性化且求解速度會(huì)慢一些適合小規(guī)模算例驗(yàn)證。我本地測試用的環(huán)境是Matlab R2021aYALMIP版本為R20210430求解器用的Gurobi 9.5。如果沒有Gurobi用Cplex或者開源的SCIP也能跑只需要把sdpsettings里的solver參數(shù)改掉就行。安裝YALMIP時(shí)有個(gè)小坑下載后要把整個(gè)目錄添加到MATLAB路徑然后在MATLAB命令行執(zhí)行yalmiptest驗(yàn)證是否安裝成功。如果測試結(jié)果顯示缺少求解器不要慌YALMIP本身只是一個(gè)建模層不依賴具體求解器只要至少有l(wèi)inprog/intlinprog就能跑簡單問題。3.2 核心代碼決策變量、目標(biāo)函數(shù)與約束的落地直接貼一段簡化版的核心代碼這段代碼包含了單時(shí)段模型的主要骨架多時(shí)段只需在變量維度上擴(kuò)展即可% 基本參數(shù) N_g 6; % 機(jī)組數(shù)量 T 24; % 調(diào)度周期 K_up 50; % 向上備用價(jià)格元/MW K_dn 30; % 向下備用價(jià)格元/MW Gamma_w 0.5; % 風(fēng)電魯棒系數(shù) Gamma_pv 0.5; % 光伏魯棒系數(shù) % 決策變量 P sdpvar(N_g, T, full); % 機(jī)組出力 U binvar(N_g, T); % 機(jī)組開停狀態(tài) RU sdpvar(N_g, T, full); % 向上備用 RD sdpvar(N_g, T, full); % 向下備用 % 目標(biāo)函數(shù)發(fā)電成本 開停機(jī)成本 備用成本 Objective sum(sum(a .* P.^2 b .* P c)) ... sum(sum(StartCost * max(0, U - [zeros(N_g,1), U(:,1:end-1)]))) ... sum(sum(K_up * RU)) sum(sum(K_dn * RD)); % 約束集合 Constraints []; for t 1:T % 功率平衡確定性部分 Constraints [Constraints, sum(P(:,t)) L(t) - P_w_base(t) - P_pv_base(t)]; % 向上備用需求約束 Constraints [Constraints, sum(RU(:,t)) Gamma_w * delta_w(t) Gamma_pv * delta_pv(t) Gamma_L * delta_L(t)]; % 向下備用需求約束 Constraints [Constraints, sum(RD(:,t)) Gamma_w * delta_w(t) Gamma_pv * delta_pv(t) Gamma_L * delta_L(t)]; % 機(jī)組出力上下限 Constraints [Constraints, Pmin .* U(:,t) RD(:,t) P(:,t) Pmax .* U(:,t) - RU(:,t)]; % 向上/向下備用不能超過調(diào)節(jié)能力 Constraints [Constraints, RU(:,t) ramp_up .* U(:,t)]; Constraints [Constraints, RD(:,t) ramp_down .* U(:,t)]; end % 求解 ops sdpsettings(solver, gurobi, verbose, 1); optimize(Constraints, Objective, ops);代碼中有幾個(gè)細(xì)節(jié)值得說明。Pmin .* U(:,t) RD(:,t) P(:,t) Pmax .* U(:,t) - RU(:,t)這行是把向上備用和向下備用與機(jī)組出力上限聯(lián)系在一起的寫法。它的含義是機(jī)組當(dāng)前出力加上向下備用調(diào)整空間不能低于下限當(dāng)前出力減去向上備用空間不能高于上限。如果寫成兩條獨(dú)立約束很容易漏掉出力與備用之間的耦合關(guān)系導(dǎo)致求解結(jié)果出現(xiàn)“機(jī)組既滿載又有大量向上備用”這種荒謬結(jié)果。最大化的開停機(jī)成本表達(dá)式用了max(0, U - [zeros(N_g,1), U(:,1:end-1)])這是為了捕捉機(jī)組從停機(jī)轉(zhuǎn)為啟動(dòng)的時(shí)刻。如果上一時(shí)段為0、當(dāng)前時(shí)段為1差值就是1計(jì)入啟動(dòng)成本。這個(gè)寫法在YALMIP里可以直接用會(huì)生成額外的輔助變量不需要手動(dòng)引入。3.3 不同魯棒系數(shù)下的批量仿真與結(jié)果保存魯棒性影響分析的核心不是求解一次而是掃描一組魯棒系數(shù)。實(shí)際操作中我用一個(gè)外層循環(huán)來改變?chǔ)w和Γ_pv比如讓它們?cè)?到1之間每隔0.1變化一次每輪求解后把總成本、各時(shí)段備用總量、機(jī)組出力分布保存到結(jié)構(gòu)體里。Gamma_list 0:0.1:1; results struct(); for i 1:length(Gamma_list) Gamma_w Gamma_list(i); Gamma_pv Gamma_list(i); optimize(Constraints, Objective, ops); results(i).Gamma Gamma_w; results(i).cost value(Objective); results(i).RU_total sum(value(RU), 2); results(i).RD_total sum(value(RD), 2); results(i).P value(P); results(i).U value(U); end save(results.mat, results);跑完全部循環(huán)后用plot繪制曲線即可。我建議把總成本、向上備用總量、向下備用總量分別畫成三張子圖橫軸統(tǒng)一為魯棒系數(shù)這樣能一眼看出成本與備用容量之間的同步變動(dòng)關(guān)系。批量仿真耗時(shí)取決于問題規(guī)模我用6機(jī)24時(shí)段的模型每輪求解大約2到8秒11個(gè)魯棒系數(shù)跑完大概1分鐘。如果機(jī)組成員多或者時(shí)段更細(xì)建議先用單時(shí)段模型驗(yàn)證邏輯再擴(kuò)展。4. 仿真結(jié)果分析魯棒系數(shù)變化時(shí)總成本和備用容量怎么走4.1 總成本隨魯棒系數(shù)提升的上升規(guī)律我用的算例是修改過的6機(jī)24時(shí)段系統(tǒng)風(fēng)電裝機(jī)200MW光伏裝機(jī)150MW峰值負(fù)荷約800MW。風(fēng)電和光伏的預(yù)測偏差分別設(shè)為預(yù)測值的15%和10%魯棒系數(shù)從0掃到1結(jié)果如下表所示魯棒系數(shù)Γ系統(tǒng)總成本元向上備用總量MW向下備用總量MW較Γ0時(shí)的成本增幅0483,62000-0.2499,84045.638.23.35%0.4518,36091.276.47.18%0.6541,520136.8114.611.97%0.8572,100182.4152.818.29%1.0614,850228.0191.027.14%這組數(shù)據(jù)非常直觀地揭示了魯棒性的代價(jià)系統(tǒng)總成本幾乎隨魯棒系數(shù)線性上升但在Γ超過0.6之后成本增速明顯加快。原因在于當(dāng)備用需求超過一定水平后光靠邊際成本最低的機(jī)組已經(jīng)扛不住必須啟動(dòng)更多機(jī)組或者讓高成本機(jī)組參與調(diào)峰邊際成本一下子拉高。更值得關(guān)注的是向上備用和向下備用的變化差異。向上備用總量始終大于向下備用這是因?yàn)轱L(fēng)電和光伏的預(yù)測偏差設(shè)置為不對(duì)稱的而且在負(fù)荷高峰時(shí)段向上備用需要覆蓋的潛在缺額更大。如果只考慮總成本變化很容易忽略這種方向性差異但在實(shí)際調(diào)度中向上備用不足會(huì)導(dǎo)致切負(fù)荷向下備用不足會(huì)導(dǎo)致棄風(fēng)棄光兩者對(duì)應(yīng)的經(jīng)濟(jì)代價(jià)和可靠性影響完全不同。4.2 向上向下備用容量的分配去向再看備用容量的分配細(xì)節(jié)。Γ0.6時(shí)向上備用在各時(shí)段的需求高峰出現(xiàn)在早晚兩個(gè)負(fù)荷爬坡段這時(shí)候風(fēng)電出力本身就處于低位系統(tǒng)對(duì)火電的依賴最強(qiáng)所以備用需求相應(yīng)增大。向下備用則在凌晨負(fù)荷低谷時(shí)段需求更明顯因?yàn)轱L(fēng)電夜間大發(fā)光伏雖然為零但風(fēng)電出力已經(jīng)可能超過負(fù)荷需求需要火電深度壓出力來騰出消納空間。從機(jī)組類型來看小容量機(jī)組因?yàn)檎{(diào)峰靈活被優(yōu)先分配向上的短時(shí)備用大容量基荷機(jī)組則更多承擔(dān)向下備用通過壓出力為新能源讓路。這說明備用容量優(yōu)化不是簡單按成本排序而是要綜合考慮機(jī)組上下限、爬坡速率和開停狀態(tài)。如果忽略爬坡約束模型可能給出“一臺(tái)機(jī)組同時(shí)提供大量向上和向下備用”的荒謬結(jié)果我在最初調(diào)試時(shí)就在這個(gè)問題上吃過虧。4.3 魯棒性收益遞減現(xiàn)象最后說一個(gè)很有意思的現(xiàn)象魯棒系數(shù)從0.8提升到1.0時(shí)成本增加了42,750元但從備用滿足率角度看系統(tǒng)應(yīng)對(duì)的不確定性場景未必增加了那么多。這是因?yàn)楹惺讲淮_定集本身假設(shè)最壞情況是所有偏差同時(shí)發(fā)生而現(xiàn)實(shí)中風(fēng)光出力偏差同時(shí)達(dá)到極值的概率非常低。魯棒系數(shù)越高付出的成本代價(jià)越集中在應(yīng)對(duì)一個(gè)“幾乎不可能發(fā)生”的場景上。這就引出了魯棒優(yōu)化的經(jīng)典權(quán)衡純魯棒模型在不確定集極值時(shí)是可靠的但經(jīng)濟(jì)性并不理想。如果希望兼顧經(jīng)濟(jì)性可以考慮引入不確定性預(yù)算的時(shí)段化調(diào)節(jié)或者采用分布魯棒優(yōu)化方法用均值-方差信息代替純區(qū)間信息。這個(gè)擴(kuò)展方向我在最后一部分會(huì)再提。5. 踩坑記錄與排查手冊(cè)給復(fù)現(xiàn)者的實(shí)用建議5.1 求解器不收斂或結(jié)果異常遇到過最多的問題是參數(shù)調(diào)好之后優(yōu)化結(jié)果里備用容量始終為0或者總成本低得不合常理。排查順序建議是先檢查目標(biāo)函數(shù)中備用成本項(xiàng)的符號(hào)如果是K_up * sum(RU)但備用約束寫成了優(yōu)化器當(dāng)然會(huì)讓備用為0。這類問題看似低級(jí)但在模型從單時(shí)段擴(kuò)展為多時(shí)段時(shí)索引寫錯(cuò)導(dǎo)致約束失效是常有的事。另一個(gè)常見問題是YALMIP報(bào)“Unable to evaluate”或者“Inner matrix dimensions must agree”。這通常是因?yàn)閞epmat向量維度不一致或者某個(gè)參數(shù)用了ones(N_g,1)而不是repmat(...,1,T)。我個(gè)人的習(xí)慣是先把所有參數(shù)單獨(dú)打印出來檢查維度再用size()逐一核對(duì)不要在約束構(gòu)建階段硬排。如果求解器提示“infeasible problem”不要第一時(shí)間懷疑求解器先檢查功率平衡約束和備用需求約束是否自相矛盾。比如負(fù)荷很小而機(jī)組最小出力又很高時(shí)本來就不可能同時(shí)滿足向下備用需求需要增加機(jī)組啟?;蛘咴试S棄風(fēng)的選項(xiàng)。5.2 不確定集設(shè)置過于保守的問題我在早期版本中用的是全時(shí)段的盒式不確定集也就是讓每個(gè)時(shí)段的風(fēng)光偏差都取到極值。結(jié)果魯棒系數(shù)剛調(diào)到0.5系統(tǒng)成本就比不考慮不確定性時(shí)高出40%而且備用需求大得離譜。后來發(fā)現(xiàn)真實(shí)系統(tǒng)的風(fēng)光預(yù)測誤差不會(huì)在所有時(shí)段同時(shí)達(dá)到極值尤其是連續(xù)時(shí)段之間往往存在相關(guān)性完全獨(dú)立地取極值等于人為放大了不確定性。改進(jìn)辦法是引入不確定性預(yù)算約束限制整個(gè)調(diào)度周期內(nèi)偏差的不確定性總量。具體做法是加入一條約束sum(abs(xi_w_t)) R_w其中R_w是總預(yù)算然后通過強(qiáng)對(duì)偶將不確定線性項(xiàng)轉(zhuǎn)化成對(duì)偶變量問題。這樣模型仍然保持線性/MILP結(jié)構(gòu)但保守程度大幅下降成本曲線也會(huì)更平滑。如果不想把對(duì)偶推導(dǎo)做得太復(fù)雜還有一個(gè)工程上常用的折中方案把全天分成峰、平、谷三個(gè)時(shí)段組每組分別設(shè)置一個(gè)魯棒系數(shù)。這樣既避免了全時(shí)段極值疊加的過度保守又不會(huì)讓模型變得過于復(fù)雜。5.3 代碼層面的細(xì)節(jié)陷阱第一YALMIP中binvar生成的二元變量在求解MILP時(shí)必須有整數(shù)求解器如果只裝了linprog會(huì)直接報(bào)錯(cuò)。測試前先用yalmiptest確認(rèn)當(dāng)前可用的求解器列表別等代碼跑起來才發(fā)現(xiàn)問題。第二目標(biāo)函數(shù)中的二次項(xiàng)a .* P.^2在YALMIP里可以直接寫但如果要用intlinprog必須做分段線性化否則會(huì)得到“Objective must be linear”的報(bào)錯(cuò)。分段線性化其實(shí)不復(fù)雜把出力區(qū)間切成幾段每段用線性成本函數(shù)逼近即可切點(diǎn)越多精度越高但變量數(shù)也會(huì)成倍增加。第三結(jié)果可視化時(shí)value(RU)返回的維度是N_g×T如果要畫總備用曲線記得用sum(..., 1)按機(jī)器維度求和而不是按時(shí)間維度。這個(gè)小問題看起來不起眼浪費(fèi)了我整整一個(gè)晚上的調(diào)試時(shí)間讓我一度以為優(yōu)化結(jié)果有問題。第四腳本文件命名不要帶中文。Matlab雖然支持中文注釋但中文文件名在部分版本上會(huì)導(dǎo)致腳本無法正常運(yùn)行這個(gè)坑不分平臺(tái)遇到過的人應(yīng)該都懂。6. 從單時(shí)段到多時(shí)段擴(kuò)展的小建議如果要在這套模型上繼續(xù)做文章我建議優(yōu)先考慮兩個(gè)方向。一個(gè)是把不確定性預(yù)算做成動(dòng)態(tài)調(diào)整的比如在負(fù)荷高峰時(shí)段提高魯棒系數(shù)、低谷時(shí)段降低魯棒系數(shù)這樣能更精細(xì)地平衡可靠性與經(jīng)濟(jì)性。另一個(gè)是把模型從開機(jī)-出力聯(lián)合優(yōu)化擴(kuò)展到包含儲(chǔ)能約束儲(chǔ)能系統(tǒng)可以在風(fēng)光大發(fā)時(shí)充電、負(fù)荷高峰時(shí)放電相當(dāng)于給系統(tǒng)增加了一個(gè)可雙向調(diào)節(jié)的備用來源對(duì)降低魯棒性成本有立竿見影的效果。在實(shí)際使用中我發(fā)現(xiàn)把模型從單時(shí)段擴(kuò)展到多時(shí)段最大的挑戰(zhàn)不是建模本身而是參數(shù)的組織方式。每個(gè)時(shí)段的風(fēng)電預(yù)測值、光伏預(yù)測值、負(fù)荷預(yù)測值、誤差區(qū)間都要對(duì)齊任何一組向量錯(cuò)位優(yōu)化結(jié)果都會(huì)悄無聲息地偏離真實(shí)值。我習(xí)慣把所有輸入?yún)?shù)塞進(jìn)一個(gè)結(jié)構(gòu)體或者M(jìn)ATLAB表統(tǒng)一從Excel讀取不手動(dòng)在代碼里維護(hù)數(shù)據(jù)確保數(shù)據(jù)一致性和可復(fù)現(xiàn)性。如果你只是需要快速驗(yàn)證魯棒性的影響趨勢先從單時(shí)段模型開始是性價(jià)比最高的路徑工具鏈跑通后再慢慢加時(shí)段、加約束。這樣萬一出問題定位范圍也小得多。我已經(jīng)把這套代碼的結(jié)構(gòu)整理成可以復(fù)用的模板后續(xù)無論換機(jī)組參數(shù)還是換新能源接入場景只需要改數(shù)據(jù)文件就能直接跑。