Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

MPPT

Status
Not open for further replies.
Well, a constant voltage algorithm would not be a MPPT becuase he max power point varies with intensity.

Remember, your trying to put a constant load on the solar array which can mean regulating the array voltage, with the restriction that the charging voltage/current remains correct.

To throw a monkey wrench into the fan, you could say put back power into the grid when our done charing the batteries.

That diagram is an oversimplification.

In any event suppose I had a home system that:
1. Had wind power
2. Had a back-up generator
3. Had a solar array
4. Could sell back to the grid.
5. Had an MPPT on the operating point.
6. Had an MPPT array position tracker as well.
7. Had a way to dust off the array to remove snow, etc.
8. Could run off of the battery storage.

Now, throw in some clouds, rain and snow. So maybe an astrological calendar is in the future of this system.
 
This equation describes a straight line with negative slope. If you look at an actual I-V curve for a solar panel, for example the one presented by OP in the first post, it doesn't really look as a straight falling line. Rather, it goes absolutely flat until it reaches relatively high voltages, then drops down rather quickly in a very curvy way.


Hi,

Sorry but i find this reply to be just a little strange because if you read my other posts you'd see i mentioned the actual curve already. I was trying to present a similar type of device that would be easier to understand, not a working model of a solar array which we already have.
If you read two more sentences you would have seen this too:
"So you can see that when we draw load current we take current away from the array and so the voltage across the array goes down. Keep in mind that this is a very rough linear approximation to the array but it works very similar to this in principle."
Note in particular "very rough approximation". But it is really just a simpler view that's all and not to be taken verbatim.
We could look at this in much more detail though if that's what you really want to do, no problem. We could show a much much better model that looks exactly like a real photo voltaic array if you like.

Also keep in mind that you are talking to someone who has designed and modified other designs of max power trackers for solar arrays for a living at one time, many years back., and they were used in very expensive commercial products purchased by other labs and a few wealthy consumers. If i did not know the true curve of a solar array i would have been in big trouble <chuckle>. There are many things i have not done however, but this is not one of those <another chuckle>. I was working on some of the very first max power trackers on earth way back then that were used for line tied sine synthesized converters. The basic principles are the same today however and that is one thing that surprises me, that solar array technology has not progressed that much in that long time period.
 
Last edited:
Thanks a lot, KISS, NG, MrAl, for your help.

In next of couple of days I will read about MPPT whenever I get free time to get general understanding of its working.

One last query for now. Suppose, I'm using constant voltage algorithm for a buck MPPT. Then, I decide to use another algorithm such as perturb and observe, would this mean that I need to make changes to the circuit too? Or can I just load a new software into the microcontroller and keep using previous circuit. Thanks.

Regards
PG


Hi again,

To make this much, much, much simpler you could look at a battery in series with a resistor, and what it takes to LOAD that to the max power point. It's not only a solar array that has this kind of property, it's many kinds of sources, and this is sometimes viewed simply as "impedance matching", although the solar array is a special case because it's impedance changes, unlike most amplifier outputs.

When we load a real life source with series resistance internal, we see a max power point when the load resistor is the same as the series resistance. That's also the max power point.

When we load the array with the right resistance, we see a max power point too, but it changes as the sunlight changes, although there are some theories that relate the open circuit values to the max power point (i dont remember them offhand going back some 30 years now but they might be found on the web).

If you are using constant voltage then you may be measuring a limited number of parameters. You may have to include another sensor for the perturb method. So it depends on what you are already measuring really.

The most direct measurement is to measure the power of the array. If a change in a load parameter makes the power go up, you are not at the max power point yet. If the change causes it to go down when before it went up, then you just went slightly past the max power point.
When you get to the max power point no change in a load parameter will cause the power measured at the array to go up as it will only go down. That's one way you know you are there, unless of course there is changing cloud cover which could mess up the calculations.
 
One last query for now. Suppose, I'm using constant voltage algorithm for a buck MPPT. Then, I decide to use another algorithm such as perturb and observe, would this mean that I need to make changes to the circuit too? Or can I just load a new software into the microcontroller and keep using previous circuit. Thanks.

I suggested constant voltage because it's very simple and only requires two voltage sensors and one temperature sensor, and can be done even without microcontroller.

If you're willing to experiment with different algorithms, which is a very interesting task in itself, I would suggest to install at least the following sensors:

