制仿真:從原理到MATLAB/Simulink實(shí)現(xiàn))
先說(shuō)個(gè)實(shí)際感受雙有源橋DAB變換器的仿真很多人一上來(lái)就搭模型結(jié)果波形出來(lái)完全對(duì)不上理論然后開(kāi)始懷疑人生。DAB本身拓?fù)洳粡?fù)雜兩個(gè)全橋加一個(gè)高頻變壓器真正讓人頭大的是調(diào)制方式。單移相SPS還好說(shuō)到了擴(kuò)展移相EPS——原邊橋臂內(nèi)移相、原副邊之間還有移相——自由度一多很多人就懵了。EPS能減小回流功率、拓寬軟開(kāi)關(guān)范圍代價(jià)是控制變量從1個(gè)變成2個(gè)分析和仿真難度都上了一個(gè)臺(tái)階。這篇內(nèi)容我會(huì)用MATLAB/Simulink從零把EPS調(diào)制的DAB模型完整過(guò)一遍包括控制信號(hào)的產(chǎn)生邏輯、功率傳輸公式怎么落到仿真里、關(guān)鍵波形怎么判讀、以及我實(shí)際仿真中踩過(guò)的坑步長(zhǎng)、死區(qū)、開(kāi)關(guān)管模型這些。適合剛接觸DAB、或者SPS已經(jīng)玩明白想往EPS進(jìn)階的讀者也適合那些做硬件之前想先把控制邏輯和參數(shù)邊界驗(yàn)證清楚的工程師。文中所有參數(shù)計(jì)算和模型搭建思路都是可以直接抄到Simulink里跑的。1. 為什么DAB要用EPS從SPS的短板說(shuō)起1.1 SPS的簡(jiǎn)單之美與三個(gè)致命代價(jià)單移相調(diào)制是所有DAB調(diào)制方式里最直覺(jué)的一種原邊全橋和副邊全橋都產(chǎn)生50%占空比的方波兩邊的方波之間有一個(gè)相移角。這個(gè)相移角直接決定了傳輸功率的大小和方向。MATLAB里搭SPS模型非常簡(jiǎn)單一個(gè)移相模塊加兩個(gè)PWM發(fā)生器就能跑起來(lái)這也是為什么大多數(shù)人入門DAB都是先做SPS。但SPS的短板在實(shí)際工況里非常明顯。我用一個(gè)具體例子來(lái)說(shuō)明假設(shè)一個(gè)DAB變換器輸入400V輸出48V變壓器變比設(shè)計(jì)為400:48電感折算到副邊為2μH開(kāi)關(guān)頻率100kHz。當(dāng)輸出功率比較低的時(shí)候比如只帶10%負(fù)載SPS的移相角會(huì)變得非常小電感電流的峰值和有效值并沒(méi)有按比例縮小而是出現(xiàn)大量的無(wú)功環(huán)流。這些環(huán)流不傳遞有功功率只在線路電阻和開(kāi)關(guān)管上產(chǎn)生損耗表現(xiàn)在仿真里就是輸出功率低但輸入電流不小效率曲線在輕載時(shí)掉得很厲害。第二個(gè)短板是回流功率。SPS在每一個(gè)開(kāi)關(guān)周期里有一段時(shí)間電感電流的方向和橋口電壓的方向是相反的能量從負(fù)載側(cè)流回輸入側(cè)。這段時(shí)間里變壓器和開(kāi)關(guān)管都在白做功。在我仿真的那個(gè)例子里滿載時(shí)回流功率占比大概15%左右輕載時(shí)可以飆到30%以上。對(duì)效率敏感的應(yīng)用比如電動(dòng)汽車車載充電機(jī)這個(gè)數(shù)字是絕對(duì)不能接受的。第三個(gè)短板是ZVS范圍。SPS實(shí)現(xiàn)零電壓開(kāi)通的條件是電感電流在開(kāi)關(guān)時(shí)刻足夠大能夠抽走開(kāi)關(guān)管結(jié)電容里的電荷。輕載時(shí)電流小這個(gè)條件就不滿足了ZVS丟失之后開(kāi)關(guān)損耗急劇增加。仿真里能清楚看到開(kāi)關(guān)管的電流和電壓波形在開(kāi)關(guān)時(shí)刻出現(xiàn)交疊這就是硬開(kāi)關(guān)的典型特征。1.2 EPS的核心思想把自由度從1變成2EPS擴(kuò)展移相的做法是在原邊全橋內(nèi)部再插入一個(gè)移相角。原來(lái)的原邊全橋兩個(gè)橋臂同時(shí)動(dòng)作產(chǎn)生一個(gè)占空比50%的方波。現(xiàn)在讓原邊的兩個(gè)橋臂錯(cuò)開(kāi)一個(gè)角度橋口電壓就變成一個(gè)占空比小于50%的方波。這個(gè)內(nèi)部移相角記為D1原副邊之間的移相角記為D2。自由度從1變成2意義在于多了一個(gè)調(diào)節(jié)手段。原來(lái)SPS只能通過(guò)改變D2來(lái)控制功率現(xiàn)在可以通過(guò)D1和D2的組合來(lái)同時(shí)控制功率大小和電流波形形狀。具體來(lái)說(shuō)EPS可以通過(guò)調(diào)節(jié)D1來(lái)改變電感電流在零電平附近停留的時(shí)間從而減小回流功率。舉個(gè)直觀的例子SPS時(shí)原邊橋口電壓是正負(fù)對(duì)稱的方波副邊電壓也差不多兩個(gè)方波之間錯(cuò)開(kāi)一個(gè)角度電流必然有一段時(shí)間要回流。EPS時(shí)原邊橋口電壓中間多了一段零電平電流在這段時(shí)間里自然續(xù)流回流的時(shí)間和幅值都被壓縮了。EPS的另一個(gè)優(yōu)勢(shì)是擴(kuò)大了ZVS范圍。當(dāng)D1引入之后原邊橋臂的開(kāi)關(guān)時(shí)刻發(fā)生了變化對(duì)應(yīng)的電感電流值也隨之變化。只要合理選擇D1和D2的組合可以保證在較寬的負(fù)載范圍內(nèi)開(kāi)關(guān)時(shí)刻的電流都滿足ZVS條件。這在仿真中表現(xiàn)為開(kāi)關(guān)管電壓在開(kāi)通前就已經(jīng)被電流抽到零。1.3 EPS的功率傳輸公式與何時(shí)該用EPSEPS的功率傳輸公式比SPS復(fù)雜一些但推導(dǎo)思路完全一樣利用電感電流在一個(gè)開(kāi)關(guān)周期內(nèi)的對(duì)稱性和穩(wěn)態(tài)條件求出關(guān)鍵時(shí)間點(diǎn)的電流值再對(duì)瞬時(shí)功率積分求平均。這里直接給結(jié)論假設(shè)原邊電壓為V1副邊折算到原邊的電壓為V2開(kāi)關(guān)周期為Ts電感為L(zhǎng)原邊內(nèi)部移相角對(duì)應(yīng)的占空比為D10≤D1≤1原副邊移相角對(duì)應(yīng)的占空比為D2。在D1和D2滿足一定關(guān)系時(shí)傳輸功率表達(dá)式為P (V1 × V2) / (2 × f_s × L) × [D2 × (1 - D2) - D12/4 D1×D2/2]注意這個(gè)公式的適用區(qū)間是D1/2 ≤ D2 ≤ 1 - D1/2也就是副邊方波的上升沿落在原邊方波第一個(gè)零電平區(qū)間的后半段到第二個(gè)高電平區(qū)間之間。如果D2太小或者太大功率表達(dá)式會(huì)變成另一種形式。我在仿真中習(xí)慣先用這個(gè)公式算出理論功率和理論移相角再拿仿真結(jié)果和它對(duì)比用來(lái)校驗(yàn)?zāi)P褪欠裾_。什么時(shí)候該用EPS而不是SPS我的判斷標(biāo)準(zhǔn)很簡(jiǎn)單如果只是做原理驗(yàn)證和入門學(xué)習(xí)SPS就夠了因?yàn)樗詈?jiǎn)單、最直觀但如果你的應(yīng)用對(duì)效率有要求、負(fù)載范圍寬、或者需要寬范圍軟開(kāi)關(guān)那EPS幾乎是必經(jīng)之路。比如車載充電器、儲(chǔ)能變流器、直流微電網(wǎng)的隔離DC-DC環(huán)節(jié)這些場(chǎng)景下EPS帶來(lái)的效率收益非??捎^。順帶說(shuō)一句DAB還有三重移相TPS模式自由度到3控制更加靈活但分析也更復(fù)雜通常是在EPS的基礎(chǔ)上做優(yōu)化建議先把EPS吃透再碰TPS。2. MATLAB/Simulink模型骨架從橋臂到高頻變壓器的搭建細(xì)節(jié)2.1 整體模型架構(gòu)設(shè)計(jì)在Simulink里搭DAB的EPS模型我建議把模型分成三個(gè)層次主電路層、控制信號(hào)層、測(cè)量與后處理層。主電路層用Simscape Electrical的元件搭建包括直流源、兩個(gè)全橋8個(gè)開(kāi)關(guān)管、高頻變壓器、輔助電感、輸出電容和負(fù)載??刂菩盘?hào)層用純Simulink模塊生成8路PWM脈沖送給主電路的開(kāi)關(guān)管。測(cè)量與后處理層負(fù)責(zé)采樣電壓電流、計(jì)算功率、判斷ZVS。這里要特別強(qiáng)調(diào)一個(gè)容易被忽視的點(diǎn)Simscape Electrical的開(kāi)關(guān)管模型默認(rèn)是帶散熱端子的如果你用的是帶熱模型的開(kāi)關(guān)管仿真速度會(huì)慢不少。對(duì)于純電氣驗(yàn)證我建議用不帶熱模型的理想開(kāi)關(guān)管或者M(jìn)OSFET模型只保留導(dǎo)通電阻和結(jié)電容參數(shù)。這樣既能保證ZVS判斷的準(zhǔn)確性需要結(jié)電容參與諧振又能把仿真速度控制在可接受范圍。模型參數(shù)我推薦用變量定義的方式在MATLAB腳本里統(tǒng)一賦值然后Simulink模型里的參數(shù)全部引用這些變量。這樣調(diào)參的時(shí)候不用打開(kāi)模型去改直接在腳本里改完重新運(yùn)行就行。下面的參數(shù)塊是我常用的定義方式% DAB EPS仿真參數(shù)定義 V1 400; % 輸入電壓 (V) V2 48; % 輸出電壓 (V) n 400/48; % 變壓器變比 fs 100e3; % 開(kāi)關(guān)頻率 (Hz) Ts 1/fs; % 開(kāi)關(guān)周期 (s) L 2e-6; % 輔助電感折合到副邊 (H) Lp L * n^2; % 輔助電感折合到原邊 (H) Cout 470e-6; % 輸出電容 (F) Rload 0.5; % 負(fù)載電阻 (Ohm) V2_ref 48; % 輸出電壓參考值 (V) P_rated V2^2 / Rload; % 額定功率 (W)2.2 變壓器與電感參數(shù)的處理方式DAB里的高頻變壓器在仿真中有兩種建模方式。一種是用Simscape的Linear Transformer模塊設(shè)置變比、漏感和勵(lì)磁電感另一種是理想變壓器加外部串聯(lián)電感。我推薦后者原因有兩個(gè)一是DAB的分析模型本身就默認(rèn)變壓器是理想的漏感和外部輔助電感合并處理二是分開(kāi)建模之后你可以直接改變串聯(lián)電感值來(lái)觀察它對(duì)波形和功率的影響而不需要去動(dòng)變壓器內(nèi)部參數(shù)。具體做法是用Simscape的Ideal Transformer模塊變比設(shè)為1:n這里n400/48然后再在副邊串聯(lián)一個(gè)電感L。電感值就是前面參數(shù)里的L2μH。注意如果你習(xí)慣把電感放原邊也可以但要注意折算關(guān)系原邊電感Lp L × n2算出來(lái)是大約138.89μH。兩者在仿真結(jié)果上是等價(jià)的但副邊電感的工作電流更大波形看起來(lái)更直觀。變壓器勵(lì)磁電感在仿真里要不要加如果只關(guān)注EPS調(diào)制的功率傳輸和ZVS特性勵(lì)磁電流對(duì)結(jié)果的影響比較小可以不加或者設(shè)一個(gè)很大的值比如1mH以上。但如果你要觀察變壓器原邊的實(shí)際電流波形包括勵(lì)磁分量就需要加上真實(shí)值。我一般在驗(yàn)證調(diào)制策略時(shí)不加在驗(yàn)證硬件設(shè)計(jì)時(shí)加上。2.3 開(kāi)關(guān)管橋臂與死區(qū)實(shí)現(xiàn)每個(gè)全橋由4個(gè)開(kāi)關(guān)管組成原邊全橋的橋口電壓是A點(diǎn)和B點(diǎn)之間的電壓。要產(chǎn)生EPS調(diào)制所需的波形需要精確控制4個(gè)開(kāi)關(guān)管的導(dǎo)通時(shí)序。Simulink里實(shí)現(xiàn)死區(qū)有好幾種方式我試過(guò)用On-Off Delay模塊也試過(guò)在PWM信號(hào)生成時(shí)直接內(nèi)嵌死區(qū)時(shí)間最后還是覺(jué)得用脈沖發(fā)生器加延遲模塊的方式最清晰。具體做法是用兩個(gè)Pulse Generator分別產(chǎn)生原邊兩個(gè)橋臂上管的基礎(chǔ)脈沖然后通過(guò)NOT邏輯和Dead Zone模塊生成互補(bǔ)的下管脈沖。死區(qū)時(shí)間我習(xí)慣設(shè)為開(kāi)關(guān)周期的2%左右即100kHz頻率下約200ns。這個(gè)值在仿真中既不會(huì)因?yàn)樘?dǎo)致直通也不會(huì)因?yàn)樘笥绊懖ㄐ?。需要特別留意的是EPS調(diào)制下原邊橋臂之間的移相并不是簡(jiǎn)單地把兩個(gè)脈沖發(fā)生器的時(shí)間偏移設(shè)成不同值那么簡(jiǎn)單。兩個(gè)橋臂的基準(zhǔn)脈沖必須同步否則移相角會(huì)漂移。我建議把所有脈沖都掛到同一個(gè)時(shí)鐘源上通過(guò)時(shí)間偏移參數(shù)來(lái)產(chǎn)生不同的移相。3. EPS調(diào)制波形的讀圖方法電流、電壓與功率的對(duì)應(yīng)關(guān)系3.1 原副邊電壓與電感電流的時(shí)序配合EPS調(diào)制的核心波形有三條原邊橋口電壓v_AB、副邊橋口電壓折算到原邊的v_CD、以及電感電流i_L。這三條波形之間的時(shí)序關(guān)系就是整個(gè)調(diào)制策略的全部秘密。我以D10.3、D20.25為例來(lái)描述一個(gè)完整的穩(wěn)態(tài)波形。一個(gè)開(kāi)關(guān)周期內(nèi)原邊橋口電壓v_AB的變化順序是V1持續(xù)時(shí)間為D1×Ts/2這里要注意D1的定義方式、零、-V1、零。副邊電壓v_CD的變化順序是零對(duì)應(yīng)副邊橋臂內(nèi)部續(xù)流、V2、零、-V2。兩條波形之間錯(cuò)開(kāi)D2×Ts/2的時(shí)間。電感電流的斜率完全由電感兩端電壓決定。當(dāng)v_ABV1且v_CD0時(shí)電感兩端電壓為V1電流線性上升。當(dāng)v_ABV1且v_CDV2時(shí)電感兩端電壓為V1-V2電流斜率變成上升或下降取決于兩個(gè)電壓的相對(duì)大小。當(dāng)v_AB0且v_CDV2時(shí)電感兩端電壓為-V2電流下降。理解了這個(gè)邏輯你就能手繪出任意D1和D2組合下的電流波形而不需要依賴仿真。仿真中判斷模型是否正確的一個(gè)有效方法就是把理論推算的電流波形關(guān)鍵點(diǎn)值與仿真波形對(duì)比。我的習(xí)慣是先手繪波形標(biāo)出每個(gè)時(shí)間段的電壓和電流變化方向再和仿真疊加對(duì)比如果趨勢(shì)一致但數(shù)值有偏差多半是參數(shù)設(shè)置問(wèn)題如果趨勢(shì)都不一樣那一定是控制時(shí)序錯(cuò)了。3.2 傳輸功率與回流功率的波形判讀功率分析是EPS仿真的核心輸出之一。在Simulink里我建議用電壓、電流的瞬時(shí)值相乘再取平均的方式來(lái)計(jì)算功率而不是直接看Scope里的波形讀數(shù)。具體可以加一個(gè)乘法器模塊把v_AB和i_L相乘得到瞬時(shí)功率p(t)再用一個(gè)均值模塊Mean或者滑動(dòng)平均來(lái)計(jì)算一個(gè)開(kāi)關(guān)周期內(nèi)的平均功率這個(gè)值就是傳輸功率?;亓鞴β试趺磸牟ㄐ紊峡从^察瞬時(shí)功率p(t)的波形如果它在某個(gè)時(shí)間段內(nèi)出現(xiàn)負(fù)值說(shuō)明能量正在從副邊流回原邊這就是回流功率。回流功率的大小等于負(fù)功率部分對(duì)時(shí)間的積分。在SPS調(diào)制下這個(gè)負(fù)功率區(qū)間比較明顯在EPS調(diào)制下負(fù)功率區(qū)間會(huì)被壓縮甚至在某些工況下完全消失。我在仿真中習(xí)慣用兩個(gè)功率表一個(gè)測(cè)輸入側(cè)平均功率一個(gè)測(cè)輸出側(cè)平均功率再加上瞬時(shí)功率波形來(lái)觀察回流區(qū)間。理想情況下輸入功率應(yīng)該等于輸出功率加上線路損耗。如果仿真結(jié)果顯示輸入功率遠(yuǎn)大于輸出功率而你又沒(méi)有加任何寄生電阻那就要懷疑是不是某個(gè)開(kāi)關(guān)管的導(dǎo)通邏輯有問(wèn)題導(dǎo)致變壓器被短接或者電流出現(xiàn)了異?;芈?。3.3 理想工作狀態(tài)下的波形模板為了幫助讀者建立直觀印象我總結(jié)一下DAB在電流最理想情況下電壓、電流、功率的波形特點(diǎn)。所謂最理想情況指的是所有開(kāi)關(guān)管都實(shí)現(xiàn)ZVS、回流功率為零、電流波形盡量接近三角波或者梯形波的狀態(tài)。在這種狀態(tài)下v_AB和v_CD的方波之間沒(méi)有重疊的反向時(shí)間段電感電流在整個(gè)周期內(nèi)的方向基本保持和功率傳輸方向一致瞬時(shí)功率p(t)始終為正值或者只在極短的時(shí)間內(nèi)接近零。電流波形呈現(xiàn)出清晰的上升—平臺(tái)—下降—平臺(tái)四段式結(jié)構(gòu)。這種波形在文獻(xiàn)里經(jīng)常被用作對(duì)比基準(zhǔn)也是EPS調(diào)制的優(yōu)化目標(biāo)。仿真中要達(dá)到這種理想波形需要滿足兩個(gè)條件一是D1和D2的關(guān)系落在特定的最優(yōu)曲線上通常是讓回流功率最小時(shí)的D1與D2的組合二是負(fù)載條件和電壓增益在設(shè)計(jì)范圍內(nèi)。如果你在仿真中看到的波形電流平臺(tái)不是平的而是傾斜的說(shuō)明原副邊電壓經(jīng)過(guò)變比折算后并不匹配這時(shí)候需要檢查變比設(shè)置或者考慮調(diào)整D1的取值來(lái)補(bǔ)償。4. 全流程仿真實(shí)戰(zhàn)參數(shù)計(jì)算與控制邏輯的落地4.1 設(shè)計(jì)指標(biāo)與參數(shù)推導(dǎo)過(guò)程我拿一個(gè)具體的設(shè)計(jì)指標(biāo)來(lái)走一遍全流程。假設(shè)需求是輸入電壓400V輸出電壓48V額定功率1kW開(kāi)關(guān)頻率100kHz要求滿載時(shí)輸出電壓紋波小于1%。首先確定變壓器變比。DAB在穩(wěn)態(tài)時(shí)希望副邊電壓折算到原邊后接近輸入電壓這樣可以減小電流應(yīng)力和回流功率。變比n V1 / V2 400 / 48 ≈ 8.333。實(shí)際變壓器設(shè)計(jì)里可能還要考慮匝數(shù)取整這里直接按理想值用。然后確定輔助電感。電感值決定了功率傳輸能力也決定了電流紋波大小。按照EPS的功率傳輸公式在滿載且D10即退化為SPS時(shí)最大傳輸功率發(fā)生在D20.5處P_max V1 × V2 / (8 × fs × L)。為了保留裕量讓最大功率為額定功率的1.2倍即1200W反推電感值L V1 × V2 / (8 × fs × P_max) 400 × 48 / (8 × 100000 × 1200) 2e-5 H 20μH等等這里我用的是副邊電壓直接計(jì)算沒(méi)有做折算注意單位要統(tǒng)一。實(shí)際計(jì)算時(shí)要小心V2是折算到原邊的副邊電壓在這個(gè)例子里V2V2×n400V所以計(jì)算結(jié)果L應(yīng)該用原邊電感。算出來(lái)原邊電感約16.67μH。折合到副邊就是L_sub Lp / n2 16.67e-6 / 69.44 ≈ 0.24μH。這里的分歧在于你習(xí)慣把電感放在哪一側(cè)我自己的經(jīng)驗(yàn)是仿真時(shí)放在副邊數(shù)值小看起來(lái)方便硬件設(shè)計(jì)時(shí)放在原邊因?yàn)樵呺娏餍 ~耗低。輸出電容按紋波要求計(jì)算。輸出功率1kW輸出電壓48V負(fù)載電阻R 482 / 1000 2.304Ω。輸出電容Cout 1 / (2 × fs × R × 紋波系數(shù)) 1 / (2 × 100000 × 2.304 × 0.01) ≈ 217μF。取470μF在實(shí)際中很常見(jiàn)能留下足夠裕量。4.2 Simulink模型搭建的分步操作模型搭建我按下面這個(gè)順序來(lái)不容易亂第一步打開(kāi)Simulink新建一個(gè)空白模型。從Simscape - Electrical - Specialized Power Systems或者Simscape - Foundation Library - Electrical - Electrical Elements里拖出直流電壓源、MOSFET、電感、電容、電阻和理想變壓器。注意不同版本的MATLAB元件庫(kù)路徑略有差異我這邊用的是R2023a版本路徑是Simscape / Electrical / Semiconductors Converters。第二步搭建原邊全橋。四個(gè)MOSFET組成一個(gè)全橋注意每個(gè)MOSFET要并聯(lián)一個(gè)二極管Simscape的MOSFET模型自帶體二極管不需要額外并聯(lián)但如果你用理想開(kāi)關(guān)模型就需要手動(dòng)加二極管。上下兩個(gè)開(kāi)關(guān)管的源漏極方向要確保體二極管的導(dǎo)通方向正確否則會(huì)出大問(wèn)題。第三步接入高頻變壓器。理想變壓器模塊的端口有明確的極性標(biāo)識(shí)原邊繞組接原邊全橋的中點(diǎn)副邊繞組接副邊全橋的中點(diǎn)注意同名端的連接方向決定了原副邊電壓的極性關(guān)系。這一步如果接反了仿真波形直接不對(duì)功率方向會(huì)翻轉(zhuǎn)。第四步副邊串聯(lián)電感。在變壓器副邊和副邊全橋之間串入電感元件。我在這一步通常加一個(gè)電流傳感器Current Sensor串聯(lián)在電感回路里用來(lái)測(cè)量電感電流i_L。這個(gè)信號(hào)是后面功率計(jì)算和波形觀察的關(guān)鍵。第五步接輸出整流濾波和負(fù)載。副邊全橋的輸出經(jīng)過(guò)電容濾波后接電阻負(fù)載。電壓傳感器Voltage Sensor并聯(lián)在負(fù)載兩端測(cè)量輸出電壓V_out。電流傳感器串聯(lián)在負(fù)載支路測(cè)量輸出電流I_out。第六步搭控制信號(hào)層。這一步是EPS調(diào)制的核心我用Subsystem封裝一下內(nèi)部結(jié)構(gòu)是一個(gè)時(shí)鐘源產(chǎn)生基礎(chǔ)的鋸齒波或三角波兩個(gè)比較器產(chǎn)生原邊兩個(gè)橋臂的PWM信號(hào)一個(gè)比較器產(chǎn)生副邊全橋的PWM信號(hào)通過(guò)調(diào)整比較閾值來(lái)改變D1和D2。4.3 控制信號(hào)生成的精確實(shí)現(xiàn)EPS調(diào)制信號(hào)的產(chǎn)生邏輯是原邊全橋的A橋臂和B橋臂各產(chǎn)生一個(gè)50%占空比的方波信號(hào)A橋臂作為參考B橋臂相對(duì)A橋臂延遲D1×Ts/2的時(shí)間。副邊全橋的C橋臂和D橋臂同樣產(chǎn)生50%占空比方波但整體相對(duì)A橋臂延遲(D1D2)×Ts/2的時(shí)間這里需要注意D2的定義在不同文獻(xiàn)里有差異我采用的是副邊橋口電壓上升沿相對(duì)原邊橋口電壓上升沿的延遲時(shí)間占半個(gè)周期的比例這種定義。在Simulink里用Pulse Generator模塊產(chǎn)生這個(gè)邏輯非常方便。Pulse Generator的Period設(shè)為TsPulse Width設(shè)為50%Phase Delay設(shè)為各自的時(shí)間偏移。A橋臂上管Phase0A橋臂下管PhaseTs/2也就是反相B橋臂上管PhaseD1×Ts/2B橋臂下管PhaseD1×Ts/2Ts/2C橋臂副邊上管Phase(D1/2D2)×Ts/2×2我實(shí)際用的公式是副邊A相上管Phase D1×Ts/2 D2×Ts/2注意這里我直接換算成時(shí)間延遲。為了調(diào)試方便我不直接用常數(shù)作為Phase Delay而是用一個(gè)計(jì)算模塊把D1和D2換算成時(shí)間值這樣改變D1和D2時(shí)不用手動(dòng)去改每個(gè)Pulse Generator的參數(shù)。4.4 從開(kāi)環(huán)到閉環(huán)先驗(yàn)證邏輯再談控制一個(gè)新手常犯的錯(cuò)誤是一上來(lái)就做閉環(huán)控制結(jié)果系統(tǒng)不收斂或者波形亂七八糟根本分不清是功率級(jí)問(wèn)題還是控制問(wèn)題。我的建議是先用開(kāi)環(huán)仿真驗(yàn)證調(diào)制邏輯確認(rèn)波形和功率傳輸公式一致之后再升級(jí)到閉環(huán)。開(kāi)環(huán)狀態(tài)下手動(dòng)設(shè)定D10.2、D20.3運(yùn)行仿真觀察v_AB、v_CD、i_L、p(t)的波形。首先確認(rèn)v_AB的波形是一個(gè)帶有零電平的三電平波形v_CD也是一個(gè)三電平波形。然后觀察i_L在零電平期間的變化趨勢(shì)看是否和理論推導(dǎo)一致。最后把平均功率顯示出來(lái)和公式計(jì)算的理論值對(duì)比。如果誤差在5%以內(nèi)說(shuō)明模型正確。確認(rèn)開(kāi)環(huán)正常后再加閉環(huán)控制。EPS的閉環(huán)控制通常有兩個(gè)環(huán)外環(huán)控制輸出電壓或輸出功率內(nèi)環(huán)分配D1和D2。最簡(jiǎn)單的實(shí)現(xiàn)方式是固定D1比如設(shè)為0.2用PI控制器調(diào)節(jié)D2來(lái)穩(wěn)定輸出電壓。更高級(jí)的做法是讓D1也參與調(diào)節(jié)根據(jù)負(fù)載情況實(shí)時(shí)調(diào)整D1來(lái)優(yōu)化效率。在Simulink里PI控制器可以直接用PID Controller模塊采樣時(shí)間設(shè)為開(kāi)關(guān)周期的整數(shù)倍避免控制頻率過(guò)高導(dǎo)致抖動(dòng)。5. 仿真中最容易翻車的幾個(gè)細(xì)節(jié)步長(zhǎng)、死區(qū)與開(kāi)關(guān)管模型5.1 仿真步長(zhǎng)選擇的門道DAB變換器的開(kāi)關(guān)頻率通常幾十到幾百kHz仿真步長(zhǎng)如果設(shè)置不當(dāng)會(huì)出現(xiàn)波形失真、功率計(jì)算錯(cuò)誤甚至仿真發(fā)散。我在處理100kHz開(kāi)關(guān)頻率時(shí)默認(rèn)用固定步長(zhǎng)步長(zhǎng)設(shè)為開(kāi)關(guān)周期的1/100到1/200即50ns到100ns。如果你用的是可變步長(zhǎng)求解器務(wù)必將最大步長(zhǎng)限制在開(kāi)關(guān)周期的1/20以內(nèi)否則PWM信號(hào)的邊沿可能被完全錯(cuò)過(guò)波形看起來(lái)像隨機(jī)噪聲。有一個(gè)常見(jiàn)的誤區(qū)是我一開(kāi)始也踩過(guò)為了仿真速度快把步長(zhǎng)設(shè)為1μs結(jié)果電感電流波形鋸齒感極強(qiáng)ZVS判斷幾乎沒(méi)法做。后來(lái)才意識(shí)到開(kāi)關(guān)管結(jié)電容的諧振頻率遠(yuǎn)高于開(kāi)關(guān)頻率步長(zhǎng)太大根本捕捉不到諧振過(guò)程。如果你的仿真里觀察到了異常的電流尖峰先別急著懷疑參數(shù)把步長(zhǎng)縮小十倍再跑一次很多時(shí)候問(wèn)題就消失了。5.2 死區(qū)時(shí)間對(duì)波形的影響比想象中大死區(qū)時(shí)間的設(shè)置在EPS調(diào)制下比SPS更敏感。SPS模式下死區(qū)只影響換流時(shí)刻的電流尖峰對(duì)功率傳輸影響不大但EPS模式下原邊橋臂內(nèi)部有零電平區(qū)間死區(qū)時(shí)間內(nèi)電感電流會(huì)通過(guò)體二極管續(xù)流這會(huì)改變橋口電壓的實(shí)際波形——本來(lái)應(yīng)該為零電平的區(qū)間因?yàn)樗绤^(qū)而出現(xiàn)一段電壓等于正負(fù)V1的尖峰。這個(gè)尖峰在示波器上看起來(lái)不大但它會(huì)影響回流功率的計(jì)算結(jié)果。我的處理方式是仿真中加入真實(shí)死區(qū)時(shí)間200ns左右然后對(duì)比有死區(qū)和無(wú)死區(qū)兩種情況下的功率波形差異。你會(huì)發(fā)現(xiàn)功率值大概有1%到3%的差別這在工程上是可以接受的。但如果你的死區(qū)時(shí)間設(shè)置到1μs以上功率誤差可能超過(guò)10%這時(shí)候仿真結(jié)果就不能直接用來(lái)指導(dǎo)硬件設(shè)計(jì)了。5.3 開(kāi)關(guān)管模型選型與收斂性調(diào)優(yōu)Simulink的Simscape Electrical庫(kù)提供了多種開(kāi)關(guān)管模型理想開(kāi)關(guān)、MOSFET、IGBT。這里我強(qiáng)烈建議做EPS調(diào)制驗(yàn)證時(shí)用MOSFET模型設(shè)置一個(gè)合理的導(dǎo)通電阻比如50mΩ和一個(gè)合理的結(jié)電容比如幾百pF而不是用理想開(kāi)關(guān)。原因有兩個(gè)一是結(jié)電容是ZVS實(shí)現(xiàn)的物理基礎(chǔ)沒(méi)有它你無(wú)法判斷軟開(kāi)關(guān)是否實(shí)現(xiàn)二是MOSFET的體二極管在死區(qū)時(shí)間內(nèi)的續(xù)流行為對(duì)波形有真實(shí)影響。不過(guò)MOSFET模型也有坑。有時(shí)仿真會(huì)報(bào)Singularity或者Numerical issue錯(cuò)誤這是因?yàn)镾imscape的開(kāi)關(guān)管在導(dǎo)通和關(guān)斷瞬間存在數(shù)值剛性。解法有幾個(gè)一是把導(dǎo)通電阻從默認(rèn)的1e-3調(diào)到1e-2量級(jí)增加阻尼二是在開(kāi)關(guān)管兩端并聯(lián)一個(gè)很小的RC緩沖電路比如1Ω串聯(lián)1nF吸收數(shù)值振蕩三是改用局部求解器把DAB主電路放到一個(gè)獨(dú)立的Simscape Subsystem里用局部步長(zhǎng)求解。我現(xiàn)在搭DAB模型的時(shí)候習(xí)慣在所有開(kāi)關(guān)管兩端都并聯(lián)一個(gè)RC snubber1Ω 1nF雖然這會(huì)在結(jié)果里引入微小的漏電流但帶來(lái)的數(shù)值穩(wěn)定性收益遠(yuǎn)大于這點(diǎn)誤差尤其在調(diào)閉環(huán)參數(shù)的時(shí)候能少掉很多仿真發(fā)散的頭疼時(shí)刻。6. ZVS邊界分析與仿真效率優(yōu)化思路6.1 仿真中如何判斷ZVS是否實(shí)現(xiàn)ZVS的判斷標(biāo)準(zhǔn)是在開(kāi)關(guān)管開(kāi)通之前其兩端電壓已經(jīng)降到零。在仿真中可以通過(guò)查看開(kāi)關(guān)管的電壓v_ds和門極驅(qū)動(dòng)信號(hào)g來(lái)進(jìn)行判斷。具體操作是把門極驅(qū)動(dòng)信號(hào)和v_ds放到同一個(gè)Scope里放大到單個(gè)開(kāi)關(guān)周期內(nèi)觀察看v_ds是否在門極信號(hào)變?yōu)楦唠娖街熬徒档搅肆愀浇?。如果是說(shuō)明開(kāi)通時(shí)刻是零電壓開(kāi)通如果不是說(shuō)明發(fā)生了硬開(kāi)通開(kāi)關(guān)損耗會(huì)增加。EPS調(diào)制下不同開(kāi)關(guān)管的ZVS條件不一樣。原邊橋臂因?yàn)榇嬖诹汶娖絽^(qū)間在某些工況下更容易實(shí)現(xiàn)ZVS副邊開(kāi)關(guān)管則更依賴電感電流的反向抽取能力。我在仿真中會(huì)分別給8個(gè)開(kāi)關(guān)管都加上電壓探針跑一次完整的負(fù)載范圍掃描然后把每個(gè)管子的ZVS狀態(tài)匯總成一張表。這張表在硬件設(shè)計(jì)時(shí)的價(jià)值非常大——你可以直觀看到哪些負(fù)載點(diǎn)、哪些管子丟失了ZVS從而決定是否需要調(diào)整D1的調(diào)度策略。6.2 效率與回流功率的優(yōu)化空間EPS調(diào)制的主要優(yōu)勢(shì)就是通過(guò)調(diào)節(jié)D1來(lái)優(yōu)化回流功率和ZVS范圍。仿真中可以做一個(gè)簡(jiǎn)單的參數(shù)掃描固定D2變化D1從0到0.4記錄每個(gè)D1值下的回流功率、輸出功率和各個(gè)開(kāi)關(guān)管的ZVS狀態(tài)。你會(huì)發(fā)現(xiàn)存在一個(gè)最優(yōu)的D1值讓回流功率最小這個(gè)值通常對(duì)應(yīng)著讓原邊零電平區(qū)間恰好覆蓋副邊換流時(shí)刻的某些特定相位關(guān)系。我做過(guò)一個(gè)典型的掃描結(jié)果額定工況下D10時(shí)回流功率占比約15%D10.15時(shí)回流功率降到約6%D1繼續(xù)增大反而上升。這說(shuō)明EPS的優(yōu)化不是D1越大越好需要結(jié)合具體工況來(lái)找最優(yōu)工作點(diǎn)。仿真中可以用MATLAB腳本自動(dòng)化這個(gè)掃描過(guò)程把D1和D2都掃描一遍畫(huà)出一張效率或回流功率的等高線圖再在圖上選出最優(yōu)工作點(diǎn)和次優(yōu)工作點(diǎn)用于前饋控制的查表實(shí)現(xiàn)。6.3 仿真參數(shù)到硬件參數(shù)的映射經(jīng)驗(yàn)最后想聊一下仿真到硬件的銜接問(wèn)題。很多人在MATLAB里調(diào)出一個(gè)完美的波形之后直接照搬參數(shù)去做硬件結(jié)果發(fā)現(xiàn)實(shí)測(cè)波形和仿真差很多。這里我總結(jié)幾個(gè)常見(jiàn)的偏差來(lái)源仿真階段就可以提前規(guī)避仿真里的變壓器是理想變壓器實(shí)際變壓器有漏感、分布電容和磁損這些寄生參數(shù)會(huì)導(dǎo)致波形邊沿變緩、電流出現(xiàn)諧振尖峰。在仿真中給變壓器加一個(gè)幾pF的分布電容可以更接近真實(shí)情況。仿真里的電感是理想的實(shí)際電感有寄生電容和飽和效應(yīng)大電流下感值會(huì)下降。如果你的DAB功率比較大建議在仿真中把電感模型換成非線性模型設(shè)定一個(gè)飽和電流閾值。仿真里的開(kāi)關(guān)管模型參數(shù)是廠商典型值實(shí)際器件個(gè)體差異和溫度影響會(huì)導(dǎo)致特性偏移。硬件調(diào)試時(shí)一定要留出電流應(yīng)力和電壓應(yīng)力的裕量不能卡著仿真值設(shè)計(jì)。控制參數(shù)PI值在仿真中調(diào)好的值到硬件上通常要重新整定因?yàn)閷?shí)際系統(tǒng)的延遲、采樣噪聲和數(shù)字控制器的量化誤差都會(huì)影響穩(wěn)定性。建議仿真時(shí)把控制器的離散化步長(zhǎng)也設(shè)置得和實(shí)際DSP一致比如100kHz控制頻率下采樣步長(zhǎng)10μs這樣調(diào)出的PI值更有參考意義。這些映射經(jīng)驗(yàn)我自己是從多次仿真完美、硬件翻車的經(jīng)歷里總結(jié)出來(lái)的。現(xiàn)在做硬件之前我都會(huì)先在仿真里故意加入寄生參數(shù)人為劣化模型看看調(diào)制策略和控制器的魯棒性。這套方法幫我提前暴露了很多硬件調(diào)試時(shí)的坑。6.4 一個(gè)完整的優(yōu)化工作流參考把前面的內(nèi)容串起來(lái)我實(shí)際做DAB EPS仿真時(shí)的工作流是這樣的先用理想模型驗(yàn)證調(diào)制邏輯和控制策略這時(shí)候重點(diǎn)關(guān)注波形形狀和功率公式是否一致然后加入死區(qū)和開(kāi)關(guān)管非理想特性觀察回流功率和ZVS邊界的變化接著做D1和D2的二維參數(shù)掃描找最優(yōu)工作點(diǎn)和控制調(diào)度表再根據(jù)掃描結(jié)果設(shè)計(jì)閉環(huán)控制器在仿真中做負(fù)載階躍測(cè)試和啟動(dòng)測(cè)試最后加入寄生參數(shù)做魯棒性驗(yàn)證為硬件設(shè)計(jì)留出裕量。這套流程的核心思想是逐步增加復(fù)雜度和真實(shí)性每一步都有明確的驗(yàn)證目標(biāo)而不是一次性搭一個(gè)巨復(fù)雜的模型然后一頭扎進(jìn)調(diào)試的大海。對(duì)于剛接觸DAB EPS的讀者我強(qiáng)烈建議按照這個(gè)層次來(lái)做每一步都確認(rèn)無(wú)誤再進(jìn)入下一步。我自己帶過(guò)幾個(gè)新人用這個(gè)流程基本兩周之內(nèi)就能獨(dú)立完成EPS調(diào)制仿真而自己摸索的話光是對(duì)著報(bào)錯(cuò)修模型可能就要花掉好幾天。最后一個(gè)實(shí)操建議善用MATLAB腳本批處理功能來(lái)跑參數(shù)掃描。手動(dòng)在Simulink里改一個(gè)參數(shù)然后點(diǎn)運(yùn)行一次兩次還行掃幾十個(gè)點(diǎn)的時(shí)候你會(huì)崩潰的。用sim()函數(shù)在MATLAB腳本里循環(huán)修改參數(shù)、運(yùn)行模型、提取結(jié)果然后一次性把所有數(shù)據(jù)畫(huà)成曲線效率提升一個(gè)量級(jí)不止。這套腳本邏輯和DAB本身沒(méi)有關(guān)系適用于任何Simulink模型的大量參數(shù)掃描場(chǎng)景值得花半小時(shí)封裝成自己的工具箱函數(shù)。