Constant input voltage buck converter? - Page 1
Forum section: electronics / projects

author: Artlav
author_rank: Frequent Contributor
timestamp: August 29, 2014, 05:42:42 pm
content: Not the first time i asked a similar question here, but i'm yet to find a good solution.I need a converter that would:-If input voltage is at or above 16V, pass input to output.-If input voltage is below 16V, step down output voltage until input goes above 16V.Basically, a maximum power point regulator for a solar panel.A note that i don't want a linear-style regulator - if the input can do 0.5A at 16V, then the output should produce 1A for 8 Ohm load (ignoring losses).A solar panel connected to that load would do 0.5A, which is half the power it can produce, and the whole point of this exercise.My previous attempts with TL494:https://www.eevblog.com/forum/projects/solar-capacitor-charger-no-longer-works-with-pnp-instead-of-p-mosfet/https://www.eevblog.com/forum/projects/solar-charger-tl494-and-what-transistor/Ended in fiasco one way or another, so i'm looking for a proper solution.And this time i don't mind going as far as digikey and using unobtanium LT parts.

author: Pedram
author_rank: Regular Contributor
timestamp: August 29, 2014, 06:38:08 pm
content: you want something like MPPT ?http://en.wikipedia.org/wiki/Maximum_power_point_tracking

author: Artlav
author_rank: Frequent Contributor
timestamp: August 29, 2014, 07:13:24 pm
content: Quote from: Pedram on August 29, 2014, 06:38:08 pmBasically, yes.Only the "tracking" part is optional.

author: tom66
author_rank: Super Contributor
timestamp: August 29, 2014, 07:19:35 pm
content: It's a difficult challenge, probably the best way is to use a microcontroller/DSP to manage the control loop. Analog could work, but will be a right pain to set up properly. I would take a guess that the input voltage would have a fairly significant phase shift wrt to changes in load (especially if there is a lot of input capacitance, and if the solar cell reacts slowly to changes, like many do) which could be difficult to compensate for.

author: David Hess
author_rank: Super Contributor
timestamp: August 29, 2014, 09:43:07 pm
content: Ignoring the difficulties of the switch and level shift design, what you need is a standard buck converter with the feedback applied from the input instead of the output and probably inverted. Then at high input voltages, the switch will remain on and at input voltages below 16 volts, the input will look like a shunt regulator and the switch duty cycle will be adjusted to to maintain the input voltage at 16 volts.Why not just build a switching maximum power point tracker? It does not even need to be digital if an analog sampled design is used.

