程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

分布式電源對配電網故障定位的影響(Python代碼實現)

編輯:Python

目錄

1 概述

2 目標

3 python代碼實現

3.1 結果展示

3.2 python代碼 

 

1 概述

人類在日常生活中越來越依賴電力,使用需要電力的設備不再是奢侈品,而是成為必需品。負責向民眾提供這種資源的各方必須處理電力的生產、傳輸和分配問題。盡管過去幾十年在電力系統保護方面取得了許多進展,但在提高能源供應服務的連續性方面仍有很大的空間。在配電的背景下,以巴西為例,可以通過配電服務的連續性指標來量化消費者的電力供應質量。國家電能署 (Aneel) 在 [PRODIST 2012] 中提供了其中兩個指標,即每用電單位的等效中斷持續時間 (DEC) 和每用電單位的等效中斷頻率 (FEC)。 DEC 是通過在計算期間內,相關用電單位的電能分配服務中斷的平均值獲得的時間間隔。 FEC 是在所考慮的單位中發生這種不連續性的平均頻率。

本文旨在確定分布式光伏發電對徑向配電網絡故障定位的影響。光伏系統的尺寸針對該電路的穿透限制而定。在 OpenDSS 上執行故障模擬,以獲取變電站的電壓和電流值。這些結果記錄在數據庫中並用於訓練多層感知器類的神經網絡,該網絡能夠以 90% 的平均成功率確定電路中存在或不存在分布式光伏發電的 6 個可能地理區域之間的故障位置。

1.1 MLP

MLP 是一種分層工作的神經網絡。輸入層接收問題輸入,中間隱藏層執行映射操作,輸出層提供輸出,如圖 1.1 所示。模擬神經元的基本層單元稱為感知器。除了感知器,輸入層和中間層還有一個偏置節點,用於處理等於 0 的輸入。

    作為補充,基於 [Goodfellow et al. 2016],MLP 只是一個函數 y = f(x; θ),它使用優化的 θ 參數將輸入 x 映射到輸出 y。可以說,根據 [Géron 2017] 一書,感知器的工作原理是對其輸入進行加權求和,並根據其符號離散化該總和的值,如等式​​所示

作為補充,MLP 只是一個函數 y = f(x; θ),它使用優化的 θ 參數將輸入 x 映射到輸出 y。可以說,感知器的工作原理是對其輸入進行加權求和,並根據其符號離散化該總和的值,如等式​​所示:

其中 hw 是感知器的輸出,x 是輸入值,w 是分配給每個輸入的權重,step 是和值的離散化函數,可以是 Heaviside 函數或信號函數。

調整 MLP 權重的方法之一是通過反向傳播技術。該機制包括,在確定神經網絡的正向權重及其總誤差後,反向計算每個權重的誤差貢獻,提出在每次迭代中總誤差較小的新權重。為了使這種方法可行,激活函數,即傳統感知器結構中的階躍函數,必須用平滑函數代替,例如邏輯函數、雙曲正切函數或整流線性單位函數(ReLU ),如等式所示:

其中 hw,b(x) 是 ReLU 函數,b 是偏差值。此外,通過計算函數梯度的反向傳播方法可以使用隨機梯度下降進行優化。

                      

 

2 目標

本文旨在確定分布式光伏發電對徑向配電網絡故障定位的影響。光伏系統的尺寸針對該電路的穿透限制而定。在 OpenDSS 上執行故障模擬,以獲取變電站的電壓和電流值。這些結果記錄在數據庫中並用於訓練多層感知器類的神經網絡,該網絡能夠以 90% 的平均成功率確定電路中存在或不存在分布式光伏發電的 6 個可能地理區域之間的故障位置。總體目標是驗證GDFV在配電系統故障定位中的影響。支持主要目標的次要目標是:為配電饋線在其穿透極限下設計不同的光伏系統,並評估其功率流;模擬負荷曲線不同點處配電饋線所有母線的故障。實施能夠檢測故障並將其分類為類型、電阻和地理位置的算法。

3 python代碼實現

3.1 結果展示

                   

                      

                          

                            

3.2 python代碼 

本文只展現部分代碼,全部代碼點這裡:正在為您運送作品詳情

def plot_5_pv():
ckt24_plot()
substation, = pylab.plot([11735514.42],[3709460.816],'k^',
markersize=10, label='Substation')
pvsyst, = pylab.plot(
[11740361.09,11745683.27,11740622.95,11740594.66,11735219.81],
[3709237.782,3712746.259,3714771.12,3718243.191,3718067.52],
color='orange', marker='s', markersize=10, linestyle='None',
label='PV System')
blue_patch = mpatches.Patch(color='blue', label='Three-phase lines')
green_patch = mpatches.Patch(color='green', label='Two-phase lines')
red_patch = mpatches.Patch(color='red', label='One-phase lines')
pylab.legend(handles=[substation, pvsyst, blue_patch, green_patch,
red_patch])
pylab.title("5 PV systems")
pylab.show()

 


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved