Go Down

Topic: Wind turbine charge controller prototype/shield (Read 24149 times) previous topic - next topic


Sounds as if you have already put a lot of thought into this. If you're looking for people to team up with you, you might find it's worthwhile posting under Gigs and Collaborations.


Oh, I forgot ... there is another issue ... lead acid batteries differ in their allowable charge current. Gel cell batteries have current limits. High currents can cause bubbles that damage the gel.  Flooded batteries generally don't have any meaningful charge current limits.  Gel cells have become rather rare, but keep your eyes open.  Sealed, no maintenence batteries are also less tolerant of high currents than flooded ones.  I have an extensive dc power distribution writeup (that is growing) here: 
http://egrouphub.com/wiki/index.php/DC_Power_Distribution  we will be doing a lot of open source projects, including arduino projects on that site. 


arduino has a gigs/collaboration forum section?  I'll check it out.


sorry, I am kinda lost, could you post a link to "gigs/collaborations"


It's in the Community section of the forum. Just go to http://arduino.cc/forum/index.php?action=forum and scroll down until you see it.


Dec 29, 2012, 01:25 am Last Edit: Dec 29, 2012, 02:19 am by rockwallaby Reason: 1
Hello Alex and all,

This is an interest of mine and so reading this thread has grabbed my interest.
I'll try to keep this short if I can possibly do so.

Firstly, Alex I see this thread was started some time ago in May of 2012, could you tell us more exactly what you have, in terms of what the generating source is, its characteristics.
I assume you are using a DC generator, maybe some form of motor being used as generator, is this correct?

Is it a permanent magnet type or is it more like a car alternator type?
If it is a PMA, then it will have a brushed commutator on the rotor.
If it is an alternator, such as from a vehicle, then it will essentially produce an AC 3 phase waveform and that maybe be internally rectified to produce a DC output.

Can you tell us the nameplate figures on the generator, such as Volts, Amps or anything else. What power is this generator?

So, it is important for us to understand exactly what you have and also more specifically what you are wanting to achieve with this project.

The battery or batteries, again, more information is needed about what you have.
I understand you are designing with 12 volts in mind, are they lead acid, flooded or gel.
What capacity is the battery system, is it made up of one battery or a number of batteries either in series or parallel or both?

OK, so when we understand these things, we then have a set of parameters to work with.

But, let's go on a little further.

Looking at your circuit diagram, the first thing that struck me is that you are using a mechanical relay to do the switching between the output load, I assume battery, and the dump load, is this correct?
And that the Arduino will measure the battery voltage and thus control the relay via the transistor, Q1.

My suggestion would be to replace the relay with a piece of silicon, either a suitable transistor or preferably a MOSFET.

I note that in one of your posts you mention wanting to use PWM to charge the battery.
If this is your intent, you will most definitely need to replace the relay with a suitable solid-state switch as mentioned above.

What you may want to do then is to look at using a PID loop controller to drive the PWM that controls the solid-state switch.
The PID loop controller code can be found on the Arduino playground as I recall.
What you do is feed the PID with certain parameters and have its resultant output configured correctly to drive the PWM code.
So, you will have essentially two inputs into the PID controller, one will be the representation of the battery voltage as read in by an analog input on the Arduino.
The second will be a representation of the desired battery voltage, the setpoint as we call it.

The PID, when configured correctly will drive the output in such a way that it will want to see the actual battery voltage equal to the desired setpoint voltage.
That is, no error. At that point, and under ideal conditions, the output will remain constant and hence will supply a constant value into your PWM code.
The PWM driving the MOSFET or what ever will be switching a constant rate with a constant PWM period at this point.
When the battery voltage falls, the PID will drive the PWM to adjust its duty cycle ratio.

If you are controlling energy to the dump load then you will want to have the PID extend the PWM duty cycle ratio, and conversely, as the battery voltage rises, the PID will drive the PWM to decrease the duty cycle ratio.

If you are controlling the energy to the battery the you configure the opposite to occur from above.

