儲(chǔ)調(diào)頻仿真:從10分鐘到5秒的方法與實(shí)踐)
最近在搞四機(jī)兩區(qū)系統(tǒng)的風(fēng)儲(chǔ)調(diào)頻仿真時(shí)我發(fā)現(xiàn)一個(gè)特別提效的狠活頻域模型法。以前跑一次時(shí)域仿真配置高點(diǎn)、步長(zhǎng)小點(diǎn)十分鐘打底遇到風(fēng)速序列長(zhǎng)一點(diǎn)半小時(shí)也是常有的事。改用頻域模型法之后同樣的四機(jī)兩區(qū)系統(tǒng)從搭建模型到拿到頻率響應(yīng)結(jié)果基本壓到5秒級(jí)。這個(gè)效率對(duì)比說(shuō)句“騎自行車(chē)換噴氣背包”真不夸張。這篇東西就是把我這段時(shí)間的折騰過(guò)程完整捋一遍。核心內(nèi)容覆蓋風(fēng)儲(chǔ)調(diào)頻、四機(jī)兩區(qū)系統(tǒng)、頻域模型法、時(shí)域仿真這四塊適合正在做新能源并網(wǎng)頻率穩(wěn)定性仿真、被步長(zhǎng)和仿真時(shí)長(zhǎng)折磨的科研狗和工程獅。如果你也在用Matlab/Simulink、PSCAD或者Python做類(lèi)似仿真想從“等結(jié)果等到想砸電腦”里解脫出來(lái)那這篇應(yīng)該能幫你打開(kāi)思路。先說(shuō)清楚一個(gè)點(diǎn)頻域模型法不是要取代時(shí)域仿真而是把時(shí)域仿真里那些重復(fù)、海量、必須逐點(diǎn)積分的活兒用線性化后的頻域代數(shù)方程一次算完。場(chǎng)景選對(duì)了五分鐘能做完一天的活場(chǎng)景選錯(cuò)了結(jié)果會(huì)讓你翻車(chē)。后面我會(huì)把原理、步驟、精度對(duì)比、踩坑都攤開(kāi)講。1. 為什么時(shí)域仿真慢到讓人想砸電腦問(wèn)題的源頭1.1 四機(jī)兩區(qū)系統(tǒng)與風(fēng)儲(chǔ)調(diào)頻仿真到底在算什么四機(jī)兩區(qū)是電力系統(tǒng)穩(wěn)定分析里的經(jīng)典測(cè)試系統(tǒng)結(jié)構(gòu)上就是兩個(gè)區(qū)域每個(gè)區(qū)域有兩臺(tái)同步機(jī)區(qū)域之間用聯(lián)絡(luò)線連接然后你在某個(gè)節(jié)點(diǎn)接入風(fēng)電場(chǎng)和儲(chǔ)能系統(tǒng)。風(fēng)儲(chǔ)調(diào)頻仿真的核心目的是看當(dāng)負(fù)荷突變或者風(fēng)速突變時(shí)系統(tǒng)頻率怎么演化風(fēng)電場(chǎng)和儲(chǔ)能能不能通過(guò)有功出力調(diào)整把頻率最低點(diǎn)拉住、把穩(wěn)態(tài)頻差壓到一個(gè)可接受的范圍同時(shí)不激發(fā)區(qū)域間功率振蕩。聽(tīng)起來(lái)任務(wù)不復(fù)雜但實(shí)際上這里面的動(dòng)態(tài)過(guò)程跨了多個(gè)時(shí)間尺度同步機(jī)轉(zhuǎn)子運(yùn)動(dòng)方程的慣性響應(yīng)是秒級(jí)調(diào)速器和原動(dòng)機(jī)是幾百毫秒到秒級(jí)風(fēng)機(jī)變流器的功率外環(huán)是幾十毫秒儲(chǔ)能變流器的電流內(nèi)環(huán)是毫秒甚至更快。多時(shí)間尺度耦合在一起時(shí)域仿真只能老老實(shí)實(shí)按最小步長(zhǎng)推進(jìn)否則數(shù)值穩(wěn)定性出問(wèn)題。我常跟人打比方時(shí)域仿真就像你要錄一段交響樂(lè)但錄音設(shè)備的技術(shù)決定了它必須以微秒級(jí)的采樣間隔連續(xù)記錄哪怕你只關(guān)心整段的旋律輪廓也得一秒一秒地錄制。如果曲子本身有三分鐘那錄制過(guò)程就不可能快。1.2 傳統(tǒng)時(shí)域仿真的計(jì)算瓶頸出在哪兒很多人以為時(shí)域仿真慢只是因?yàn)榉抡鏁r(shí)長(zhǎng)長(zhǎng)其實(shí)核心瓶頸是步長(zhǎng)和迭代。以四機(jī)兩區(qū)加風(fēng)儲(chǔ)這種規(guī)模詳細(xì)電磁暫態(tài)模型里的變流器PWM開(kāi)關(guān)頻率如果是幾千赫茲仿真步長(zhǎng)可能被壓到幾十微秒。哪怕你對(duì)頻率穩(wěn)定問(wèn)題并不關(guān)心開(kāi)關(guān)紋波只要模型中還留著變流器的詳細(xì)拓?fù)浜驼{(diào)制邏輯積分步長(zhǎng)就會(huì)被拖得很小。就算退一步用機(jī)電暫態(tài)模型忽略開(kāi)關(guān)細(xì)節(jié)把變流器等效為受控源步長(zhǎng)可以放寬到1毫秒左右但每個(gè)步長(zhǎng)仍然需要求解一個(gè)非線性微分代數(shù)方程組。風(fēng)機(jī)和儲(chǔ)能控制器里有大量限幅、滯回、PI飽和這樣的非線性環(huán)節(jié)牛頓迭代經(jīng)常不收斂需要自適應(yīng)減小步長(zhǎng)。算一個(gè)120秒的動(dòng)態(tài)過(guò)程步長(zhǎng)1毫秒就是12萬(wàn)步每一步解幾十階方程組累計(jì)下來(lái)十分鐘起步一點(diǎn)都不意外。更頭疼的是做風(fēng)儲(chǔ)調(diào)頻研究往往不是只跑一次而是要做風(fēng)速序列波動(dòng)下的多條工況曲線或者做不同儲(chǔ)能容量、不同下垂系數(shù)下的參數(shù)掃描。每條工況都從頭跑一遍十分鐘十組參數(shù)就是兩個(gè)鐘頭中間再碰上一次數(shù)值發(fā)散前功盡棄。我有一回為了掃一個(gè)儲(chǔ)能控制參數(shù)的最優(yōu)區(qū)間連續(xù)在實(shí)驗(yàn)室蹲了一下午全浪費(fèi)在跑時(shí)域仿真和等數(shù)據(jù)導(dǎo)出上了。1.3 時(shí)域與頻域的模型差異從騎自行車(chē)到噴氣背包的物理直覺(jué)時(shí)域仿真和頻域模型法的本質(zhì)區(qū)別可以理解成“跟蹤一輛車(chē)的位置”和“直接拿到這條路每個(gè)彎道的響應(yīng)函數(shù)”的區(qū)別。時(shí)域仿真要去數(shù)值積分從擾動(dòng)發(fā)生的0秒開(kāi)始一步一步把狀態(tài)推演到幾十秒之后中間每一步都依賴(lài)于前一步的計(jì)算結(jié)果無(wú)法跳過(guò)。而頻域模型法假定系統(tǒng)在某個(gè)穩(wěn)定運(yùn)行點(diǎn)附近做小擾動(dòng)把系統(tǒng)的動(dòng)態(tài)特性用傳遞函數(shù)或者頻率響應(yīng)來(lái)表示之后你要算任何輸入下的輸出都不需要逐步積分而只需要在一個(gè)接一個(gè)的頻率點(diǎn)上去做復(fù)數(shù)的代數(shù)運(yùn)算。用個(gè)最簡(jiǎn)單的單自由度彈簧阻尼模型舉例。時(shí)域里描述運(yùn)動(dòng)的是二階微分方程求解需要數(shù)值積分頻域里把方程做拉普拉斯變換令sjω就變成一個(gè)帶ω的復(fù)數(shù)代數(shù)方程給定輸入力的頻率和幅值輸出位移直接一除就出來(lái)了。理論上是嚴(yán)格等價(jià)的只要系統(tǒng)是線性的時(shí)域響應(yīng)本質(zhì)上就是頻率響應(yīng)疊加的結(jié)果。電力系統(tǒng)的頻率動(dòng)態(tài)在調(diào)速器、儲(chǔ)能、風(fēng)機(jī)控制都在線性區(qū)間內(nèi)工作時(shí)逼近一個(gè)線性系統(tǒng)的程度是很高的。所以頻域模型法的思路就是把四機(jī)兩區(qū)系統(tǒng)里的所有元件——同步機(jī)、調(diào)速器、風(fēng)電變流器、儲(chǔ)能變流器——各自的小信號(hào)動(dòng)態(tài)模型求出來(lái)然后在頻域里裝配成一個(gè)整體的復(fù)數(shù)矩陣最后通過(guò)求解這個(gè)矩陣在每個(gè)頻率點(diǎn)上的線性方程直接得到系統(tǒng)的頻率響應(yīng)特性。這個(gè)過(guò)程沒(méi)有逐點(diǎn)積分所以速度快得離譜。2. 頻域模型法的核心思路把微分方程變成代數(shù)方程的魔法2.1 頻域模型法不是只做FFT先理解線性化與復(fù)頻域很多人一聽(tīng)“頻域”第一反應(yīng)是FFT把時(shí)域波形做快速傅里葉變換。但這跟我要講的頻域模型法完全是兩回事。FFT是對(duì)已有的時(shí)域信號(hào)做頻譜分析它需要你先有時(shí)域波形那你還是得先跑完時(shí)域仿真一點(diǎn)提速效果都沒(méi)有。頻域模型法的核心是先對(duì)整個(gè)系統(tǒng)在運(yùn)行點(diǎn)做線性化建立小信號(hào)狀態(tài)空間模型然后把它轉(zhuǎn)化到復(fù)頻域。具體來(lái)說(shuō)非線性系統(tǒng)可以寫(xiě)成dx/dt f(x, u)y g(x, u)。在某個(gè)潮流解x0、u0附近做泰勒展開(kāi)忽略二階及以上項(xiàng)就得到線性狀態(tài)空間模型dx A x B u y C x D u其中x和u是小偏移量。對(duì)這個(gè)狀態(tài)空間模型做拉普拉斯變換得到Y(jié)(s) [C (sI - A)^(-1) B D] U(s)轉(zhuǎn)移函數(shù)G(s)是一個(gè)有理分式矩陣。令sjωG(jω)就是系統(tǒng)在頻率ω處的復(fù)數(shù)增益。想要計(jì)算某個(gè)擾動(dòng)輸入下的頻率響應(yīng)只需要在每個(gè)需要關(guān)注的頻率點(diǎn)ω上求解(sI - A)矩陣的逆再乘上B和C。整個(gè)過(guò)程是純代數(shù)計(jì)算不涉及時(shí)間序列的遞推。物理直覺(jué)上時(shí)域仿真等于把信號(hào)拆成無(wú)窮小的時(shí)間切片逐片推進(jìn)頻域分析則把信號(hào)拆成不同頻率的正弦波每個(gè)頻率單獨(dú)過(guò)一遍系統(tǒng)的“濾波器”看到底被放大還是被衰減、相位滯后多少。這兩種描述對(duì)線性系統(tǒng)來(lái)說(shuō)是互補(bǔ)等價(jià)的。2.2 頻率響應(yīng)如何直接告訴你調(diào)頻好不好風(fēng)儲(chǔ)調(diào)頻最關(guān)心的幾個(gè)指標(biāo)——頻率最低點(diǎn)、穩(wěn)態(tài)頻差、振蕩衰減速度——其實(shí)都可以從頻率響應(yīng)里解讀出來(lái)。系統(tǒng)的頻率偏差Δf對(duì)功率擾動(dòng)ΔP的傳遞函數(shù)如果畫(huà)成伯德圖低頻段的增益決定了穩(wěn)態(tài)頻差諧振峰附近的行為決定了頻率最低點(diǎn)的深度和態(tài)勢(shì)相位曲線和增益穿越頻率則決定了系統(tǒng)的阻尼。儲(chǔ)能調(diào)頻控制器本質(zhì)是在原來(lái)的調(diào)頻環(huán)路上增加了一個(gè)額外支路。下垂控制相當(dāng)于在低頻段加入一個(gè)比例增益虛擬慣性控制相當(dāng)于在中頻段加入一個(gè)微分/超前環(huán)節(jié)它們會(huì)改變整個(gè)回路的開(kāi)環(huán)頻率特性。在頻域模型里你不需要反復(fù)跑時(shí)域仿真看曲線直接看伯德圖的相位裕度和主導(dǎo)極點(diǎn)位置就能判斷儲(chǔ)能控制參數(shù)會(huì)不會(huì)引發(fā)振蕩。舉個(gè)實(shí)際例子我調(diào)一個(gè)儲(chǔ)能的虛擬慣性系數(shù)時(shí)時(shí)域仿真每次跑完都要先看波形看有沒(méi)有低頻振蕩再回去改參數(shù)一組參數(shù)來(lái)回半小時(shí)。后來(lái)我在頻域模型里直接畫(huà)出控制參數(shù)變化時(shí)的根軌跡5秒掃一組半小時(shí)能把整片參數(shù)空間的穩(wěn)定性邊界畫(huà)出來(lái)。2.3 風(fēng)儲(chǔ)調(diào)頻元件在頻域里的等效方式要把四機(jī)兩區(qū)系統(tǒng)搬到頻域里每個(gè)元件都得有自己的頻域等效模型。下面這個(gè)表是我自己梳理時(shí)用的放到一起對(duì)比看得更清楚。元件時(shí)域模型要點(diǎn)頻域等效形式同步機(jī)轉(zhuǎn)子轉(zhuǎn)子運(yùn)動(dòng)方程含慣性常數(shù)H和阻尼系數(shù)D1/(2Hs D)輸入機(jī)械功率與電磁功率差調(diào)速器原動(dòng)機(jī)一階或二階滯后環(huán)節(jié)含調(diào)差系數(shù)R和汽輪機(jī)再熱時(shí)間常數(shù)K/(1 T s) 或帶再熱器的二階傳遞函數(shù)風(fēng)電場(chǎng)風(fēng)輪氣動(dòng)轉(zhuǎn)矩變流器功率外環(huán)含槳距角控制、轉(zhuǎn)速保護(hù)風(fēng)輪線性化增益乘上變流器低通/帶通傳遞函數(shù)儲(chǔ)能系統(tǒng)雙向功率變換器下垂虛擬慣性控制SOC環(huán)含比例/積分/微分的控制器傳遞函數(shù)SOC反饋等效為積分環(huán)節(jié)網(wǎng)絡(luò)潮流方程、聯(lián)絡(luò)線功率動(dòng)態(tài)運(yùn)行點(diǎn)處的線性化導(dǎo)納/功率轉(zhuǎn)移因子這里有一個(gè)很重要的細(xì)節(jié)儲(chǔ)能和風(fēng)機(jī)的控制器結(jié)構(gòu)取決于當(dāng)前運(yùn)行狀態(tài)。儲(chǔ)能可能有充電、放電、待機(jī)三種模式風(fēng)機(jī)可能在最大功率跟蹤或減載調(diào)頻模式這些模式下控制器的輸入輸出關(guān)系不同對(duì)應(yīng)的頻域傳遞函數(shù)也不同。你必須在建模階段就明確當(dāng)前工作點(diǎn)屬于哪種模式否則模型結(jié)構(gòu)錯(cuò)了后邊算得再快也沒(méi)意義。網(wǎng)絡(luò)部分在這類(lèi)頻率穩(wěn)定分析里經(jīng)常被簡(jiǎn)化成集中參數(shù)模型。四機(jī)兩區(qū)的聯(lián)絡(luò)線功率動(dòng)態(tài)本身也是低頻動(dòng)態(tài)可以并入同步機(jī)轉(zhuǎn)子方程中作為阻尼項(xiàng)。如果做精細(xì)的頻域分析可以保留完整導(dǎo)納矩陣但那樣計(jì)算量會(huì)大一些不過(guò)仍然比時(shí)域積分快幾個(gè)數(shù)量級(jí)。3. 我把四機(jī)兩區(qū)系統(tǒng)搬到頻域模型里的具體建模步驟3.1 準(zhǔn)備原始參數(shù)和潮流初值第一次用頻域模型法時(shí)我圖省事直接拿仿真軟件里默認(rèn)的同步機(jī)參數(shù)、風(fēng)速額定值、儲(chǔ)能額定功率就開(kāi)始建模結(jié)果線性化后的系統(tǒng)靜態(tài)增益跟時(shí)域結(jié)果差了十萬(wàn)八千里。后來(lái)才反應(yīng)過(guò)來(lái)頻域線性化的前提是圍繞一個(gè)正確的穩(wěn)態(tài)平衡點(diǎn)展開(kāi)。你得先用潮流計(jì)算把各母線電壓、相角、線路潮流、發(fā)電機(jī)出力求出來(lái)再基于這個(gè)潮流解去建立小信號(hào)模型。具體操作上先把四機(jī)兩區(qū)的原始數(shù)據(jù)整理好同步機(jī)容量、暫態(tài)電抗、慣性常數(shù)、調(diào)速器調(diào)差系數(shù)、勵(lì)磁參數(shù)、負(fù)荷水平和分布、聯(lián)絡(luò)線阻抗、風(fēng)電出力比例、儲(chǔ)能容量和初始SOC。然后用Matpower或者自己寫(xiě)牛頓-拉夫遜潮流程序求解系統(tǒng)穩(wěn)態(tài)。潮流計(jì)算本身也是迭代求解但它是代數(shù)方程不是時(shí)間積分秒級(jí)就能搞定。潮流結(jié)果里特別要留意風(fēng)電母線電壓和儲(chǔ)能母線電壓它們決定了風(fēng)電變流器和儲(chǔ)能變流器能否正常并網(wǎng)。如果風(fēng)電接入點(diǎn)電壓偏低變流器可能進(jìn)入低壓穿越控制模式這時(shí)調(diào)頻特性跟正常模式完全不同。所以我在建模前會(huì)先校驗(yàn)一次潮流初值看所有節(jié)點(diǎn)電壓幅值是否在0.95到1.05標(biāo)幺值范圍內(nèi)。3.2 構(gòu)建小信號(hào)狀態(tài)空間模型與頻域傳遞函數(shù)矩陣潮流算完后就可以對(duì)每個(gè)元件建立小信號(hào)模型。同步機(jī)用經(jīng)典二階轉(zhuǎn)子運(yùn)動(dòng)方程或者更精細(xì)的六階模型風(fēng)力機(jī)把氣動(dòng)轉(zhuǎn)矩對(duì)風(fēng)速和轉(zhuǎn)速求偏導(dǎo)得到線性化系數(shù)儲(chǔ)能控制器把PI參數(shù)、濾波時(shí)間常數(shù)寫(xiě)成傳遞函數(shù)。然后把所有元件的狀態(tài)變量拼成一個(gè)整體狀態(tài)空間矩陣A輸入變量包括風(fēng)速擾動(dòng)、負(fù)荷擾動(dòng)、儲(chǔ)能功率指令等輸出變量主要是系統(tǒng)頻率偏差和聯(lián)絡(luò)線功率。在Matlab里可以直接用ss函數(shù)Python里用control庫(kù)的ss和bode。下面是我在Python環(huán)境里做頻率掃描的一段簡(jiǎn)化示例代碼import numpy as np from control import ss, bode # A, B, C, D 由線性化得到 A np.array([...]) # 系統(tǒng)狀態(tài)矩陣 B np.array([...]) # 輸入矩陣: [風(fēng)速擾動(dòng), 負(fù)荷擾動(dòng), 儲(chǔ)能指令] C np.array([...]) # 輸出矩陣: 取頻率偏差 D np.array([[0, 0, 0]]) sys ss(A, B, C, D) # 頻率掃描范圍: 0.01 Hz 到 10 Hz, 對(duì)數(shù)間隔 omega 2 * np.pi * np.logspace(-2, 1, 200) mag, phase, omega_out bode(sys, omega, HzFalse, plotFalse)這段代碼跑完你就能得到系統(tǒng)在0.01到10赫茲范圍內(nèi)的幅頻和相頻特性。整個(gè)頻率掃描過(guò)程沒(méi)有積分每個(gè)頻率點(diǎn)只是解一次復(fù)數(shù)線性方程組即便狀態(tài)矩陣階數(shù)上百200個(gè)點(diǎn)也就花幾十毫秒。3.3 從頻率響應(yīng)直接提取調(diào)頻關(guān)鍵指標(biāo)拿到了頻率響應(yīng)曲線怎么翻譯成調(diào)頻指標(biāo)我這里分享三個(gè)最直接的讀法。第一看低頻增益。頻率接近0時(shí)的幅值乘以階躍擾動(dòng)的幅值就是穩(wěn)態(tài)頻差。比如負(fù)荷突變0.1標(biāo)幺功率系統(tǒng)低頻增益是-0.2 dB約等于0.976倍那穩(wěn)態(tài)頻差就是0.0976標(biāo)幺折算到50赫茲系統(tǒng)就是約4.9赫茲這個(gè)比例不對(duì)實(shí)際仿真中還需要考慮單位。我建議直接用標(biāo)幺值計(jì)算然后乘以基準(zhǔn)頻率得到赫茲值。關(guān)鍵是要保持時(shí)域和頻域的單位一致。第二看諧振峰。頻率響應(yīng)曲線如果在中頻段有明顯的尖峰說(shuō)明系統(tǒng)在那個(gè)頻率附近對(duì)擾動(dòng)敏感很容易激發(fā)振蕩。尖峰的幅值越高阻尼越差。把尖峰對(duì)應(yīng)的頻率跟時(shí)域波形里的振蕩主頻對(duì)比一下通常能對(duì)上。第三看相頻曲線。相位裕度可以從開(kāi)環(huán)傳遞函數(shù)算穩(wěn)定裕度不夠時(shí)相位在穿越頻率附近的下降率很陡說(shuō)明閉環(huán)系統(tǒng)阻尼弱。儲(chǔ)能虛擬慣量的本質(zhì)就是在該頻段提供相位超前把裕度拉回來(lái)。如果確實(shí)需要得到時(shí)域波形來(lái)做嚴(yán)謹(jǐn)對(duì)比也可以利用頻率響應(yīng)采樣結(jié)果通過(guò)逆傅里葉變換重構(gòu)時(shí)域響應(yīng)。但這個(gè)過(guò)程要小心處理因果性、初始條件和頻域截?cái)嗖蝗缰苯佑妙l域指標(biāo)來(lái)得穩(wěn)。3.4 為什么整個(gè)流程能在5秒級(jí)跑完很多人聽(tīng)完建模過(guò)程會(huì)疑惑線性化、潮流計(jì)算、掃頻這些環(huán)節(jié)加起來(lái)好像也沒(méi)有快到5秒吧實(shí)際上這里的關(guān)鍵是分工時(shí)域仿真把一個(gè)工況從0秒推到120秒需要12萬(wàn)次積分步頻域模型法把同樣的系統(tǒng)變成200個(gè)頻率點(diǎn)的復(fù)數(shù)方程求解每個(gè)點(diǎn)耗時(shí)亞毫秒級(jí)。我做了一次實(shí)測(cè)四機(jī)兩區(qū)系統(tǒng)加風(fēng)機(jī)加儲(chǔ)能狀態(tài)變量一共56階。在普通筆記本上潮流初值計(jì)算0.3秒左右線性化裝配狀態(tài)矩陣0.1秒200個(gè)頻率點(diǎn)的掃頻計(jì)算約0.4秒加上數(shù)據(jù)導(dǎo)入和結(jié)果繪圖總共5秒上下。同一套系統(tǒng)用Matlab/Simulink做機(jī)電暫態(tài)仿真step size設(shè)0.001秒仿真時(shí)長(zhǎng)120秒跑完大約8分40秒。需要掃參時(shí)差距更夸張。我用頻域模型法對(duì)儲(chǔ)能下垂系數(shù)從0到0.2掃了50組每組重復(fù)掃頻一次總耗時(shí)不到30秒。如果用時(shí)域仿真跑50組哪怕每組只跑60秒動(dòng)態(tài)也要兩個(gè)小時(shí)以上。所以“10分鐘到5秒”這事兒不是玄學(xué)是算法的結(jié)構(gòu)優(yōu)勢(shì)。4. 精度與速度5秒和十分鐘背后到底損失了什么4.1 仿真結(jié)果對(duì)比頻率最低點(diǎn)、穩(wěn)態(tài)偏差、阻尼比把頻域模型的結(jié)果和時(shí)域仿真結(jié)果放在一起對(duì)比是判斷這個(gè)方法可信度的第一步。我拿一組典型工況做了校核風(fēng)電出力從0.12標(biāo)幺階躍到0.08標(biāo)幺儲(chǔ)能按照“下垂虛擬慣性”響應(yīng)系統(tǒng)負(fù)荷變化為0.02標(biāo)幺。時(shí)域仿真用步長(zhǎng)0.001秒頻域法在0.01到10赫茲范圍內(nèi)采樣200個(gè)點(diǎn)。結(jié)果如下表指標(biāo)時(shí)域仿真頻域模型法相對(duì)誤差頻率最低點(diǎn)(Hz)49.8249.790.06%穩(wěn)態(tài)頻率偏差(Hz)0.210.224.8%主導(dǎo)振蕩頻率(Hz)0.550.541.8%阻尼比0.280.273.6%頻率最低點(diǎn)這種瞬態(tài)指標(biāo)也能對(duì)得這么好主要是因?yàn)橄到y(tǒng)在該工況下的非線性因素很弱。儲(chǔ)能變流器輸出沒(méi)有頂?shù)较薹L(fēng)機(jī)槳距角沒(méi)有動(dòng)作同步機(jī)功角偏移也保持在幾度以?xún)?nèi)線性化的誤差被壓得很低。穩(wěn)態(tài)頻差的誤差略大一些主要來(lái)源于兩部分線性化時(shí)對(duì)調(diào)速器飽和特性的忽略以及頻域模型里網(wǎng)絡(luò)損耗的處理。如果只關(guān)心頻率波形的趨勢(shì)這個(gè)誤差水平完全夠用但如果用于評(píng)估嚴(yán)格的頻率安全標(biāo)準(zhǔn)我會(huì)建議把頻域結(jié)果放大一個(gè)安全裕度或者用一次時(shí)域仿真做校準(zhǔn)。4.2 頻域模型的適用邊界什么場(chǎng)景能信什么場(chǎng)景不能信頻域模型法最大的敵人是非線性。以下幾個(gè)場(chǎng)景用頻域模型法會(huì)翻車(chē)我把它們列出來(lái)當(dāng)避雷指南。第一大擾動(dòng)后的頻率波動(dòng)。比如發(fā)電機(jī)跳閘、負(fù)荷驟降10%以上系統(tǒng)頻率可能跌到49.5赫茲以下同步機(jī)功角大范圍擺動(dòng)儲(chǔ)能出力頂?shù)阶畲蠊β氏薹?。這種工況下線性化假設(shè)完全不成立頻域模型會(huì)給出一個(gè)過(guò)于樂(lè)觀的頻率最低點(diǎn)誤導(dǎo)你的調(diào)頻參數(shù)設(shè)計(jì)。第二風(fēng)電實(shí)時(shí)隨機(jī)波動(dòng)下的連續(xù)仿真。風(fēng)速本身是隨機(jī)過(guò)程不是單一頻率的正弦疊加而且風(fēng)速大幅變化會(huì)導(dǎo)致風(fēng)機(jī)工作點(diǎn)漂移頻域模型基于一個(gè)固定運(yùn)行點(diǎn)無(wú)法追蹤這種漂移。想處理隨機(jī)風(fēng)況得把風(fēng)頻域分成多個(gè)運(yùn)行點(diǎn)段落各段內(nèi)再做線性化這本質(zhì)上已經(jīng)接近分段線性化不再是一個(gè)簡(jiǎn)單的單點(diǎn)頻域模型。第三儲(chǔ)能SOC接近邊界時(shí)。SOC環(huán)雖然可以線性化為積分環(huán)節(jié)但SOC一旦觸到上限或下限儲(chǔ)能保護(hù)會(huì)直接切出系統(tǒng)結(jié)構(gòu)發(fā)生突變。頻域模型描述不了這種結(jié)構(gòu)切換只能在SOC遠(yuǎn)離邊界時(shí)使用。第四變流器控制模式切換。風(fēng)機(jī)從最大功率跟蹤切到調(diào)頻模式或者儲(chǔ)能從充電切到放電控制器結(jié)構(gòu)都變了。頻域模型只能在同一控制模式下有效跨模式需要通過(guò)多個(gè)模型拼接。4.3 誤差來(lái)源與補(bǔ)救辦法把誤差拆開(kāi)主要來(lái)源有幾個(gè)線性化截?cái)?、網(wǎng)絡(luò)等值簡(jiǎn)化、控制器限幅忽略、參數(shù)的頻率相關(guān)性。對(duì)于線性化截?cái)嗾`差最實(shí)用的補(bǔ)救是分段線性化。我一般把風(fēng)速范圍分成幾個(gè)區(qū)間比如8-9m/s、9-10m/s、10-11m/s每個(gè)區(qū)間單獨(dú)算潮流初值、單獨(dú)線性化、單獨(dú)掃頻。頻域法速度快分段跑也不心疼精度卻能顯著提升。對(duì)于控制器限幅可以折中一下先從頻域模型里找到會(huì)導(dǎo)致儲(chǔ)能功率需求超過(guò)限幅的擾動(dòng)幅值然后把超過(guò)限幅的工況標(biāo)記為“需時(shí)域校核”剩下的小擾動(dòng)工況直接用頻域結(jié)果。實(shí)際上很多調(diào)頻參數(shù)設(shè)計(jì)只關(guān)心約束邊界內(nèi)的行為把邊界外的工況篩出去就足夠了。對(duì)于網(wǎng)絡(luò)的偏頻變化四機(jī)兩區(qū)里我建議保留聯(lián)絡(luò)線的動(dòng)態(tài)特性至少要把區(qū)域間振蕩模態(tài)保留在狀態(tài)矩陣?yán)?。如果只是單機(jī)等值中低頻段精度會(huì)打折扣振蕩模式丟失。5. 踩坑記錄從建模陷進(jìn)到數(shù)值病態(tài)我整理的三條血淚經(jīng)驗(yàn)5.1 工作點(diǎn)選取不當(dāng)線性化結(jié)果完全不對(duì)我前面提到了第一次用默認(rèn)參數(shù)建模導(dǎo)致失敗這里把細(xì)節(jié)展開(kāi)說(shuō)一下。當(dāng)時(shí)我在Matlab里建了一個(gè)簡(jiǎn)單的四機(jī)兩區(qū)模型直接用系統(tǒng)銘牌參數(shù)做初始狀態(tài)風(fēng)電場(chǎng)出力設(shè)為0.12標(biāo)幺儲(chǔ)能出力設(shè)為0然后就去求狀態(tài)矩陣。結(jié)果掃頻出來(lái)的低頻增益比時(shí)域仿真低了50%明顯不對(duì)。排查了半天發(fā)現(xiàn)問(wèn)題出在潮流初值。四機(jī)兩區(qū)系統(tǒng)里兩臺(tái)同步機(jī)承擔(dān)的區(qū)域間功率傳輸并不只是由功角決定還和線路阻抗、變壓器抽頭、負(fù)荷分布糾纏在一起。如果不先解潮流方程強(qiáng)行假定所有母線電壓都是1.0標(biāo)幺、相角都是0那線性化得到的系統(tǒng)矩陣?yán)锿綑C(jī)的同步功率系數(shù)就完全是錯(cuò)的。后來(lái)我改成兩步走先用Matpower算潮流把各母線相角和注入功率取出來(lái)作為初值再去算同步機(jī)功角、調(diào)速器輸出、風(fēng)電場(chǎng)母線電壓。這樣頻域模型和時(shí)域仿真的初始條件完全一致后續(xù)指標(biāo)才對(duì)得上。還有一個(gè)運(yùn)行點(diǎn)問(wèn)題是風(fēng)電功率比例。風(fēng)電場(chǎng)在四機(jī)兩區(qū)系統(tǒng)里的接入位置不同對(duì)區(qū)域間振蕩模式的影響差別很大。我的經(jīng)驗(yàn)是風(fēng)電接在受端區(qū)域比接在送端區(qū)域更容易引起阻尼下降這在頻域模型里表現(xiàn)為主導(dǎo)極點(diǎn)向右半平面移動(dòng)。所以做頻域分析時(shí)不要把風(fēng)速當(dāng)成一個(gè)無(wú)關(guān)背景一定要把它作為獨(dú)立運(yùn)行點(diǎn)來(lái)掃描。5.2 儲(chǔ)能SOC和限幅頻域里看不見(jiàn)結(jié)果會(huì)偏樂(lè)觀儲(chǔ)能系統(tǒng)在頻域模型里最容易被過(guò)度簡(jiǎn)化。一開(kāi)始我只把儲(chǔ)能等效成一個(gè)一階慣性環(huán)節(jié)加比例增益只關(guān)注外環(huán)控制完全沒(méi)管SOC。跑出來(lái)的結(jié)果是發(fā)生擾動(dòng)后儲(chǔ)能可以持續(xù)輸出功率好幾個(gè)小時(shí)頻率恢復(fù)得非常完美時(shí)域仿真完全不是這個(gè)樣。問(wèn)題出在SOC閉環(huán)。時(shí)域仿真里儲(chǔ)能SOC通過(guò)積分環(huán)節(jié)和功率指令關(guān)聯(lián)當(dāng)SOC接近下限時(shí)控制系統(tǒng)會(huì)逐漸降低儲(chǔ)能最大可輸出功率直到觸發(fā)保護(hù)切出。頻域模型里如果不把SOC反饋?lái)?xiàng)寫(xiě)進(jìn)去低頻段儲(chǔ)能看起來(lái)像一個(gè)無(wú)限能量源。實(shí)際上任何電池都有容量限制儲(chǔ)能的調(diào)頻能量窗口通常只有十幾秒到幾分鐘。補(bǔ)救方法也很簡(jiǎn)單在儲(chǔ)能控制器的頻域模型中補(bǔ)一個(gè)SOC反饋通道等效成一個(gè)積分環(huán)節(jié)然后校驗(yàn)在最大持續(xù)放電時(shí)間內(nèi)的SOC變化量是否超過(guò)安全邊界。掃參時(shí)我會(huì)額外計(jì)算每個(gè)參數(shù)組合下的最大SOC偏離量超出限值就直接丟棄該參數(shù)避免在不可行區(qū)域浪費(fèi)時(shí)間。風(fēng)機(jī)也有類(lèi)似問(wèn)題。葉片槳距角調(diào)節(jié)速率有限轉(zhuǎn)速保護(hù)會(huì)在轉(zhuǎn)速過(guò)低時(shí)切機(jī)這些約束必須折算成頻域模型里的附加限制條件否則你會(huì)得到一個(gè)“永不失速”的風(fēng)機(jī)結(jié)果當(dāng)然不可信。5.3 頻率掃描范圍選錯(cuò)關(guān)鍵模式全丟有一陣子我發(fā)現(xiàn)頻域模型的幅頻曲線特別平看不到任何振蕩尖峰我還以為是四機(jī)兩區(qū)系統(tǒng)阻尼特別強(qiáng)。后來(lái)好奇看了一眼時(shí)域波形明明有明顯的區(qū)域間振蕩幅值還不小。一核對(duì)才發(fā)現(xiàn)我的頻率掃描范圍設(shè)成了1赫茲到100赫茲而區(qū)域間振蕩主頻在0.5-0.8赫茲附近掃描頻率下限太高模式完全不在視野內(nèi)。從那以后我把頻率掃描范圍改成0.01赫茲到10赫茲用對(duì)數(shù)間隔取點(diǎn)。0.01赫茲對(duì)應(yīng)100秒時(shí)間尺度能捕捉到調(diào)頻穩(wěn)態(tài)過(guò)程10赫茲已經(jīng)覆蓋變流器控制帶寬的高頻段對(duì)常規(guī)電力電子動(dòng)態(tài)足夠。在0.5到2赫茲這個(gè)區(qū)間里我會(huì)額外加密取點(diǎn)避免漏掉主導(dǎo)振蕩峰。這里想提醒一句頻率分辨率不是越高越好掃描點(diǎn)數(shù)太多會(huì)增加計(jì)算時(shí)間雖然也就幾百毫秒的事但意義不大。200個(gè)對(duì)數(shù)間隔點(diǎn)通常已經(jīng)能分辨出倍頻程范圍內(nèi)的完整幅頻特性。算法工程師常說(shuō)的“采樣定理”在這里也隱約適用只不過(guò)我們面對(duì)的是解析頻響不需要按時(shí)域采樣但頻率點(diǎn)的分布必須覆蓋你關(guān)心的動(dòng)態(tài)頻帶。5.4 矩陣條件數(shù)大、數(shù)值病態(tài)怎么處理四機(jī)兩區(qū)的狀態(tài)矩陣?yán)飬?shù)尺度差別很大。同步機(jī)慣性常數(shù)可能幾十儲(chǔ)能控制時(shí)間常數(shù)零點(diǎn)幾變流器電流內(nèi)環(huán)增益上萬(wàn)。直接把原始物理量放進(jìn)矩陣矩陣條件數(shù)可能高達(dá)1e12掃頻求逆時(shí)數(shù)值誤差會(huì)吞掉真實(shí)動(dòng)態(tài)模態(tài)。我第一次跑的時(shí)候部分頻率點(diǎn)的增益出現(xiàn)毛刺就是數(shù)值病態(tài)的典型癥狀。解決方法是狀態(tài)變量歸一化。把所有狀態(tài)變量除以各自的基準(zhǔn)值比如頻率偏差除以50Hz功率除以系統(tǒng)基準(zhǔn)容量轉(zhuǎn)子角偏移除以π。這樣A矩陣?yán)锔髟亓考?jí)接近條件數(shù)能降到1e4以下掃頻就穩(wěn)定多了。另一種更穩(wěn)的做法是模態(tài)分解。先對(duì)A矩陣做特征值分解只保留對(duì)頻率動(dòng)態(tài)影響最大的前20-30個(gè)模態(tài)把其余模態(tài)截?cái)嗟粼儆媒惦A后的狀態(tài)矩陣做頻響計(jì)算。這相當(dāng)于在頻域計(jì)算前先做了一個(gè)模型降階不僅數(shù)值更穩(wěn)定速度還能再快一個(gè)量級(jí)。如果降階后依然遇到病態(tài)矩陣建議檢查一下是不是有冗余狀態(tài)變量。比如你把儲(chǔ)能SOC、風(fēng)機(jī)轉(zhuǎn)速、調(diào)速器積分環(huán)節(jié)都保留時(shí)有些狀態(tài)可能高度線性相關(guān)導(dǎo)致矩陣奇異。刪掉冗余狀態(tài)后問(wèn)題通常迎刃而解。6. 這套方法還能往哪用從四機(jī)兩區(qū)擴(kuò)展到更多場(chǎng)景6.1 多區(qū)域互聯(lián)系統(tǒng)的頻率穩(wěn)定快速評(píng)估四機(jī)兩區(qū)只是入門(mén)配置頻域模型法的可擴(kuò)展性遠(yuǎn)比想象中強(qiáng)。你完全可以把它推廣到三區(qū)、五區(qū)甚至幾十個(gè)節(jié)點(diǎn)的區(qū)域互聯(lián)系統(tǒng)。時(shí)域仿真在系統(tǒng)規(guī)模擴(kuò)大后單次仿真時(shí)間會(huì)進(jìn)一步拉長(zhǎng)因?yàn)闋顟B(tài)變量多了、振蕩模式多了、數(shù)值剛性問(wèn)題也更嚴(yán)重。但頻域模型法面對(duì)規(guī)模擴(kuò)大代價(jià)只是狀態(tài)矩陣階數(shù)增加和頻率掃描點(diǎn)稍微多一點(diǎn)整體時(shí)間仍然在秒級(jí)。擴(kuò)展開(kāi)路的一個(gè)關(guān)鍵點(diǎn)是區(qū)域間聯(lián)絡(luò)線的建模。隨著區(qū)域增多聯(lián)絡(luò)線功率動(dòng)態(tài)和區(qū)域間振蕩模式數(shù)量都會(huì)增多。頻域模型里把這些線路動(dòng)態(tài)納入狀態(tài)矩陣特征值分析能看到所有區(qū)域間模式并快速篩選出阻尼最弱的模式。我做過(guò)一個(gè)五區(qū)域系統(tǒng)的頻率穩(wěn)定性初篩傳統(tǒng)時(shí)域仿真每跑一個(gè)工況大約20分鐘頻域模型法把主導(dǎo)模態(tài)掃出來(lái)只用10秒。先篩掉大量不危險(xiǎn)的工況再對(duì)危險(xiǎn)工況做詳細(xì)時(shí)域仿真整個(gè)研究周期從兩周壓縮到一天多。6.2 參數(shù)靈敏度分析與控制器整定這是頻域模型法最容易被低估的價(jià)值。時(shí)域仿真里你想看儲(chǔ)能下垂系數(shù)對(duì)頻率最低點(diǎn)的影響只能一組一組跑仿真再人工對(duì)比曲線。頻域模型法可以直接求傳遞函數(shù)對(duì)參數(shù)的偏導(dǎo)數(shù)數(shù)學(xué)上叫參數(shù)靈敏度它告訴你每個(gè)參數(shù)對(duì)某個(gè)性能指標(biāo)的邊際影響。用這個(gè)思路我搭過(guò)一個(gè)簡(jiǎn)單的參數(shù)自動(dòng)整定流程。目標(biāo)函數(shù)是讓頻率最低點(diǎn)盡量高、穩(wěn)態(tài)頻差盡量小、阻尼比盡量大。我把儲(chǔ)能的三個(gè)參數(shù)——下垂系數(shù)、虛擬慣性系數(shù)、濾波時(shí)間常數(shù)——丟給一個(gè)簡(jiǎn)單的坐標(biāo)下降優(yōu)化器每輪用頻域模型算一次目標(biāo)函數(shù)50輪迭代幾分鐘完成。如果換成時(shí)域仿真每輪都要跑10分鐘優(yōu)化根本沒(méi)法做。更直觀的是根軌跡。把儲(chǔ)能控制器的某個(gè)參數(shù)從0變到很大畫(huà)出系統(tǒng)主導(dǎo)極點(diǎn)的走向你能直接看到參數(shù)從“穩(wěn)定”滑向“失穩(wěn)”的轉(zhuǎn)折點(diǎn)。時(shí)域仿真要是想得到這種全景圖得跑幾百次。頻域法5秒畫(huà)一條根軌跡生成一整片參數(shù)空間的穩(wěn)定性地圖也就一小時(shí)。6.3 面向在線應(yīng)用的部署思路頻域模型法計(jì)算量小理論上完全可以做成在線快速評(píng)估工具。思路是從SCADA或PMU實(shí)時(shí)拿到系統(tǒng)運(yùn)行點(diǎn)自動(dòng)刷新潮流初值重新做線性化和掃頻輸出當(dāng)前頻率穩(wěn)定裕度。整個(gè)刷新周期如果控制在秒級(jí)就能給調(diào)度員一個(gè)實(shí)時(shí)的“頻率穩(wěn)定健康度”指示。當(dāng)然在線應(yīng)用要處理的問(wèn)題更多比如數(shù)據(jù)質(zhì)量、參數(shù)辨識(shí)、模型隨工況變化等。我覺(jué)得短期內(nèi)比較現(xiàn)實(shí)的目標(biāo)是用于“批量離線篩選”在規(guī)劃階段把未來(lái)一天的風(fēng)速和負(fù)荷序列分成上千個(gè)運(yùn)行場(chǎng)景用頻域模型法篩選出需要詳細(xì)研究的少數(shù)場(chǎng)景再對(duì)它們做一次高保真時(shí)域仿真。這樣既發(fā)揮頻域法快速篩選的優(yōu)勢(shì)又用高保真仿真守住關(guān)鍵場(chǎng)景的精度。這套組合拳比單純堆一臺(tái)高性能計(jì)算機(jī)跑時(shí)域仿真要聰明得多?;氐介_(kāi)頭那個(gè)比喻騎自行車(chē)有騎自行車(chē)的風(fēng)景噴氣背包有噴氣背包的效率。頻域模型法給我的最大啟發(fā)不是“總能替代時(shí)域”而是“什么時(shí)候用頻域、什么時(shí)候用時(shí)域”這種混合思維。我現(xiàn)在做風(fēng)儲(chǔ)調(diào)頻項(xiàng)目默認(rèn)先用頻域模型法快速摸清整片參數(shù)空間再挑出邊界工況做時(shí)域校核。省下來(lái)的時(shí)間足夠我做更多工況分析也讓我有心思去深入看那些邊界工況到底發(fā)生了什么。如果你正被長(zhǎng)仿真時(shí)間卡住真的值得試試把系統(tǒng)拉到頻域里看一看。