- Current sensor (shunt + amplifier) between panel and input capacitor
- Voltage sensor at panel/input capacitor
- Temperature sensor at the panel
- Current sensor at the output (shunt + amplifier)
- Voltage sensor at the battery
- Temperature sensor at the battery

If your goal is to find a good algorithm, you should be able to measure these through ADCs capable of measurements at 50-100kHz (10kHz at very least). Also, make sure that your microcontroller can process information at this speed.
 
Sorry but i find this reply to be just a little strange because if you read my other posts you'd see i mentioned the actual curve already. I was trying to present a similar type of device that would be easier to understand, not a working model of a solar array which we already have.
If you read two more sentences you would have seen this too:
"So you can see that when we draw load current we take current away from the array and so the voltage across the array goes down. Keep in mind that this is a very rough linear approximation to the array but it works very similar to this in principle."

I'm sorry, I didn't mean to offend you. IMHO, your explanation (and formula) makes a solar panel look sort of like a "bag of current" with total quantity "I", so that the load can take all or part of the total current and remainder of the current is available for other loads. Using this explanation, someone might think that he can connect a battery to the panel and it'll start taking "iLoad" current from it, then connect a second battery which will start taking another "iLoad" portion of the total current and so on until the whole "I" current is taken. Of course, other people may look at your explanation differently.
 
Thank you, KISS, MrAl, NG.

I suggested constant voltage because it's very simple and only requires two voltage sensors and one temperature sensor, and can be done even without microcontroller.

If you're willing to experiment with different algorithms, which is a very interesting task in itself, I would suggest to install at least the following sensors:

- Current sensor (shunt + amplifier) between panel and input capacitor
- Voltage sensor at panel/input capacitor
- Temperature sensor at the panel
- Current sensor at the output (shunt + amplifier)
- Voltage sensor at the battery
- Temperature sensor at the battery

If your goal is to find a good algorithm, you should be able to measure these through ADCs capable of measurements at 50-100kHz (10kHz at very least). Also, make sure that your microcontroller can process information at this speed.

I don't intend to experiment with different algorithms. I just need to know one of them which is the simplest or straightforward one of them (I will use sensors). I think when I plan to implement it I can use Arduino chip. Thank you.

Regards
PG
 
One last query for now. Suppose, I'm using constant voltage algorithm for a buck MPPT. Then, I decide to use another algorithm such as perturb and observe, would this mean that I need to make changes to the circuit too? Or can I just load a new software into the microcontroller and keep using previous circuit. Thanks.

PG,

Often MPPT is implemented as an outer feedback control loop. Hence, no changes are needed to the circuit or the DC/DC converter algorithm if you implement MTTP in such a way that the MPPT acts as a slower outer control loop.

For example, lets say you develop a DC/DC converter that operates at a set point for input load resistance (call this set point value Rin). This requires a fast inner feedback loop (perhaps PI or PID tracking feedback algorithm might be used) that monitors the input solar panel voltage Vp and controls the input solar cell current Ip to track the input voltage such that Ip=Vp/Rin. The solar panel bank will then operate with voltage and current such that Vp/Ip=Rin.

Now, the MPPT can be implemented as a slower outer feedback loop. This loop can be any type of maximizing control loop (such as perturb and observe). The control signal for this loop is the resistance set point Rin which guides the set point for the faster inner DC/DC converter control loop. The monitoring signal for the MPPT controller is the solar cell power Vp/Ip (EDIT: Sorry, obviously I meant power is VpIp).
 
Last edited:
hi PG,
Look thru this PDF.
E
 

Attachments

  • MPSCsolar1.pdf
    209.8 KB · Views: 554
PG,

You may find the following paper useful.

**broken link removed**

This paper does not consider the SEPIC converter topology. The SEPIC is well suited for input resistance control, however the disadvantage is lower conversion efficiency.
 
Last edited:
I'm sorry, I didn't mean to offend you. IMHO, your explanation (and formula) makes a solar panel look sort of like a "bag of current" with total quantity "I", so that the load can take all or part of the total current and remainder of the current is available for other loads. Using this explanation, someone might think that he can connect a battery to the panel and it'll start taking "iLoad" current from it, then connect a second battery which will start taking another "iLoad" portion of the total current and so on until the whole "I" current is taken. Of course, other people may look at your explanation differently.

