電容混合儲(chǔ)能能量管理仿真模型解析)
做混合儲(chǔ)能仿真這幾年我最大的感受是電池和超級(jí)電容的組合本質(zhì)上是一種工程上的“取長(zhǎng)補(bǔ)短”。單一儲(chǔ)能元件很難同時(shí)扛下長(zhǎng)時(shí)功率支撐和短時(shí)沖擊響應(yīng)而把兩者混聯(lián)再用一套靠譜的能量管理策略去分配功率就能讓電池基本只看“平均分量”讓超級(jí)電容去頂“尖峰分量”。這篇文章就從工程實(shí)踐的角度把蓄電池與超級(jí)電容混合儲(chǔ)能系統(tǒng)的Simulink能量管理仿真模型拆開講包括模型怎么搭、能量管理策略怎么實(shí)現(xiàn)、參數(shù)怎么調(diào)、仿真的坑在哪適合正在做儲(chǔ)能仿真、畢業(yè)設(shè)計(jì)或者想快速落地一個(gè)混合儲(chǔ)能驗(yàn)證平臺(tái)的讀者參考。1. 蓄電池和超級(jí)電容為什么要“混”著用1.1 單一儲(chǔ)能難以兼顧的兩種工況儲(chǔ)能系統(tǒng)的負(fù)載并不總是平穩(wěn)的。微電網(wǎng)里光伏和風(fēng)電的波動(dòng)、工業(yè)設(shè)備啟停時(shí)的沖擊電流、電梯和起重機(jī)的回饋制動(dòng)這些工況都有一個(gè)共同特點(diǎn)平均功率不大但瞬時(shí)峰值功率可能達(dá)到平均功率的好幾倍。如果只用蓄電池設(shè)計(jì)容量就必須按“峰值功率”來選而不是按“平均能量”來選。這樣帶來的結(jié)果就是電池容量大幅冗余系統(tǒng)成本抬升而且電池頻繁承受大倍率充放電循環(huán)壽命衰減非常明顯。反過來如果只用超級(jí)電容功率響應(yīng)是沒有問題但能量密度低幾秒鐘的大功率支撐都可能把電壓拉得很低根本撐不住長(zhǎng)時(shí)間運(yùn)行。所以混合儲(chǔ)能的基本邏輯很簡(jiǎn)單電池負(fù)責(zé)能量超級(jí)電容負(fù)責(zé)功率兩者通過能量管理策略協(xié)同工作。1.2 電池和超級(jí)電容的特性對(duì)比理解后面的模型首先要記住兩種儲(chǔ)能元件的幾個(gè)核心差異。指標(biāo)鋰離子電池典型超級(jí)電容典型能量密度(Wh/kg)150 ~ 2505 ~ 10功率密度(kW/kg)約0.2 ~ 15 ~ 10循環(huán)壽命(次)1000 ~ 5000500000 ~ 1000000動(dòng)態(tài)響應(yīng)速度百毫秒級(jí)毫秒級(jí)端電壓變化相對(duì)平緩隨SOC變化明顯自放電率較低較高這里最關(guān)鍵的一點(diǎn)是功率密度。超級(jí)電容能在毫秒級(jí)時(shí)間內(nèi)輸出大電流而電池內(nèi)部電化學(xué)反應(yīng)的速率決定了它不能長(zhǎng)期承受大倍率充放電。用一句話來記憶就是電池比的是“耐力”超級(jí)電容比的是“爆發(fā)力”。1.3 混合儲(chǔ)能系統(tǒng)的拓?fù)溥x擇混合儲(chǔ)能拓?fù)渥畛R姷姆诸愑斜粍?dòng)并聯(lián)、半主動(dòng)和全主動(dòng)三種。被動(dòng)并聯(lián)最簡(jiǎn)單把蓄電池和超級(jí)電容直接掛到同一條母線上但問題也很明顯超級(jí)電容端電壓會(huì)被電池鉗位其內(nèi)部的可用能量窗口用不出來功率分配完全由內(nèi)阻特性主導(dǎo)根本無法主動(dòng)控制。工程上更常用的是全主動(dòng)拓?fù)湫铍姵赝ㄟ^一組雙向DC/DC變換器接公共直流母線超級(jí)電容通過另一組雙向DC/DC變換器接同一母線。這樣做的核心價(jià)值是電壓解耦。兩組DC/DC的輸出電壓可以獨(dú)立調(diào)節(jié)能量管理控制器只要計(jì)算功率指令轉(zhuǎn)換成功率期望再通過DC/DC去跟蹤就能把“目標(biāo)功率”映射到“實(shí)際電流”從而實(shí)現(xiàn)對(duì)功率分配的自由控制。本文討論的Simulink模型就是基于這這種拓?fù)洹?. 能量管理策略功率怎么分、SOC怎么守2.1 能量管理在仿真模型中的位置整個(gè)仿真模型大致分三層。最底層是蓄電池模型、超級(jí)電容模型和雙向DC/DC變換器中間層是母線電壓、負(fù)載功率和電流測(cè)量最上層就是能量管理控制器。以雙向DC/DC為核心的“功率跟蹤控制”通常單獨(dú)實(shí)現(xiàn)而能量管理策略只負(fù)責(zé)回答一個(gè)問題“在當(dāng)前負(fù)載下蓄電池該出多少功率超級(jí)電容該出多少功率”。這個(gè)分層非常關(guān)鍵。建模時(shí)不要把母線電壓控制、電流環(huán)PI、功率分配算法全部糅在一起否則后續(xù)調(diào)試時(shí)根本分不清問題出在哪個(gè)環(huán)節(jié)。我習(xí)慣先固定底層模型和電流環(huán)再在上面單獨(dú)調(diào)能量管理策略。2.2 最實(shí)用的濾波分配法基于一階低通濾波器的功率分配是混合儲(chǔ)能里最常用、也最容易被認(rèn)為“過于簡(jiǎn)單”的策略。它的思想是把負(fù)載總需求功率通過一個(gè)低通濾波器得到低頻分量交給蓄電池讓超級(jí)電容承擔(dān)總功率減去低頻分量的那部分也就是高頻分量。用公式表達(dá)就是P_batt P_load × ( 1 / (τ·s 1) )P_sc P_load - P_batt其中 τ 是低通濾波時(shí)間常數(shù)單位秒。這個(gè) τ 的物理意義是功率分配的分頻點(diǎn)頻率遠(yuǎn)高于 1/(2πτ) 的波動(dòng)會(huì)大量落到超級(jí)電容側(cè)頻率遠(yuǎn)低于它的分量由蓄電池平穩(wěn)承接。這個(gè)策略看著簡(jiǎn)單卻能解決大部分問題。它的好處是實(shí)時(shí)性強(qiáng)、計(jì)算量小、容易嵌入微控制器而且工程人員可以很容易理解把τ調(diào)大一點(diǎn)電池的功率軌跡就更平滑超級(jí)電容承擔(dān)的動(dòng)態(tài)分量也更大。2.3 SOC保護(hù)規(guī)則不能等到過放才處理濾波分配解決了“方向”問題但還沒有解決“安全”問題。假如超級(jí)電容本身已經(jīng)接近放電下限此時(shí)負(fù)載突然有一個(gè)大波動(dòng)濾波策略仍然會(huì)向超級(jí)電容發(fā)大功率指令結(jié)果就是超級(jí)電容電壓被強(qiáng)行拉低輕則退出工作重則觸發(fā)保護(hù)。所以完整能量管理策略一定包含SOC保護(hù)規(guī)則。做仿真模型時(shí)我用的是“濾波分配 SOC修正 狀態(tài)機(jī)”的組合當(dāng)超級(jí)電容SOC高于95%時(shí)禁止繼續(xù)吸收充電功率當(dāng)超級(jí)電容SOC低于20%時(shí)取消高頻補(bǔ)償功能只允許它從電池側(cè)緩慢充電當(dāng)蓄電池SOC低于下限時(shí)限制放電功率并逐步降低負(fù)載承受能力狀態(tài)機(jī)設(shè)置滯環(huán)區(qū)間避免在邊界附近頻繁切換。一句話總結(jié)能量管理策略的任務(wù)不光是給兩個(gè)儲(chǔ)能單元分功率還要保證它們各自工作在自己合理的工作窗口內(nèi)否則仿真跑出來的波形再漂亮也只是“紙面自嗨”。2.4 為什么用Simulink來做這件事我接觸過不少純數(shù)值計(jì)算的混合儲(chǔ)能程序用Python或Matlab腳本也能做功率分配但最大的問題是不直觀。Simulink的優(yōu)勢(shì)在于底層儲(chǔ)能模型、雙向DC/DC、控制算法、功率波形全在同一個(gè)仿真環(huán)境里你可以把濾波器、狀態(tài)機(jī)、限幅模塊直接拉成框圖一邊調(diào)參一邊看波形。后期如果需要從仿真走向代碼生成或硬件在環(huán)驗(yàn)證Simulink的模型也更容易遷移。對(duì)于混合儲(chǔ)能這個(gè)強(qiáng)實(shí)時(shí)、強(qiáng)耦合的系統(tǒng)框圖化表達(dá)比純代碼降低了很多理解成本。3. Simulink模型搭建每個(gè)模塊拆開講3.1 蓄電池等效模型與SOC計(jì)算完整Simulink建模的第一步是蓄電池模型。如果你裝了Simscape Electrical可以直接用自帶的Battery模型它內(nèi)置了Thevenin等效電路和多種電池類型。但考慮到有些場(chǎng)景需要自定義參數(shù)我建議知道基礎(chǔ)模型怎么搭。我這里采用的是一階RC等效電路一個(gè)理想電壓源 E_ocv隨SOC變化一個(gè)串聯(lián)內(nèi)阻 R0表示電極、電解液和端子的歐姆電阻一組并聯(lián)RC網(wǎng)絡(luò)(C_1、R_1)表示電池動(dòng)態(tài)極化過程。SOC計(jì)算用最經(jīng)典的安時(shí)積分法SOC(t) SOC0 - (1 / Q_nominal) × ∫ I_batt dt× 100在Simulink里實(shí)現(xiàn)時(shí)用積分器Integrator模塊注意把初始SOC設(shè)置成0.8或0.9。積分結(jié)果要加Saturation限幅避免SOC超過0到100的范圍。還要特別注意電流方向定義我習(xí)慣把放電電流記為正方向這樣SOC下降的物理意義更清楚后續(xù)查波形也不容易繞暈。電池開路電壓與SOC的關(guān)系建議通過一維查表模塊實(shí)現(xiàn)。磷酸鐵鋰電池的OCV-SOC曲線中段比較平如果使用電壓恒定近似SOC估計(jì)誤差會(huì)非常大。所以至少花一點(diǎn)時(shí)間把這條曲線填準(zhǔn)。3.2 超級(jí)電容等效模型與能量窗口超級(jí)電容的建模同樣可以簡(jiǎn)化。最常用的是一階串聯(lián)RC模型一個(gè)理想電容C、一個(gè)等效串聯(lián)電阻R_ESR。端電壓可以寫成U_sc U_cap - I_sc × R_ESR其中 U_cap 是電容內(nèi)芯的實(shí)際電壓I_sc 是充放電電流。該模型已經(jīng)能準(zhǔn)確反映超級(jí)電容端電壓隨功率波動(dòng)的行為對(duì)能量管理仿真來說足夠。關(guān)于超級(jí)電容的SOC定義這里要特別提一句。電池SOC通常按剩余容量與額定容量之比計(jì)算而超級(jí)電容SOC更合理的方式是按剩余可用能量窗口計(jì)算SOC_sc (U_cap2 - U_min2) / (U_max2 - U_min2)因?yàn)槌?jí)電容的儲(chǔ)能能力與電壓平方成正比用線性電壓定義SOC會(huì)在低電壓段高估剩余能量。仿真模型里建議按能量定義來實(shí)現(xiàn)否則你會(huì)在SOC低于20%時(shí)發(fā)現(xiàn)端電壓其實(shí)已經(jīng)非常低控制器再去調(diào)整功率就來不及了。3.3 雙向DC/DC變換器的建模簡(jiǎn)化全主動(dòng)拓?fù)淅锩拷M雙向DC/DC都可以運(yùn)行在Buck或Boost狀態(tài)。如果第一步就上開關(guān)級(jí)模型比如用IGBT和PWM發(fā)生器仿真速度會(huì)非常慢而且很容易遇到數(shù)值收斂問題。做能量管理驗(yàn)證時(shí)我強(qiáng)烈建議先采用平均模型。平均模型的核心是用受控源代替開關(guān)管工作。具體到Simulink中電池側(cè)DC/DC使用受控電流源接收電流指令I(lǐng)_batt_ref超級(jí)電容側(cè)DC/DC同樣使用受控電流源接收電流指令I(lǐng)_sc_ref母線側(cè)使用受控電壓源或?qū)?yīng)負(fù)載模型維持母線電壓。這樣處理以后仿真時(shí)間尺度可以從微秒級(jí)跳到毫秒級(jí)跑一段包含幾百秒工況的仿真也就幾秒到幾十秒非常高效。等到能量管理策略驗(yàn)證完畢需要看紋波或做硬件驗(yàn)證時(shí)再逐步替換成開關(guān)級(jí)模型。3.4 母線、負(fù)載與求解器設(shè)置公共直流母線電壓我在模型中設(shè)為400V。負(fù)載采用受控電流源模型根據(jù)P_load / V_bus計(jì)算母線電流這樣負(fù)載功率可以直接給定而不用考慮電阻特性。母線電容并聯(lián)一個(gè)相對(duì)較小的穩(wěn)壓電容模擬實(shí)際系統(tǒng)母線電容的穩(wěn)壓作用。求解器這里一定要留個(gè)心眼。默認(rèn)的ode45對(duì)于含開關(guān)和快速動(dòng)態(tài)的模型很容易發(fā)生步長(zhǎng)收縮仿真速度驟降。即便是平均模型我也建議直接用ode15s或ode23t這一類剛性求解器并設(shè)定最大步長(zhǎng)不超過1e-4秒。至少在我跑過的模型里這個(gè)配置穩(wěn)定性和速度都很好。4. 能量管理算法落地細(xì)節(jié)4.1 低通濾波器的離散化設(shè)計(jì)在Simulink里實(shí)現(xiàn)濾波分配法可以直接放一個(gè)Continuous Transfer Fcn模塊分子1分母[τ, 1]輸入負(fù)載總功率輸出電池目標(biāo)功率。但如果你的最終目標(biāo)是代碼生成或者想在仿真里加入固定控制周期建議把濾波器離散化。一階低通濾波器的連續(xù)表達(dá)式為P_batt_filtered P_load × (1/(τ·s 1))采用零階保持離散化后每一步更新可以寫為y(k) a × y(k-1) (1-a) × x(k)其中 a exp(-Ts / τ)這里 Ts 是控制周期。假如控制周期Ts 0.01秒濾波時(shí)間常數(shù)τ 2秒那么a exp(-0.005)大約0.995。也就是說每個(gè)控制周期里電池功率只會(huì)向目標(biāo)值移動(dòng)0.5%的剩余誤差這個(gè)平滑效果肉眼可見。用Simulink實(shí)現(xiàn)時(shí)我建議把濾波算法放進(jìn)MATLAB Function模塊輸入P_load輸出P_batt_ref和P_sc_ref。這樣比連線一堆離散積分器更容易維護(hù)也方便以后調(diào)整成滑動(dòng)平均或者二階濾波。4.2 電池功率斜坡限制與限幅低通濾波只決定了功率的“頻率分配”但還不能完全保證電池電流變化率在安全范圍內(nèi)。如果濾波時(shí)間常數(shù)設(shè)置太小電池的功率指令仍然可能出現(xiàn)明顯的斜率變化。所以在濾波之后我還會(huì)加一級(jí)Rate Limiter。Rate Limiter的上升和下降斜率分別設(shè)置。比如某系統(tǒng)電池額定功率10kW最大允許功率變化率設(shè)為0.5kW/s這樣電池電流就不會(huì)突然沖擊。要注意的是斜坡限制會(huì)引入額外的相位延遲可能會(huì)讓超級(jí)電容在多承擔(dān)一段功率所以斜坡值也不能設(shè)得太小。功率限幅放在斜坡限制之后。根據(jù)電池SOC動(dòng)態(tài)調(diào)整放電上限和充電上限比如SOC 90%時(shí)充電功率上限降為0SOC 20%時(shí)放電功率上限降低到額定值的50%其余情況放電和充電上限均為額定功率。4.3 超級(jí)電容SOC恢復(fù)邏輯濾波分配法的天然缺陷是超級(jí)電容承擔(dān)了大量高頻波動(dòng)但它的SOC是一個(gè)“隨波逐流”的過程不一定能回到期望的中間位置。如果某段時(shí)間負(fù)載一直處于充電脈動(dòng)狀態(tài)超級(jí)電容可能一直吸收能量SOC越充越高最終失去調(diào)節(jié)能力。所以我的模型里增加了一個(gè)SOC恢復(fù)邏輯當(dāng)SOC_sc 0.85時(shí)禁止超級(jí)電容吸收充電功率當(dāng)SOC_sc 0.25時(shí)強(qiáng)制超級(jí)電容進(jìn)入“回充模式”此時(shí)高頻分配暫時(shí)失效電池側(cè)輸出額外功率給超級(jí)電容充電當(dāng)SOC_sc恢復(fù)到0.4以上再切回正常的濾波分配?;爻淠J降墓β什挥迷O(shè)太大一般取超級(jí)電容額定功率的10%~20%這樣既不會(huì)影響主系統(tǒng)的動(dòng)態(tài)響應(yīng)也能在幾十秒內(nèi)把SOC拉回合理范圍。這個(gè)邏輯用MATLAB Function模塊寫很直觀輸入SOC_sc輸出一個(gè)修正系數(shù)直接乘到P_sc_ref上。4.4 用Stateflow還是用普通的Fcn模塊狀態(tài)機(jī)部分我見過兩種選擇。用Stateflow可以畫出清晰的狀態(tài)轉(zhuǎn)移圖看到狀態(tài)名稱和跳轉(zhuǎn)條件適合論文里做機(jī)理說明。但也有不少人只是在Simulink里用幾個(gè)邏輯判斷模塊拼接。我個(gè)人的建議是如果你的模型主要用于快速驗(yàn)證和教學(xué)展示用MATLAB Function實(shí)現(xiàn)狀態(tài)機(jī)就夠了。它的代碼量不大而且可以隨時(shí)打印中間變量查問題很方便。Stateflow適合狀態(tài)特別多、切換時(shí)序要求嚴(yán)格的場(chǎng)合。實(shí)際上混合儲(chǔ)能的狀態(tài)機(jī)一般不超過四個(gè)狀態(tài)沒有必要為了炫技引入額外復(fù)雜度。5. 仿真結(jié)果分析看波形不只看趨勢(shì)5.1 階躍工況波形解讀我用一組典型工況來展示結(jié)果。直流母線電壓400V基礎(chǔ)負(fù)載5kW在t50s時(shí)疊加一個(gè)10kW的階躍負(fù)載總負(fù)載瞬間變成15kW持續(xù)20s后負(fù)載再階躍回落。濾波時(shí)間常數(shù)τ取2秒超級(jí)電容SOC初始設(shè)置在70%。仿真得到的蓄電池功率曲線不會(huì)跟隨10kW階躍立刻跳變而是在2秒到4秒內(nèi)逐漸爬升到新的平均值附近超級(jí)電容功率則在階躍瞬間沖出接近10kW的尖峰隨后逐漸衰減到接近零。這就是“電池出平均、電容出動(dòng)態(tài)”的典型分工。如果此時(shí)你看到電池功率在階躍瞬間也跟著跳了一個(gè)大臺(tái)階多半是濾波時(shí)間常數(shù)設(shè)得太小或者濾波器的離散化公式寫錯(cuò)了。另一個(gè)常見的錯(cuò)誤是把負(fù)載功率直接當(dāng)成電池功率指令而讓超級(jí)電容去補(bǔ)償這樣分工就反了。5.2 蓄電池峰值電流與放電深度指標(biāo)評(píng)價(jià)能量管理策略好壞不能只看功率波形好不好看。我通常會(huì)記錄以下幾個(gè)量化指標(biāo)指標(biāo)含義判斷標(biāo)準(zhǔn)電池峰值電流最大充放電電流越小越好明顯低于負(fù)載峰值電流電池電流紋波率電流高頻波動(dòng)幅度應(yīng)小于5%電池SOC變化范圍充放電深度越小越好避免循環(huán)深度過大超級(jí)電容SOC使用區(qū)間動(dòng)態(tài)工作窗口應(yīng)在10%~90%內(nèi)母線電壓偏差暫態(tài)電壓波動(dòng)一般應(yīng)在±5%以內(nèi)在階躍工況下如果電池峰值電流從40A降到了25A左右超級(jí)電容的SOC從70%變化到大約55%這說明混合儲(chǔ)能確實(shí)發(fā)揮了功率緩沖的作用。如果超級(jí)電容SOC在單次階躍中直接跌到15%以下說明τ太大或超級(jí)電容容量選小了。5.3 母線電壓與能量效率母線電壓穩(wěn)定性也是必看的指標(biāo)。在平均模型中母線電壓主要取決于DC/DC的控制方式。如果負(fù)荷階躍時(shí)母線電壓下跌超過10%需要檢查母線穩(wěn)壓電容的容值以及DC/DC控制環(huán)參數(shù)。能量效率則按仿真總輸入能量與負(fù)載消耗總能量之比計(jì)算模型越簡(jiǎn)化效率越高因?yàn)樯倭撕芏嚅_關(guān)損耗。要特別提醒平均模型下得到的效率一般會(huì)偏高不能直接作為最終系統(tǒng)效率只能作為能量管理策略相對(duì)優(yōu)劣的比較基準(zhǔn)。6. 參數(shù)整定與踩坑實(shí)錄6.1 濾波時(shí)間常數(shù)千萬不要拍腦袋濾波常數(shù)τ是能量管理策略里最敏感的參數(shù)。它本質(zhì)上決定了“電池vs超級(jí)電容”的分工邊界。τ取小了電池電流仍然會(huì)有明顯波動(dòng)τ取大了超級(jí)電容承擔(dān)的能量過多SOC容易跑到邊界。我的經(jīng)驗(yàn)是先看負(fù)載工況里單次最大脈動(dòng)的持續(xù)時(shí)間。比如工業(yè)設(shè)備啟動(dòng)沖擊持續(xù)3秒那么τ至少取1~2秒因?yàn)橐岆姵卦?秒內(nèi)只承擔(dān)平均分量就需要濾波時(shí)間常數(shù)與脈動(dòng)寬度在同一個(gè)數(shù)量級(jí)。更穩(wěn)妥的做法是做一個(gè)掃參把τ從0.5秒變到5秒分別記錄電池峰值電流和超級(jí)電容SOC范圍兩者交叉點(diǎn)附近就是比較合理的取值。與其對(duì)著公式反復(fù)估算不如直接用仿真曲線做決策。6.2 超級(jí)電容SOC窗口并不是越大越好很多人喜歡把超級(jí)電容SOC窗口設(shè)成0%~100%覺得這樣可以最大化利用容量。但實(shí)際做混合儲(chǔ)能的人都不會(huì)這么干。超級(jí)電容電壓過低時(shí)輸出同樣功率需要更大電流此時(shí)DC/DC和母線的損耗都會(huì)顯著上升而電壓過高時(shí)充電效率變差且容易進(jìn)入保護(hù)區(qū)。所以我習(xí)慣把仿真模型里超級(jí)電容的SOC計(jì)算按能量定義實(shí)現(xiàn)并把窗口設(shè)置為20%~90%。這樣即使出現(xiàn)參數(shù)擾動(dòng)或工況切換也有足夠裕量讓策略去調(diào)整而不是直接把電容逼到物理極限。6.3 代數(shù)環(huán)、仿真發(fā)散與步長(zhǎng)平均模型雖然比開關(guān)模型穩(wěn)定但也有一個(gè)高頻踩坑點(diǎn)代數(shù)環(huán)。當(dāng)你的能量管理模塊輸入是P_load而P_load由母線電壓和電流計(jì)算得到這條路徑與DC/DC反饋路徑閉合時(shí)Simulink就會(huì)提示檢測(cè)到代數(shù)環(huán)。代數(shù)環(huán)雖然不報(bào)錯(cuò)但會(huì)嚴(yán)重拖慢仿真甚至使結(jié)果振蕩。解決代數(shù)環(huán)的辦法有兩個(gè)一是把功率測(cè)量路徑上加入Memory模塊或單位延遲產(chǎn)生一拍滯后二是把控制器和主電路的采樣時(shí)間分開控制器采樣周期設(shè)為1e-3秒電路連續(xù)時(shí)間域這樣自然切斷了瞬時(shí)代數(shù)約束。我的經(jīng)驗(yàn)是后者更干凈也更符合實(shí)際數(shù)字控制器的運(yùn)行方式。另一個(gè)發(fā)散問題出現(xiàn)在開關(guān)級(jí)模型上。用了PWM和IGBT之后ode45很容易因?yàn)楦哳l開關(guān)和母線電容形成剛性系統(tǒng)仿真步長(zhǎng)越來越小。這種時(shí)候直接換ode15s并把最大步長(zhǎng)設(shè)為開關(guān)周期或更小比如20kHz對(duì)應(yīng)50微秒最大步長(zhǎng)設(shè)成25微秒。如果模型仍然發(fā)散多半是理想開關(guān)導(dǎo)致的高di/dt需要給電感串聯(lián)一個(gè)小阻尼電阻。6.4 用腳本批量掃描參數(shù)手動(dòng)改Simulink模塊參數(shù)再點(diǎn)運(yùn)行效率太低。調(diào)參階段我用Matlab腳本加sim函數(shù)做批量掃描。tau_list [0.5, 1, 2, 3, 5]; Ts 0.01; for i 1:length(tau_list) tau tau_list(i); % 通過仿真輸入對(duì)象設(shè)置模型工作區(qū)變量 simIn Simulink.SimulationInput(HESS_model); simIn simIn.setVariable(tau, tau); simIn simIn.setVariable(Ts, Ts); simOut simIn.simulate; % 提取電池電流信號(hào) I_batt simOut.logsout.get(I_batt).Values.Data; peak_batt(i) max(abs(I_batt)); % 提取超級(jí)電容SOC信號(hào) SOC_sc simOut.logsout.get(SOC_sc).Values.Data; soc_min(i) min(SOC_sc); end % 打印匯總表 table(tau_list, peak_batt, soc_min, VariableNames, {tau, peak_batt, soc_min})Simulink.SimulationInput 比直接set_param要干凈很多它不修改模型文件適合并行參數(shù)掃描。需要提醒的是模型中的濾波模塊和狀態(tài)機(jī)模塊里的變量名要與上面setVariable的變量名完全一致否則傳參不進(jìn)去。這個(gè)坑我踩過檢查起來很隱蔽。7. 從仿真到實(shí)際擴(kuò)展方向與個(gè)人體會(huì)7.1 模型復(fù)雜度要階梯式增加我見過不少初學(xué)者上來就把Simscape Electrical里的開關(guān)級(jí)雙向DC/DC、IGBT驅(qū)動(dòng)、寄生參數(shù)全部拉進(jìn)模型結(jié)果仿真跑不動(dòng)、報(bào)錯(cuò)不斷最后連能量管理策略的效果都沒看清。正確的方式是先搭平均模型驗(yàn)證SOC保護(hù)和濾波分配的整體邏輯再逐步把其中一個(gè)DC/DC替換為開關(guān)模型檢查紋波和控制行為最后再全部替換成開關(guān)級(jí)或聯(lián)調(diào)半實(shí)物平臺(tái)。每上升一個(gè)復(fù)雜度臺(tái)階都要回頭確認(rèn)上一層的結(jié)論仍然成立。7.2 進(jìn)階能量管理方向?yàn)V波分配法雖然實(shí)用但它是無預(yù)測(cè)的響應(yīng)式策略。如果負(fù)載模式有明顯規(guī)律比如起重機(jī)每次工作循環(huán)都固定可以先識(shí)別典型工況用模型預(yù)測(cè)控制把電池SOC和超級(jí)電容SOC當(dāng)作約束在線優(yōu)化未來一段時(shí)間的功率分配。仿真模型里已經(jīng)有比較完整的儲(chǔ)能等效模型只需要把能量管理模塊替換成MPC控制器就可以直接對(duì)比兩種策略的電池電流峰值和SOC曲線。此外模糊邏輯控制器在混合儲(chǔ)能里也很常見。它比狀態(tài)機(jī)平滑比MPC容易調(diào)比較適合處理SOC處于中間區(qū)間的緩變調(diào)節(jié)。不過我個(gè)人還是建議先吃透濾波規(guī)則法因?yàn)檫M(jìn)階策略的收益往往只在邊界工況下體現(xiàn)如果基礎(chǔ)策略都調(diào)不好換再高級(jí)的算法也看不出來好在哪里。7.3 幾點(diǎn)實(shí)在的體會(huì)做混合儲(chǔ)能Simulink仿真很多時(shí)候卡住的并不是算法而是模型邊界條件沒理清楚。先把母線電壓定下來把負(fù)載工況曲線定下來把SOC保護(hù)閾值定下來模型自然就順了。能量管理策略的目的是降低電池壓力、維持超級(jí)電容SOC、保證母線穩(wěn)定這三個(gè)目標(biāo)有時(shí)互相沖突不可能同時(shí)做到最優(yōu)仿真階段就應(yīng)該明確優(yōu)先級(jí)。最后再分享一個(gè)小技巧給負(fù)載加一個(gè)隨機(jī)波動(dòng)噪聲比單純用方波階躍更容易暴露能量管理策略的問題。隨機(jī)波動(dòng)能讓濾波分配法的高頻通道真正工作起來也能幫你看出超級(jí)電容SOC是否會(huì)被慢慢推到邊界。如果你搭建的模型在階躍工況下看起來完美但一加隨機(jī)波動(dòng)就出現(xiàn)超級(jí)電容SOC越限那不是模型出錯(cuò)而是你的參數(shù)裕量還不夠需要回頭把τ和SOC窗口重新標(biāo)定一輪。