光伏直流微网储能系统 pv电池模型建立;mppt最大功率点跟踪;控制策略;以及蓄电池储能;另外附模型参考文献! 有需要附带视频讲解 在传统的独立光伏发电系统中,蓄电池直接与直流母线相连接,其充放电电流不能得到有效的控制,当负载突变时,可能导致蓄电池的充放电电流过大,损坏蓄电池;因此有必要在系统直流母线和蓄电池之间插入一个DC-DC变换器以控制蓄电池的充放电。 独立光伏发电系统,由太阳能电池、蓄电池、单向DC-DC变换器和双向DC-DC变换器组成,系统结构较简单,蓄电池充放电共用一个双向变换器来实现,可减轻系统的重量,同时通过双向变换器还可以控制蓄电池充放电电流,有效实现系统能量流动管理。 其核心是根据太阳能电池和蓄电池的工作状态,控制单向变换器和双向变换器分别工作在合适的模式,使得蓄电池和太阳能电池这2种电源协调工作,保证供电系统的正常运行。 因此必须满足以下要求: (1)系统正常运行时,单向变换器工作在最大功率点跟踪(maximum power point tracking,MPPT)模式,如果太阳能电池不足以提供负载所需能量,不足部分由蓄电池通过双向变换器来补充; (2)如果太阳能电池输出能量大于负载所需能量时那么多余的能量通过双向变换器给蓄电池充电; (3)无论光照如何变化,都必须将直流母线电压稳定在一个稳定值附近。
先说PV电池建模。搞个能用的模型其实比想象中简单,记住这个公式就行:
def pv_model(Irrad, Temp): Iph = (Irrad/1000) * (Isc + K_I*(Temp-25)) Vt = (k*Temp)/q * Ns Id = I0*(np.exp((V + Rs*I)/(Vt*a)) - 1) return V, I这代码里的Isc是短路电流,K_I是温度系数,Ns是串联电池数。注意温度变化对输出电压的影响能达到每度0.4%左右,实测时拿个热成像仪怼着面板扫就懂了。
MPPT控制这块,经典的扰动观察法其实够用。看这段实战代码:
float PerturbAndObserve(float V, float I) { static float prev_power = 0; static float delta_V = 0.5; float current_power = V * I; if(current_power > prev_power) { delta_V = (V > prev_V) ? delta_V : -delta_V; } else { delta_V = -delta_V; } prev_V = V; prev_power = current_power; return delta_V; }重点在电压变化步长别设太大,0.5V起步,动态调整才是王道。见过新手设5V步长直接把系统搞振荡的,那场面跟蹦迪似的。
蓄电池控制最骚的操作是用同一个双向DC-DC玩充放电。分享个真实翻车案例:某项目用IR2104驱动H桥,结果死区时间没调好,直接炸了MOS管。后来改成这种状态机才稳定:
def battery_control(v_bus, i_load): if v_bus > 54.6: # 过压时切充电 pwm.duty(calc_charge_current(i_load)) elif v_bus < 48.0: # 欠压时放电 pwm.duty(discharge_mode(i_load)) else: # 正常浮动 pwm.duty(standby)重点是这个54.6V阈值得根据电池类型调整,铅酸和锂电差了十万八千里。亲眼见过把锂电参数套在铅酸电池上,结果充成气球状的惨剧。
光伏直流微网储能系统 pv电池模型建立;mppt最大功率点跟踪;控制策略;以及蓄电池储能;另外附模型参考文献! 有需要附带视频讲解 在传统的独立光伏发电系统中,蓄电池直接与直流母线相连接,其充放电电流不能得到有效的控制,当负载突变时,可能导致蓄电池的充放电电流过大,损坏蓄电池;因此有必要在系统直流母线和蓄电池之间插入一个DC-DC变换器以控制蓄电池的充放电。 独立光伏发电系统,由太阳能电池、蓄电池、单向DC-DC变换器和双向DC-DC变换器组成,系统结构较简单,蓄电池充放电共用一个双向变换器来实现,可减轻系统的重量,同时通过双向变换器还可以控制蓄电池充放电电流,有效实现系统能量流动管理。 其核心是根据太阳能电池和蓄电池的工作状态,控制单向变换器和双向变换器分别工作在合适的模式,使得蓄电池和太阳能电池这2种电源协调工作,保证供电系统的正常运行。 因此必须满足以下要求: (1)系统正常运行时,单向变换器工作在最大功率点跟踪(maximum power point tracking,MPPT)模式,如果太阳能电池不足以提供负载所需能量,不足部分由蓄电池通过双向变换器来补充; (2)如果太阳能电池输出能量大于负载所需能量时那么多余的能量通过双向变换器给蓄电池充电; (3)无论光照如何变化,都必须将直流母线电压稳定在一个稳定值附近。
母线稳压是系统的命根子。推荐用带抗饱和的PID,比普通PID稳得多:
function pid_out = anti_windup_pid(error, Kp, Ki, max_out) persistent integral; if isempty(integral) integral = 0; end integral = integral + Ki * error; if integral > max_out integral = max_out; elseif integral < -max_out integral = -max_out; pid_out = Kp*error + integral; end调参时先把Ki设为零,调Kp到临界振荡,再慢慢加Ki。有个邪道技巧——用手摸散热片温度,发热均匀说明参数调对了。
模型参考方面,Simulink的Simscape Electrical库里的光伏模型准得离谱,但跑起来巨吃资源。实测用PSO算法优化过的等效电路模型,速度能快三倍,精度误差不到2%。蓄电池模型推荐参考《BatteryModelingHandbook》第三章的RC等效电路,比单电容模型靠谱得多。
最后说个血泪教训:千万别在MPPT算法里用浮点运算!早年用STM32F103做定点数计算,采样频率死活上不去。后来改用Q格式定点运算,频率直接从1kHz飙到10kHz,效果立竿见影。