光储直流微网双向dcdc的MATLAB仿真 工况1:光伏发电能量需求能量多余能量存入蓄电池 工况2:光伏发电能量需求能量蓄电池或超级电容储能单元释放能量补充不足。 工况3:光伏发电单元瘫痪由储能单元单独供电。 1.可始终维持光伏发电的最大功率追踪MPPT。 2.蓄电池充电放电时双向buckboost均采用双闭环控制即:直流母线电压外环蓄电池放电电流内环。 在光照变化和负载突变过程中可始终维持直流母线电压的稳定。 3.可始终维持直流母线电压的稳定在220V。 4. 整个电路包括:pv数学模型mpptboost电路双向dcdcbuckboost蓄电池双闭环控制等。最近在实验室折腾光储直流微网系统用MATLAB/Simulink搭了个双向DCDC的仿真模型。今天主要聊聊三种典型工况下的系统响应特别是光伏和储能单元的配合机制。先放个系统总架构图镇楼示意图自己脑补反正就是PV接Boost储能接Buck-Boost中间怼着220V母线PV建模与MPPT的骚操作直接上代码更带劲function Pv_Model % 经典的单二极管模型 Iph 8.2; % 光生电流 Rs 0.05; % 串联电阻 Rsh 100; % 并联电阻 Vt 1.23; % 热电压 Id (V) Iph - (V Rs*Iph)/(Rsh*(1 Rs/Rsh))... - 0.0002*(exp((V Rs*Iph)/Vt) -1); V_range 0:0.1:40; plot(V_range, arrayfun(Id, V_range).*V_range); title(PV特性曲线); end这曲线出来之后MPPT用扰动观察法实现。关键在步长自适应——辐照度突变时敢放大步子接近最大功率点时猥琐小碎步。实测中发现传统固定步长在云层快速变化时容易震荡改成根据dP/dV动态调整后稳如老狗。光储直流微网双向dcdc的MATLAB仿真 工况1:光伏发电能量需求能量多余能量存入蓄电池 工况2:光伏发电能量需求能量蓄电池或超级电容储能单元释放能量补充不足。 工况3:光伏发电单元瘫痪由储能单元单独供电。 1.可始终维持光伏发电的最大功率追踪MPPT。 2.蓄电池充电放电时双向buckboost均采用双闭环控制即:直流母线电压外环蓄电池放电电流内环。 在光照变化和负载突变过程中可始终维持直流母线电压的稳定。 3.可始终维持直流母线电压的稳定在220V。 4. 整个电路包括:pv数学模型mpptboost电路双向dcdcbuckboost蓄电池双闭环控制等。双向Buck-Boost双闭环实现蓄电池充放电控制是重头戏先看电压外环classdef VoltageController handle properties Kp 0.8; Ki 15; Integral 0; V_ref 220; end methods function I_ref update(obj, V_dc, dt) error obj.V_ref - V_dc; obj.Integral obj.Integral error*dt; I_ref obj.Kp*error obj.Ki*obj.Integral; % 抗饱和处理 if I_ref 50 I_ref 50; obj.Integral obj.Integral - error*dt; end end end end电流内环用了个带前馈的PI响应速度必须比外环快3-5倍。仿真时故意给负载来个阶跃突变母线电压波动控制在±3%内才算合格。这里有个坑蓄电池等效内阻会影响环路稳定性调试时发现当SOC低于20%时需要把电流环的Kp提高约30%才能维持动态性能。工况切换的暗黑逻辑光伏过剩时Boost电路占空比锁定在MPPT点多余电流通过双向DCDC给电池充电。这时候电流环的参考方向要切换代码里用符号判断实现if I_pv I_load mode Charge; I_bat_ref (I_pv - I_load) * 0.95; % 留5%裕量 else mode Discharge; I_bat_ref (I_load - I_pv) * 1.05; % 略微过补偿 end光伏扑街时直接切断PV支路双向DCDC进入boost模式硬扛全部负载。这时候最考验控制器的鲁棒性实测从正常切换到故障模式时母线电压会有个50ms左右的跌落需要加入负载电流前馈补偿。魔改版双环控制波形赏析此处假装有Scope截图光照突变时MPPT跟踪曲线像德芙一样丝滑负载从50%突增到100%瞬间母线电压抖了一下又立马稳住电池从充电切放电时的电流过冲控制在8%以内最后说个血泪教训别在同一个仿真步长里同时运行MPPT算法和PWM生成两者频率相差太大容易数值振荡。建议用MATLAB的Rate Transition模块做隔离或者直接分多速率任务处理。