三种步长的MPPT仿真效果对比(变步长、大步长、小步长) ①仿真模型:包含三种仿真。 放在同一个仿真中进行比对 [1]大步长扰动观察法:虽然能够迅速到达最大功率点,但是稳定的时候稳态震荡比较大(如下图) [2]小步长扰动观察法:采用小步长可以改善稳态时震荡的幅度,但是当外界环境发生变化的时候,MPPT响应相对比较慢 [3]变步长扰动观察法:当实际电压与最大功率点电压差值超过25采用大步长来提升响应速度,当10<差值<25,采用设定的系数得到的步长,当差值<10的时候,改用小步长减小震荡,以改善因震荡过大造成的功率损耗。 其中:光伏电池不采用Simulink自带模块,而是参考文献搭建的模型

在光伏系统中,最大功率点跟踪(MPPT)技术至关重要,它能让光伏电池始终在最大功率点附近工作,提升发电效率。今天咱们就来对比下变步长、大步长和小步长这三种步长下 MPPT 的仿真效果。

仿真模型构建

这次的仿真包含三种不同步长策略的仿真,并且都放在同一个仿真环境中进行对比,这样能更直观地看出差异。

光伏电池模型搭建

值得一提的是,咱们的光伏电池模型可不是用 Simulink 自带模块哦,而是参照参考文献搭建的。这就好比做菜,不用现成的调料包,自己动手调配出独特的风味。

大步长扰动观察法

大步长扰动观察法就像短跑选手,速度很快。它能够迅速地跑到最大功率点,但是到达之后,就像刹不住车一样,稳定的时候稳态震荡比较大。想象一下你在跑步,突然一个急刹车,身体肯定会晃荡几下。下面简单用伪代码来示意下这个过程:

# 设定大步长
step_size = large_step 
while True:
    # 获取当前功率和电压
    current_power = get_power() 
    current_voltage = get_voltage() 
    # 扰动电压
    new_voltage = current_voltage + step_size 
    set_voltage(new_voltage) 
    new_power = get_power() 
    if new_power > current_power:
        # 如果功率增大,继续沿相同方向扰动
        step_size = step_size 
    else:
        # 如果功率减小,改变扰动方向
        step_size = -step_size 

这段代码里,我们设定了大步长,然后不断扰动电压,根据功率变化决定后续的扰动方向。但由于步长较大,就容易在最大功率点附近来回“晃荡”,导致稳态震荡大。

小步长扰动观察法

小步长扰动观察法像是个小心翼翼的散步者。采用小步长可以改善稳态时震荡的幅度,就像你慢慢走路,停下来的时候身体晃动幅度肯定小。然而,当外界环境发生变化的时候,它就像反应慢半拍的人,MPPT 响应相对比较慢。同样用伪代码表示:

# 设定小步长
step_size = small_step 
while True:
    current_power = get_power() 
    current_voltage = get_voltage() 
    new_voltage = current_voltage + step_size 
    set_voltage(new_voltage) 
    new_power = get_power() 
    if new_power > current_power:
        step_size = step_size 
    else:
        step_size = -step_size 

和大步长的代码相比,只是步长变小了。小步长虽然能让稳态更平稳,但因为每次扰动幅度小,在外界环境变化需要快速调整时,就显得力不从心。

变步长扰动观察法

变步长扰动观察法结合了两者的优点。当实际电压与最大功率点电压差值超过 25 时,就像看到前面有一大段路要赶,采用大步长来提升响应速度,赶紧奔向最大功率点;当 10<差值<25 时,采用设定的系数得到的步长,稳步前进;当差值<10 的时候,就像快到目的地了,改用小步长减小震荡,以改善因震荡过大造成的功率损耗。伪代码如下:

while True:
    current_power = get_power() 
    current_voltage = get_voltage() 
    max_power_voltage = get_max_power_voltage() 
    voltage_difference = abs(current_voltage - max_power_voltage) 
    if voltage_difference > 25:
        step_size = large_step 
    elif 10 < voltage_difference <= 25:
        step_size = coefficient * voltage_difference 
    else:
        step_size = small_step 
    new_voltage = current_voltage + step_size 
    set_voltage(new_voltage) 
    new_power = get_power() 
    if new_power > current_power:
        step_size = step_size 
    else:
        step_size = -step_size 

这段代码通过判断电压差值来灵活调整步长,既能在远距离时快速接近最大功率点,又能在接近时保持平稳。

三种步长的MPPT仿真效果对比(变步长、大步长、小步长) ①仿真模型:包含三种仿真。 放在同一个仿真中进行比对 [1]大步长扰动观察法:虽然能够迅速到达最大功率点,但是稳定的时候稳态震荡比较大(如下图) [2]小步长扰动观察法:采用小步长可以改善稳态时震荡的幅度,但是当外界环境发生变化的时候,MPPT响应相对比较慢 [3]变步长扰动观察法:当实际电压与最大功率点电压差值超过25采用大步长来提升响应速度,当10<差值<25,采用设定的系数得到的步长,当差值<10的时候,改用小步长减小震荡,以改善因震荡过大造成的功率损耗。 其中:光伏电池不采用Simulink自带模块,而是参考文献搭建的模型

通过对这三种步长的 MPPT 仿真效果对比,我们可以清晰地看到每种方法的优缺点。在实际应用中,就需要根据具体的场景和需求来选择最合适的步长策略,让光伏系统发挥出最大的效能。希望这篇博文能帮助大家对 MPPT 的步长策略有更深入的理解!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