Welcome
Username or Email:

Password:


Missing Code




[ ]
[ ]
Online
  • Guests: 14
  • Members: 0
  • Newest Member: omjtest
  • Most ever online: 396
    Guests: 396, Members: 0 on 12 Jan : 12:51
Members Birthdays:
All today's birthdays', congrats!
Sonic (58)
kamelryttarn (46)


Next birthdays
11/29 Sonic (58)
11/29 kamelryttarn (46)
11/30 arnsfelt (45)
Contact
If you need assistance, please send an email to forum at 4hv dot org. To ensure your email is not marked as spam, please include the phrase "4hv help" in the subject line. You can also find assistance via IRC, at irc.shadowworld.net, room #hvcomm.
Support 4hv.org!
Donate:
4hv.org is hosted on a dedicated server. Unfortunately, this server costs and we rely on the help of site members to keep 4hv.org running. Please consider donating. We will place your name on the thanks list and you'll be helping to keep 4hv.org alive and free for everyone. Members whose names appear in red bold have donated recently. Green bold denotes those who have recently donated to keep the server carbon neutral.


Special Thanks To:
  • Aaron Holmes
  • Aaron Wheeler
  • Adam Horden
  • Alan Scrimgeour
  • Andre
  • Andrew Haynes
  • Anonymous000
  • asabase
  • Austin Weil
  • barney
  • Barry
  • Bert Hickman
  • Bill Kukowski
  • Blitzorn
  • Brandon Paradelas
  • Bruce Bowling
  • BubeeMike
  • Byong Park
  • Cesiumsponge
  • Chris F.
  • Chris Hooper
  • Corey Worthington
  • Derek Woodroffe
  • Dalus
  • Dan Strother
  • Daniel Davis
  • Daniel Uhrenholt
  • datasheetarchive
  • Dave Billington
  • Dave Marshall
  • David F.
  • Dennis Rogers
  • drelectrix
  • Dr. John Gudenas
  • Dr. Spark
  • E.TexasTesla
  • eastvoltresearch
  • Eirik Taylor
  • Erik Dyakov
  • Erlend^SE
  • Finn Hammer
  • Firebug24k
  • GalliumMan
  • Gary Peterson
  • George Slade
  • GhostNull
  • Gordon Mcknight
  • Graham Armitage
  • Grant
  • GreySoul
  • Henry H
  • IamSmooth
  • In memory of Leo Powning
  • Jacob Cash
  • James Howells
  • James Pawson
  • Jeff Greenfield
  • Jeff Thomas
  • Jesse Frost
  • Jim Mitchell
  • jlr134
  • Joe Mastroianni
  • John Forcina
  • John Oberg
  • John Willcutt
  • Jon Newcomb
  • klugesmith
  • Leslie Wright
  • Lutz Hoffman
  • Mads Barnkob
  • Martin King
  • Mats Karlsson
  • Matt Gibson
  • Matthew Guidry
  • mbd
  • Michael D'Angelo
  • Mikkel
  • mileswaldron
  • mister_rf
  • Neil Foster
  • Nick de Smith
  • Nick Soroka
  • nicklenorp
  • Nik
  • Norman Stanley
  • Patrick Coleman
  • Paul Brodie
  • Paul Jordan
  • Paul Montgomery
  • Ped
  • Peter Krogen
  • Peter Terren
  • PhilGood
  • Richard Feldman
  • Robert Bush
  • Royce Bailey
  • Scott Fusare
  • Scott Newman
  • smiffy
  • Stella
  • Steven Busic
  • Steve Conner
  • Steve Jones
  • Steve Ward
  • Sulaiman
  • Thomas Coyle
  • Thomas A. Wallace
  • Thomas W
  • Timo
  • Torch
  • Ulf Jonsson
  • vasil
  • Vaxian
  • vladi mazzilli
  • wastehl
  • Weston
  • William Kim
  • William N.
  • William Stehl
  • Wesley Venis
The aforementioned have contributed financially to the continuing triumph of 4hv.org. They are deserving of my most heartfelt thanks.
Forums
4hv.org :: Forums :: Projects
« Previous topic | Next topic »   

The "Fat Coil" QCW Tesla Coil

first  2 3 4 5 
Move Thread LAN_403
Steve Ward
Sun Nov 30 2014, 08:36PM
Steve Ward Registered Member #146 Joined: Sun Feb 12 2006, 04:21AM
Location: Austin Tx
Posts: 1055
Can you explain it better?
When over current is tripped the coil driver start to skip cycles and the buck goes in a "constant current mode" to help the cycle skiping thing to work better?

There's a lot going on, i'll try to re-explain with more detail. The buck converter has a current limiter that momentarily disables the drive signal to the IGBTs. Its supposed to act as a "cycle by cycle" peak current limit, however, due to bandwidth limitations on my sensor there is significant delay in the current signal. This delay causes the over-current event to be detected after the PWM cycle has completed (in the undesirable case), which causes the buck to skip PWM cycles (unintentionally). This causes the high-frequency sounds that you hear, as the buck is switching at just 10khz, somewhat chaotically.