Hi,

Oh ok well sorry if i mislead you. What i did in post #23 is worded it differently, so that there is no mistake that this 'new' source is the 'same' as a solar array. It's just a battery in series with a resistor now, and that's a different source but yet it has a max power point also, and it's interesting to look at that because that shows the basic max power point idea without having to delve into the complexities of a solar panel. That's all i intended all along.
So i am suggesting that we look at an ideal battery in series with a resistor which makes it a non ideal battery, then connect a second resistor as a load to this arrangement, then look at the power output of the non ideal battery. We find a similar pattern with this type of 'generator' too but it's much simpler to think about.

Here is a chart of load resistance, load current, load voltage and power using a 20v battery with a 4 ohm series resistance. This shows how the current increases but the power goes down after a certain point, and the max power point.

20 volt battery, series resistance=4 Ohms

.RL...Vo....Io....P....
010.0 014.3 001.4 020.4
009.0 013.8 001.5 021.3
008.0 013.3 001.7 022.2
007.0 012.7 001.8 023.1
006.0 012.0 002.0 024.0
005.0 011.1 002.2 024.7
004.0 010.0 002.5 025.0 *** Max power point ***
003.0 008.6 002.9 024.5
002.0 006.7 003.3 022.2
001.0 004.0 004.0 016.0


RL is the load resistance in Ohms,
Vo is the load voltage in volts,
Io is the load current in Amperes,
Po is the load power in Watts.


Note the current is higher with RL=1 Ohm but by that point we are beyond the max power point.
Also note the max power point voltage is 10 volts while the battery open circuit voltage is 20 volts.

 
Last edited:
MrAl,

That is all true. However, any power source (except perhaps some very complex ones or sources protected by breakers etc.) will have the highest voltage when it's nothing connected to it (I=0,V=Voc) and will have the highest current when you short it (I=Isc,V=0, might be very destructive with some power sources). And there will be some sort of curve in between these points, called I-V curve. Since there's no power in both (0,Voc) and (Isc,0) points, there has to be a maximum power (MP) point somewhere along the I-V curve. This is true for solar panels, for batteries, and for most other power sources.

