DC/DC Buck Converter efficiency question

Thread Starter

russpatterson

Joined Feb 1, 2010
353
Hello,

I'm planning to build a buck converter to optimize output of some solar panels (MPPT). I have access to two panels that produce 7 amps at 30V. They were designed to be used in a grid tied system. I'll be charging a 12 volt lead acid battery bank. The 20 volt panels are better suited to this but since I want to do the DC/DC conversion to maximize the power output does it matter what the source voltage is?

Is there a greater loss in efficiency in bucking 30V to 14V than 20V to 14V? Is the efficiency more about the electronics than the amount of change in the voltage? I can get a better price per watt on the 30V panels, so I'm trying to figure out if it's worth the savings.

Thanks.
 

Wendy

Joined Mar 24, 2008
23,408
I may be wrong about this, but I think converting the voltages down is easier than converting them up. There are more expert types than I am though, so I'll leave it at that.
 

SgtWookie

Joined Jul 17, 2007
22,230
How far will you need to run wiring from your solar panel array to your battery bank is a big question that needs to be answered.

If it's an appreciable distance, it may be worthwhile to consider boosting the voltage up considerably higher (in the vicinity of 200-300VDC or VAC), and then down-convert it at your battery bank. Copper wire is doggone expensive nowadays.

30v @ 7A is 210 Watts. If boosted to 300v, only 0.7A current would be required to transfer the same amount of power. Of course, there will be losses due to efficiency of the boost converter, but modern supplies can be surprisingly good at that.

Have a read though this TI Design Review (attached)


"Buck-type" DC-DC converters are simple, but not always the best or most efficient way to go.
 

Attachments

Thread Starter

russpatterson

Joined Feb 1, 2010
353
The panels will be on my roof and I have a total of about 50 feet to where I have the batteries. I have 10guage wire already in place.

I'd like to build a buck converter, then vary the output voltage to maximize power from the panel. Currently I'm struggling to get a simple buck design functioning in a LTSpice simulation correctly.

I read on another thread that it's standard practice to use a PMOS for a buck converter because of the VGS(th) issue. So the gate voltage does not need to be higher than the Source voltage for PMOS?
 

SgtWookie

Joined Jul 17, 2007
22,230
Well, you pay a heavy penalty for using a P-ch power MOSFET; that is a much higher gate charge for an equivalent N-ch power MOSFET (typically about 2.5x as high). It's the "electron flow" vs "hole flow" thing.

Why don't you post your simulation .asc file, and any non-standard components you've added to your library?
 

Thread Starter

russpatterson

Joined Feb 1, 2010
353
Here's the .asc file. I'm brand new to LTspice so I make no claims that I know what I'm doing. My attempt is to simulate a basic buck converter that will take 30 volts down to 10-14 volts at 10 amps. I figured that I'd need at least 83uH in the inductor if I ran the PWM (eventually from a PIC) at 30kHz.

Not sure how to spec the input or output caps so I guessed at 100uF, same method on the diode. I didn't create any new parts for LTSpice yet.

I'd rather use an N-Channel MOSFET but then I'd need to get the gate voltage up over the 30V input voltage and I'm not sure how to do that.

LTSpice looks like a great tool and I'd really like to learn how to use it.

Thanks!
 

Attachments

SgtWookie

Joined Jul 17, 2007
22,230
Here, I've tidied it up a bit and made a few corrections and modifications.

You had the MOSFET upside-down. They really don't work that way.

Note how I had to move the signal to the gate in order for Vgs to swing between 0v and -5v.

I changed the MOSFET to one with a higher gate charge, but a much lower Rds(on). Power dissipation in the previous MOSFET was simply far too high.

I changed the inductor to a model of a real one. I also increased the base frequency to 150kHz, made necessary by the reduction in inductance. 30kHz was really much too low for a 100uH inductor anyway, particularly at those current levels. I also added resistance to the solar panel source.

Note how the current gets way out of control on start-up. You need a "soft start" feature. Also, note how the current trails off as the "battery" gets charged.

You basically need a constant current charge until a threshold voltage has been reached, then an absorption charge phase at a lower voltage for a period of time, and then a "float charge" level. Without knowing the exact batteries you are using, it will be tough to determine the right numbers to use.
 

Attachments

Thread Starter

russpatterson

Joined Feb 1, 2010
353
Thanks a lot for that!

