Author Topic: Solar MPPT <--> Wind MPPT - What's the difference?  (Read 12814 times)

0 Members and 1 Guest are viewing this topic.

(unknown)

  • Guest
Solar MPPT <--> Wind MPPT - What's the difference?
« on: February 14, 2010, 10:19:19 PM »
Hi All!

I'm a Mechanical Engineering student in India, and am working on building a Wind Turbine (aka Wind Mill) for generating electricity.


One important aspect in this (as you all know) is the MPPT.  I've found MPPTs for Solar drifting around in various parts of the internet, and I plan to take one and alter it.  Specifically, I'll start from this: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en536175




Reasons for choosing this as a base:



  1. My college uses PICs rather exclusively.



  2. I have some Electronics graduates on our team.



  3. I've worked with PICs before. :)



  4. Alterations are easy, and the circuitry (hopefully) involves simple, cheap components.




My basic design considerations are:




  • Software Basis



  • Monitoring only input and output voltage, and input current. (no feed-forward windspeed measurements, primarily because of added complexity, secondarily because our anemometer broke due to excess salt in the air here.  Also no RPM measurements unless deemed absolutely necessary.)



  • Feeding into a Battery Bank, 12, 24, or perhaps even 48 volts.



  • As generic as possible, to allow other people to adapt the design to any circumstance.



  • To be released under GPL or similar license.  (Looks like we'll be the first!)



  • Dummy load, and switching on dummy load for added protection during overspeeding.  (How do I detect overspeeding from V-I measurements?)



  • Emergency indicator - some sort of buzzer or other device that would indicate emergencies!




Having not much experience with windmills, I would like to gather a list of items that would need to be incorporated into a Wind-specific MPPT, that are not there in the rather simple hill-climbing Solar-specific ones.


Here's a basic list I've gathered, from chatting with DanF, and reading around on the web.  Please add your own!



  1. Gust Handling: MPPT should perhaps delay response to sudden increases in production, to avoid stalling the wind turbine when the gust is gone.  This approach would result in loosing the best power of the gust.  Any other approaches?



  2. Overspeed protection: the MPPT should provide maximum load, even utilizing a dummy load, to control RPM.  This would be the third tier safty control for our turbine: Stall Control + Furling Tail + Loading.



  3. I'm sure I've missed something!  Please append.




I did my research beforehand, and found some other discussions on DIY MPPT units in this site, but they were old, and did not furnish the information that I want to get through starting this thread.  I guess what I'm asking is pretty basic, all of you people probably regard this knowledge as common, but I (Google) can't find it anywhere.  I'm also not asking anyone to "do my project for me"... We're going to do it, but we want to avoid endless experiments to gain knowledge that is available with people who make windmills everyday!  BTW, this is my first posting too :)


Thanks for your replies!

« Last Edit: February 14, 2010, 10:19:19 PM by (unknown) »

altosack

  • Jr. Member
  • **
  • Posts: 92
Re: Solar & Wind MPPT - What's the difference?
« Reply #1 on: February 14, 2010, 11:55:27 PM »
Hello Swift Arrow,


Some comments:


Welcome to the world of DIY electronics for renewable energy; it's a pretty small world. It's a very good idea to do the solar MPPT first before you tackle it with wind; this is also the route that I'm taking (I'm also planning GPL solar/wind/other RE controllers).


Please don't consider using that MicroChip application note as a base: for starters, any reasonably efficient MPPT solar controller will use a buck converter (not a boost converter) to minimize the current in the PV array lines, reducing I2R losses. All commercial MPPT controllers that I know of use buck converters.


If you want to use a PIC, that's up to you, but I would recommend a chip with a differential with gain ADC, such as an ATtiny861, ATxmega, or CY8C29466. This will simplify the circuit since you don't need external op-amps circuits to measure the current(s). Alternatively, you could use a PIC (I would recommend a PIC24F or dsPIC33F; they have a much better instruction set than the PIC16/18) with an external ADC that is differential with gain (this will actually be cheaper than the op-amp circuits required, but more complicated/expensive than a microcontroller with it built in already).


I would not recommend that you use actual Maximum Power Point "Tracking" for a wind generator. Because of the inertia of the prop, each time you increase the duty cycle, you will get an immediate increase in current/power. To compensate, you must play with the time constant of the response, which of course varies with power output and RPM. If you dynamically adjust the time constant based upon varying conditions, this will most likely take a lot more grunt than a PIC can handle.


Why don't you want to read/use RPM ?  In order to get maximum power out of a wind generator, you will want to keep a relatively constant TSR, which will require you knowing the RPM. In fact, I would recommend adjusting your duty cycle based on RPM; while this will not be "Tracking" the MPP, it will get you up on the TSR plateau, which is what you really want.


If you are interested, I can give you a copy of my derivation for calculating the duty cycle from the battery volts and the RPM, assuming you know the particulars of your wind generator, including V/RPM, design TSR, and generator and line resistance. It ends up being 2 multiplies, a divide, and an addition, which is easily doable in floating point hundreds of times per second on a PIC or AVR.


If you want to build a reasonably cost efficient wind generator, it will not be able to provide "maximum load" to control the RPM. Limit the power output with furling or passive pitch control; don't try to limit RPM with the generator, other than keeping enough load on to ensure furling if that's the route you take.


I'm not an expert on this, but I have thought it out a bit, and I hope you find my comments useful. I would also possibly be interested in collaborating a bit (we seem to have the same goals).


Best Regards,

David Voss

« Last Edit: February 14, 2010, 11:55:27 PM by (unknown) »

(unknown)

  • Guest
Re: Solar & Wind MPPT - What's the diffence?
« Reply #2 on: February 15, 2010, 01:19:17 AM »
David,

Thanks for your reply!  In response:


I still have to learn what "buck" and "boost" mean and entail.  I'm hoping my electrical major friends will be able to translate the jargon for me :)

I'm also hoping that they will do most of the building / circuit design.


From your reply, I realize that a solar MPPT is actually waayyy off the mark for a wind generator.


I think we will stick with pic (though the final call is in the hands of my electrical buddies) because there are more PIC related resources (experienced people, etc) here than any other.  My choice for 16F was rather arbitrary; I have worked on them a few years ago.  Will change accordingly.  Again, I will need my friends to translate a "differential with gain ADC". :)


My hope was to create some circuit that could be dropped in between the generator and the batteries (we have yet to fabricate the generator and acquire batteries).  But if it is necessary, I think that putting a Hall sensor to get RPM shouldn't be very difficult.  However, there is no way that we can add an anemometer to check windspeed.


I'm intrigued by the TSR Plateau...  I was under the impression that the rotor would rotate at TSR automagically, if the blades are properly designed.  I guess the magic is a little more down-to-earth!  I can imagine the following scenarios... which one is right?

  1. Rotor rotates at TSR only under no-load conditions.


  2. Rotor rotates at TSR only under optimum load conditions.


  3. Wind Blows, Rotor rotates.  TSR is only used for designing and has no place in reality (!)


  4. I need help, professional help.  :D



Aside from #4, I also can't understand how one could calculate the state-of-tsr from just the RPM?  Wouldn't the Windspeed also be required, necessitating an anemometer?


Thanks!

« Last Edit: February 15, 2010, 01:19:17 AM by (unknown) »

Rob Beckers

  • Full Member
  • ***
  • Posts: 146
  • Country: ca
Re: Wind MPPT
« Reply #3 on: February 15, 2010, 04:48:32 AM »
Hi Swift,


That would be number 2: The MPPT algorithm has to load up the turbine just right so it runs at optimal TSR, preferably over the entire range of production wind speeds (cut-in to furl). Think of it this way: Wind of a given speed imparts a certain amount of power to the rotor. With too small a load from the alternator the excess power will go towards speeding up that rotor (increasing TSR, and ultimately self-destructing if it is allowed to run away too much). Too large a load from the alternator will extract more power than the wind is putting in, slowing the rotor down and lowering TSR. Just the right load will spin the rotor at just the right TSR.


The common mechanism for wind MPPT is to use a table, specific for each brand/type of wind turbine, that has voltage and power pairs in it. It tells the inverter/controller what load to put on the alternator for a given voltage. You may wonder why this would do MPPT at all, since the wind speed is not "in there". It works by extension of what I described above: If the wind speed increases, imparting a higher power transfer to the rotor, it will cause the rotor to speed up. This in turn causes the alternator voltage to go up, causing the MPPT algorithm to increase the load on the alternator. This goes on to the point where the power into the rotor matches the power extracted by the alternator (minus losses), reaching equilibrium and a stable RPM. It works the same way when the wind decreases, by stabilizing at a lower power level and RPM.


The trick is to set those voltage - power pairs just right; so that for any given wind speed (and power into the rotor) the load by the alternator stabilizes the rotor at just the right voltage, and thus RPM, for optimal TSR. Optimal TSR means you are running on the 'highest' power curve for that turbine, extracting the most energy you can.


As convoluted and indirect as this MPPT mechanism may sound, it actually works very well. I have programed many Aurora wind inverters, for a number of vastly different wind turbines, both using voltage vs. power, and frequency vs. power. The latter has the advantage of being directly related to rotor RPM and thus TSR. Works like a charm!


As you can see from the above, there is very little resemblance between solar MPPT and wind MPPT (at least if it follows the mechanism described here).


-Rob-

« Last Edit: February 15, 2010, 04:48:32 AM by (unknown) »

(unknown)

  • Guest
Re: Solar &Wind MPPT - What's the difference?
« Reply #4 on: February 15, 2010, 05:28:37 AM »
BTW, David, Forgot to mention:


I am indeed interested in your formula.


Also, I've gotten my friends to translate those terms.  For the good of the hapless googler:


"Buck" means to step down the voltage

"Boost" means to step up the voltage


I still have to learn about that differential ADC with gain.

« Last Edit: February 15, 2010, 05:28:37 AM by (unknown) »

DamonHD

  • Administrator
  • Super Hero Member Plus
  • *****
  • Posts: 4125
  • Country: gb
    • Earth Notes
Re: Wind MPPT
« Reply #5 on: February 15, 2010, 05:40:17 AM »
So why, out of interest and assuming that I'm not missing something big and obvious here, can't you do more or less what you'd do with solar, ie try a given target (rectified/smoothed) load voltage, then try a voltage a little above and below, measure the actual power extracted at those three points, and use that basic mechanism to hunt for the current actual MPP?


I can see why the tables a a good simple approximation, but why doesn't doing it for real work?


Rgds


Damon

« Last Edit: February 15, 2010, 05:40:17 AM by (unknown) »
Podcast: https://www.earth.org.uk/SECTION_podcast.html

@DamonHD@mastodon.social

(unknown)

  • Guest
Re: Wind MPPT
« Reply #6 on: February 15, 2010, 05:48:38 AM »
Rob,

Thanks for that edification.  The way you explained it, it seems so simple!