Therefore, an MPPT controller may be used on nearly any power source. I know that people use them with wind turbines. You could use it with a battery if your goal was to get power out of the battery as fast as possible (which, of course, doesn't make much sense).

What makes solar panels different from other sources is not that the I-V curve (and consequently MP point) exists, but that the shape of the I-V curve is specific.
 
Hi again,

Yes i agree the solar panel is a specific case that is a little different than a battery because of the change in slope over the whole I-V curve.

I took a few minutes out to plot a few points on a theoretical solar cell which shows the behavior a little bit.

The open circuit voltage of this cell was approximately 0.722 volts, and the short circuit current about 1.1 amps.

test1: I=1.0113, V=0.55, P=0.5562
test2: I=1.0327, V=0.54, P=0.5577
test3: I=1.0497, V=0.53, P=0.5564

As shown above i let the voltage vary from 0.53 to 0.55 volts stepping in increments of 0.01 volts, and the power peaked at a voltage of 0.54 volts so the max power point voltage is about 0.54 volts.
I could have used a finer resolution on the step like 0.001 volt but this is good enough for an illustration of how the power goes up as we approach the max power point and then goes back down as we pass it.

Next we could look at the relationship between the max power point voltage and the open circuit voltage for several different arrays. If i remember right there is a simple (but approximate) ratio but i cant remember for sure since it has been like 25 years since i did this. It may even be the relationship between the short circuit current and the max power point current.
 
this is good enough for an illustration of how the power goes up as we approach the max power point and then goes back down as we pass it.

Controllers use this feature to limit power production when the battery is full. For example, my panels have Vmp=95V. When energy is not needed (not enough load and batteries are full), the controllers may go as high as 110V, which is almost open circuit voltage.

Next we could look at the relationship between the max power point voltage and the open circuit voltage for several different arrays.

For "regular" panels, Vmp is approximately 80% of Voc and Imp is approximately 95% of Isc.
 
Hello,

That sounds good, and i remember talking about the short circuit current being related but i also remember talking about the voltage being related, but i cant remember which one Sandia Labs preferred now.
Interesting to think about this again after so many years.
We have several panels up now around town that help power whatever.
 
Hi

I have decided to make a buck MPPT using perturb and observe algorithm. We have discussed some of the basic concepts before in the posts above but I'm starting this discussion afresh. This might mean that I will be repeating some of the questions but this time I believe I will be in a better position to frame my previously asked questions and understand your replies. Your suggestions are always welcome. Thank you.

Q1: Why do we need a temperature sensor on the panel? I understand that the panel's voltage is affected by the temperature maximum power point can simply be obtained using voltage and current sensors. In my view it doesn't matter how temperature shifts the curve, the maximum power point can still be calculated without using temperature sensor. In other words, temperature sensor is unnecessary.

Q2: I think both sets of current and voltage sensors are equally important. One set is used to calculate maximum power point and the other is used to control battery charging. But I think there is one thing missing. There should be mechanism to turn off the charger under two conditions. The first condition is that if it's dark outside and for this purpose light sensor can be used, and the other condition being that the battery has been fully charged. What do you say?

Thank you for your help.

Regards
PG
 

Attachments

  • pro_solar2.png
    pro_solar2.png
    51.5 KB · Views: 923
  • block_diagramjgh.jpg
    block_diagramjgh.jpg
    60.5 KB · Views: 885
Q1. You do not need a temperature sensor for "perturb and observe". You could use temperature, voltage and current to calculate the entire I-V curve and MPPT point so that you do not need to perturb anything, but it's totally useless for perturb and observe.

Q2. For the night disconnect you need a latching relay. You could use a diode, but that would mean loosing diode drop continuously.

Disconnecting when a battery is charged is not a good idea. Say, you have some loads connected to the battery. If you disconnect, loads will be discharging the battery while you're wasting solar energy. The standard way is to drop voltage to about 2.2V/cell and let loads use solar energy without dischargng the battery.

But you need to dial down voltage long before battery is fullty charged. This is because a battery that is close to the full charge cannot take a lot of current.

If you're going to use some different kind of battery (not lead-acid), the charging pattern might be totally different.
 
Q1: Probably true. Voc and Jsc are strong functions of temperature. Voc in particular. PANEL monitoring is incomplete without temperature.

Q2: Jsc is in esscence a light intensity monitor with strong effects with shading, so it alone can determine starts.

Remember there are two types of MPPT and they can be used together. One is shifting the operating point and one is pointing the array.

Some complex schemes like a power plant might "shake" the array to remove snow.

Clouds are longer term effects, so you might not want to perturb if the temperature did't change.

SO, i'm advocating:
1. temp is essential when monitoring the array. Voc and Jsc are temp dependent. Temp may determine if you should perturb (clouds).

2. If power drops and temp does't change is it a cloud?
Physically moving the array doesn't make sense unless the temp changes.

An easy way to do positioning is to columate the sun. A round cell cut in quarters is perfect for this. If all generate the same current your aimed properly.

SNow and clouds are real world events.

Health of the array requires temp. Jsc is proportional to "average intensity.

My guess is once yo find Vmp the first time, you can more predictively move based on temperature.

Your inensity is proportional to Voc and intensity is proportional to Jsc, so maybe both can make a better algorithm.
 
Thank you, NG, KISS.

Please note that queries in Section 1 are not that much important but queries contained in Section 2 and 3 are crucial for my understanding of this topic. Besides I understand that these are quite a few queries for a single post but you will see they are related to each other and asking them together was rather a good idea. Thank you.

Section 1:
So, for perturb and observe algorithm the temperature sensor is not required.

Do you think that we need to turn off the mppt charge controller unit and also disconnect the panel? Wouldn't turning off the controller be enough? I think the panel needs to be disconnected so that for some reason battery doesn't get discharged through the panel at night.

NorthGuy said:
For the night disconnect you need a latching relay. You could use a diode, but that would mean loosing diode drop continuously.

Can't we just use simple a **broken link removed** as the one used in automatic light switches instead of latching relay? Actually I'm unable to picture what you are saying.

NorthGuy said:
Disconnecting when a battery is charged is not a good idea. Say, you have some loads connected to the battery. If you disconnect, loads will be discharging the battery while you're wasting solar energy. The standard way is to drop voltage to about 2.2V/cell and let loads use solar energy without dischargng the battery.

First I didn't know that we also need to program the microcontroller to regulate the battery charging. I had thought we only need to track the maximum power point. Now it's clear that mppt charge controller needs two kinds of coding - one to track maximum power point and the other to track the charging of the battery. By the way, I do think that for a school project we can omit battery charge controlling part from the mppt controller and perhaps use some separate IC to protect the battery.

I don't really understand the standard way you mentioned to drop voltage to about 2.2V/cell. It might make sense to implement this standard procedure in commercial charge controller units. But I think for a school project we can use some other simple way. Let's say if there is light outside (for which light sensor can be used) and the battery is fully charged then check the battery charging after every 15 minutes. And if there is no light outside then shut down the charge controller.

I think the only way, at least a simple one, to track charging of a battery is to already know the pattern of battery charging and it's only possible if manufacturer has provided some kind of data like this one.

Section 2:
I understand the operation of a standalone buck converter. It's output voltage is less than or equal to the input voltage and depends on input voltage and duty cycle. If duty cycle is increased, output voltage increases. Likewise if input voltage is increased while keeping the duty cycle constant, the output voltage also increases. If both input voltage and duty cycle are increased, the output voltage also increases. But I get confused when buck converter is used as part of mppt charge controller. If you have some more time, please give this video a look. Now please proceed to the queries below.

I think the capacitor C_in in Figure 2 plays the role of input voltage source for the buck converter and at the same time also functions as dummy load or resistance to the panel.

An mppt charge controller is only programmed to find the maximum power point (ignoring the battery charging algorithm). An mppt only varies the rate of pulse width modulation to the switch such as MOSFET of buck converter to find maximum power point. In Figure 1, it is shown that maximum power point occurs at the same voltage for several curves. Perhaps, in reality this is not really true and maximum power point occurs at slightly different voltage values. But I would say the difference between those real voltage values won't be too much because if it were then the output voltage will vary. But as it is evident from the linked video above, the output voltage doesn't change. So, what do we conclude from this? My first conclusion would be that maximum power point occurs at roughly same voltage. My second observation would be that during search for maximum power point output voltage continuously varies because the rate of pulse width modulation is constantly changed.

Section 3:
When P_new is less than P_old then according to the flowchart the duty cycle is decreased. To me decreasing the duty cycle would mean that the charge on capacitor would increase and hence more voltage on it. Let's say P_new is the green point "A" in the power figure. To get back to maximum power point, the capacitor needs to lose some of its charge and hence voltage on it, and for this duty cycle needs to be increased and not decreased, so that the charge can get more time to flow toward the output load. Where do I have it wrong?

When P_new is greater than P_old then according to the flowchart P_old is updated with P_new and duty cycle is increased. Again, it seems kinda contradictory to me. Let's say P_new is red point "C" in the power figure and P_old is the blue point "B". Clearly P_old should be updated with P_new but I don't see why duty cycle should be increased. In my view duty cycle should either be held constant or decreased so that more charge can accumulate in capacitor which will raise it voltage. Where am I going wrong?

Please also have a look on this pseudocode.

Thanks a lot for the help.

Regards
PG
 

Attachments

  • pro_clead1.jpg
    pro_clead1.jpg
    48.7 KB · Views: 1,049
  • pro_cin1.jpg
    pro_cin1.jpg
    76 KB · Views: 1,319
  • pro_po_flow.jpg
    pro_po_flow.jpg
    109.5 KB · Views: 2,770
  • pro_cde.jpg
    pro_cde.jpg
    101.8 KB · Views: 949
Last edited:
1. Latching relay differs from a regular relay in that it doesn't consume power no matter what state it's on.

You don't really need a separate light sensor when you have panels.

The charging profile for RE system is similar for all lead-acid batteries and looks like the picture you attached.

2. There are 2 separate regimes. When battery is discharged, you want as much power as you can get, so you track MPPT and don't worry about current into battery or its voltage. When battery is nearing its full charge, you forget about MPPT and worry only about the battery voltage. The panel voltage will naturally go above MPPT.

MPPT does depend on the level of light, but very little. It does depend on the temperature to greater degree. Setting aside partial shading, that's all it depends on.

3. The flowchart is wrong. You perturb. If you see more power, you stay at the new point or move further in this direction. If you get less power, you return back. Very simple in theory. The biggest problem is to keep it stable when clouds are passing by and the light conditions change rapidly.
 
Status
Not open for further replies.

New Articles From Microcontroller Tips

Back
Top