Author Topic: Buck Converter Pre-Regulator  (Read 8093 times)

0 Members and 1 Guest are viewing this topic.

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Buck Converter Pre-Regulator
« on: March 13, 2022, 04:56:43 am »
Greetings,

This is part of a much larger project (purely to satisfy my own learning desires) that is a programmable 0-80 V 0-10 A DC power supply, which can be programmed to output low-speed waveforms for driving electromagnets. I've already designed the linear regulator modules, and they work very well indeed. They can dissipate the full 800W for a few 10s of seconds, but they're limited by the cooling system, so a preregulator is necessary. My experience with switching converters is somewhat limited, so I'm hoping to get a bit of input from those who do this every day.

The whole system will be powered from an unregulated half-bridge based SMPS that will have an output between 90 V and 100 V (depending on the load) - that's the subject of a future thread.

I'm planning to use a TL5001A PWM controller with a fixed PWM frequency of around 50 kHz. Because this converter will potentially need to run at very high duty cycles (nearly 100%), I didn't want to use a traditional high-side gate driver like the IR2110. Instead, I'm using a pair of 15A PNP BJTs. I included a couple extra parts (marked N/U) to allow FETs or IGBTs for when I decide that BJTs are a bad idea.

The feedback for the TL5001 is taken from a *very* simple amplifier, consisting of Q6 and a few resistors. TL5001A datasheet notes that the internal error amplifier can't source more than about 40 uA of current out the compensation pins, hence the very high resistance values in the voltage divider.

This board will also serve as the control board for the rest of the system. I'm using a Raspberry Pi Pico as my microcontroller. Most of what it does doesn't really concern the buck converter. The main thing concerns the dead-time control. I'm using the DTC on the TL5001A as an enable/disable for the buck regulator. I also included a provision to use the Pico to do the PWM control, but I don't plan on using it.


With the general architecture out of the way, here are my main questions:

1) Calculating the inductance value for a buck converter is easy when parameters are known, in this case both the output voltage and the output current will vary greatly. The minimum load current will be something like 100 mA and the minimum output voltage will be something like 15 or 20 V. Does 140 uH seem reasonable, or did I completely butcher that calculation? My intention was to use about 35 turns on a micro-metals T131-26 core.

2) I know I will most likely need the snubber in parallel with D2. Any guidance on calculating ballpark values for those parts.

3) I'm not a controls guy. Any suggestions on how to approach the compensation for this? I anticipate that it will be the RC network (R24 and C16), but I'm not really sure where to start with those values.

4) I've never used a TL5001A before. Does this configuration look about right?

Those are my main questions, but it's entirely possible I made other mistakes in the schematic. Any suggestions are greatly appreciated, as this project is definitely a learning experience.
 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #1 on: March 25, 2022, 06:17:53 pm »
Not surprisingly, no replies thus far. I'm not very good at keeping my initial posts short.

Attached is an updated schematic, and the planned PCB layout. I tried to keep ground impedance as low as possible without going to a 4-layer board. I also tried to make sure that it was beefier than needed for the nominal ~10A output.

Any comments / suggestions are welcome. Otherwise, I'll be keeping this thread updated as I discover mistakes. Hopefully it can serve as a reference that I tried (unsuccessfully) to find for designing a medium-power (~800 W) preregulator.

 

Offline strawberry

  • Super Contributor
  • ***
  • Posts: 1161
  • Country: lv
Re: Buck Converter Pre-Regulator
« Reply #2 on: March 25, 2022, 07:30:52 pm »
50kHz could be upper limit for simple BJT power circuits. https://www.eevblog.com/forum/beginners/speed-up-bjt-switching/
Q5 could be current source. more control over wide input voltage range
I think MLCC C19,C20,... wont do much for BJT if there is no fast edges
D2 100V 40A recommended for 80..90V Vin
 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #3 on: March 25, 2022, 10:51:05 pm »
Looks like you caught another schematic error - D2 shouldn't be an MBR745. Looks like I forgot to change the part number in KiCAD.

I'll do a bit more digging regarding BJT switching speed. I made provisions to allow P-channel FETs instead as well.
 

Offline TopQuark

  • Frequent Contributor
  • **
  • Posts: 322
  • Country: hk
Re: Buck Converter Pre-Regulator
« Reply #4 on: March 27, 2022, 10:43:19 pm »
Not strictly answering your questions, but your project reminds me of a Linear Tech app note where they were doing buck pre regulation plus linear post regulation for a lower power programmable supply. Perhaps you will find some useful tips in it?

https://www.analog.com/en/technical-articles/high-performance-portable-dc-bench-power-supply.html
 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #5 on: March 28, 2022, 04:00:40 am »
Man that's one jank of a controller... :o

Current mode control is what you need.  This is a bit awkward for a non-integrated buck, but easy if you can split grounds (so the shunt resistor can be on the low side), or add a current sensor (typically a Hall effect sensor IC).

The reason:
What blows up the transistor?
Current.

Sense current, and you prevent it from blowing up.

(Well, sometimes.  Current is but one combustion mechanism; overvoltage and sheer power dissipation are the others.  With efficient switching, you should minimize the latter, and with a tight switching loop, you minimize the former.)

Current-mode control not just senses current, but actively sets that current to a desired value.  Current can never be any higher or lower than requested, as long as the inverter is capable of reaching that current.

A pretty attractive feature when just starting out, right?

You say you don't want current, you want voltage at the output?  That's fine -- add a second control loop to regulate that.

Thus you have an inner control loop, regulating inductor current to a setpoint; which is in turn set by an external voltage error amp, regulating capacitor voltage.

Indeed, this scheme separates the L and C responses, so that the control loop can be faster overall.  The problem with the voltage mode loop (what's shown above) is, the modulator produces PWM, which is filtered by the LC, which adds considerable phase shift (up to 180°) to the feedback signal.  Phase shift which is too much for stable control, and that's why there's the R+C "speedup" (lead-lag) network on the feedback divider: this attempts to cut the phase shift a bit, but can only do so much because resistors are not anti-inductors.  Typically the filter capacitor needs ESR as well, for the same reason.

Whereas with separate loops, the inverter and inductor can be controlled as a single-order loop (90° phase shift), which can be tuned for ideal step response; and the outer loop can be tuned as if the inner loop into the capacitor, is a single-order loop again, at say 1/3 or so the cutoff frequency.  And typically this is a higher cutoff frequency than 1 / (2 pi sqrt(L C)) (the voltage-mode limit, more or less).

More abstractly: in a voltage-mode control, the inductor current is unconstrained.  If you set some fixed PWM% into it, the inductor current will just keep rising or falling forever -- or at least until the output voltage eventually catches up to it.  How far does it go in that time?  You don't know.  This means big transient currents during startup, transient (step) load, or fault (short circuit), and, at best you need to add hacks to prevent destruction -- like clamping max PWM% at something, sensing current anyway but just stopping pulsing or something when it crosses a limit, etc.  You make the loop more complicated, less linear, harder to understand.  Whereas, if you control inductor current as a primary function, not only do you avoid transistor destruction, but you get the faster loop; and as a bonus, you can get adjustable current limiting practically for free (just add a clamp circuit to the voltage error amp's output).

And the inner loop doesn't need to be particularly well controlled -- you'd use a full error amp for an average current mode control (typical for large value inductors, giving low current ripple), but any other method will do, given its respective limitations.  A peak current mode controller (typical example: UC3843) uses an oscillator, comparator and flip-flop to set the peak current at turn-off; this works best at high current ripple (i.e. the switch is off long enough for inductor current to return to zero every cycle).  A hysteretic mode controller uses a comparator and nothing else, but the switching frequency isn't well constrained (it simply ping-pongs around as needed to keep current between the comparator's thresholds, and sometimes that requires pulse widths too short to handle by the switch, or the drop in frequency at the extreme ends of operation is undesirable for filtering purposes).

