細節(jié))
做風光儲微電網仿真的人有一半的時間不是花在搭模型上而是花在跟發(fā)散和代數(shù)環(huán)搏斗上。這是我用Simulink把這套風光儲互補微電網模型跑通之后最深的體會——網上能搜到的資料九成都在講拓撲結構和控制原理但真正讓模型從原理正確變成能跑出結果的那些細節(jié)幾乎沒人系統(tǒng)講過。這篇東西就是來補這個缺口的我會從建模選型、模塊搭建、控制策略到仿真參數(shù)配置、結果分析一條線走下來把我在這個項目里踩過的坑和驗證過的方案都攤開說。這篇文章適合三類人正在做新能源方向畢業(yè)設計的學生需要快速搭建微電網仿真平臺的工程師以及能看懂論文但照著復現(xiàn)總失敗的初學者。文中的模型基于Simulink R2023a版本搭建核心思路兼容舊版本涉及的具體模塊路徑我會寫清楚。1. 為什么選Simulink做風光儲微電網仿真選型邏輯與整體架構1.1 風光儲微電網的核心痛點與仿真需求風光儲互補微電網說白了就是把光伏、風電這兩個隨機性很強的電源配上儲能這個緩沖池再加上負荷構成一個能獨立運行或并網運行的小型電力系統(tǒng)。它最大的難點不在設備本身而在互補這兩個字上——光伏夜里沒輸出、風電沒風就沒輸出、負荷又隨時在變三者之間怎么協(xié)調全靠控制策略。這就帶來一個現(xiàn)實問題控制策略的正確性沒法在真實系統(tǒng)上直接驗證。一套新的能量管理算法直接上真機萬一邏輯有缺陷輕則影響供電質量重則損壞設備。所以行業(yè)里的常規(guī)做法是先在仿真環(huán)境里把策略跑透驗證各種極端工況下的表現(xiàn)再決定是否工程落地。而微電網仿真涉及電力電子變換器、電機、儲能電池、控制系統(tǒng)等多個領域需要的是一個多物理域聯(lián)合仿真的平臺。1.2 Simulink相對其他仿真工具的優(yōu)勢在哪里我早期也用PSCAD和DigSILENT做過新能源仿真但最終把主力場景放在Simulink上主要基于三個實際原因第一模型庫覆蓋面足夠完整。Simulink加上Simscape Electrical早期叫SimPowerSystems這個電氣專業(yè)庫光伏陣列、風機、鋰電池、電力電子開關器件、變壓器、輸電線路這些全是現(xiàn)成模塊不需要自己從頭寫微分方程。更重要的是電氣庫里的模塊和普通Simulink控制模塊天然兼容控制策略用普通模塊搭被控對象用電氣模塊搭二者直接在同一個仿真環(huán)境里交互不需要做接口轉換。第二MATLAB生態(tài)讓數(shù)據(jù)分析和算法驗證極方便。仿真結果直接進工作區(qū)我可以在MATLAB腳本里做FFT諧波分析、畫功率曲線、算SOC變化率甚至可以跑參數(shù)掃描。對做研究的人來說這個閉環(huán)非常重要——仿真不只是為了看波形更是為了分析規(guī)律。第三代碼生成鏈路成熟。模型跑通驗證之后想走MBD基于模型的設計路線把控制部分生成C代碼部署到控制器里Simulink有完整的工具鏈。雖然這個項目本身沒走到那一步但建模初期就考慮這點可以讓模型結構更規(guī)范。這套系統(tǒng)的整體架構我采用直流母線單臺并網逆變器的經典拓撲。光伏和儲能都接在直流母線上通過DC/DC變換器分別完成MPPT控制和充放電控制直流母線再通過一臺三相逆變器接入交流負荷和外部電網。之所以這樣選是因為這種結構控制層次清晰直流側各管各的交流側的電壓和頻率由逆變器統(tǒng)一支撐。相比之下如果光伏和儲能各自通過獨立逆變器并交流母線控制耦合度會高很多初學者調試起來容易陷入按下葫蘆浮起瓢的困境。2. 風光儲互補微電網的架構設計與核心模塊劃分2.1 系統(tǒng)拓撲選擇直流母線方案為什么更適合工程驗證來做微電網仿真的人第一道選擇題就是拓撲。我見過不少人一上來就照著交流微電網的架構搭光伏、儲能各配一臺逆變器再搞同期并網控制結果模型復雜度直線上升仿真速度慢到沒法調參。直流母線拓撲的核心優(yōu)勢在于控制解耦。光伏通過Boost電路接直流母線只需要管MPPT和直流母線電壓儲能通過雙向Buck-Boost接直流母線只需要根據(jù)能量管理指令決定充放電直流母線再通過一個統(tǒng)一的逆變器接交流側。這樣一來直流側的功率平衡問題轉化為母線電壓穩(wěn)定問題交流側的電壓頻率問題轉化為逆變器控制問題兩邊可以分別調試最后再聯(lián)調即可。我在模型中用的主電路參數(shù)如下組件關鍵參數(shù)說明光伏陣列開路電壓 64.2V × 5串短路電流 5.96A × 4并約為 1.2kWSimscape Electrical的PV模塊可直接填模塊參數(shù)Boost電路L 5mHC 2000μF開關頻率 10kHz電感值影響電流紋波電容值影響母線電壓紋波鋰電池組額定電壓 96V額定容量 50Ah初始SOC 70%用電氣庫的Battery模塊選鋰離子模型雙向變換器同Boost參數(shù)但用MOSFET二極管構成半橋結構單橋臂即可實現(xiàn)雙向Buck-Boost三相逆變器IGBT模塊直流側電壓目標 200V開關頻率 10kHz帶RLC濾波器L 5mH交流負荷三相平衡負載額定功率 800W用三相串聯(lián)RLC負載模塊2.2 并網與離網運行模式兩種工況下的控制目標差異風光儲微電網按運行模式可以分成并網和離網兩大類這直接決定了控制策略的走向必須在建模仿真前就確定下來。并網模式下交流母線電壓和頻率由大電網支撐微電網的核心任務有三個盡量把光伏和風電的功率最大化利用MPPT、儲能根據(jù)指令吸收或釋放功率、保證并網電流質量。這時候逆變器通常采用PQ控制——給定有功和無功參考值控制并網電流跟蹤指令即可不需要管電壓和頻率的調節(jié)。離網模式下情況完全不同。整個微電網變成了一個獨立供電系統(tǒng)逆變器必須自己撐起交流母線的電壓和頻率這時候要用V/f控制——控制目標是母線電壓幅值和頻率穩(wěn)定在額定值附近。更關鍵的是離網模式下系統(tǒng)的功率平衡是硬約束光伏和風電發(fā)的功率、儲能充放的功率、負荷消耗的功率三者必須時刻相等。如果負荷突變響應不及時就會導致電壓跌落或過壓。我在建模仿真時同時搭建了這兩種模式的控制邏輯通過一個外部信號切換。并網用PQ控制離網用V/f控制。實際做的時候建議先分別調試通過再合并到一個模型里不要指望一次聯(lián)調成功。3. 光伏、風電、儲能三大核心模型的搭建要點3.1 光伏陣列模型與擾動觀察MPPT的工程陷阱光伏模型我直接用Simscape Electrical庫里的PV Array模塊它封裝了光伏電池的工程數(shù)學模型關鍵參數(shù)可以從廠家數(shù)據(jù)手冊填。我這邊按5串4并配置總功率約1.2kW這樣在仿真里功率量級不至于太小波形失真也不至于太大。MPPT控制用的是最經典的擾動觀察法。邏輯簡單周期性地給光伏工作電壓加一個小的擾動如果擾動后輸出功率增加就保持擾動方向如果功率減小就反向擾動。這個方法教科書上講得輕描淡寫但實際在Simulink里搭的時候有一個特別容易踩的坑——采樣時機。MPPT計算需要用到當前的光伏輸出電壓和電流如果你用連續(xù)時間模型直接采樣高頻開關紋波會嚴重干擾功率比較導致MPPT誤判方向工作點來回振蕩最典型的癥狀就是光伏功率曲線像鋸齒一樣抖。解決辦法是在MPPT控制器前面加一個均值濾波器或者把MPPT控制放在一個采樣保持模塊里采樣頻率設為100Hz左右即可。我實測下來采樣頻率過高會讓MPPT過于敏感過低則跟蹤速度太慢100Hz~200Hz是光伏MPPT比較合理的范圍。另外擾動步長建議取0.5V左右太大功率振蕩明顯太小跟蹤速度太慢。風電部分我用了簡化等效模型用一個受控電流源模擬風機輸出輸出電流根據(jù)風速-功率曲線換算。這種簡化方案對微電網系統(tǒng)級仿真來說是合理的——因為這里重點研究的是風光儲之間的功率協(xié)調而不是風機本身的電磁暫態(tài)過程。3.2 鋰電池模型與雙向DC/DC變換器充放電切換的關鍵細節(jié)儲能建模我用的是Simscape Electrical的Battery模塊選鋰離子模型額定電壓96V額定容量50Ah。這個模塊內置了SOC計算、開路電壓與SOC的關系曲線、內阻模型用起來基本不需要額外改。儲能側的關鍵在雙向DC/DC變換器的控制。這個電路拓撲和單向Boost很像區(qū)別在于把二極管換成了可控開關管形成半橋結構。控制目標是維持直流母線電壓穩(wěn)定——當母線電壓低于參考值儲能放電抬升電壓高于參考值儲能充電吸收功率。控制策略我采用雙環(huán)控制外環(huán)是電壓環(huán)通過PI控制器根據(jù)母線電壓偏差計算電流參考值內環(huán)是電流環(huán)根據(jù)電流參考值和實際電感電流的偏差生成PWM占空比。這里有一個方向切換的細節(jié)特別容易翻車電流參考值可能從正變負而雙向變換器在不同方向下工作的開關管不一樣。如果直接用同一個PWM信號去驅動兩個開關管大概率會出現(xiàn)直通短路。我的做法是用一個比較器判斷電流參考值的符號選擇性地給上管或下管發(fā)PWM另一個管保持關斷。同時在控制回路里設置滯環(huán)防止在零電流附近頻繁切換模式。實測下來這個方法穩(wěn)定性很好。3.3 逆變器與LC濾波器V/f控制和PQ控制的Simulink實現(xiàn)逆變器是交流側的樞紐。三相逆變器由六個IGBT組成Simscape Electrical里有現(xiàn)成的Three-Level Bridge或Universal Bridge模塊。我這里用sig信號控制載波是10kHz三角波。逆變器的控制我分別實現(xiàn)了V/f控制和PQ控制用Manual Switch模塊在兩種模式之間切換。V/f控制用于離網模式思路是給定電壓幅值和頻率參考通過坐標變換把三相電壓轉換到dq旋轉坐標系下用PI控制器調節(jié)d軸和q軸電壓使輸出電壓跟蹤參考值。這里有個初學者容易忽略的點——LC濾波器的電容電流或電感電流需要參與控制環(huán)純電壓單環(huán)控制的動態(tài)響應很差負載突變時電壓跌落嚴重。我最終采用的是電壓外環(huán)電容電流內環(huán)的雙環(huán)控制結構動態(tài)性能改善非常明顯。PQ控制用于并網模式思路是給定有功功率P和和無功功率Q的參考值通過功率計算得到電流參考值再用電流內環(huán)跟蹤。在dq坐標系下P和Q可以解耦控制d軸控制有功q軸控制無功這是經典的并網逆變器控制策略。仿真結果驗證下來切換瞬間會有一個短暫過渡過程V/f模式和PQ模式的控制參數(shù)需要分別整定不能共用一組PI參數(shù)——這是我反復調了好幾次才確認的。4. 從零搭建模型五步走通風光儲微電網Simulink仿真4.1 第1步搭建主電路電氣部分打開Simulink新建一個空白模型。先確認庫瀏覽器里有沒有Simscape Electrical我見過不少同學安裝MATLAB時沒有勾選這個工具箱導致找不到PV Array、Battery這些模塊。確認沒問題后按照架構圖依次拖出以下模塊并連接光伏陣列模塊Simscape Electrical Specialized Power Systems SourcesBoost變換器Simscape Electrical Specialized Power Systems Power Electronics里找開關器件用MOSFET搭鋰電池模塊同一庫的Electrical Sources下雙向DC/DC變換器用MOSFET二極管構成半橋三相逆變器Universal BridgeLC濾波器用Series RLC Branch搭三相負荷主電路連接時要注意電氣模塊必須用電氣連接線粗線連接控制信號用普通信號線細線兩者不能直接相連需要經過Voltage Measurement、Current Measurement等傳感器模塊轉接。這是Simulink電氣仿真最基本但也是最常見的連接錯誤。4.2 第2步搭建光伏MPPT與Boost控制MPPT控制邏輯如下方代碼所示這段邏輯本質上是離散化的比較器加積分器。% MPPT 擾動觀察法核心邏輯 if p_now p_prev if v_now v_prev v_ref v_ref step; % 繼續(xù)同向擾動 else v_ref v_ref - step; end else if v_now v_prev v_ref v_ref - step; % 反向擾動 else v_ref v_ref step; end end在Simulink里實現(xiàn)時我用Unit Delay模塊保存上一時刻的功率和電壓值用Relational Operator比較大小用Switch判斷方向輸出作為Boost電路的參考電壓。再將參考電壓與實際光伏電壓的誤差送入PI控制器輸出占空比最后用PWM Generator模塊生成驅動脈沖。4.3 第3步搭建儲能充放電控制存儲控制的核心是母線電壓穩(wěn)定。外環(huán)PI以直流母線電壓測量值為反饋目標值設為200V輸出作為電流參考值正為放電、負為充電。內環(huán)PI以電感電流為反饋輸出與三角載波比較生成PWM信號。關鍵的雙向切換邏輯用Sign模塊加Switch完成——電流參考值大于零時驅動下管小于零時驅動上管。4.4 第4步搭建逆變器與離網/并網控制切換逆變器的V/f和PQ控制我放在一個Subsystem子系統(tǒng)里方便切換和復用。坐標變換部分用abc_to_dq0變換模塊注意這里需要角度信號——離網模式用自生成的斜坡相位頻率50Hz并網模式用PLL模塊鎖相得到的相位。我把這個相位信號的來源設計成了可切換的這樣離網和并網時角度不會跳變。4.5 第5步配置仿真參數(shù)與求解器這一步是很多仿真發(fā)散的根源。我在項目中實測的關鍵參數(shù)組合如下參數(shù)推薦值說明求解器ode23tb剛性系統(tǒng)專用比ode45穩(wěn)健得多仿真步長變步長Max 1e-4開關頻率10kHz至少20個點每周期相對容差1e-4默認1e-3偶爾會在模式切換時發(fā)散仿真時長2~5s兼顧速度和觀測窗口離散采樣時間1e-4用于PWM生成器特別強調一下求解器的選擇。電力電子仿真里IGBT/MOSFET的開關動作會引起系統(tǒng)狀態(tài)突變屬于典型的剛性系統(tǒng)。ode45是顯式算法碰到這種剛性系統(tǒng)往往需要極小的步長才能滿足精度仿真速度慢且容易發(fā)散。ode23tb是隱式算法專門為剛性系統(tǒng)設計我?guī)缀跛械碾娏﹄娮臃抡娑加盟H绻惆l(fā)現(xiàn)仿真發(fā)散第一步不是去改控制參數(shù)而是先把求解器換成ode23tb或ode15s試試。5. 仿真結果分析功率平衡、電壓穩(wěn)定與諧波評估5.1 典型工況設計與仿真場景設置模型搭好后仿真分析必須有目的性。我設計了三個典型工況來驗證系統(tǒng)性能工況一光伏突變0~1s光照強度為1000W/m21s時刻突降到600W/m22s時刻恢復。這個工況模擬云層遮擋檢驗儲能能否快速補上功率缺口。工況二負荷突變0~1.5s負荷為800W1.5s時刻突增到1200W。檢驗系統(tǒng)對負荷階躍的響應能力。工況三并離網切換2s時刻并網斷路器斷開系統(tǒng)轉入離網模式檢驗V/f控制的電壓頻率維持能力。三個工況可以放在一個仿真里連續(xù)跑通過Step模塊設置不同時刻的階躍信號來實現(xiàn)。5.2 結果解讀從波形到系統(tǒng)性能評估仿真完成后數(shù)據(jù)自動存到工作區(qū)。我習慣用Scope模塊直接看波形同時用To Workspace模塊把關鍵信號存下來做進一步分析。直流母線電壓是最先要看的關鍵指標。正常情況下應該穩(wěn)定在200V附近波動幅度不超過±5%。如果光伏功率突變時母線電壓出現(xiàn)明顯跌落說明儲能響應速度不夠需要調大儲能電流環(huán)的PI比例系數(shù)。如果高頻振蕩說明內環(huán)帶寬過高適當降低。功率曲線需要看光伏輸出功率、風電輸出功率、儲能充放電功率和負荷消耗功率之間的關系。光伏突變瞬間光伏功率從1.2kW掉到0.7kW但負荷不變儲能立即從充電狀態(tài)轉入放電狀態(tài)補上約0.5kW的缺口——這說明儲能平抑功率波動的功能正常。鋰電池SOC曲線如果出現(xiàn)斜率的劇烈變化說明充放電功率沖擊過大長期運行會加速電池老化。這時可以在儲能控制回路中增加SOC限幅保護SOC低于20%時限制放電功率高于90%時限制充電功率。5.3 數(shù)據(jù)后處理用MATLAB腳本做FFT諧波分析仿真數(shù)據(jù)拿到手之后我一般會用下面的腳本做FFT分析觀察并網電流的諧波含量% 導入Scope保存的電流數(shù)據(jù)變量名為i_a fs 10000; % 采樣頻率與PWM開關頻率相關 t scope_i_a.time; % 時間向量 i scope_i_a.signals.values; % 電流數(shù)據(jù) % 截取穩(wěn)態(tài)段 t_start 2.0; t_end 3.0; idx t t_start t t_end; i_steady i(idx); N length(i_steady); % FFT分析 Y fft(i_steady); P2 abs(Y/N); P1 P2(1:floor(N/2)1); P1(2:end-1) 2*P1(2:end-1); f fs*(0:(N/2))/N; % 繪制頻譜 figure; plot(f, P1); xlim([0 1000]); xlabel(頻率 (Hz)); ylabel(幅值 (A));這段腳本值得說兩個點。第一仿真數(shù)據(jù)不是連續(xù)的必須截取穩(wěn)態(tài)段否則瞬態(tài)分量混入FFT結果會嚴重影響諧波判斷。第二fs要和仿真步長相匹配如果你用變步長仿真那么To Workspace保存的數(shù)據(jù)默認是不等間距采樣的做FFT之前需要先用resample函數(shù)重采樣到等間距。這個坑我踩過一回分析出來的頻譜亂七八糟折騰了半天才發(fā)現(xiàn)是采樣間隔不均導致的。6. Simulink建模調試中反復踩坑的排錯鏈路6.1 仿真發(fā)散問題先查求解器再查控制邏輯仿真發(fā)散是最讓人頭大的問題表現(xiàn)形式為波形在一瞬間變成NaN或者直接爆掉。我的排查順序如下第一步把求解器換成ode23tb。基于我上面的分析大部分發(fā)散問題是因為顯式求解器在剛性系統(tǒng)下數(shù)值失穩(wěn)。第二步如果換了解法器仍然發(fā)散查代數(shù)環(huán)。代數(shù)環(huán)在Simulink中表現(xiàn)為信號路徑中存在無延遲的反饋回路仿真時會因為無法直接計算而迭代求解導致發(fā)散。查找方法菜單欄Display里勾選Algebraic Loops高亮顯示。解決思路是在反饋回路中加Unit Delay或Memory模塊打破迭代環(huán)。第三步查初始化問題。很多控制器初值設置不當會導致啟動瞬間的巨大沖擊我通常將PI控制器的積分器初值設為0并把所有傳感器的初始狀態(tài)設為0啟動瞬間的沖擊往往就能消除。第四步查PWM生成器的載波頻率與求解器步長不匹配。如果求解器最大步長設置的比PWM周期還大就會遺漏開關事件導致波形嚴重失真。我把Max Step設為1e-4后這類問題基本消失。6.2 數(shù)字信號的離散步長與連續(xù)域信號混用問題我早期搭建MPPT控制時用離散的Unit Delay模塊和連續(xù)的PI控制器混搭結果仿真報錯Discrete step time mismatch。原因很簡單Simulink中離散模塊和連續(xù)模塊的更新機制不同混用時需要保證離散模塊的采樣時間與連續(xù)模塊的求解步長兼容。解決方案有兩個要么把所有控制模塊都變成離散域統(tǒng)一指定采樣時間要么都用連續(xù)模塊避免采樣機制沖突。我的模型中最終采用了離散域方案——MPPT的采樣周期100HzPWM的載波10kHz各模塊分別指定合理的采樣時間仿真效率和穩(wěn)定性都明顯提升。6.3 功率不平衡導致的直流母線電壓漂移另外要提一個工程本質問題直流母線電壓漂移的本質是功率不平衡。光伏發(fā)的功率、儲能吸收/釋放的功率、逆變器輸出的功率三者不平衡就會表現(xiàn)為母線電壓的升高或降低。仿真中如果母線電壓緩慢上升大概率是光伏輸入功率大于逆變器輸出功率加儲能充電功率儲能沒有及時吸收多余功率反之則儲能放電不足。排查思路就是看功率流不要只盯電壓波形。7. 從仿真到工程應用模型還可以怎么擴展仿真模型跑通之后真正拉開差距的是擴展能力。我在這個框架上繼續(xù)做過幾件事都可以直接在原模型上迭代。第一加入風速模型。當前風電用的是簡化受控電流源想研究風機特性對微電網的影響可以把受控源替換為永磁同步發(fā)電機加背靠背變流器的完整電氣模型。這個工作量大但Simscape Electrical庫里有現(xiàn)成的風機模塊可以逐級增加復雜度。第二做參數(shù)掃描分析。想要研究儲能容量對平抑效果的影響不需要手動一檔一檔改參數(shù)用MATLAB腳本驅動sim命令批量仿真把結果統(tǒng)一存下來對比即可。我個人經驗是這種批處理腳本是做研究的利器能省下大量重復勞動。第三走MBD代碼生成路線。把能量管理策略部分單獨抽成獨立子系統(tǒng)在模型配置中選擇合適的求解器和解算精度生成C代碼后部署到嵌入式控制器進行硬件在環(huán)測試。這條路需要額外的Simulink Coder許可證和硬件平臺支持但這是從仿真驗證走向工程落地的必經之路。第四接入真實氣象數(shù)據(jù)。將實際的光照、風速歷史數(shù)據(jù)導入模型用From Workspace模塊驅動光伏和風電模型復現(xiàn)真實天氣條件下系統(tǒng)的運行狀態(tài)。我做一次24小時仿真時長的運行速度快且能有效觀察儲能SOC一整天的變化軌跡驗證能量管理策略在長時間尺度上的合理性。需要注意的是這種仿真要合理設置步長把關注時間尺度放在秒級以上否則計算量會非常大。