Now, your dump load, I see you are using a 4.7? resistor, is it rated for the correct power rating of your design?
Somewhere I read you are wanting to achieve around 150 Watts, so, you will need to make that resistor large enough to take the full power as delivered by the generator plus more.
If the generator nameplate figures lead you to believe it has a capacity of 150 Watts, then I would suggest you have the dump load have a power capacity of at least 150 Watts + 25%, so a capacity of around 200 Watts should be fine.

This is essential, as if you underrate your dump load power capacity, you run a higher risk of destroying it over time through fatigue.
Make sure the dump load has adequate cooling, a fan that can be controlled by the Arduino maybe.
I say this is essential, as if the dump load were to be destroyed then you will have a worrying situation in that the generator suddenly becomes unloaded.
An unloaded generator without any mechanical or other governing system will then inherently want to speed up, and may quickly exceed its run away speed.
That is, faster than its design speed and where things start to fly off in all directions.
Before this, the generator will most likely ramp its output voltage up and exceed its design ratings and also the voltage ratings of your circuit.

I see you have a fuse there, great, but this will only blow on over current, not on over voltage.
So, if the generator were to overspeed for any reason, then the higher voltage may be concerning for your circuit even before the fuse decides to blow.

Lastly, I understand you wish to derive the generator rpm from somehow from the actual generated volts, is this correct?
I see a problem in this as you effectively have the generator connected across a load, being a battery or the dump load.
So, I am unsure how to go about resolving the generator speed from this.
Better would be to use some other method, such as an either an optical or inductive proximity sensor on the generator, and then feed this signal as a digital pulse train into the Arduino for processing.

mgshightech, it seems you are interested also in such systems?

Now a small plug in here to show what I am doing and hopefully to show what can be done with an Arduino and a bit of time.
As Graynomad and one or two others know, I have and am still in the stages of building my own system for renewable, remote area power system.
Instead of a wind turbine, I run a hydro turbine, driven by water instead of a sometimes fickle wind.
It's what powers my computer right now, activating all the electrons inside and sending them to the forum.
In addition I also have solar panels.
It is web based and is quite a project and there is still much for me to do in terms of actual hardware and also software, but it is a start.
If you wish to take a sneak peek then point your browser to http://paulalting.com (purposely not wrapped in hyperlink tags, but alas the forum software is too smart)
Head to the 'Hydro-Solar' tab to have a look.
You will need to have a browser that is pretty well HTML5 compliant, so latest versions of FireFox or Chrome or Safari work. I do not know how IE goes, as I don't use the operating system it uses. Also, make sure javascript is turned on, it's basically driven by javascript on the client-side.
For most of the data, it grabs it directly from my Arduino mega at my home here. It has onboard ethernet and is connected to my router directly.
The Arduino is using the techniques I have talked about above in regards to PID and PWM.

Paul - VK7KPA


Massive document you have there mgshightech.

I've been living off solar for maybe 12 years now and share your findings re MPPT with solar panels. I just bought a new 60A reg and went for the PWM version for the half price. As I understand it, with the way we use our system MPPT won't help us much but as will all these things you have to look at your personal power usage habits etc.

If you plan to do anything I would suggest it is capable of handling 12, 24 or 48v as they are the common voltages for smaller RAP (Remote Area Power) systems with 12 and 24 being ubiquitous in the RV field (my main interest). I do however have an least one acquaintance with a 1000v string of panels, but keeping things < 50v makes life a lot easier.

After some teething problems (Paul I see there's an error count of 1 at present) Paul's PID system seems to be working well, so much so that I seldom log in to look at the graphs now because they are always flat-lining at the set point :)

I'm interested in this but my current project will really take up all my time for the moment. It is slightly related to this though (a SCADA-like network) and I plan to have it at least monitoring if not also controlling RAP systems.

Rob Gray aka the GRAYnomad www.robgray.com