UC3843 is an excellent choice, though a bit of a force-fit for a buck application.  It's intended for boost/flyback applications: it has a low-side current sense input, and an error amp with 2.5V reference.  To adapt to a buck, you need a bootstrap or isolated gate driver, and some kind of current sensor (again, if a low-side shunt is acceptable, that's actually rather easy; if high side only, then an isolated sensor like a Hall effect will do).


This is a lot to take in, and I would suggest familiarizing yourself with the fundamentals first:

The inductor equation: V = L dI/dt
This says, for a square wave applied voltage (such as switching one end to +V/GND, while the other moves little enough to be ignored), an inductor's current moves as a triangle wave, the slope (dI/dt) being proportional to the voltage difference.  In steady state, the difference over a cycle (dI(on) + dI(off)) sums to zero, and this derives the flux balance condition for example.

Likewise for capacitors, I = C dV/dt, but at this point, you can use frequency response arguments -- or just hand-tune the control loop, starting with a cautiously over-compensated error amp and tweaking it down until the step response is as fast as it can be without undue overshoot.

Design based on ranges.  Use only as much voltage or current as you need (including suitable margin, to account for variation).  For example, the voltage error amp produces a setpoint; the op-amp can only produce voltages between its supply pins (or a few volts less, depending on type), so it's quite reasonable to let those extents be the min/max design current for the current loop.  Adjust input/feedback voltages accordingly (with resistor dividers).

Needless to say, you need some kind of oscilloscope; these are transient phenomena and you'll be hopelessly lost without some way to slow down and view those transients.  Even a one of those scope devboard thingys will work, but preferably 100MHz or more bandwidth should be available, with proper probes, scales, measurements, etc.


Once you have the control loop well understood, you can translate it into digital form.  This is... well, it probably seems nontrivial at this point, but it's actually not too bad, given enough CPU power.  And preferably a few convenient peripherals (preferably a timer/counter paired with an analog comparator, such that the comparator can stop the timer output without software intervention).  For every analog system of given bandwidth BW, there exists an equivalent sampled digital (discrete time) version, with sample rate Fs > 2*BW.  You basically write out the differential equations (the dI/dt's and such) as difference equations (ΔI/Δt), set Δt = Ts = 1/Fs, and Δx = x[n] - x[n-1] (i.e. the difference between current and previous sample).  For every resistor or amplifier, there is a corresponding multiplication or addition; for every inductor or capacitor, there is a corresponding state register.  The circuit converts into a sequence of operations to perform on those registers, and, that's DSP.

If you don't know calculus, this will all be a bit of a blur -- and you'll need calculus to fully understand and work within it -- but at least in my opinion, once you've seen how DSP is actually done, it's rather intuitive, and approachable from a computer science perspective if that might be your background.  I might even argue it's easier to go that way, from CS through DSP to analog systems, but that's perhaps a conversation for another thread.

And, if you need a simpler solution, sooner -- set this aside, use a pre-cooked method.  Use a... well, probably not an integrated regulator at this power level, but there are many controllers available in this range.  Follow the datasheet and appnotes, or even just use an eval board.  Or even buy a ready-made module; it'll be noisy as hell, probably hot too (the cheap ones anyway), but it'll probably work.  (For point of reference, I've a client with a very similar application; if you're interested, I can ask if they'd be willing to send/sell some power supply boards your way.)

Keep in mind, by the way, anything you do here, is precisely equivalent to a cute little say 5V 500mA USB input converter -- something which comes with much smaller risk of blowing transistors, or the cost thereof.  If you can motivate on the concepts rather than the goal, or tolerate adding a stepping stone towards that goal -- I strongly recommend making a scale model to work up to it!

Good luck,
Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 
The following users thanked this post: TopQuark

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #6 on: March 29, 2022, 06:29:27 am »
Man that's one jank of a controller... :o

Current mode control is what you need.  This is a bit awkward for a non-integrated buck, but easy if you can split grounds (so the shunt resistor can be on the low side), or add a current sensor (typically a Hall effect sensor IC).

//snip//

Keep in mind, by the way, anything you do here, is precisely equivalent to a cute little say 5V 500mA USB input converter -- something which comes with much smaller risk of blowing transistors, or the cost thereof.  If you can motivate on the concepts rather than the goal, or tolerate adding a stepping stone towards that goal -- I strongly recommend making a scale model to work up to it!

Good luck,
Tim

Thanks for taking the time to write that - you brought up some useful points, and the input is greatly appreciated.

I actually considered using a current-mode controller (and in fact, the UCC3843), but ultimately rejected the idea due to the complexity and general PITA of measuring high-side current with reasonable speed. About the best option I could come up with is a somewhat costly and bulky LEM sensor. Splitting grounds isn't super practical in this case - I'd still have to isolate an analog signal, which I generally prefer not to do. Ultimately my conclusion was that I don't really need super fast response time or bulletproof protection because most of that is done by the linear regulator module. The preregulator just needs to "follow along", even if that's 100 ms behind.

After reading your post, I did a little more digging, and found a few SOIC-8 hall-effect current sensors that look like they would do the job without adding much board space or BOM cost, so the UCC3843 is back on the table.


FWIW, this isn't the first switching converter I've designed. I've done a few smaller converters (<10W output) using controller chips with integrated switches. This is definitely the most difficult converter I've ever done, but I figure no matter what I'll learn a fair bit doing it. What does work in my favor is that I'm fairly well equipped with measurement tools (limited to about ~200 MHz), and I have the means to do all of my testing with a regulated, current-limited power supply for the input source. That should limit it to blown transistors rather than melted traces.

Main limitation here is going to be that my understanding of control theory isn't so hot. That's mostly my fault, though having a professor that was six months from retirement and didn't care to show up probably didn't help.

I should make it clear, by the way, that I wasn't targeting super high efficiency for this. The cooling system in this box was salvaged and is a force of nature. I may still add provisions for baker clamps on the switching transistors. I knew going into this that 50 kHz was probably pushing it for both the -26 powdered iron core and the BJTs, but there's also about 50 cfm of air blowing across this board all the time.
« Last Edit: March 29, 2022, 06:31:13 am by H713 »
 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #7 on: March 29, 2022, 08:11:23 am »
FWIW, this isn't the first switching converter I've designed. I've done a few smaller converters (<10W output) using controller chips with integrated switches. This is definitely the most difficult converter I've ever done, but I figure no matter what I'll learn a fair bit doing it. What does work in my favor is that I'm fairly well equipped with measurement tools (limited to about ~200 MHz), and I have the means to do all of my testing with a regulated, current-limited power supply for the input source. That should limit it to blown transistors rather than melted traces.

Ah, nice.  Although, you probably didn't learn much about controls using them, either?  So doing a one of those basically, but with a more basic (like '3843) or discrete control, you should learn a lot more?

Oh I should add, here's a relatively simple, fully discrete (only op-amps, comparators and reference) average current mode control, with the outer voltage loop, inner current loop, PWM modulator, and output stage.  With a couple bodgewires, I've also adapted the circuit to a compact 200W Cuk converter.
https://www.seventransistorlabs.com/Images/Flashlight2Sch.png
https://www.seventransistorlabs.com/Images/Flashlight2_Schematic.png
https://www.seventransistorlabs.com/Images/FlashlightTrio.jpg
Since it's battery powered, low-side current sense is fine (it's boost, so sensing the input side current is required).  Again, not the most straightforward thing to adapt to buck, but also not impossible -- same issues as '3843.

