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