Just look at this website.
and a little description, full code link given at bottom of this post.
Code: [Select]
// This routine is the charger state machine. It has four states on, off, bulk and float.
// It's called once each time through the main loop to see what state the charger should be in.
// The battery charger can be in one of the following four states:
//  On State - this is charger state for MIN_SOL_WATTS < solar watts < LOW_SOL_WATTS. This state is probably
//      happening at dawn and dusk when the solar watts input is too low for the bulk charging state but not
//      low enough to go into the off state. In this state we just set the pwm = 100% to get the most of low
//      amount of power available.
//  Bulk State - this is charger state for solar watts > MIN_SOL_WATTS. This is where we do the bulk of the battery
//      charging and where we run the Peak Power Tracking alogorithm. In this state we try and run the maximum amount
//      of current that the solar panels are generating into the battery.
//  Float State - As the battery charges it's voltage rises. When it gets to the MAX_BAT_VOLTS we are done with the
//      bulk battery charging and enter the battery float state. In this state we try and keep the battery voltage
//      at MAX_BAT_VOLTS by adjusting the pwm value. If we get to pwm = 100% it means we can't keep the battery
//      voltage at MAX_BAT_VOLTS which probably means the battery is being drawn down by some load so we need to back
//      into the bulk charging mode.
//  Off State - This is state that the charger enters when solar watts < MIN_SOL_WATTS. The charger goes into this
//      state when it gets dark and there is no more power being generated by the solar panels. The MOSFETs are turned
//      off in this state so that power from the battery doesn't leak back into the solar panel. When the charger off
//      state is first entered all it does is decrement off_count for OFF_NUM times. This is done because if the battery
//      is disconnected (or battery fuse is blown) it takes some time before the battery voltage changes enough so we can tell
//      that the battery is no longer connected. This off_count gives some time for battery voltage to change so we can
//      tell this.

Although you are working on Wind charge controller but you can get some understanding of code related to BULK, FLOAT,ON, OFF charging from the Timnolin works  MPPT solar charge controller.

Here is his MPPT algorithm in Arduino sketch:
Simply...You can't afford me..

Author Of:

Oops..some one gave me Karma...:)


@rockwallaby ... transistors just eat voltage. only thing they are good for is controlling the current draw rate.  This guy is planning a wind turbine which will obviously put out variable voltage (unless its very smart).  Transistors won't help match the voltage.  There needs to be a buck converter i.e. a coil and a high speed diode to drop the voltage if it gets high. That is if he is using dc.  A wind turbine needs mppt where a pv array doesn't.

If he is using ac, he has the option of doing a hybrid rectifier as I stated earlier.  A 1p/2p hybrid rectifier voltage doubles if the voltage is low. As the current flow rises, the capacitors empty and it converts gradually into a bridge rectifier that doesn't voltage double.  So this will create a voltage range of around 2.5x where the current draw steadily rises as the unit spins faster.  I like it, but the capacitor size has to be tuned to the application, and I'm not sure how to make that kind of hybrid rectifier for 3 phase yet.  Getting a single simple equation written up could solve this.  An mppt buck converter is probably harder to design, but it's closer to the class of one design fits all.

There is one more issue that you didn't notice here, and I forgot to mention.  If we use automobile relays to both charge a battery and drive a load, these two conditions are very different. Relays have max. voltage capability. For a 12 volt system it's never an issue, but for a 24 or 48 volt system it is an issue.  When we are charging the battery, we are really only switching the excess voltage, so a 12 volt relay can charge a 48 volt battery no problem.  If the relay needs to switch off, the battery helps to extinguish the arc.  If we are driving a load however, the relay has to be rated for the full power flow (voltage) because the load does not help to extinguish the arc.  OK, so I discovered that the only good option for better relays is on aliexpress.com  There are 120a spdt relays for around $11 and 80 amp dpdt relays for around $14.   This relay business is tricky. To run a 48 volt system we still have to put one of these both at the bottom and the top of the supply because they are only rated for 28 volts wheras automobile relays crash just after 14 volts.  So with two 28 volt relays in the circuit, we should be able to extinguish the 48 volt arc if they are activated simultaneously.

A flexible system has to be able to account for all of these combinatorics in a fashion that doesn't force people to do a lot of thinking as they build their system.  This begs the concept of modularity principles... I.e. a main controller setup that allows plugin of multiple modules.  Now, to manage all of that stuff in code, we are going to need genuine top quality code.  That means using state machines. 