Also has battery undervoltage and LED overtemp protection (important for the single 18650 cell, and at up to 10W, the LEDs can get quite toasty).  The outer loop regulation, I lied a bit; it's not actually voltage, but, -- well, it's still a voltage -- but it's the voltage at the LED current sense resistor.  Note the LED voltage is also included by cruder method (zener diode), for open-circuit protection.  So it's fairly featureful as discrete circuits go.  (The LED current regulation is just to get stable output as the cell discharges, until it's unable to maintain nominal voltage.  Note that input current isn't quite proportional to LED current: the voltage ratios are a bit squishy, and so will be the light output if controlled just that way.)


Quote
I should make it clear, by the way, that I wasn't targeting super high efficiency for this. The cooling system in this box was salvaged and is a force of nature. I may still add provisions for baker clamps on the switching transistors. I knew going into this that 50 kHz was probably pushing it for both the -26 powdered iron core and the BJTs, but there's also about 50 cfm of air blowing across this board all the time.

#26 isn't going to go very high without melting (indeed, here's a chunk of it at 1MHz and 100W or so: https://www.seventransistorlabs.com/Images/1MHz_Ind_Hot.jpg ;D ), but those transistors are actually quite capable.  But you'll need a considerably stronger driver to get there.  Those exact ones are a bit sluggish at the few-MHz fT listed, but similar parts are available with a peak over 60MHz, and quite reasonable switching performance.

fT, isn't so accurate a measure of large-signal (e.g. switching) performance; it's representative I think, but not directly proportional to any switching specs.  So, keep that in mind, but also broadly speaking, switching at say fT/30 is usually pretty feasible.

The biggest difference of which is t_stg, which can be quite large; whereas t_f depends on doping gradient and stuff, so can be surprisingly small.  There were (are?) 1500V horizontal output transistors that take something gross like 2µs to turn off, but once it finally decides to, it slams off in all of 100-200ns.  Which is exactly how they did the ~100kHz and probably ~1kVA deflection systems on high resolution CRTs!

VA, is a unit of apparent power; if most of the power is returned over the cycle, the returned fraction is reactive (VARs), and only the loss is real power.  So a one of those monitors might've been switching 200V and 10A into its horizontal deflection coils at 106kHz or whatever, but it's just a coil and most of the energy returns to the system, which altogether dissipated only maybe 200W overall.

This has been a bit of a diversion, but we can use VA with SMPS as well; granted, it's not an oft-quoted figure here.  Roughly speaking, VA is ripple fraction * DC output.  Since, what is ripple fraction but AC current that was spent, that doesn't contribute to output (DC) power?  And it's not really spent, it's circulated through the supply (bypass cap) and catch diode.  And if we know the Q factor (say of the inductor), and we know the reactive power, the real power (core loss etc.) is simply VAR/Q.

[Aside: in power electronics, we generally note S = P + jQ as apparent power being a complex number, real part being power, imaginary part being reactive power.  It's unfortunate that this is the same letter used for quality factor.  So we can have an inductor that draws say Q = 100VA and P = 10W, and has a Q factor = Q/P = 10.  So, I'm sticking with the unit, VAR, to represent it for now, just to avoid that unfortunate quirk...]

So, you use crummy chokes like #26 powdered irons, at low ripple fraction, because it minimizes the reactive power, and the real power (core loss) is a constant fraction of the reactive power, because the Q factor is modest, say 5-20 range for #26 at common frequencies.  Or for your 800W output, say ripple fraction is 10%, that's roughly 80VA reactive power in the inductor, and it better have a generous size and a Q over say 16 so it's not burning up (P < 5W?).  Which, I mean, that's not beyond the pale for a #26, certainly preferable with #52 core (about half the core loss, not much better but it's something), and if you drop the ripple fraction a bit further, you'll have it (of course, you might not be able to wind enough wire on the stupid thing to get that kind of inductance :) ).

Another factoid: VA is a measure of energy.  It's circulating power after all, energy stored and released alternately.  How much is that energy change over a cycle?  It's a rotating (angular) figure, if you will: E = VA / (2 pi F) (for a sine wave, anyway).  (This is a quirk of the units, in exactly the same way that, in mechanics, N.m is torque when the vectors are crossed, and energy (joules) when parallel.  Electrical phase angle works the same way as vector angle in mechanics!)

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline profdc9

  • Frequent Contributor
  • **
  • Posts: 319
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #8 on: March 30, 2022, 05:09:08 am »
I made a project sort of like your based on the TL494.  It is a maximum of 30 V but could be modified for 80 V.

https://github.com/profdc9/FlexibleCharger/blob/main/LiFePO4smartcharger/LiFEPO4smartcharger.pdf

One thing perhaps to note in the schematic is R34/R40/Q3/R38 which is a high-side current sensor that pulls on the dead time control to increase the dead time if there is excessive peak current.  It is intended to save the transistor from operating outside its safe operating area.

If you used a high voltage 2N5551 at resistor R19 you could pull the base of Q1 low safely, as if you tried to do it directly with the collector of C1/C2 on the TL494 the collector-emitter voltage would exceed the safe limits.

It uses the PWM outputs of the ATMEGA328P to set the current and voltage limits, which could be varied to generate a waveform.  There is code in the project that already uses this to implement various battery charging schemes.

https://github.com/profdc9/FlexibleCharger/blob/main/src/BatteryCharger.ino

There is no linear control here, it just uses the TL494 for both voltage and current control.  The switching frequency is about 125 kHz.

 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #9 on: March 31, 2022, 04:23:24 am »
At this point I think I'm going to try two different versions - I'm going to try the voltage mode version, because the design is mostly done, and we'll see how badly behaved it is. I'm also going to try a current mode version around the UCC3843. That should give the optimal learning potential, and hopefully a usable finished preregulator... hopefully.

I'm also seeing that my inductor design is probably going to be marginal (or outright inadequate) at the power levels and frequencies I'm using. I'm sure there will be some iterating on that part as well. Out of curiosity, what's the "proper" core for something like this? A higher grade of powdered iron? Gapped ferrite?

Also, is there a better approach to use for gate drive when the duty cycle may be very close to 100%? Such a situation obviously rules out the use of gate drive transformers or boostrap drivers.
 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #10 on: March 31, 2022, 09:32:00 pm »
Low grade powdered iron is fine, you just need a bit more of it.  Figure the original supply was doing what, 200, 300W with one, so stack two or three and you'll be in the right ballpark, maybe ball it up with a bit more wire to get the ripple fraction down.  Although, that's diminishing returns anyway, as the relatively high mu saturates at fairly modest magnetization (~200At, depending on size and aspect ratio), so more turns tends to just push it further into saturation and, while total inductance continues to increase, it doesn't increase proportionally.

