MPPT Using the Prop
Philldapill
Posts: 1,283
Hey everybody! I'm pretty new to the Prop and microcontrollers in general so bare with me.
I have a fairly large solar array that was "given" to me(a story for another time). I've read up quite a bit on Maximum Power Point Tracking to increase the available power output from the solar panels. To do this, I plan on using the Propeller, a couple Analog-to-Digital converters, and some high power mosfets. The Propeller, of course, will be the brain of the device and should be responsible for PWM control of the MOSFETS and at the same time, query the ADC's to determine current and voltage levels. From there, it will determine power output and adjust the PWM accordingly. By constantly monitoring the power output(10 times a second or so), I'm thinking I can maximize the efficiency of my panels.
·
Here is were my question(s) come in.
1. Good quality ADC's are expensive! I need to have the highest bit resolution I can from the ADC with a low input ref. voltage.
···· a. Is there any way the Propeller can actually read an analog voltage accurately and turn that into a binary number?(This thing is magical after all...)
···· b. If the Prop can't do the A-to-D thing, does anyone know of an inexpensive, 12-bit minimum ADC I can get?
·
2. I'm using a PWM object from the object exchange to do the PWM. I've made a slight modification to the code so that the duty cycle resolution is now from 0.0% to 100.0% instead of just 0-100(I added another decimal place). Now there are 1000 different duty cycle settings.
···· a. Is there a better way to turn the mosfets on completely and faster than by using the propeller outputs on the gate directly? I've heard of some IC's that are specifically designed for this task but I'm not sure if it's worth it. Your thoughts?
·
This forum is a great resource and I want to preemptively thank all you guys for your help.
·
I have a fairly large solar array that was "given" to me(a story for another time). I've read up quite a bit on Maximum Power Point Tracking to increase the available power output from the solar panels. To do this, I plan on using the Propeller, a couple Analog-to-Digital converters, and some high power mosfets. The Propeller, of course, will be the brain of the device and should be responsible for PWM control of the MOSFETS and at the same time, query the ADC's to determine current and voltage levels. From there, it will determine power output and adjust the PWM accordingly. By constantly monitoring the power output(10 times a second or so), I'm thinking I can maximize the efficiency of my panels.
·
Here is were my question(s) come in.
1. Good quality ADC's are expensive! I need to have the highest bit resolution I can from the ADC with a low input ref. voltage.
···· a. Is there any way the Propeller can actually read an analog voltage accurately and turn that into a binary number?(This thing is magical after all...)
···· b. If the Prop can't do the A-to-D thing, does anyone know of an inexpensive, 12-bit minimum ADC I can get?
·
2. I'm using a PWM object from the object exchange to do the PWM. I've made a slight modification to the code so that the duty cycle resolution is now from 0.0% to 100.0% instead of just 0-100(I added another decimal place). Now there are 1000 different duty cycle settings.
···· a. Is there a better way to turn the mosfets on completely and faster than by using the propeller outputs on the gate directly? I've heard of some IC's that are specifically designed for this task but I'm not sure if it's worth it. Your thoughts?
·
This forum is a great resource and I want to preemptively thank all you guys for your help.
·
Comments
(2) When you use a MOSFET, consider that it neeeds quite a high voltage at the gate...
(2a) For this reason, the switching characteristic of PWM (3V / 0V) may be even a good thing.
(2b) An alternative is adding an appropriate low pass (cap to ground) at the transistor gate, using it as analogue amplifier rather than as a switch.
(3) The many times here discussed Delta-Sigma modulation is a fine way for data acquisition at your low rate.
If I read the tables correctly you could accomplish 21 bits resolution @ 10 Hz - if there were no other noise and perfect components i.e.
Edit: as always... I reduced number of typos..
Post Edited (deSilva) : 12/11/2007 12:17:42 AM GMT
These chips are pretty expensive so if I can do it all with the magic prop, I will. Thanks again!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
Post Edited (Paul Baker (Parallax)) : 12/10/2007 10:50:10 PM GMT
That was really a joke!
Did you read the specs? Did you read Vih Vil? 0.6Vdd..Vdd and Vss..0.3Vss. Voh, Vol
Now where are those 21 bits?
Nick
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Never use force, just go for a bigger hammer!
The DIY Digital-Readout for mills, lathes etc.:
YADRO
The actual resolution will depend on many factors including the quality of the power supply... There is litle experience here what can be accomplished regarding shortcommings of the mechanical build-up.
I should say: 10 bits is feasible, 12 bits is possible.
If there is a need to amplify the input signal this will add additional noise...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Paul Baker
Propeller Applications Engineer
Parallax, Inc.
Aside from the electronic issues that have been answered so well already, I am curious about the use of relatively high-power devices to optimize efficiency of the solar panel. Will the PWM motors be running / adjusting full time ? In the case of a stationary solar panel, the apparent movement of the sun is relatively slow : would a few updates per minute or even per hour (instead of 10Hz) be enough? With even 1000 PWM settings spread across a 8-10 hour sun-day, the best that could be hoped for is about one PWM increment per minute.
It would be a shame to lose the extra power from the panel in driving the motor hardware unnecessarily.
Cheers!
There is no closed solution, but you can play with EXCEL...
Consider: When you install some solar cells, looking to the zenith, in Quito, at the 21st of June, they will profit from 70% of the sun's radiation (not considering other efficiency impacts). They will profit from 100% if you rise them up in the early morning to the east and in the evening to the west. If this needs more than 30% of the finally (!) produced energy, you should refrain from such experiments...
When you adjust the plane each hour, you will be off by +/-7.5° during that hour, which is a mean of 3.8°, leading to a loss of much less than 1%.
So it seems it does not make much sense to adjust it more often than once an hour.
It will make more sense when you do not live in Quito and it is not the 21st of June...
You are right deSilva. It is kind of useless to try moving the panels every so often. I haven't done any precise calculations, but I think that the energy gained·minus the energy lost in moving the array is not worth the trouble of designing the physical system. All I'm trying to do now is find the MPPT of the panels with respect to the electrical aspect, not the physical. If any of you guys know about MPPT in detail, I'm all ears. Here is the method I'm thinking about using.
At an arbitrary time interval, the prop will measure the current flowing through R_Shunt, and the voltage across the C1_Solar_Buffer capacitor(solar panel in parallel). Multiplying these two numbers together(current x voltage) will give the power being delivered to the load(batteries). The Prop will increment the PWM duty cycle to allow more current to flow to the batteries. It will then measure the current/voltage and determine if there was a power increase relative to the last measurement. If there was, it will again, increase the PWM duty and check for another power increase. It will continue to do this until it encounters a power DECREASE. At this point, it will decrease the PWM duty and check/adjust. It continually does this so that it hovers around the maximum power point on the power curve of the panels. In effect, the PWM creates a psuedo resistance in series with the panel and battery, but with negligible power loss due to heat.
So, THAT is what I'm trying to do in the big picture. I hope that clears things up a bit.· Thanks guys for all the replies in such a short time!
·
Marty
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Lunch cures all problems! have you had lunch?
Like you, I am new to prop, but not new to Solar panels. Solar panels provide most of our power requirements. (We live aboard our cruising yacht)
I don’t know what panels you are using in your array and you have not mentioned what type of batteries you are charging (lead acid, glass mat, get etc….)
There are some great solar charging management systems around and the good ones have a temperature sensor input, so that the ambient temperature in the battery compartment can be monitored. They can be programmed for the different battery types including PWM mode.
Software to manage Temperature compensation, Bank switching, Float and Equalization periods will go a long way towards extracting the most out of you Solar array.
Your series/parallel array configuration should be such that the open circuit voltage is ~ 21 volts, for 12 Volts batteries.
It’s the acceptance rate of the batteries that is important.
Whilst the voltage goes down from 35 volts to 12 volts (12 volts seems low on charge) the current will increase proportionally. Well nearly but that discussion is definitely off thread.
Anyway, you're right about the 21 volts for a 12V battery. I'm not sure what keeps the battery from losing all the water within the cell though, since applying a constant 21 volts the a battery tends to force it to undergo electrolysis as all the charge has been "charged". The point of the MPPT charger I'm trying to build is to find this optimum power point and get the most energy out of the panels as can be generated. I think Lawson may be right about turning this into a high power buck converter MPPT. My understanding of capacitor charge may be a little wrong, but it seems that the higher voltage within the cap should allow more current to flow, regardless of having the inductor.
Correct me if I'm wrong, but 1 Coulomb = the amount of charge needed to raise a capacitance of 1 Farad to 1 Volt. If this is the case, a higher voltage in a capacitor means more charge is stored, which in effect means that more current can pass through a load resistance... I'm still working on my BS in EE so forgive my lack of understanding in some of this...(and my rambling!)
You simply cannot put more current into the battery than it will accept, without raising the charge voltage above 14.6 or 14.4 in the tropics. If fact a good solar management systems, takes a pause from charging once the the charge gets to around 14V. So that the cells can stabilize before the off load voltage is measured. This requires auto bank switching of course. The controller might float the bank or continue to charge, or alternatively go through a equalization charge based on the banks history cycle before returning to Float.
Around 21volts is the norminal rated open circuit voltage of many solar panels sold over 60 watts.
Other Factors such as battery age, it's enviroment which would include its charge discharge cycle, also its discharge rate..etc ..etc
Finally it comes down to cost. Large battery banks are expensive. The life of battery is dependent on how its used, and to a large extent how well the array its matched to the battery banks capacity and last but not least the good software inside the box.
Don't get me wrong, this sort of code is worth writing, An Intelligent battery charger, might be a better place to start
.
I have built a few for people using BS2 over the years, but its hard to beat the BP solar gear sold in Australia
Have fun, I am !
Ron
Sounds like a good plan. You might try using parallel strands of the 12 gauge wire on the toroids to reduce the resistance. Or stacking several cores before the wire is wrapped around. Yea you will need a large diode in the circuit, The circuit that wikipedia shows would directly work for you if the polarity of the supply and load is flipped. Might I suggest putting together a bread board prototype of the DC-DC converter you plan to use?
Marty
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Lunch cures all problems! have you had lunch?