author: Artlav
author_rank: Frequent Contributor
timestamp: August 31, 2014, 01:38:47 pm
content: Quote from: tom66 on August 29, 2014, 07:19:35 pmI tried making a battery charger-style buck converter controlled by an AVR (based on Atmel's reference design), and it was a total failure that can't keep itself stable.In other words, microcontroller-driven feedback loop in SMPS, however awesome it might sound, does not look possible to me so far.Quote from: David Hess on August 29, 2014, 09:43:07 pmYeah, that's basically what i was trying to make with TL494, but it never quite worked, needing more and more complexity to get the bugs out.Quote from: David Hess on August 29, 2014, 09:43:07 pm..."how?" is the question asked here.

author: nctnico
author_rank: Super Contributor
timestamp: August 31, 2014, 01:56:28 pm
content: Quote from: Artlav on August 31, 2014, 01:38:47 pmIt is perfectly possible (been there done that). You just need to have some grasp of control theory and feedback loop compensation.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: August 31, 2014, 03:15:01 pm
content: Is the load resistive, CV (battery charging?), or what?Your described method will not yield a constant input voltage. If that's what you implemented, it's no surprise it didn't work...From what I've seen of solar panel characteristics, the simplest use is to hold the voltage at maybe 85-90% of full intensity OCV. OCV varies with intensity, but not as strongly as SCC, and under most operating conditions, this is near the MPP, without having to actually track it (which would only get you perhaps another 5% of energy output, practically better spent on a more efficient converter).(Open Circuit Voltage / Short Circuit Current)Tim

author: David Hess
author_rank: Super Contributor
timestamp: August 31, 2014, 04:22:13 pm
content: Quote from: Artlav on August 31, 2014, 01:38:47 pmUnfortunately I cannot provide a link showing design details because the web has a short memory. Most people would use a microcontroller to control a switching regulator but they do not know the power of the dark analog side.The switching regulator acts as a DC impedance transformer when its duty cycle is fixed so the idea is to vary the duty cycle to produce the largest output current or power. The problem is that at some optimum point, either raising or lowering the duty cycle lowers the output current and that point changes over time do to temperature, illumination, battery voltage, and whatever.So the control circuit deliberately perturbs the duty cycle a little bit and then measures the output current or power. If the output current or power goes down, then it moved the duty cycle in the wrong direction so next time it moves it in the opposite direction. In this way, it "seeks" the optimum conversion ratio between the input and output.Ideally you measure output power but with most loads like batteries where the voltage is relatively fixed, measuring the output current will work just as well.I saw a simple fully analog design to do all of the above years ago but have not been able to find a link since.Update: You are in luck. I think this is the design that I remember from EDN Design Ideas Dec 5, 2008:"Solar-array controller needs no multiplier to maximize power"http://www.mikrocontroller.net/attachment/61576/6619019.pdfThis design measures the input power to the controller but I would instead measure the output current to the battery because it is simpler.

author: ConKbot
author_rank: Super Contributor
timestamp: August 31, 2014, 04:52:32 pm
content: LT3763 Check out this "journal" on ithttp://cds.linear.com/docs/en/lt-journal/LTJournal-V23N1-02-df-LT3763-LukeMilner.pdf4 regulation inputs, FB, FBin, ctrl and ctrl2, built in current shunt amps for input and output current. Not 'full' mppt, but if you know the characteristics of your solar array you can the input voltage regulation to near your MPP.

author: Artlav
author_rank: Frequent Contributor
timestamp: August 31, 2014, 06:05:48 pm
content: Quote from: nctnico on August 31, 2014, 01:56:28 pmQuite likely - there is an Atmel demo board for it after all - but i'm yet to succeed to.Main problem i encounter is that atmega's ADC produces a lot of noise for some reason.Quote from: T3sl4co1l on August 31, 2014, 03:15:01 pmGeneric.If too difficult, then battery charging.Quote from: T3sl4co1l on August 31, 2014, 03:15:01 pmWhy, if you mean TL494 input sensing?It did work to some degree, at least the MOSFET version.Quote from: David Hess on August 31, 2014, 04:22:13 pmThanks, that is interesting, even if the example given is 10 times more complicated than what i expected.

author: David Hess
author_rank: Super Contributor
timestamp: August 31, 2014, 09:28:50 pm
content: Quote from: Artlav on August 31, 2014, 06:05:48 pmI know I have seen a simpler analog design which used a sampling loop similar to a delta Vbe thermometer but it has been lost and I do not have quite enough motivation to create an equivalent from scratch.The design from EDN could be simplified by removing the multiplier and just measuring the output current.

author: T3sl4co1l
author_rank: Super Contributor
timestamp: August 31, 2014, 10:20:10 pm
content: Quote from: Artlav on August 31, 2014, 06:05:48 pmGeneric isn't specific enough. Power has to go somewhere, and the assumption is that you have a load which can accept any amount of power. A resistor (with some tolerance) is good, or a battery (a voltage of some tolerance) is even better. What's impossible is, for example, a bench power supply (CV/CC into unknown load -- who knows if the power demanded by the load will be available, or if it even wants that much?), or anything else like that.You'll probably have to arrange for some contingency where the load isn't actually available. So you can keep running the MPP controller as normal, and shunt the extra power. Maybe by limiting the output voltage, or whatever. Or you can disturb the MPP loop and command it to draw less power or something (so the panels get slightly warmer, but you don't have to dissipate anything in your circuit).QuoteThat's not what the TL494 did. I was referring to the AVR, especially since your description sounded procedural.It's not even so much a common misconception, but a mental block, so it seems. Programmers see a situation, interpret it procedurally, then implement a binary algorithm, when what they need is an approximation of a continuous (time and value) control function.You wrote:QuoteThe analog implementation would use a comparator and switch to short output to input, for the >16V case, and would have to resort to a digital implementation to deliver the "step down" function (presumably, decrementing a register, which is compared to a constantly counting register, to implement the PWM function as MCU hardware usually does).So already, there are some really serious questions:- What clock frequency and step size is used here?- How big is the register -- how many steps does it hold? Should the steps be linear, or would a percentagewise (multiplicative) step be better?- Does the register *really* only step down? Ever? Or was it meant that the "pass" condition resets the register, thus, the operating point steadily falls until it jerks suddenly to full output again?- How does this ever reach MPP, or some approximation thereof? It will erratically jump around 16V input, but in such huge steps and so fast that it'll just be a disaster at best, and at worst, nuke itself. (Where's the current limit? Where's the voltage stability? This isn't something you can just throw capacitors at, this is fundamental!)What it should read is like this:- For a voltage different from 16V, take the integral of the negative of that voltage difference to generate the operating point variable. (Probably, the variable should also include some fraction of the difference as well, i.e., a PI term.)- The operating point sets average current, or peak current, or something like that. So, compare the operating point variable to one of these, either the switch current (turn on the switch periodically, then turn it off when the comparator fires), or in another control loop (average current), etc.- To implement average current, sense the inductor current (not the average switch or input current), and create an inner control loop, and compare that to a PWM ramp or something like that.This contains no procedural narrative, no all-or-nothing comparison -- until the absolute very end (PWM comparator or R-S latch directly into the gate driver), and is flexible for system bandwidth and operating frequency. It can be implemented entirely digitally (aside from some method to sense the input voltage and switch or inductor current), or analog (error amps and comparators).The most important thing to take away is, if there's a sudden difference in, say, input voltage, the circuit responds gradually and progressively. The proportional term means it responds nearly immediately (i.e., within a few cycles), and the integral means over time it tracks to zero difference, keeping it stable.Tim

author: Artlav
author_rank: Frequent Contributor
timestamp: September 01, 2014, 01:13:02 pm
content: Quote from: T3sl4co1l on August 31, 2014, 10:20:10 pmMakes sense.Let's focus on CC/CV battery charging, at voltages below MPP.Since the panel can never exceed the charge current limit of the battery, only two limits are needed:-The output voltage stays below the battery's CV limit.-The input voltage stays above 16V for panel to be efficient. That is, the converter takes as much current as the panel can give without dipping below 16V, and steps it down to whatever voltage the battery is at now.Quote from: T3sl4co1l on August 31, 2014, 10:20:10 pmUm, why?If there is no load, then the SMPS switch is always closed and the panel is essentially open-circuit.In case of a charger with the battery fully charged, the SMPS switch is always open, so the panel is also essentially open-circuit.What case would need a shunt/dummy load?Quote from: T3sl4co1l on August 31, 2014, 10:20:10 pmNever tried to use AVR that for this task, lacking useful results with AVR-driven SMPS before.I think what you described is called a PID regulator, and i'm somewhat at loss as to what the alternative to the described should be ("binary algorithm").

author: T3sl4co1l
author_rank: Super Contributor
timestamp: September 01, 2014, 02:58:18 pm
content: Quote from: Artlav on September 01, 2014, 01:13:02 pmExcellent. So now we've got a CV in, CV out circuit -- a little odd because those are exclusive actions, but, by using two error amps and "wired-OR"-ing their output, we can do one or the other as needed.Minus some ramp time for whichever amp to respond (the inactive one will be saturated, so it takes relatively long to integrate away from saturation -- milliseconds), but in a charging application, that's more than fine.The circuit still needs to be current mode, because that is the only safe way to operate an inductive switching circuit. But we know the current limit (that is, what the error amps saturate at when demanding full power) need never be reached, at least continuously, because that would brown out the panel. Still, it's important to have well defined limits, so you don't get nasty transient effects. Which would occur when connecting a new load, or charging/discharging bypass caps, or into a short, etc.We can also say, as long as there's voltage on either port, we can power the control circuit with that. Maybe one or the other could get shorted out (or the panel goes completely dim), but if both go down, if the controller powers down and resets, that's fine, perhaps even preferable. Point being, no need for an external power source or anything, and >8V is enough so there's no need for a converter to run the controller either.QuoteI mean a true MPP controller.Maximum Power Point is Maximum Power Point. It delivers maximum power. Period. All the time. No ifs, ands or buts. Its output does whatever it can (within design limits) to deliver that power. Maybe it's a buck and it's able to deliver it even into a short circuit (boom!). Maybe it's a boost (or both) and the voltage skyrockets until caps wheeze out!Obviously, a true, literal MPP controller isn't exactly a very good idea. But the point is to start with as ideal of a circuit as possible, and only then, add the crap you need for a practical system: current/voltage limits, start/stop/fault states, etc. You have two choices: either keep the MPP as-is, and implement the C/V limit on the back end (shunting excess current to regulate voltage from rising, or dropping excess voltage to regulate current from rising), or modify the controller itself so it ceases to be a MPP controller under those conditions. Maybe the control loop is very sensitive and difficult to compensate if you perturb it; that's probably not the case here, but concerning control in general, it is absolutely an important aspect to consider.QuoteCrap?If it were on-off instead of "stepping", it could be a bang-bang controller. Very common for loads that can really only be controlled in binary states: SSR switched electric heaters, for example. Every process controller on Earth supports this operation, with a programmable PID in front, and various process inputs (temperature, or anything else) available to wire up. They also often have 'auto tuning' algorithms, which always suck..Tim

author: David Hess
author_rank: Super Contributor
timestamp: September 01, 2014, 05:08:03 pm
content: When I was searching for link to that old analog MPPT design, I ran across a number of Linear Technology design notes and parts which implement the very thing that was originally asked about. Now they refer to it as Maximum Power Point Control (MPPC) instead of Maximum Power Point Tracking (MPPT) to distinguish the two techniques but there is some confusion because their early data sheets refer to it as MPPT for reasons that they explain:http://www.linear.com/solutions/4545

author: T3sl4co1l
author_rank: Super Contributor
timestamp: September 01, 2014, 06:40:00 pm
content: Ok, so they call "MPPC" the "hold it at a constant voltage" thing -- I wouldn't call that maximum anything, since it has little bearing on the power from a general source, but happens to be close for this one.Full MPPT periodically sweeps the operating point, which is much more in-depth than the dithering method which is a sub-part of it. The circuit linked earlier, with an oscillator and analog switches, implements the dither. The operation is simple: a periodic perturbation (of an even wave, like a sine, or 50% duty square wave) is superimposed on the average operating point; the difference from average is synchronously detected with switches, and amplified with an error amplifier. To detect power, thermally matched transistor junctions are used as log converters; an exp converter is not necessary because max(log(P)) is the same as max(P), because log is a one-to-one function (also, since all that's important is the difference, offsets due to absolute temperature are not important, so it's fine as long as the transistors are matched thermally).It's not complex, it's just another error amp wrapped around the existing system, and with some signal conditioning to generate that error.Tim

author: daveatol
author_rank: Regular Contributor
timestamp: September 01, 2014, 11:41:34 pm
content: You could use a standard DC-DC converter IC, which is regulating its output loop to your max battery voltage, then add a transistor to reduce the voltage on the FB pin when the input voltage is over 16V.

author: David Hess
author_rank: Super Contributor
timestamp: September 02, 2014, 12:47:59 am
content: Quote from: T3sl4co1l on September 01, 2014, 06:40:00 pmLT has an explanation for the confusion which amounts to, "We did not know what to call it and at the time nobody else did either. Sorry about that." I really like them for admitting it.I never noticed the constant input voltage design until this discussion.QuoteI have always referred to the dithering method as MPPT since itdoestrack a maximum power point. It is just that with some pathological cases, there is more than one point to track and it may find the wrong one.QuoteThat was clever of them. The other simpler design I saw just tracked the output current since the battery presents a roughly constant voltage load.