So you might want a better grade.  Lower mu, 20-60 is optimal (#26 and #52 are 75, so they're not far off), and lower losses.  Kool-Mu, Sendust, MPP and others are good, and with lower losses, a higher ripple fraction can be supported.  (Instead of a Q ca. 10, more like 30, or some even more.)

Here's a comparison using parts from my inventory, and a correct(?) calculation of core Q factor:



#2 performs the best, but having mu=10 it's a bit of a pain to use -- it's mainly used for RF inductors in the low MHz.  The MS- one is Sendust.  #8 is another generic(?) powder.  These all come from Micrometals, by the way.  They have pretty good data and tools (though their part catalog is a slog to look through).

Example of a #2 core:



That's litz cable (nylon thread served, hence the white appearance).  Even at 100% ripple fraction, and, I forget how many watts I rated that for, a few hundred?  It doesn't get hot.  Terribly overkill, but I had the materials on hand. :P

Ferrites, must be gapped, as the material has quite high mu (1000s), and energy storage is inversely proportional to mu.  Air has mu_r = 1 so stores energy very well; a hybrid of the two gives an effective mu somewhere midway between, adjustable by spacing or grinding the cores.  Or for open-airgap types like rod and spool cores, it's fixed of course (depending somewhat on where you place the winding, and how big it is).

Why not mu=1, air core all the way?  Resistance.  If we had room-temperature superconductors, it would be fine; even if we had something that was just about 20 times more conductive than copper/silver, but still not superconducting, they'd still be very practical.  But as it turns out, we're stuck with what resistance we have, and that makes air-core inductors a bit annoying at lower frequencies.  (They're fine at high frequencies, where reactance dominates better over resistance -- roughly speaking, Q goes as sqrt(F), so an air-core inductor might not be practical at 1MHz (say Q = 10) but is excellent at 100MHz (sqrt(100/1) = 10 times higher Q).  We can lower this tradeoff by augmenting the reactance with a magnetic core.)

An exact derivation for this isn't easy (I'm not entirely convinced, myself, that this is the complete story, i.e. only depends on wire resistivity and the inductivity of free space (mu_0); maybe it also depends on dimensional scale / frequency?), but at least in the practical case, for inductors of typical sizes, and applications at typical frequencies -- this happens to be the case, best mu 20~60.  Accordingly, if you happen to be stuck using aluminum, or worse, for wire -- it's not an instant curse, it just needs a higher mu_eff, and obviously will be much bulkier, but can still have reasonable Q.

As for design, basically core size is proportional to power level, given some loss figure.  Loss is important because, if you have really good heatsinking, maybe it's tolerable to just cook a part, and get it more compact as a result; other times, better to air on the large side, and win better efficiency.  Or maybe you just have the materials handy... ;D

Anyway, for a gapped ferrite of that size, probably like an ETD uh, 30 or so, would be right?  Ferrites have lower loss so you would choose this for a high ripple fraction, peak current mode control such as the UC3843.

The one catch with ferrite is, the fringing magnetic field around the air gap is quite intense, easily cooking wires nearby.  Compounded by the fact that, the airgap is usually buried in the middle, under many layers of wire -- poor heat flow.  This can be abated by simply avoiding the area (adding spacer tape, say), and using finely stranded (litz) wire which gives less cross-section to the fringing field.



tl;dr almost anything will do, given a suitable control.  But you need quite a lot of low-grade powdered iron; you'll probably have to purchase a high-grade one; and ferrite can be salvaged and air gapped, but the fringing field around the airgap can be annoying, so requires some care to manage.  For simplicity, I would suggest peak current mode control with ferrite.

As for gate drive, you can add a charge pump or isolated supply to the high-side driver, so it stays active; mind that the charge pump also pumps due to switching edges, so it'll probably end up over-powered -- a zener clamp on the high side is recommended.

Indeed, note that the buck can't even start up at all, if it doesn't have charge on the high side.  A half-bridge charges when the low side fires, but you don't have that here.  You can get startup by bleeding some current from +V into the high side supply, and ensure a minimum load on the output, so they form a voltage divider.  But it still performs weird: namely, at low output current, the catch diode isn't conducting for long enough, or at enough current, to refresh the bootstrap supply, and it can stop.  This is worse at higher output voltage, of course (where the bleed resistor delivers less current, so it might not start up at all, or run at any load current, above some Vout).

So, adding an isolated supply or something is not a bad idea, and a perfectly good way to use one of these, without having to make a half bridge. :)

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #11 on: April 02, 2022, 07:52:06 am »
Wouldn't an air core inductor also be pretty horrible from an EMI perspective?

Did a little bit more reading through some of the Micrometals documentation, I'm thinking that a T157-8 might be a better option for only a moderate increase in physical size. Thinking about 50 - 60 turns will be about right.

I did consider a #2 material, since I've got a bunch of #2 cores... but that would just replace the core loss issue with a copper loss issue since it would require so many turns.
 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #12 on: April 02, 2022, 08:31:46 am »
Part of the design process, with air cored inductors, is including adequate space around them for fields to drop off over, or to provide shielding when such space isn't available.  Simply depends on the amount of attenuation required.  Consider RF/IF tuning cans: for a typical application like IF interstage tuning, >60dB is required to avoid oscillation.  Which is to say, k << 0.001.  For point of reference, that'd be around a 5.2D separation, for single-layer solenoids of height and diameter D, in the "worst" (coaxial) orientation.

Or, I had this in an induction heating power supply design many years ago: an internal tuning coil, something like 12 turns of 3/8" copper tubing, 4" dia., 8" long I think it was?  Not ferrite cored, in part because at these currents (~300A), it takes a lot of core to avoid saturation.  We had to cram that thing inside the aluminum chassis, along with electronics and other bits.  It got rather hot as a result.  (The first prototype, with steel walls, we called the pizza oven.  We, uh, moved to aluminum pretty quickly -- aluminum reflects more magnetic field than it absorbs.)  Some ferrite plates in choice locations provided a shortcut for some particularly tight field lines, reducing case temperature to touch-safe levels.

Mind that #8 mix is okay for modest ripple fraction, but not nearly 100%.  It's just okay, it's not great.  Expect to need more like a T225, or a stack of like three 157s maybe.  Which is about what I had recommended for the #26 case (the average ATX PSU filter choke uses around a T157), just having a lower ripple fraction.  Basically, it's lower mu and lower loss, but, probably about in equal proportions, so it's not higher power density.

Ah, I don't think I'd thought of that particular relation before, nice.  Probably why you see #26 and #52 so much then; why bother with the cost of #8 if you aren't getting any size reduction / capacity increase, meanwhile you're just putting more ripple into your electrolytics?  That said, the frequency tradeoff somewhat favors higher frequencies, which is neat.  But at such frequencies, you're likely using composite or ferrite inductors anyway, or something completely different like a resonant topology.

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #13 on: April 02, 2022, 06:54:39 pm »
Alright, a quick update.

I got to thinking about it, and I'm making some pretty big tradeoffs in order to be able to run at very high duty cycles nearing 100%. The more I think about it, the more I realize that it would be easier to just increase the input voltage up to 120 - 150 VDC (I have yet to wind the half-bridge transformer, so this change is relatively easy to make), and then use a more typical high-side driver.

The downside to this is that 100V rated parts (which were a little marginal before, but would have probably worked) are now a no-go, but I think that's a reasonable tradeoff since it also cuts out a few large, hot and costly parts. At this time, I'm thinking it's a worthwhile tradeoff.

Still tweaking around with inductor calculations. I'll probably just allocate board space for a T200-26B core (which I have many of in stock from a past project). That also leaves enough space for a reasonably chunky gapped ETD ferrite core.
 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #14 on: April 02, 2022, 08:38:01 pm »
Might as well just do it offline with a half-bridge forward converter then?

Definitely take that slowly, mains voltage is nothing to play around with.  Neither is 80V for that matter, it's technically above SELV...

Expect to need ratings >30% above nominal.  No way you're getting away with 100V parts at 80V input.  150V at least, and probably 200V are more abundant -- better choice.  For offline (mains powered) stuff, typical ratings go like:

