字電源仿真:從拓?fù)湓淼诫x散控制與工程實(shí)踐)
簡介基于BUCK拓?fù)涞臄?shù)字電源PLECS仿真資源包面向電力電子工程師、電源設(shè)計(jì)人員及相關(guān)專業(yè)學(xué)生解決DC-DC降壓變換器數(shù)字控制建模與仿真驗(yàn)證問題。資源以模塊化思路搭建BUCK主電路并通過DLL調(diào)用實(shí)現(xiàn)PID、狀態(tài)空間等數(shù)字控制算法與PLECS電路模型聯(lián)合仿真。壓縮包共32個(gè)文件大小1.17MB核心內(nèi)容是兩個(gè)PLECS仿真模型分別對(duì)應(yīng)數(shù)字控制與模擬控制方案另有VC工程目錄、DLL文件、編譯腳本及日志等便于對(duì)照修改和重新生成控制代碼。目前已有416人學(xué)習(xí)下載適合希望對(duì)比數(shù)字與模擬控制性能、觀察不同負(fù)載與開關(guān)頻率下系統(tǒng)響應(yīng)的讀者可大幅減少實(shí)物樣機(jī)測試次數(shù)縮短電源設(shè)計(jì)驗(yàn)證周期。1. 為什么拿PLECS做BUCK數(shù)字電源仿真1.1 我為什么從Simulink換到PLECS先交代一下背景。我過去做電源控制算法驗(yàn)證主力工具是Simulink加Simscape后來接觸數(shù)字電源項(xiàng)目后發(fā)現(xiàn)PLECS在電力電子仿真這個(gè)細(xì)分場景里確實(shí)有它不可替代的優(yōu)勢。最直觀的一點(diǎn)PLECS里搭BUCK主電路MOSFET、二極管、電感、電容都是現(xiàn)成模型拖進(jìn)去設(shè)參數(shù)就能跑不像Simulink里要自己拼MOSFET方程或者調(diào)Simscape的物理模型接口半天時(shí)間全耗在建模而不是分析上。PLECS最打動(dòng)我的是它的離散控制器的處理方式。數(shù)字電源和模擬電源的本質(zhì)區(qū)別在于控制環(huán)路由DSP或者M(jìn)CU里的離散算法完成而不是運(yùn)放加阻容。PLECS提供了專門的離散模塊庫你可以直接寫z域補(bǔ)償器、設(shè)置采樣周期、模擬ADC量化、生成帶死區(qū)的PWM這個(gè)流程和你在真實(shí)芯片里寫代碼的邏輯幾乎一致。也就是說用PLECS仿出來的控制行為和最終固件跑起來的行為貼合度很高這比用連續(xù)域仿真器硬湊一個(gè)“近似數(shù)字控制”要靠譜得多。另外一個(gè)大家可能低估的點(diǎn)是仿真速度。PLECS的電路求解器基于理想開關(guān)模型開關(guān)管導(dǎo)通壓降和開關(guān)瞬態(tài)被簡化處理換來的是大步長下也能跑出正確的穩(wěn)態(tài)和動(dòng)態(tài)波形。做環(huán)路參數(shù)掃描、負(fù)載階躍、啟動(dòng)波形這類常規(guī)電源仿真速度比傳統(tǒng)器件級(jí)仿真器快一個(gè)數(shù)量級(jí)不夸張。速度上去了你才有耐心去試不同補(bǔ)償參數(shù)組合去掃邊界條件這在實(shí)際工程里價(jià)值非常大。1.2 什么時(shí)候不需要PLECS也不是所有電源仿真都適合PLECS。如果你要研究MOSFET的雪崩擊穿、二極管反向恢復(fù)的具體損耗波形、變壓器的漏感振鈴這類開關(guān)瞬態(tài)細(xì)節(jié)PLECS的理想開關(guān)模型就幫不上忙了應(yīng)該用Simplis或者Saber這類器件級(jí)仿真工具甚至在LTspice里搭分立器件電路更合適。這個(gè)工具選擇邏輯我建議剛接觸仿真的人想清楚**你是要驗(yàn)證控制策略和系統(tǒng)級(jí)行為還是要驗(yàn)證功率器件的應(yīng)力細(xì)節(jié)**PLECS擅長前者它默認(rèn)開關(guān)是理想器件如果你強(qiáng)行在PLECS里追求瞬態(tài)精度等于拿短跑運(yùn)動(dòng)員去跑馬拉松方向就錯(cuò)了。我自己的習(xí)慣是系統(tǒng)級(jí)方案和控制算法用PLECS快速驗(yàn)證器件應(yīng)力分析和熱設(shè)計(jì)用器件級(jí)工具復(fù)核兩者配合效率最高。2. BUCK數(shù)字電源的系統(tǒng)架構(gòu)拆解2.1 功率級(jí)BUCK拓?fù)涞暮诵膮?shù)BUCK拓?fù)淇梢哉f是開關(guān)電源的入門基礎(chǔ)但它背后牽涉的參數(shù)設(shè)計(jì)一點(diǎn)不簡單。一個(gè)完整的BUCK功率級(jí)由輸入源、開關(guān)管Q、續(xù)流二極管D或同步整流管、電感L、輸出電容C和負(fù)載R構(gòu)成。核心工作原理一句話就能說清開關(guān)管以一定占空比D周期性導(dǎo)通電感在導(dǎo)通期間儲(chǔ)能、在關(guān)斷期間續(xù)流輸出電容負(fù)責(zé)平滑電壓紋波。實(shí)際項(xiàng)目里參數(shù)設(shè)計(jì)的起點(diǎn)是穩(wěn)態(tài)關(guān)系式輸出電壓Vout Vin × D。這里的D是穩(wěn)態(tài)占空比但這個(gè)公式只在連續(xù)導(dǎo)通模式CCM下成立。如果負(fù)載電流很小電感電流會(huì)跌到零電路進(jìn)入斷續(xù)導(dǎo)通模式DCM輸出電壓會(huì)偏離這個(gè)直線關(guān)系變成一個(gè)與負(fù)載相關(guān)的非線性表達(dá)式。我在做數(shù)字電源控制時(shí)第一件事就是要判斷整個(gè)負(fù)載范圍內(nèi)電路會(huì)不會(huì)從CCM穿越到DCM因?yàn)檫@個(gè)穿越點(diǎn)直接決定了控制器的補(bǔ)償方式需不需要切換。電感的取值公式是L (Vin - Vout) × D / (ΔIL × fsw)其中ΔIL是你允許的電感電流紋波峰峰值。工程上一般取滿載電流的20%到40%。電容的取值主要看輸出電壓紋波要求ΔVout ≈ ΔIL / (8 × C × fsw)。舉個(gè)例子輸入12V輸出5V開關(guān)頻率200kHz負(fù)載2A取紋波電流0.6A那么占空比D 5/12 ≈ 0.42電感量L (12-5)×0.42/(0.6×200000) ≈ 24.5μH實(shí)際取22μH或27μH都行電容則看你的紋波電壓指標(biāo)來定。2.2 數(shù)字控制環(huán)路從模擬到離散的關(guān)鍵一步與模擬控制相比數(shù)字控制環(huán)路的架構(gòu)多出了幾個(gè)關(guān)鍵模塊采樣保持ADC、離散化補(bǔ)償器、數(shù)字PWM發(fā)生器。整個(gè)閉環(huán)的過程可以拆成幾步第一輸出電壓通過電阻分壓網(wǎng)絡(luò)和ADC采樣變成數(shù)字量。這里有個(gè)關(guān)鍵問題采樣時(shí)刻的選擇。大多數(shù)MCU的ADC采樣和PWM是同步觸發(fā)的PWM計(jì)數(shù)器的載波頂點(diǎn)觸發(fā)ADC采樣這樣采到的值通常是電感電流紋波的中心點(diǎn)也就是輸出電壓的平均值這個(gè)采樣策略能有效避免開關(guān)噪聲干擾。第二數(shù)字量送入補(bǔ)償器進(jìn)行計(jì)算。補(bǔ)償器在z域里實(shí)現(xiàn)最常見的是數(shù)字PID或者type-III補(bǔ)償器的離散形式。這一步把模擬域的運(yùn)放阻容網(wǎng)絡(luò)替換成了MCU里每個(gè)開關(guān)周期都要執(zhí)行一次的差分方程。第三補(bǔ)償器輸出作為占空比指令寫入數(shù)字PWM的比較寄存器。這里的PWM分辨率由MCU的時(shí)鐘和計(jì)數(shù)周期決定比如100MHz時(shí)基、10kHz開關(guān)頻率時(shí)PWM分辨率為10kHz/100MHz 0.01%對(duì)應(yīng)到占空比的量化步長影響的是輸出電壓的靜態(tài)精度和紋波。我踩過的坑是很多初學(xué)數(shù)字電源的人只把控制器換成數(shù)字實(shí)現(xiàn)卻忽略了延遲。模擬控制器是連續(xù)的幾乎沒有延遲而數(shù)字控制器從采樣到PWM更新至少有一個(gè)控制周期的延遲。這個(gè)延遲會(huì)降低相位裕度如果不補(bǔ)償系統(tǒng)可能在滿載階躍時(shí)出現(xiàn)振蕩。PLECS里可以顯式地把采樣保持和延遲環(huán)節(jié)建模出來也可以在離散控制器的傳遞函數(shù)里直接考慮一個(gè)周期的延遲這兩種方式我都驗(yàn)證過效果基本等價(jià)。2.3 主電路與控制器的模塊劃分在PLECS里搭建數(shù)字電源模型時(shí)一個(gè)清晰的項(xiàng)目組織方式是用子系統(tǒng)把主電路和控制器分離控制器內(nèi)部再按采樣、補(bǔ)償、PWM三段式組織。這是我目前覺得最清晰、也最適合團(tuán)隊(duì)協(xié)作的模型劃分方式。主電路子系統(tǒng)包含直流源、半橋功率級(jí)、LC濾波器和負(fù)載??刂破髯酉到y(tǒng)的輸入是輸出電壓的反饋量輸出是PWM驅(qū)動(dòng)信號(hào)。在PLECS里模擬域的信號(hào)線和數(shù)字域的信號(hào)線默認(rèn)用不同顏色表示這一點(diǎn)剛開始可能有人不習(xí)慣但它能逼著你在建模時(shí)就分清哪些是連續(xù)物理量、哪些是離散數(shù)字量實(shí)際上幫你規(guī)避了很多仿真中模數(shù)混淆導(dǎo)致的問題。如果你用的是PLECS的嵌入式代碼生成功能PLECS Embedded Coder你還可以把控制器子系統(tǒng)的離散邏輯直接生成C代碼燒進(jìn)DSP里驗(yàn)證。這時(shí)候你會(huì)發(fā)現(xiàn)之前仿真的控制器和最終固件里的控制器結(jié)構(gòu)上幾乎一一對(duì)應(yīng)調(diào)試起來非常順。這個(gè)工作流是我最推薦大家嘗試的方向。3. 在PLECS里搭建BUCK數(shù)字電源仿真模型3.1 主電路建模別忽視開關(guān)管選型打開PLECS后從元件庫拖出直流電壓源、MOSFET/二極管、電感、電容、電阻等放到畫布上連接成半橋BUCK電路結(jié)構(gòu)。這里有一個(gè)細(xì)節(jié)PLECS的MOSFET模型參數(shù)里默認(rèn)開關(guān)器件帶導(dǎo)通電阻Ron和結(jié)電容Cj如果你只是做控制策略驗(yàn)證可以把Ron設(shè)為小值、Cj設(shè)為零這樣仿真速度更快、數(shù)值收斂也更穩(wěn)。如果要分析損耗再把這些參數(shù)打開。接下來是負(fù)載的建模方式。PLECS支持電阻、電流源、電壓源以及帶動(dòng)態(tài)特性的負(fù)載模型。做負(fù)載階躍響應(yīng)測試時(shí)我習(xí)慣用一個(gè)可控電流源代替純電阻負(fù)載通過信號(hào)發(fā)生器在規(guī)定時(shí)間點(diǎn)改變電流值這樣能模擬恒功率負(fù)載或者恒流負(fù)載的跳變場景比手動(dòng)切換電阻更靈活。如果你用純電阻負(fù)載當(dāng)輸出電壓變化時(shí)負(fù)載電流也會(huì)跟著變化和真實(shí)電子負(fù)載的恒流模式有差異這一點(diǎn)在考察閉環(huán)動(dòng)態(tài)響應(yīng)時(shí)尤其重要。源側(cè)的處理也值得說一下。輸入源不要直接用理想電壓源就完了實(shí)際數(shù)字電源前端都有輸入濾波電容和線路寄生電感在仿真里加上這些元素你才能看到輸入電壓在負(fù)載瞬態(tài)時(shí)出現(xiàn)的跌落和振鈴。這個(gè)振鈴如果幅值過大可能通過采樣網(wǎng)絡(luò)耦合到反饋環(huán)路里導(dǎo)致控制不穩(wěn)定這些效應(yīng)在理想源下是完全看不到的。3.2 離散控制器建模ADC、z域補(bǔ)償器和PWM發(fā)生器離散控制器是數(shù)字電源仿真的靈魂。PLECS里有幾個(gè)專門的離散模塊我把最常用的三個(gè)逐個(gè)說明。第一是離散采樣保持模塊。它相當(dāng)于ADC模型你可以設(shè)置采樣周期、量化位數(shù)、采樣偏移。采樣周期設(shè)置為和PWM開關(guān)周期同步比如200kHz的開關(guān)頻率對(duì)應(yīng)5μs的控制周期。量化位數(shù)設(shè)置成12bit或16bit加上±參考電壓范圍就能模擬出ADC的量化噪聲。這個(gè)量化噪聲會(huì)影響輸出電壓的靜態(tài)精度直接在仿真里能看到效果。第二是z域補(bǔ)償器。PLECS的離散傳遞函數(shù)模塊支持直接寫入z域的傳遞函數(shù)表達(dá)式。比如一個(gè)數(shù)字PID補(bǔ)償器離散化之后可以寫成如下形式C(z) Kp Ki*Ts*z/(z-1) Kd*(z-1)/(z*Ts)這里的Ts就是控制周期。PLECS里可以用離散傳遞函數(shù)模塊直接填系數(shù)也可以用 Discrete Integrator 等基礎(chǔ)模塊搭出PID結(jié)構(gòu)。填系數(shù)形式最方便但要注意把表達(dá)式化簡成z的負(fù)冪次形式再填否則容易填錯(cuò)。我習(xí)慣先在Matlab里用c2d把連續(xù)域補(bǔ)償器離散化拿到系數(shù)再填進(jìn)PLECS。第三是數(shù)字PWM發(fā)生器。PLECS有三種PWM實(shí)現(xiàn)方式比較器加鋸齒波、PWM模塊Simulink風(fēng)格、以及數(shù)字PWM里帶計(jì)數(shù)器邏輯的方式。對(duì)數(shù)字電源仿真推薦用PLECS自帶的PWM模塊因?yàn)樗С衷O(shè)置PWM頻率、死區(qū)和分辨率。死區(qū)設(shè)置在半橋互補(bǔ)驅(qū)動(dòng)中是必須的防止上下管直通。在PLECS中死區(qū)可以直接在PWM模塊中加也可以后續(xù)用deadtime模塊兩種方式效果一樣。3.3 模型參數(shù)設(shè)置與仿真配置參數(shù)設(shè)置是仿真的基本功我把一套可復(fù)用的配置列成表格你可以照著抄參數(shù)數(shù)值說明輸入電壓Vin12V可根據(jù)實(shí)際母線調(diào)整輸出電壓Vout5V目標(biāo)穩(wěn)壓值開關(guān)頻率fsw200kHz常見DSP PWM頻率電感L22μH按紋波電流要求計(jì)算電容C100μF按電壓紋波要求計(jì)算控制周期5μs與開關(guān)周期同步ADC位數(shù)12bit參考電壓0-10VPWM死區(qū)100ns實(shí)際功率管需要仿真求解器配置方面PLECS默認(rèn)采用變步長求解器對(duì)BUCK這類開關(guān)電路誤差容差設(shè)置成1e-4或者1e-5比較合適。如果你發(fā)現(xiàn)某個(gè)波形出現(xiàn)不正常的抖動(dòng)先檢查是不是容差過快導(dǎo)致事件檢測不準(zhǔn)確。還有一種方法是使用定時(shí)步長求解器固定步長100ns這對(duì)數(shù)字控制系統(tǒng)仿真是有幫助的因?yàn)閿?shù)字控制器的采樣時(shí)刻和分析時(shí)刻都是精確控制的避免了變步長下事件時(shí)刻插值的誤差累積。關(guān)于波形觀測你可以放置電壓探針、電流探針來測量關(guān)鍵節(jié)點(diǎn)的波形。PLECS的Scope窗口支持多通道顯示、FFT分析、以及數(shù)據(jù)導(dǎo)出到MATLAB繼續(xù)處理這些功能足夠應(yīng)對(duì)日常開發(fā)了。4. 關(guān)鍵設(shè)計(jì)環(huán)節(jié)的深度解析4.1 同步BUCK和異步BUCK怎么選BUCK拓?fù)涞膬煞N常見實(shí)現(xiàn)方式異步BUCK用二極管續(xù)流同步BUCK用另一個(gè)MOSFET替代二極管。區(qū)別在于二極管的正向壓降在低壓大電流輸出的場景下會(huì)帶來明顯損耗。舉個(gè)例子輸出5V、電流10A時(shí)一個(gè)0.5V壓降的肖特基二極管續(xù)流損耗就是0.5V×10A×(1-D) ≈ 2.9W左右這在5V/50W的電源里意味著接近6%的效率損失。如果換成同步MOSFET導(dǎo)通壓降I×Rds(on)可能只有幾十毫伏損耗降一個(gè)數(shù)量級(jí)。在PLECS仿真里同步BUCK的建模復(fù)雜度比異步高一點(diǎn)因?yàn)槟阈枰渲脙蓚€(gè)互補(bǔ)的PWM信號(hào)并設(shè)置死區(qū)時(shí)間。死區(qū)的時(shí)間設(shè)定直接影響效率和波形質(zhì)量死區(qū)太短會(huì)有直通風(fēng)險(xiǎn)死區(qū)太長會(huì)加大體二極管導(dǎo)通時(shí)間增加損耗。我一般先設(shè)一個(gè)基準(zhǔn)值比如開關(guān)周期的1%到2%再在仿真里掃參看波形變化找出兼顧安全和效率的死區(qū)范圍。做數(shù)字電源時(shí)同步整流還有一層麻煩輕載或空載時(shí)電感電流可能反向流動(dòng)形成負(fù)電流導(dǎo)致能量從輸出端回灌到輸入端。這時(shí)如果不做特殊控制輸出電容會(huì)被反向充電輸出電壓異常甚至引發(fā)系統(tǒng)保護(hù)。我見過不少工程師在仿真里沒注意到這個(gè)問題結(jié)果板子出來后一空載就出亂子。建議在PLECS里專門做一次從滿載降載到空載的瞬態(tài)仿真觀察電感電流是否反向如果反向就需要考慮加入輕載關(guān)斷同步管的策略。4.2 補(bǔ)償器的離散化和參數(shù)整定數(shù)字電源的補(bǔ)償器設(shè)計(jì)我推薦一個(gè)在崗位上反復(fù)驗(yàn)證過的流程先在連續(xù)域設(shè)計(jì)再離散化最后在PLECS里驗(yàn)證。先在連續(xù)域里利用伯德圖工具確定穿越頻率和相位裕度。對(duì)BUCK這類二階系統(tǒng)穿越頻率一般設(shè)置在開關(guān)頻率的1/10到1/6之間相位裕度不低于45度增益裕度不小于10dB。連續(xù)域的補(bǔ)償器可以設(shè)計(jì)成type-III也可以簡化成PI加一階濾波器的形式看具體要求來定。離散化時(shí)常用的方法有前向歐拉、后向歐拉、雙線性變換。我實(shí)測下來雙線性變換在系統(tǒng)特征頻率處映射誤差最小是首推的選擇。離散化之后補(bǔ)償器的系數(shù)會(huì)發(fā)生變化比如連續(xù)域的PI控制器Kp Ki/s用雙線性變換后變成C(z) (Kp Ki*Ts/2) (Ki*Ts)/(z-1)這個(gè)變換看起來簡單但很多人容易漏掉Ts/2這個(gè)修正項(xiàng)結(jié)果離散后控制器的增益和連續(xù)域設(shè)計(jì)不一致導(dǎo)致相位裕度變化。在PLECS里仿真時(shí)如果你發(fā)現(xiàn)離散控制系統(tǒng)的響應(yīng)和連續(xù)域設(shè)計(jì)偏差很大先檢查離散化公式有沒有寫對(duì)。補(bǔ)償器參數(shù)的整定我建議直接用PLECS的掃參工具來做。先固定Kp從零逐漸增大觀察階躍響應(yīng)的超調(diào)量和相位裕度然后調(diào)Ki消除穩(wěn)態(tài)誤差最后加Kd抑制超調(diào)。這里有一個(gè)我自己的經(jīng)驗(yàn)數(shù)字控制器的微分項(xiàng)增益要慎用數(shù)字控制器對(duì)高頻噪聲比模擬控制器敏感得多ADC噪聲經(jīng)過微分放大后會(huì)變成明顯的PWM抖動(dòng)在輸出波形上表現(xiàn)為高頻毛刺。如果必須用微分項(xiàng)一定要配合低通濾波器或者用“不完全微分”結(jié)構(gòu)只對(duì)中低頻信號(hào)起作用。4.3 仿真速度優(yōu)化的三個(gè)手段PLECS跑BUCK仿真速度已經(jīng)很快了但如果你要做參數(shù)掃描、蒙特卡羅分析或者跑上千個(gè)開關(guān)周期的啟動(dòng)波形速度優(yōu)化就是剛需。第一個(gè)手段是合理設(shè)置開關(guān)管模型。把導(dǎo)通電阻、結(jié)電容、反向恢復(fù)參數(shù)設(shè)置成理想或近似理想的仿真步長可以放大幾倍速度提升明顯。對(duì)控制策略驗(yàn)證階段這個(gè)優(yōu)化幾乎是無損的。第二個(gè)手段是選擇合適的求解器。如果控制環(huán)路是主要研究對(duì)象建議使用固定步長求解器步長選擇開關(guān)周期的1/20到1/50。比如200kHz開關(guān)頻率固定步長取100ns這樣每個(gè)開關(guān)周期約50步PWM事件和采樣時(shí)刻都能被精確捕捉到。變步長在大部分時(shí)間點(diǎn)和固定步長得出的結(jié)果一致但在開關(guān)切換時(shí)刻會(huì)反復(fù)調(diào)整步長反而拖慢速度。第三個(gè)手段是利用PLECS的穩(wěn)態(tài)分析方法。PLECS的“穩(wěn)態(tài)分析”工具可以自動(dòng)跳過長瞬態(tài)過程直接計(jì)算電路進(jìn)入穩(wěn)態(tài)后的波形和運(yùn)行點(diǎn)。啟動(dòng)本來需要跑10000個(gè)周期才能穩(wěn)定穩(wěn)態(tài)分析可能幾百次迭代就收斂了。我在做環(huán)路增益掃描和負(fù)載階躍前都會(huì)先用穩(wěn)態(tài)分析工具把電路跑穩(wěn)再從穩(wěn)定點(diǎn)出發(fā)做動(dòng)態(tài)分析這個(gè)方法省下的時(shí)間非??捎^。5. PLECS仿真中的常見問題與排查技巧5.1 模型初始化失敗和收斂問題PLECS跑BUCK電路最常見的報(bào)錯(cuò)是初始化失敗或者“Simulation aborted due to numerical error”。這種問題多數(shù)不是電路本身的問題而是參數(shù)設(shè)置導(dǎo)致求解器無法收斂。典型場景電路里有一個(gè)理想電壓源直接并聯(lián)一個(gè)理想電容初始時(shí)刻電容電壓和源電壓不一致求解器在第一個(gè)時(shí)間步就報(bào)錯(cuò)。解決方法是給電容設(shè)初始電壓或者在電壓源串聯(lián)一個(gè)小電阻。還有一種常見情況是電感初始電流不合理。電感電流必須在啟動(dòng)瞬間滿足電路約束否則求解器會(huì)嘗試用無窮大的斜率去修正導(dǎo)致數(shù)值發(fā)散。我習(xí)慣在仿真前先估算穩(wěn)態(tài)電感電流然后在電感參數(shù)里預(yù)填初始電流值這樣啟動(dòng)過程就會(huì)順暢很多。你要是不知道初始值設(shè)多少可以先跑一次仿真在電感電流波形上讀出穩(wěn)態(tài)平均值再把這個(gè)值填回初始條件重新跑。如果遇到收斂問題還有一個(gè)排查技巧查看求解器的日志窗口看報(bào)錯(cuò)的是哪個(gè)元件、哪個(gè)時(shí)間點(diǎn)。PLECS會(huì)給出具體位置提示一般很快就能定位到問題。5.2 輸出電壓振鈴或發(fā)散閉環(huán)仿真時(shí)輸出電壓振蕩不只是一種情況我遇到過幾類典型表現(xiàn)對(duì)應(yīng)不同的原因。第一種輸出低頻大幅振蕩。這通常是補(bǔ)償器參數(shù)過激進(jìn)環(huán)路不穩(wěn)定。在PLECS里檢查相位裕度可以用PLECS的交流掃描分析功能AC Sweep在給定的工作點(diǎn)掃描控制環(huán)路的開環(huán)傳遞函數(shù)直接讀出穿越頻率和相位裕度。如果相位裕度不足30度系統(tǒng)大概率會(huì)振蕩。第二種輸出電壓呈周期性小幅度波動(dòng)的“極限環(huán)”。這種問題往往來自ADC量化和PWM分辨率的交互。數(shù)字電源里PWM占空比的最小步長如果過大輸出電壓誤差無法被消除就會(huì)形成極限環(huán)。解決方法提高PWM分辨率合理設(shè)置ADC量化增益讓占空比最小步長對(duì)應(yīng)的輸出電壓變化量小于ADC的量化分辨率。PLECS里你可以分別調(diào)這兩個(gè)參數(shù)觀察極限環(huán)何時(shí)消失這個(gè)實(shí)驗(yàn)我在多篇數(shù)字電源論文里都見過類似的描述實(shí)際項(xiàng)目里驗(yàn)證也非常有效。第三種開關(guān)頻率處的輸出毛刺。如果開關(guān)頻率恰好和控制采樣頻率一致且采樣時(shí)刻靠近開關(guān)切換沿采樣結(jié)果里會(huì)混入開關(guān)噪聲導(dǎo)致數(shù)字控制器接收到錯(cuò)誤反饋進(jìn)而引發(fā)PWM抖動(dòng)。解決思路是調(diào)整采樣時(shí)刻讓它位于開關(guān)周期的中間點(diǎn)避開開關(guān)動(dòng)作噪聲最劇烈的時(shí)段。PLECS里采樣模塊可以設(shè)置采樣偏移調(diào)到PWM周期的一半位置就行。5.3 器件損耗和熱分析怎么做PLECS版本中如果你用的是帶熱分析功能的版本器件損耗可以直接查看。具體操作是在MOSFET的參數(shù)對(duì)話框里打開導(dǎo)通損耗和開關(guān)損耗的對(duì)應(yīng)項(xiàng)并在模型中添加熱測量端口。運(yùn)行結(jié)束后雙擊熱路徑上的測量元件能看到平均損耗、峰值損耗以及結(jié)溫曲線。不過要注意一個(gè)細(xì)節(jié)PLECS默認(rèn)的開關(guān)損耗模型是基于線性近似的也就是Eon、Eoff標(biāo)稱在某個(gè)電流和電壓條件下然后PLECS把實(shí)際電流電壓和標(biāo)稱值的比例做線性縮放。這個(gè)近似和實(shí)際器件手冊的曲線是有差距的尤其在大電流非線性區(qū)誤差可能超過30%。如果你做的是效率優(yōu)化和散熱設(shè)計(jì)的精細(xì)化評(píng)估建議用器件手冊里給出的能量曲線數(shù)據(jù)在模型里建立插值表來替代默認(rèn)線性模型。5.4 常見問題速查表現(xiàn)象可能原因解決方案仿真初始化失敗電容初始電壓與源不一致設(shè)置電容初始電壓或串聯(lián)小電阻輸出電壓發(fā)散補(bǔ)償器參數(shù)不合理檢查相位裕度減小環(huán)路增益輸出低頻振蕩穿越頻率過高或相位裕度不足AC掃描分析重新設(shè)計(jì)補(bǔ)償器輕載輸出電壓異常同步整流電感電流反向加入輕載關(guān)斷策略或二極管模式輸出電壓極限環(huán)ADC分辨率或PWM分辨率不足提高PWM分辨率優(yōu)化ADC量化增益效率仿真結(jié)果偏低開關(guān)損耗模型過于簡化用實(shí)際器件數(shù)據(jù)表建立插值損耗模型關(guān)于損耗測量還想多說一句PLECS的器件損耗分析是平均值和瞬態(tài)值都能看的。瞬態(tài)值能幫助定位哪個(gè)開關(guān)周期損耗最大平均值則用于熱設(shè)計(jì)。我每次跑效率仿真都會(huì)先確認(rèn)電路穩(wěn)態(tài)從哪一個(gè)周期開始然后設(shè)置數(shù)據(jù)記錄窗口只記錄穩(wěn)態(tài)段的平均損耗避免把啟動(dòng)過程的大損耗包含進(jìn)去導(dǎo)致效率數(shù)據(jù)偏低而不自知。6. 從仿真到實(shí)際項(xiàng)目的一些個(gè)人經(jīng)驗(yàn)最后分享一下我在項(xiàng)目推進(jìn)中沉淀下來的幾點(diǎn)體會(huì)。一是仿真和實(shí)際一定有差距但你能做的不是消滅差距而是提前識(shí)別哪些因素會(huì)導(dǎo)致這個(gè)差距。PLECS里功率器件是理想模型實(shí)際MOSFET的開關(guān)損耗、二極管反向恢復(fù)、PCB寄生參數(shù)這些在仿真的控制策略驗(yàn)證階段可以忽略但在效率評(píng)估階段不能忽略。所以我一向建議控制策略用PLECS做主驗(yàn)證效率數(shù)據(jù)用器件級(jí)仿真或者直接在樣機(jī)上測。二是PLECS的離散控制建模能力不要浪費(fèi)。很多工程師用PLECS還是以連續(xù)控制器的思維去做把補(bǔ)償器做成連續(xù)域模塊結(jié)果仿真圖好看實(shí)際燒進(jìn)DSP后完全對(duì)不上。與其后來費(fèi)勁調(diào)試固件不如從一開始就把采樣、離散化、延遲、PWM更新這些數(shù)字控制特有的因素都在PLECS里建出來讓仿真環(huán)境和真實(shí)運(yùn)行環(huán)境盡可能接近。做過一次完整的“仿真到代碼生成”流程之后你就明白這一步前期投入非常值得。三是我個(gè)人習(xí)慣在項(xiàng)目開始前建好一套標(biāo)準(zhǔn)的BUCK仿真模板把功率級(jí)參數(shù)、離散PID、PWM模塊、測量模塊都預(yù)置好。每次新項(xiàng)目只需要改參數(shù)和補(bǔ)償系數(shù)不用從零搭模型。這個(gè)模板陪我經(jīng)歷了十幾個(gè)項(xiàng)目從最初驗(yàn)證概念到后來調(diào)實(shí)際參數(shù)都靠它省下的時(shí)間保守估計(jì)有上百個(gè)小時(shí)。你現(xiàn)在就可以按我前面說的模塊劃分方式建一套屬于自己的模板后面的項(xiàng)目都會(huì)受益于這個(gè)基礎(chǔ)工作。本文還有配套的精品資源點(diǎn)擊獲取