--- id: opt-06 title: "Frequency Tracking and Loaded Poles" section: "Optimization & Simulation" difficulty: "advanced" estimated_time: 45 prerequisites: ["opt-05", "opt-01", "fund-08"] objectives: - Understand coupled system poles and eigenfrequencies - Recognize frequency shift with loading - Implement proper frequency tracking in measurements - Avoid common detuning errors in optimization - Apply frequency tracking to DRSSTC operating modes tags: ["frequency-tracking", "coupled-resonators", "detuning", "poles", "DRSSTC"] --- # Frequency Tracking and Loaded Poles **This is one of the most commonly overlooked aspects of Tesla coil optimization.** Failing to account for frequency tracking leads to misleading power measurements and incorrect conclusions about optimal operating points. ## The Critical Problem: Fixed-Frequency Comparison ### Common Mistake **Scenario:** You want to find R_opt_power by measuring power delivered to different spark resistances. **Wrong approach:** 1. Set drive frequency to f = 200 kHz (unloaded resonance) 2. Measure power with R = 30 kΩ → P₁ = 95 kW 3. Measure power with R = 60 kΩ → P₂ = 110 kW 4. Measure power with R = 90 kΩ → P₃ = 105 kW 5. Conclude: R_opt ≈ 60 kΩ **What's wrong?** Each different R value changes the system's resonant frequency. By staying at fixed f = 200 kHz, you're comparing: - R = 30 kΩ at **Δf = +8 kHz detuned** - R = 60 kΩ at **Δf = +3 kHz detuned** - R = 90 kΩ at **Δf = -2 kHz detuned** **You're not measuring inherent matching quality - you're measuring a combination of matching AND detuning!** ### Right Approach **Correct procedure:** 1. Set R = 30 kΩ 2. **Sweep frequency to find loaded resonance** → f₁ = 192 kHz 3. Measure power at f₁ → P₁ = 108 kW 4. Set R = 60 kΩ 5. **Sweep frequency to find new loaded resonance** → f₂ = 188 kHz 6. Measure power at f₂ → P₂ = 125 kW 7. Set R = 90 kΩ 8. **Sweep frequency to find new loaded resonance** → f₃ = 185 kHz 9. Measure power at f₃ → P₃ = 118 kW 10. Conclude: R_opt ≈ 60 kΩ **(and each was measured at its optimal frequency)** **Key principle: For each R value, retune to the loaded pole frequency.** ## Why Does Loading Change Frequency? ### Capacitance Changes Resonance When you change the spark, you change its sheath capacitance C_sh: **Unloaded:** ``` C_total,0 = C_topload + C_secondary_stray ≈ 28 pF f₀ = 1/(2π√(L_sec × C_total,0)) = 200 kHz ``` **With spark (R = 60 kΩ, 3-foot leader):** ``` C_sh ≈ 2 pF/foot × 3 feet = 6 pF C_total,1 = C_total,0 + C_sh = 28 + 6 = 34 pF f₁ = f₀ × √(C_total,0 / C_total,1) = 200 × √(28/34) = 200 × 0.907 = 181 kHz ``` **Frequency dropped by 19 kHz!** This is not a small shift. ### Different Sparks → Different Frequencies | Spark Length | C_sh | C_total | f_loaded | Δf | |--------------|------|---------|----------|-----| | No spark | 0 pF | 28 pF | 200 kHz | 0 | | 2 feet | 4 pF | 32 pF | 187 kHz | -13 kHz | | 4 feet | 8 pF | 36 pF | 176 kHz | -24 kHz | | 6 feet | 12 pF | 40 pF | 167 kHz | -33 kHz | **Even for the same length, changing R changes the effective loading!** ## Coupled System Poles Tesla coils are **coupled resonant systems**. Even without a spark, the primary-secondary coupling creates two resonant modes. ### The Two Poles For coupled resonators with coupling coefficient k: **Lower pole (f₁):** ``` f₁ = f₀ / √(1 + k) < f₀ ``` **Upper pole (f₂):** ``` f₂ = f₀ / √(1 - k) > f₀ ``` where f₀ = √(f_primary × f_secondary) is the geometric mean. **Example with k = 0.15:** ``` f₀ = 200 kHz (geometric mean) f₁ = 200 / √(1.15) = 186.5 kHz (lower pole) f₂ = 200 / √(0.85) = 217.0 kHz (upper pole) ``` ### Loading Modifies Both Poles When a spark loads the secondary: - **Both pole frequencies shift** (usually downward) - **Both pole damping increases** (Q decreases) - **Pole separation changes** The spark doesn't just add capacitance - it adds a complex load that couples into both modes. ### Which Pole Should You Use? **For DRSSTC operation:** - Most coils operate on the **lower pole** (more stable) - Some operate between poles (dual-resonance mode) - Upper pole is rarely used (harder to control) **The loaded pole frequency is where voltage gain is maximized.** ## DRSSTC Operating Modes Different DRSSTC drive strategies interact with frequency tracking differently. ### Mode 1: Fixed Frequency (No Tracking) **Strategy:** Drive at fixed frequency (e.g., 200 kHz) regardless of loading **Advantages:** - Simple control electronics - No frequency sensing required - Predictable timing **Disadvantages:** - **Detunes as spark grows** - Voltage gain drops with larger sparks - Suboptimal power transfer - Risk of operating off-resonance **When acceptable:** - Very short bursts (spark doesn't grow much) - Controlled environments with consistent sparks - Systems designed with wide bandwidth ### Mode 2: Frequency Tracking (PLL or Feedback) **Strategy:** Continuously adjust drive frequency to match loaded pole **Implementation:** - Phase-locked loop (PLL) tracks zero-crossing - Feedback from antenna or current sensor - Drive frequency follows resonance in real-time **Advantages:** - **Always at optimal frequency** - Maximum voltage gain throughout growth - Efficient power transfer - Adapts to varying sparks **Disadvantages:** - More complex electronics - Requires feedback sensing - Can be unstable if poorly tuned - Frequency limits needed for safety **This is the gold standard for QCW and high-performance DRSSTCs.** ### Mode 3: Pre-Programmed Sweep **Strategy:** Drive frequency ramps down over time (anticipating C_sh increase) **Implementation:** - Start at f₀ (unloaded resonance) - Linearly or exponentially decrease frequency - End at f_target (expected loaded resonance) **Advantages:** - Simpler than PLL - No feedback required - Can be optimized per coil **Disadvantages:** - Not adaptive (doesn't match actual spark) - Requires characterization/tuning - Mismatch if spark growth differs from expectation **When useful:** - QCW with consistent spark growth patterns - Transition from no-spark to steady spark - Combined with current limiting ## Frequency Response and Bandwidth ### Quality Factor Limits Bandwidth The resonance has finite width determined by Q: ``` Δf_3dB = f₀ / Q (3 dB bandwidth) For Q = 100 at f₀ = 200 kHz: Δf_3dB = 200 kHz / 100 = 2 kHz ``` **Within ±1 kHz:** Still >70% of peak voltage (acceptable detuning) **Beyond ±5 kHz:** Down to ~30% of peak voltage (severe detuning) ### High Q vs Low Q **High Q (narrow bandwidth):** - Sharper resonance peak - More sensitive to detuning - **Frequency tracking more critical** - Better efficiency when matched **Low Q (wide bandwidth):** - Broader resonance peak - More forgiving of detuning - Frequency tracking less critical - Lower peak voltage gain ### Loaded Q vs Unloaded Q **Unloaded Q₀:** - No spark, only coil losses - Typically Q₀ = 100-300 **Loaded Q_L:** - With spark, additional damping - Spark resistance adds loss - Typically Q_L = 20-80 **Effect on bandwidth:** ``` Unloaded: Δf₀ = 200 kHz / 200 = 1 kHz (narrow!) Loaded: Δf_L = 185 kHz / 50 = 3.7 kHz (wider) ``` **Ironically, the spark broadens the resonance, making detuning slightly less critical. But the frequency shift is still large enough that you must track it.** ## Implementing Frequency Tracking in Measurements ### Simulation Approach **For each R value:** ```python # Pseudocode for proper frequency tracking for R in [10k, 20k, 30k, ..., 200k]: set_spark_resistance(R) # Sweep frequency to find loaded pole for f in range(150k, 220k, 1k): run_AC_analysis(frequency=f) V_top[f] = measure_topload_voltage() # Find frequency with maximum voltage f_loaded = frequency_at_max(V_top) # Measure power at loaded frequency run_AC_analysis(frequency=f_loaded) P[R] = measure_spark_power() # Store results results[R] = { 'f_loaded': f_loaded, 'V_top': V_top[f_loaded], 'P': P[R] } # Now P[R] represents true matching, not detuning! R_opt = R_at_max(P) ``` ### SPICE Implementation ```spice * Sweep R and frequency together .param Rspark = 60k * First find loaded frequency for this R .ac dec 100 150k 220k .meas ac f_loaded WHEN mag(V(topload))=MAX(mag(V(topload))) * Then measure power at that frequency .ac lin 1 {f_loaded} {f_loaded} .meas ac Pspark param '0.5 * mag(I(Rspark))^2 * Rspark' * Repeat for each R value .step param Rspark list 10k 30k 50k 70k 90k 110k 150k 200k ``` **Challenge:** SPICE doesn't easily allow nested sweeps where inner result affects outer analysis. You may need to: - Run multiple simulations - Use scripting (Python + PySpice, MATLAB, etc.) - Manually extract f_loaded for key R values ## Worked Example: Impact of Tracking vs Not Tracking **System:** - Unloaded: f₀ = 200 kHz, Q₀ = 150 - V_th = 350 kV (at resonance) - Z_th = 110 - j2400 Ω (at 200 kHz) **Spark configurations:** | R | C_sh | C_total | f_loaded | Shift | |---|------|---------|----------|-------| | 40k | 5 pF | 33 pF | 188 kHz | -12 kHz | | 60k | 6 pF | 34 pF | 185 kHz | -15 kHz | | 80k | 7 pF | 35 pF | 183 kHz | -17 kHz | ### Without Tracking (Fixed f = 200 kHz) **R = 40 kΩ:** ``` Detuning: Δf = +12 kHz Voltage penalty: V_actual / V_max ≈ 0.65 Z_spark = 40k - j140k → |Z| = 146 kΩ I ≈ 350 kV × 0.65 / 146 kΩ = 1.56 A P = 0.5 × 1.56² × 40k = 48.6 kW ``` **R = 60 kΩ:** ``` Detuning: Δf = +15 kHz Voltage penalty: ≈ 0.55 Z_spark = 60k - j160k → |Z| = 171 kΩ I ≈ 350 kV × 0.55 / 171 kΩ = 1.13 A P = 0.5 × 1.13² × 60k = 38.3 kW (WORSE despite higher R!) ``` **R = 80 kΩ:** ``` Detuning: Δf = +17 kHz Voltage penalty: ≈ 0.48 Z_spark = 80k - j180k → |Z| = 197 kΩ I ≈ 350 kV × 0.48 / 197 kΩ = 0.85 A P = 0.5 × 0.85² × 80k = 28.9 kW ``` **Conclusion from fixed-frequency:** R_opt ≈ 40 kΩ (WRONG!) ### With Tracking (Tune to f_loaded for each R) **R = 40 kΩ at f = 188 kHz:** ``` Detuning: 0 (by definition - we tuned to loaded pole) Voltage penalty: 1.0 (at resonance) I ≈ 350 kV / 146 kΩ = 2.40 A P = 0.5 × 2.40² × 40k = 115 kW ``` **R = 60 kΩ at f = 185 kHz:** ``` Detuning: 0 Voltage penalty: 1.0 I ≈ 350 kV / 171 kΩ = 2.05 A P = 0.5 × 2.05² × 60k = 126 kW (MAXIMUM!) ``` **R = 80 kΩ at f = 183 kHz:** ``` Detuning: 0 Voltage penalty: 1.0 I ≈ 350 kV / 197 kΩ = 1.78 A P = 0.5 × 1.78² × 80k = 127 kW (close!) ``` **Conclusion with tracking:** R_opt ≈ 60 kΩ (CORRECT!) **Power improvement with tracking:** - At R = 60 kΩ: 126 kW vs 38 kW = **3.3× more power!** - At R = 80 kΩ: 127 kW vs 29 kW = **4.4× more power!** **This is not a small effect. Frequency tracking is critical.** ## Practical Implications ### For Simulation Studies **Always:** - Report frequency used for each measurement - Either track frequency or clearly state fixed-frequency limitations - Specify whether results assume optimal tuning **When comparing:** - Ensure fair comparison (same tracking strategy) - Document detuning if fixed-frequency is used ### For Physical Coils **DRSSTC with PLL:** - Tracks automatically - excellent - Monitor actual operating frequency - Check frequency stays within safe limits **DRSSTC with fixed frequency:** - Accept voltage/power reduction as spark grows - Consider pre-tuning to expected loaded frequency - Wider-bandwidth design helps (lower Q) **SGTC (Spark Gap):** - Frequency self-adjusts with loading (inherent tracking) - Spark gap firing adapts to LC resonance - Less of an issue for spark gap coils ### For Optimization **When finding R_opt_power:** 1. Use frequency tracking (simulation or actual) 2. Report f_loaded for each R tested 3. Verify analytical formula matches **When designing:** 1. Choose f₀ based on unloaded resonance 2. Expect f_operating ≈ f₀ - 10 to 30 kHz with sparks 3. Ensure drive can operate over this range ## Key Takeaways - **Critical principle:** For each R value, retune to loaded pole frequency - **Why it matters:** Loading changes C_sh, which shifts resonance by 10-30+ kHz - **Fixed-frequency comparison is misleading:** Measures detuning, not matching quality - **Coupled system has two poles:** Lower and upper, both shift with loading - **DRSSTC modes:** Fixed frequency (simple), PLL tracking (optimal), programmed sweep (compromise) - **Q affects sensitivity:** Higher Q = narrower bandwidth = more critical tracking - **Power difference:** Can be 3-5× between tracked and non-tracked measurements - **Simulation best practice:** Sweep frequency for each load to find f_loaded - **Physical coils:** PLL tracking gives best performance, fixed frequency is acceptable for short bursts ## Practice {exercise:opt-ex-06} **Problem 1:** A coil has f₀ = 195 kHz unloaded with C_total,0 = 30 pF. A 4-foot spark adds C_sh = 8 pF. (a) Calculate the loaded capacitance (b) Calculate the loaded frequency (c) What is Δf (frequency shift)? **Problem 2:** You measure power at fixed f = 200 kHz: - R = 50 kΩ, f_loaded = 188 kHz → P₁ = 85 kW - R = 70 kΩ, f_loaded = 185 kHz → P₂ = 95 kW If Q = 80, estimate the voltage penalty factor for each case and calculate what power would be measured if you had tracked frequency. **Problem 3:** Explain why frequency tracking is MORE critical for high-Q coils than low-Q coils. **Problem 4:** A DRSSTC operates with fixed frequency drive. As the spark grows from 2 feet to 5 feet, what happens to: (a) Loaded resonant frequency (b) Detuning (if drive frequency is fixed) (c) Voltage gain (d) Power delivered **Problem 5:** For coupled resonators with k = 0.18 and f₀ = 210 kHz: (a) Calculate the lower pole frequency (b) Calculate the upper pole frequency (c) Which pole is typically used for DRSSTC operation? **Problem 6:** Sketch V_top vs frequency for three cases: (a) No spark (unloaded) (b) R = 60 kΩ spark (lightly loaded) (c) R = 30 kΩ spark (heavily loaded) Label the peak frequencies and relative peak heights. Explain how tracking helps maintain peak operation. --- **Next Lesson:** [Part 2 Review and Comprehensive Exercises](07-review-exercises.md)