给书配代码-电力经济调度(3):计及网络安全约束的经济调度模型
生活随笔
收集整理的這篇文章主要介紹了
给书配代码-电力经济调度(3):计及网络安全约束的经济调度模型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
電氣博文傳送門
學好電氣全靠它,個人電氣博文目錄(持續更新中…)
理論
書上例子預備知識
解釋: import numpy as np #A節點與發電機組關聯矩陣 """發電機組1,發電機組2,發電機組3 節點1 節點2 節點3 """ A=np.array([[1,1,0],[0,0,1],[0,0,0]]) #B節點與負荷關聯矩陣 """節點2負荷,節點3負荷 節點1 節點2 節點3 """B=np.array([[0,0],[1,0],[0,1]]) #S為節點與支路關聯矩陣。其支路始節點對應元素為1,終節點對應-1 """ 支路12 ,支路13,支路23 節點1 節點2 節點3 """ S=np.array([[1,1,0],[-1,0,1],[0,-1,-1]]) #X為支路電抗矩陣,它是一個對角陣,對角元素為各支路電抗值,其余元素為0 X=np.array([[0.25,0,0],[0,0.25,0],[0,0,0.25]])正文-書上算例
不考慮網絡約束
考慮網絡約束正文-書上算例求解
目標函數如圖
不看這個圖,我用腦子想一下
網絡安全約束,顧名思義 就是在普通調度上,同時是潮流滿足約束,KCL,KVL等
于是我們可以理解為優化目標為傳統的經濟調度優化目標
約束分別為
- 等式約束 輸入功率=負荷。
- 不等式約束 ,發電機組的上下限。
- 等式約束 潮流滿足KCL,KVL 。(當是我們通過轉移因子算法求出潮流時,其潮流本身就滿足KCL,KVL),這是該等式約束我們轉換為 潮流的上下限約束。
轉移因子算法求潮流
#節點功率凈輸入向量
Pinj=[PG1,PG2,PG3-PD3]
#SF矩陣格式如下,為某個節點注入功率時, 功率要從參考節點流出
取參考節點為1
| 支路1-2 | 0(從節點1流入,從參考節點1流出,即不走支路1-2) | -2/3 此時電流方向為2指向1,與1-2相反,所以為- ,根據圖可以求得數值2/3 | -1/3 |
| 2倍支路1-3 | 0 | -1/3,此時電流方向是3指向1 | -2/3 |
| 支路2-3 | 0 | 1/3 | -1/3 |
得到潮流方程
展開得到圖3-5的潮流如下
PD3 = 800PL12 = -(2 / 3) * PG2 - (1 / 3) * PG3 + (1 / 3) * PD3PL13 = (-(1 / 3) * PG2 - (2 / 3) * PG3 + (2 / 3) * PD3) * 0.05PL23 = (1 / 3) * PG2 - (1 / 3) * PG3 + (1 / 3) * PD3編程語言:python
import numpy as np from scipy import optimize as opt import numpy as np from scipy.optimize import minimize # 目標函數 def objective(x): #=原文中的mincost p11=x[0]p12=x[1]p13=x[2]p21=x[3]p22=x[4]p23=x[5]p31=x[6]p32=x[7]p33=x[8]return (40*p11+50*p12+57.5*p13+43.75*p21+46.25*p22+48.75*p23+55.8*p31+57*p32+58.2*p33)# 約束條件 def constraint1(x): #等式約束pI11 = x[0]pI12 = x[1]pI13 = x[2]pI21 = x[3]pI22 = x[4]pI23 = x[5]pI31 = x[6]pI32 = x[7]pI33 = x[8]PG1 = 100 + pI11 + pI12 + pI13PG2 = 100 + pI21 + pI22 + pI23PG3 = 50 + pI31 + pI32 + pI33return pI11+pI12+pI13+pI21+pI22+pI23+pI31+pI32+pI33-550#return PG1+PG2+PG3-800#上下限 pI11=(0,200) pI12 = (0,200) pI13 = (0,100) pI21 = (0,100) pI22 = (0,100) pI23 = (0,100) pI31 =(0,50) pI32 = (0,50) pI33 = (0,50)bnds=(pI11,pI12,pI13,pI21,pI22,pI23,pI31,pI32,pI33)# 約束條件 def constraint2(x): #不等式約束 線路PL12 《=300pI11 = x[0]pI12 = x[1]pI13 = x[2]pI21 = x[3]pI22 = x[4]pI23 = x[5]pI31 = x[6]pI32 = x[7]pI33 = x[8]PD3=800PG1 = 100 + pI11 + pI12 + pI13PG2 = 100 + pI21 + pI22 + pI23PG3 = 50 + pI31 + pI32 + pI33PL12 = -(2 / 3) * PG2 - (1 / 3) * PG3 + (1 / 3) * PD3return 300-np.abs(PL12)# 約束條件 def constraint3(x): #不等式約束 不等式約束 線路PL13 《=300pI11 = x[0]pI12 = x[1]pI13 = x[2]pI21 = x[3]pI22 = x[4]pI23 = x[5]pI31 = x[6]pI32 = x[7]pI33 = x[8]PD3=800PG1 = 100 + pI11 + pI12 + pI13PG2 = 100 + pI21 + pI22 + pI23PG3 = 50 + pI31 + pI32 + pI33PL13 = (-(1 / 3) * PG2 - (2 / 3) * PG3 + (2 / 3) * PD3) * 0.05return 300-np.abs(PL13)# 約束條件 def constraint4(x): #不等式約束 不等式約束 線路PL23 《=330pI11 = x[0]pI12 = x[1]pI13 = x[2]pI21 = x[3]pI22 = x[4]pI23 = x[5]pI31 = x[6]pI32 = x[7]pI33 = x[8]PD3=800PG1 = 100 + pI11 + pI12 + pI13PG2 = 100 + pI21 + pI22 + pI23PG3 = 50 + pI31 + pI32 + pI33PL23 = (1 / 3) * PG2 - (1 / 3) * PG3 + (1 / 3) * PD3return 330-np.abs(PL23)con1 = {'type': 'eq', 'fun': constraint1} con2 = {'type': 'ineq', 'fun': constraint2} con3 = {'type': 'ineq', 'fun': constraint3} con4 = {'type': 'ineq', 'fun': constraint4} cons = ([con1,con2,con3,con4]) # 4個約束條件if __name__ =='__main__':# 初始值x0 = np.random.uniform(10, 400, 9)# 計算solution = minimize(objective, x0, method='SLSQP',bounds=bnds, constraints=cons)x = solution.xpI11 = x[0]pI12 = x[1]pI13 = x[2]pI21 = x[3]pI22 = x[4]pI23 = x[5]pI31 = x[6]pI32 = x[7]pI33 = x[8]#PG1 = 100 + pI11 + pI12 + pI13PG2 = 100 + pI21 + pI22 + pI23PG3 = 50 + pI31 + pI32 + pI33PL13 = 0.5 * ((0.01 + 0.01) * (PG3 - 800) + 0.01 * PG2) / (0.01 + 0.01 + 0.01)PL12 = ((0.01 + 0.01) * PG2 + 0.01 * (PG3 - 800)) / (0.01 + 0.01 + 0.01)PL23 = ((0.01 + 0.01) * (PG3 - 800) + 0.01 * PG1) / (0.01 + 0.01 + 0.01)print('PG1',PG1)print('PG2', PG2)print('PG3', PG3)print('PL13',np.abs(PL13))print('PL12',np.abs(PL12))print("PL23",np.abs(PL23))結果如圖,本代碼比書上給的方法簡單得多。
更多優化算法見
python求解帶約束目標優化問題(非線性規劃,粒子群,遺傳,差分進化)
進階版論文程序鏈接:電氣期刊論文實現:考慮爬坡約束和輸電損耗的經濟調度【有代碼】
難點:理解轉移因子法求潮流
作者:電氣-余登武。寫作不容易,如果你覺得本文不錯,請點個贊支持下。
總結
以上是生活随笔為你收集整理的给书配代码-电力经济调度(3):计及网络安全约束的经济调度模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 给书配代码-电力经济调度(2):计及动态
- 下一篇: 信用卡有钱但余额不足