InputRectifierTopologyRating
120VAC  FWBHalf/full bridge200-250V
120VACFWBFlyback400-700V
120VACFWBPush-pull500-700V
120VACDoublerHalf/full bridge500-700V
240VACFWBHalf/full bridge500-700V
240VACFWBFlyback800-1200V

Also, 1-switch forward same as flyback; 2-switch forward same as h/f bridge.  Flyback is similar to push-pull except the peak ratio is a design parameter, not fixed by symmetry, hence the slightly different values.  PP not recommended for 240V+, or really even at 120V, but it's excellent for lower voltages and high currents.

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #15 on: April 02, 2022, 09:32:36 pm »
Nah, I'm going to limit this one to a buck converter, because I've got other uses for a buck preregulator in the more distant future. It's easier to justify the time when I know that I've got other uses in the future. The offline portion will be an unregulated half-bridge converter. That's coming as my free time permits.

I won't go into too much detail, but the voltages and power levels here are somewhat lower than what I usually deal with in larger power amplifiers. In fact, the half bridge converter probably won't be too different from what's used in a lot of bigger touring amplifiers.
 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #16 on: April 03, 2022, 12:01:46 am »
Oh, that explains the power BJTs then!

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #17 on: April 03, 2022, 06:49:39 am »
Yeah, I tend to stock quite a few power BJTs.

Here's a preliminary schematic and PCB layout for a current mode version. You can be sure there are errors (probably some pretty dumb ones). IR2110 for the gate driver. Footprint for the inductor is based off a T200-26B core.

 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #18 on: April 03, 2022, 11:38:56 am »
Electrolytics are all backwards, by which I mean, probably more like four at the input and one or two at the output.  Check the RMS ripple current in each location. :-+

Hard to see some things, like, ahh, so C24-C27 are bottom side then?  Seems like there's very little on the bottom, which is nice.  And mostly just what's needed, a few jumper traces, bypass caps, and the current sensor.

Let's see, didn't give the complete number of the sensor so can't check the range here, so, beware which one you get and maybe provide a voltage divider or even op-amp to be able to match it to the 0-1V range of the CS pin (or the whatever range of the ADC).

Also that sensor isn't terribly fast, 80kHz bandwidth; you'd want more like 200kHz+ for a peak current mode control.  Last I checked, these sensors aren't very well stocked in general, but I did find the MLX91220 family that, while a bit more expensive, performs much better (faster) than competitors.  May be an option here.

Which... heh, man, that ADC is crusty.  Impressed that they actually give an explanation in the datasheet though.  So, the DNL is crunchy as hell, every 512 or so codes.  You may want an external ADC for better performance; can also get one faster, perhaps enough to properly resolve the switching waveform.

Or if you're just averaging over the waveform, mind that you should take samples at some increasingly skewed time with respect to the timer (gate drive waveform), so as to get equivalent time sampling.  That is, say you trigger 4 ADC samples (as a burst series) per timer cycle; on the first, trigger it immediately, second wait some microseconds before trigger, third wait some more, etc., until eventually the delay equals the sample period and it loops back to zero delay.  Or if the ADC is left free running, you get this for free when the sample rate and timer frequency are at a reasonably complicated ratio to each other: like 19/20ths so every 20 cycles, they line up in phase again.  But definitely not a 3:2 or 3:4 or whatever rhythm, that won't sample very many points along the waveform.

Anyway; gate drive, should probably add some test points so you can figure out something to do with high-side supply.  As shown, there's no current path to charge C30, so it just never does anything.  If the output starts at 0V (say at initial startup, no load connected), it can charge through L1 and the output caps, and start up once.  However once it's operating, and load current drops so that I_L1 (during the reaction phase, D2 conducting) is insufficient to maintain C30, or duty drops to 0%, then the high side will eventually use up C30's charge and turn off, and then it's left hanging high and dry (somewhat literally).

Huh, what's the via under C10?

What's going on with Q4, Q6, REG_OUT and the sense divider?  Also why is the sense divider so low impedance (R29 = 700)?

R15 is better in series with C16, than in parallel -- I don't have a clue why so many old appnotes show it this way, but it gives worse performance.  The series connection affords the same pole from the capacitor, but also a zero, extending phase margin: compensation is about as easy to tune, but can achieve higher performance.

Note that UC3843 is unsuitable here as its peak current mode control demands high ripple fraction, the opposite of what the inductor is suitable for.  Slope compensation is also not shown (which allows ripple fraction down to maybe 30%, at cost of looser current limit under fault conditions; still nowhere near enough for the core).

