Arduino 太阳能MPPT控制器设计参考

原文参考链接:https://www.instructables.com/ARDUINO-SOLAR-CHARGE-CONTROLLER-Version-30/

基础知识

  1. 适用于50W太阳能电池板为12V铅酸电池充电
  2. 目前市场上最先进的太阳能充电控制器是最大功率点跟踪(MPPT),与早期的充电控制器相比,其优点为:
    • 在低温下的效率提高了30%~40%,但与PWM充电器相比,MPPT充电控制器的制作比较复杂。
  3. MPPT电路基于同步降压转换器电路,将较高的太阳能电池板电压降低到电池的充电电压。Arduino通过控制占空比来最大化太阳能电池板的输入功率,以保持太阳能电池板在其最大功率点运行。
  4. 应具有过压保护
  5. 设计参考2:https://microcontrolere.wordpress.com/2016/12/16/mppt-solar-charger/

Basics on MPPT Charge Controller

MPPT充电控制器,用于在特定条件下从PV模块提取最大可用功率。
同步降压转换器:
开关频率与电感和电容的大小成反比,与MOSFET的开关损耗成正比。频率越高,电感和电容的尺寸越小,但开关损耗越高。
电感频率选用50Khz

设计计算

Assume We are designing for a 50W solar panel and 12V battery

  • Input voltage (Vin) =15V
  • Output Voltage (Vout)=12V
  • Output current (Iout) =50W/12V =4.16A = 4.2A (approx)
  • Switching Frequency (Fsw)=50 KHz
  • Duty Cycle (D) =Vout/Vin= 12/15 =0.8 or 80%
    电感Calculation
    L= ( Vin-Vout ) x D x 1/Fsw x 1/ dI
    上式中,dI为纹波电流,对于良好的设计,纹波电流的典型值在负载电流的30%~40%
  • Let dI =35% of rated current,dI=35% of 4.2=0.35 x 4.2 =1.47A
  • So L= (15.0-12.0) x 0.8 x (1/50k) x (1/1.47) = 32.65uH =33uH (approx)
  • Inductor peak current =Iout+dI/2 = 4.2+(1.47/2) = 4.935A = 5A (approx)
    So we have to buy or make a toroid inductor of 33uH and 5A.
    电容计算
    需要输出电容以最小化降压转换器输出端的电压过冲和纹波,大的过冲是由输出电容不足引起的。
  • The out put capacitor ( Cout)= dI / (8 x Fsw x dV)
    dV是纹波电压,Let voltage ripple( dV ) = 20mV
  • Cout= 1.47/ (8 x 50000 x 0.02 ) = 183.75 uF
  • By taking some margin, I select 220uF electrolytic capacitor.
    MOS选择
  1. Voltage Rating: Vds of MOSFET should be greater than 20% or more than the rated voltage.
  2. Current Rating: Ids of MOSFET should be greater than 20% or more than the rated current.
  3. ON Resistance (Rds on): Select a MOSFET with low ON Resistance (Ron)
  4. Conduction Loss: It depends on Rds(ON) and duty cycle. Keep the conduction loss minimum.
  5. Switching Loss: Switching loss occurs during the transition phase. It depends on switching frequency, voltage, current, etc. Try to keep it a minimum.
    在假设设计50W的太阳能MPPT控制器中,voltage(Voc) which is nearly 21 to 25V and the maximum load current is 5A,I have chosen the IRFZ44N MOSFET. The Vds and Ids value has enough margin as well as it has low Rds(On) value.
    MOS驱动器选择
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sp1sf0Zs-1676817679812)(null)]
    MOS驱动器允许来自控制器的低电流数字输出信号驱动MOS的栅极,5V数字信号可以使用驱动器切换高压MOS。
    Vout = Duty Cycle x Vin
    For example, if I give a 50% duty cycle to a 12 input supply, the output should be 6V in the scope.
    电压测量

    对于分压电路:
    Vout = R2/(R1+R2) x Vin
    Vin = (R1+R2)/R2 x Vout


参考2(重要)

https://microcontrolere.wordpress.com/2016/12/16/mppt-solar-charger/

接下来3个项目是博主推荐的链接

1.Arduino powered solar battery charger

原文链接:https://www.instructables.com/Arduino-powered-Solar-Battery-Charger/
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TcMOtWJo-1676817681208)(null)]
电流检测传感器采用ACS712
Q2是降压转换器的主开关MOSFET,Q3是同步开关MOSFET。MOSFET由U2驱动,U2是IR2104 MOSFET驱动器。IR2104从引脚2上的Arduino输入端获取PWM信号(Digital_pin_9),并使用它来驱动开关MOSFET。IR2104也可以通过将引脚3设置为低来关闭。由于Q2是NFET,它需要比作为太阳能输入的源电压高10V的栅极驱动电压。因此,IR2104使用由D2和C6制成的电荷泵电路来提升栅极驱动电压,以打开高侧MOSFET。D3是一个快速开关二极管,它应该在Q3之前开始导通,从而提高效率(增加1-2%)。
Q1防止电池在夜间放电。当Q2从电压通过D1导通时,Q1导通。R4将Q1栅极的电压耗尽,因此当Q2关断时。
L1是平滑开关电流和C8平滑输出电压的主电感器。
为了测量电池和太阳能电池板电压R2、R3、C1和R6,R7、C9被设置为分压器。在这种情况下,电容器C1和C9平滑信号中的任何脉冲,并向ADC提供干净的测量。C4是平滑任何输入电流脉冲的输入滤波电容器。
为了测量电池和太阳能电池板电压R2、R3、C1和R6,R7、C9被设置为分压器。在这种情况下,电容器C1和C9平滑信号中的任何脉冲,并向ADC提供干净的测量。C4是平滑任何输入电流脉冲的输入滤波电容器。
为了读取系统中的电流,有一个R分流电阻器。U1将两端的电压降放大100倍,并馈送给Arduino的ADC。
3个LED连接到微控制器的数字引脚,并用作显示充电状态的输出接口。
代码原理

  • 将当前输出功率与上一时刻进行对比,调节输出的PWM
  • 最大占空比设置为99.9%

ARDUINO SOLAR CHARGE CONTROLLER ( Version 2.0)

https://www.instructables.com/ARDUINO-SOLAR-CHARGE-CONTROLLER-Version-20/

本文作者的设计

猜你喜欢

转载自blog.csdn.net/qq_45355603/article/details/129116049