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