Slope compensation is pretty easy by the way; just an emitter follower from C29, collector to VREF, emitter to resistor to CS.  The resistor into R12 (or whatever other source impedance you'll have) acts as a voltage divider, introducing some of the timing ramp signal into the current sense ramp signal.

For average current mode control, the 3843 could still be used, but as a voltage-mode control (0% current sense to CS, all timer slope), using its internal error amp to regulate current (current sensor to FB, instead of voltage sense divider).  Add another op-amp (oh hey, you could use a dual e.g. TLV2372 then) to regulate output voltage.

TL494 can also be used in the same way, though UC3843 is faster and more compact.

So that's probably a bit lengthy, but partly reiterating things I've said before, or things you're probably already aware of.  As dumpster fires go, it's more like a smoldering one at worst: the switching loop is essentially as compact as you can get with leaded components; ground plane is solid, bottom-side traces having been used sparingly; placement is compact and straightforward; conductor size is adequate; etc. :-+

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #19 on: April 03, 2022, 06:12:25 pm »
The footprint for the T200-26B core was mostly done as a big placeholder for now. ATM, I'm leaning towards a gapped ETD core, at least for the current mode version. The current option I'm evaluating is a pair of B66361G1000X187 cores, which would give a gap of 2mm (this is using a pair of gapped core pieces, rather than the 1mm it would give with one gapped and one ungapped core piece).

The whole mess with REG_OUT, Q4, Q6, etc is confusing at first - REG_OUT is the output of the final linear regulator, located on another board. Q6, R22 and R26 form a very lazy differential amplifier to sense the voltage dropped across that linear regulator. I looked at a few ways of doing this, but ultimately I saw that almost every pre-regulator design keeps the differential amplifier simple and fast.

Q4 is an output crowbar, controlled by the microcontroller. This doesn't bear much relevance to the buck converter, but it's located on the same PCB. The IRF540 there is an error - I often use the IRF540 symbol and footprint for TO-220 MOSFETs, but change the part designator. Looks like I forgot to change the part designator. In any case, the crowbar operates infrequently, and only for a few hundred milliseconds at a time.

As for the current sensor, I was a little worried about the 80 kHz bandwidth - sounds like my concerns were valid. In any case, the footprint looks like it's the same as for a better chip. I liked the TI chip because they seem to be better stocked than others, but that might be for a reason...

As for the gate driver:
With the current plan of a ~130 V input voltage, the duty cycle should never approach 100%. If I'm thinking about this correctly, any time Q2 is off, its source will be something like 1.3 V above GND (forward drop of D2 under load). C30 then charges through D3 to approximately 10.7 V. So long as there is a bit of off time (should need much), C30 should remain charged.

And if I'm also thinking about this correctly, using peak current mode control, the supply will not reach 100% duty cycle even during transients, so it shouldn't ever run into a situation where C30 is discharged. Obviously that would be a bad situation, because Q2 could then end up in its linear region and self-destruct.



Doing the PWM control through the microcontroller is a more distant project. To make a long story short, I chose the Pico for the system controller because they have adequate performance (that is to say, it's better than an Arduino Nano) and I can reliably get them right now. Not only do the ADCs in the Pico kind of suck, there aren't nearly enough of them. As time and supply chains permit, I have plans of coming up with my own dev board (which will be the same physical size) that is better suited for my purposes. Given how much work it is to do C++ development for an RP2040 on Windows, it probably won't involve the RP2040.


 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #20 on: April 03, 2022, 10:23:42 pm »
Got it.

As for the gate driver:
With the current plan of a ~130 V input voltage, the duty cycle should never approach 100%. If I'm thinking about this correctly, any time Q2 is off, its source will be something like 1.3 V above GND (forward drop of D2 under load). C30 then charges through D3 to approximately 10.7 V. So long as there is a bit of off time (should need much), C30 should remain charged.

Below -- L1's charged by Q2, then its current tries to remain constant, and pulls that current out of D2.  If D2 didn't catch it, the voltage would swing considerably negative (depending on what current it was charged to, of course).

This works in your favor, slightly overcharging it, which is fine.  (Mind also the VS voltage below GND rating -- bootstrap gate drivers only work from the ground side for a reason!  Part of the reason why a tight switching loop is important.  Also means a diode with low forward recovery is required, but that should be pretty common.)

But therein lies the catch: if the load current goes low enough, L1's kick might not even forward-bias D2, and so C30 doesn't get any charge.  There's absolutely no guarantee that D2 conducts, for any arbitrary time before Q2 needs to turn on; it's a passive diode, not an active driver, there's no way to anticipate the future need.


Oh, just realized D2 isn't on the schematic, only its part number.  Small error.  Oh wait wait... I found it!  Under U5, hah!


Quote
And if I'm also thinking about this correctly, using peak current mode control, the supply will not reach 100% duty cycle even during transients, so it shouldn't ever run into a situation where C30 is discharged. Obviously that would be a bad situation, because Q2 could then end up in its linear region and self-destruct.

BTW, a nice feature of peak current mode is, it doesn't matter if it stays at 100% for a little while -- it simply stays high long enough for current to build to the requested value.  The 3843 also has a blanking pulse from the oscillator to the output, preventing it from reaching actually 100%, but 97% or so (though the datasheet says max 100%, which is kind of disturbing?).

Maybe not so nice a feature [the basic behavior] in context of this bootstrap gate drive, but that blanking feature then can help out a little I guess.


Quote
Doing the PWM control through the microcontroller is a more distant project. To make a long story short, I chose the Pico for the system controller because they have adequate performance (that is to say, it's better than an Arduino Nano) and I can reliably get them right now. Not only do the ADCs in the Pico kind of suck, there aren't nearly enough of them. As time and supply chains permit, I have plans of coming up with my own dev board (which will be the same physical size) that is better suited for my purposes. Given how much work it is to do C++ development for an RP2040 on Windows, it probably won't involve the RP2040.

Eh, it should be quite capable.  Excepting the ADC of course, but even that level of crunch might be tolerable for control purposes, or with calibration or dithering, or with an external ADC.  Certainly agree ATMEGA328 isn't really enough to do an SMPS.  The XMEGAs have more powerful peripherals, but aren't very popular or cheap; the newer mega0, tinyAVR, AVR-DA, AVR PWM, etc. have features making them quite usable though.  (Which, I think are basically adapting features already used in PICs for some time, into the AVR family?)  But I don't think Arduino is available on them yet, and ARM is the next step up in that ecosystem (e.g. Due).

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline mawyatt

  • Super Contributor
  • ***
  • Posts: 3260
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #21 on: April 04, 2022, 01:18:19 am »

Once you have the control loop well understood, you can translate it into digital form.  This is... well, it probably seems nontrivial at this point, but it's actually not too bad, given enough CPU power.  And preferably a few convenient peripherals (preferably a timer/counter paired with an analog comparator, such that the comparator can stop the timer output without software intervention).  For every analog system of given bandwidth BW, there exists an equivalent sampled digital (discrete time) version, with sample rate Fs > 2*BW.  You basically write out the differential equations (the dI/dt's and such) as difference equations (ΔI/Δt), set Δt = Ts = 1/Fs, and Δx = x[n] - x[n-1] (i.e. the difference between current and previous sample).  For every resistor or amplifier, there is a corresponding multiplication or addition; for every inductor or capacitor, there is a corresponding state register.  The circuit converts into a sequence of operations to perform on those registers, and, that's DSP.

If you don't know calculus, this will all be a bit of a blur -- and you'll need calculus to fully understand and work within it -- but at least in my opinion, once you've seen how DSP is actually done, it's rather intuitive, and approachable from a computer science perspective if that might be your background.  I might even argue it's easier to go that way, from CS through DSP to analog systems, but that's perhaps a conversation for another thread.

About 50 years ago in the early days of DSP came across a paper that described how to "visualize" and analog system moving onto the DSP sampled data domain. This was a brilliantly simple means to visualize how the analog system would behave under sampling, and how the sampling effects the analog system.

The idea is too realize that analog systems can be considered special cases of a Digital Sampled system, the special case is the sampling rate is infinite, or the sampler period approaches zero.

If one draws a chart with real and imaginary axises, then plots the analog system poles and zeros. Now imagine the imaginary axis is created by a radius of infinity from the origin. The radius is the sample rate, thus analog has an infinite radius and the imaginary axis extends to +- infinity normal to the real axis.

The analog system poles and zeros don't move as is often perceived, but the imaginary axis does and becomes a circle of the sample rate radius!! You can easily "see" how as the radius decreases due to a lower sample rates the imaginary axis bends and begins to approach the complex poles and reduce overall system stability, and of course when the sample rate is low enough that the imaginary axis bends and intersects the complex poles you now have an oscillator!!

Anyway, just thought this might be useful and maybe a long forgotten illustration of how sampling effects analog feedback systems....wish I could remember or find that paper ???

Best,
« Last Edit: April 04, 2022, 01:29:37 am by mawyatt »
Curiosity killed the cat, also depleted my wallet!
~Wyatt Labs by Mike~
 
The following users thanked this post: T3sl4co1l

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #22 on: April 04, 2022, 02:48:54 am »
Alright, I see the potential issue here. Makes perfect sense. I see two obvious solutions.

1) Use an isolated DC-DC converter for a high-side supply. Something like a PDSE1-S12-S15-S would take up very little board space and adds negligible cost.

2) Replace D2 with a FET, utilizing the other gate driver in the IR2110.

#2 would lower losses (which isn't a huge concern here anyway), but also introduces potential issues with cross conduction.

 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #23 on: April 04, 2022, 03:43:58 am »
Yeah, that's fine.

Those dumb little DC-DC modules, have nothing in the way of protection or control, so treat them carefully.  Short the output, overvolt 'em, whatever, goodbye magic smoke.  Will be fine here, but just FYI. :-+

#2 would be great, but requires a control scheme for it.  It's not enough to simply complement the high side; well, it could, but it will be particularly inefficient at light loads, as the controller is constantly fighting itself, in effect.  This can be good for quick response -- the synchronous rectification means it serves equally well as boost or buck, making the output very agile / responsive.  I'm not sure that peak current mode control is good here; but I have seen sync regulators with it, usually also with a output-disable-at-zero-crossing (i.e., active rectification), or burst mode at light load, mode.

For posterity, I drew up the average current mode version:
https://www.seventransistorlabs.com/Images/Average%20Current%20Mode%20UC3843.pdf
Note the external error amp required to regulate voltage, and the two compensation networks (R5+C10, R13+C12), one for each loop.  Obviously, for buck, swap the diode and transistor and add a level shifter / bootstrap / isolated gate driver.