I don't have a definition for the 1N4734 and I don't seem to be able to change the properties of a diode (I'm not sure why that is, I can change properties for the caps, inductors, etc.) So I'm not yet able to run the simulation.

So for the gate voltage getting Vgs to function that way; how would that be done with the PWM output of an MCU?
 

SgtWookie

Joined Jul 17, 2007
22,230
Ahh, OK - sorry about that. You can just go ahead and delete ZD1. I was seeing some some odd artifacts (spikes) on the gate, and was trying to see if a Zener would clamp them.

You'd either need a driver circuit to translate the 0v-5v of the MCU to the Vs (basically, the output of the solar panel) - or have the MCU's ground float 5v below Vs, using a negative 5v regulator (like a 7905 or 337 set up for -5v out.)
 

Thread Starter

russpatterson

Joined Feb 1, 2010
353
I got the simulation working. Very interesting. The panel would never produce more than 7 amps. So I assume the voltage would collapse during that startup phase? Also when it settles down at around 20ms it's only putting out 1 amp. Is there a way to change the supply (Vsolar) in the simulation to reflect the voltage source (panel) characteristics?

I planned on handling the saturation and float charge stages monitoring the output voltage (will be the battery voltage) on the MCU and adjusting the duty cycle to hit the target voltages and times. However for my application there will always be a load on the battery as it will be running a set of pumps 24/7.

As far as constant current goes I think it's best to use as much of the power the panel produces when it's available. So current will fluctuate regularly as the sun tracks across the sky, cloud cover, etc.

Could you use a part like the LT1910 to use an N-channel mosfet as the switch? It claims to support a gate voltage of 75V. I assume you could set it to supply the gate voltage you needed.

Also, is there a reason I can't change the characteristics of diodes in LTSpice like I can for the other components?

I did some searching the soft startup feature and it looked like it entailed circuitry to turn off the switch when voltage exceeded your target threshold. This would an analog circuit since it would need to be much faster than using your MCU for that operation? I'm not real clear on how that would work.
 

SgtWookie

Joined Jul 17, 2007
22,230
I got the simulation working. Very interesting. The panel would never produce more than 7 amps. So I assume the voltage would collapse during that startup phase?
Yep. Did you monitor the voltage on the drain side of the MOSFET?

Keep in mind that your solar panel's power will come on slowly as the sun rises, and fade off gradually as it goes down. Unless an airplane goes overhead or you turn the thing off and back on, you'll seldom see a sharp start-up current spike like that.
Also when it settles down at around 20ms it's only putting out 1 amp. Is there a way to change the supply (Vsolar) in the simulation to reflect the voltage source (panel) characteristics?
I didn't do much "tweaking" on it yet; just wanted to give you something close to what you started with, but help you to understand a few things that weren't quite right.

Placing MOSFETs on a schematic is very easy to goof up when you're in the learning phase. I start out with the gates on the left; and if it's an N-ch MOSFET, the source goes towards the bottom, if a P-channel, the source goes towards the top. About the only time I have gates on the right side is if the circuit makes more sense that way, as in an H-bridge configuration.

I planned on handling the saturation and float charge stages monitoring the output voltage (will be the battery voltage) on the MCU and adjusting the duty cycle to hit the target voltages and times. However for my application there will always be a load on the battery as it will be running a set of pumps 24/7.
Ahh, what kind of pumps? What is their current draw?

As far as constant current goes I think it's best to use as much of the power the panel produces when it's available. So current will fluctuate regularly as the sun tracks across the sky, cloud cover, etc.
Well, sure - but you don't want to overcharge the batteries.

Keep in mind that you may have long periods of time where sunlight just isn't available, like in the rainy seasons. If you let your batteries get discharged too deeply (below ~70%) they will have a short life.

Could you use a part like the LT1910 to use an N-channel mosfet as the switch? It claims to support a gate voltage of 75V. I assume you could set it to supply the gate voltage you needed.
Absolutely; I recommend that you go to an N-ch MOSFET rather than P-ch.

Also, is there a reason I can't change the characteristics of diodes in LTSpice like I can for the other components?
Yes; those components are in:
\Program Files\LTC\SwCADIII\lib\cmp\Standard.dio
I've attached a .zip ed copy of mine; I've added various diodes in.

Exit LTSpice, then rename your Standard.dio file to standard_dio.bak
Then unzip the attached .zip file into your cmp directory.

I did some searching the soft startup feature and it looked like it entailed circuitry to turn off the switch when voltage exceeded your target threshold. This would an analog circuit since it would need to be much faster than using your MCU for that operation? I'm not real clear on how that would work.
Comparators work really well for that sort of thing. You can use an RC time constant on your reference input to slowly ramp up the current.
 

Attachments

Thread Starter

russpatterson

Joined Feb 1, 2010
353
Yep. Did you monitor the voltage on the drain side of the MOSFET?
Yes. The voltage is the same on drain and source of the MOSFET. It oscillates then ramps up inversely proportional to the output current.


Keep in mind that your solar panel's power will come on slowly as the sun rises, and fade off gradually as it goes down. Unless an airplane goes overhead or you turn the thing off and back on, you'll seldom see a sharp start-up current spike like that.
So if I didn't add the soft startup circuitry then it would just spasm for a bit on startup (voltage collapsing then recovering) until things evened out? I have ~140 amp hours in the battery bank so nothing the panel will generate should give it any problems on the rate of charge.



Ahh, what kind of pumps? What is their current draw?
They're Attwood marine bilge pumps. I have three. They draw about 3.2 amps at full power. I have a motor controller on them and usually run just one at a time at about 70% in order to keep the oxygen levels steady for the plants and fish. It's a 20' recirculating stream that I built to take advantage of a natural spring that turned up in my backyard a couple of years ago. I'll attach a picture. I run them on a smaller solar system now that I need to backup with a battery charger. I plan to run them 24/7, one at a time at ~70% power, alternating between pumps. Having the option to run all three when I'm out there.

So if the draw is about 2 amps and I have 7 amps coming in during the sunny times I should do pretty good. In the event when there's stormy weather (like this week) then I plan to run an ATX power supply with the 12V out connected right to the battery. I'll switch on the ATX supply with the PIC when battery voltage goes below 9 volts or so.

Yes; those components are in:
\Program Files\LTC\SwCADIII\lib\cmp\Standard.dio
I've attached a .zip ed copy of mine; I've added various diodes in.
Thanks! So in LTSpice some components, like caps, are generic and you can edit them but some are not editable and you need to make a custom part?
 

Attachments

Last edited:

SgtWookie

Joined Jul 17, 2007
22,230
They draw 3.2A total?

Keep in mind that lead-acid batteries consume energy themselves during the charge/discharge process. For every amp you put in, you might get 0.7A to 0.85A out.

If you get 8 hours of 7A charge, you'll have roughly 39.2A available.

If you have a 12.7V deep-cycle battery, it will have 80% charged at 12.44v and plate sulpation will have begun; it will be 50% discharged when it reads 12.05v at 25°C; and by discharging it that deeply, you will cut it's service life by 2/3.

An ATX form factor computer supply is not suitable for charging batteries without making extensive modifications, or adding external circuitry.

You can add components in the standard.xxx libraries. You can also add symbols to the \sym directory and .sub and/or .lib files in the \sub directory.

the Yahoo! LTSpice Users' Group has lots of models and symbols available for free to download.

I'm short on time now.
 

Thread Starter

russpatterson

Joined Feb 1, 2010
353
I uploaded a new model using an N Channel MOSFET. Besides the oscillations on startup it seems to work pretty good. I can change the duty cycle and alter the output voltage.

Is this oversimplified or can I use pretty much this schematic for the buck section?

I'll need to add the current and voltage sensing on the output and the high-side MOSFET driver.

The pumps draw 3.2A each, at 12V; but I plan to run only one at 2 amps.

My plan for the ATX supply was to run the pump not so much to charge the battery. They can deliver the power, and they're cheap. Is there something aobut the power coming out for the 12 volt out that I don't know about?

My plan is to have 3 of the 205 watt panels so I can use two to run the system (14 amps) if I need to.
 

Attachments

SgtWookie

Joined Jul 17, 2007
22,230
Russ,
I'm in the middle of a long simulation run at the moment.

I've downloaded your new version but can't look at it at the moment.

You can change the duty cycle via software if you're using a uC that has a PWM output fairly easily. If the uC you're using doesn't have a PWM function, you'll have to do the whole thing via software, and that can make the timing loops a bit hairy.

Did you have a uC on hand already that you were planning on using, or are you planning on buying something?

As for the current sensing, you might consider a sensor that uses a Hall-effect device. That avoids losses you'd incur with a fixed resistor.

With one pump operating at 2A, with just one panel, you'd need an extra 8A to 15A or so over a day's time. With your existing wiring and one panel, you'll drop about 0.7v in your 50' run (2x50'). If you add more panels to that run, you'll increase the voltage drop in the wiring; 3 panels will give you around 2.1v drop; about 44 Watts of loss in the wiring.

I haven't figured in the losses from the buck converter yet; we're just not that far along.
 

SgtWookie

Joined Jul 17, 2007
22,230
OK, you need to understand a bit about Vgs.

If you exceed a power MOSFET's Vgs ratings, which are usually +/-20v, you will destroy it instantly. When you are using a signal source in a simulation, reference one side to the source terminal of the MOSFET, and make sure your signal source doesn't exceed +/-20v.

You had a 40v signal referenced to ground instead of the source terminal, which is not good.

I made that modification; see the attached.
 

Attachments

Top