At the same time, the tesla coil driver has an over-current protection that will cause the H-bridge to skip a driving cycle. This is a good method for most systems, but when supplied by a buck converter it causes un-wanted effects (the voltage at the buck output will suddenly rise as the tesla bridge stops drawing current for a moment). If this happens, the Buck often shuts down from an over-voltage fault condition.

I do plan on improving the current limit behavior of the Buck, and once that is proven reliable, the tesla coil current limit will be set very high so that it should never engage unless some other fault condition exists.

Does the micro controller form part of the feedback path? If so, does it sense the tank current with a comparator on the zero crossings or an ADC?

If clocked logic or a micro controller is used in the feedback path it seems like you would get a lot of jitter in the gate drive waveforms and fall into hard switching some of the time. Does this not end up being an issue?

I use a Cypress PSoC 5LP, which handles the IGBT switching, and it does the phase-lead stuff too. For the most part this circuitry is built into hardware, which is controlled by the MCU to provide proper tracking. Its clocked at 64MHz, and the actual gate timing can be off by 1-2 clocks typically (~15-30nS) from the ideal switch time.

do you have problems with EMI in your electronics running that much power

I dont think its any worse than a small coil running at similar supply voltage. Most of the noise comes from dV/dt, so going bigger doesn't necessarily make things worse, sometimes its better because its slower. I do have a lot of filtering on all of the control-board I/O, it is a tesla coil afterall...

Intra, almost got it, but you didnt get the extra IGBT/diode boost circuit correct. It follows a standard boost converter scheme, i think you can fix your schematic wink.
Back to top
Gregory
Mon Dec 01 2014, 04:58AM
Gregory Registered Member #2922 Joined: Sun Jun 13 2010, 12:08AM
Location:
Posts: 226
Thanks.
I use a Cypress PSoC 5LP, which handles the IGBT switching, and it does the phase-lead stuff too.

Can you explain what method did you use to make the phase-lead. I was thinking to use a FPGA in my QCW controller but I didn't get a good and reliable idea for phase leading.
Back to top
Shrad
Mon Dec 01 2014, 10:45AM
Shrad Registered Member #3215 Joined: Sun Sept 19 2010, 08:42PM
Location:
Posts: 780
couldn't phase lead be deduced from T-1 times a correction factor? thus no fancy computation needed...
Back to top
Gregory
Tue Dec 02 2014, 12:52AM
Gregory Registered Member #2922 Joined: Sun Jun 13 2010, 12:08AM
Location:
Posts: 226
The simple idea I can see is to put the feedback signal trought a FIFO to delay the signal by 180º - phase lead but this method will be frequency dependent
Back to top
Shrad
Tue Dec 02 2014, 08:10AM
Shrad Registered Member #3215 Joined: Sun Sept 19 2010, 08:42PM
Location:
Posts: 780
is T-1 really that frequency dependent? you'll never be that precise due to field constraints anyway, and it would be the simplest approximation

the situation will not change completely over a period, and even if it does over five or ten periods, isn't this enough?

I'd be curious about how a PID would behave in this field, as you could play with overshoot
Back to top
Steve Conner
Tue Dec 02 2014, 10:41AM
Steve Conner Registered Member #30 Joined: Fri Feb 03 2006, 10:52AM
Location: Glasgow, Scotland
Posts: 6706
There are two fundamental ways of doing phase lead.

You can estimate when to make the next switching transition based on how far out you were in trying to hit the previous ones, in which case you have a PLL. The PLL loop filter determines the weighting given to different times in the error history. "T-1", if I understand correctly, is a digital PLL with a 1st order FIR loop filter, that works on the single previous switching transition and forgets the others. If you use a PID controller on the T-1 error signal, it becomes a classical PLL, as the I term remembers previous values of T-1, therefore T-2, T-3 etc.

Or, you can extrapolate the current waveform by assuming it is sinusoidal, and guess what it will do next based on its first derivative. This is the phase lead driver aka "Predikter".

The PLL is slower to respond to changes in streamer loading, because it is using information at least one half cycle old. But the phase lead driver is more susceptible to noise because the extrapolation process involves differentiation, which amplifies high frequencies. In control engineering classes we were taught never to differentiate anything, let alone the output of a Tesla coil. Nevertheless, both methods seem to work well.

Common sense would recommend phase lead for DRSSTCs with short bursts, where you want to hit each and every switching transition even though they may be unevenly spaced. And PLL for CW and QCW SSTCs where you want to be able to select a particular pole frequency. But there are examples of both methods being used with both types of coil.
Back to top
Goodchild
Tue Dec 02 2014, 04:37PM
Goodchild Registered Member #2292 Joined: Fri Aug 14 2009, 05:33PM
Location: The Wild West AKA Arizona
Posts: 795
In my opinion the FIR is the way to go, particularly if you can get 3 or 4 taps built into hardware. It's noise immunity is superior to anything I've used in the past.

The downside however, is the vast amount of hardware you need to implement it. I've done it in Xillinx FPGAs, but something like a mico probably could't handle the vast amount math required in a timely manner.
Back to top
Gregory
Tue Dec 02 2014, 08:08PM
Gregory Registered Member #2922 Joined: Sun Jun 13 2010, 12:08AM
Location:
Posts: 226
You can estimate when to make the next switching transition based on how far out you were in trying to hit the previous ones