So, to restate what you said (correct me if I'm wrong):


ONE way to do the MPPT is using a Lookup table.  The lookup table should be calibrated with the wind generator in question, which I guess is a trial-and-error procedure.


The MPPT can reference the required load using (1) the Voltage coming in (I guess that would have to be open circuit voltage, so the MPPT would have to briefly take it offline to measure), (2) the incoming Frequency (tapping upstream of the rectifier), OR (3) direct RPM reading.


The MPPT would get the required load from the table in terms of required frequency PWM, and feed it to the FET, which would boost or buck (most likely buck) the voltage as needed.


The only difficult part here, as far as I can see, is the creation of that table.  Since I'm doing a numerical design of the blades, do you think it would be possible to create a "starter table" from the blade Cl / Cd characteristics?  I'm still foggy in this area.  If I could calculate a starter table based on blade performance characteristics, I could load that into a PIC.  The curve of these starter values would probably be very close to the actual values, so if I include a potentiometer in the circuit to input an offset value, we could conceivably use the calculated table and adjust the potentiometer for optimum calibration... right?  I ask because chances are I'm way off another deep end again :)


For calculating the table, once I have the blade Cp versus Windspeed data, or power versus windspeed data, and calculating for optimum load, there will be a linear relationship between RPM and frequency (I would probably end up measuring frequency), and RPM versus windspeed (TSR) so I could make an RPM versus power data, transform it to Frequency versus Power, and use that to create the lookup table.  Then the PIC would have to take three inputs: V, I, and Freq, which is very convenient.


-----


From what David wrote above, however, I suspect that there is also ANOTHER way to do it.  Is there? and if so, for completeness, what is it?

« Last Edit: February 15, 2010, 05:48:38 AM by (unknown) »

(unknown)

  • Guest
Re: Wind MPPT
« Reply #7 on: February 15, 2010, 05:55:43 AM »
Damon, I think I can answer that.


For a solar cell, the changes in V - I output are gradual, so using the "Hill Climbing" algorithm is rather easy and simple.  This algorithm adds a bit of load and checks the power, if the power has increased, we add more load... climbing up the hill.  If the power has decreased, that means we are on the other side of the hill, and need to back off the load.  So we back off the load and check the power again.


But for a wind generator, the rotating blades have inertia, so putting on a tiny bit of extra load will SEEM to increase the power, until the rotor blades have slowed down enough to notice.  So if a solar MPPT is plunked on a windmill, it can accidentally ramp up the load so fast that the generator stops - the wind isn't sufficient to provide that much power so the blades stop moving - it stalls.  Then it has to start from 0 rpm again, which means a spinup period where no power can be produced.


Additionally, when a gust comes, the MPPT would see a whole lot of power available, and would pile on the load.  The gust would by then be gone, but the load would cause the generator to stall again.


Initially I was thinking to use a Solar MPPT, modified to account for the inertia and other factors, but now I think the Wind MPPT, which is actually a Wind Tip-Speed-Ratio-Maintainer, would be better done another way.

« Last Edit: February 15, 2010, 05:55:43 AM by (unknown) »

DamonHD

  • Administrator
  • Super Hero Member Plus
  • *****
  • Posts: 4125
  • Country: gb
    • Earth Notes
Re: Wind MPPT
« Reply #8 on: February 15, 2010, 06:10:22 AM »
Hi,


Sure I can believe that it is harder than PV, thus my 'smoothed' weasel word.  For a start you're dealing with wild AC in, and you would definitely need to move slowly or cleverly to avoid being bitten by the inertia you describe.


But modern 'optimsation'/'root seeking' algorithms (eg as used in finance or engineering) have to be pretty smart anyway to deal with local minima/maxima, etc), so beyond just needing a non-trivial algorithm, is there a fundamental reason that I'm overlooking?


Rgds


Damon

« Last Edit: February 15, 2010, 06:10:22 AM by (unknown) »
Podcast: https://www.earth.org.uk/SECTION_podcast.html

@DamonHD@mastodon.social

altosack

  • Jr. Member
  • **
  • Posts: 92
Re: Solar & Wind MPPT - What's the difference?
« Reply #9 on: February 15, 2010, 06:13:25 AM »
Simplified Route to Wind Generator MPPT


Disclosure


