给书配代码-电力经济调度(4):有功与辅助服务联合经济调度
電氣博文傳送門(mén)
學(xué)好電氣全靠它,個(gè)人電氣博文目錄(持續(xù)更新中…)
知識(shí)點(diǎn)
電力市場(chǎng)環(huán)境中,輔助服務(wù)包括備用、無(wú)功和黑啟動(dòng)等,其中,無(wú)功和黑啟動(dòng)一般都通過(guò)與發(fā)電公司簽訂中長(zhǎng)期合同提供,備用服務(wù)則可通過(guò)競(jìng)價(jià)或長(zhǎng)期合同兩種方式提供,當(dāng)采用競(jìng)價(jià)方式時(shí),由于備用市場(chǎng)與日前有功市場(chǎng)有很強(qiáng)的關(guān)聯(lián)性,在市場(chǎng)交易決策上必須協(xié)調(diào)它們的相互關(guān)系,通常將交易決策方法分為優(yōu)先級(jí)排序決策法、順序交易決策法、聯(lián)合交易決策法和混合交易決策法等幾種。
(1)優(yōu)先級(jí)排序決策法。該法是將有功、AGC、旋轉(zhuǎn)備用、非旋轉(zhuǎn)備用、替代備用五種電力商品視為獨(dú)立競(jìng)爭(zhēng)的分離市場(chǎng),通過(guò)優(yōu)先級(jí)排序即可得到滿足各自市場(chǎng)需求的成交結(jié)果。它的優(yōu)點(diǎn)是簡(jiǎn)單,便于理解,算法易于實(shí)現(xiàn);缺點(diǎn)是沒(méi)有考慮到各類(lèi)電力商品間的耦合性,調(diào)度方案可能不可行,比如機(jī)組同時(shí)提供有功與備用時(shí),總和可能超過(guò)機(jī)組容量限制。因而此種方法在實(shí)用上難以推行。
(2)順序交易決策法。該法根據(jù)各類(lèi)市場(chǎng)重要程度的不同,按一定先后次序?qū)Ω鱾€(gè)市場(chǎng)進(jìn)行單獨(dú)交易決策。每個(gè)市場(chǎng)交易決策都以該市場(chǎng)購(gòu)買(mǎi)費(fèi)用最低為目標(biāo)。它的優(yōu)點(diǎn)是各市場(chǎng)間基本不存在耦合問(wèn)題,每個(gè)決策過(guò)程都可以保證該市場(chǎng)內(nèi)部的公平與透明;缺點(diǎn)是只保證了局部市場(chǎng)購(gòu)買(mǎi)費(fèi)用最低,而所有市場(chǎng)的購(gòu)買(mǎi)費(fèi)用之和不–定最低。此外,該決策法中,市場(chǎng)的交易順序很重要,優(yōu)先進(jìn)行決策的市場(chǎng),往往會(huì)剝奪一些市場(chǎng)成員在下一個(gè)市場(chǎng)中競(jìng)爭(zhēng)的權(quán)利。因而,順序的排列涉及市場(chǎng)整體公平性。
(3)聯(lián)合交易決策法。該法是將各類(lèi)市場(chǎng)的決策過(guò)程統(tǒng)-進(jìn)行, 以各市場(chǎng)的綜合購(gòu)買(mǎi)費(fèi)用最低為目標(biāo)。但缺點(diǎn)是各類(lèi)市場(chǎng)的決策過(guò)程相互影響,決策算法比較復(fù)雜,交易結(jié)果不便于分析和判斷,會(huì)造成市場(chǎng)的清晰度和透明度都比較差,容易受到市場(chǎng)成員質(zhì)疑,也不便于監(jiān)管。
(4)混合交易決策法。該法是將順序交易決策法與聯(lián)合交易決策法混合在一起,每順序增加一個(gè)市場(chǎng),則計(jì)算該市場(chǎng)的清算價(jià)格,從而保證了該市場(chǎng)的公平性,而且最-一次的統(tǒng)一決策過(guò)程,又保證了最終交易結(jié)果的全局最優(yōu)。因而,這種交易決策法盡管還存在著計(jì)算復(fù)雜等問(wèn)題,但由于較好兼顧了公平性與經(jīng)濟(jì)性,從而得到一定認(rèn)同。值得注意的是,隨著市場(chǎng)化進(jìn)程加快,各類(lèi)輔助服務(wù)最終將從日前市場(chǎng)中分離出來(lái),建立獨(dú)立競(jìng)價(jià)的發(fā)電輔助市場(chǎng),與日前市場(chǎng)并行。
本節(jié)分別從參與市場(chǎng)交易的電網(wǎng)公司和發(fā)電公司的不同角度,研究聯(lián)合交易決策方法下備用服務(wù)的調(diào)度問(wèn)題。
算例1
from scipy import optimize as op import numpy as np#目標(biāo)函數(shù) cp1=float(input('請(qǐng)輸入第一臺(tái)機(jī)組有功報(bào)價(jià):')) cp2=float(input('請(qǐng)輸入第二臺(tái)機(jī)組有功報(bào)價(jià):')) cp3=float(input('請(qǐng)輸入第三臺(tái)機(jī)組有功報(bào)價(jià):')) cp4=float(input('請(qǐng)輸入第四臺(tái)機(jī)組有功報(bào)價(jià):')) print('--------------') PD=float(input('請(qǐng)輸入負(fù)荷:')) beiyong=float(input('請(qǐng)輸入系統(tǒng)需要備用:')) print('--------------')maxPG1=float(input('請(qǐng)輸入第一臺(tái)機(jī)組出力上限:')) maxPG2=float(input('請(qǐng)輸入第二臺(tái)機(jī)組出力上限:')) maxPG3=float(input('請(qǐng)輸入第三臺(tái)機(jī)組出力上限:')) maxPG4=float(input('請(qǐng)輸入第四臺(tái)機(jī)組出力上限:')) print('--------------') maxRG1=float(input('請(qǐng)輸入第一臺(tái)機(jī)組預(yù)留備用上限:')) maxRG2=float(input('請(qǐng)輸入第二臺(tái)機(jī)組預(yù)留備用上限:')) maxRG3=float(input('請(qǐng)輸入第三臺(tái)機(jī)組預(yù)留備用上限:')) maxRG4=float(input('請(qǐng)輸入第四臺(tái)機(jī)組預(yù)留備用上限:'))#目標(biāo)函數(shù) c=[cp1,cp2,cp3,cp4,0,0,0,0]#等式約束 #1PG1+1PG2+1PG3+1PG4=PD A_eq=np.array([[1,1,1,1,0,0,0,0]]) B_eq=np.array([PD])#不等式約束 #RG1+RG2+RG3+RG4>=beiyong #PG1+RG1<=maxPG1 PG2+RG2<=maxPG2 PG3+RG3<=maxPG3 PG4+RG4<=maxPG4A_ub=np.array([[0,0,0,0,-1,-1,-1,-1],[1,0,0,0,1,0,0,0],[0,1,0,0,0,1,0,0],[0,0,1,0,0,0,1,0],[0,0,0,1,0,0,0,1]]) B_ub=np.array([-beiyong,maxPG1,maxPG2,maxPG3,maxPG4])#上下限 PG1=(0,maxPG1) PG2=(0,maxPG2) PG3=(0,maxPG3) PG4=(0,maxPG4) RG1=(0,maxRG1) RG2=(0,maxRG2) RG3=(0,maxRG3) RG4=(0,maxRG4)if __name__ == "__main__":res = op.linprog(c, A_ub, B_ub, A_eq, B_eq, bounds=(PG1,PG2,PG3,PG4,RG1,RG2,RG3,RG4))x=res.xprint('-------------求解結(jié)果-------')print(res.fun)print('PG1',x[0])print('PG2', x[1])print('PG3', x[2])print('PG3', x[3])print('RG1', x[4])print('RG2', x[5])print('RG3', x[6])print('RG4', x[7])算例1
from scipy import optimize as op import numpy as np#目標(biāo)函數(shù) cp1=float(input('請(qǐng)輸入第一臺(tái)機(jī)組有功報(bào)價(jià):')) cp2=float(input('請(qǐng)輸入第二臺(tái)機(jī)組有功報(bào)價(jià):')) cp3=float(input('請(qǐng)輸入第三臺(tái)機(jī)組有功報(bào)價(jià):')) cp4=float(input('請(qǐng)輸入第四臺(tái)機(jī)組有功報(bào)價(jià):')) cp5=float(input('請(qǐng)輸入第一臺(tái)機(jī)組備用報(bào)價(jià):')) cp6=float(input('請(qǐng)輸入第二臺(tái)機(jī)組備用報(bào)價(jià):')) cp7=float(input('請(qǐng)輸入第三臺(tái)機(jī)組備用報(bào)價(jià):')) cp8=float(input('請(qǐng)輸入第四臺(tái)機(jī)組備用報(bào)價(jià):')) print('--------------') PD=float(input('請(qǐng)輸入負(fù)荷:')) beiyong=float(input('請(qǐng)輸入系統(tǒng)需要備用:')) print('--------------')maxPG1=float(input('請(qǐng)輸入第一臺(tái)機(jī)組出力上限:')) maxPG2=float(input('請(qǐng)輸入第二臺(tái)機(jī)組出力上限:')) maxPG3=float(input('請(qǐng)輸入第三臺(tái)機(jī)組出力上限:')) maxPG4=float(input('請(qǐng)輸入第四臺(tái)機(jī)組出力上限:')) print('--------------') maxRG1=float(input('請(qǐng)輸入第一臺(tái)機(jī)組預(yù)留備用上限:')) maxRG2=float(input('請(qǐng)輸入第二臺(tái)機(jī)組預(yù)留備用上限:')) maxRG3=float(input('請(qǐng)輸入第三臺(tái)機(jī)組預(yù)留備用上限:')) maxRG4=float(input('請(qǐng)輸入第四臺(tái)機(jī)組預(yù)留備用上限:'))#目標(biāo)函數(shù) c=[cp1,cp2,cp3,cp4,cp5,cp6,cp7,cp8]#等式約束 #1PG1+1PG2+1PG3+1PG4=PD A_eq=np.array([[1,1,1,1,0,0,0,0]]) B_eq=np.array([PD])#不等式約束 #RG1+RG2+RG3+RG4>=beiyong #PG1+RG1<=maxPG1 PG2+RG2<=maxPG2 PG3+RG3<=maxPG3 PG4+RG4<=maxPG4A_ub=np.array([[0,0,0,0,-1,-1,-1,-1],[1,0,0,0,1,0,0,0],[0,1,0,0,0,1,0,0],[0,0,1,0,0,0,1,0],[0,0,0,1,0,0,0,1]]) B_ub=np.array([-beiyong,maxPG1,maxPG2,maxPG3,maxPG4])#上下限 PG1=(0,maxPG1) PG2=(0,maxPG2) PG3=(0,maxPG3) PG4=(0,maxPG4) RG1=(0,maxRG1) RG2=(0,maxRG2) RG3=(0,maxRG3) RG4=(0,maxRG4)if __name__ == "__main__":res = op.linprog(c, A_ub, B_ub, A_eq, B_eq, bounds=(PG1,PG2,PG3,PG4,RG1,RG2,RG3,RG4))x=res.xprint('-------------求解結(jié)果-------')print(res.fun)print('PG1',x[0])print('PG2', x[1])print('PG3', x[2])print('PG3', x[3])print('RG1', x[4])print('RG2', x[5])print('RG3', x[6])print('RG4', x[7])總結(jié)
以上是生活随笔為你收集整理的给书配代码-电力经济调度(4):有功与辅助服务联合经济调度的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vivos9是什么处理器 首发天玑110
- 下一篇: 物流管理论文实现:基于遗传算法的带时间窗