How can I calculate the error ? I will need a precise and real time reference of the bridge output to calculate the T-1 error by measuring edges time diference.

In my opinion the FIR is the way to go, particularly if you can get 3 or 4 taps built into hardware. It's noise immunity is superior to anything I've used in the past.

Do you mean a FIR with a know phase response at the particulary ressonant frequency?

What about use a digital PLL with the NCO singnal that goes to the phase comparator pass throught a delay line to generate a constant group delay.
This way we get a frequency independent time-lead, that appear to be better than a phase-lead for long burst coils that change a lot the frequency.

EDIT: I made a simulation of the PLL loop with the FIFO delay line at NCO output and it appears to work very well. I think it can be implemented in simple way with FPGA.
Captura De Tela 2014 12 02 S 19 20 56
Back to top
Steve Conner
Wed Dec 03 2014, 01:02PM
Steve Conner Registered Member #30 Joined: Fri Feb 03 2006, 10:52AM
Location: Glasgow, Scotland
Posts: 6706
Gregory wrote ...

How can I calculate the error ? I will need a precise and real time reference of the bridge output to calculate the T-1 error by measuring edges time diference.

Most PLL users (myself included) just use the gate drive signal as the reference. The assumption is that the delay from gate drive to bridge output is constant. The effect of making this assumption is that the PLL generates a constant phase lead referred to the feedback signal, that you have to set manually to compensate the delay in the power devices. This is really just the same thing as twiddling the variable inductor in Steve Ward's phase lead driver.

If you used the actual bridge output as your reference, your PLL would be measuring the actual switching delay of the bridge and compensating for it automatically. This could get messy when deadtime is involved, as the IGBTs do not always have control of the switching delay, it sometimes passes to the diodes.
Back to top
Steve Ward
Sun Dec 07 2014, 08:49AM
Steve Ward Registered Member #146 Joined: Sun Feb 12 2006, 04:21AM
Location: Austin Tx
Posts: 1055
I made a digital PLL.

There are a few key points about it:

1) the user has to define a starting frequency "Fstart". The driver switches to feedback/pll operation after "N" cycles (set in 0.5 cycle increments), typically i use 0.5-1 cycles for a "transient" type DR, and 4-8 cycles for SSTC/QCW where you need to have a well defined starting frequency/mode). However, it works acceptably with pretty big errors... so its not overly burdening.

2) The user must define the desired phase-lead time "Tlead", which is referenced to the output signals from the PSoC (Conner already explained this perfectly). This lead time is defined as the whole delay time of the system (that includes the feedback CT delay, the processors delay, and IGBT delay).

So how's it work?

First, start driving at "Fstart", during this time, measure the period between zero crossings in the current feedback signal. After "N" cycles at "Fstart", PLL operation can begin. The PLL works as follows:

A one-shot timer is started upon each zero-current-detection of the feedback signal (that is, 2 events per full cycle). The one-shot is set to time out "just before" the next expected zero crossing. When the one-shot times out, the output to the gate driver flips state (as if the feedback signal told it to). If you measured the previous half-cycle's period "Thp", you can predict the next one as Tnext_switch = Thp - Tlead.

If that makes sense, then you understand enough to build your own digital PLL as i did. However... there was a problem with stability if the half-cycle periods were inconsistent, so i added a digital filter that averages the previous 4 half-cycle periods and uses that result for the predictive one-shot timer (knocking it down to 2 half-cycles ought to work too, just havent tried it yet). Conner would probably point out here that there is some dynamic performance loss from this, but thanks to the fact that the one-shot is reset with the feedback input, you can never get too far out of phase with the desired switching command even if the system frequency is changing rather quickly. Oh yeah, and just in case the prediction is too late, the zero-cross detect will command a gate drive transition, making the driver no worse than my old universal driver without phase lead.

Ive used this same driver on a wide variety of tesla coils and its performance is on par with the inductor prediktor and about 1000 times better than the 4046 PLL crap i used to play with. However, getting the whole scheme to work reliably was a considerable challenge and took months of debugging/tweaking to get it to a robust state. Having an FPGA with essentially limitless hardware would have made the task easier, most of my time was spent coaxing the design to fit within my hardware budget on the PSoC. Also, 64MHz clock leaves a bit to be desired at higher TC frequencies.
Back to top
first  2 3 4 5 

Moderator(s): Chris Russell, Noelle, Alex, Tesladownunder, Dave Marshall, Dave Billington, Bjørn, Steve Conner, Wolfram, Kizmo, Mads Barnkob

Go to:

Powered by e107 Forum System
 
Legal Information
This site is powered by e107, which is released under the GNU GPL License. All work on this site, except where otherwise noted, is licensed under a Creative Commons Attribution-ShareAlike 2.5 License. By submitting any information to this site, you agree that anything submitted will be so licensed. Please read our Disclaimer and Policies page for information on your rights and responsibilities regarding this site.