Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Buck/boost MPPT battery charger for solar/wind, 4-switch single-inductor

Status
Not open for further replies.

Boloar

Junior Member level 1
Joined
May 2, 2013
Messages
17
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,462
So I had an idea. Inspired by Tim Nolan's design, I want to build an Arduino-powered buck/boost battery charger capable of MPPT on solar or wind DC input.

I tried building/testing a small 4-switch single-inductor buck/boost but I blew a couple of capacitors on the output. My understanding is - this was because, while switching one side (buck xor boost), I was unable to supply a 100% duty cycle to the opposite side. The interference of the PWMs on both sides caused some serious current/voltage spikes. So I thought of this: (note, this is just a mockup, I need to settle on good MOSFET choices and drivers and such)
Capture.PNG

Basic idea:
  • Input: Solar panel or rectified wind turbine output.
  • Vin, Iin for input power tracking, and Vout for battery level checking
  • Blocking MOSFET instead of diode to avoid the voltage drop. Is NMOS or PMOS better here (M5)?
  • H-bridge with NMOS/PMOS setup so there's never a short and (I think) simplifies driving circuitry. The project Tim Nolan did (see link in first paragraph) uses a 50kHz PWM. I would like to use logic-level MOSFETs, but will I be able to switch them at 50kHz from the Arduino? Is it better to have the NMOS or PMOS on the high side?
  • 2-to-1 multiplexer set up so that if one side is receiving a PWM signal, the other side is fully ON and not interfering with the power flow. So just one PWM signal is needed (in this case, Arduino using the Timer1 library). Freeing other pins for SD datalogging, communications, alternator RPM measurement, whatever.
  • Output: A (lead acid) battery will be connected to the output, which will pretty much prevent the output voltage from actually changing, but the MOSFET switching should be able to match the impedance (is that the correct terminology?) to the input and extract maximum power.

I'm fairly certain this is a feasible design. Your input is appreciated, particularly regarding which MOSFETs would be a good choice for scalability. In this case I want to be able to take in a 5-60V input and feed it to a 12 or 24V battery bank. The final design, I think, would be fairly modular requiring only changes to the sense resistors / MOSFET configuration / code calibration to operate at higher power levels.
 

A battery as a load creates a few challenges. Your switching must transition at just the right moment, or else the battery will be able to send current in the reverse direction back through the mosfet.

To ensure that this can never happen, you may decide it's easier to include a diode. And if you include a diode then you might as well construct a conventional buckboost converter. Your convertible buck or boost converter can work, however it has many switching devices. OTOH a conventional buckboost requires only one switching device.

A conventional buckboost will accept your 5-60V supply and charge a 12 or 24V battery, per your specification.
 

A conventional buckboost will accept your 5-60V supply and charge a 12 or 24V battery, per your specification.

I've looked into them - the reason I'm trying to build my own is that ICs with built-in MPPT are few and far between, and expensive to boot. Could you suggest a ready-made IC that could take input from Arduino (or other controller) to perform MPPT during battery charging?
Here's an IC someone suggested, it's an excellent example. Where can I interface it with an external signal to perform MPPT?
https://i.stack.imgur.com/2HvlL.jpg
 
Last edited:

Could you suggest a ready-made IC that could take input from Arduino (or other controller) to perform MPPT during battery charging?

Exactly, anyone? I had the same problem. Genasun is very expensive (USD300) for custom voltage (for my 10-series lithium battery). So, I had to make my own. Efficiency is not that great (around 86-87%), but it does work so far. Details in https://epxhilon.blogspot.com.au/2014/04/bmppt-solar-charger-2.html

My guess the low efficiency is due to my cowboy style air-gapped inductor. I didn't know a diddly-squat about fly-back inductor prior this project of mine.

PS: BOOST only though...
 

I am also working on an inexpensive MPPT solution for solar and other applications. Please feel free to follow this thread:

https://forum.solar-electric.com/sh...esources-MPPT-development-technical-questions

The forum is full of experienced individuals in solar and power electronics. I started the thread and will continue to post info as my project develops. I will first experiment with a buck solution, then consider a buck / boost. It took a moment for me to recognize your topology, but I believe you are trying to do this:

A Novel Two Switch Non-inverting Buck-Boost Converter
based Maximum Power Point Tracking System

as described here:

https://iaesjournal.com/online/index.php/IJECE/article/viewFile/2772/pdf

One concern is that at the insolation point at which you might want to boost from your PV source (say you are getting 10V from your 18V panel), the current has diminished to a trivial level, yielding little advantage to the ability to boost the voltage to charge a 12V battery. That is, unless you were thinking about charging, for ex, a 24 or 48 V battery bank from an 18 V panel in full sun.
And maybe you are trying to build the totally versatile charger (any input, any battery config). But judging from your experience (and mine as well) I would start with a much simpler topology and circuit (as I plan to do) and advance from there.

There are a couple of changes from Tim's circuit I would recommend and I will be discussing them on the aforementioned thread.

I just discovered this forum. Looks great and I will continue to look at it and at this thread. I have enabled others to email me directly if they wish. If you and others want to contact me, then do so and I can keep you abreast of updates. I am keeping everything 'open source' for the benefit of all of us.

Regards.
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top