It's stupid for the public to have to redesign an open source charge controller every time their application changes. If this is how we are doing it, then we are just DIYers, not open source.  Yeah, the code is open source, but might as well not be , cause when you get it, it doesn't work because you are set up differently, now you have to redesign.  The way to solve this is to see the system as modular. I.e. you can swap in a relay charging module or a mppt charging module depending on need, and your module declares itself to the controller and the controller knows how to handle it.  You can have 12v, 24v, 48v, and +-24 volt (24 volt 2-pole, by far the best option) This requires more I/O from the controller, which bumps the display off of the controller onto another controller.  Costs a little more, ($17 on ebay wow ... this is essentially nothing)  but isn't it worth it to:
a:not have to rewrite the controller for every purpose
b:have option for a higher quality display and space for a charge controller shield without stacking shields
c:be able to upgrade your system without redoing everything by adding or swapping modules
d:get code done for a generic vt100 terminal emulator which can be used in an automation/scada system as well ( as you are talking about), therefore combining your scada project with the charge controller project and all automation projects that beg a generic control panel (which is pretty much all of them)  Later on, the vt100 panel could be expanded with additional standards to do more cool stuff :-)

hehe  ebay offers a fabulous set of d class amplifier boards that will run sweetly and very efficiently with no need for a power supply if you can come up with a +-24 volt supply ... There are also lower power 12/24 volt ones, and high power 50 volt ones that would require only a cheap buck converter because 48 volt system tops out at about 56-57 volts. just one example of the advantage of a flexible system.  With a two pole 24 volt supply, you can efficiently move your power 100 feet or more, directly power 24 volt light bulbs as opposed to having to wire them in series, use cheap, simple circuitry to power 3 phase 24/48 volt motors, use the most efficient 48 volt inverters and need them the least.  On ebay you can even find a 48 volt dc refrigerator compressor.  You can run 48 volt computer power supplies that are more efficient. I have about five of them. They don't even need a fan because bucking from 48 down to 12 is a lot more efficient than bucking from 150 or 300 down to 12.  They are more efficient, they are smaller, lighter,  they should be able to cost less, and they are silent.  We are talking about a cheaper, better way of life on the other side of an open systems initiative. 

If we can as a community put together a bunch of kick-ass solutions to dc power distribution, we can cut the cost of solar power systems very legitimately in half by doing nothing but redesigning the system. No need to chop solar panel prices down to nothing.   We are talking about a freaking giant scaled revolution because the system cost will begin to be considerably lower than grid power.  You can shut down half of the f-ing coal power plants, murderous nuclear power scammery where we pretend we are doing it for the power but really doing it for the bombs and actually providing our enemies a fabulous target to blow up in our own back yard so it can shower us with deadly radiation like Japan and Russia. 

The magnitude of potential advantage available by taking on this problem and doing it right is mindboggling, and we don't have to rely on any free energy charlatans, any government regulators, any corporations. This is a golden opportunity for the open source community to literally begin to take control of gargantuan new turfs and show corporation minded nutcases who has the real "power" and that collective intelligence is superior to top down control.  Do it once, do it right, do it modular and flexible and move on to the next project. We can start designing more dc power stuff and put it on the market.  When people realise which plan is best, the old sh** will start fading away.  Solar power prices have dropped radically.  If we get this stuff under control, we can change the world.

let's see ... I am also connected with a 1700 member facebook group and a smaller group of engineers operating at http://egrouphub.com/collab  So our plans and strategies are actually bigger and more complex than this. (and will have a lot more uses for arduino boards) It seems that the biggest job to do here is to help people see how they can accomplish things that are way way bigger by just adjusting their behavior to successfully connect into a larger resonance.

thanks guys for the links,  the timnolan mppt code will be a good starting point.   :-)


oh, btw, to help folks catch on properly ... I web-crawled contact data for over 500  offgrid communities (world wide) in various stages of development.  If we can put a system together, I can advertise it to the most interested people lickety split.  We can become celebrities. If we can show that we are down to business, we can build a huge resonance in short order.