I have not implemented the following in a wind generator; I have not even built a wind generator yet (I'm still searching for a semi-permanent resting place). In the meantime, I'm working on a microcontroller-based solar MPPT and dump load controller; I figure that it's better to work out the kinks of a buck converter with solar before I unleash the wind on it.


WARNING: I'm long-winded, there's no pictures, and there's a fair bit of math as well.


Preamble


There's a significant difference between MPPT (maximum power point tracking) with solar and MPPT with a wind generator.


With solar MPPT, it's common to vary the controller duty cycle around the current point to find the maximum power. While the actual implementation is more complicated than this, this is the basis of the Perturb and Observe algorithm that is usually used because it works tolerably well.


With a wind generator, because of prop inertia, if we perturb the controller with an increase in duty cycle, we will always get an immediate increase in current, resulting in a runaway feed forward loop. To get around this, we could:


  • Slow down the response rate to make sure that the prop inertia has settled each time before making another adjustment. This is fine with a constant wind speed, but responds very poorly to gusts.

  • As above, but continually measure the rotor response (i.e., not just RPM but also acceleration) and adjust the time step accordingly. This is a lot of development work to make sure it works for a reasonably wide variety of wind generators, which I'm not prepared to do anytime soon. I think this is what Midnite Solar has done; kudos to them, but I want my own controller, and don't want to pay that much for it.

  • Make like the big boys and record wind speed, direction, gear oil temperature, etc, and develop a complete operating profile. Note that large wind generators do not implement MPPT; the operating parameters are set based on complete state measurements (and calculations). The end result is the maximum power point (second to robust dynamic control) for the conditions because of their very accurate operating profile, but direct feedback to get to the MPP is not involved.

  • As above, but make do with just Battery volts, RPM, and a far less complete operating profile. This is my choice !


A simplifying assumption of MPPT for wind generators used here is that we are trying to make the TSR constant and equal to what we designed the blades for, and this will give us our MPP, or close enough.


Enter Microcontrollers


A microcontroller makes it pretty easy to find the relationship between RPM, battery volts, and duty cycle without using current as feedback. Well, that's a bit misleading; it uses current but it is a calculated current from both sides that cancels out when the two equations are set equal.


As you'll see below, it ends up being 2 multiplies, a subtraction, and a division for the microcontroller to figure out the duty cycle from RPM and battery volts. Even an 8-bit microcontroller could do that sequence in double precision floating point hundreds of times per second, so the response time should be as good as we want it to be.


Why would we want to do it this way ?


The advantage of using RPM instead of current is that we're not trying to maximize RPM (other than wishing the wind would blow harder !).


Consequently, there is no feedback loop; there is a defined duty cycle for each RPM (varied by the battery volts). We don't have to worry about P, PI, PD, or PID controller algorithms and tuning them to get the best response, which means dealing with the varying time constant and incorporating that into the tuning.


Caveat


This method will not work if you don't know the parameters of your wind generator (for example, if you [horrors !] bought it). However, you could measure them, probably guess well enough to make it work, or use trial and error.


In practice, this means that certain constants would have to be set in the firmware (software) to make the controller work for different wind generators, which I do not see as a problem since current microcontrollers have re-writable flash memory that makes this pretty easy, even in the "field".


If the parameters you enter are a little off, the TSR may be a little off, but it shouldn't be enough to reduce the power significantly. The most significant parameters are V/RPM, which can be very accurately measured by the microcontroller by unloading the prop for a second and reading RPM and volts simultaneously, and design TSR, which should be readily available.


It's not that intuitive, but even if the value for Cp is way off, you will still be very near the MPP; the current will just be a lot different than expected. Remember that the current cancels out of the equations, but there is a small residual effect because the line and generator voltage losses will be slightly different if the current is different than expected. The same can be expected if the line and generator impedance values are a little off.


Derivation


Definition of Terms




rho  = density of air

V    = wind speed

D    = prop diameter

Cp   = efficiency of prop (relative to 1, not 0.593)


Vrpm = open circuit volts / RPM

Voc  = generator open circuit volts at a given RPM

Pp   = power output by the prop


I    = current from the generator to the converter


Zg   = impedance of generator

Vgl  = generator volts lost to impedance

Vg   = generator volts under load (Voc - Vgl)

Pg   = power output by the generator


Zl   = impedance of line (from generator to converter)

Vll  = line volts lost to impedance

Vl   = line volts at converter (Vg - Vll)

Pl   = power at entry to converter (after line losses)


Vb   = battery volts

duty = converter duty cycle


Simplifying Assumptions


  • The converter efficiency is 100%


  • The rectifier efficiency is 100%


  • Air density is constant


  • Cp is constant


For completeness, both converter and rectifier losses could be added to the line and generator losses, if desired, and the air density could be left as a variable and calculated based on the temperature. In practice, the rather broad TSR plateau will allow these to be neglected without affecting finding the MPP; i.e., even though the actual power may be less than calculated (or more, if it's -30 C !), it will still be the maximum power available, or so close it doesn't matter.


Also, Cp could be varied with RPM to approximate it varying with wind speed (although it really doesn't vary much in the useful power band), but let's look at the forest first.


Meat of the Matter




RPM = V * TSR / (pi * D) * 60 => V = RPM * pi * D / TSR / 60


Pp  
1/2 * rho * V^3 * pi * D^2/4 * Cp


Voc = Vrpm * RPM


I   = Pg / Vg  =  Pp / Voc (non-intuitive, but work it out)


Vgl = I * Zg

Vg  
Voc - Vgl


Vll = I * Zl

Vl  = Vg - Vll


For a buck converter,

Vb  = Vl * d => d = Vb / Vl


For a boost converter,

Vb  
Vl * 1 / (1 - d) => d = 1 - [1 / (Vb / Vl)]


The important thing is to calculate Vb / Vl; then we can calculate d whether for a boost or buck converter. The following assumes a buck converter, but the method would work for either.


Working backward,



duty = Vb / Vl

    = Vb / (Vg - I * Zl)

   
Vb / [Voc - I * (Zl + Zg)]

  = Vb / [Voc - Pp / Voc * (Zl + Zg)]

 = Vb / {Vrpm * RPM - [Pp / (Vrpm*RPM)] * (Zl+Zg)}

= Vb / {Vrpm*RPM - [(1/2*rho*V^3*pi*D^2/4*Cp)(Vrpm*RPM)] * (Zl+Zg)}

= Vb
{Vrpm*RPM-[(1/2*rho*(RPM*pi*D/TSR/60)^3 pi*D^2/4*Cp) / (Vrpm*RPM)](Zl+Zg)}


It looks daunting, but since the only things in the above equation that are not constants (or very close to being constants) are Vb and RPM, the calculation will end up being:




duty = Vb / [RPM * (C1 - C2 * RPM)]


where




C1 = Vrpm

C2 = 1/2*rho*pi^4*D^5*(1/TSR)^3*(1/60)^3*(1/4)Cp/Vrpm(Zl+Zg)

   = 7.27e-5 * D^5 / TSR^3 * Cp / Vrpm * (Zl + Zg)


Implementation in "C"




/********************

 Definitions in header file


 Note that we could implement these as variables in the

 function, but by using '#define', they will be pre-

 calculated by the compiler pre-processor, and the

 microcontroller doesn't have to do it on the fly.

 
*******************


 #define  D        4.5       /
in meters (~ 15 ft)

 #define  TSR      7.5

 #define  PI       3.1416

 #define  RHO      1.29      / kg / m^3 @ 25 C

 #define  C_P      0.42      
/ YMMV !

 #define  V_RPM    0.65      / 48V Gen, optimized for MPPT

 #define  Z_G      1.2       /
Ohms

 #define  Z_L      0.3       / Ohms


 #define  C1      V_RPM

 #define  C2_1    0.5 * RHO * PI * PI * PI * PI

 #define  C2_2    D * D * D * D * D / TSR / TSR / TSR

 #define  C2_3    1.0 / 60.0 / 60.0 / 60.0 / 4.0

 #define  C2_4    C_P / V_RPM * (Z_L + Z_G)

 #define  C2      (C2_1 * C2_2 * C2_3 * C2_4)


 
* The minimum duty cycle is application-specific; it keeps

    the prop from turning too fast and will start inducing

    stall just like a directly connected wind gen, just at a

    higher (selected) RPM. It's approx. (RPM @ cut-in) /

    (~20% less than desired max RPM). This is definitely a

    trial-and-error number that will vary with your furling

    implementation and generator efficiency.


 #define  MIN_DUTY      0.35           /
~ 300 RPM @ 53V


/
*******************

 Function windGenDutyCycle


 Execution is less than 1 ms on an (8-bit) AVR at 8 MHz, and

 could even be done effectively on a PICaxe, Basic Stamp, or

 Arduino (I prefer bare silicon myself).

 
*******************


float windGenDutyCycle(float rpm, float Vb) {


   float duty;


   duty = Vb / (rpm * (C1 - C2 * rpm));


   
/ A duty cycle greater than 1 is physically impossible,

   
/ so limit it to that. This will occur at RPMs below

   
/ cut-in and is equivalent to a direct connection.


   if (duty > 1.0) return 1.0;


   
/ Also limit it to the MIN_DUTY as above.


   else if (duty < MIN_DUTY) return MIN_DUTY;


   else return duty;


} /
Yep; it really is that simple !


Comments ?

« Last Edit: February 15, 2010, 06:13:25 AM by (unknown) »

Ungrounded Lightning Rod

  • SuperHero Member
  • ******
  • Posts: 2865
Re: Wind MPPT
« Reply #10 on: February 15, 2010, 01:23:48 PM »
One approach that has been used for MPPT on mills with unknown characteristics:


 - Add a slow offset above and below the current estimate of the optimum load.

 - Give the mill a chance to react to this and change its RPM.

 - Measure the power.

 - If the power at the offset in one direction is significantly greater than in the other direction, adjust the estimate slightly in that direction.


(One analog MPPT controller, for instance, added a sub-one-Hz sinusoidal offset to the load control and looked for a signature at quadrature to the offset, integrating it to form the un-offset load.)


This works well for steady winds but can foul up badly when things get gusty - especially if the gusts last about half a cycle of the offset probe.  Voltage-to-load tables, on the other hand, work fine with gusts.


Seems to me that you could use this algorithm to take a bunch of samples at each of a number of wind speeds to calibrate your tables, then/while using the tables for the primary control.  (If you want to get fancy you could probe a bit occasionally when winds are stable and update the tables, or do even more elaborate algorithms such as keeping confidence values for each table entry and using that to decide how often to probe, keep sanity checks to try to reject gust noise, etc.)

« Last Edit: February 15, 2010, 01:23:48 PM by (unknown) »

Ungrounded Lightning Rod

  • SuperHero Member
  • ******
  • Posts: 2865
Re: Wind MPPT
« Reply #11 on: February 15, 2010, 01:25:25 PM »
Voltage-to-load tables, on the other hand, work fine with gusts.


Or so I believe (not having tested them myself).

« Last Edit: February 15, 2010, 01:25:25 PM by (unknown) »

(unknown)

  • Guest
Re: Wind MPPT
« Reply #12 on: February 15, 2010, 06:44:55 PM »
Damon,

Good question.  I hope it gets answered in this thread, because I haven't seen it answered anywhere else!
« Last Edit: February 15, 2010, 06:44:55 PM by (unknown) »

(unknown)

  • Guest
Re: Solar & Wind MPPT - What's the difference?
« Reply #13 on: February 15, 2010, 07:20:05 PM »
David,

Wow!  That must have been quite a bit of work!  Thank you for sharing it.


There are just a few things that I'm (only slightly) uncomfortable with:



  1. I   = Pg / Vg  =  Pp / Voc -- I did try to work it out, and didn't get it (then again, I was never the best at this stuff).  I'll try to have someone better than me work it out.

  2. Some things are almost constants.

  3. This has never been tested.  (I guess I'll have to do that!)




One think that I don't understand at all is why we calculate the duty cycle solely based on RPM and battery voltage!

The Battery voltage will be more or less constant, depending on the battery bank, it may vary by about +- 3 volts during operation.


And the RPM will be dictating the Vl (this is taken care of in the derivation via constants), but isn't it that we are trying to influence Vl using the MPPT?


Perhaps I'm looking at it the wrong way around, but what I see is this:  What we are doing is calculating the duty cycle based on Vl, whereas what we want to do is influence Vl using the duty cycle - shouldn't we calculate the duty cycle based on a preferred amperage for the given RPM? .  Please clarify :)


Personally, I really like the way this thread is progressing.


Are there any other methods?

« Last Edit: February 15, 2010, 07:20:05 PM by (unknown) »

altosack

  • Jr. Member
  • **
  • Posts: 92
Re: Solar & Wind MPPT - What's the difference?
« Reply #14 on: February 15, 2010, 10:21:56 PM »
Hello Linkesh,


Yes, it was a bit of work, but I did it a couple of years ago, not just for this thread, although I didn't publish it until now. It was done in html, and only slightly modified to fit here, which is why the formatting is not that good, and it repeats a few things I and others have already said in this thread.


Your questions:


How do we get I = Pg / Vg = Pp / Voc ?


I = Pg / Vg =
> Pg = I * Vg


By definition of Pgl and Vgl:


Pp = Pg + Pgl

Voc = Vg + Vgl


The power lost in the generator will be:


Pgl = I * Vgl


Substituting, Pp = I * Vg + I * Vgl = I * (Vg + Vgl)


So, Pp / Voc = I * (Vg + Vgl) / (Vg + Vgl) = I


I'm a bit uncomfortable that some things are almost constants.


Yes, some things are almost constants. Realize, however, that if the optimum TSR for a specific blade set is, say, 6.5, we will be significantly close to the maximum Cp anywhere between about 5.8 and 7.5 (it widens as the Reynolds' number goes up). This is what I refer to as the TSR plateau. Because of this, it is significantly valid to make the assumptions I did in the derivation, remembering that our current may not be exactly correct, but it will be close enough as long as our V/RPM, design TSR, and generator and line losses are reasonably accurate.


I realize these inaccuracies are rather difficult for a mechanical engineering student (I was there once myself more than 20 years ago ;-), but just remember that a calculation without error bars is fairly useless.


Why do we calculate the duty cycle based solely on RPM and battery voltage ?


Well, this is really the whole point !  We do this since we don't want to use current as an input to the calculation, because it has the feed forward runaway problem from prop inertia that you explained very well in your response to Damon.


We can, of course, neglect the variation in battery voltage; this then would be identical to what Ungrounded Lightning Rod explained, and we could use a look-up table with no dynamic calculation at all. The advantage to this would be that we could massage the table with trial and error to take care of all our other inaccuracies. I don't choose to do it this way because (1) I think the battery voltage variation will cause bigger differences than all our other errors put together, (2) a microcontroller gives us the capability to adjust for battery voltage on the fly, and (3) I prefer to calculate rather than use trial and error because I think it will be less work, it will be good enough, and, well, I have enough ego to want to try.


Another possibility would be to use a massaged table that is correct for a specific battery voltage, and then dynamically adjust for battery voltage variation by calculation.


Shouldn't we calculate the duty cycle based on a preferred amperage for the given RPM?


Well, this is really what we are doing; we're just calculating what the current should be and substituting, thereby removing the current from the calculation, and using input parameters that don't feed forward.


Personally, I really like the way this thread is progressing.


So do I !  I've been wanting to put this out there for a while, but never got around to it. I would like this to be a collaborative effort, and would not mind too much if it went in a somewhat different direction than what I would do by myself. The truth is that I'm not getting it done, and I guess I need a push. Thank you for that !


Best Regards,

David

« Last Edit: February 15, 2010, 10:21:56 PM by (unknown) »

scottsAI

  • Hero Member
  • *****
  • Posts: 884
Wind turbine MPPT controller.
« Reply #15 on: February 16, 2010, 01:13:50 AM »
Swift Arrow,


I will tease you today, it's 3am, I need to get to bed.


Tabled controller is fundamentally flawed. Yet it works. How?

Tables are perceived to be complicated and difficult to produce.

I contend tables are easy to create. No testing required assuming you know the approximate performance of the wind turbine. Theory based is sufficient = knowing blade dia.


Further; monitoring current into battery, the controller can create a table.


Closed loop controller; first level of control is RPM; Current control is required to tighten the loop. No unloaded operation necessary. Battery voltage is not necessary except to control the load dump and battery charging. P = I x Vbat. Battery voltage is fixed as far as this loop control is concerned.


Given:

RPM(TSR) = RPM at optimal loaded TSR (can't do subscript)

RPM(TSR) is proportional to wind speed. (ideally)


Fixed wind speed: RPM varies based on load. Facts:

Power = 0 at 0 RPM very stalled blade. Hint torque is not power.

Power peaks at RPM(TSR)

Power = 0 at 2 x RPM(TSR) (this is the unloaded RPM, Need reference can't find one. RPM does NOT continue to increase indefinitely without a load, blade efficiency drops to zero at some point. High winds the resulting RPM may very well exceed blades structural stress levels resulting in failure.


Plot of power vs RPM at a fixed wind speed is not a triangle, as mentioned before has a plateau. Trapezoid is closer or elliptical (hill) shape, consider a sine function.


Controller can learn loop control frequency which is dependent on RPM. Solar does not work for Wind because loop frequency is way too high. Wind MPPT needs RPM control because loop frequency is very low and changing, RPM supports a faster update keeping things under control.


We can finish this up tomorrow. 4AM good night!


Have fun,

Scott Beversdorf.

« Last Edit: February 16, 2010, 01:13:50 AM by (unknown) »

Rob Beckers

  • Full Member
  • ***
  • Posts: 146
  • Country: ca
Re: Wind MPPT
« Reply #16 on: February 16, 2010, 04:45:04 AM »
The quick answer is that there's no need to make it any more complex than table-lookup using voltage or frequency vs. power. It works. It works very well. So why bother to do anything more complex (and it is not "fundamentally flawed" as I saw someone post, the fundamentals actually dictate that it works to optimally load the turbine at any wind speed, just as MPPT is supposed to do).


The longer answer, why finding the optimum dynamically is such a bear to do for wind, while it works for solar (and pardon the engineering terms): PV is a first-order system, wind turbines are (at least) a second order system (they can oscillate, like a mass and a spring). On top of that, the dynamics of it continuously change with changing wind speeds. It's too easy get caught in an oscillation with such a system. Using some sort of moving average ("slow changes") doesn't work either; you end up either adapting to what the wind was, not what the wind is, or adapting to the average wind speed. Either way you would get very poor performance.


-Rob-

« Last Edit: February 16, 2010, 04:45:04 AM by (unknown) »

Rob Beckers

  • Full Member
  • ***
  • Posts: 146
  • Country: ca
Re: Wind MPPT
« Reply #17 on: February 16, 2010, 05:26:39 AM »
Hi Swift,


Your description is correct.

As to the "how to make a table" question: It's not trial-and-error at all. I've made dozens of tables by just using the turbine's diameter (since power goes with the square of that), reasonable values for blade and alternator efficiencies, design TSR of the blades, the alternator curve, and a few minor parameters. From this one can create a table, and as it turns out it will most likely work very well for that turbine.


Some have gone through the exercise of starting with the 'theoretical' curve as described above, then measuring the actual turbine power curve using an anemometer, and repeating that with curves that provide larger and smaller loads for the same wind speeds, to optimize the power curve. To date the conclusion is that the 'theoretical' curve is close enough for regular HAWT type turbines, and optimization doesn't really gain you much. Keep in mind that most blade profiles used in turbines are really not all that sensitive to being off by quite a bit on TSR, it doesn't change their energy production much (if any).


To get back to your question of how to get started; the blades will have an optimal angle-of-attack (AOA) at which they produce best. Depending on the angle at which those blades are bolted to the hub, this, combined with AOA, will translate to a TSR. The TSR (or rather, the RPM) is also dictated by the alternator's power curve, it has to deliver the power available from the rotor at a given RPM for each wind speed. Hugh Piggott has a very good "blade design" tutorial that describes all this in practical detail. So, once you have an optimal design TSR for your turbine you are back to the section above, to create an MPPT curve.


By the way, buck or boost depends on what you're doing: The Aurora inverters that I work with start out with a boost stage that brings the alternator voltage up to a (high) rail voltage, which is then switched by the inverter to the grid voltage. That's how they get that enormous 50 - 550V MPPT range. For a battery charger you'd need a buck stage to bring the alternator voltage down to 24 or 48V.


Hope this helps!


-Rob-

« Last Edit: February 16, 2010, 05:26:39 AM by (unknown) »

scottsAI

  • Hero Member
  • *****
  • Posts: 884
Re: Wind turbine MPPT controller.
« Reply #18 on: February 19, 2010, 10:23:32 PM »
Sorry about the delay, busy.


Couple years ago working with ELT, we discovered Solar MPPT only required maximizing battery current to maximize power into the battery. Vbat is instantaneously fixed, therefore to maximize battery current is to maximize battery power. Wind MPPT is no different.

Measuring wind turbine generator output power is more complex.


RPM is frequency, will just refer to it as RPM.


Tabled RPM power loading is fundamentally flawed. Here's why:

Tabled RPM power loading is not exact, at best a good approximation. Not a closed loop controller, conditions vary the table does not. Load Power may be closed loop, setting buck converter PWM is not. Please don't get me wrong, far better than stall control used on most systems today.

Higher winds, 2x+ more power can be realized!


Proof RPM based power loading is not exact:

Wind Turbine Power: http://www.awea.org/faq/windpower.html


P = 0.5 x rho x A x Cp x V^3 x Ng x Nb


where:

P = power in watts (746 watts = 1 hp) (1,000 watts = 1 kilowatt)

rho = air density (about 1.225 kg/m3 at sea level, less higher up)

A = rotor swept area, exposed to the wind (m^2)

Cp = Coefficient of performance (.59 {Betz limit} is the maximum theoretically possible, .35 for a good design)

V = wind speed in meters/sec (20 mph = 9 m/s)

Ng = generator efficiency (50% for car alternator, 80% or possibly more for a permanent magnet generator or grid-connected induction generator)

Nb = gearbox/bearings efficiency (depends, could be as high as 95% if good)


Air density changes based on the weather. Change exceeds 10%.

Cp is not linear over wind speed. Cp varies on the conditions of the blades (dirty, wet).

Ng is not fixed, varies dependent on the loading.


By profiling a wind turbine, RPM loading can be exact for the conditions it was tested against. Change the conditions...


Due to the TSR 'plateau', 30% power loading error still within 10% max power (assuming sine shaped plateau).


MPPT controller with knob/selector for blade dia is all that is needed to set tables!


I contend the same MPPT controller can control solar or wind if designed right, without adding much expense. Wind 3 ph rectifiers, wide input voltage swings, solar faster loop control.


It's time to take the next step in wind MPPT and close the loop and make power loading exact.


Have fun,

Scott.

« Last Edit: February 19, 2010, 10:23:32 PM by (unknown) »

(unknown)

  • Guest
Re: Wind turbine MPPT controller.
« Reply #19 on: February 20, 2010, 01:39:00 AM »
Dear Scott,


Sorry I missed your teaser altogether!


I've also read that max RPM= 2x RPM(TSR) in a textbook somewhere, so I know it's valid.


Your second-to-last line there: "...the same MPPT controller can control solar or wind if designed right, without adding much expense..."  is pretty much the precursor to the question I asked in starting this thread: what is the addition required?


As I see it, on this thread we've isolated two ways to do the wind MPPT:

  1. Lookup Tables


  2. David's Algorithm


I agree that the lookup tables shouldn't  be too hard to construct; my current thinking is to generate lookup tables based on theoretical calculations, and then use a potentiometer to dial-in a specific compensation factor after installation.


Or, if using David's Algorithm, the lookup table is not needed, and (theoretically, at least) the tables are not required, making this a full feed-forward monitoring device.


Both methods require some knowledge of the generator and rotor characteristics, and both can be implemented by monitoring only the electrical output of the generator.


Thanks for explaining the "TSR Plateau".

« Last Edit: February 20, 2010, 01:39:00 AM by (unknown) »

(unknown)

  • Guest
Re: Wind MPPT
« Reply #20 on: February 20, 2010, 01:43:02 AM »
"Hope this Helps"


It sure Does!

« Last Edit: February 20, 2010, 01:43:02 AM by (unknown) »

(unknown)

  • Guest
Re: Solar & Wind MPPT - What's the difference?
« Reply #21 on: February 20, 2010, 01:47:01 AM »
David,


Thanks for that, again!  The derivation here is on a much different track than my attempts... lol.


I'm sorry I was away from this thread for the last few days!  Missed quite a bit of activity!

« Last Edit: February 20, 2010, 01:47:01 AM by (unknown) »

scottsAI

  • Hero Member
  • *****
  • Posts: 884
Re: Wind turbine MPPT controller.
« Reply #22 on: February 20, 2010, 09:57:52 AM »
Dear Linkesh Diwan,


Both methods require some knowledge of the generator and rotor characteristics, and both can be implemented by monitoring only the electrical output of the generator.


Nope. TOO complicated. (At least not as simple as it could be).


Monitoring only input current to battery controls the loading on the wind turbine.

RPM table is a seed value to set_point battery current.

Generator voltage / resistance etc. are not important and not measured in this example.


Step 1) Buck controller adjusts to achieve battery current set_point. Thus closed loop.

This is my understanding of existing technology RPM table MPPT. (yet simpler, only monitoring battery input current resulting in the same operation.)


How does this work to achieving load matching?

The Key to understanding is to know TSR changes based on the loading. A TSR=5 blade operates at this point only when the blade is ideally loaded!


Let's assume wind turbine RPM = 100, ideal power is 100w, battery is 25v, wind speed is fixed.

Ideal loading is 4a. Yet, our table sets 3a (25% error). What happens?

Underloaded generator RPM will increase! New table value sets a higher current. This will continue until the load matches the power in the blades. Let's assume the current is now 3.7a. The RPM settles at this point because the load is now balanced to the power the blades can output. The blades are now operating at a higher TSR and a little less efficient. Cubic nature of wind power the new RPM will be around 110 RPM. Assuming sine TSR power efficiency it's now 98%, conclude the current will be closer to 4a.


Does this work if the table overloads the generator?

Yes.


No knowledge of the generator or rotor characteristics are of interest here.

No knowledge of the generators power, voltage, current output are of interest here.

Only battery input current is used to optimally load the wind turbine.

The buck inverter must be designed to handle the voltage/current range of the generator!


From the example we learned even a large error the wind generator is still loaded near optionally.

What would happen with 50% table current error?


By assuming typical system efficiency a table based on blade dia can be assumed with great results!


Must ask if tweaking this to achieve 100% efficiency is worth doubling the complexity of the controllers code?

Ask if interested.


Have fun,

Scott Beversdorf.

« Last Edit: February 20, 2010, 09:57:52 AM by (unknown) »

(unknown)

  • Guest
Re: Wind turbine MPPT controller.
« Reply #23 on: February 21, 2010, 07:14:10 AM »
Scott,


I can't pretend to fully understand your post above, but from what I gather...


You're saying that there is another way to get maximum output from the generator.  Since the power coming from the turbine is equal (well, almost) to the power going into the batteries, and the batteries voltage is tied down by the pack, then we only have to measure the battery current...  right?


Vary load to increase battery current, when battery current reaches inflection point, hold load steady.


I can't tell if you're referring to the tables as a separate method or an augment to this method: rough loading via table values and fine tuning by looking at battery current?


That's ingenious!  Wicked simple...  perhaps too good to be true  :)


I think that while this may work, I'm worried that the rectifier and buck / boost would increase the response time of the MPPT.


Must ask if tweaking this to achieve 100% efficiency is worth doubling the complexity of the controllers code?


It depends on what the present efficiency is and how much time / energy one has for the project!  Personally (in my young, idealistic, and innocent mind) I will always strive for the best!  Not that I'd actually be able to get there!  :)

« Last Edit: February 21, 2010, 07:14:10 AM by (unknown) »

(unknown)

  • Guest
Re: Wind turbine MPPT controller.
« Reply #24 on: February 21, 2010, 07:35:43 AM »
I think that while this may work, I'm worried that the rectifier and buck / boost would increase the response time of the MPPT.


If it does so, it would end up doing the same thing that Solar MPPTs do, which would mean that this discussion has come full circle!  :D

« Last Edit: February 21, 2010, 07:35:43 AM by (unknown) »

scottsAI

  • Hero Member
  • *****
  • Posts: 884
Re: Wind turbine MPPT controller.
« Reply #25 on: February 22, 2010, 08:32:32 PM »
Linkesh Diwan,


"then we only have to measure the battery current...  right?" Yes!

There may be other reasons to measure other things.

We are dealing with the simplest (yet effective) requirements to make a wind turbine MPPT controller.


"Vary load to increase battery current, when battery current reaches inflection point, hold load steady."

Ideally yes. MPPT By definition. Same answer as Solar, assuming inflection=maximum. Let's Deal with later.


"I can't tell if you're referring to the tables..."

Yes, Table method as discussed in several post here.

Wind speed based on TSR = RPM.

RPM represents the power, so by RPM power loading MPPT is achieved!

"That's ingenious!  Wicked simple...  perhaps too good to be true  :)"

YES is true and that simple! As far as MPPT is concerned. (Not my idea, learned about it here).


So far the definition, requirements for wind MPPT were covered.

A controller must be stable. Whole new subject.


Buck controller design concerns:

Buck controller must always step down the voltage, which means the input voltage must be higher.

5mph cut in to 25 MPH, the wind generators output increases by 5x.

10ft dia wind gen, from cut-in a few watts to 2.3kw at 25MPH. This Buck controller will be the most difficult part of this to design.


Have fun,

Scott Beversdorf.

« Last Edit: February 22, 2010, 08:32:32 PM by (unknown) »

scottsAI

  • Hero Member
  • *****
  • Posts: 884
Re: Wind turbine MPPT controller.
« Reply #26 on: February 22, 2010, 08:38:53 PM »
The Loop time of the MPPT must be slowed for a stable system, will be several orders magnitude slower than Buck controllers. Buck controller should be operating above 10khz more like 60khz. The higher the frequency the smaller the inductors. Too high frequency then secondary power loss comes into play.


Have fun,

Scott Beversdorf.

« Last Edit: February 22, 2010, 08:38:53 PM by (unknown) »

domwild

  • Sr. Member
  • ****
  • Posts: 357
Re: Solar &amp; Wind MPPT
« Reply #27 on: February 23, 2010, 03:10:25 PM »
Yes, I would be very interested in the derivation of the duty cycle of the buck controller.


Thanks.


Regards,

dom

« Last Edit: February 23, 2010, 03:10:25 PM by (unknown) »

domwild

  • Sr. Member
  • ****
  • Posts: 357
Re: Wind MPPT
« Reply #28 on: February 27, 2010, 03:22:49 PM »
Linkesh,


Regarding the table method. It has been explained to me this way:


Set up the mill behind your car in a trailer or on the tray. Drive at 10, 20, 30, etc. km/h and measure the wind speed (= car speed?), power produced, V, A and RPM and record all those necessary parameters.


I suspect a rheostat must be used to add an additional load to the battery load. Vary the additional load (in parallel to batt.) via the rheostat to get the inflection point, which is max. power for the logged car speed.


The PWM of the buck converter can then be set up to extract the max. Amp or power from the mill based on this table look-up given the wind speed measured via an anemometer, which corresponds to the wind speed the car was driving. As gusts do not instantaneously result in a power surge due to inertia, there must be some sort of smoothing algorithm employed for the wind speed.


One contributor to www.thebackshed.com.au had his mill destroyed due to trees along the road, so watch for that!!


Hope that helps.

« Last Edit: February 27, 2010, 03:22:49 PM by (unknown) »

GWatPE

  • Newbie
  • *
  • Posts: 48
Re: Solar MPPT &lt;--&gt; Wind MPPT
« Reply #29 on: March 23, 2010, 01:54:05 AM »
This thread has been up for a while now, and has presumably been viewed by many readers.


My understanding is that the duty cycle is the ON/OFF ratio expressed as a %.


Therefore 0% duty means the switching device is ON for 0% of the time, and similarly, 100% duty means the switching device is ON for 100% of the time.


There is reference to equations provided in a lengthy post above on 15/2/10, by Altosack,  


viz:  

--------------------------------------------------

For a buck converter,

Vb  = Vl * d > d = Vb / Vl


the above equations say,

1/. that when the battery voltage equals the input voltage, that the duty is 1, ie 100%

2/. that if the battery voltage equals 0.75 of the input voltage, that the duty is 75%

3/. that when the battery voltage equals 0.5 of the input voltage, that the duty is 50%


This will result in overloading of the windmill connected to a battery, at low power levels.


=
======================

For a boost converter,

Vb   Vl * 1 / (1 - d) > d = 1 - [1 / (Vb / Vl)]


the above equation says,


1/. that when the battery voltage equals the input voltage, that the duty is 0, ie 0%

2/. that when the battery voltage is 2X the input voltage, that the duty is 50%

3/. that when the battery voltage is 3X the input voltage, that the duty is 66%


This is the correct loading relation.  Boost to 5X is the useful limit.  


=
======================


I have an ongoing research project for a windmill MPPT.  A usable buck converter, without using a lookup table, is feasable.


The boost converter is probably still the most promising for a windmill/battery system.


Gordon.

« Last Edit: March 23, 2010, 01:54:05 AM by (unknown) »

(unknown)

  • Guest
Varying Voltage
« Reply #30 on: April 03, 2010, 02:06:30 AM »
Hi Gordan!  Thanks for that input.


I don't know much about electronics, so most of this is new to me.  The formulae (and especially your explanations) are very helpful.


In my understanding, the Voltage from the Wind Turbine will vary according to it's RPM and the applied load.  If we put a heavy load on, the wind turbine voltage will dip a bit.


So it seems that the voltage will vary from less than battery voltage to more than battery voltage (unless the bank is insanely high)... wouldn't any MPPT require both buck and boost components?

« Last Edit: April 03, 2010, 02:06:30 AM by (unknown) »

GWatPE

  • Newbie
  • *
  • Posts: 48
Re: Varying Voltage
« Reply #31 on: April 03, 2010, 05:24:37 AM »
It may, but you would not choose to design for buck and boost, when you could design for only either.


Gordon.


.

« Last Edit: April 03, 2010, 05:24:37 AM by (unknown) »

(unknown)

  • Guest
Re: Varying Voltage
« Reply #32 on: April 03, 2010, 08:38:26 AM »
If I could gather more energy from the wind turbine, it seems to make sense to go for a combined buck/boost, does it not?


I don't understand why not.  :)

« Last Edit: April 03, 2010, 08:38:26 AM by (unknown) »