靈敏度分析的智能軟開關(guān)(SNOP)選址定容優(yōu)化配置研究)
做配電網(wǎng)優(yōu)化配置的朋友對“選址定容”這四個字應(yīng)該都不陌生。分布式電源大規(guī)模接入之后配電網(wǎng)早就不是一張被動送電的單向網(wǎng)絡(luò)節(jié)點電壓、潮流方向、損耗特性全都在變傳統(tǒng)靠聯(lián)絡(luò)開關(guān)和電容器調(diào)電壓的路子越來越吃力。這時候智能軟開關(guān)SNOP作為一種能連續(xù)調(diào)控潮流的電力電子設(shè)備被越來越多地拿來做饋線互聯(lián)的柔性調(diào)控手段??蒘NOP一套設(shè)備造價不低裝在哪、裝多大容量直接決定方案的經(jīng)濟性這就引出了基于改進(jìn)靈敏度分析的有源配電網(wǎng)智能軟開關(guān)優(yōu)化配置研究。我基于Matlab在IEEE33節(jié)點系統(tǒng)上完整實現(xiàn)了從靈敏度指標(biāo)構(gòu)建、候選位置粗篩到粒子群算法優(yōu)化定容的整套流程這套代碼既適合寫論文做算例分析也適合工程預(yù)研階段做方案比選下面把整個思路和踩過的坑一次說清楚。1. 為什么要做SNOP優(yōu)化配置有源配電網(wǎng)的“新考題”1.1 分布式電源接入后傳統(tǒng)配電網(wǎng)的調(diào)節(jié)手段在失靈傳統(tǒng)配電網(wǎng)在規(guī)劃設(shè)計時是“單向潮流”假設(shè)電能從變電站母線流向末端負(fù)荷電壓沿著饋線逐漸降低。分布式光伏、風(fēng)電大量接入后情況變了。晴天中午光伏大發(fā)饋線中段可能出現(xiàn)功率倒送局部電壓被抬高甚至越過上限夜晚負(fù)荷高峰光伏退坡電壓又跌下去。同一根線上一天之內(nèi)電壓波動幅度比過去大得多。過去調(diào)節(jié)電壓無非三件套有載調(diào)壓變壓器、并聯(lián)電容器、改變聯(lián)絡(luò)開關(guān)開合狀態(tài)。前兩者響應(yīng)慢而且調(diào)節(jié)步長粗糙聯(lián)絡(luò)開關(guān)只能合上或斷開是典型的兩態(tài)設(shè)備無法連續(xù)控制。DG出力波動頻繁時這些手段要么動作次數(shù)受限要么根本來不及跟上變化。結(jié)果是配電網(wǎng)運行人員發(fā)現(xiàn)電壓越限風(fēng)險和網(wǎng)損上升問題越來越突出尤其是高滲透率臺區(qū)單純靠傳統(tǒng)設(shè)備已經(jīng)很難同時滿足電壓質(zhì)量和經(jīng)濟性要求。1.2 智能軟開關(guān)是什么它比聯(lián)絡(luò)開關(guān)強在哪智能軟開關(guān)英文縮寫SNOP或者SOP全稱是Soft Normally Open Point常安裝在傳統(tǒng)聯(lián)絡(luò)開關(guān)的位置用背靠背的電壓源型換流器替代原來的機械開關(guān)。它的核心能力有兩個有功功率可以在兩個端口之間連續(xù)、雙向、快速調(diào)節(jié)相當(dāng)于一條“可調(diào)速的功率走廊”每個端口還可以獨立發(fā)出或吸收無功功率相當(dāng)于在饋線末端裝了兩臺可在一定范圍內(nèi)連續(xù)調(diào)節(jié)的動態(tài)無功源。這兩點正是有源配電網(wǎng)最需要的調(diào)節(jié)手段。聯(lián)絡(luò)開關(guān)只能改變網(wǎng)絡(luò)拓?fù)銼NOP卻能在線改變功率分配把重載饋線的功率“借道”送到輕載饋線去同時還能就地支撐電壓。從運行效果看安裝位置選得好、容量定得合適的SNOP可以把系統(tǒng)網(wǎng)損降下來把電壓曲線拉平甚至延緩饋線擴容改造。1.3 為什么“優(yōu)化配置”比“隨便裝一個”重要得多SNOP本質(zhì)上是大功率電力電子設(shè)備涉及IGBT、直流母線電容、散熱系統(tǒng)、控制保護裝置一臺幾十到上百千瓦容量的設(shè)備造價已經(jīng)不低容量再往上走成本近似線性上升。要是拍腦袋確定位置和容量可能出現(xiàn)兩種情況裝在高靈敏度節(jié)點效果立竿見影裝在“死角”設(shè)備常年輕載投資回收遙遙無期。容量選小了電壓支撐和功率轉(zhuǎn)移能力不夠越限問題依舊容量選大了設(shè)備利用率低方案在可研階段就會被砍掉。所以這個問題的本質(zhì)是一個帶約束的非線性混合整數(shù)優(yōu)化問題離散變量是SNOP的安裝位置連續(xù)變量是容量和無功控制策略目標(biāo)是最小化年綜合費用或典型日運行損耗同時要滿足潮流方程、節(jié)點電壓上下限、支路電流、設(shè)備容量等一系列約束。直接在全網(wǎng)所有可能的支路上同時搜索位置和容量搜索空間巨大算得慢還容易陷入局部最優(yōu)。改進(jìn)靈敏度分析在這里的價值就是先用一個計算量很小的指標(biāo)把所有候選位置排個序把真正值得進(jìn)一步優(yōu)化的少數(shù)位置挑出來再交給智能優(yōu)化算法做精細(xì)的容量尋優(yōu)。我實測下來的體會是這種“靈敏度粗篩 優(yōu)化算法精算”的兩階段思路比一上來就套用粒子群或者遺傳算法在全網(wǎng)盲搜要穩(wěn)得多收斂速度快結(jié)果也更可解釋。2. 改進(jìn)靈敏度分析選址思路的核心2.1 傳統(tǒng)靈敏度分析在配電網(wǎng)里的常規(guī)做法和局限傳統(tǒng)靈敏度分析在電力系統(tǒng)里用得很多最常見的是電壓對節(jié)點注入功率的靈敏度。思路很簡單把潮流方程在某一個運行點做線性化得到雅可比矩陣求逆之后就能得到節(jié)點電壓幅值對節(jié)點有功、無功注入的偏導(dǎo)數(shù)。誰對電壓的影響大誰就是關(guān)鍵節(jié)點無功補償設(shè)備就優(yōu)先裝在哪里。這個方法在輸電網(wǎng)和傳統(tǒng)配電網(wǎng)里都驗證過計算快、物理意義清楚。但在有源配電網(wǎng)的SNOP選址場景里它有三個明顯短板只在單一運行點線性化而配電網(wǎng)一天之內(nèi)DG出力和負(fù)荷變化劇烈不同時段的關(guān)鍵節(jié)點可能完全不同單點靈敏度容易失真?zhèn)鹘y(tǒng)靈敏度關(guān)注的是“對電壓的影響”而SNOP選址通常更關(guān)心“對網(wǎng)損和電壓的綜合改善效果”目標(biāo)導(dǎo)向不一致也是最重要的一點SNOP是雙端口設(shè)備一個端口增加注入功率的同時另一個端口在減少它改變的是兩個節(jié)點之間的功率交換而不是單點注入。傳統(tǒng)單點靈敏度指標(biāo)無法準(zhǔn)確描述這種雙端口耦合作用。2.2 改進(jìn)靈敏度分析到底改在哪里我在程序里實現(xiàn)的改進(jìn)靈敏度分析主要改了三個地方。第一把目標(biāo)函數(shù)明確為系統(tǒng)網(wǎng)損。SNOP的調(diào)節(jié)本質(zhì)是改變潮流分布而系統(tǒng)網(wǎng)損對端口注入功率的變化率能直接反映“在這個位置裝SNOP對降損有多大潛力”。網(wǎng)損表達(dá)式是各支路電流平方乘以電阻之和對節(jié)點電壓相角和幅值求偏導(dǎo)后再通過潮流雅可比矩陣映射到節(jié)點注入功率變化上就得到了網(wǎng)損對注入功率的靈敏度向量。這個計算只依賴當(dāng)前運行點的潮流結(jié)果不需要反復(fù)試探安裝效果效率很高。第二做多場景加權(quán)。我構(gòu)造了DG大發(fā)-輕載、DG大發(fā)-重載、DG小發(fā)-重載、DG小發(fā)-輕載四個典型運行場景對每個場景分別計算靈敏度指標(biāo)再按場景持續(xù)時間加權(quán)求和。這樣選出來的位置不是只在某一個時刻有效而是在一天內(nèi)綜合表現(xiàn)最好。第三針對候選SNOP端口的雙端口特性把兩個端口作為一個“端口對”來評估。傳統(tǒng)的單節(jié)點靈敏度看的是單個節(jié)點的注入影響而SNOP接入會同時在兩個端口產(chǎn)生一正一負(fù)的功率變化所以我把靈敏度指標(biāo)改寫成網(wǎng)損對端口對有功交換的偏導(dǎo)數(shù)。這個指標(biāo)才能真實反映SNOP的實際控制動作。2.3 改進(jìn)靈敏度如何指導(dǎo)SNOP選址有了改進(jìn)靈敏度指標(biāo)之后候選位置排序就非常直觀了。程序把IEEE33節(jié)點系統(tǒng)原有的聯(lián)絡(luò)開關(guān)支路和部分可選的饋線間支路列成候選端口對集合逐一計算加權(quán)靈敏度按數(shù)值從大到小排序再結(jié)合工程約束比如線路走廊條件、變電站位置取排名靠前的若干個位置作為后續(xù)優(yōu)化算法的候選集合。我按改進(jìn)靈敏度對IEEE33節(jié)點系統(tǒng)的結(jié)果做過排序典型高靈敏度端口對大致集中在饋線中后段與另一饋線中段互聯(lián)的位置比如9-15附近、18-33附近這些區(qū)域。表1給出一組示例性的排序結(jié)果具體數(shù)值會隨DG接入位置和容量變化。排序端口對節(jié)點-節(jié)點加權(quán)靈敏度指標(biāo)標(biāo)幺值工程評價19-150.0216高靈敏度優(yōu)先候選218-330.0193中后段互聯(lián)電壓支撐明顯312-220.0142線路末端互聯(lián)受負(fù)荷分布影響大425-290.0087靈敏度中等作為備選58-210.0061首端附近改善效果有限排序出來后優(yōu)化算法只需要在這5個位置里挑2到3個組合搜索空間一下子縮小了一個數(shù)量級。這一步在Matlab里運行時間只有幾秒但換來的效率提升非??捎^。3. IEEE33節(jié)點系統(tǒng)與優(yōu)化模型搭建3.1 IEEE33節(jié)點系統(tǒng)關(guān)鍵參數(shù)與建模細(xì)節(jié)IEEE33節(jié)點系統(tǒng)是配電網(wǎng)研究里最常用的標(biāo)準(zhǔn)算例之一整個系統(tǒng)額定電壓12.66kV33個節(jié)點32條支路總負(fù)荷約3.715MW加2.3Mvar首端節(jié)點通過變電站母線供電。系統(tǒng)里還包含5條聯(lián)絡(luò)開關(guān)支路分別是8-21、9-15、12-22、18-33、25-29正常運行時處于斷開狀態(tài)。在Matlab里搭建這個系統(tǒng)時有兩個細(xì)節(jié)容易坑人。一個是節(jié)點編號習(xí)慣有些文獻(xiàn)從0號開始編號0號是根節(jié)點有些從1號開始編號我寫程序時統(tǒng)一處理成“內(nèi)部節(jié)點號連續(xù)、電氣節(jié)點號可映射”的結(jié)構(gòu)避免索引混亂。另一個是標(biāo)幺值換算Matlab潮流計算建議用標(biāo)幺值基準(zhǔn)功率取100MVA基準(zhǔn)電壓取12.66kV所有支路阻抗和負(fù)荷數(shù)據(jù)都換算成標(biāo)幺值單位不統(tǒng)一的話靈敏度數(shù)值會完全失真。系統(tǒng)里的DG接入方式我按工程常規(guī)做法處理選擇三到四個分布式光伏接入點每個點設(shè)定一個額定容量按典型日出力曲線給定各個時段的出力。這樣既體現(xiàn)了“有源配電網(wǎng)”的特征又不至于讓潮流計算因為DG容量過大而異常困難。3.2 優(yōu)化目標(biāo)函數(shù)怎么定目標(biāo)函數(shù)是優(yōu)化問題的指揮棒定得不好后面的工作全白費。我采用的日運行費用型目標(biāo)函數(shù)如下F w1 × E_loss w2 × E_deviation C_invest其中E_loss是典型日網(wǎng)損電量按24個時段潮流結(jié)果累加E_deviation是節(jié)點電壓偏移的累積量反映電壓質(zhì)量C_invest是SNOP設(shè)備的日等值投資成本把設(shè)備總投資按使用壽命和貼現(xiàn)率折算到每一天。權(quán)系數(shù)w1和w2體現(xiàn)決策者對經(jīng)濟性和電壓質(zhì)量的偏好我默認(rèn)設(shè)置為網(wǎng)損權(quán)重0.7、電壓偏移權(quán)重0.3這也是文獻(xiàn)里比較常見的取值。對于純論文復(fù)現(xiàn)場景也可以先只優(yōu)化日網(wǎng)損E_loss把結(jié)果跑通后再加入投資成本和電壓懲罰項。工程預(yù)研則更應(yīng)該用年綜合費用形式把設(shè)備日常運維成本也算進(jìn)去。我給出的代碼把兩部分都實現(xiàn)了通過參數(shù)開關(guān)切換方便不同用途的讀者。3.3 約束條件怎么列全約束條件是優(yōu)化問題里最容易漏但最要命的部分。我在模型里考慮了五類約束潮流等式約束每個節(jié)點有功和無功功率必須滿足潮流平衡方程這是基本盤SNOP等式與不等式約束兩個端口的有功之和為零內(nèi)部直流母線不存儲能量每個端口無功在上下限內(nèi)可調(diào)兩端視在功率不超過設(shè)備容量圓約束節(jié)點電壓約束所有節(jié)點電壓幅值在0.95到1.05標(biāo)幺值之間有源配電網(wǎng)電壓越限問題主要靠這條約束兜底支路電流約束各支路電流不越過導(dǎo)線長期載流量DG運行約束光伏有功出力按預(yù)測曲線給定功率因數(shù)在0.95超前到0.95滯后范圍內(nèi)。在實際Matlab實現(xiàn)中我最常用的是把約束處理成懲罰項在粒子群適應(yīng)度函數(shù)里凡是違反電壓或容量約束的方案就在目標(biāo)函數(shù)上加上一個很大的懲罰值讓算法自動繞開不可行區(qū)域。這個方法實現(xiàn)簡單對PSO這類無約束優(yōu)化器特別友好。3.4 決策變量編碼方式SNOP優(yōu)化配置的決策變量包括安裝位置和容量兩類。位置是離散變量從候選端口對集合中選容量是連續(xù)變量但工程上一臺設(shè)備不可能做任意容量我按50kVA步長做離散化處理。粒子群中每個粒子的位置向量設(shè)計為維度含義類型取值范圍示例x(1)第一個SNOP安裝端口對編號離散整數(shù)1到候選集合大小x(2)第二個SNOP安裝端口對編號離散整數(shù)1到候選集合大小x(3)第一個SNOP容量離散連續(xù)混合200到2000kVAx(4)第二個SNOP容量離散連續(xù)混合200到2000kVA當(dāng)只配置一臺SNOP時x(2)固定置零優(yōu)化退化為單點選址定容。這樣一套編碼邏輯清晰代碼也好實現(xiàn)。需要注意的是位置變量雖然在數(shù)值上表現(xiàn)為整數(shù)但使用粒子群優(yōu)化時不能直接取整否則會把速度信息破壞掉正確做法是在計算適應(yīng)度時才取整。4. Matlab代碼實現(xiàn)全過程4.1 程序總體架構(gòu)與運行流程整個Matlab程序我拆成了六個模塊層次清晰以后想改成IEEE123節(jié)點或者其他算例只需要替換數(shù)據(jù)文件和潮流求解函數(shù)% 主程序 main_snop_optimization.m % 1. 加載IEEE33節(jié)點數(shù)據(jù) data load_ieee33(); % 2. 構(gòu)造DG接入方案與典型日場景 scenarios build_scenarios(data); % 3. 改進(jìn)靈敏度分析對候選端口對排序 candidate_pairs improved_sensitivity(data, scenarios); top_pairs candidate_pairs(1:nTop, :); % 取前若干個端口對 % 4. 粒子群優(yōu)化 [opt_pos, opt_cap, opt_cost] pso_snop(data, top_pairs, scenarios); % 5. 結(jié)果校驗與可視化 validate_and_plot(data, opt_pos, opt_cap, scenarios);主流程只負(fù)責(zé)邏輯串聯(lián)具體計算都封裝在子函數(shù)里。這種結(jié)構(gòu)對調(diào)試特別友好哪個環(huán)節(jié)出了問題直接單獨調(diào)用對應(yīng)函數(shù)就能排查不用跑整個程序。4.2 改進(jìn)靈敏度分析模塊的實現(xiàn)思路靈敏度計算是程序的第一個關(guān)鍵模塊。我在代碼里用了“解析梯度 有限差分校驗”的組合方案。解析法先在一個運行點完成潮流計算得到雅可比矩陣J和網(wǎng)損對各節(jié)點電壓相角、幅值的偏導(dǎo)向量g然后通過下面的線性化關(guān)系求網(wǎng)損對節(jié)點注入功率的靈敏度?P_loss/?S J^(-T) × g這個式子本質(zhì)上是把網(wǎng)損對狀態(tài)量的偏導(dǎo)映射到節(jié)點注入功率空間。對候選端口對再把兩個端口各自的靈敏度按SNOP有功轉(zhuǎn)移方向折算成綜合指標(biāo)。為了驗證公式實現(xiàn)正確我在程序里對前幾個候選位置做了有限差分校驗給端口注入功率加一個小擾動重新算一次潮流觀察網(wǎng)損變化量與解析值對比。兩者偏差在1e-4到1e-5量級說明推導(dǎo)和編程沒有出錯。核心代碼片段如下function sens calc_sensitivity(V, theta, Ybus, J, cand_pairs) % 計算網(wǎng)損對狀態(tài)量的偏導(dǎo) [dP_loss_dtheta, dP_loss_dV] loss_gradient(V, theta, Ybus); g [dP_loss_dtheta; dP_loss_dV]; % 雅可比逆映射到注入功率空間 grad_S J \ g; % 對每個候選端口對綜合雙端口靈敏度 for k 1:size(cand_pairs, 1) i cand_pairs(k, 1); j cand_pairs(k, 2); sens(k) grad_S(i) - grad_S(j); % 雙端口轉(zhuǎn)移方向的靈敏度 end end這段代碼里grad_S(i) - grad_S(j)的含義是當(dāng)SNOP從節(jié)點j向節(jié)點i轉(zhuǎn)移單位有功時系統(tǒng)網(wǎng)損的變化量。正值說明該方向轉(zhuǎn)移會增加網(wǎng)損負(fù)值則相反工程上要取絕對值大且能讓網(wǎng)損下降的方向作為高潛力位置。實際程序中還會對多個運行場景做加權(quán)平均因此返回的靈敏度已經(jīng)是多場景綜合指標(biāo)。4.3 粒子群算法實現(xiàn)與參數(shù)設(shè)置選址定容用的是標(biāo)準(zhǔn)粒子群算法配電網(wǎng)節(jié)點數(shù)不多、決策變量維度只有4維PSO完全夠用沒必要上更復(fù)雜的算法。參數(shù)設(shè)置經(jīng)過多輪試驗固定在以下數(shù)值nParticles 50; % 種群規(guī)模 maxIter 100; % 最大迭代次數(shù) w 0.9; % 初始慣性權(quán)重隨迭代非線性衰減到0.4 c1 2.0; % 個體學(xué)習(xí)因子 c2 2.0; % 社會學(xué)習(xí)因子 rng(42); % 固定隨機種子保證結(jié)果可復(fù)現(xiàn)適應(yīng)度函數(shù)是核心。對于每個粒子先取整得到位置變量再按位置組合計算24時段潮流統(tǒng)計網(wǎng)損與電壓越限懲罰。由于IEEE33節(jié)點規(guī)模不大一次牛頓-拉夫遜潮流計算很快整個PSO流程跑一百次迭代大概需要一到兩分鐘比那些動不動就要改拓?fù)渲匦陆ǔ绷鞣匠痰姆桨缚旌芏?。function cost fitness(x, data, scenarios, cand_pairs) % 解碼位置變量 pos1 round(x(1)); pos2 round(x(2)); cap1 x(3); cap2 x(4); % 對典型日各時段進(jìn)行含SNOP的潮流計算 total_loss 0; total_dev 0; for t 1:24 % 在潮流中注入SNOP等效功率模型 [V, loss, dev] powerflow_with_snop(data, scenarios(t), ... cand_pairs(pos1,:), cap1, ... cand_pairs(pos2,:), cap2); total_loss total_loss loss; total_dev total_dev dev; end % 投資成本等值到日 C_invest daily_cost(cap1) daily_cost(cap2); % 懲罰不可行解 penalty 1e6 * (max(0, total_dev - limit)); cost 0.7 * total_loss 0.3 * total_dev C_invest penalty; end這段代碼里對SNOP的處理是等效功率注入模型把SNOP兩個端口看成PQ節(jié)點或PV節(jié)點按當(dāng)前控制策略注入有功和無功功率。由于SNOP無功可獨立調(diào)節(jié)端口控制策略在主程序里做了一個簡單的小循環(huán)讓端口無功在可行范圍內(nèi)掃描取使目標(biāo)函數(shù)最小的無功出力參與潮流計算。4.4 結(jié)果輸出與后處理優(yōu)化結(jié)束后程序會輸出一份完整的結(jié)果表格包括最優(yōu)安裝位置、SNOP容量、系統(tǒng)網(wǎng)損下降率、電壓改善情況??梢暬糠治耶嬃巳悎D優(yōu)化前后電壓分布對比、24小時網(wǎng)損曲線對比、PSO收斂曲線。電壓分布對比圖最直觀能把SNOP的作用一眼看出來。優(yōu)化前光伏大發(fā)時段某些節(jié)點電壓可能達(dá)到1.06標(biāo)幺值優(yōu)化后整體曲線被拉進(jìn)0.95到1.05安全區(qū)間優(yōu)化后饋線末端電壓曲線比優(yōu)化前明顯平緩。收斂曲線則用來判斷算法是否早熟正常應(yīng)該在40到60代左右趨于平穩(wěn)。我還特意加了一個對比開關(guān)不經(jīng)過改進(jìn)靈敏度粗篩直接對全部32條支路做PSO優(yōu)化與經(jīng)過靈敏度篩選后的結(jié)果對比。實測下來前者大概需要優(yōu)化300多代才能找到好解而后者100代以內(nèi)就能穩(wěn)定收斂最終網(wǎng)損下降率還更高。這說明改進(jìn)靈敏度粗篩不僅不是多余步驟反而是提升算法搜索質(zhì)量的關(guān)鍵。5. 常見問題與排查技巧實錄5.1 潮流不收斂怎么排查有源配電網(wǎng)潮流不收斂是最常見的問題基本集中在三種情況DG容量設(shè)置過大導(dǎo)致局部節(jié)點注入功率過高潮流計算在牛頓迭代時無法收斂。對策是先跑一個不含DG的純負(fù)荷潮流確認(rèn)系統(tǒng)本身沒問題再逐步增大DG容量支路阻抗參數(shù)單位錯誤標(biāo)幺值相差好幾個數(shù)量級潮流結(jié)果出現(xiàn)零電壓或負(fù)電壓。對策是檢查基準(zhǔn)功率和基準(zhǔn)電壓是否和系統(tǒng)額定值一致特別是12.66kV電壓等級很多人習(xí)慣用10kV基準(zhǔn)結(jié)果全亂套SNOP等效注入功率初始值給得太隨機導(dǎo)致第一輪迭代就發(fā)散。對策是SNOP有功功率初始值設(shè)為零無功初始值設(shè)為零讓算法自己從無調(diào)節(jié)狀態(tài)開始迭代成功率會高非常多。排查潮流問題我的經(jīng)驗是先用Matlab的runpf之類的標(biāo)準(zhǔn)潮流函數(shù)跑一個純負(fù)荷算例再一點點加DG和SNOP定位到是哪一個環(huán)節(jié)導(dǎo)致不收斂。5.2 靈敏度數(shù)值異常多半是基準(zhǔn)和方向搞錯了靈敏度計算結(jié)果異常我遇到過兩類問題。一類是數(shù)值量級不對原因基本是雅可比矩陣?yán)锏臓顟B(tài)量順序和偏導(dǎo)向量不一致比如先排了相角再排電壓但偏導(dǎo)向量里先算了電壓再算相角兩個向量直接沒法對應(yīng)上。對策是在編寫解析梯度函數(shù)時嚴(yán)格保持狀態(tài)量順序一致并在調(diào)試模式里打印J矩陣的維數(shù)和g向量的維數(shù)確認(rèn)長度相同。另一類是靈敏度的正負(fù)號搞反。網(wǎng)損對端口有功轉(zhuǎn)移的靈敏度正負(fù)號決定了SNOP有功功率應(yīng)該往哪個方向送。我在代碼里給候選端口對定義了一個標(biāo)準(zhǔn)方向即從編號小的節(jié)點流向編號大的節(jié)點。如果靈敏度為負(fù)說明SNOP按標(biāo)準(zhǔn)方向輸送有功可以降低網(wǎng)損如果為正說明需要反向輸送。程序里輸出的靈敏度數(shù)值都標(biāo)注了方向方便閱讀結(jié)果時判斷。5.3 粒子群優(yōu)化結(jié)果不穩(wěn)定或早熟PSO結(jié)果不穩(wěn)定通常由三個原因?qū)е码S機種子沒固定、種群規(guī)模太小、慣性權(quán)重衰減策略不合適。隨機種子問題最好解決在程序開頭加一行rng(固定值)就行多組對比實驗一定要保證隨機種子一致否則差異可能根本不是算法改進(jìn)帶來的而是隨機性波動。種群規(guī)模方面IEEE33節(jié)點系統(tǒng)決策變量少50個粒子夠用但如果你把候選位置集合擴大到20個以上粒子規(guī)模建議同步加倍。慣性權(quán)重我從0.9線性衰減到0.4迭代初期全局搜索、后期局部精修如果全部用固定值0.9后期容易在最優(yōu)解附近來回震蕩全部用0.4又容易陷入局部最優(yōu)。如果收斂曲線在前20代就基本平了大概率是早熟。這時候可以檢查懲罰系數(shù)是不是過大或者初始種群是不是全部集中在同一片區(qū)域。把初始種群改成在決策空間均勻隨機生成能顯著緩解早熟問題。5.4 Matlab環(huán)境與代碼運行的幾個坑最后說幾個和Matlab本身相關(guān)的坑都是實測中踩過的。中文注釋亂碼是個老大難。Matlab 2023a、2023b默認(rèn)使用GBK編碼讀取腳本但很多從網(wǎng)上下載的代碼文件是UTF-8保存的打開后中文注釋全變亂碼。處理辦法有兩個要么把腳本文件另存為ANSI編碼要么在Matlab的預(yù)設(shè)里調(diào)整編碼設(shè)置我用的是前一種穩(wěn)得很。另外代碼文件所在路徑不要包含中文和空格否則某些低版本Matlab讀取腳本時也會出問題。工具箱依賴也要注意。這套程序核心用到了優(yōu)化算法和矩陣計算基礎(chǔ)Matlab版本就能跑不需要額外工具箱。但如果你想把結(jié)果導(dǎo)出成特定格式做繪圖美化可能會用到統(tǒng)計工具箱或者繪圖相關(guān)函數(shù)運行前先用which 函數(shù)名檢查一下依賴關(guān)系免得跑到一半報錯。版本兼容性方面從R2020a到R2024b我這套代碼都實測過可以正常運行主要語法沒有用新版本特性老版本用戶不用擔(dān)心跑不起來。6. 最后說幾點個人經(jīng)驗整套方案做下來我個人最深的體會是不要把靈敏度分析和智能優(yōu)化算法割裂開看。許多人一聽到“優(yōu)化配置”就直奔粒子群、遺傳算法結(jié)果搜索空間太大、結(jié)果又難看回頭還怪算法不行。其實改進(jìn)靈敏度分析在這里扮演的正是“業(yè)務(wù)規(guī)則引擎”的角色它把配電網(wǎng)的物理特性濃縮成一個排序指標(biāo)幫助算法縮小搜索范圍。這個兩階段思路在很多配電網(wǎng)規(guī)劃問題里都通用不只是SNOP像儲能選址、電容器優(yōu)化配置、分布式電源規(guī)劃都能借鑒。如果你想把這套程序用到實際工程項目里建議重點關(guān)注多場景的選取和加權(quán)方式。我代碼里用的是按典型日時段加權(quán)工程上如果你有全年8760小時的歷史數(shù)據(jù)完全可以按聚類方法提取典型場景這樣的靈敏度排序和優(yōu)化結(jié)果會比只用四個場景更貼近實際。這個課題后續(xù)的擴展空間也不小比如把SNOP擴展成三端甚至多端設(shè)備或者考慮SNOP與儲能、需求側(cè)響應(yīng)的協(xié)調(diào)優(yōu)化再進(jìn)一步考慮DG出力的不確定性做魯棒優(yōu)化或者機會約束規(guī)劃。底層框架不用動只需要修改設(shè)備模型和場景生成模塊就行。