試詳解)
直接做±800kV VSC-HVDC的Matlab仿真模型在不少搞電力電子和電力系統(tǒng)的人眼里是一件“看起來很唬人”的事。電壓等級一上去很多人第一反應(yīng)是“模型這么大、參數(shù)這么多跑得動嗎會不會發(fā)散控制器怎么調(diào)”我一向覺得仿真模型的核心目的不是復(fù)刻一個電網(wǎng)工程而是把直流輸電里最關(guān)鍵的物理過程和控制邏輯跑明白。真到了寫論文、出方案、做初步設(shè)計的時候一個能在Matlab/Simulink里穩(wěn)定跑起來、波形合理、能響應(yīng)功率階躍和直流故障的VSC-HVDC模型比一堆手算公式有用得多。這篇文章就把我搭±800kV VSC-HVDC仿真模型的經(jīng)驗完整梳理一遍包括整體架構(gòu)怎么分層、MMC子模塊參數(shù)怎么定、控制器怎么設(shè)計、仿真中常見的“跑飛”問題怎么排查最后給出一套可以直接改參數(shù)用的模型骨架。內(nèi)容面向已經(jīng)學(xué)過電力電子、但還沒完整搭過直流輸電仿真的研究生和工程師也適合正在做畢業(yè)設(shè)計或預(yù)研項目、需要快速出一個可信結(jié)果的同行??赐瓴徽f能手搓一個商用級柔直工程但至少能讓你從0到1搭出一個能跑、能看波形、能改控制策略的VSC-HVDC模型并且知道每個模塊為什么這么設(shè)計。1. 模型層面的整體設(shè)計與方案選型1.1 為什么要用VSC-HVDC而不是常規(guī)直流LCC-HVDC先聊最基本的。LCC-HVDC用的是晶閘管電流單向換相需要交流系統(tǒng)提供換相電壓所以它天生存在“換相失敗”的問題在弱交流系統(tǒng)里尤其難受。VSC-HVDC用的是IGBT高壓大容量場景現(xiàn)在用IGBT串聯(lián)或MMC拓?fù)淇梢宰該Q相能分別獨立控制有功和無功還能向無源網(wǎng)絡(luò)供電。這些優(yōu)點在教科書里寫得很清楚真正搭模型的時候你會更直觀地感受到VSC-HVDC的控制自由度更高外環(huán)給定有功、無功內(nèi)環(huán)輸出dq軸電壓指令整個控制鏈路非常清晰不像LCC那樣還要考慮觸發(fā)角、關(guān)斷角那一堆非線性關(guān)系。而800kV這個電壓等級意味著單極對地電壓800kV雙極就是±800kV。早期VSC-HVDC受限于IGBT耐壓和損耗很難做到這么高電壓后來MMC模塊化多電平換流器把幾百個IGBT子模塊串聯(lián)起來通過階梯波逼近正弦才把VSC-HVDC推到了特高壓等級。所以你在Matlab里搭800kV模型本質(zhì)上用的就是MMC拓?fù)涠皇莾呻娖交蛉娖絍SC。這一點先明確后面所有參數(shù)和控制都圍繞MMC展開。1.2 Matlab/Simulink搭建模型的兩條路線Simulink里實現(xiàn)MMC-HVDC常見做法有三種我分別說說利弊。第一種是詳細(xì)模型Detailed ModelDM把每個子模塊的IGBT、電容、旁路開關(guān)全部用元件庫搭出來。這種模型最精準(zhǔn)能看出每個子模塊電容電壓的波動、能模擬IGBT的開通關(guān)斷細(xì)節(jié)但計算量非常大。一個換流器如果每相有幾百個子模塊整個系統(tǒng)就是幾千個開關(guān)器件仿真步長必須很小跑一次階躍響應(yīng)可能幾個小時都跑不完。第二種是平均值模型Average Value ModelAVM用受控電壓源和受控電流源來等效換流器對外特性完全忽略子模塊內(nèi)部的開關(guān)過程。AVM算得最快適合做中長期動態(tài)過程或者機(jī)電暫態(tài)分析但你沒法看電容電壓均衡和環(huán)流抑制這些MMC特有的內(nèi)部動態(tài)。第三種是介于兩者之間的簡化模型也是我最常用的做法把每個橋臂用一個“等效子模塊”來表示即用一個大電容加一個受控電壓源替代整個橋臂的級聯(lián)子模塊同時保留MMC的外特性橋臂電壓可控、橋臂電流存在但內(nèi)部子模塊充放電用一個等效電容來模擬。Simulink的Simscape Electrical里就有現(xiàn)成的MMC模塊可以直接設(shè)置子模塊數(shù)、橋臂電抗、子模塊電容它內(nèi)部用的就是這種簡化建模思路。我之前試過純手搭詳細(xì)模型也試過直接用現(xiàn)成模塊最終穩(wěn)定用的是Simscape Electrical里的MMC模型加自定義控制。為什么這樣選因為800kV級別的MMC每個橋臂子模塊數(shù)量動輒幾百個詳細(xì)模型在Matlab里根本跑不動而純平均值模型又會丟失環(huán)流和電容電壓波動這些關(guān)鍵信息。Simscape里那個MMC模塊本質(zhì)上等效但內(nèi)部包含了子模塊電容動態(tài)我實測下來在保持關(guān)鍵物理特征的同時仿真速度能比詳細(xì)模型快一個數(shù)量級以上。對做控制策略研究來說這個精度完全夠了。1.3 仿真整體架構(gòu)雙端還是單端很多初學(xué)者一上來就想搭一個完整的雙端±800kV直流輸電系統(tǒng)結(jié)果一邊送電一邊受電兩個MMC的控制策略還要相互配合參數(shù)整定難度直接翻倍。我的建議是第一步先搭一個“單換流器-等效交流系統(tǒng)-直流側(cè)電壓源”的模型把單個MMC的控制策略驗證清楚再擴(kuò)展成雙端。什么意思呢就是先讓一個換流器帶一個直流電壓源或者一個純電阻負(fù)載驗證它的調(diào)制、電容均壓、環(huán)流抑制、功率控制這四件事是不是都正常。等單端模型跑穩(wěn)了再復(fù)制一套中間用直流線路連接構(gòu)成雙端系統(tǒng)。這樣做的好處是每一步出問題都能精準(zhǔn)定位不至于一開跑就發(fā)散你根本不知道是控制器寫錯還是兩側(cè)配合出了問題。我在實際做的時候單端驗證大概花了半天雙端聯(lián)調(diào)又花了兩天。大部分時間都耗在調(diào)PI參數(shù)和排查數(shù)值發(fā)散上所以后面第4節(jié)我會專門把調(diào)試經(jīng)驗拎出來講。2. 模型關(guān)鍵參數(shù)設(shè)計從電壓等級反推各個元件2.1 子模塊數(shù)量與電容電壓選擇MMC最核心的設(shè)計約束就是子模塊數(shù)量。先確定子模塊額定電壓一般取2kV到3kV之間這個取決于你選的IGBT器件耐壓和冗余要求。對于±800kV系統(tǒng)假設(shè)子模塊額定電壓是2.2kV那么單個橋臂需要承載的直流電壓是800kV以單極對地為例如果是對稱單極結(jié)構(gòu)每相上下橋臂各承擔(dān)一半直流電壓考慮調(diào)制比和冗余實際需要的子模塊數(shù)N大約在350到400之間。我這里取一個比較標(biāo)準(zhǔn)的配置橋臂子模塊數(shù)N400子模塊電容電壓額定值Uc2.2kV那么橋臂能支撐的最大電壓就是400×2.2880kV留出了約10%的裕量足以應(yīng)對調(diào)制過程中電容電壓波動。記住交流側(cè)相電壓峰值和直流電壓之間要滿足調(diào)制關(guān)系對于MMC相電壓峰值等于ma×Udc/2其中ma是調(diào)制比通常取0.85到0.9。當(dāng)Udc800kV時Udc/2400kV取ma0.875則相電壓峰值為350kV對應(yīng)的交流線電壓有效值約為350×sqrt(3)/sqrt(2)≈428kV。這個值決定了交流側(cè)變壓器和斷路器的額定電壓你后面搭建交流系統(tǒng)時直接用這個數(shù)來設(shè)定等效電源電壓。2.2 橋臂電抗器和子模塊電容橋臂電抗器的主要作用是抑制橋臂環(huán)流和第二、第四等偶次諧波同時限制直流側(cè)故障時的電流上升率。工程上橋臂電抗的標(biāo)幺值一般在0.1到0.3之間。我取0.15pu來算實際值。系統(tǒng)基準(zhǔn)容量取1000MVA單極直流電壓800kV那么直流電流基準(zhǔn)值是1000MW/800kV1250A。交流側(cè)基準(zhǔn)阻抗ZbUb2/Sb這里的Ub取交流線電壓有效值428kVSb1000MVA所以Zb≈(428k2)/1000M≈183Ω。橋臂電抗0.15pu對應(yīng)的實際電感就是0.15×183Ω/(2π×50Hz)≈0.0874H約87mH。這個電感量級對仿真模型來說是合理的不會太大導(dǎo)致電流響應(yīng)太慢也不會太小導(dǎo)致環(huán)流抑制不住。子模塊電容的選擇跟橋臂儲能有關(guān)。MMC每個橋臂的等效儲能通常要求能支撐系統(tǒng)額定功率幾個毫秒工程上橋臂電容的等效時間常數(shù)一般在40到60ms。所謂時間常數(shù)就是電容在額定功率下從額定電壓放電到0所需的時間。以橋臂為單位計算單個橋臂所有子模塊電容串聯(lián)后的等效電容Ceq Csm / N。如果取Csm10mFN400則Ceq25μF。橋臂儲能W 0.5×Ceq×(N×Uc)2 0.5×25e-6×(880k)2≈9.68MJ。單極額定功率1000MW換算成功率和時間常數(shù)就是9.68MJ/1000MW≈9.68ms。這明顯太小工程上要求40ms以上所以子模塊電容需要加大。我實際取Csm30mF則Ceq75μF橋臂儲能W≈29MJ時間常數(shù)約29ms接近工程下限再大一點到40mF會更穩(wěn)。不過電容越大仿真中的狀態(tài)變量時間常數(shù)越大仿真步長可能要適當(dāng)增加收斂性反而變差。所以我最后在模型里用的是35mF折中。這里有個容易被忽略的細(xì)節(jié)MMC橋臂電容是分布式的子模塊電容電壓會隨著橋臂電流的充放電而波動波動幅度跟電容大小成反比。電容取小了電壓波動大可能導(dǎo)致調(diào)制比超過1出現(xiàn)過調(diào)制取大了系統(tǒng)響應(yīng)變慢。你在調(diào)模型時如果看到子模塊電容電壓波形“抖”得厲害第一反應(yīng)應(yīng)該是電容值是不是太小了而不是去改PI參數(shù)。2.3 交流系統(tǒng)與變壓器參數(shù)交流側(cè)我習(xí)慣用理想電壓源串聯(lián)一個等效阻抗來模擬強(qiáng)交流系統(tǒng)短路比SCR取3到5之間。這比搭一個詳細(xì)同步發(fā)電機(jī)模型要省事得多而且對控制策略驗證來說已經(jīng)足夠。短路比5意味著系統(tǒng)等效阻抗標(biāo)幺值為0.2pu結(jié)合前面算的Zb183Ω實際阻抗約36.6Ω電感為36.6/(2π×50)≈0.116H。如果你要模擬弱交流系統(tǒng)把SCR降到2阻抗增大一倍這時鎖相環(huán)和功率控制會明顯出現(xiàn)動態(tài)問題這是后話。變壓器我直接用Simulink里的三相雙繞組變壓器連接方式采用YNd也就是網(wǎng)側(cè)星形接地、閥側(cè)三角形這樣可以隔離零序分量同時為MMC提供中性點不接地的交流系統(tǒng)。變壓器漏抗標(biāo)幺值取0.1pu容量和換流器匹配也是1000MVA。變比設(shè)計很關(guān)鍵網(wǎng)側(cè)電壓就是交流系統(tǒng)線電壓428kV閥側(cè)電壓要和MMC交流側(cè)電壓匹配。因為MMC交流側(cè)相電壓峰值350kV對應(yīng)線電壓有效值428kV所以變壓器變比理論上接近1:1。但為了留出調(diào)節(jié)空間我通常把閥側(cè)額定電壓取低一點比如410kV這樣變壓器等效成一個微升壓變壓器給控制留一點裕量。3. 控制器設(shè)計雙閉環(huán)加環(huán)流抑制一個都不能少3.1 外環(huán)功率控制和內(nèi)環(huán)電流控制VSC-HVDC最經(jīng)典的控制結(jié)構(gòu)就是dq同步旋轉(zhuǎn)坐標(biāo)系下的雙閉環(huán)。外環(huán)根據(jù)控制目標(biāo)輸出內(nèi)環(huán)的電流參考值內(nèi)環(huán)通過PI調(diào)節(jié)器輸出換流器交流側(cè)的電壓參考值最后經(jīng)過調(diào)制生成子模塊投切信號。我搭模型時直接在Simulink里用數(shù)學(xué)模塊搭了一個完整的控制器沒有用Simscape里自帶的控制庫因為自己搭更容易看清每個環(huán)節(jié)的作用。外環(huán)分兩種模式定有功功率控制和定直流電壓控制。在雙端系統(tǒng)里送端換流站采用定有功功率控制受端采用定直流電壓控制這樣直流電壓由受端撐住送端只管輸送功率。單端驗證時我通常讓換流器工作在定有功功率和定無功功率模式直流側(cè)直接接一個理想直流電壓源這樣最方便驗證交流側(cè)控制是否正常。內(nèi)環(huán)電流控制是核心。MMC的交流側(cè)動態(tài)方程可以寫成L·(di_d/dt) -R·i_d ωL·i_q u_d - e_d L·(di_q/dt) -R·i_q - ωL·i_d u_q - e_q其中u_d、u_q是換流器輸出電壓的dq分量e_d、e_q是交流系統(tǒng)電壓的dq分量L是變壓器漏感加橋臂電感的等效值如果是MMC橋臂電感對交流電流來說作用相當(dāng)于兩個橋臂并聯(lián)所以等效電感要除以2。為了讓d軸電流和q軸電流解耦控制器里要加入前饋補(bǔ)償項輸出電壓參考值u_d_ref e_d - ωL·i_q PI_d(s)·(i_d_ref - i_d) u_q_ref e_q ωL·i_d PI_q(s)·(i_q_ref - i_q)注意符號如果按照電動機(jī)慣例電流從交流系統(tǒng)流向換流器那么上面的公式是對的。我在實際搭模型時經(jīng)常在這里搞錯符號導(dǎo)致內(nèi)外環(huán)振蕩這是很經(jīng)典的調(diào)試坑后面會細(xì)說。3.2 鎖相環(huán)PLL與dq坐標(biāo)定位MMC必須實時跟蹤交流系統(tǒng)電壓的相位才能實現(xiàn)dq解耦。鎖相環(huán)我用的就是教科書里標(biāo)準(zhǔn)的SRF-PLL同步參考坐標(biāo)系鎖相環(huán)。它的本質(zhì)是讓q軸電壓為0用PI調(diào)節(jié)器把相位誤差收斂到0。搭建時把交流系統(tǒng)三相電壓經(jīng)過Clark變換得到αβ再經(jīng)過Park變換得到dq其中q軸給定為0PI輸出頻率偏差積分后得到相位角用這個相位角再做Park變換的參考。PLL的PI參數(shù)要拉開帶寬我的經(jīng)驗是PLL的響應(yīng)時間常數(shù)設(shè)為10ms左右比內(nèi)環(huán)電流環(huán)慢比外環(huán)功率環(huán)快。如果PLL帶寬太高系統(tǒng)容易高頻振蕩太低則在功率階躍時相位追蹤滯后導(dǎo)致有功無功耦合。一個常用的初始值是Kp50Ki2000實際根據(jù)仿真波形再微調(diào)。3.3 MMC內(nèi)部的兩個“隱藏”控制量電容電壓均衡和環(huán)流抑制這部分是MMC和兩電平VSC的最大區(qū)別也是很多仿真模型容易“畫虎不成反類犬”的地方。電容電壓均衡因為每個子模塊的電容獨立充放電如果不加控制個別的電容電壓會偏離額定值最終導(dǎo)致調(diào)制過壓或欠壓。詳細(xì)模型里會做排序均壓即根據(jù)橋臂電流方向?qū)ψ幽K電容電壓排序后決定投切哪個子模塊。但前面說了我們用的是Simscape里簡化的MMC模塊它內(nèi)部已經(jīng)做了電容電壓均衡的等效處理所以我只需要在控制器里給一個統(tǒng)一的電容電壓均值參考具體均壓由物理模塊自己去實現(xiàn)。如果你是完全自建子模塊模型那需要在每個仿真步長里做冒泡排序或快速排序這一步計算量非常大也是為什么我不建議小白自建細(xì)模型的原因。環(huán)流抑制MMC三相并聯(lián)直流側(cè)可以看作恒壓源交流側(cè)各相之間會因為橋臂電壓的差異產(chǎn)生二倍頻環(huán)流。這個環(huán)流只流經(jīng)橋臂和直流側(cè)不流向交流側(cè)但會增加器件損耗和電容電壓波動。工程上常用二倍頻負(fù)序旋轉(zhuǎn)坐標(biāo)變換把環(huán)流分解到dq軸后用PI調(diào)節(jié)器壓制。一般用準(zhǔn)比例諧振PR控制器直接控制在兩倍頻處增益無窮大實現(xiàn)零穩(wěn)態(tài)誤差。我用的方法是在Simscape MMC模塊里直接啟用內(nèi)部的環(huán)流抑制功能參數(shù)里有一個環(huán)流抑制增益我把它設(shè)為0.5實測波形里二倍頻環(huán)流就被壓下去了。如果你用自建模型就在控制環(huán)里加一個二倍頻諧振環(huán)節(jié)諧振頻率定為100Hz其余參數(shù)和普通PI類似。4. 實操過程單端模型搭建與仿真波形分析4.1 模型搭建的分步流程我自己建模型時為了讓過程可控、問題可定位嚴(yán)格按下面的順序來每一步都先跑通再繼續(xù)往下做。第一步搭主電路。從Simscape Electrical庫中拖出“MMC”模塊設(shè)置橋臂子模塊數(shù)量N400子模塊電容Csm35mF橋臂電抗Larm87mH。MMC模塊自帶的橋臂等效模型參數(shù)填好。交流側(cè)先用一個理想三相電壓源替代變壓器和交流系統(tǒng)電壓幅值設(shè)為400kV線電壓頻率50Hz。直流側(cè)接一個800kV直流電壓源。這一步運行后只做開環(huán)測試暫不接控制器可以先用固定調(diào)制比0.8看電容電壓是否正常。第二步搭測量與坐標(biāo)變換。測量MMC交流側(cè)三相電壓、電流以及直流電壓、直流電流經(jīng)過Park變換轉(zhuǎn)到dq軸。這里注意要用PLL輸出的相位角做Park變換不能自己假設(shè)相位。第三步搭內(nèi)環(huán)電流控制器。把d軸和q軸電流參考值先設(shè)為常數(shù)比如id_ref1.0kAiq_ref0PI輸出加上前饋補(bǔ)償?shù)玫秸{(diào)制電壓的dq分量再經(jīng)反Park變換得到三相調(diào)制波送入MMC模塊的調(diào)制端。MMC模塊內(nèi)部會根據(jù)調(diào)制波和電容電壓生成子模塊投切信號。第四步搭外環(huán)功率控制器。在電流內(nèi)環(huán)的外面再套一層功率或直流電壓環(huán)。先做最簡單的定有功和定無功控制測量當(dāng)前有功P與有功參考Pref做差經(jīng)過PI后輸出id_ref無功Q與Qref做差經(jīng)PI輸出iq_ref。第五步驗證單端模型無誤后把直流電壓源去掉換成直流線路和另一個MMC搭建雙端閉環(huán)系統(tǒng)。4.2 我用的仿真參數(shù)與步長設(shè)置仿真時間我一般設(shè)5秒前1秒讓系統(tǒng)啟動在t3秒時做一次功率階躍觀察動態(tài)響應(yīng)。步長設(shè)置是個關(guān)鍵學(xué)問Simscape模型通常用變步長ode23tb或者ode15sMaximum step size設(shè)得太大會導(dǎo)致波形嚴(yán)重失真太小則仿真速度慢得讓人崩潰。我試過對于這種MMC模型Maximum step size建議設(shè)為50微秒相對容差設(shè)1e-4。如果要看IGBT開關(guān)細(xì)節(jié)那步長必須到微秒甚至納秒級但那樣跑5秒仿真基本不可能。我的目標(biāo)是看控制響應(yīng)和故障特性所以50微秒的步長足夠。float model? Simulink里有個“離散化”工具可以把連續(xù)模型轉(zhuǎn)換成離散模型但MMC模塊在離散化后收斂性可能變差所以我直接用連續(xù)變步長求解器沒有做離散化。這點和純PWM整流器模型不太一樣不要用固定步長去跑不然每個開關(guān)周期都要迭代很多次速度極慢。4.3 典型波形什么樣才叫“正?!眴味四P头€(wěn)定后我習(xí)慣抓四組波形直流電壓、交流三相電流、子模塊電容電壓、橋臂環(huán)流。直流電壓應(yīng)該平直在800kV附近紋波不要超過±1%否則說明電容或控制器參數(shù)有問題。交流三相電流正弦度高THD2%有功電流id和無功電流iq在階躍后能快速跟蹤參考值。子模塊電容電壓的平均值應(yīng)該穩(wěn)定在2.2kV附近波形上有小幅波動這個波動是正常的反映電容充放電過程。橋臂環(huán)流里二倍頻分量應(yīng)該被抑制到很小基本上是一條平滑的波形如果看到明顯的100Hz正弦分量說明環(huán)流抑制沒生效。我遇到過最典型的波形異常是交流電流低頻振蕩頻率在5~10Hz左右。排查下來發(fā)現(xiàn)是PLL帶寬和外環(huán)帶寬耦合導(dǎo)致整個系統(tǒng)的阻尼變差。解決辦法是把PLL的Kp從50降到20同時把外環(huán)PI的積分時間常數(shù)增大到0.1s振蕩就消失了。這說明在MMC這種多環(huán)控制系統(tǒng)里帶寬分配非常重要從外到內(nèi)時間常數(shù)應(yīng)該依次減小外環(huán)0.1~0.5s內(nèi)環(huán)10~50msPLL5~10ms。5. 常見問題與排查技巧實錄5.1 一運行就發(fā)散檢查“代數(shù)環(huán)”和初始條件Simulink在運行前會做代數(shù)環(huán)檢測如果控制路徑里有直接的前饋而沒有延遲就會形成代數(shù)環(huán)求解器可能報錯或者發(fā)散。我最常遇到的是調(diào)制波從控制器出來直接送到MMC模塊而MMC模塊的電流測量又被用來計算功率中間沒有任何狀態(tài)變量打破循環(huán)。解決方法是給調(diào)制波路徑加一個一階慣性環(huán)節(jié)時間常數(shù)設(shè)1e-5s相當(dāng)于一個小延遲代數(shù)環(huán)就消失了。另一個常見問題是初始條件沖突MMC子模塊電容初始電壓要設(shè)為額定值如果不設(shè)啟動瞬間電容要從0充電會引起巨大的沖擊電流導(dǎo)致仿真直接崩潰。我在MMC模塊參數(shù)里把初始電容電壓設(shè)為2.2kV×400880kV實際上模塊會按單個子模塊初始化并把橋臂電感初始電流設(shè)為0這樣啟動平穩(wěn)很多。5.2 直流電壓控制不住外環(huán)符號與方向反了我在雙端模型調(diào)試時受端站直流電壓外環(huán)的輸出是id_ref但id_ref的正方向到底是從交流流向直流還是從直流流向交流不同文獻(xiàn)定義不一樣。我按電流從交流系統(tǒng)流入換流器的方向為正來建模那么對于整流工況id_ref為正對于逆變工況id_ref為負(fù)。如果符號反了控制器會正反饋導(dǎo)致直流電壓發(fā)散。排查方法很簡單把PI輸出斷開手動給一個很小的id_ref看直流電壓是上升還是下降由此確定正確的極性。5.3 功率階躍時無功波動明顯前饋解耦沒整明白如果外環(huán)給定有功階躍后無功功率也跟著“抖”了一下說明內(nèi)環(huán)的dq解耦不徹底。我的經(jīng)驗是解耦項里的ωL必須和實際模型一致很多人只把橋臂電抗算進(jìn)去忽略了變壓器漏抗導(dǎo)致解耦不完全。還有就是PLL的響應(yīng)速度太慢相位誤差會造成d軸和q軸分量互相竄擾。解決方法是把變壓器漏抗和橋臂電抗都折算進(jìn)解耦系數(shù)ωL中同時提高PLL的帶寬到20Hz左右。5.4 仿真速度極慢合理犧牲精度做MMC仿真速度是繞不開的痛點。我分享幾個有效的加速手段第一關(guān)閉不必要的波形記錄Scope里不要接太高的采樣頻率。第二把MMC模塊里的“Number of submodules”用一個小值比如20代替400雖然波形會變差但動態(tài)特性基本一致適合先做控制調(diào)參。等控制方案確定了再把N改回400做最終驗證。第三使用Simulink的加速模式把模型編譯成C代碼運行我實測速度能提升3到5倍。第四對于長期期動態(tài)仿真可以考慮把MMC替換為自定義的平均值模型在Simulink里用受控源實現(xiàn)速度比MMC模塊還要快一個數(shù)量級。我通常的做法是先用20個子模塊做快速迭代再用400個子模塊出最終波形兩全其美。5.5 常見問題速查表現(xiàn)象可能原因解決辦法啟動瞬間電流巨大子模塊電容初始電壓未設(shè)置設(shè)置初始電容電壓為額定值交流電流低頻振蕩PLL帶寬過高或外環(huán)PI過慢降低PLL帶寬調(diào)整外環(huán)時間常數(shù)直流電壓發(fā)散外環(huán)控制方向反斷開PI手動驗證極性電容電壓波動過大子模塊電容容量不足增大Csm二倍頻環(huán)流明顯環(huán)流抑制未啟用打開MMC模塊環(huán)流抑制仿真很慢步長過小、子模塊數(shù)過多增大步長減少子模塊數(shù)做預(yù)調(diào)試代數(shù)環(huán)報錯控制鏈路無延遲加一階慣性環(huán)節(jié)打破代數(shù)環(huán)6. 模型驗證與結(jié)果分析的幾個角度6.1 有功無功解耦性能測試判斷雙閉環(huán)控制是否合格最直接的方法是分別做有功階躍和無功階躍觀察另一條通道是否受影響。我在t3s時有功從0.6pu階躍到1.0pu理想情況下無功應(yīng)該保持恒定。實際波形里如果無功有短暫波動但能在50ms內(nèi)恢復(fù)說明解耦是有效的。如果波動幅度超過5%就需要回頭查解耦系數(shù)和PLL帶寬。6.2 直流故障穿越仿真對于VSC-HVDC直流側(cè)故障是最嚴(yán)重的工況。因為MMC子模塊電容會通過故障點快速放電產(chǎn)生巨大的故障電流所以現(xiàn)在工程上大量使用半橋子模塊加直流斷路器或者全橋子模塊來抑制故障電流。仿真里可以在模型運行到4s時在直流線路中點加一個三相短路故障模塊持續(xù)100ms觀察故障期間直流電壓跌落速度、交流電流沖擊和故障切除后系統(tǒng)恢復(fù)能力。我這里多說一句直流故障仿真是檢驗MMC模型的“試金石”。如果模型里每個子模塊的電容和IGBT都詳細(xì)建模故障電流的上升沿會很陡對步長要求很高用簡化MMC模塊做故障仿真結(jié)果會偏樂觀但趨勢是正確的。我建議先做故障定性和保護(hù)策略驗證不要拿簡化模型去算故障電流峰值那個必須有詳細(xì)模型或者解析公式配合。6.3 弱交流系統(tǒng)適應(yīng)性把系統(tǒng)短路比從5降到2后會明顯看到原來的PI參數(shù)不再適用。典型表現(xiàn)是功率階躍后出現(xiàn)持續(xù)振蕩甚至發(fā)散。原因是弱系統(tǒng)下交流電壓對功率波動更敏感PLL鎖相可能出現(xiàn)失穩(wěn)。改進(jìn)方法包括用虛擬同步機(jī)控制替代傳統(tǒng)PLL、在功率外環(huán)中加入交流電壓反饋、提高系統(tǒng)阻尼。這部分內(nèi)容比較多我先不做展開但你可以把模型里的SCR參數(shù)改小后再試體會一下什么叫“系統(tǒng)強(qiáng)度不夠控制器再努力也白搭”。7. 后續(xù)擴(kuò)展從雙端到直流電網(wǎng)單端和雙端模型跑順后可以往多端直流、混合直流、新能源送出等方向擴(kuò)展。Matlab里現(xiàn)有模型可以非常方便地復(fù)制MMC模塊做成三端或四端直流電網(wǎng)每個換流站采用不同的控制模式一個定直流電壓其他幾個定功率或者定頻率。多端系統(tǒng)的核心問題是直流電壓控制和功率分配你可以嘗試用直流電壓偏差控制來實現(xiàn)自然功率平衡不需要站間通信。另外風(fēng)電場經(jīng)MMC-HVDC并網(wǎng)也是熱點把交流系統(tǒng)換成永磁直驅(qū)風(fēng)機(jī)機(jī)群模型就能研究次同步振蕩和送端電壓控制。這些都是在現(xiàn)有仿真模型上做的增量工作骨架不變變的是控制策略和外接模型。我個人在實際建模中的體會是不要一開始就追求“高大全”的詳細(xì)模型先把一個能夠在幾分鐘內(nèi)跑完的簡化模型吃透把控制環(huán)的邏輯和參數(shù)調(diào)試方法學(xué)會再去增加復(fù)雜度效率會高很多。有時候我為了調(diào)好一對PI參數(shù)會把系統(tǒng)簡化成兩個一階慣性環(huán)節(jié)加一個純延遲直接在Matlab腳本里做根軌跡分析拿到初值再填進(jìn)Simulink模型這樣能省掉大量盲目試湊的時間。最后再分享一個小技巧保存模型時一定把Matlab版本和用到的工具箱標(biāo)注清楚Simscape Electrical不同版本之間的MMC模塊接口差異不小我遇到過從R2020a換到R2022b后MMC模塊參數(shù)名字變了導(dǎo)致模型無法運行的情況。給模型做一個簡單的doc說明列清楚參數(shù)定義和初值來源無論是自己后續(xù)回來改還是發(fā)給別人復(fù)現(xiàn)都會順暢得多。