A TL431 can't quite be used as error amp, for everything as shown here; it needs to saturate to below 2.5V, so that the currents in R9 and R2 balance versus the midpoint at 2.5V.  (Note that the current sensor will be the symmetrical kind, biased to 2.5V or VCC/2 at 0A.)  TLV431 could, though.  Or an optoisolator (which doesn't even need a series or pullup resistor, it can tug on the VFB node directly, also increasing its bandwidth because its Vce changes very little that way), not that this is isolated to need one.

A flyback (isolated) version is more difficult, as half the time, the inductor current is flowing through the secondary side.  This could be solved by using a Q1 source sense resistor (primary side sense, no need for high side sense anymore), and wired-OR-ing a current transformer into it (secondary side sense).  An op-amp would probably be needed to get the sense voltage up to the required level (~2.5V) without incurring excessive drop across the shunt resistor.  Alternately, two current transformers or sensors could be used, combining their outputs appropriately.

Forward isn't much harder however, because the current sensor can go on the secondary side inductor just fine.

Let's see, what else... Ćuk is easy, a single low-side shunt resistor can do the job.  Again, probably want gain there.  SEPIC I think can be done nearly the same, but I don't think a common shunt resistor can be used, not if it's still a common ground design, so two of those plus whatever gain and combining is needed.

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 6202
  • Country: ro
Re: Buck Converter Pre-Regulator
« Reply #24 on: April 04, 2022, 04:19:03 am »
If one draws a chart with real and imaginary axises, then plots the analog system poles and zeros. Now imagine the imaginary axis is created by a radius of infinity from the origin. The radius is the sample rate, thus analog has an infinite radius and the imaginary axis extends to +- infinity normal to the real axis.

The analog system poles and zeros don't move as is often perceived, but the imaginary axis does and becomes a circle of the sample rate radius!! You can easily "see" how as the radius decreases due to a lower sample rates the imaginary axis bends and begins to approach the complex poles and reduce overall system stability, and of course when the sample rate is low enough that the imaginary axis bends and intersects the complex poles you now have an oscillator!!

Anyway, just thought this might be useful and maybe a long forgotten illustration of how sampling effects analog feedback systems....wish I could remember or find that paper ???

Out of curiosity, searched for 'relationship s-plane z-plane', and the oldest found was from http://hparchive.com/Application_Notes/HP-AN-243-4.pdf (page 3).  There were many others more recent, e.g. this page 4 of some lecture notes https://neuron.eng.wayne.edu/auth/ece4330/lectures/lecture_24_ece4330t.pdf, or page 5 in http://www.dspguide.com/CH33.PDF, etc.

The funniest finding was an interactive demo at http://controlsystemsacademy.com/0003/0003.html  :D
Also this for the visual animation:  https://youtu.be/acQecd6dmxw
« Last Edit: April 04, 2022, 04:29:30 am by RoGeorge »
 
The following users thanked this post: T3sl4co1l, mawyatt

Offline mawyatt

  • Super Contributor
  • ***
  • Posts: 3260
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #25 on: April 04, 2022, 01:16:38 pm »
If one draws a chart with real and imaginary axises, then plots the analog system poles and zeros. Now imagine the imaginary axis is created by a radius of infinity from the origin. The radius is the sample rate, thus analog has an infinite radius and the imaginary axis extends to +- infinity normal to the real axis.

The analog system poles and zeros don't move as is often perceived, but the imaginary axis does and becomes a circle of the sample rate radius!! You can easily "see" how as the radius decreases due to a lower sample rates the imaginary axis bends and begins to approach the complex poles and reduce overall system stability, and of course when the sample rate is low enough that the imaginary axis bends and intersects the complex poles you now have an oscillator!!

Anyway, just thought this might be useful and maybe a long forgotten illustration of how sampling effects analog feedback systems....wish I could remember or find that paper ???

Out of curiosity, searched for 'relationship s-plane z-plane', and the oldest found was from http://hparchive.com/Application_Notes/HP-AN-243-4.pdf (page 3).  There were many others more recent, e.g. this page 4 of some lecture notes https://neuron.eng.wayne.edu/auth/ece4330/lectures/lecture_24_ece4330t.pdf, or page 5 in http://www.dspguide.com/CH33.PDF, etc.

The funniest finding was an interactive demo at http://controlsystemsacademy.com/0003/0003.html  :D
Also this for the visual animation:  https://youtu.be/acQecd6dmxw

Those are good references but not the one I recall from way back. Think the article was from TRW in ~1979 titled "Introduction to the Z transform and its derivation" by Karwoski, found it here:

https://www.computerhistory.org/collections/catalog/102675015

Recall if you take the S Plane plot of the analog feedback system poles and zeros, then change the imaginary axis to a circle of radius sample rate with origin at sample rate from Real Axis 0, so left <-- from 0. As the sample rate decreases from infinity (analog equivalent) the imaginary axis bends towards the system's poles. If these poles are complex then the system's dynamics are affected as the axis approaches the complex poles the system becomes more unstable and becomes an oscillator (completely unstable) when the axis crosses the complex poles. Note that if the system has no complex poles then the system is completely stable under any sample rate.

We were interested back then for Digital Communications and delving into the hybrid area of Discrete Time Continuous Amplitude signal processing.

Anyway, interesting stuff from way back!!


Best,
Curiosity killed the cat, also depleted my wallet!
~Wyatt Labs by Mike~
 
The following users thanked this post: RoGeorge

Online RoGeorge

  • Super Contributor
  • ***
  • Posts: 6202
  • Country: ro
Re: Buck Converter Pre-Regulator
« Reply #26 on: April 04, 2022, 02:18:18 pm »
Thank you for taking the time to find the exact paper.
Too bad I couldn't find any online copy, only citations.   :-//

Offline mawyatt

  • Super Contributor
  • ***
  • Posts: 3260
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #27 on: April 04, 2022, 03:16:33 pm »
Also couldn't find a copy, only the museum paper reference (shows how old this is).

Best,
Curiosity killed the cat, also depleted my wallet!
~Wyatt Labs by Mike~
 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #28 on: April 05, 2022, 06:18:32 am »
Here's the next version with a few changes.

1) The Melexis sensor is a bipolar current sensor operating from a single supply rail, so there is a 2.5 V offset. For now I added a coupling cap, but I need to think for a while about why that could be a problem. I'd like to avoid having to add a negative voltage rail, and if I were to use a rail-to-rail op-amp it would need to be one that could swing really close to ground. I need to spend a bit more time thinking about why an AC coupled current sensor might be problematic - more to come.

2) Added a DC-DC converter for driving the high-side FET.

3) R15 and C16 are now in series rather than parallel.

4) The op-amp used for buffering the temperature sensor output is now an MCP6001 powered from the 5 V rail  to save board space.

5) Added a bunch of electrolytic input caps.


 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #29 on: April 05, 2022, 08:14:35 am »
Oh yeah don't do that, coupling cap means output current limit increases over time, say for a step change in load.  Just use another op-amp to shift the offset back down near 0V (maybe a little off say 0.1V so everything stays linear).

Tim
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #30 on: April 06, 2022, 07:15:10 pm »
Corrected, along with an updated voltage-mode version.

