與程序?qū)崿F(xiàn)全解析)
我在電力電子和新能源領(lǐng)域做了不少年最近幾年接觸最多的就是MMC這套技術(shù)。從早期在實驗室搭小功率樣機(jī)到后來參與實際工程項目的仿真分析整體走下來最大的感受是MMC不像傳統(tǒng)的兩電平或三電平變換器它的建模深度、控制復(fù)雜度和實現(xiàn)方式都有自己的獨特邏輯。這篇就來系統(tǒng)梳理一下我在MMC建模、分析與程序?qū)崿F(xiàn)過程中積累的經(jīng)驗希望能給準(zhǔn)備入門的同行一些參考也跟已經(jīng)踩過坑的朋友交流交流。1. 整體設(shè)計與思路拆解1.1 為什么MMC值得深入鉆研MMC的全稱是模塊化多電平換流器最早是為了解決高壓直流輸電領(lǐng)域電壓等級高、開關(guān)器件串聯(lián)均壓困難的問題而提出的。傳統(tǒng)兩電平電壓源型換流器在10kV以上場合基本很難用因為單個IGBT耐壓有限直接串聯(lián)又會碰到動態(tài)均壓、可靠性等多重挑戰(zhàn)。MMC的思路是把大功率換流器拆解成大量子模塊每個子模塊獨立可控通過級聯(lián)疊加出接近正弦的電壓波形。這種“積木式”結(jié)構(gòu)帶來了幾個顯著優(yōu)勢波形質(zhì)量極高、開關(guān)頻率低、損耗小、擴(kuò)展性好、冗余能力強(qiáng)。正因如此MMC成了柔性直流輸電、中壓電機(jī)驅(qū)動、儲能集成等場景的主流方案之一。從技術(shù)演進(jìn)角度看MMC的硬件結(jié)構(gòu)相對統(tǒng)一真正的技術(shù)門檻在于“建模精度”和“控制實現(xiàn)”這兩個層面。仿真模型做粗了分析結(jié)果失真控制策略驗證不到位做細(xì)了計算資源消耗驚人仿真速度慢得難以接受。所以我傾向于把MMC相關(guān)技術(shù)拆成三個層次來看第一層是拓?fù)浣Y(jié)構(gòu)與運行原理這是理解一切的基礎(chǔ)第二層是數(shù)學(xué)建模這是定量分析和控制器設(shè)計的依據(jù)第三層是程序?qū)崿F(xiàn)包括仿真平臺搭建、控制算法編寫和數(shù)據(jù)后處理。這三個層次環(huán)環(huán)相扣缺了任何一環(huán)都容易在工程實踐中碰壁。1.2 搞懂MMC前必須建立的幾個核心概念在深入建模和程序?qū)崿F(xiàn)之前有幾個核心概念必須吃透否則后面全是糊涂賬。第一個是子模塊拓?fù)洹MC中用的子模塊大部分是半橋結(jié)構(gòu)由兩個IGBT和一個電容組成可以根據(jù)開關(guān)狀態(tài)選擇“投入”或“切除”電容電壓基本維持在額定值附近。全橋子模塊則多了一個旁路路徑具備直流故障清除能力但器件數(shù)量和成本也相應(yīng)增加。單從建模角度看半橋和全橋的數(shù)學(xué)模型差別不算大主要體現(xiàn)為開關(guān)函數(shù)和橋臂輸出電壓表達(dá)式的不同。第二個是橋臂概念。每個相單元有兩個橋臂上橋臂和下橋臂各串接N個子模塊和一個橋臂電抗器。橋臂電抗器是MMC的特性標(biāo)志之一它一方面限制環(huán)流另一方面在橋臂之間電壓差引起的沖擊電流過大時起到緩沖作用。運行中上橋臂和下橋臂的插入子模塊數(shù)之和應(yīng)該維持恒定在最近電平逼近調(diào)制中這樣才能保證直流母線電壓穩(wěn)定。第三個是環(huán)流問題。所謂環(huán)流指橋臂電流中除了交流側(cè)傳輸功率所需的基波分量外還存在主要呈二次諧波規(guī)律的分量。環(huán)流會增加器件和電抗器的損耗嚴(yán)重時可能導(dǎo)致橋臂電流畸變所以幾乎所有MMC控制策略里都帶有環(huán)流抑制環(huán)節(jié)。建模時如果不考慮環(huán)流橋臂電流的動態(tài)特性就描述不準(zhǔn)確。第四個是電容電壓均衡。每個子模塊電容電壓必須保持在參考值附近過高或過低都會影響輸出波形質(zhì)量和器件安全。由于各子模塊開關(guān)動作時刻、損耗等存在差異電容電壓會根據(jù)負(fù)載情況逐漸發(fā)散所以控制算法必須實時采集各子模塊電壓通過排序算法或獨立調(diào)節(jié)進(jìn)行均衡。把這四個概念印在腦子里再去理解建模公式和控制策略就會順很多。很多新手一開始就被一堆公式和代碼嚇住了其實都是圍著這四個點在打轉(zhuǎn)。2. 建模方法詳解與控制特性解析2.1 從器件級到系統(tǒng)級MMC的四種常用模型MMC建模的核心問題是“精度”和“速度”的權(quán)衡。我常用的是四種模型詳細(xì)開關(guān)模型、均值模型、戴維南等效模型和簡化系統(tǒng)級模型。詳細(xì)開關(guān)模型是EMT類仿真中的“金標(biāo)準(zhǔn)”每個子模塊里IGBT和二極管的開關(guān)過程用可變電阻或分段線性模型描述能比較精確地反映開關(guān)暫態(tài)和故障特性。但是缺點也很明顯橋臂級聯(lián)數(shù)N一多開關(guān)器件數(shù)量呈線性增長仿真步長必須壓到微秒甚至納秒級計算量非常大跑一次完整的暫態(tài)仿真可能要幾個小時甚至幾天。所以詳細(xì)開關(guān)模型我一般只用于啟動過程分析、故障波形復(fù)現(xiàn)和硬件在環(huán)測試前的波形校核不會用它來做參數(shù)整定和長時間運行分析。均值模型把橋臂看成一個受控電壓源和受控電流源的組合忽略子模塊間的開關(guān)離散動作只保留外特性。這種模型仿真速度極快對研究控制器參數(shù)、系統(tǒng)級動態(tài)響應(yīng)和交直流電網(wǎng)交互影響非常合適。早期我用均值模型做整流/逆變工況切換分析時仿真時間從詳細(xì)模型的幾十個小時壓縮到了幾十分鐘效率提升非??捎^。戴維南等效模型是目前大型MMC工程電磁暫態(tài)仿真的主力。它的思想是對每個子模塊建立戴維南等效電路再對整個橋臂的戴維南支路進(jìn)行疊加簡化使得不管橋臂串聯(lián)了多少個子模塊仿真中每個橋臂只需要處理一個等效阻抗和等效電壓源。這個方案把計算復(fù)雜度和子模塊數(shù)量解耦既保留了電容動態(tài)特性又能跑很大的系統(tǒng)規(guī)模是工程仿真工具比如某些商業(yè)化平臺的核心實現(xiàn)方式。簡化系統(tǒng)級模型則面向電網(wǎng)規(guī)劃和并網(wǎng)研究一般把MMC等效為理想電壓源加阻抗不考慮內(nèi)部諧波和環(huán)流只用于分析潮流、短路容量和穩(wěn)定性問題。需要注意的是這種模型必須謹(jǐn)慎使用因為它在分析故障特性和控制交互時會漏掉很多信息。建模方式的選擇沒有絕對的對錯關(guān)鍵看你要回答什么樣的問題。下表是我根據(jù)實踐經(jīng)驗做的適用性總結(jié)模型類型仿真精度計算速度適用場景詳細(xì)開關(guān)模型最高慢故障細(xì)節(jié)還原、啟動波形研究、硬件在環(huán)驗證均值模型中等快控制參數(shù)整定、系統(tǒng)級動態(tài)分析、長時運行模擬戴維南等效模型較高較快大規(guī)模MMC系統(tǒng)、多端直流、交流電網(wǎng)耦合分析簡化系統(tǒng)級模型較低極快潮流計算、穩(wěn)定分析、電網(wǎng)規(guī)劃2.2 數(shù)學(xué)模型方程式一點都不玄乎拿最常見的半橋子模塊來舉例子模塊的輸出電壓可以直接用開關(guān)函數(shù)表示。設(shè)子模塊電容電壓為Vc開關(guān)函數(shù)S為1時子模塊投入S為0時子模塊切除那么子模塊輸出電壓Vo S × Vc。橋臂輸出電壓則是該橋臂所有已投入子模塊電壓之和??刂破餍枰獙崟r決策的是每個橋臂在某一時刻投入多少個子模塊才能讓橋臂輸出電壓逼近期望值。以單相上橋臂為例橋臂電流的動力學(xué)方程可寫作Larm × (di_arm/dt) Vdc/2 - Varm - Vac其中Larm是橋臂電抗器的電感值Vdc是直流母線電壓Varm是上橋臂投入子模塊的總電壓Vac是交流側(cè)相電壓。這個方程看起來簡單但它揭示了MMC運行的一個本質(zhì)約束橋臂電流的變化率取決于橋臂電壓與直流、交流電壓之間的差。環(huán)流的產(chǎn)生也從這個方程中體現(xiàn)出來。由于上、下橋臂的電壓之和在理想情況下恒定但每個橋臂內(nèi)部的電壓紋波不同導(dǎo)致橋臂電流中出現(xiàn)僅在各橋臂內(nèi)部流動、不流向交流側(cè)的環(huán)流分量。環(huán)流的主要頻率成分是二倍頻有時也伴隨四倍頻等偶次諧波。要抑制環(huán)流通常的做法是在橋臂參考電壓中疊加一個二倍頻的負(fù)序分量或者在控制環(huán)路中加入環(huán)流比例諧振/準(zhǔn)諧振控制器。電容電壓的動態(tài)方程也同樣關(guān)鍵C × (dVc/dt) S × i_arm這個式子說明電流對電容的充放電跟開關(guān)狀態(tài)直接相關(guān)。為了維持電容電壓平衡不能簡單地讓所有子模塊一起投切必須根據(jù)電壓高低和各子模塊的電流方向合理分配工作狀態(tài)。這些數(shù)學(xué)方程是整個MMC控制算法的基礎(chǔ)。把它們寫清楚之后后面無論是做均值模型驗證還是寫離散控制代碼都可以直接套用不會迷茫。2.3 調(diào)制方法選擇載波移相與最近電平逼近調(diào)制策略在MMC程序?qū)崿F(xiàn)中屬于“承上啟下”的一環(huán)??刂扑惴ㄋ愠隽似谕臉虮垭妷旱唧w怎么指揮每個子模塊去逼近這個電壓就是調(diào)制策略的事。工程上最常用的是載波移相調(diào)制和最近電平逼近調(diào)制。載波移相調(diào)制的思路是每個子模塊分配一個相位錯開的三角載波調(diào)制信號統(tǒng)一依靠載波之間的相位差產(chǎn)生多電平PWM波形。橋臂串聯(lián)N個子模塊相鄰載波相位差設(shè)置為2π/N。這種方式開關(guān)頻率相對固定輸出波形頻譜能量較集中濾波設(shè)計比較容易適合子模塊數(shù)不太多、調(diào)制比較靈活的場合比如中壓電機(jī)驅(qū)動或者中小功率MMC實驗平臺。最近電平逼近調(diào)制則更貼近MMC在大規(guī)模輸電應(yīng)用中的真實形態(tài)。它直接把期望橋臂電壓除以單個子模塊電容電壓參考值四舍五入得到需要投入的子模塊數(shù)量然后根據(jù)電容電壓均衡算法確定具體是哪些子模塊投入。這種方式實現(xiàn)簡單不依賴高頻載波單個開關(guān)器件的開關(guān)頻率可以壓得很低損耗優(yōu)勢明顯。但缺點是波形在電壓臺階切換時會有輕微階梯狀等效開關(guān)頻率接近基頻輸出諧波相對PWM方式略高不過由于MMC本身電平數(shù)多實際波形已經(jīng)十分接近正弦。從程序?qū)崿F(xiàn)角度我建議兩種方式都掌握。載波移相調(diào)制在控制器代碼里需要生成多路PWM信號占用比較多定時器資源最近電平逼近則更依賴排序算法考驗的是代碼執(zhí)行效率。實際工程項目中輸電場景鮮有例外地選擇最近電平逼近而實驗室驗證和教學(xué)演示用載波移相更直觀。2.4 控制架構(gòu)外環(huán)、內(nèi)環(huán)、環(huán)流抑制的配合MMC的控制系統(tǒng)通常分成三個層級系統(tǒng)級功率控制、換流器級電流控制、子模塊級動態(tài)控制。這種分層設(shè)計的好處是每層關(guān)注的時間尺度和物理量不同便于工程實現(xiàn)和維護(hù)。換流器級電流控制沿用經(jīng)典dq同步旋轉(zhuǎn)坐標(biāo)系下的解耦控制。外環(huán)根據(jù)有功功率、無功功率或直流電壓參考值計算出d軸、q軸電流指令內(nèi)環(huán)電流控制器用PI調(diào)節(jié)器跟蹤電流指令輸出電壓調(diào)制信號。這部分跟傳統(tǒng)兩電平VSC的控制很相似可以直接沿用成熟的整定方法。真正的特色在于子模塊級控制。最近電平逼近調(diào)制下控制器每步需要確定子模塊的投切狀態(tài)。為了均衡電壓我常用排序法如果橋臂電流給電容充電就優(yōu)先投入電壓較低的子模塊如果橋臂電流讓電容放電就優(yōu)先投入電壓較高的子模塊。排序法實現(xiàn)簡單但角色在于必須控制開關(guān)頻率否則每次都重新排序的話子模塊開關(guān)動作太頻繁。工程中還會加入滯環(huán)邏輯限制開關(guān)次數(shù)或者在排序結(jié)果中加保持因子讓子模塊狀態(tài)不要頻繁跳變。環(huán)流抑制一般放在內(nèi)環(huán)電流控制之后。因為環(huán)流屬于零序性質(zhì)在dq坐標(biāo)系里會表現(xiàn)為二倍頻的負(fù)序分量直接檢測橋臂電流后減去交流分量就能得到環(huán)流成分再用PR控制器或者陷波器加PI來處理。這部分如果做得不好橋臂電流峰值可能超標(biāo)損耗上升嚴(yán)重時保護(hù)動作??刂萍軜?gòu)上我沒有采用太花哨的方案核心還是經(jīng)典的雙閉環(huán)加環(huán)流抑制加上子模塊電壓均衡這套組合足夠應(yīng)對絕大多數(shù)工程需求。如果條件允許也可以加上模塊化模型預(yù)測控制但對硬件要求高一般場合不必強(qiáng)求。3. 程序?qū)崿F(xiàn)細(xì)節(jié)與完整流程3.1 平臺選擇哪套工具更適合MMC仿真程序?qū)崿F(xiàn)的第一步是選平臺。我常用的平臺主要有MATLAB/Simulink、PSCAD/EMTDC和Python自研模型三種各有適用場景。MATLAB/Simulink的通用性和生態(tài)優(yōu)勢最明顯自帶豐富的電力電子庫和控制器設(shè)計工具。搭一個中等規(guī)模的MMC仿真模型比如21電平在普通電腦上可以流暢運行配合Simulink的S-Function或者C MEX S-Function還能把排序算法部分用C語言加速實現(xiàn)精度和速度的相對平衡。不過Simulink的詳細(xì)開關(guān)模型還是偏慢不適合大規(guī)模系統(tǒng)。PSCAD/EMTDC是電磁暫態(tài)仿真的老牌工具很多實際工程項目的驗證報告都是用它在做。它內(nèi)置的MMC模型已經(jīng)比較成熟支持戴維南等效算法仿真大型MMC工程比較穩(wěn)健。缺點是收費昂貴、閉源且自定義控制邏輯時不太靈活適合做標(biāo)準(zhǔn)場景驗證。Python自研模型是我個人比較推薦的學(xué)習(xí)和進(jìn)階路徑。用numpy處理矩陣運算scipy負(fù)責(zé)求解微分方程matplotlib做結(jié)果可視化再加上numba做性能加速完全可以搭一個半橋MMC模型。關(guān)鍵在于自己建模的過程能讓你對MMC的內(nèi)部機(jī)理有更深理解而且代碼是完全透明的想加什么功能都可以。如果讓我給個建議入門者先MATLAB/Simulink跑通整體流程進(jìn)階者用Python自己實現(xiàn)一遍關(guān)鍵算法做具體項目交付時再用PSCAD或者專業(yè)仿真平臺。三條路都有價值不必死磕哪一條。3.2 基于Python實現(xiàn)MMC仿真框架的完整步驟以Python為例我梳理了一套搭建MMC仿真框架的完整步驟方便大家直接參考。第一步是參數(shù)初始化。確定系統(tǒng)額定功率、交流電壓、直流電壓、子模塊電容電壓、橋臂子模塊數(shù)量、橋臂電抗值子模塊電容值等。比如我要搭一個21電平的單端MMC子模塊數(shù)量N為20直流母線電壓設(shè)為40kV每個子模塊電容電壓額定值2kV。橋臂電抗的選取一般按照經(jīng)驗公式電感值約在0.1p.u.到0.2p.u.之間具體需要根據(jù)環(huán)流抑制效果和暫態(tài)過流水平綜合考量。第二步是離散化求解。MMC的狀態(tài)方程是一組常微分方程仿真時最常用的是隱式梯形法或四階龍格庫塔法??紤]到開關(guān)動作帶來的強(qiáng)非線性仿真步長一般取10微秒到50微秒之間。步長太大開關(guān)動作細(xì)節(jié)丟失步長太小計算負(fù)擔(dān)重。我一般先用50微秒步長跑穩(wěn)態(tài)再針對暫態(tài)過程把步長縮到1微秒。第三步是構(gòu)建子模塊狀態(tài)數(shù)組。每個子模塊需要維護(hù)電容電壓、投入狀態(tài)兩個變量。投入狀態(tài)由開關(guān)函數(shù)或最近電平逼近的輸出決定電容電壓則根據(jù)當(dāng)前的投切狀態(tài)和橋臂電流用前面提到的電容動態(tài)方程更新。第四步是控制器邏輯??刂破髅總€控制周期一般幾百微秒到幾毫秒取決于開關(guān)頻率和硬件性能計算一次調(diào)制信號。外環(huán)PI調(diào)節(jié)器、內(nèi)環(huán)電流PI調(diào)節(jié)器、環(huán)流抑制器以及子模塊電壓排序邏輯按順序執(zhí)行。第五步是后處理。仿真結(jié)束后提取橋臂電流、子模塊電壓、輸出功率質(zhì)量等數(shù)據(jù)繪制波形圖和頻譜圖用于評估控制效果。下面給出一個極簡的核心循環(huán)偽代碼框架方便理解流程# 核心仿真循環(huán)框架偽代碼 for step in range(total_steps): # 1. 測量三相交流電壓、直流電壓、橋臂電流 v_ac measure_ac_voltage() i_arm measure_arm_current() v_cap get_submodule_capacitor_voltage() # 2. 外環(huán)控制生成有功、無功電流參考 i_d_ref outer_pi(v_dc_ref, v_dc_meas) i_q_ref outer_pi(q_ref, q_meas) # 3. 內(nèi)環(huán)電流控制產(chǎn)生調(diào)制電壓參考 v_d_mod inner_pi(i_d_ref, i_d_meas) v_q_mod inner_pi(i_q_ref, i_q_meas) # 4. 環(huán)流抑制疊加二倍頻補(bǔ)償分量 v_cir_cmp circulation_suppressor(i_cir_meas) # 5. 最近電平逼近調(diào)制計算每相橋臂投入子模塊數(shù) n_up round_to_nearest_level(v_arm_ref_up) n_down round_to_nearest_level(v_arm_ref_down) # 6. 子模塊電壓均衡排序 select_submodules(n_up, directioni_arm) select_submodules(n_down, direction-i_arm) # 7. 更新狀態(tài)求解微分方程 update_capacitor_voltage() update_arm_current()上面這段代碼的邏輯順序在工程實現(xiàn)中基本固定按這個框架寫出來的程序只要參數(shù)合理一般都能穩(wěn)定運行。3.3 關(guān)鍵算法實現(xiàn)子模塊電容電壓均衡排序這里特別展開講一下子模塊電壓均衡算法因為這是MMC程序?qū)崿F(xiàn)里最容易出問題、也最能體現(xiàn)代碼功底的地方。最簡單的排序法實現(xiàn)思路是每個控制周期獲取當(dāng)前橋臂所有子模塊的電容電壓按從小到大排序。如果橋臂電流方向是充電電流從子模塊正極流入電容則優(yōu)先投入電壓最低的子模塊如果是放電則優(yōu)先投入電壓最高的子模塊。代碼層面需要維護(hù)幾個索引數(shù)組避免每次把狀態(tài)矩陣整個復(fù)制。不過直接做全排序有兩個問題。一是計算量隨N增大呈O(NlogN)增長在大型輸電工程中N可達(dá)到數(shù)百控制周期卻只有幾十微秒實時性可能吃緊二是排序切換會導(dǎo)致子模塊頻繁投入切除開關(guān)損耗增加。工程中常用的改良方案有兩個。第一個是“分組排序法”把N個子模塊按電壓高低分成若干組每組內(nèi)部再排序整體計算量降低。第二個是“保持因子法”引入一個滯環(huán)參數(shù)只有當(dāng)子模塊電壓偏差超過一定閾值時才觸發(fā)重新排序否則沿用上一次的排序結(jié)果。還有一種是固定開關(guān)頻率的排序優(yōu)化它通過限制每個子模塊在一個基波周期內(nèi)的開關(guān)次數(shù)來平滑波形。電壓均衡算法參數(shù)的調(diào)整我一般在仿真里做掃參實驗。閾值設(shè)太小控制過于頻繁開關(guān)損耗偏高閾值設(shè)太大電容電壓發(fā)散。經(jīng)驗上滯環(huán)寬度取電容電壓額定值的1%到2%比較合適。3.4 結(jié)果分析波形質(zhì)量與諧波特征的判斷方法程序跑完之后結(jié)果分析絕不能只看波形“差不多”必須定量判斷。以下幾個指標(biāo)我每次都會算一遍。第一是電容電壓波動范圍。正常運行下每個子模塊電容電壓應(yīng)該在參考值附近波動波動峰峰值一般控制在±5%以內(nèi)。如果超過這個范圍說明電容參數(shù)選型偏小或者均衡控制性能不足。第二是橋臂電流諧波含量。橋臂電流中除了基頻分量主要關(guān)注二次諧波環(huán)流占比。我會用FFT提取橋臂電流的頻譜把二次諧波幅值與基波幅值做比值理想情況應(yīng)控制在5%以下。第三是輸出電壓THD。MMC輸出電壓諧波含量本來就很低21電平下THD通常在5%以下。通過對比THD還能反過來驗證調(diào)制策略是否正確——如果THD異常偏高多半是最近電平逼近的取整邏輯寫錯了或者子模塊電壓波動過大導(dǎo)致波形畸變。第四是功率階躍響應(yīng)速度。控制系統(tǒng)的動態(tài)響應(yīng)能力可以用有功功率階躍試驗評估關(guān)注調(diào)節(jié)時間和超調(diào)量。一般整定好的PI參數(shù)調(diào)節(jié)時間在幾十到一百毫秒左右超調(diào)量控制在5%以內(nèi)。我習(xí)慣把運行結(jié)果同時輸出為數(shù)值表格和波形圖這樣既方便自己審閱也方便以后測試報告中引用數(shù)據(jù)。4. 工程實現(xiàn)中的常見問題與排查技巧實錄4.1 收斂性問題和數(shù)值震蕩的排查思路MMC仿真跑不起來或者結(jié)果發(fā)散是每個新手都逃不過的一關(guān)。我自己踩過不少坑最典型的一類是數(shù)值震蕩?,F(xiàn)象是仿真波形看起來有規(guī)律但疊加了很高頻的毛刺尤其在開關(guān)動作瞬間。原因多半是電壓和電流在開關(guān)事件時刻不連續(xù)而求解器在固定步長下沒法精確捕捉到那個跳變點。解決思路比較明確一是減小仿真步長讓開關(guān)動作時刻落到步長網(wǎng)格內(nèi)二是在模型中串聯(lián)合適的阻尼電阻或者增加數(shù)值阻尼環(huán)節(jié)三是對開關(guān)事件采用“理想開關(guān)snubber”的建模方式避免開關(guān)瞬間阻抗突變引起振蕩。另一類發(fā)散問題是控制器積分飽和。PI控制器在階躍指令或故障條件下容易積分飽和導(dǎo)致指令超調(diào)過大引起系統(tǒng)振蕩。我的排查順序是首先看橋臂電流和調(diào)制電壓是否同步發(fā)散如果是先有調(diào)制電壓飽和、后有電流發(fā)散基本可以判定積分飽和。解法是給PI調(diào)節(jié)器加抗飽和環(huán)節(jié)或?qū)Ψe分項做限幅處理。4.2 控制參數(shù)整定的幾個實操原則PI參數(shù)整定看著簡單實際做起來坑很多。我總結(jié)了幾條實操原則。第一先整定電流內(nèi)環(huán)再整定電壓外環(huán)。內(nèi)環(huán)帶寬要明顯高于外環(huán)一般取十倍左右的差距。不要一上來就同時調(diào)兩環(huán)那樣出了問題根本分不清是哪一環(huán)引起的。第二用典型I型系統(tǒng)整定法作為初始值。電流內(nèi)環(huán)的PI參數(shù)可以根據(jù)橋臂電感和控制系統(tǒng)延時直接算出一個初值然后做微調(diào)。公式不復(fù)雜Ki約等于橋臂電感除以電流環(huán)等效時間常數(shù)Kp還要考慮電流反饋增益和調(diào)制比。第三現(xiàn)場調(diào)試時先用小信號測試不要直接上額定功率。我習(xí)慣先在10%額定功率下做階躍響應(yīng)測試確認(rèn)內(nèi)環(huán)跟隨速度和環(huán)流抑制效果再逐步加大功率等級。第四采樣延時和控制延時必須建模準(zhǔn)確。數(shù)字控制系統(tǒng)從采樣到PWM輸出存在固有延時延時過大會降低系統(tǒng)相位裕度。工程上會通過超前補(bǔ)償或預(yù)測觀測器來抵消一部分延時影響。4.3 環(huán)流抑制失效的處理流程如果環(huán)流抑制控制加上了但效果不明顯我一般按下面流程排查。第一步檢查環(huán)流提取環(huán)節(jié)。環(huán)流通常是二倍頻負(fù)序性質(zhì)如果提取算法里濾波相位不準(zhǔn)誤導(dǎo)抑制信號效果就會大打折扣??梢韵扔娩洸üぞ邌为毑榭刺崛〉降摹碍h(huán)流”波形是否平滑連續(xù)排除信號含雜波的問題。第二步檢查控制器輸出極性。環(huán)流抑制量疊加到橋臂電壓參考時上橋臂和下橋臂的極性必須正確處理。極性反了不但不會抑制環(huán)流反而會放大環(huán)流表現(xiàn)為系統(tǒng)出現(xiàn)明顯的二倍頻功率脈動。第三步檢查參數(shù)帶寬。環(huán)流抑制控制器帶寬要覆蓋二倍頻附近頻段。用PR控制器或諧振控制器時諧振頻率必須準(zhǔn)確設(shè)置在100Hz50Hz系統(tǒng)而且品質(zhì)因數(shù)Q值不宜過高否則頻率偏移時魯棒性差。第四步觀察是否觸發(fā)限幅。環(huán)流抑制量幅值受調(diào)制比約束如果環(huán)流過大抑制量達(dá)到限幅值控制器就會“飽和失效”。這時應(yīng)該優(yōu)先增大橋臂電抗從源頭抑制環(huán)流幅值。4.4 模塊化樣機(jī)調(diào)試中遇到的硬件層問題雖然本文側(cè)重仿真和程序?qū)崿F(xiàn)但硬件調(diào)試中的一些教訓(xùn)也值得寫進(jìn)來。我參與過某臺低壓小功率MMC樣機(jī)的調(diào)試遇到過兩個比較典型的問題。一個是子模塊電容電壓采樣同步問題。多路子模塊信號需要同步采樣各通道之間如果出現(xiàn)相位差排序算法會得出錯誤的判定進(jìn)而導(dǎo)致電壓均衡異常。排查后發(fā)現(xiàn)是采樣觸發(fā)信號經(jīng)過緩沖器時延不同修正后問題消失。另一個是通信中斷導(dǎo)致子模塊保護(hù)誤動作。MMC運行中子模塊控制器和主控之間持續(xù)通信一旦丟包率升高子模塊會為了保護(hù)自身電容電壓而在短時間內(nèi)頻繁旁路引發(fā)功率波動。后來在通信協(xié)議里加入重發(fā)機(jī)制和超時處理邏輯誤動作率明顯下降。這些經(jīng)驗說明一個道理仿真模型做得再完善也不知道實際硬件里通信時延、采樣誤差、器件非理想特性帶來的影響。我的建議是仿真和樣機(jī)調(diào)試盡量并行推進(jìn)用仿真結(jié)果指導(dǎo)硬件調(diào)試再用硬件實測數(shù)據(jù)反過來修正仿真模型參數(shù)這樣模型的價值才能真正體現(xiàn)出來。5. 程序?qū)崿F(xiàn)進(jìn)階與工具鏈擴(kuò)展5.1 實時仿真與硬件在環(huán)測試的實現(xiàn)要點MMC控制器從離線仿真走向?qū)嶋H應(yīng)用中間通常要做一輪硬件在環(huán)HIL測試。HIL測試的思路是把換流器主電路部分放在實時仿真器里運行控制器用真實的控制硬件兩者通過高速接口連接。這樣可以在不搭建真實功率電路的情況下驗證控制器邏輯和保護(hù)策略。HIL測試并非簡單把離線模型拿過來跑。實時仿真器要求每個仿真步長內(nèi)完成全部計算所以模型必須大幅簡化和優(yōu)化。我常用的做法是把MMC主電路替換為戴維南等效模型控制器接口信號保留完整保護(hù)邏輯則在仿真器里額外搭一套快速故障注入通道。測試時要特別注意接口信號的時序約束比如PWM脈沖信號的采樣周期和控制器的輸出周期兩邊必須嚴(yán)格對齊否則會出現(xiàn)毛刺甚至誤觸發(fā)。做HIL還有一個容易踩的坑實時仿真器的輸入輸出延遲??刂破靼l(fā)出指令到仿真器響應(yīng)之間存在固定延遲這個延遲如果大于控制器設(shè)計時預(yù)留的相位裕度系統(tǒng)穩(wěn)定性會受影響。解決方法是把仿真步長進(jìn)一步減小或在接口處增加額外延時補(bǔ)償。5.2 從單端模型到兩端直流系統(tǒng)的拓展方法不要把MMC建模能力停留在單端換流站。實際工程中MMC幾乎都是成對出現(xiàn)的——整流端和逆變端通過直流線路相連。從單端模型擴(kuò)展到兩端直流系統(tǒng)核心是處理好兩端的協(xié)調(diào)。我的擴(kuò)展做法是在仿真框架中增加直流線路模型。直流線路根據(jù)長度不同可以選擇集中參數(shù)模型、多段π型模型或分布參數(shù)模型。短線路用集中參數(shù)即可長距離架空線或電纜線路必須用分布參數(shù)模型否則線路兩側(cè)的波過程會嚴(yán)重偏差??刂粕蟽啥讼到y(tǒng)通常一端控制直流電壓另一端控制有功功率。直流電壓控制端相當(dāng)于整個系統(tǒng)的“定壓源”其響應(yīng)特性直接決定功率傳輸?shù)姆€(wěn)定性。我一般在兩端模型中加入直流電壓偏差保護(hù)當(dāng)直流電壓超過上下限值時兩端控制器快速協(xié)調(diào)降功率避免直流過壓。兩端模型跑通后還能繼續(xù)擴(kuò)展成多端直流系統(tǒng)。多端系統(tǒng)的核心是直流電網(wǎng)的功率分配策略和故障隔離方案特別是直流斷路器動作時序的配合。這部分已經(jīng)屬于比較前沿的工程問題但對理解MMC技術(shù)的工程價值很有幫助。5.3 如何把仿真代碼模塊化便于復(fù)用和維護(hù)仿真代碼跟普通工程代碼一樣需要講究模塊化和可維護(hù)性。我早期寫MMC仿真時因為嫌麻煩把參數(shù)、模型、控制、后處理全寫在一個腳本里結(jié)果每次修改參數(shù)都要在幾百行代碼里找變動位置效率極低。后來重構(gòu)為模塊化結(jié)構(gòu)效果立竿見影。整體上分成幾個模塊參數(shù)配置模塊、主電路模型模塊、控制器模塊、后處理模塊。參數(shù)配置統(tǒng)一放在一個字典或者類里模型只負(fù)責(zé)根據(jù)參數(shù)更新狀態(tài)控制器只負(fù)責(zé)接收測量值并輸出調(diào)制信號。不同模塊之間通過統(tǒng)一的接口函數(shù)傳遞數(shù)據(jù)耦合度降到最低。重構(gòu)以后我切換不同調(diào)制策略或者不同控制模式只需要替換控制器模塊的對應(yīng)函數(shù)主電路模型和后處理完全不用動。代碼量看起來增加了一些但可維護(hù)性和可復(fù)用性提升非常大這個投入完全值得。5.4 其他實用技巧數(shù)據(jù)記錄、可視化與報告生成仿真程序不僅要算得準(zhǔn)還要有高效的數(shù)據(jù)處理手段。我用Python完成仿真后通常會做一套標(biāo)準(zhǔn)化的后處理腳本一次性生成所有需要的圖表和數(shù)據(jù)表。FFT頻譜分析是評估波形質(zhì)量的必修課。我會用numpy.fft提取橋臂電壓和電流的頻譜重點標(biāo)注基波、2次、3次、5次、7次等主要諧波分量然后計算THD值。把多個工況的THD結(jié)果放在同一張圖里對比能直觀看出參數(shù)變化對波形質(zhì)量的整體影響。可視化也需要注意細(xì)節(jié)。波形圖建議把指令值、實際值和誤差曲線畫在同一個坐標(biāo)系里這樣控制質(zhì)量的評估一目了然。對于長時仿真還要注意波形圖的時標(biāo)單位統(tǒng)一避免用不同的時間基準(zhǔn)導(dǎo)致誤判。報告生成上我習(xí)慣把關(guān)鍵仿真結(jié)果自動匯總到一張Excel表或PDF文檔包含工況說明、關(guān)鍵參數(shù)、波形截圖、THD數(shù)據(jù)、控制參數(shù)整定值等。這樣做一方面方便團(tuán)隊協(xié)作時直接查看結(jié)果另一方面也是對自己項目經(jīng)驗的一種沉淀。長期積累下來這些報告就成了自己技術(shù)成長的最真實記錄。6. 寫在后面一點個人總結(jié)與擴(kuò)展建議經(jīng)常有同行問我說MMC技術(shù)內(nèi)容這么多學(xué)習(xí)路線應(yīng)該怎么規(guī)劃。我一般的回答是先別急著抓控制算法把拓?fù)洹⒆幽K工作原理和基本方程搞扎實然后用均值模型跑通控制流程再逐步加入電壓均衡、環(huán)流抑制等細(xì)節(jié)最后再深入到開關(guān)級模型和實時仿真。每一步建立在前一步的基礎(chǔ)上跳步的結(jié)果就是卡殼在某一個環(huán)節(jié)反復(fù)調(diào)試卻找不到原因。我也建議有條件的話盡量結(jié)合實驗室的小功率樣機(jī)來做驗證。仿真模型和實物之間總存在偏差——開關(guān)驅(qū)動的死區(qū)時間、采樣通道的噪聲、子模塊間的參數(shù)離散性這些都是仿真里不在意的細(xì)節(jié)放到實際系統(tǒng)里卻會影響控制性能。親手調(diào)試一次樣機(jī)勝過一百次仿真跑通這種體會相信每一位同門都有。最后分享一個小技巧調(diào)試MMC控制系統(tǒng)時把子模塊電容電壓、橋臂電流和調(diào)制信號這三組波形放到同一個示波器界面里觀察出現(xiàn)異常時先看三者之間的對應(yīng)關(guān)系通常就能快速定位問題出在控制環(huán)節(jié)還是主電路環(huán)節(jié)。MMC技術(shù)這些年發(fā)展很快從兩電平到模塊化從點對點工程到多端直流網(wǎng)絡(luò)技術(shù)演進(jìn)的速度確實超出了很多人的預(yù)期。但無論技術(shù)怎么變扎實的建模能力、嚴(yán)謹(jǐn)?shù)姆治隽?xí)慣和過硬的程序?qū)崿F(xiàn)功底始終是立身之本。希望這篇分享對正在接觸MMC的同行有所幫助。如果有朋友在實際操作中遇到不同的問題也歡迎交流畢竟這類技術(shù)細(xì)節(jié)就是在不斷碰撞中越磨越清晰的。