電系統(tǒng)建模與聯(lián)合仿真)
在新能源項目里太陽能和風能很少被單獨討論更多是作為分布式發(fā)電單元參與微電網(wǎng)、孤島供電和混合能源調(diào)度。Simulink 之所以適合做這類仿真是因為它既能用 Simscape 物理模型搭建電路也能用數(shù)學模塊搭建控制邏輯同一個模型里可以同時觀察電氣量、機械量和控制量。這篇文章會從零開始分別搭建一個光伏電池模型和一個簡化的風力發(fā)電模型再把它們接入同一條直流母線做聯(lián)合仿真最后補充結(jié)果讀取、參數(shù)調(diào)整和問題排查方法。讀者只需要能打開 Simulink 并拖動模塊按文章順序操作就能把這套流程遷移到自己的實際項目中。1. 太陽能和風能建模前先理解 Simulink 適合解決什么問題1.1 新能源系統(tǒng)建模要解決的核心問題光伏和風電的建模目標并不完全一樣。光伏系統(tǒng)的主要問題是輸出功率隨光照和溫度劇烈變化同一塊電池板在不同輻照度下的最大功率點完全不同。風電系統(tǒng)更復雜風力機的機械功率與風速的三次方成正比風速從 8 m/s 漲到 10 m/s理論上功率接近翻倍而且塔筒、葉片、齒輪箱和發(fā)電機會形成復雜的機電耦合。在 Simulink 中做新能源仿真不是要把每一個物理細節(jié)都還原出來而是要回答三個問題在那個氣象條件下能發(fā)出多少電、控制策略能不能讓系統(tǒng)運行在最佳工作點、電氣側(cè)電壓電流會不會超出設(shè)備允許范圍。建模的粒度取決于這些問題不是越細越好。學習階段建議從等效電路和穩(wěn)態(tài)模型開始先理解每個輸入輸出關(guān)系再逐步加入損耗、慣性、諧波等動態(tài)特性。1.2 Simulink 的建模邏輯從物理模型到控制模型Simulink 中建模有兩條路線。一條是純數(shù)學建模用函數(shù)、增益、積分器和查找表把系統(tǒng)的微分方程寫出來適合控制算法驗證。另一條是用 Simscape、Simscape Electrical 里的物理模型庫搭電路模塊本身帶有電氣連接端口模擬的是真實導線中的電壓電流關(guān)系。太陽能和風能混合發(fā)電模型通常同時使用這兩條路線。光伏板、Boost 電路和直流負載放在電氣域用物理端口連接MPPT 控制器和風力機的槳距角控制放在信號域輸出的是占空比、參考轉(zhuǎn)速或者槳距角指令。物理域和信號域的連接處需要用到 Simulink-PS Converter 和 PS-Simulink Converter這兩類轉(zhuǎn)換模塊是新手最容易漏掉的。不要把物理域模型當成普通信號模型拖在一起。電氣模塊的端口之間是物理連接不是數(shù)據(jù)線直接在信號線上接電壓表模塊會報“cannot connect Simulink signal to physical port”一類的錯誤。理解這個區(qū)別后模型結(jié)構(gòu)會清晰很多。1.3 學習環(huán)境和生產(chǎn)環(huán)境的差異學習環(huán)境追求的是跑通流程和理解機理所以風速、光照可以用常量風力機可以用簡化轉(zhuǎn)矩模型。生產(chǎn)級仿真要考慮的東西更多例如風速序列需要用實測數(shù)據(jù)或者湍流模型生成光伏板需要用廠商提供的參數(shù)表標定發(fā)電機需要加入慣性和效率曲線還要考慮保護邏輯和故障注入。維度學習環(huán)境生產(chǎn)級仿真輸入數(shù)據(jù)恒定光照、恒定風速實測氣象數(shù)據(jù)、連續(xù)波動序列模型復雜度等效電路、簡化風機葉片空氣動力學、尾流、多機組、保護邏輯參數(shù)來源默認值或經(jīng)驗值廠家數(shù)據(jù)表、實測標定、系統(tǒng)辨識求解器默認變步長求解器依據(jù)系統(tǒng)時間常數(shù)選擇增加事件檢測結(jié)果用途理解趨勢和原理控制策略驗證、代碼生成、HIL 測試新手在做學習模型時不要過度追求復雜先保證單機模型的輸入輸出正確再開始聯(lián)合仿真。2. 環(huán)境準備和模型庫確認避免案例跑不通2.1 MATLAB/Simulink 版本與工具箱要求搭建太陽能和風能 Simulink 模型之前先確認當前 MATLAB 環(huán)境中是否已經(jīng)安裝了必要工具箱。不同版本的工具箱名稱和模塊路徑會有差異最穩(wěn)妥的方式是在命令窗口執(zhí)行ver確認以下幾個工具箱存在工具箱用途缺失時的表現(xiàn)Simulink基礎(chǔ)建模環(huán)境無法新建模型Simscape物理建?;A(chǔ)庫找不到物理連接端口Simscape Electrical電氣元件、光伏、風機模型找不到 PV Array、Boost 等模塊Simulink Control Design線性化分析和控制設(shè)計部分控制模塊缺失MATLization Coder可選生成 C 代碼僅做仿真階段不一定要用到這里要特別說明Simscape Electrical 是后來整合 Electrical 和 Specialized Power Systems 之后的庫名。舊版本里可能叫 Simscape Power Systems再早一點叫 SimPowerSystems。如果你在瀏覽器搜索模塊資料時看到的是舊名字安裝時要對照當前版本確認模塊是否還在同一個名字的庫里。注意教程里給出的模塊路徑只能作為參考。R2020a 之后版本變動頻率較高如果找不到模塊直接在模型空白處雙擊輸入模塊名搜索比在庫瀏覽器逐級找更高效。2.2 用到的關(guān)鍵模塊庫在搭建模型前先建立一張模塊速查表。新建 Simulink 模型后按下面這些模塊名稱在庫瀏覽器中搜索模塊名稱所屬庫在本文中的用途PV ArraySimscape Electrical / Specialized Power Systems直接使用官方光伏陣列模型Wind TurbineSimscape Electrical 或 Simscape 風力發(fā)電機包風機功率輸出模型Boost ConverterSimscape Electrical光伏輸出升壓配合 MPPTMOSFET / DiodeSimscape ElectricalBoost 電路開關(guān)器件Controlled Voltage SourceSpecialized Power Systems電壓源作為系統(tǒng)電源或替代件Voltage MeasurementSpecialized Power Systems測量母線電壓Current MeasurementSpecialized Power Systems測量支路電流PS-Simulink ConverterSimscape Utilities物理信號轉(zhuǎn)普通信號Simulink-PS ConverterSimscape Utilities普通信號轉(zhuǎn)物理信號Solver ConfigurationSimscape Utilities物理網(wǎng)絡(luò)必須有求解器配置塊MATLAB FunctionSimulink User-Defined Functions編寫 MPPT 控制邏輯ScopeSimulink Sinks查看波形To WorkspaceSimulink Sinks把數(shù)據(jù)導出到 MATLAB 工作區(qū)建議在正式建模前先在模型里拖入一個 Suber Configuration 和一個 PS-Simulink Converter然后隨便連一個電阻負載先跑通一個最小物理網(wǎng)絡(luò)確認版本環(huán)境正常。很多人在光伏模型一開始就報錯其實只是物理網(wǎng)絡(luò)缺少求解器配置塊。2.3 環(huán)境檢查方法和常見問題打開 MATLAB 后在命令窗口依次執(zhí)行ver(simulink) ver(simscape) ver(sps) license(test, Simscape_Electrical)前三條命令能告訴我們工具箱是否安裝。第四條命令返回值是 1 表示許可證可用0 表示不可用。若返回 0需要先激活許可證否則模型即使打開也無法仿真。另一個常見問題是MATLAB 在不同版本之間升級后舊模型里的模塊因為路徑變化而變成未知模塊。打開模型時如果看到bad link或unresolved block的表示多半是模塊庫名稱不匹配。處理方法是找到舊模塊對應(yīng)的新版模塊路徑刪掉原模塊重新拖入并連接。3. 從零搭建光伏電池 Simulink 模型3.1 光伏電池的等效電路和數(shù)學模型光伏電池本質(zhì)上是一個半導體二極管理想的等效模型可以用單二極管等效電路描述。光伏電池在光照下產(chǎn)生電流源 I_ph這個電流經(jīng)過二極管、串聯(lián)電阻 R_s 和并聯(lián)電阻 R_p 之后輸出到外部電路的電流滿足如下關(guān)系I I_ph - I_o * (exp((V I * R_s) / (n * V_t)) - 1) - (V I * R_s) / R_p其中I_ph 是光生電流近似與輻照度成正比。I_o 是反向飽和電流與溫度密切相關(guān)。n 是二極管理想因子。V_t 是熱電壓常溫下約 0.0257 V。R_s 是串聯(lián)電阻影響最大功率點附近曲線形狀。R_p 是并聯(lián)電阻影響開路電壓附近曲線斜率。理解這個公式后在 Simulink 中建??梢杂袃煞N選擇直接用 Simscape Electrical 中的 PV Array 模塊或者用基礎(chǔ)數(shù)學模塊自主搭建方程。學習階段建議先用 PV Array 模塊因為它的內(nèi)部已經(jīng)實現(xiàn)了串并聯(lián)陣列的擴展邏輯不需要自己去處理大量電池串的計算。演示這個數(shù)學方程的意義在于理解每個參數(shù)如何影響 I-V 曲線形狀方便后續(xù)判斷仿真結(jié)果是否合理。3.2 用 PV Array 模塊搭建光伏陣列新建模型后從 Simscape Electrical 庫找到 PV Array 模塊拖入模型。這個模塊有兩個物理端口正極和負極另外還有一個電氣輸出端口可以在仿真中查看光照、溫度和 I-V 數(shù)據(jù)。雙擊 PV Array 模塊進入?yún)?shù)配置界面需要填寫的關(guān)鍵參數(shù)包括參數(shù)示例值含義Maximum Power250 W單塊電池板最大功率Open circuit voltage37.5 V開路電壓 VocVoltage at maximum power30.2 V最大功率點電壓 VmpCurrent at maximum power8.28 A最大功率點電流 ImpSeries cells per module60每塊板串聯(lián)電池片數(shù)量Parallel strings2并聯(lián)的電池板串數(shù)Series modules per string3每串中串聯(lián)的板數(shù)設(shè)置時需要結(jié)合你實際使用的電池板型號。不同的光伏板參數(shù)差異很大如果隨便填仿真結(jié)果可能異常。建議至少從廠家數(shù)據(jù)表找到 Voc、Vmp、Isc 和 Imp 四個指標填進去。PV Array 模塊的“Parameters”頁通常還可以選擇是否輸出模型內(nèi)部的 I-V 和 P-V 曲線。學習階段開啟這個輸出方便檢查模塊內(nèi)部計算是否正常。3.3 為光伏陣列連接負載和測量光伏陣列需要接一個可變負載來觀察 I-V 曲線。簡單做法是直接在 PV Array 正負極之間接一個可變電阻或常電阻。推薦做法是接 Boost 直流變換器這樣后續(xù)才能做 MPPT 控制。先把模型搭成最小結(jié)構(gòu)在 PV Array 輸入端接入一個光照和溫度信號信號通過 Simulink-PS Converter 轉(zhuǎn)成物理信號。PV Array 輸出正極接 Boost 電路輸入端Boost 輸出端接直流負載電阻。用 Voltage Measurement 和 Current Measurement 分別在 PV Array 輸出端測量電壓和電流。用 PS-Simulink Converter 轉(zhuǎn)成普通信號后接入 Scope 和 To Workspace。連接完成后的模型應(yīng)該包含一個物理網(wǎng)絡(luò)和至少一個 Solver Configuration。每個物理網(wǎng)絡(luò)區(qū)域都必須有 Solver Configuration這是 Simscape 物理網(wǎng)路的限制。3.4 參數(shù)配置和物理意義光伏電池溫度對輸出電壓影響很明顯。常溫 25 度時光伏板輸出特性相對理想溫度升高后開路電壓會下降最大功率點電壓也會降低。在 PV Array 模塊的輸入端口光照單位是 W/m2溫度單位是攝氏度使用時要注意不要填成開爾文。這里給出一個典型參數(shù)組合用于學習階段的驗證% 在 MATLAB 命令窗口定義氣象輸入 G 1000; % 光照強度 W/m2 T 25; % 溫度 攝氏度在模型里把這兩個值用 Constant 模塊設(shè)置通過 Simulink-PS Converter 接入 PV Array 的氣象輸入口。運行仿真后觀察 PV Array 的 I-V 和 P-V 輸出曲線應(yīng)該看到開路電壓大約在 37 V 到 40 V 之間。短路電流大約在 8 A 到 9 A 之間。最大功率點出現(xiàn)在電壓約為 30 V 的位置功率接近標注的最大功率 250 W。如果這些值和模塊參數(shù)設(shè)定差不多說明模型基本正確。否則需要檢查輻照度、溫度和模塊參數(shù)尤其是并聯(lián)串數(shù)設(shè)置。4. 搭建風力發(fā)電 Simulink 模型4.1 風能提取過程與 Cp 曲線風機葉輪從風中提取的機械功率可以用下面的通用公式表示P 0.5 * rho * A * Cp(lambda, beta) * v^3其中rho 是空氣密度標準大氣壓約 1.225 kg/m3。A 是風輪掃掠面積A pi * R^2R 是葉輪半徑。v 是風速單位 m/s。Cp 是風能利用系數(shù)最大值理論上不超過貝茲極限 0.593實際風機的 Cp 通常在 0.35 到 0.48 之間。lambda 是葉尖速比lambda omega * R / v。beta 是槳距角單位是度。Cp 并不是一個常數(shù)它隨葉尖速比和槳距角變化。Simulink 中建模時可以把 Cp 寫成查找表也可以通過公式近似計算。一個常見的近似公式為lambda_i 1 / (1 / (lambda 0.08 * beta) - 0.035 / (beta^3 1)) Cp 0.22 * (116 / lambda_i - 0.4 * beta - 5) * exp(-12.5 / lambda_i)在 Simulink 中實現(xiàn)這個公式時要注意 lambda 的分母不能為 0。初始狀態(tài)下風速如果為 0葉尖速比會變成無窮大仿真容易報錯。建議在風速輸入處加一個最小值限制比如風速不能低于 0.1 m/s。4.2 風力機傳動鏈和發(fā)電機簡化模型如果不關(guān)心風輪內(nèi)部應(yīng)力只關(guān)心風力發(fā)電系統(tǒng)對外輸出的功率可以采用簡化模型風力機模塊輸入風速 v 和葉輪轉(zhuǎn)速 omega。根據(jù)風速和葉輪半徑計算葉尖速比 lambda。根據(jù) lambda 和槳距角 beta 查表得到 Cp。由公式計算出機械功率 P。用 P 除以轉(zhuǎn)速 omega 得到機械轉(zhuǎn)矩 T。將轉(zhuǎn)矩接入發(fā)電機模型發(fā)電機輸出電功率和轉(zhuǎn)速。在 Simulink 中可以這樣搭建用 Constant 或者 Signal Builder 設(shè)置風速輸入 v。用 Gain 模塊計算葉尖速比 lambda注意單位換算。用 MATLAB Function 或者 2-D Lookup Table 實現(xiàn) Cp(lambda, beta)。用 Product 模塊計算機械功率。用 Divide 模塊把功率轉(zhuǎn)換成轉(zhuǎn)矩。轉(zhuǎn)矩信號連接一個發(fā)電機電氣模型或者連接 Simscape 中的永磁同步發(fā)電機模塊。風機建模時最容易出錯的單位問題集中在葉輪轉(zhuǎn)速。資料中經(jīng)常給出的是 rad/s但實際風機控制器通常使用 rpm。換算關(guān)系為omega_rad omega_rpm * 2 * pi / 60如果不換算計算出的葉尖速比會偏移真實值之后查表得到的 Cp 也會錯誤最終功率完全不對。4.3 風速輸入和單位處理學習階段可以用常量風速跑通流程例如設(shè)定風速為 10 m/s。但是要觀察風機的動態(tài)響應(yīng)更好的做法是用 Signal Builder 或者 From Workspace 模塊輸入一條波動的風速曲線。在 MATLAB 命令窗口生成一段風速數(shù)據(jù)t 0:0.01:60; v 8 2 * sin(0.2 * t) 0.5 * randn(size(t)); v(v 0.1) 0.1;然后在 Simulink 模型中使用 From Workspace 模塊在參數(shù)中填寫變量名v并設(shè)置采樣時間。這樣風速就會隨時間變化風力機功率也會跟著波動波形更接近實際場景。需要特別注意單位統(tǒng)一。風力機公式中的半徑 R 單位是米風速單位是 m/s轉(zhuǎn)速單位是 rad/s空氣密度單位是 kg/m3。只要其中一個單位用錯功率可能差出成千上萬倍。建議在模型里用注釋塊記錄每個輸入輸出的單位。Simulink 允許在信號線上右鍵顯示信號名稱建議把所有信號的名稱和單位寫清楚排查時可以少走很多彎路。5. 接入直流母線太陽能和風能聯(lián)合仿真5.1 聯(lián)合模型的總體結(jié)構(gòu)光伏模型和風機模型分別搭建完成后可以通過直流母線把它們組合成一個混合發(fā)電系統(tǒng)。最簡單的拓撲結(jié)構(gòu)如下光伏陣列經(jīng)過 Boost 變換器連接到直流母線。風機經(jīng)過整流器連接到同一根直流母線。母線側(cè)接一個直流負載模擬實際用電設(shè)備。在聯(lián)合模型中每個單元獨立輸出功率直流母線電壓由兩個電源和負載之間的能量平衡決定。如果光伏和風機總輸出功率大于負載需求母線電壓會升高如果總輸出功率小于負載需求母線電壓會下降。為了方便學習可以先不讓兩個模型之間有任何協(xié)調(diào)控制直接用直流負載通過示波器觀察母線電壓、電流和各個單元的輸出功率。先確定基礎(chǔ)電路能穩(wěn)定運行再加入 MPPT 控制。5.2 Boost 變換器和 MPPT 控制Boost 變換器放在光伏陣列和直流母線之間作用是提升光伏輸出電壓同時通過占空比控制實現(xiàn)最大功率點跟蹤。Boost 電路輸出電壓與輸入電壓的關(guān)系為Vout Vin / (1 - D)其中 D 是開關(guān)管的占空比取值范圍 0 到 1。通過改變占空比可以改變光伏陣列的工作電壓。MPPT 控制器的作用就是不斷調(diào)整 D使光伏陣列的實際工作電壓向最大功率點電壓靠近。使用 Simscape Electrical 庫中的 MOSFET、Diode、Inductor 和 Capacitor 搭建 Boost 電路時需要至少一個脈沖信號源或者 PWM Generator 模塊驅(qū)動 MOSFET。占空比來源可以是 Constant 模塊也可以是 MPPT 控制器的輸出。一個最簡單的擾動觀察法 MPPT 用 MATLAB Function 實現(xiàn)function Dref MPPT_PO(V, I, D_prev, dD, P_prev, V_prev) P V * I; dP P - P_prev; dV V - V_prev; if dP 0 if dV 0 Dref D_prev dD; else Dref D_prev - dD; end else if dV 0 Dref D_prev - dD; else Dref D_prev dD; end end if Dref 0.9 Dref 0.9; elseif Dref 0.1 Dref 0.1; end end這個 MPPT 的核心邏輯是一點一點試探占空比觀察功率變化的方向從而判斷最大功率點在哪個方向。實際項目中還可以采用增量電導法效果更穩(wěn)定但擾動觀察法在仿真階段已經(jīng)足夠說明控制思路。Boost 參數(shù)選擇方面學習階段可以按以下典型值設(shè)置元件示例值說明電感 L5 mH電感越大電流紋波越小但響應(yīng)變慢電容 C_in470 uF輸入側(cè)濾波電容電容 C_out1000 uF輸出側(cè)濾波電容開關(guān)頻率10 kHz對應(yīng) PWM Generator 的載波頻率負載電阻50 歐姆學習階段使用固定阻值負載5.3 仿真配置與求解器設(shè)置聯(lián)合仿真涉及的物理網(wǎng)絡(luò)包含電力電子開關(guān)仿真速度會受到很大影響。求解器選擇需要權(quán)衡精度和速度。對新能源發(fā)電仿真推薦使用ode23tb或ode15s。原因是電力電子開關(guān)在 PWM 頻率高時會形成高頻振蕩和快速瞬態(tài)變步長剛性求解器可以自動調(diào)整步長避免步長過小導致仿真卡死。在模型配置中設(shè)置求解器參數(shù)set_param(solar_wind_hybrid, Solver, ode23tb); set_param(solar_wind_hybrid, MaxStep, 0.01); set_param(solar_wind_hybrid, RelTol, 1e-3);Simulink 仿真時間通常設(shè)置為 20 到 60 秒。如果步長設(shè)置得太小仿真會非常慢如果太大開關(guān)瞬態(tài)會被忽略波形失真。建議先設(shè)最大步長 0.01 秒觀察波形是否有明顯振蕩再逐步調(diào)整。注意如果模型里同時存在 Simscape 物理網(wǎng)絡(luò)和普通信號模塊仿真時間太短會導致物理網(wǎng)路沒有進入穩(wěn)態(tài)看不到正確的功率輸出。建議先運行至少 5 秒讓直流母線電容完成充電。6. 運行仿真并分析結(jié)果6.1 運行步驟完成模型搭建后按照下面順序運行仿真在 MATLAB 命令窗口定義氣象輸入變量例如光照 800 W/m2、溫度 25 度、風速 10 m/s。打開模型檢查所有物理端口是否正確連接物理網(wǎng)絡(luò)是否有 Solver Configuration。設(shè)置仿真停止時間例如 30 秒。點擊 Run 按鈕運行仿真。仿真結(jié)束后打開 Scope 查看波形。把關(guān)鍵信號用 To Workspace 導出在 MATLAB 中分析平均值和曲線。如果仿真過程中出現(xiàn)Simulink cannot solve the algebraic loop一類的錯誤先在信號鏈路上找到代數(shù)環(huán)使用 Unit Delay 模塊打斷代數(shù)環(huán)或者調(diào)整初始化條件。6.2 預期波形與結(jié)果含義學習模型中假設(shè)選擇一塊 250 W 光伏板和一臺功率約 3 kW 的簡化風力機在光照 800 W/m2、風速 10 m/s 的條件下你可以看到這些結(jié)果觀測點預期趨勢說明光伏輸出電壓穩(wěn)定在最大功率點電壓附近約 27 到 31 V 之間隨 MPPT 擾動有小幅波動光伏輸出電流接近最大功率點電流光照下降時電流下降光伏輸出功率250 W 到 300 W 之間光照低于標準工況時功率比額定值低風機輸出功率在幾千瓦量級波動取決于 Cp 查表結(jié)果和風速變化直流母線電壓高于光伏輸出電壓由 Boost 電路占空比決定負載電流隨母線電壓變化負載電阻固定時電流與電壓成正比如果光伏輸出功率嚴重偏離額定值例如只有 10 W優(yōu)先檢查光照輸入和 PV Array 的串并聯(lián)參數(shù)不要急著懷疑 MPPT 控制。如果風機輸出功率接近零優(yōu)先檢查葉輪半徑、風速單位和 Cp。再強調(diào)一次上述具體數(shù)值只是示例說明實際模型的功率取決于你設(shè)置的參數(shù)。關(guān)鍵是觀察趨勢是否合理。6.3 如何把數(shù)據(jù)導出到 MATLAB 工作區(qū)Simulink 自帶的 Scope 適合快速查看但要做數(shù)值分析還是要把數(shù)據(jù)導出。常用兩種方式方式一在 Scope 中點擊設(shè)置按鈕勾選“Save data to workspace”把數(shù)據(jù)存儲為結(jié)構(gòu)體或數(shù)組。方式二直接使用 To Workspace 模塊把要分析的信號引入模塊并設(shè)置 Variable Name。例如變量名Vpv數(shù)據(jù)類型選擇 Array。變量名Ppv數(shù)據(jù)類型選擇 Structure With Time。仿真結(jié)束后在 MATLAB 中繪制光伏功率曲線figure; plot(Ppv.time, Ppv.signals.values); grid on; xlabel(時間 (s)); ylabel(光伏輸出功率 (W)); title(光伏輸出功率變化曲線);導出到 Excel 也很簡單T table(Ppv.time, Ppv.signals.values, VariableNames, {Time, Ppv}); writetable(T, pv_power_result.xlsx);這種方式便于后續(xù)寫報告、做對比也方便把仿真結(jié)果和實測數(shù)據(jù)放在同一個坐標系里比較。7. 常見問題排查7.1 現(xiàn)象光伏輸出功率一直為 0 或很小可能原因不止一種按下面順序排查光照輸入是否被設(shè)為 0或者 Simulink-PS Converter 的參數(shù)單位不正確。PV Array 的模塊參數(shù)是否被錯誤設(shè)置比如并聯(lián)串數(shù)設(shè)為 0。負載是否過重導致光伏輸出電壓被拉得很低工作在短路點附近。測量信號是否在物理世界和信號世界之間缺少轉(zhuǎn)換模塊。MPPT 占空比是否被限制在 0.1 到 0.9 之外。檢查方式是在 PV Array 的輸出測量端加一個 Scope直接看輸出電壓和電流。如果電壓接近 0說明負載太重或 Boost 輸入短路如果電壓接近開路電壓說明功率沒有被有效取出。7.2 現(xiàn)象仿真速度極慢或卡住仿真慢通常和求解器配置、電力電子開關(guān)頻率、模型中的代數(shù)環(huán)有關(guān)。排查順序把 MaxStep 從 1e-5 調(diào)大到 0.01 秒看速度是否明顯提升。降低 PWM 載波頻率從 10 kHz 降到 5 kHz觀察波形是否可接受。檢查是否存在代數(shù)環(huán)找到信號回路后用 Unit Delay 打斷。檢查模型里是否有不必要的高頻連續(xù)模塊例如純微分模塊盡量改用積分形式或傳遞函數(shù)。如果模型里包含 Simscape Electrical 的電力電子仿真天然比純信號模型慢這是正常的不要追求極快的仿真速度而是以能觀察到正確動態(tài)過程為準。7.3 現(xiàn)象風機功率異常甚至出現(xiàn)負值風機功率出現(xiàn)負值的常見原因有風速輸入接近 0葉尖速比計算溢出Cp 查表返回異常值。葉輪轉(zhuǎn)速方向與實際風速方向不一致。機械功率公式中空氣質(zhì)量 rho 與掃掠面積 A 的單位錯誤。發(fā)電機轉(zhuǎn)矩方向設(shè)反。檢查時先看風速是否為 0再看葉尖速比波形是否連續(xù)。如果葉尖速比在風速很低時出現(xiàn)尖峰說明需要加最小風速限制或者用查表方式限制 Cp 范圍。建議在 MATLAB Function 中增加保護邏輯if lambda 0.1 || lambda 15 Cp 0; else Cp 0.22 * (116 / lambda_i - 0.4 * beta - 5) * exp(-12.5 / lambda_i); Cp max(Cp, 0); end這樣能避免仿真中因為除零或查詢越界導致功率突變。7.4 排查清單問題現(xiàn)象常見原因檢查方式處理建議光伏功率為 0光照為 0 或負載配置錯誤Scope 查看電壓電流檢查輻照度并調(diào)整負載直流母線電壓異常Boost 占空比不合適查看開關(guān)占空比檢查 MPPT 輸出限幅風機功率負值葉尖速比溢出或 Cp 越界查看 lambda 曲線對 lambda 加范圍限制仿真太慢求解器步長太小查看仿真日志調(diào)大 MaxStep 或降低開關(guān)頻率物理端口連接報錯混用信號線和物理線查看錯誤提示類型加入轉(zhuǎn)換模塊代數(shù)環(huán)錯誤信號環(huán)路上無延遲使用代數(shù)環(huán)探測工具加入 Unit Delay 或 Memory 模塊模型無法打開工具箱版本不匹配查看 bad link 提示替換新版本模塊路徑這組排查順序也適用于其他 Simscape 物理模型。先確認輸入再確認參數(shù)然后看波形最后查日志不盲目改參數(shù)。8. 最佳實踐與擴展方向8.1 建模規(guī)范清單新能源仿真項目時間跨度長模型會反復修改。下面這些規(guī)范建議直接套用。第一所有輸入信號使用有意義的名稱。不要用默認的 Gain、Constant 命名改成Irradiance_pu、Temperature_C、WindSpeed_mps這種能直接看出物理量、單位和用途的名稱。第二把模型按系統(tǒng)拆成子系統(tǒng)。光伏系統(tǒng)、風機系統(tǒng)、MPPT 控制器、負載分別封裝成獨立的 Subsystem子系統(tǒng)之間只通過明確的接口信號相連不要在一個層級把所有模塊堆在一起。第三在模型畫布中使用注釋塊記錄關(guān)鍵參數(shù)和公式來源。例如寫出 Boost 電路公式、Cp 公式方便后來的人快速理解也方便自己一個月后回來看。第四仿真前先做靜態(tài)檢查。使用 Simulink 的 “Model Advisor” 或手動檢查所有信號是否都有單位和來源所有物理網(wǎng)絡(luò)是否都有 Solver Configuration。第五建立一組基準測試用例。比如光照 1000、800、600 W/m2風速 8、10、12 m/s記錄每組條件下模型的穩(wěn)態(tài)輸出。后續(xù)修改參數(shù)時只要運行這組用例就能快速判斷改動是否破壞原有功能。8.2 擴展方向從建模仿真走向工程落地如果學習模型已經(jīng)能夠穩(wěn)定運行下一步可以朝幾個方向擴展第一加入儲能系統(tǒng)。太陽能和風能都有間歇性混合發(fā)電系統(tǒng)通常要配蓄電池或超級電容。在 Simscape Electrical 中有 Battery 模塊可以和現(xiàn)有直流母線連接實現(xiàn)功率平抑邏輯。第二加入負荷模型和并網(wǎng)逆變器。把直流母線接到逆變器后可以分析并網(wǎng)時的電流質(zhì)量、功率因數(shù)和諧波這也是工程上非常關(guān)注的點。第三從模型生成代碼。Simulink 中的控制部分可以使用 Embedded Coder 生成 C 代碼部署到 DSP、ARM 或 PLC 中。更復雜的整機測試需要做 SIL軟件在環(huán)、PIL處理器在環(huán)和 HIL硬件在環(huán)驗證但第一步是把手寫 MPPT 改用 Stateflow 或 Simulink 原生模塊規(guī)范表達。第四用 App Designer 做仿真控制界面。在 MATLAB App Designer 中創(chuàng)建按鈕和輸入框把 Simulink 模型封裝成可交互的仿真工具設(shè)置光照、風速后點擊仿真按鈕再把 Scope 結(jié)果展示在界面上。這適合做課程設(shè)計、項目展示和內(nèi)部工具。8.3 給新手的練習建議如果你是第一次接觸這類模型建議不要直接運行一個別人做好的復雜風電系統(tǒng)而是按下面順序練習先用 Simscape Electrical 搭一個最簡單的直流電源加電阻負載正確連接物理端口。把直流電源換成 PV Array 模塊在固定光照下觀察 I-V 曲線。給 PV Array 加 Boost 電路手動設(shè)置占空比觀察輸出電壓變化。用 MATLAB Function 寫 MPPT從固定光照切入變化光照場景。用簡化公式搭風機轉(zhuǎn)矩模型先用恒定風速自動跑通。再接入直流母線做聯(lián)合仿真。這個順序能夠保證每一步的失敗點都不會太多。如果直接從聯(lián)合仿真開始一旦波形不對你甚至說不清楚是光伏錯了、風機錯了還是控制錯了。小規(guī)模仿真可以先在學習環(huán)境里快速驗證生產(chǎn)級項目再考慮數(shù)據(jù)標定、模型驗證和代碼生成。太陽能和風能 Simulink 模型并不是越復雜越好能夠用穩(wěn)定、可復現(xiàn)的方式解釋系統(tǒng)行為比堆砌模塊更有價值。