點(diǎn)系統(tǒng)建模與動(dòng)態(tài)仿真核心要點(diǎn))
在電力系統(tǒng)研究圈子里IEEE 39節(jié)點(diǎn)系統(tǒng)新英格蘭系統(tǒng)幾乎是每個(gè)做穩(wěn)定分析、控制策略、新能源接入的研究生繞不開(kāi)的“標(biāo)準(zhǔn)練習(xí)場(chǎng)”。我第一次接觸MATLAB和IEEE 10機(jī)39節(jié)點(diǎn)系統(tǒng)數(shù)據(jù)建模時(shí)滿(mǎn)以為把case39跑通就萬(wàn)事大吉結(jié)果光是從數(shù)據(jù)文件到動(dòng)態(tài)仿真可展示的曲線(xiàn)就折騰了將近兩周。回頭來(lái)看這中間最磨人的不是MATLAB本身而是數(shù)據(jù)里的隱藏邏輯和建模時(shí)的順序安排。這篇文章我會(huì)把整個(gè)建模過(guò)程拆開(kāi)講清楚圍繞IEEE 10機(jī)39節(jié)點(diǎn)系統(tǒng)數(shù)據(jù)從數(shù)據(jù)來(lái)源、數(shù)據(jù)表結(jié)構(gòu)、MATLAB建模路線(xiàn)到發(fā)電機(jī)/勵(lì)磁/調(diào)速器參數(shù)如何灌進(jìn)去再到潮流驗(yàn)證和動(dòng)態(tài)仿真的坑點(diǎn)一步步還原我當(dāng)時(shí)是怎么把模型搭起來(lái)的。適合正在復(fù)現(xiàn)論文、做畢業(yè)設(shè)計(jì)或者剛接手39節(jié)點(diǎn)系統(tǒng)相關(guān)項(xiàng)目的同學(xué)。文末附的排查鏈路都是我實(shí)際踩過(guò)坑之后的復(fù)盤(pán)希望能幫你少走彎路。1. 為什么39節(jié)點(diǎn)系統(tǒng)成了電力系統(tǒng)研究的“工業(yè)標(biāo)準(zhǔn)”測(cè)試床1.1 一個(gè)系統(tǒng)三代算法驗(yàn)證很多人會(huì)問(wèn)IEEE 39節(jié)點(diǎn)系統(tǒng)不過(guò)是一組數(shù)據(jù)憑什么成為論文里的??痛鸢冈谟谒M的是一塊真實(shí)規(guī)模的輸電網(wǎng)骨架——39個(gè)母線(xiàn)、10臺(tái)同步發(fā)電機(jī)、34條輸電線(xiàn)路、12臺(tái)變壓器外加19個(gè)負(fù)荷點(diǎn)。這個(gè)規(guī)模既不會(huì)大到讓初學(xué)者摸不著頭腦又足夠體現(xiàn)出多機(jī)系統(tǒng)里最關(guān)鍵的動(dòng)態(tài)行為區(qū)間振蕩、暫態(tài)失穩(wěn)、頻率跌落與恢復(fù)。以我的實(shí)際體驗(yàn)來(lái)說(shuō)單機(jī)無(wú)限大母線(xiàn)系統(tǒng)的仿真結(jié)果說(shuō)服力有限評(píng)審一看就覺(jué)得“太簡(jiǎn)單”而139節(jié)點(diǎn)甚至上千節(jié)點(diǎn)的模型又讓參數(shù)整定變得異常頭疼。39節(jié)點(diǎn)恰好卡在一個(gè)“能給結(jié)論提供證據(jù)又能對(duì)參數(shù)設(shè)置解釋清楚”的甜點(diǎn)位置。你在39節(jié)點(diǎn)系統(tǒng)上驗(yàn)證了某個(gè)控制策略評(píng)審?fù)ǔ2粫?huì)質(zhì)疑系統(tǒng)規(guī)模不夠因?yàn)檫@是公認(rèn)的標(biāo)準(zhǔn)測(cè)試系統(tǒng)。從數(shù)據(jù)屬性看39節(jié)點(diǎn)系統(tǒng)包含了豐富的母線(xiàn)電壓等級(jí)標(biāo)準(zhǔn)版本統(tǒng)一簡(jiǎn)化為標(biāo)幺值、不同容量的機(jī)組配置最大機(jī)組與最小機(jī)組容量差距接近10倍和典型的負(fù)荷分布。這些特征意味著在極短的時(shí)間內(nèi)你可以測(cè)試出電壓穩(wěn)定、頻率穩(wěn)定、功角穩(wěn)定三條主線(xiàn)的問(wèn)題。很多控制算法論文的仿真章節(jié)開(kāi)頭第一句基本都是“以IEEE 39節(jié)點(diǎn)系統(tǒng)為例”這已經(jīng)成了業(yè)內(nèi)默認(rèn)的“工業(yè)標(biāo)準(zhǔn)”。1.2 新英格蘭系統(tǒng)的數(shù)據(jù)血脈從經(jīng)典文獻(xiàn)到MATPOWER你可能會(huì)好奇這些數(shù)據(jù)最初從哪里來(lái)IEEE 39節(jié)點(diǎn)系統(tǒng)的雛形源自上世紀(jì)60年代末美國(guó)新英格蘭地區(qū)實(shí)際電網(wǎng)的簡(jiǎn)化模型后來(lái)經(jīng)過(guò)多位學(xué)者的整理與修訂逐漸形成目前通行的版本。其中Pai教授在《Energy Function Analysis for Power System Stability》一書(shū)里給出了非常詳細(xì)的動(dòng)態(tài)參數(shù)和潮流參數(shù)表這份經(jīng)典數(shù)據(jù)直到今天仍是很多自編程序的默認(rèn)輸入。MATLAB生態(tài)里最常用的數(shù)據(jù)入口是MATPOWER工具包中的case39.m文件。MATPOWER把母線(xiàn)數(shù)據(jù)、發(fā)電機(jī)數(shù)據(jù)、支路數(shù)據(jù)整理成結(jié)構(gòu)清晰的矩陣格式用幾條命令就能做一次潮流計(jì)算。很多剛接觸的人以為case39.m里只有母線(xiàn)、發(fā)電機(jī)和支路三類(lèi)表實(shí)際上它至少包含六個(gè)核心數(shù)據(jù)塊其中發(fā)電機(jī)動(dòng)態(tài)參數(shù)是單獨(dú)存放的有些版本甚至把調(diào)速器和勵(lì)磁系統(tǒng)的參數(shù)也一并給出。我強(qiáng)烈建議你拿到任何版本的“39節(jié)點(diǎn)數(shù)據(jù)”后先查看數(shù)據(jù)文件頭注釋搞清楚它基于哪篇文獻(xiàn)、哪些參數(shù)被修改過(guò)。不同版本之間負(fù)荷數(shù)值、發(fā)電機(jī)無(wú)功上限、變壓器變比都會(huì)有差異。用錯(cuò)版本輕則潮流不收斂重則動(dòng)態(tài)仿真曲線(xiàn)完全不符合物理規(guī)律。2. 動(dòng)手前必須理清的數(shù)據(jù)清單與參數(shù)單位2.1 母線(xiàn)、發(fā)電機(jī)、分支三類(lèi)核心數(shù)據(jù)表MATPOWER格式的case39.m遵守通用的數(shù)據(jù)列定義母線(xiàn)和發(fā)電機(jī)的每一列都有明確含義。我第一次建模時(shí)就吃過(guò)“列對(duì)不上”的虧自己手動(dòng)改數(shù)據(jù)的時(shí)候多打了一個(gè)空格結(jié)果MATPOWER把某列整體右移一位潮流計(jì)算直接報(bào)錯(cuò)。母線(xiàn)數(shù)據(jù)表bus的關(guān)鍵列包括母線(xiàn)編號(hào)、母線(xiàn)類(lèi)型1代表PQ節(jié)點(diǎn)2代表PV節(jié)點(diǎn)3代表松弛節(jié)點(diǎn)、有功負(fù)荷、無(wú)功負(fù)荷、并聯(lián)電導(dǎo)、并聯(lián)電納、電壓幅值初始值、電壓相角初始值等。39節(jié)點(diǎn)系統(tǒng)的母線(xiàn)編號(hào)從1到39其中編號(hào)39的母線(xiàn)通常是松弛母線(xiàn)也是系統(tǒng)參考節(jié)點(diǎn)。發(fā)電機(jī)數(shù)據(jù)表gen的關(guān)鍵列包括所在母線(xiàn)編號(hào)、有功出力、無(wú)功出力、電壓幅值設(shè)定值、有功出力上下限、無(wú)功出力上下限等。10臺(tái)發(fā)電機(jī)分布在母線(xiàn)30到39上這意味著前29個(gè)母線(xiàn)都是純負(fù)荷或聯(lián)絡(luò)節(jié)點(diǎn)。分支數(shù)據(jù)表branch的關(guān)鍵列包括起始母線(xiàn)、終止母線(xiàn)、電阻R、電抗X、充電電納B、長(zhǎng)細(xì)比變比等。我在實(shí)際建模時(shí)通常先用一個(gè)很小的腳本把三類(lèi)表打印出來(lái)核對(duì)確認(rèn)母線(xiàn)編號(hào)連續(xù)、發(fā)電機(jī)母線(xiàn)沒(méi)有落在分支表里找不到的位置然后再開(kāi)始搭建模型。這個(gè)核對(duì)過(guò)程十分鐘就能做完但能省下后面整整一天的排查時(shí)間。下表是建模前必查的幾項(xiàng)關(guān)鍵信息數(shù)據(jù)表必查項(xiàng)目常見(jiàn)錯(cuò)誤母線(xiàn)表松弛母線(xiàn)編號(hào)、負(fù)荷是否有功/無(wú)功缺失松弛母線(xiàn)設(shè)置為0導(dǎo)致全系統(tǒng)無(wú)參考節(jié)點(diǎn)發(fā)電機(jī)表有功出力與總負(fù)荷是否大體平衡發(fā)電機(jī)有功與母線(xiàn)負(fù)荷差距過(guò)大潮流失衡分支表電阻R不能為負(fù)極少數(shù)情況除外電阻為負(fù)導(dǎo)致潮流計(jì)算病態(tài)動(dòng)態(tài)參數(shù)發(fā)電機(jī)H、xd、Tdo等是否齊全只給穩(wěn)態(tài)參數(shù)動(dòng)態(tài)仿真沒(méi)法跑2.2 動(dòng)態(tài)模型參數(shù)才是建模仿真的主角如果只做潮流計(jì)算母線(xiàn)、發(fā)電機(jī)、分支三類(lèi)表就夠了。但如果你目標(biāo)是做暫態(tài)穩(wěn)定仿真或者動(dòng)態(tài)響應(yīng)分析必須額外獲取發(fā)電機(jī)的動(dòng)態(tài)參數(shù)包括直軸同步電抗xd、交軸同步電抗xq、直軸暫態(tài)電抗xd、直軸次暫態(tài)電抗xd、交軸暫態(tài)電抗xq、交軸次暫態(tài)電抗xq、直軸暫態(tài)開(kāi)路時(shí)間常數(shù)Tdo、直軸次暫態(tài)開(kāi)路時(shí)間常數(shù)Tdo、交軸暫態(tài)開(kāi)路時(shí)間常數(shù)Tqo、交軸次暫態(tài)開(kāi)路時(shí)間常數(shù)Tqo以及機(jī)組慣性時(shí)間常數(shù)H和機(jī)械阻尼系數(shù)。有一點(diǎn)特別需要留意MATPOWER自帶的case39.m并不一定包含完整的動(dòng)態(tài)參數(shù)。很多從網(wǎng)上下載的“39節(jié)點(diǎn)動(dòng)態(tài)數(shù)據(jù)”文件其實(shí)是另外單獨(dú)存放的動(dòng)態(tài)數(shù)據(jù)矩陣比如經(jīng)典的mac_em格式或Psat格式。你需要確認(rèn)自己拿到的數(shù)據(jù)里有沒(méi)有這些電抗和時(shí)間常數(shù)如果沒(méi)有就得從Pai的書(shū)中或者IEEE相關(guān)標(biāo)準(zhǔn)參數(shù)表里補(bǔ)錄。以我常用的系統(tǒng)為例10臺(tái)發(fā)電機(jī)的慣量常數(shù)H大致分布在一個(gè)較寬的區(qū)間最大機(jī)組H可達(dá)5秒量級(jí)最小機(jī)組可能只有3秒左右。勵(lì)磁系統(tǒng)參數(shù)常用的有高增益快速勵(lì)磁模型增益K大概在數(shù)十到200之間時(shí)間常數(shù)T約0.01到0.1秒。調(diào)速器的下垂系數(shù)通常在0.04到0.06之間也就是4%到6%的調(diào)速率。提示拿到動(dòng)態(tài)參數(shù)后一定要檢查發(fā)電機(jī)容量基準(zhǔn)是否統(tǒng)一。很多數(shù)據(jù)文件里發(fā)電機(jī)參數(shù)是標(biāo)幺值但實(shí)際功率基值可能是100 MVA系統(tǒng)基準(zhǔn)也可能是單機(jī)額定容量基準(zhǔn)。如果不統(tǒng)一動(dòng)態(tài)仿真的振蕩頻率和阻尼比會(huì)完全失真。2.3 基準(zhǔn)值與單位換算的經(jīng)典坑39節(jié)點(diǎn)系統(tǒng)的基準(zhǔn)功率通常是100 MVA頻率是60 Hz。你把一臺(tái)額定容量1000 MVA的發(fā)電機(jī)接到系統(tǒng)里這臺(tái)發(fā)電機(jī)在100 MVA基準(zhǔn)下的標(biāo)幺值電抗和在自己額定容量基準(zhǔn)下的標(biāo)幺值電抗是不同數(shù)值。很多人在數(shù)據(jù)轉(zhuǎn)換時(shí)漏了這一步導(dǎo)致動(dòng)態(tài)曲線(xiàn)的振蕩頻率和文獻(xiàn)對(duì)不上。單位換算公式其實(shí)很簡(jiǎn)單新基準(zhǔn)下的標(biāo)幺值 舊基準(zhǔn)下的標(biāo)幺值 × (舊基準(zhǔn)功率 / 新基準(zhǔn)功率)。但實(shí)際操作時(shí)你還要留意電壓基準(zhǔn)是否一致。39節(jié)點(diǎn)系統(tǒng)的電壓等級(jí)被簡(jiǎn)化處理通常把整個(gè)網(wǎng)絡(luò)的電壓基準(zhǔn)統(tǒng)一看作一個(gè)標(biāo)幺系統(tǒng)母線(xiàn)電壓默認(rèn)在1.0 pu附近所以電壓換算在大多數(shù)情況下不需要額外處理但仍需確認(rèn)。我自己的習(xí)慣是先把所有發(fā)電機(jī)參數(shù)在統(tǒng)一的100 MVA基準(zhǔn)下重新核算一遍再寫(xiě)入模型。這樣后續(xù)添加負(fù)荷模型、調(diào)頻器參數(shù)時(shí)所有量綱都是統(tǒng)一的不會(huì)出現(xiàn)“參數(shù)看起來(lái)正常但仿真結(jié)果離譜”的尷尬情況。3. MATLAB建39節(jié)點(diǎn)模型的四條路線(xiàn)與取舍3.1 路線(xiàn)一MATPOWER流程序列MATPOWER是目前復(fù)現(xiàn)39節(jié)點(diǎn)潮流最簡(jiǎn)單的方式。你只需要把case39.m放到MATLAB路徑下然后執(zhí)行mpc loadcase(case39); results runpf(mpc);跑出來(lái)的結(jié)果里包含各母線(xiàn)電壓幅值、相角、發(fā)電機(jī)出力、線(xiàn)路潮流。如果一切正常你會(huì)看到收斂信息并可以進(jìn)一步用printpf輸出詳細(xì)潮流報(bào)告。做潮流研究時(shí)這條路線(xiàn)的效率最高幾乎不涉及建模適合快速驗(yàn)證網(wǎng)絡(luò)參數(shù)是否正確。但要注意MATPOWER本身是不帶動(dòng)態(tài)仿真引擎的。它能用來(lái)驗(yàn)證穩(wěn)態(tài)潮流和數(shù)據(jù)文件正確性但后續(xù)的動(dòng)態(tài)分析還是要借助Simulink、PSAT或者自編程序。我在實(shí)際項(xiàng)目里通常用MATPOWER做“數(shù)據(jù)入口”先驗(yàn)證39節(jié)點(diǎn)數(shù)據(jù)文件本身沒(méi)有錯(cuò)誤再進(jìn)入下一步。3.2 路線(xiàn)二Simscape Electrical圖形化建模Simscape Electrical以前叫SimPowerSystems或Specialized Power Systems提供了可視化的元件庫(kù)可以直接拖拽同步電機(jī)、變壓器、線(xiàn)路、負(fù)荷等模塊。對(duì)于習(xí)慣看圖的同學(xué)這條路線(xiàn)最直觀。但我要坦誠(chéng)地說(shuō)一句用圖形化方式搭完整的39節(jié)點(diǎn)系統(tǒng)工作量比想象中大得多。你需要手工放置10臺(tái)同步電機(jī)配置每臺(tái)電機(jī)的參數(shù)接上變壓器和傳輸線(xiàn)再設(shè)置三相負(fù)荷。連線(xiàn)稍有疏漏就可能導(dǎo)致仿真報(bào)錯(cuò)而且排查起來(lái)非常痛苦。有一種省力的做法是使用MATLAB中的powergui配合“Machine initialization”工具自動(dòng)完成潮流初始化。做完這一步同步電機(jī)初始狀態(tài)會(huì)被自動(dòng)設(shè)置你只需要設(shè)定好故障模塊的時(shí)間邏輯即可。即便如此10臺(tái)機(jī)組逐一配置參數(shù)的時(shí)間成本也不低我建議先用腳本生成參數(shù)矩陣再批量導(dǎo)入到模塊參數(shù)里而不是逐個(gè)手動(dòng)敲。3.3 路線(xiàn)三PSAT快速上手PSATPower System Analysis Toolbox是MATLAB環(huán)境下專(zhuān)門(mén)做電力系統(tǒng)靜態(tài)和動(dòng)態(tài)分析的開(kāi)源工具箱它對(duì)39節(jié)點(diǎn)系統(tǒng)的支持非常友好。PSAT里可以直接載入d_039_ieee.m之類(lèi)的數(shù)據(jù)文件運(yùn)行潮流、特征值分析、時(shí)域仿真都可以在圖形界面里點(diǎn)選完成。如果你不想糾結(jié)Simulink連線(xiàn)又想快速拿到動(dòng)態(tài)響應(yīng)曲線(xiàn)PSAT是性?xún)r(jià)比很高的選擇。它內(nèi)置了多種發(fā)電機(jī)模型如二階經(jīng)典模型、四階模型、六階模型、勵(lì)磁系統(tǒng)模型、調(diào)速器模型和負(fù)荷模型。你在PSAT圖形界面里選中系統(tǒng)后可以設(shè)置三相短路故障在任意母線(xiàn)上然后觀察所有發(fā)電機(jī)的功角曲線(xiàn)。PSAT的缺點(diǎn)是對(duì)于某些自定義控制策略不夠靈活。如果你想接入一個(gè)自己設(shè)計(jì)的控制器用PSAT就得改工具箱底層代碼過(guò)程比較繁瑣。所以我通常把PSAT當(dāng)作“對(duì)照驗(yàn)證工具”用自編模型和PSAT結(jié)果做交叉校驗(yàn)確認(rèn)兩者趨勢(shì)一致。3.4 路線(xiàn)四自編潮流與狀態(tài)矩陣如果你有科研需求比如要提取系統(tǒng)狀態(tài)矩陣做小信號(hào)穩(wěn)定分析或者要驗(yàn)證自己設(shè)計(jì)的控制器在不同運(yùn)行點(diǎn)下的效果自編基于矩陣的模型往往更合適。這種路線(xiàn)的核心思路是用39節(jié)點(diǎn)的導(dǎo)納矩陣Y加上發(fā)電機(jī)注入電流模型迭代求解潮流在潮流解處線(xiàn)性化狀態(tài)方程得到A、B、C、D矩陣。自編矩陣的優(yōu)勢(shì)在于“每一行代碼都由自己控制”參數(shù)修改靈活能直接構(gòu)造你需要的狀態(tài)空間模型。但這意味著所有數(shù)據(jù)預(yù)處理都要自己寫(xiě)腳本比如從case39.m中提取導(dǎo)納矩陣、重新排列母線(xiàn)次序、處理PV節(jié)點(diǎn)到PQ節(jié)點(diǎn)的轉(zhuǎn)換等。一個(gè)很實(shí)用的技巧是先用MATPOWER算出穩(wěn)態(tài)運(yùn)行點(diǎn)再把自己程序的潮流結(jié)果和MATPOWER結(jié)果對(duì)比偏差小于1e-6就可以認(rèn)為是正確的。下面是我常用的一個(gè)從case39.m提取導(dǎo)納矩陣的示例mpc loadcase(case39); Ybus makeYbus(mpc); Gbus real(Ybus); Bbus imag(Ybus);這段代碼極其簡(jiǎn)單但整個(gè)自編模型的基礎(chǔ)幾乎都源于它。拿到Y(jié)矩陣之后發(fā)電機(jī)節(jié)點(diǎn)和負(fù)荷節(jié)點(diǎn)的注入電流就可以由矩陣乘法得到再結(jié)合發(fā)電機(jī)動(dòng)態(tài)方程搭出微分代數(shù)方程組。4. 從靜態(tài)潮流到動(dòng)態(tài)仿真發(fā)電機(jī)、勵(lì)磁與調(diào)速器裝配細(xì)節(jié)4.1 發(fā)電機(jī)六階模型的參數(shù)填充39節(jié)點(diǎn)系統(tǒng)標(biāo)配的10臺(tái)同步發(fā)電機(jī)在經(jīng)典暫態(tài)研究中常被簡(jiǎn)化為二階模型只保留轉(zhuǎn)子運(yùn)動(dòng)方程但如果你想得到接近真實(shí)電網(wǎng)的響應(yīng)至少要用四階或六階模型。四階模型通常包括轉(zhuǎn)子運(yùn)動(dòng)方程、d軸暫態(tài)電樞反應(yīng)、q軸暫態(tài)電樞反應(yīng)六階模型則再多考慮次暫態(tài)效應(yīng)和勵(lì)磁繞組動(dòng)態(tài)。以六階模型為例主要狀態(tài)變量包括轉(zhuǎn)子角增量、轉(zhuǎn)速偏差、d軸暫態(tài)電動(dòng)勢(shì)、q軸暫態(tài)電動(dòng)勢(shì)、d軸次暫態(tài)電動(dòng)勢(shì)、q軸次暫態(tài)電動(dòng)勢(shì)。每一臺(tái)發(fā)電機(jī)的這六個(gè)狀態(tài)量都需要由電抗和時(shí)間常數(shù)共同決定。參數(shù)來(lái)源就是前面提到的動(dòng)態(tài)數(shù)據(jù)表里面會(huì)給每臺(tái)發(fā)電機(jī)對(duì)應(yīng)的xd、xq、xd、xq、xd、xq、Tdo、Tqo、Tdo、Tqo等。實(shí)際填寫(xiě)時(shí)最容易出錯(cuò)的地方是“時(shí)間常數(shù)跟電抗不配套”。有的數(shù)據(jù)文件給了次暫態(tài)電抗卻沒(méi)給次暫態(tài)時(shí)間常數(shù)有的給了直軸時(shí)間常數(shù)沒(méi)給交軸時(shí)間常數(shù)。一旦某個(gè)時(shí)間常數(shù)缺了六階模型就缺了微分方程的一部分仿真很容易出現(xiàn)數(shù)值剛性。我的辦法是做一個(gè)參數(shù)檢查函數(shù)把所有發(fā)電機(jī)參數(shù)讀進(jìn)來(lái)后自動(dòng)檢查是否缺項(xiàng)requiredFields {H,xd,xq,x1d,x1q,x2d,x2q,... T1do,T1qo,T2do,T2qo}; for k 1:10 assert(all(isfield(genParam(k), requiredFields)), ... [Machine , num2str(k), missing parameters]); end這個(gè)腳本雖然簡(jiǎn)單但在幾十臺(tái)機(jī)組的大規(guī)模模型里能救命能幫你瞬間定位缺參數(shù)的那臺(tái)機(jī)組。4.2 勵(lì)磁系統(tǒng)與PSS的必要性單獨(dú)一臺(tái)同步發(fā)電機(jī)如果不加勵(lì)磁系統(tǒng)它的機(jī)端電壓會(huì)隨著外部擾動(dòng)劇烈波動(dòng)。為了維持電壓和穩(wěn)定性39節(jié)點(diǎn)系統(tǒng)的每臺(tái)發(fā)電機(jī)都必須配置勵(lì)磁系統(tǒng)模型。經(jīng)典的IEEE DC1型勵(lì)磁機(jī)模型包含一個(gè)主勵(lì)磁慣性環(huán)節(jié)、電壓調(diào)差環(huán)節(jié)、飽和限制環(huán)節(jié)。如果數(shù)據(jù)資料不足可以用簡(jiǎn)化的一階勵(lì)磁模型來(lái)做初步仿真默認(rèn)增益在20到100之間時(shí)間常數(shù)在0.02秒到0.1秒之間。我個(gè)人的經(jīng)驗(yàn)是勵(lì)磁系統(tǒng)增益太高容易造成機(jī)端電壓和轉(zhuǎn)子角的小幅振蕩增益太低又無(wú)法維持穩(wěn)態(tài)電壓精度。你可以把勵(lì)磁增益從50開(kāi)始試如果系統(tǒng)出現(xiàn)單調(diào)不穩(wěn)定的趨勢(shì)再逐步降低到20左右。這個(gè)過(guò)程雖然有些試錯(cuò)性質(zhì)但也正是理解勵(lì)磁系統(tǒng)控制邏輯的最好方法。在很多研究論文里還會(huì)給勵(lì)磁系統(tǒng)配置電力系統(tǒng)穩(wěn)定器也就是PSS。PSS的作用是通過(guò)附加阻尼信號(hào)來(lái)抑制低頻振蕩通常用超前-滯后環(huán)節(jié)實(shí)現(xiàn)。加不加PSS對(duì)動(dòng)態(tài)曲線(xiàn)的形態(tài)影響很大不加PSS擾動(dòng)后的功角曲線(xiàn)可能出現(xiàn)持續(xù)振蕩甚至負(fù)阻尼發(fā)散加上整定好的PSS振蕩會(huì)在幾秒內(nèi)收斂。注意如果你的仿真里機(jī)組之間出現(xiàn)了明顯的0.2到2 Hz區(qū)間振蕩而文獻(xiàn)結(jié)果里系統(tǒng)是穩(wěn)定的很可能就是漏了PSS。但反過(guò)來(lái)有些經(jīng)典測(cè)試數(shù)據(jù)本身就不帶PSS它的目的就是讓你觀察不穩(wěn)定現(xiàn)象。所以一定要先確認(rèn)你使用的數(shù)據(jù)版本與論文是否一致。4.3 負(fù)荷模型的ZIP比例設(shè)置負(fù)荷模型是39節(jié)點(diǎn)建模里最容易被一帶而過(guò)、卻對(duì)結(jié)果影響巨大的部分。很多資料把負(fù)荷簡(jiǎn)單當(dāng)成恒阻抗但39節(jié)點(diǎn)系統(tǒng)在動(dòng)態(tài)仿真里如果要模擬電壓驟降后的實(shí)際行為就必須把負(fù)荷拆成三類(lèi)恒阻抗Z、恒電流I、恒功率P也就是所謂的ZIP模型。ZIP模型里恒功率部分在電壓跌落時(shí)會(huì)吸收幾乎不變的有功功率這會(huì)讓系統(tǒng)更容易失穩(wěn)恒阻抗部分則隨電壓平方變化具有天然的“負(fù)荷阻尼”效果。所以同樣的故障恒功率占比高的場(chǎng)景更容易出現(xiàn)電壓崩潰。在MATLAB環(huán)境下你可以在每個(gè)負(fù)荷母線(xiàn)上設(shè)置一個(gè)并聯(lián)的三相負(fù)載模塊每個(gè)模塊內(nèi)部按比例分配ZIP分量。沒(méi)有精確數(shù)據(jù)時(shí)可采用常見(jiàn)的典型配比比如恒阻抗40%、恒電流30%、恒功率30%或者更保守一點(diǎn)恒阻抗60%、恒功率40%。仿真后對(duì)比不同ZIP比例下的頻率最低點(diǎn)和功角最大擺開(kāi)程度你可以更清楚看到負(fù)荷特性對(duì)穩(wěn)定性的影響。5. 實(shí)測(cè)踩坑不收斂、發(fā)散與振蕩頻率失真的排查鏈路5.1 潮流不收斂先查母線(xiàn)類(lèi)型與松弛設(shè)置我在第一次跑39節(jié)點(diǎn)潮流時(shí)遇到過(guò)一段無(wú)比折磨的報(bào)錯(cuò)MATLAB提示“Newtons method did not converge”。當(dāng)時(shí)的直覺(jué)是數(shù)據(jù)有問(wèn)題于是我把負(fù)荷、線(xiàn)路參數(shù)逐行檢查了一遍結(jié)果發(fā)現(xiàn)數(shù)據(jù)本身完全正確。最后定位到的問(wèn)題非常低級(jí)松弛母線(xiàn)的編號(hào)雖然在39但它的負(fù)荷沒(méi)有設(shè)置為0導(dǎo)致全網(wǎng)有功不平衡。在潮流計(jì)算中松弛母線(xiàn)是功率不平衡的“兜底站”它的有功和無(wú)功不是預(yù)先給定的固定值而是根據(jù)全網(wǎng)功率平衡計(jì)算出來(lái)的。如果松弛母線(xiàn)本身還掛著大負(fù)荷迭代過(guò)程就會(huì)被這個(gè)負(fù)荷干擾嚴(yán)重時(shí)直接不收斂。正確的做法是按標(biāo)準(zhǔn)數(shù)據(jù)設(shè)置松弛母線(xiàn)有功負(fù)荷為0電壓幅值設(shè)為1.0左右。另一個(gè)常見(jiàn)陷阱是PV節(jié)點(diǎn)的無(wú)功越限。39節(jié)點(diǎn)系統(tǒng)里很多發(fā)電機(jī)有無(wú)功出力上下限如果某個(gè)PV節(jié)點(diǎn)為了維持電壓需要的無(wú)功超出了上限潮流程序就會(huì)把它轉(zhuǎn)換為PQ節(jié)點(diǎn)。在MATPOWER中這個(gè)處理自動(dòng)化得很好但如果你自己寫(xiě)潮流程序就必須在迭代循環(huán)中顯式處理無(wú)功越限否則結(jié)果會(huì)錯(cuò)誤。5.2 動(dòng)態(tài)仿真起步就發(fā)散的問(wèn)題潮流跑通之后很多人會(huì)立刻接入動(dòng)態(tài)模型結(jié)果仿真一啟動(dòng)就發(fā)散。這種發(fā)散的原因很多但我碰到最多的兩個(gè)原因分別是發(fā)電機(jī)初始角度與潮流計(jì)算結(jié)果不一致以及機(jī)械功率與電磁功率初始值不匹配。同步電機(jī)的動(dòng)態(tài)模型需要設(shè)置初始轉(zhuǎn)子角。這個(gè)初始角應(yīng)當(dāng)由潮流計(jì)算給出的發(fā)電機(jī)輸出有功和端電壓共同決定不能隨便設(shè)一個(gè)零值。使用PSAT或Simscape Electrical時(shí)這些工具會(huì)自動(dòng)初始化問(wèn)題不大用自編模型就需要自己根據(jù)潮流結(jié)果計(jì)算初始功角δ0 atan((P_gen - ...)/...)之類(lèi)的公式具體形式取決于你使用的坐標(biāo)變換和發(fā)電機(jī)模型。機(jī)械功率的初始值與穩(wěn)態(tài)輸出有功有關(guān)。如果發(fā)電機(jī)穩(wěn)態(tài)輸出100 MW但調(diào)速器初始機(jī)械功率設(shè)為0那么仿真一開(kāi)始發(fā)電機(jī)就會(huì)劇烈加速因?yàn)殡姽β蚀笥跈C(jī)械功率轉(zhuǎn)子動(dòng)能不斷累積最終發(fā)散。正確的做法是把初始機(jī)械功率設(shè)置為等于穩(wěn)態(tài)電功率除非你特意模擬甩負(fù)荷。我排查這類(lèi)問(wèn)題時(shí)習(xí)慣先做一次只有一臺(tái)發(fā)電機(jī)帶一個(gè)常阻抗負(fù)荷的簡(jiǎn)化仿真確認(rèn)發(fā)電機(jī)模型本身可以穩(wěn)定運(yùn)行再逐步擴(kuò)展到39節(jié)點(diǎn)全系統(tǒng)。這樣做可以隔離問(wèn)題如果簡(jiǎn)化系統(tǒng)正常說(shuō)明問(wèn)題在數(shù)據(jù)裝配或負(fù)荷設(shè)置如果簡(jiǎn)化系統(tǒng)也發(fā)散說(shuō)明發(fā)電機(jī)模型參數(shù)或者初始化公式有問(wèn)題。5.3 判據(jù)振蕩頻率怎樣才算對(duì)39節(jié)點(diǎn)系統(tǒng)的動(dòng)態(tài)仿真完成后很多人不知道結(jié)果是否可信。一個(gè)非常有效的驗(yàn)證方法是看系統(tǒng)在擾動(dòng)后的低頻振蕩頻率。標(biāo)準(zhǔn)39節(jié)點(diǎn)系統(tǒng)在特定運(yùn)行點(diǎn)下存在典型的區(qū)間振蕩模式頻率通常在0.3到0.8 Hz之間。你用FFT或POD分析功角曲線(xiàn)如果振蕩頻率明顯偏離這個(gè)范圍就要懷疑參數(shù)基準(zhǔn)或者勵(lì)磁時(shí)間常數(shù)設(shè)置是否正確。如果你手里有PSAT可以直接用小信號(hào)分析功能算出系統(tǒng)的特征值看看最關(guān)鍵的機(jī)電振蕩模態(tài)頻率和阻尼比。因?yàn)?9節(jié)點(diǎn)系統(tǒng)是一個(gè)多機(jī)系統(tǒng)可能有多個(gè)機(jī)電振蕩模式每個(gè)模式對(duì)應(yīng)不同的機(jī)組參與因子。觀察哪個(gè)機(jī)群相對(duì)哪個(gè)機(jī)群擺動(dòng)可以幫助你判斷系統(tǒng)是否保持了新英格蘭系統(tǒng)的典型動(dòng)態(tài)特征。一個(gè)讓我印象深刻的教訓(xùn)是某次仿真里振蕩頻率高達(dá)1.5 Hz遠(yuǎn)超正常范圍。我折騰了很久才意識(shí)到原因是自己的發(fā)電機(jī)慣性常數(shù)H實(shí)際用了“秒”的單位數(shù)值卻誤當(dāng)成了“rad/s”的歸一化數(shù)值導(dǎo)致時(shí)間尺度整體錯(cuò)誤。把所有發(fā)電機(jī)的H重新?lián)Q算到統(tǒng)一基準(zhǔn)后頻率立刻回到0.6 Hz附近曲線(xiàn)瞬間合理了。5.4 故障設(shè)置的時(shí)間邏輯動(dòng)態(tài)仿真必然要設(shè)置擾動(dòng)比如三相短路、切機(jī)、切負(fù)荷。39節(jié)點(diǎn)系統(tǒng)建模里最常見(jiàn)的擾動(dòng)是母線(xiàn)三相短路通常的時(shí)序是0到1秒系統(tǒng)穩(wěn)定運(yùn)行1秒時(shí)發(fā)生短路1.1秒后故障切除。這個(gè)0.1秒的故障持續(xù)時(shí)間看似隨意實(shí)際上決定了系統(tǒng)是否會(huì)失去暫態(tài)穩(wěn)定。如果故障時(shí)間過(guò)長(zhǎng)比如持續(xù)0.3秒以上系統(tǒng)很可能直接失穩(wěn)功角曲線(xiàn)發(fā)散這反而不利于觀察控制器效果。我一般會(huì)先用0.1秒作為基準(zhǔn)然后逐步增加故障時(shí)間找到系統(tǒng)的臨界切除時(shí)間。用這個(gè)臨界值來(lái)測(cè)試各種控制器的性能比單純比較同一擾動(dòng)下的曲線(xiàn)更有說(shuō)服力。在Simulink/Simscape Electrical里設(shè)置短路故障可以用“Three-Phase Fault”模塊把故障時(shí)間設(shè)定在仿真時(shí)間軸的指定區(qū)間。注意故障模塊的接地電阻要設(shè)成很小的值比如0.001歐姆模擬金屬性短路如果設(shè)成0某些求解器可能產(chǎn)生數(shù)值奇異。6. 建模完成之后的進(jìn)階擴(kuò)展6.1 用39節(jié)點(diǎn)系統(tǒng)驗(yàn)證控制算法39節(jié)點(diǎn)系統(tǒng)模型一旦跑通后面的事情就順了。你可以很自然地用它來(lái)驗(yàn)證各種控制算法比如設(shè)計(jì)廣域阻尼控制器、儲(chǔ)能參與調(diào)頻、風(fēng)電接入后的穩(wěn)定性分析、低壓減載策略等。因?yàn)橄到y(tǒng)規(guī)模適中MATLAB腳本可以在幾分鐘內(nèi)完成時(shí)域仿真方便批量測(cè)試參數(shù)。我自己最常用的一種擴(kuò)展方式是把其中一臺(tái)同步發(fā)電機(jī)替換成雙饋風(fēng)電機(jī)組DFIG然后在故障工況下對(duì)比替換前后的系統(tǒng)振蕩特性。由于39節(jié)點(diǎn)系統(tǒng)的母線(xiàn)拓?fù)浜途€(xiàn)路參數(shù)都很明確替換位置的選擇可以基于電氣距離分析選出對(duì)區(qū)間振蕩模式影響最大的母線(xiàn)這樣實(shí)驗(yàn)設(shè)計(jì)邏輯更嚴(yán)謹(jǐn)。6.2 數(shù)據(jù)修正與自定義參數(shù)的落地方式拿到手的數(shù)據(jù)不一定完美有時(shí)母線(xiàn)電壓幅值設(shè)定為1.0但負(fù)荷水平過(guò)高導(dǎo)致潮流結(jié)果里部分節(jié)點(diǎn)電壓低于0.90。標(biāo)準(zhǔn)39節(jié)點(diǎn)數(shù)據(jù)通常不會(huì)出現(xiàn)這個(gè)問(wèn)題但你如果修改過(guò)負(fù)荷或線(xiàn)路參數(shù)就需要做數(shù)據(jù)修正。修改數(shù)據(jù)前務(wù)必保留原始數(shù)據(jù)文件建議把case39.m復(fù)制一份為case39_modified.m在副本上做改動(dòng)。改完之后順序執(zhí)行三步驗(yàn)證首先跑一次潮流確認(rèn)母線(xiàn)電壓都在合理范圍0.94到1.06 pu之間其次做一次小擾動(dòng)仿真比如負(fù)荷階躍1%確認(rèn)系統(tǒng)能返回穩(wěn)態(tài)最后做一次三相短路故障仿真確認(rèn)動(dòng)態(tài)響應(yīng)波形符合物理預(yù)期。這樣三步驗(yàn)證都通過(guò)后你的39節(jié)點(diǎn)模型才真正可復(fù)用于后續(xù)研究。6.3 面向2026年數(shù)學(xué)建模競(jìng)賽的遷移思路近兩年數(shù)學(xué)建模競(jìng)賽的題目越來(lái)越多地涉及電力系統(tǒng)相關(guān)數(shù)據(jù)甚至出現(xiàn)“給定IEEE節(jié)點(diǎn)系統(tǒng)數(shù)據(jù)設(shè)計(jì)負(fù)荷恢復(fù)策略”之類(lèi)的任務(wù)。如果你之前已經(jīng)搭好了39節(jié)點(diǎn)模型比賽時(shí)就能快速遷移。另一個(gè)值得關(guān)注的方向是MATLAB優(yōu)化工具箱在39節(jié)點(diǎn)系統(tǒng)里的配合使用比如用粒子群算法或遺傳算法優(yōu)化發(fā)電機(jī)有功出力使得全系統(tǒng)網(wǎng)損最小。做這類(lèi)優(yōu)化問(wèn)題時(shí)可以把潮流計(jì)算嵌入目標(biāo)函數(shù)每更新一次粒子位置就調(diào)用一次runpf求取網(wǎng)損。系統(tǒng)規(guī)模不大即使迭代100代總計(jì)算時(shí)間也不會(huì)太夸張。這個(gè)思路在數(shù)學(xué)建模競(jìng)賽里屬于有一定區(qū)分度的做法比單純拿模板套用要新穎得多。還有一類(lèi)熱度持續(xù)上升的玩法是結(jié)合MATLAB的數(shù)據(jù)可視化能力把39節(jié)點(diǎn)系統(tǒng)的電壓分布、線(xiàn)路負(fù)載率、發(fā)電機(jī)功率分配畫(huà)成豐富的彩虹圖或極坐標(biāo)圖。評(píng)閱老師看到這種圖通常會(huì)眼前一亮這也是為什么我一直建議大家不要只停留在跑通數(shù)據(jù)而要把“數(shù)據(jù)結(jié)果可視化”當(dāng)作建模的一部分。7. 關(guān)于參數(shù)整定與結(jié)果復(fù)現(xiàn)的額外叮囑最后分享一個(gè)我踩過(guò)很多次坑之后養(yǎng)成的習(xí)慣所有參數(shù)修改必須留下記錄。39節(jié)點(diǎn)系統(tǒng)建模過(guò)程中你可能為了逼真度修改負(fù)荷比例為了穩(wěn)定性調(diào)整勵(lì)磁增益為了特定場(chǎng)景調(diào)整故障時(shí)間。如果不記錄這些修改兩周后回頭看自己的仿真結(jié)果會(huì)完全想不起來(lái)當(dāng)時(shí)是怎么得到那條曲線(xiàn)的。我通常維護(hù)一個(gè)簡(jiǎn)單的文本文件或者Excel里面記錄每一項(xiàng)參數(shù)修改的日期、修改前數(shù)值、修改后數(shù)值和修改原因。做畢業(yè)設(shè)計(jì)或者發(fā)論文時(shí)這份記錄會(huì)成為“結(jié)果可復(fù)現(xiàn)”的重要支撐。評(píng)審老師問(wèn)你某個(gè)參數(shù)為什么取這個(gè)值你能拿出全程記錄比空口解釋有說(shuō)服力得多。另外不要把網(wǎng)上隨便下載的“39節(jié)點(diǎn)數(shù)據(jù)”當(dāng)作圣旨。不同來(lái)源的數(shù)據(jù)存在差異是常態(tài)你需要以最原始的經(jīng)典文獻(xiàn)為準(zhǔn)或者以MATPOWER自帶的官方case39.m為基礎(chǔ)一步步做替換。仿真結(jié)果的復(fù)現(xiàn)本質(zhì)上依賴(lài)數(shù)據(jù)版本的一致你用的數(shù)據(jù)版本和論文不一致效果自然無(wú)法對(duì)齊。我在實(shí)際研究中還有一個(gè)小心得39節(jié)點(diǎn)系統(tǒng)模型的驗(yàn)證沒(méi)必要一上來(lái)就追求完美。先做“能跑通”再看物理合理性再談“復(fù)現(xiàn)文獻(xiàn)結(jié)果”。這三個(gè)階段分別對(duì)應(yīng)“程序正確”“參數(shù)單位正確”“模型場(chǎng)景一致”每一層解決一類(lèi)問(wèn)題。如果你在調(diào)參過(guò)程中感覺(jué)到毫無(wú)頭緒多半是前面某個(gè)階段的基礎(chǔ)還沒(méi)打牢回頭檢查往往比繼續(xù)調(diào)參更有效。從MATLAB載入case39.m跑通潮流到加入動(dòng)態(tài)模型觀察功角搖擺再到驗(yàn)證阻尼控制器的效果這條路我走過(guò)不止一遍。每次走到最后都會(huì)發(fā)現(xiàn)真正難的不是MATLAB命令而是你對(duì)39節(jié)點(diǎn)系統(tǒng)數(shù)據(jù)本身的理解深度。希望這篇文章能幫你一次性繞開(kāi)我當(dāng)年踩過(guò)的坑把精力真正花在系統(tǒng)分析和控制策略設(shè)計(jì)上。