Jan 01, 2013, 01:58 am Last Edit: Jan 01, 2013, 05:46 am by rockwallaby Reason: 1
From reply #12 mgshigtech informs us

I am an  EE as well as a software engineer

I am making the assumption EE generally stands for electronics engineer, so you are an electronics and software engineer, is this correct?

In your lengthy reply # 23 you state
....transistors just eat voltage.
The only thing they are good for is controlling the current draw rate.

I hope you had learnt that transistors are current devices and that they don't eat voltage.
In the context we are talking about I think you mean to say that transistors dissipate power, and that you are eluding to their possible in-efficiency in such a circuit, is this correct?

In your long reply #23 you assert the following
A wind turbine needs mppt where a pv array doesn't

I wonder how you arrive at such conclusions?

You go on to write the following
There is one more issue that you didn't notice here, and forgot to mention

Who is it that you are referring to when you say 'you'?
And is it not presumptuous to say that whoever you is, actually forgot to mention something else?

Rather, would it not be better to have said something along the lines of 'Oh, and I thought of another issue and also something else to add as well'

If this is how we are doing it, then we are just DIYers, not open source.

So, I am again assuming reading this that you think DIYers and open source are mutually exclusive and that there is not point to being a DIYer?
When you read back what you have written, I wonder if you see the level of your opinionated views?

It appears to me you have a dislike for transistors, for 12 volt systems and even to some extent the thoughts and designs of others.
Again it appears to me you make a lot of assertions but very little to explain in relevant detail any explanation to provide further understanding.
Though you state a liking for class D (audio) amplifiers several times.

I could continue...

It seems being an electronics and software engineer today is something quite different from how I became one.
I will apologise here now in advance if mgshightech feels offended in anyway by what I write, but I simply write in response to what I notice.

On a more positive note, I do notice some hint that mgshightech does have a keenness in wanting to engage in developing systems, though I am unsure in what specific direction that interest is at present, as he/she talks about arcing relays to radiation showers from Russia.

I wish to be able to communicate in a discussion where there is an openness, a mutual respect of the interests of others.
A nurturing of a pot of like minded people who do want to be 'DIYers' and who do embrace open source concepts.
Hopefully what I write may provide him/her (mgshightech) with a little prod to think about these things.

I may elect to bow out of this thread as unfortunately for me it has lost relevance.

Paul - VK7KPA



a transistor turned all the way on, which is what we do with pwm and/or mppt can be considered a concoction of resistors and diode drops.  The voltage coming out the business end of it will be lower than the voltage going in.  So, you are welcome to word that by saying that they dissipate power. It makes little difference to me.  High current, hot mosfets turned all the way on will tend to have a d-s drop of 1-2 volts. Of course, you can add more transistors in parallel to partially counteract this problem at a cost.  That's what the datasheets say, and it isn't a lot different for bipolars.  Well, losing voltage can push you away from maximum power point and cost you additional optimizational losses, so, for a a 30 volt panel for example can comfortably charge a 24 volt battery quite optimally.  If, however, we subtract 1.5 volts from the 30 because of transistor losses, 28.5 volts remain.  This will still comfortably charge a 24 volt battery, but if we then account for IR drops, we may be cut down to 27.5 or 27 volts. To charge a 24 volt battery up to its top at the 20 hour rate requires very close to 28.2 volts, so the 27.5 is 0.7 volts shy. The panel has to make up for that by reducing its current flow in order to push the voltage up higher. So, we lose both voltage and current.  We can choose the panels that output a couple of extra volts.  Of course, that can be done, again at a cost. So a system of multiple relays does not have much of any d-s drop, but they don't pwm very well. So the obvious solution to that problem is to have charging module options that use multiple pv arrays, turning them on separately so as to provide differing current flows for different charge stages.   This is a good idea anyways for relay systems as relays tend to have current limits of around 60-120 amps. So, even in a 48 volt system, we are talking about 3-5 percent power loss, which for a 5 kw system amounts to  around 200 watts, which can cost $300 or so to replace.