Assuming there are no glaring issues (I haven't noticed any, but that doesn't mean they aren't there), I think that my next step will be to do a little more refinement on the inductor design.

The voltage mode version should be fine with a big #26 core, which I have on hand. For that type of converter, I know there is some flexibility in the choice of inductor value, and from the calculations I did I should be okay with 100 - 150 uH.

The peak current mode version has much higher ripple currents in the inductor, and I'm not entirely certain as to how I should go about selecting an optimal inductance value.

As mentioned previously, I'm considering an Epcos ETD34 core with a 2mm gap and a cross sectional area of about 97 square millimetres. I also have a couple of N87 ETD39 gapped cores I bought on eBay a couple years back for a different project that never happened. I'll see if I can dig up the original listing, but my notes say that they were originally advertised as having a gap of 2.8mm and an Al of 220 nH/T^2, so those might be a candidate as well.

 

Online T3sl4co1l

  • Super Contributor
  • ***
  • Posts: 21675
  • Country: us
  • Expert, Analog Electronics, PCB Layout, EMC
    • Seven Transistor Labs
Re: Buck Converter Pre-Regulator
« Reply #31 on: April 07, 2022, 06:41:56 am »
Oh and I see what Q6 is doing now, yeah that's fine.  Note that C17, R28 don't do anything (well, R28 might save some power dissipation in Q6, but has no dynamic effect at least).

U4 might actually want more like 0.5 gain, so you're using the full 2V or so range of the current sensor; but that's easy, just resistors, and not a huge deal overall (extra 6dB of dynamic range).

What's R2 for?

For voltage mode -- if you must -- for phase lead compensation, put an R+C in parallel with R22.  Since you can't do that in the C17-R28 location.  Also I wonder if ceramics on the output are actually a bad idea.  (Doesn't mean have to remove them from the design of course, just non-pop.  Try it both ways I suppose, see which has better transient response.)

These are close enough, can you not make a single board dual-pop?  Probably, using the one SOIC8 footprint would be too much a stretch (lots of option jumpers, basically nothing functionally in common between the pinouts), but using both side by side would definitely fit.

Would love to see an average current mode 3843 version, now that I've drawn but not tested that mode, heh.


The peak current mode version has much higher ripple currents in the inductor, and I'm not entirely certain as to how I should go about selecting an optimal inductance value.

Simple: 100% current ripple.  So, if Fsw = 50kHz and D = 50%, the switch node is up at say 120V for 10us, then down at 0V (well, -1 to -2V) for 10us, and the output voltage is 60V.  Values will vary a bit for other levels (current ripple is maximum in the middle) so this gives a bit of an overestimate.  Anyway, that's a drop of (+/-)60V, and V = L dI/dt, and if dI is twice Iout or (+/-)20A, then (60V) * (10us) / (20A) = L = 30uH.

And evidently the 150uH figure you're looking at above, gives a ripple factor around 30/150 or 20%, which sounds high for #26, but you can see how the core loss ends up in practice, maybe it's tolerable.

Furthermore, since we know flux (60V * 10us), and core (ETD34 2mm gap), we can solve for turns.

Since the core set is already gapped, we don't play around with flux density, and simply get whatever we get from A_L.

N = sqrt(L / A_L) = sqrt((30uH) / (100nH/t^2)) = 17.3t, say round it down to 17t.

(The datasheet gives A_L at 2.5mm gap; I'm assuming 100nH/t^2 would be close for 2.0mm.)

Then we can solve for peak flux density: Bpk = (600uVs) / (N Ae) = 0.36T.  Rather high.  Might get away with it, given the low frequency, but a larger gap would be desirable.  And somewhat lower inductance to keep it in DCM anyway.  Alternately a higher frequency so that less energy is stored in the inductor (i.e., more frequently given back to the load, less stored per cycle), like 100kHz and 15uH, needs 12t and would give Bpk = 0.26T, not much more than one of the core loss specs they give (100kHz, 0.2T) so total core loss in the 6W range might be expected.  Toasty, but a fan would likely be enough to deal with it.

The effect of more gap, is to reduce inductivity, thus needing more turns, thus reducing Bpk for the same energy storage.  (At the expense of more wire of course, hence the resistivity-mu_eff tradeoff.)

And you can always increase the gap by shimming, just mind this increases the gap doubly: once in the middle plus once around the outside.  So a 0.5mm shim is 1mm extra gap, roughly speaking.  This has the downside of increasing fringing fields around the part, but if you don't have anything sensitive there (what, just caps and heatsink? who cares), and aren't too worried about EMI (no wires routed up close near the inductor?), that's not a problem either.

The winding will have to be litz cable, to keep reasonably low AC resistance while all this is going on, and also to deal with fringing flux in the couple mm around the air gap.


So, as you can see, DCM isn't very convenient for power levels like this.

I would strongly recommend adding a slope compensation network to the 3843 (just Q2 and R8 in the diagram I gave earlier, can be applied to any existing (peak current mode) circuit, where R6 represents the source resistance from the current sensor/shunt -- when a shunt is used, usually a series resistor is used, with a little capacitance IS to GND, to filter turn-on peaks from the waveform.  Since you're using an op-amp, just the resistor from its output to IS will do.)

When say 40-70% of the IS waveform is obtained from slope compensation in this way, the current limiting isn't worsened too much, while the ripple fraction can be reduced by about the same margin.  So, you can use more like 60uH, making the inductor design much more relaxed -- say, giving probably about half the core loss.  (Same applied flux but 40% more turns --> 30% lower core Bpk --> Pd goes about as Bpk^2 so ~50% lower loss.)

Tim
« Last Edit: April 07, 2022, 07:07:47 am by T3sl4co1l »
Seven Transistor Labs, LLC
Electronic design, from concept to prototype.
Bringing a project to life?  Send me a message!
 

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #32 on: June 29, 2022, 04:08:21 pm »
Well, this one is long overdue for an update. This one got shelved for a while to make time and space for some more urgent projects (boat in driveway = limited parking = urgent), but I've gotten it behaving pretty well now.

Let's get one thing out of the way first. The schematic is awful, I know, I need to clean it up.

A few changes and notes:
1) I've iterated on the inductor a few times, but currently am using a T184-2 powdered iron core, wound for about 80 uH. Slope compensation was necessary, and I really should have included that on the PCB. Oh well, I guess one respin isn't terrible.

2) Really high ripple ratios are a big challenge at these power levels. Things get warm and EMI can be a problem. The 30 uH inductor was really a no-go, but the 60 uH inductor is a lot better behaved.

3) I made a couple tweaks to the voltage feedback loop, mostly to allow higher impedances in the compensation circuit and greater flexibility for tweaking the difference amplifier for sensing drop across the linear regulator module.

Testing thus far has shown thermals to be excellent, and the inductor (which is 50 turns of 16 AWG magnet wire wound on a T184-2 core) shows minimal heating, even under fairly tough loads. I may do some further calculations and subsequent testing to see if I can't make this part physically smaller, since what's there is pretty bulky.

Since there was some unutilized board space, I added space for two more output filter caps.

I should point out that so far I have only killed one IGBT in testing, and I have so far pushed this board to about 14 amps of output current - far more than I need. There's a bit more tidying up to do on this project (will post updates as needed), but I'm about at the point of starting on the offline converter that will power this thing. I'll link that thread below when I create it, probably later today.



« Last Edit: June 29, 2022, 04:10:02 pm by H713 »
 
The following users thanked this post: T3sl4co1l

Offline H713Topic starter

  • Regular Contributor
  • *
  • Posts: 176
  • Country: us
Re: Buck Converter Pre-Regulator
« Reply #33 on: June 29, 2022, 07:35:17 pm »
As promised, here is a link to the thread for the "half bridge" (it's not a half bridge anymore) that will power it.
https://www.eevblog.com/forum/projects/1-kw-push-pull-converter/new/#new
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf