
1. 單相MMC從哪里來為什么值得當(dāng)驗證平臺第一次看到MMC模塊化多電平換流器這個縮寫大多數(shù)人是在三相柔性直流輸電的論文里。那會兒我心里想的也是高壓大容量、幾百個子模塊、上百千伏電壓等級這玩意兒跟我有什么關(guān)系。直到后來為了做一個單相整流前級把拓撲從三相縮到單相、把子模塊數(shù)量從一堆縮到幾個我才發(fā)現(xiàn)單相MMC是一個特別適合用來理解和驗證多電平控制理論的載體。它保留了多電平拓撲最核心的矛盾比如子模塊電容電壓均衡、橋臂環(huán)流、多載波調(diào)制又把實驗平臺的門檻降到了普通實驗室就能接受的水平。寫這篇文章之前我翻了翻手頭的調(diào)試筆記發(fā)現(xiàn)“從整流到均衡控制”這個順序就是我實際做項目的路徑。你先把交流側(cè)的能量變換成直流側(cè)平穩(wěn)電壓再回頭處理電容電壓亂七八糟的問題。書上都寫了但你不踩一遍坑很難理解。所以這篇東西不是教科書復(fù)述而是把這個從整流到均衡的完整過程拆開講清楚每一步到底在解決什么問題、哪些參數(shù)是紙面上看不出來的。這篇內(nèi)容適合三類人一是正在做三相MMC卻對環(huán)流和均壓頭疼的工程師可以先拿單相平臺把底層邏輯理清楚二是實驗室里想搭一套低成本多電平驗證平臺的學(xué)生或工程師單相MMC器件少示波器能同時觀察所有電容電壓三是做充電模塊、UPS、PCS這類前端整流的同行想看看多電平整流相比傳統(tǒng)PWM整流多了哪些優(yōu)勢又多了哪些麻煩。無論哪一類我建議把重點放在“為什么”上而不是只看參數(shù)表。1.1 從三相MMC到單相MMC拓撲沒變脾氣變了先給新手快速建立畫面感。MMC不是靠單個功率器件直接調(diào)壓而是把幾十個乃至上百個“子模塊”像積木一樣串成一個橋臂每個子模塊里有一個電容和一組開關(guān)管。通過控制每個子模塊的投入或切除讓整個橋臂對外呈現(xiàn)階梯狀的電壓波形。階梯越多波形越接近正弦諧波越小這是多電平拓撲最直觀的好處。三相MMC的三個相單元對稱運行時三相瞬時功率之和是恒定的所以直流側(cè)功率基本平穩(wěn)。單相MMC只有一相瞬時功率天然帶著兩倍工頻波動所以直流電壓和電容電壓都更容易出現(xiàn)低頻脈動。換句話說你從三相縮到單相拓撲結(jié)構(gòu)簡化了但控制上反而多了一個能量平衡問題。這就是“從整流到均衡控制”這條線的真正起點也是很多人在三相系統(tǒng)里不容易看清楚的矛盾。不過單相的好處也很明顯整個系統(tǒng)只需要上下兩個橋臂每個橋臂一個電感子模塊數(shù)量少出問題時定位容易。調(diào)試的時候所有電容電壓都能用一臺四通道示波器分兩輪看完波形現(xiàn)象非常直觀。很多高校實驗室和研發(fā)團隊愿意拿單相MMC做算法驗證平臺原因也在這里成本低迭代快現(xiàn)象又不會“藏”起來。1.2 半橋子模塊和橋臂電感先把它拆成最小單元單相MMC的每個橋臂由N個子模塊和一個橋臂電感L_arm串聯(lián)組成。上下兩個橋臂在直流側(cè)并聯(lián)交流側(cè)從上下橋臂的連接點引出。每個半橋子模塊的結(jié)構(gòu)是一個直流電容兩個開關(guān)管T1、T2各自反并聯(lián)一個二極管。它的輸出只有兩種狀態(tài)T1導(dǎo)通、T2關(guān)斷的時候子模塊輸出電壓等于電容電壓叫“投入”T1關(guān)斷、T2導(dǎo)通的時候輸出電壓約等于零叫“切除”。這里必須強調(diào)兩個管子絕對不能同時導(dǎo)通否則電容直接被短路。輕則仿真報錯重則實驗炸模塊。所以觸發(fā)脈沖之間一定要留死區(qū)死區(qū)時間按你選的功率器件和驅(qū)動電路來定常規(guī)IGBT模塊取1到3微秒。另一個容易忽略的點是電容電壓的極性始終朝一個方向這意味著橋臂電流必須既能流入又能流出才能實現(xiàn)對電容的充電和放電。整流模式下交流電流和直流電流的方向一起決定橋臂電流的正負而橋臂電流的方向恰恰是后續(xù)均壓算法選模塊的依據(jù)。所以不要一上來就扎進PI參數(shù)里先把橋臂電流的流向畫清楚后面所有邏輯都順了。2. 單相MMC整流難點不在整流而在2倍頻功率波動整流功能是單相MMC最容易先實現(xiàn)的目標交流側(cè)接220V或380V電源直流側(cè)帶負載通過控制橋臂子模塊的投切讓交流電流跟隨電壓同相同時維持直流母線電壓穩(wěn)定。聽起來和普通PWM整流器沒什么區(qū)別但真正搭起來才會發(fā)現(xiàn)單相MMC整流時會暴露出多電平拓撲特有的問題最典型的就是2倍頻功率波動。2.1 2倍頻波動從哪來先算一遍瞬時功率假設(shè)交流電壓和交流電流同相也就是單位功率因數(shù)整流。那么v_s(t) √2 V_s sin(ωt) i_s(t) √2 I_s sin(ωt)瞬時輸入功率是兩者乘積P_s(t) 2 V_s I_s sin2(ωt) P_dc · [1 - cos(2ωt)]這里的P_dc V_s I_s就是負載從直流側(cè)取走的平均功率。也就是說交流側(cè)吸入的功率是“一個恒定分量加上一個2倍頻波動分量”而直流側(cè)消耗的功率近似恒定。多出來的那一部分能量只能靠電容來緩沖表現(xiàn)為直流電壓和子模塊電容電壓的2倍頻波動。50Hz工頻下就是100Hz脈動在示波器上看得非常清楚。我習(xí)慣用一個打水的類比你每次舀水的速度忽快忽慢但用水的人要求水龍頭出水速度恒定中間就必須靠水桶來緩沖。水桶越大水面的起伏越小。電容就是那個水桶。單相MMC的電容電壓波動會同時影響均壓和調(diào)制所以設(shè)計階段就要把能量波動算清楚而不是等波形壞了再去加電容。2.2 整流控制主線電壓外環(huán)、電流內(nèi)環(huán)與橋臂調(diào)制波單相MMC整流控制的核心結(jié)構(gòu)和單相全橋PWM整流一樣都是“電壓外環(huán)加電流內(nèi)環(huán)”。電壓外環(huán)把直流側(cè)平均電壓和目標值比較輸出有功電流幅值參考電流內(nèi)環(huán)讓實際交流電流跟蹤這個參考正弦。區(qū)別在于MMC不能像單相全橋那樣由一對管子的占空比直接決定端口電壓而是需要根據(jù)橋臂電壓參考值反推出“這一時刻要把多少個模塊投入”。在單相系統(tǒng)里調(diào)制波不光是正弦電壓本身。因為單相功率有2倍頻波動上下橋臂之間會產(chǎn)生明顯的二倍頻環(huán)流。為了抑制這個環(huán)流通常要在調(diào)制波里疊加一個環(huán)流修正量或者共模電壓分量。這個量跟主調(diào)制波疊加之后再送到均壓和調(diào)制環(huán)節(jié)??刂祈樞蛏媳仨毾扔袠虮垭妷簠⒖荚僮鲎幽K投切決策最后更新觸發(fā)脈沖順序反了容易把均壓算法搞亂。2.3 低壓降整流場景多模塊串聯(lián)帶來的額外約束很多人搜索“低壓降整流”“同步整流”時其實想的是低壓大電流場景例如12V、48V輸出的電源模塊。這里我得潑一盆冷水MMC這類多電平拓撲天生更適合中高壓場景不太適合極低壓輸出。原因很簡單子模塊串聯(lián)的數(shù)量越多主功率路徑上累積的導(dǎo)通壓降越明顯。一個半橋子模塊里的IGBT導(dǎo)通壓降算2V左右8個子模塊串聯(lián)的話主路徑可能疊加十幾伏在400V母線里不算大但在48V輸出里就是不能接受的損耗。如果因為其他需求比如多電平低諧波、雙向能量流動非得在低壓場景用MMC那就要往“低壓降”方向優(yōu)化。模塊數(shù)量要盡量少優(yōu)先選用導(dǎo)通壓降低的器件比如低壓MOSFET或者SiC MOSFET死區(qū)時間要壓到器件允許的極限開關(guān)頻率也不能太高。換個角度說同步整流里“用低損耗開關(guān)管替代二極管”的思想在MMC里同樣適用只不過MMC還要多考慮一個“多個模塊串聯(lián)帶來的壓降疊加”問題。做拓撲選型時先拿整條主功率路徑的器件壓降做一次粗算能省掉后面很多調(diào)試煩惱。3. 子模塊電容電壓均衡繞不開的核心控制很多朋友用MATLAB搭好三相MMC仿真先不開均壓算法跑幾十毫秒系統(tǒng)就崩了原因幾乎都是子模塊電容電壓發(fā)散。單相MMC整流時這個問題更尖銳因為2倍頻功率波動直接作用在電容電壓上。如果均壓算法不及時個別低壓模塊會被反復(fù)投入電壓越?jīng)_越高最終超出器件耐壓。下面按“為什么會漂—怎么排序—環(huán)流怎么摻和”的順序講。3.1 電容電壓為什么必然漂移首先所有電容的容值不可能完全一致出廠容差就是百分之幾。其次每個子模塊的開關(guān)管開通和關(guān)斷延時不一樣管壓降也不一樣損耗差異導(dǎo)致放電速度不同。再往細說各子模塊的驅(qū)動信號經(jīng)過同一塊控制板的不同IO口發(fā)出PCB走線和驅(qū)動電阻的細微差別都會造成脈沖寬度不完全一致。即使所有硬件參數(shù)都做得很理想單相MMC整流時還會有一個系統(tǒng)性的漂移因素橋臂電流方向在半個周期內(nèi)不斷變化加上2倍頻能量波動同一時間各模塊承擔(dān)的充放電電荷量天然不平衡。好比一隊人抬桶水有人靠前有人靠后每個人分到的力不一樣走著走著互相對齊的位置就變了。所以均壓不是可選功能而是MMC能穩(wěn)定運行的必選控制。3.2 排序均壓算法幾個坑和優(yōu)化點排序均壓的基本邏輯很樸素按電容電壓大小給子模塊排序再根據(jù)橋臂電流方向決定“讓誰先投入”。橋臂電流為正時投入的子模塊會被充電所以要優(yōu)先投入電壓最低的那些橋臂電流為負時投入的子模塊會被放電所以要優(yōu)先投入電壓最高的那些。這樣反復(fù)操作所有電容電壓都會向平均值靠攏。一個簡單的MATLAB函數(shù)可以寫成這樣function sm_on balance_select(vc, iarm, N_on) idx (1:length(vc)); if iarm 0 [~, order] sort(vc, ascend); else [~, order] sort(vc, descend); end sm_on ismember(idx, order(1:N_on)); end這個函數(shù)只示意了核心思想。實際工程里要注意三個點。第一排序周期不能太短否則每次排序都可能重新組合子模塊開關(guān)動作過于頻繁也不能太長否則均壓響應(yīng)跟不上功率波動一般從幾十微秒到幾百微秒去試根據(jù)子模塊數(shù)量和器件開關(guān)頻率權(quán)衡。第二要限制每個控制周期最多只切換一個或少數(shù)幾個子模塊這叫“保留性排序”能顯著降低開關(guān)損耗。第三均壓算法輸出的投切信號必須跟死區(qū)邏輯配合不能簡單認為排序結(jié)果變了就直接改觸發(fā)狀態(tài)。還有一個實踐心得排序算法的采樣值最好做濾波如果直接用帶毛刺的電壓采樣排序會出現(xiàn)兩個電壓非常接近時頻繁互換次序的現(xiàn)象開關(guān)頻率會異常升高。濾波時間常數(shù)不能太大否則均壓變慢取50到200微秒左右比較合適。3.3 橋臂環(huán)流對均壓的影響與抑制橋臂環(huán)流是指上下橋臂之間流動卻不參與交流輸出的內(nèi)部電流分量。在三相MMC里這個分量典型是二倍頻負序在單相MMC里二倍頻環(huán)流同樣存在還會跟功率波動耦合得更厲害。環(huán)流的存在會讓上下橋臂的子模塊電容電壓出現(xiàn)交替漲落比如上橋臂電壓偏高而同時下橋臂電壓偏低反映到波形上就是兩個橋臂的電容平均電壓在2倍頻處反向波動。如果只靠排序均壓不管環(huán)流電容電壓雖然不會徹底發(fā)散但會始終帶著明顯的100Hz波動而且橋臂電流和開關(guān)管電流應(yīng)力都偏大。抑制環(huán)流的標準做法是在橋臂電壓參考中疊加一個環(huán)流修正量通常用PR控制器對100Hz誤差做無靜差調(diào)節(jié)。參數(shù)可以先按“帶寬200到400Hz、阻尼適中”來估然后在仿真里觀察橋臂電流波形看二倍頻是否被壓下去。單相MMC沒有三相那么多耦合分量調(diào)起來比三相直觀但一定要看上下橋臂電感電流之和而不是只看交流電流。4. 調(diào)制策略和MATLAB仿真模型先讓系統(tǒng)在電腦里跑通仿真不是目的但仿真是調(diào)試的顯微鏡。單相MMC模型要是開局就崩說明問題集中在幾個點調(diào)制策略沒選對、控制信號延遲、均壓算法發(fā)散。先把這些基礎(chǔ)問題在MATLAB/Simulink里解決再上樣機能省掉至少一半的炸管風(fēng)險。這里直接給出我實際用過的方案按步驟講。4.1 NLM與CPS-PWM子模塊數(shù)量決定選型先說明選型背景。MMC調(diào)制主流有兩條路線最近電平逼近NLM和載波移相CPS-PWM。NLM的思路是先算出橋臂電壓參考再按參考電壓除以單個模塊額定電壓得到“此刻該投入幾個模塊”原理簡單適合子模塊數(shù)量很多的高壓場景。但單相MMC樣機通常模塊數(shù)不多2到8個比較常見此時NLM輸出的階梯波波形很粗諧波明顯。CPS-PWM則給每個子模塊分配一個相位均勻錯開的三角載波每個模塊都在自己的載波上跟調(diào)制波比較單獨生成PWM脈沖。這樣等效開關(guān)頻率等于單個開關(guān)頻率乘以子模塊數(shù)輸出波形諧波性能好。單相MMC子模塊數(shù)量少控制板資源足夠所以我更推薦用CPS-PWM。下表是我做選型時的對比參考調(diào)制方式子模塊數(shù)量要求輸出波形質(zhì)量均壓配合難度實現(xiàn)復(fù)雜度NLM多幾十個以上模塊越多越好排序算法天然配合低CPS-PWM可少可多模塊較少時也較好需要額外處理排序切換中高如果子模塊只有2個或者4個用CPS-PWM會比較合適如果模擬高壓場景子模塊做到幾十個那NLM的計算優(yōu)勢就體現(xiàn)出來了。仿真階段可以把兩種都搭出來對比但樣機調(diào)試建議只選一種避免變量太多。4.2 一個可直接參考的樣機參數(shù)與仿真搭建方法我最早調(diào)通的一組參數(shù)是交流側(cè)220V/50Hz直流母線目標400V每橋臂4個半橋子模塊總子模塊電容電壓額定100V功率等級2kW。橋臂電感值不是拍腦袋定的。這里給出一個快速估算法先算基準阻抗Z_base V_s2/P 2202/2000 ≈ 24.2Ω基準電感L_base Z_base/(2πf) ≈ 0.077H。橋臂電感一般取0.05到0.15標幺值折合3.8mH到11.5mH。我取5mH附近既能限制環(huán)流又不會讓電感體積過大。子模塊電容容值需要根據(jù)能量波動估算。單相2kW功率波動幅度約為P/(2ω)即2000/(2×314)≈3.18J。按電容電壓允許5%波動來算單個電容容值在幾百微法到毫法級別。我最后選了2.2mF/100V的電容模組實測直流側(cè)和電容電壓波動都在可接受范圍。下面這組是我常用的仿真參數(shù)參數(shù)數(shù)值說明交流電壓220V / 50Hz單相直流母線目標400V電壓外環(huán)給定每橋臂子模塊數(shù)4上下共8個子模塊電容額定電壓100V直流母線除以每橋臂子模塊數(shù)得到子模塊電容2.2mF耐壓留50%以上裕量橋臂電感5mH約為0.065pu開關(guān)頻率10kHz單模塊CPS-PWM等效頻率40kHz控制周期50微秒采樣、排序、PWM更新Simulink建模時器件級模型建議直接用Simscape Electrical里的IGBT和電容模塊控制部分用普通Simulink模塊完成。功率電路和控制電路分離的好處是后邊想換成半實物測試時控制算法可以原樣搬到DSP或者FPGA里。橋臂連接時一定注意參考方向上橋臂從正母線到交流輸出點下橋臂從交流輸出點到負母線電容電壓和橋臂電流的參考方向都要統(tǒng)一否則后邊排序算法會不自覺地做反。這是個很常見的低級錯誤但影響極其隱蔽仿真波形看著對實際系統(tǒng)會出問題。4.3 調(diào)試順序與參數(shù)整定別一上來就調(diào)PI我見過太多人一上來就調(diào)電壓環(huán)PI甚至直接改電流內(nèi)環(huán)參數(shù)結(jié)果波形一團亂。正確的順序應(yīng)該先開環(huán)再閉環(huán)最后再加均壓和環(huán)流抑制。第一步固定所有子模塊投入數(shù)量即不運行均壓也不接電壓環(huán)給交流側(cè)一個較小的調(diào)壓器輸入確認每個子模塊都按照你給的觸發(fā)脈沖“投入—切除”正常動作。第二步先只讓調(diào)制波輸出觀察橋臂電壓是否為階梯波交流電流是否連續(xù)。第三步加上電壓電流閉環(huán)但暫時關(guān)閉排序均壓只觀察一個很短的仿真時間確認電容電壓發(fā)散的速度和方向。第四步加入均壓算法驗證電容電壓收斂。最后再優(yōu)化環(huán)流抑制。電流內(nèi)環(huán)的參數(shù)可以先按“橋臂電感和控制延遲時間常數(shù)”來估帶寬選到500Hz到1kHz之間實測下來比較穩(wěn)。電壓外環(huán)帶寬一定要壓低因為單相有100Hz波動如果電壓環(huán)帶寬太高它會把2倍頻擾動放大到電流指令里導(dǎo)致交流電流波形出現(xiàn)明顯畸變。我通常把電壓環(huán)帶寬壓在20Hz左右響應(yīng)慢一點但波形干凈。5. 實測中常踩的坑從波形異常到開關(guān)頻率爆炸仿真里波形好不代表樣機一次就能跑起來。數(shù)字控制里的采樣噪聲、驅(qū)動死區(qū)、PCB布局、器件壓降都會讓電容電壓從“理論均衡”變成“實測漂移”。這里整理幾個我踩過的典型坑都是常規(guī)仿真里不容易暴露的問題。5.1 電容電壓發(fā)散的快速排查清單遇到電容電壓發(fā)散不要急著改算法先按下面順序查現(xiàn)象可能原因排查手段單個模塊電壓明顯偏高排序方向或電流方向定義反了對比橋臂電流實際方向與采樣極性所有模塊電壓仍有波動但均值一致電容容值偏差大采樣誤差用精度高的分壓電阻或霍爾傳感器校正上下橋臂平均電壓反向波動環(huán)流沒有抑制觀察橋臂電感電流和確認100Hz環(huán)流幅值電壓波動快速增大到過壓排序周期太長或排序閾值不匹配縮短排序周期增加濾波電壓在穩(wěn)態(tài)時有規(guī)律跳變PWM載波相位不對檢查各子模塊三角載波是否按遞增相位錯開實際接線中采樣調(diào)理電路的零點漂移也會引起“系統(tǒng)性誤判”。比如某一路電壓采樣偏高0.5V在100V額定電壓下看似不嚴重但均壓算法會一直把它當(dāng)成高電壓模塊結(jié)果該模塊長時間不投入電容電壓實際值反而慢慢升高。解決方法是上電前做采樣校正把每路采樣值都校準到同一個零點上。5.2 直流側(cè)100Hz紋波壓不下去的處理思路單相整流系統(tǒng)里的100Hz紋波是物理規(guī)律決定的完全消除是不可能只能壓低。如果你發(fā)現(xiàn)直流母線電壓紋波過大第一反應(yīng)應(yīng)該是看電容儲能和電壓環(huán)帶寬是否匹配。電容太小電壓波動自然打不下來電壓環(huán)帶寬太高則會把波動反饋到電流指令中形成惡性循環(huán)。我的經(jīng)驗是先把電壓環(huán)帶寬降到15到20Hz把電流環(huán)帶寬維持在設(shè)計值然后調(diào)節(jié)直流側(cè)電容。如果紋波還是超標再考慮兩種進階手段一是在直流側(cè)并聯(lián)一個LC或LC諧振支路把諧振頻率設(shè)計在100Hz附近用來旁路這個頻率的功率脈動二是在控制里增加一個針對2倍頻的補償量類似有源濾波的思路。兩種方式我都試過前者簡單粗暴有效后者調(diào)試量更大但能節(jié)省部分直流電容成本。5.3 排序算法導(dǎo)致的開關(guān)頻率過高問題傳統(tǒng)排序算法最大的副作用就是開關(guān)頻率可能異常升高。因為每個控制周期都重新排序子模塊投切組合變化劇烈開關(guān)管可能在很短時間里反復(fù)開關(guān)產(chǎn)生額外損耗和電磁干擾。我在樣機上第一次跑排序均壓時橋臂電感的嘯叫聲立刻變得很難聽拿熱成像一看某個IGBT的溫度明顯比其他模塊高。解決辦法是在排序基礎(chǔ)上加“保持條件”如果某個子模塊當(dāng)前狀態(tài)不需要改變即使排序結(jié)果有變化也不強行動作。具體說就是每個控制周期只允許少數(shù)子模塊更改投切狀態(tài)其他模塊保持原狀態(tài)。這個優(yōu)化對均壓效果幾乎沒有影響因為電容電壓趨于均衡之后各模塊電壓差已經(jīng)很小強行切換的收益很低。另一個技巧是在排序前加電壓比較閾值電壓差小于比如0.5V額定電壓為100V時就認為它們等效不參與重排。這部分的體會是均壓算法不是越勤越好而是“該動的時候才動”。把開關(guān)頻率控制好比把電容電壓之差壓縮到零更重要。MMC的子模塊電容電壓有一點自然波動是正常并且無害的追求完美均衡反而會讓系統(tǒng)付出不必要的代價。6. 從調(diào)通到調(diào)好個人經(jīng)驗與后續(xù)擴展方向我在單相MMC上調(diào)了挺長時間最大的感受是這個拓撲的學(xué)習(xí)曲線不算陡但坑很密。整流那條線只是第一關(guān)真正能拉開差距的是誰把電容均壓和環(huán)流處理得更干凈。排序算法里一個方向判斷的符號錯誤可能讓整個系統(tǒng)在幾十毫秒內(nèi)崩潰一個載波相位的錯位又會讓諧波性能變差。調(diào)試的時候建議每次只改動一個變量并且把每一步的現(xiàn)象記錄在案不要同時調(diào)均壓閾值又調(diào)環(huán)流PI否則一旦出問題你會不知道去河里撈哪一條魚。從單相MMC再往外走可擴展的方向很多。你可以把同一套控制邏輯推廣到三相MMC只增加離散的帕克變換和三相協(xié)調(diào)控制也可以在整流前級后面接DCDC變換器組成兩級充電模塊拓撲把多電平前級的技術(shù)價值延伸到真實產(chǎn)品里還可以把變壓器換成高頻隔離做固態(tài)變壓器方向的研究。無論哪一個方向單相MMC帶給你的底層認知都不會白費多電平系統(tǒng)的能量流動、電容電壓平衡、環(huán)流抑制這些概念放之四海而皆準。最后再分享一個小技巧樣機調(diào)試時把采樣回來的電容電壓和橋臂電流在控制器的數(shù)據(jù)記錄里同步保存幾毫秒別只看示波器。很多問題是瞬態(tài)的只有把數(shù)據(jù)抓到電腦里逐點分析才能看清均壓算法是在哪個采樣點做出錯誤判斷的。這個習(xí)慣幫我省掉了不少懷疑人生的時間。