OK, so in truth, the relay strategy is not optimal for all designs. It sucks for long distance cable runs because you have to provide battery voltage at battery current wheras mppt systems can raise the voltage and have smaller IR loss.  So other strategies need to be cared for in a flexible system.  Also, if you know a good way to cut the voltage drop across transistors down to 0.2 volts or something, then of course, I would be very interested.  So, yes, for 12 volt systems, mppt or pwm  could easily (not necessarily) cost 10-15 percent of the power up front. For 48 volt systems, this is of course less of a concern.  I am shooting for 48 volt (dual 24 volt poles) but a flexible system will allow for people to choose their favorite charging system.

Hmmm. regarding the question mark of being ee/cs.  I guess I have been in enough degree contests to prefer to avoid that route because what we need more than to compete is to get along somehow.  But let's just say that I'm pretty sure one of the driving forces behind arduino is open source strategy.  So, when DIYers show up. This is of course beautiful.  It will be more beautiful if we can work as a group to accomplish a public project. There should be plenty of people around to work on that.  I can get our guys together and try to hit up kickstarter for public funding for a public project, but I'm reticent for a few reasons (that may melt away).   So, one way or another, it is our intention to accomplish some strategic technological additions to the open source community that are designed to help re-balance the social flow.  If you prefer for society to never evolve or improve, I suppose that is your right.

So, I'm going to tell you this because I guess I have to, but the reason why all the other stuff got into the talk is because I am a systems theorist who has spent some decades examining the current social structure.  There is a pathway to overcoming some of its current weaknesses that lies down the lines of the concept of balance.  Everything is connected to everything in the real world, and small deeds can have large results.  ... or they can peter out and be forgotten in the infinity of time.  (butterfly effect) So, I didn't want to get too deep into that kind of stuff because this isn't that kind of forum. Nevertheless, systems and complexity theory have a great deal to say about what we aught to be focusing on.   So I have hoped for people to see the potential advantage of providing a top class solution to the dc power distribution problem .. open source.  Of course, if people don't care about that, then I hope that they care about something else in relationship to the development of a top class mppt/charge controller architecture.

Let's see ... 1938, Otto Hahn discovers two kinds of fission, thorium   http://en.wikipedia.org/wiki/Thorium_fuel_cycle  and uranium.  Thorium is far far safer to fission than uranium, but you can't make bombs with it.  So, I am going to try to respect the topic of the forum and not drag you any deeper into that.  There is enough info. in the wiki page for anyone who is curious, except that I don't think it mentions chinas development of thorium fission reactors.   OK, so what it boils down to is that I have a big picture in my head. I realize that some people don't like big pictures.  I'm not accusing you of that. Feel free to make your own choice.

The arcs in relays as they open/close are of course definitely on topic.  Arcs destroy relay contacts and can render charge control dysfunctional, potentially even dangerous. So if we want to use the relay option for cases where it is optimal, then we have to study this issue out. 

I don't know just what sort of people are here. As my nameplate says, I am a noob on this site.  I must decline to further discuss egrouphub in detail on this site because it is not on topic, and I wish to respect arduino.cc as I wouldn't be thrilled if people got too far off of topic on our site either.   

Thank you for your comments. I hope others feel more positive about it.   :-)

So, in case anyone is noticing, I have been on this project for some several months already.  I have examined the curves, data of parts, etc. found a lot of ideal electronic parts and created some strategies, but I don't expect to out-think the arduino community by myself as that would of course be ridiculous.  :-)

And class d amplifiers just save 1/2 to 3/4 of the power that is spent by other amplifier classes.  This is a big deal if you are paying for all of your power up front.  They can be powered directly by dc power sources, saving us the expense of the power supply and the energy it wastes humming at 60 hz all day, and the space it takes up and the shipping weight.  So it's just another way of reducing system cost, but It is also not directly on topic. I just pointed out that if we can reduce the cost of multiple parts of a power system, we can cut the entire system cost by as much as approx. 50%, which is huge.  The price of solar power dropping is huge. It's huge again if we can use it more efficiently (i.e. use less of it).  And there are a lot of ways to do that that are improvements over what solar installers are currently setting up.  (yes, I have discussed with solar installers and have a good idea as to what they are currently doing.)  I'm not asking anyone to get involved in that kind of stuff right now, just trying to paint the picture a little wider in an attempt to help people to feel more motivated.   :-)  Looks like it backfired and got smoke all over my face.  I'm reminding myself of Ronald Weasly and his wand.  LOL.

OK, it has been a pleasure.



Now you tell what you want from us.. :smiley-mr-green: I am also a guy like you to work collaboratively ]:D..
Simply...You can't afford me..

Author Of:

Oops..some one gave me Karma...:)


@ Khalid   U R awesome dude.  :-)  I think "We got work to do"  Hopefully some others agree on that.

BTW I failed to answer one of the questions. He asked why a wind turbine requires mppt while a solar panel doesn't. The answer is this. If a wind turbine is trying to charge a battery, the turbine will be spinning at different speeds. Both dc and ac motors produce different voltages at different speeds.  The higher the speed, the higher the voltage. OK, so as long as the output voltage of a turbine is below the battery voltage, there is no charging because the battery is pushing harder at the electrons than the wind turbine.  In fact, the system will most likely require some kind of diode to prevent the battery from dumping current into the wind turbine. .. Not what we had in mind...   OK, so the rpm rises, the voltage rises the voltage reaches battery voltage and a tiny bit of current starts to flow. The voltage rises to around 2 volts more and a ton of current starts to flow. (btw I was keeping track of the wind turbine generation faq on alt.energy.renewable around 1995) .. So a ton of current starts to flow and it acts as a barrier to the increase of the wind turbines speed because the wind turbine can't produce the energy demanded by the current flow.  So it slows down (or refuses to speed up).  Well, when the turbine is spinning slowly, the force on the blades may rise a little, allowing for more current, but the energy output of the turbine will be proportional to force (torque) multiplied by angular speed.  So, now that the turbine is blocked at a particular rpm from spinning faster, it can't collect the energy that is available because the speed can't rise.  The solution to this problem is mppt.  The mppt algorithm watches the current flow/voltage in tandem and scans the current/voltage dimension for the combination which produces the most power.  When that optimum in power is produced at a voltage (respective turbine speed) above the battery voltage, the algorithm buck-converts the higher voltage down to battery voltage with higher current and presto ..... more power     :-)

Now, let's talk about the solar panel.  The solar panel is basically an arrangement of P-N junctions.  They convert light into current. Basically, a 2 electron volt photon is incident onto the panel and it jumps an electron over a two volt junction gap producing 2 electron volts of available power.  If more 2 ev photons are incident on the panel, then more electrons jump the 2 ev junction gap, but they are still only at 2 volts potential because that is all the energy available in the 2 ev photons.  We arrange a bunch of these in series, to raise the voltage up to something that can match our batteries.  Now, what happens when more sunshine hits the panel is that because of quantum mechanics above, the voltage output from the panel doesn't really change (not much anyways). In stead, the panel becomes capable of sourcing more current.

Now, not all photons are red 2-ev photons, so this makes the dynamic a little more complex.  If we raise the voltage required to charge the battery, what happens is that the 2 ev photons are close to being the weakest of the bunch.  There are also infrared photons, but the panels will not be designed to receive them because receiving them means shrinking the junction gap voltage and hence the cell voltage, and hence the cell power. ok, if we raise the voltage demanded of the panel, The red  2 ev photons will discover that the voltage on the junction has risen above 2 volts and they can no longer push the electron over the gap, so we lose current. However, there are higher voltage photons in the mix. Visible light contains half the energy of sunlight, and the panels are tuned to be most receptive to particular photon energies. So, what happens as we demand more voltage from the panel is that the higher energy photons can still jump the gap.  Visible light is a concoction of photons between 2 and 4 electron volts.  The cells are probably not particularly sensitive to 4 ev photons (blue) because they just can't engineer the silicon to be optimally receptive to all photon energies. Next, keep in mind, that if a 4 ev photon is incident on the panel, it can jump only one electron over the gap which is operating at around 2 ev. This means that the extra 2 ev in the photon are wasted.

So the designers of the panel are caught in a conundrum of shrinking the gap and receiving the IR photons, but wasting the extra energy of the higher energy photons and the alternative of raising the gap energy to receive the full  power of the higher energy photons, but excluding the use of the lower energy photons.  So you can see why pvs have efficiency problems.  Recent attempts to produce panels that can split the energy of a single high energy photon into two and jump two electrons across the gap have been successful. However, these cells/panels are not ready for production and may never be.

So the way this boils down is that panels produce only slightly more current if short circuited (like maybe 25% more) then at voltage ranges from small up to their designated maximum power point, their output current is nearly constant and it begins to drop off as we demand more voltage from the panel than it can produce. So there is this sweet spot of about +- 6% of the panels output voltage where it produces very close to its maximum power. If we demand voltage below that, then we waste voltage. If we demand higher voltage, then the panels current sharply drops off. It's better to demand lower voltage than higher voltage because if you raise the voltage required of the panel as much as even 15% above its maximum power point, you will discover that it outputs very little power. Most of the photons incident on the panel will be unable to make electrons jump the gap.  

Once again, the photon energies in sunlight are pretty much the same no matter how much light you are getting, so the panels output voltage pretty much stays the same. It just becomes more current-capable.

So, if we charge a 24 volt battery with a 30-31 volt panel in a relay configuration, the panel and the battery are closely matched.  MPPT is useless because there is no spare voltage to dc-convert down, and PWM is bad because the pwm transistors will absorb the last volt or so, causing a mismatch between the panel and the battery.  So, if we use a 35-37 volt panel in stead, then MPPT is slightly useful (get us maybe 5-7% advantage). PWM is perfect for the 35 volt panel, but becomes wasteful for the 37 volt panel.  So, the next thing we do is we say ... we hate line losses and purchasing a lot of copper, so we raise the panel voltage up a lot higher by putting them in series.  Then, MPPT really shines because it transforms the extra voltage into extra current.  Basically, MPPT controllers can be considered to be dc-dc converters. PWM and Relays do not do this.  So the answer is ... if you are running power a long distance (say a couple hundred feet) then you want an mppt controller, and the more distance you run, the more voltage you want the mppt controller to accept. Midnite solars highest voltage mppt controller accepts 250 volts and dc-dc converts it down to battery voltage.  Now, when matching panels to the mppt controller, you have to consider the panels open circuit voltage which will be some 10-20% higher than its maximum power voltage.  Failing to do this could cause a failure when the controller turns the current flow off and the panel output voltage rises to its peak.  We will basically risk crashing through the dc-dc converter transistors.  So, what this means is that for the 250 volt controller, you want to run a maximum power voltage of around 180-190 volts.. so you choose your panels to do this.

BTW, crashing through the mppt converter transistors is a high risk for wind power because the voltage output is so drastically variable.  So, if you are using wind and MPPT, then you are wise to include a voltage clipping stage that will cut the voltage down to MPPT maximum if it goes higher.  


also, nother btw, working as a team does not mean that we have to do what we don't want to do.  We can combine our efforts into a larger project by making only small adjustments in what we do.  I.e.  suppose we want to do a 12 volt charge controller or a 12/24 volt charge controller of a particular type. You can still do exactly that. Only thing required to hook this into a larger project is to comply with a group defined standard for module/system interfacing. That's it.  Now what we created becomes part of a configurable, flexible system. People can use our charge control module, or they can use someone elses charge control module, and all we had to design was just one module and leave the rest of the work to someone else.  Someone else can worry about the control panel code, the vt100 interfacing library, the OOP classes and subclasses that drive the modules etc.  (I already have a vt100 library on another platform that can create guis on a vt100 panel)   let's see ... nother small issue ... if we don't want to go through the expense of adding a vt100 panel to a cheap controller, we can run a vt100 emulator on a computer and spare the panel.  :-)

OK, maybe I am pesky. I guess I am just really excited about this project.

Go Up