diff --git a/README.md b/README.md index 1b34963..f3d6bb6 100644 --- a/README.md +++ b/README.md @@ -18,14 +18,13 @@ ## Overview -pyTesla integrates FEMM (Finite Element Method Magnetics) and LTspice to provide electromagnetic and circuit analysis for Tesla coil design. The application features a PyQt5-based GUI with real-time visualization capabilities. +pyTesla uses FEMM and LTspice to simulate Tesla coils. It handles the electromagnetic field analysis (FEMM) and circuit simulation (LTspice) so you can tune your coil design without doing all the math by hand. -### Key Features -- Electromagnetic field analysis using FEMM -- Circuit simulation with LTspice -- Interactive Tesla coil visualization -- Guided simulation workflow -- Profile management for saving designs +### What it does +- Calculates inductance, capacitance, and coupling using FEMM +- Runs circuit simulations in LTspice to find resonant frequencies +- Shows you the coil geometry as you adjust parameters +- Saves your designs as profiles you can load later --- @@ -78,8 +77,8 @@ pyTesla integrates FEMM (Finite Element Method Magnetics) and LTspice to provide - Click "LTspice Only" for circuit analysis 5. **View Results** - - Check the bottom panel for calculated values - - View field plots in the right panel gallery + - Check the results display in the right panel for calculated values + - View field plots in the bottom image gallery - Use the plotter for frequency response analysis --- @@ -116,8 +115,8 @@ Choose between Dark and Light themes: 3. Click **OK** to apply **Available Themes:** -- **Dark Theme**: Optimized for extended use in low-light environments -- **Light Theme**: Better visibility in bright environments +- **Dark Theme**: Default theme for low-light environments +- **Light Theme**: Alternative for bright environments ### Automatic Detection @@ -132,12 +131,15 @@ pyTesla automatically detects: ### Main Window Layout -The interface is divided into four main areas: +The interface uses a split layout: -1. **Left Panel**: Interactive Tesla coil visualization -2. **Center Panel**: Parameter input groups in a scrollable layout -3. **Right Panel**: Image gallery for simulation results -4. **Bottom Panel**: Simulation controls, model selection, and results display +1. **Left Panel**: Interactive Tesla coil visualization (matplotlib canvas) +2. **Right Panel**: Scrollable area containing: + - Parameter input groups (Secondary, Topload, Primary, etc.) + - Simulation control buttons + - Model selection radio buttons (Lumped/Distributed) + - Results display text area +3. **Bottom Panel**: Image gallery showing simulation plots (5 per row) ### Model Selection @@ -147,7 +149,7 @@ The application supports two electromagnetic modeling approaches: - **Distributed Model**: Divides secondary into sections - more accurate for advanced analysis **Using Model Selection:** -- Radio buttons in the bottom panel allow switching between Lumped and Distributed models +- Radio buttons in the right panel allow switching between Lumped and Distributed models - Buttons are only enabled when corresponding FEMM results are available - Results display automatically updates to show selected model's data - Model selection affects both displayed results and LTspice simulations @@ -210,6 +212,11 @@ The application supports two electromagnetic modeling approaches: - **Frequency**: Operating frequency for analysis - **Secondary Sections**: Division count for accuracy vs. speed - **Mesh Sizes**: Controls simulation accuracy and speed +- **Solver Precision**: 1e-8, 1e-10, or 1e-12 (1e-6 removed due to FEMM bug) +- **Magnetic Boundary Mode**: Controls open boundary approximation + - **A=0 (Fast)**: Simple Dirichlet boundary, doubled radius - fastest solve + - **3 Shells (Balanced)**: IABC with 3 shells - good balance of speed/accuracy (default) + - **7 Shells (Accurate)**: IABC with 7 shells - FEMM's recommended accuracy --- @@ -225,7 +232,7 @@ The application supports two electromagnetic modeling approaches: ### Distributed Simulation -- Comprehensive electromagnetic field analysis using FEMM +- Full electromagnetic field analysis using FEMM - Includes both magnetic and electric field simulations - Multi-section model for accurate distributed parameter effects - Required before running LTspice circuit simulations @@ -287,6 +294,9 @@ The application supports two electromagnetic modeling approaches: - Identifies higher-order resonances beyond primary/secondary poles - Shows mode shapes and frequencies for each resonance - Efficient implementation: draws FEMM geometry once, updates voltages for each mode +- **Adaptive frequency sweep**: Automatically scales to 10× your operating frequency to capture high-frequency parasitic modes +- **Mode limit**: Analyzes up to 5 parasitic modes per run to balance detail with processing time +- Uses logarithmic (decade) sweep for consistent resolution across frequency range - Useful for optimizing coil geometry and understanding multi-mode behavior - Requires Distributed simulation and LTspice results @@ -296,7 +306,7 @@ The application supports two electromagnetic modeling approaches: ### Results Panel -The bottom panel displays key simulation results based on the selected model: +The right panel displays key simulation results based on the selected model (below the parameter inputs): **Model Selection Controls:** - Radio buttons to switch between Lumped and Distributed models @@ -313,7 +323,7 @@ The bottom panel displays key simulation results based on the selected model: ### Image Gallery -The right panel contains simulation visualizations: +The bottom panel contains simulation visualizations: - **Magnetic Field Plots**: Field lines and flux density - **Electric Field Plots**: Equipotential lines and field intensity @@ -322,7 +332,7 @@ The right panel contains simulation visualizations: ### Interactive Plotter -The plotter provides advanced frequency response analysis with a comprehensive preset system for repeatable test scenarios. +The plotter lets you run custom LTspice analyses and plot the results. It has presets so you don't have to set everything up from scratch each time. #### Opening the Plotter @@ -349,7 +359,7 @@ Reusable SPICE directives for different analysis types: **Built-in Presets:** - **Standard sweep**: Linear frequency sweep (1kHz-500kHz, 1000 points) for AC analysis -- **Trans**: Transient analysis with sinusoidal excitation for ringdown waveforms +- **Trans**: Transient analysis with sinusoidal excitation for ringdown waveforms (transient decay behavior) - **fft**: Pulse excitation with parametric frequency for FFT spectrum analysis **Managing Presets:** @@ -373,7 +383,7 @@ The plotter supports both frequency-domain (AC) and time-domain (transient) anal **Time Domain Analysis:** - Uses `.tran` directives to simulate waveforms over time - Supports various excitation types: SINE, PULSE, PWL (piecewise linear), user-defined -- Useful for analyzing ringdown behavior, spark breakout, and transient response +- Useful for analyzing ringdown behavior (transient decay), spark breakout, and transient response - Example: `V1 vin 0 SINE(0 250 386k)\n.tran 0 1000us 0 100n` **FFT (Frequency Spectrum) Analysis:** @@ -410,7 +420,7 @@ Add voltage, current, or calculated measurements to plot: #### Measurement Presets -Predefined sets of measurements for common analysis tasks: +Save groups of measurements you use often: **Built-in Presets:** - **Power Analysis**: Topload voltage, load current, and power @@ -424,7 +434,7 @@ Predefined sets of measurements for common analysis tasks: #### Plot Configurations -Complete analysis workflows that combine circuit setup, analysis directives, and measurements: +These bundle together circuit setup, SPICE directives, and measurements into one-click configurations: **Built-in Configurations:** @@ -434,7 +444,7 @@ Complete analysis workflows that combine circuit setup, analysis directives, and - **Voltage Distribution**: Voltage at all 10 coil sections across extended frequency range (100kHz-3500kHz) *Transient Analysis Configurations:* -- **Transient - Time Domain**: Ringdown analysis with sinusoidal excitation and realistic spark load (24" spark) +- **Transient - Time Domain**: Ringdown analysis (transient decay) with sinusoidal excitation and realistic spark load (24" spark) - **Transient - FFT Example**: Pulse excitation for harmonic analysis with parametric frequency (36" spark) **Using Plot Configurations:** @@ -449,27 +459,11 @@ Complete analysis workflows that combine circuit setup, analysis directives, and 4. Set analysis_mode ("ac" or "transient") and display_mode ("time_domain" or "fft") 5. Click **Save Current Setup** to save as reusable configuration -**Benefits:** -- **Repeatability**: Exact same test every time -- **Documentation**: Named scenarios for reports -- **Comparison**: Quickly switch between AC and transient analysis types -- **Realistic Defaults**: Transient configurations include appropriate spark loads and excitation +Configurations save everything - circuit settings, directives, measurements, and display options - so you can reproduce the same test later or share it. -#### Enhanced Hover System +#### Hover Info -Interactive data inspection with comprehensive value display: - -**Features:** -- **Crosshairs**: Vertical and horizontal reference lines on both magnitude and phase plots -- **Multi-Line Display**: Shows values from ALL plotted measurements at once -- **Frequency/Parameter Detection**: Automatically detects sweep type (frequency vs. parametric) -- **Phase Integration**: Displays both magnitude and phase values in single tooltip -- **Smart Positioning**: Tooltip avoids plot edges for visibility - -**Using Hover:** -- Move mouse over plot area to see values at that X-axis position -- Tooltip shows frequency/parameter value and all measurement values -- Values snap to actual data points for accuracy +Move your mouse over the plot to see values at that point. The tooltip shows all plotted measurements at once, with crosshairs on both magnitude and phase plots. #### Plot Controls @@ -498,8 +492,8 @@ Customize plot appearance: 1. Load **Transient - Time Domain** plot configuration 2. Verify circuit parameters and spark load selection 3. Click **Compose & Analyze** to run transient simulation -4. View time-domain waveform showing exponential decay and oscillation -5. Analyze ringdown time and damping behavior +4. View time-domain waveform showing exponential decay and oscillation (ringdown) +5. Analyze decay time and damping behavior **Example 4: Harmonic Analysis (Transient - FFT)** 1. Load **Transient - FFT Example** plot configuration @@ -536,13 +530,14 @@ Customize plot appearance: ### Saving Profiles -- **File → Save Coil Profile**: Save current design +- **File → Save** (Ctrl+S): Quick save to current profile +- **File → Save As...** (Ctrl+Shift+S): Save to new location with file dialog - All parameters, results, and images are saved - Profiles are stored in the `profiles/` directory ### Loading Profiles -- **File → Load Coil Profile**: Load saved design +- **File → Load Coil Profile** (Ctrl+O): Load saved design - Previous simulation results are restored - Button states reflect the profile's simulation status @@ -615,14 +610,14 @@ profiles/ - Change display units via FEMM Inputs panel - All measurements automatically convert -- Supported units: inches, mm, cm, m, mils, ft +- Supported units: inches, mm, cm ### Themes -pyTesla includes professional themes designed for optimal readability: +pyTesla includes dark and light themes: -- **Dark Theme**: Default theme optimized for extended use in low-light environments -- **Light Theme**: High-contrast theme for bright environments +- **Dark Theme**: Default theme for low-light environments +- **Light Theme**: Alternative for bright environments **Changing Themes:** 1. Go to **Config → Settings** @@ -633,7 +628,7 @@ Theme preference is saved automatically and restored on next launch. ### Controller Library -pyTesla includes a controller template system for DRSSTC and interrupter simulations: +You can add SPICE netlist templates for controllers and interrupters: **Library Location:** - `library/controllers/` directory (next to executable) @@ -654,68 +649,34 @@ pyTesla includes a controller template system for DRSSTC and interrupter simulat **Note:** The library directory is created automatically but not pre-populated. Users can create custom controller netlists or obtain templates from the Tesla coil community. -### Button State Intelligence - -pyTesla uses an intelligent button state tracking system to minimize unnecessary re-simulations: +### Button Colors -**Color-Coded States:** -- **Blue** (Normal): Ready to run, prerequisites satisfied -- **Yellow** (Warning): Parameters changed since last run, needs re-simulation -- **Red** (Running): Simulation currently in progress -- **Green** (Success): Simulation completed successfully +The simulation buttons change color to show what needs to be re-run: -**Parameter Snapshots:** -- Stores "known good" parameters when simulation succeeds -- Automatically compares current parameters against snapshot -- Debounced checking (100ms delay) prevents excessive validation -- Only triggers re-simulation warnings when parameters actually change +- **Blue**: Ready to run +- **Yellow**: Parameters changed since last run - you should re-run this +- **Red**: Currently running +- **Green**: Done, results are current -**Sequential Invalidation:** -- **Geometric changes** (coil dimensions, topload, etc.): Invalidate all simulations -- **Circuit changes** (MMC, primary current, etc.): Only invalidate LTspice, stress, and modes -- **Frequency changes**: Only invalidate distributed magnetic simulation -- Preserves valid downstream results when possible, saving computation time - -This intelligent system ensures you always know which simulations are current and helps optimize your workflow by avoiding redundant calculations. +When you change coil geometry, all simulations turn yellow. When you only change circuit values (like MMC), only the LTspice-related buttons turn yellow. This way you don't have to re-run expensive FEMM simulations when you're just tweaking circuit parameters. --- ## Tips for Effective Use -### Workflow Optimization - -1. **Initial Design Exploration**: - - Use standalone "Lumped" simulation for rapid parameter exploration - - Provides quick frequency and coupling estimates for initial design iterations - -2. **Full Distributed Analysis**: - - Click "Distributed" button (automatically runs lumped first for accurate frequency estimate) - - Generates distributed transmission line model with capacitance matrix - - Both Lumped and Distributed results become available for comparison - -3. **Manual Convergence Refinement**: - - After successful distributed simulation (green button), adjust frequency manually if needed - - Click "Distributed" again to enter iteration mode - - Iteration mode skips lumped and electrostatic, only refining magnetic + LTspice - - Repeat as needed for convergence without resetting expensive calculations - -4. **Model Selection**: - - Use Lumped model for: - - Quick frequency checks - - Basic coupling analysis - - Simple circuit analysis - - Use Distributed model for: - - Accurate voltage distribution - - Parasitic mode analysis - - Spark gap optimization - - Final design validation - -5. **Performance Tips**: - - Group parameter changes before running time-consuming simulations - - Use iteration mode for frequency refinement without full re-simulation - - Save known-good designs as profiles for reference - - Choose appropriate section count for Distributed model: - - 10 sections: Standard analysis (default) - - 20+ sections: High precision needs - -*© pyTesla Documentation - For Tesla coil design and simulation* \ No newline at end of file +### Typical Workflow + +1. **Quick check**: Run "Lumped" first to get a rough frequency estimate. It's fast. + +2. **Full analysis**: Click "Distributed" for accurate results. It runs lumped automatically first, then does the full multi-section analysis. + +3. **Iterate if needed**: If the distributed button is already green and you want to refine the frequency, click it again. It'll skip the electrostatic calculation and just re-run the magnetic + LTspice parts. + +4. **When to use each model**: + - **Lumped**: Quick checks, basic coupling analysis + - **Distributed**: Voltage distribution, parasitic modes, spark optimization, final validation + +5. **Speed tips**: + - Change all your parameters before running simulations (avoids multiple re-runs) + - 10 sections is usually enough; only go higher if you need extra precision + diff --git a/profiles/default/default.json b/profiles/default/default.json index 92640f5..965dc20 100644 --- a/profiles/default/default.json +++ b/profiles/default/default.json @@ -34,7 +34,7 @@ "turns_cutoff": 0, "tuning_point": 8 }, - "ground_plane_width": 63.5, + "ground_plane_width": 127.0, "strike_ring_parameters": { "number_of_rings": 2, "height": 1.016, @@ -57,554 +57,561 @@ }, "units": "centimeters", "display_units": "inches", - "frequency": 380411.44, + "frequency": 381944.27, "num_sections": 10, "magnetic_mesh": 2.54, "electrostatic_mesh": 2.54, - "magnetic_solver_precision": 1e-06, - "electrostatic_solver_precision": 1e-06, + "magnetic_solver_precision": 1e-08, + "electrostatic_solver_precision": 1e-08, + "magnetic_boundary_mode": "iabc_3", "images": [], "femm_results_complex": { - "primary_inductance": 1.039362027049663e-05, + "primary_inductance": 1.0453241864077895e-05, "total_length_of_secondary_wire_ft": 580.7624755747023, "secondary_turns": 585.0, - "ac_resistance_of_primary_ohms": 0.07684303963432565, - "ac_resistance_of_secondary_ohms": 109.93088172193045, + "ac_resistance_of_primary_ohms": 0.07871292674564276, + "ac_resistance_of_secondary_ohms": 110.96513655576746, "induction_parameters": { "section_self": [ - 1.039362027049663e-05, - 0.0005317883712898829, - 0.0005527618581815833, - 0.0005348909584537599, - 0.0005534830920291543, - 0.0005347403280831997, - 0.0005519564995719794, - 0.0005306185955490154, - 0.0005439600834994453, - 0.0005170839404594502, - 0.0005194542988473846 + 1.0453241864077895e-05, + 0.0005333548080600552, + 0.000553538029294651, + 0.0005359138407205834, + 0.0005548169631934481, + 0.0005354140024087217, + 0.0005526892993014909, + 0.0005313052838771809, + 0.0005444249438899743, + 0.0005174901255729393, + 0.0005197996343731783 ], "section_coupling": [ [ - 0.42775885504631334, - 0.36248700186881594, - 0.26903272178113374, - 0.19096301184542344, - 0.1345642785719219, - 0.09494392406291964, - 0.06690839918524681, - 0.046552965292432046, - 0.03129872182785004, - 0.019674930408270324 + 0.42910306496316386, + 0.3636835163727028, + 0.2693935283111801, + 0.19069672024264112, + 0.1341995671596269, + 0.09460698581968688, + 0.06670612062522972, + 0.04645055204661876, + 0.031239228200690795, + 0.01967372719777935 ], [ - 0.5036332083285967, - 0.25290803504146353, - 0.14844959144066977, - 0.0925237488687096, - 0.05984764257464823, - 0.03959923965954612, - 0.026310467658904255, - 0.017125935735942212, - 0.010546519630541143 + 0.5051039556066876, + 0.2535624530625867, + 0.14845106393938212, + 0.09239792693765442, + 0.05968124909363653, + 0.039463544912013836, + 0.026231697147950872, + 0.017077634914153393, + 0.010535576139245257 ], [ - 0.503775905036356, - 0.2519028831114112, - 0.14669354958020311, - 0.09055797505930747, - 0.05780720282190652, - 0.0373400401047979, - 0.023797969508007118, - 0.01445059874103959 + 0.5045408184825648, + 0.25192141142696706, + 0.1465165181616669, + 0.09028391124521039, + 0.05754262761575078, + 0.03716461492442259, + 0.02368138509176645, + 0.014401982355102356 ], [ - 0.5045976918341424, - 0.25188081998464706, - 0.1458444588938986, - 0.08916713290758298, - 0.05574385907763506, - 0.034672172953789056, - 0.020712993987899355 + 0.5044431371691189, + 0.2516059711431128, + 0.14544404683540482, + 0.08870978303061551, + 0.05541196555227083, + 0.034440073618228303, + 0.020598030458985863 ], [ - 0.5041432905483981, - 0.25076248791340444, - 0.14433541000507455, - 0.08676741771356491, - 0.052489850864416356, - 0.030787178318551784 + 0.5043473011808223, + 0.2506456914192137, + 0.14382031336185633, + 0.08629703580201444, + 0.052116702154361295, + 0.030580515633549105 ], [ - 0.5026074461621589, - 0.2485820211910561, - 0.1410148971097289, - 0.0823567552477634, - 0.04725502124701621 + 0.5035960199217049, + 0.2488041459823575, + 0.14084773447882853, + 0.08205687648199263, + 0.04706072888098008 ], [ - 0.5011990477153279, - 0.24493781000517914, - 0.135467382585431, - 0.07548856197430992 + 0.501594465288821, + 0.24504557583655281, + 0.1352647794196056, + 0.07531079015939522 ], [ - 0.4980604184984676, - 0.2381639004254279, - 0.12651697308306237 + 0.49826227168469917, + 0.2384384042911006, + 0.1266307599932573 ], [ - 0.4918271861958355, - 0.22742146755311587 + 0.4921759005220099, + 0.22790558465056257 ], [ - 0.4823456805445718 + 0.48292032048379635 ] ], "section_ac_resistance": [ - 10.75073161138125, - 11.31493449343926, - 10.9872223583428, - 11.11877629796648, - 10.88516174786922, - 11.08079729496604, - 10.88276386463266, - 11.12557186303114, - 10.96027773638772, - 10.82464445391386 + 10.81972929524705, + 11.42312489308738, + 11.1047447014294, + 11.24500771995165, + 10.99377113665476, + 11.19976116652593, + 10.9995588566358, + 11.24079735663911, + 11.06436903421529, + 10.8742723953811 ], - "primary_ac_resistance": 0.07684303963432565 + "primary_ac_resistance": 0.07871292674564276 }, "c_self": [ - 0.2876954252206357, - 0.08464218018897707, - 0.1223605136333703, - 0.17201448479070042, - 0.20361472932489005, - 0.21815624492109098, - 0.20614990472248443, - 0.18237919708946382, - 0.1424842808372715, - 0.1186098824184118, - 9.851912474365328, - 4.2420029187858095, - 2.454205659870432 + 0.28979283110432164, + 0.08579847114369696, + 0.12341881890773032, + 0.17234227966741217, + 0.20034223731176654, + 0.21347697312313646, + 0.20633381901499703, + 0.18247220184201263, + 0.1439753919568873, + 0.11975266292123946, + 9.85303378199819, + 4.240135412449337, + 2.4649744278558856 ], "c_matrix": [ [ - 14.53664042077779, - 0.36602443904698356, - 0.11706552158105961, - 0.04770660410841287, - 0.02117558928069594, - 0.010149351526542961, - 0.005139104672339598, - 0.0027079618466387526, - 0.001764327895132014, - 0.02439187048099836, - 4.77181258617105, - 0.07355620423486026 + 11.5966748641572, + 0.3679004143829066, + 0.1171952456425081, + 0.0475825266170703, + 0.02117182119688367, + 0.01014303009347268, + 0.005145098381673746, + 0.0027205874952916462, + 0.001735960152482105, + 0.023850631031700608, + 4.763611608129023, + 0.07358948447936876 ], [ - 17.41255044238404, - 0.3962333358169554, - 0.1299869486148368, - 0.05424418104854272, - 0.02554855564324687, - 0.01290620585834485, - 0.006712029646608598, - 0.004257514819058388, - 0.037625015794043454, - 2.023249832032092, - 0.1986462359031741 + 15.97879691002062, + 0.3968454425925914, + 0.1293415543089055, + 0.05423946058971432, + 0.02565116388478658, + 0.012965591659898391, + 0.006798844235016256, + 0.0042666274047434335, + 0.03815107975506813, + 2.041166497950949, + 0.2037615008503937 ], [ - 16.804586808523762, - 0.4467397179946325, - 0.15462348123069491, - 0.0689228092161806, - 0.03429839253785214, - 0.01774747710609462, - 0.01118429519790914, - 0.09622533537351638, - 0.9651708581072315, - 0.36768201975559267 + 16.380122210301, + 0.4456771982056303, + 0.1557082095904758, + 0.06963782622851952, + 0.03458631689438802, + 0.0180303833195571, + 0.01127575647292364, + 0.09721556341583344, + 0.9602744535254822, + 0.37065688713032807 ], [ - 14.69328032708347, - 0.4654882512905022, - 0.16624478422442582, - 0.0757524029321262, - 0.03732775004739068, - 0.02282569463149842, - 0.1687499128450705, - 0.46046258594138645, - 0.3731185497143558 + 16.10581050929023, + 0.46664060572396904, + 0.1686669099893155, + 0.07690516627542883, + 0.038236880649876646, + 0.023213980163242172, + 0.1708631963521301, + 0.4534945090426802, + 0.3762422025526376 ], [ - 14.737897090969588, - 0.47043730036262227, - 0.17097856617218382, - 0.07636072979600324, - 0.04424533392521686, - 0.2505002175414068, - 0.2500610370366405, - 0.2978029420679597 + 12.14261463930991, + 0.4708571020893066, + 0.1704693123666012, + 0.07673842669987252, + 0.044123058904512756, + 0.24929251731766738, + 0.24712184667025203, + 0.29742442980063094 ], [ - 17.24873945503479, - 0.47320982724972566, - 0.16907520309125798, - 0.08896891569064673, - 0.3527475465757508, - 0.1561641777292191, - 0.22189706396926268 + 12.11904988214125, + 0.47251356162513375, + 0.1690622128583602, + 0.08831005759809518, + 0.3512501522948342, + 0.1552105111803802, + 0.2222474591080183 ], [ - 17.24119995075542, - 0.4690434347781599, - 0.19657888995166212, - 0.48974980070865476, - 0.1044061088221108, - 0.1586909473558846 + 11.77002107195635, + 0.4693253289405265, + 0.1946325853361424, + 0.48770332669416155, + 0.1044157540719893, + 0.1600801380868656 ], [ - 17.22944240620355, - 0.5466064688231546, - 0.7048370356783726, - 0.07158216558697406, - 0.1109000703427727 + 11.774063823159421, + 0.5363590155405226, + 0.700605645287041, + 0.07124293047900955, + 0.1115270490440754 ], [ - 15.311042498127538, - 1.090251744635521, - 0.046864630133632366, - 0.07261500632452347 + 15.611304381491289, + 1.095526215844176, + 0.047010734666885094, + 0.07372303623902426 ], [ - 3.177683456526757, - 0.03460075552894814, - 0.053322990401104275 + 3.184330038056338, + 0.03451602395247367, + 0.05386989261243966 ], [ - 0.7549395790620664, - 1.005987208303961 + 0.7514988968379347, + 1.011958921318784 ], [ - 14.21502775807472 + 14.20406330594874 ] ] }, "femm_results_lumped": { - "primary_inductance": 1.0395007545687485e-05, - "secondary_inductance": 0.014511524859845928, - "mutual_inductance": 0.00012349008485871475, - "coupling_coefficient": 0.31795317018456865, + "primary_inductance": 1.0453985813022273e-05, + "secondary_inductance": 0.014536523171447718, + "mutual_inductance": 0.00012400156556276412, + "coupling_coefficient": 0.318094340805376, "total_length_of_secondary_wire_ft": 580.7624755747023, - "ac_resistance_of_primary_ohms": 0.08027815288466034, - "ac_resistance_of_secondary_ohms": 113.6134361203446, + "ac_resistance_of_primary_ohms": 0.07737272722589066, + "ac_resistance_of_secondary_ohms": 112.442159508229, "secondary_turns": 585.0, "induction_parameters": { "section_self": [ - 1.0395007545687485e-05, - 0.014511524859845928 + 1.0453985813022273e-05, + 0.014536523171447718 ], "section_coupling": [ [ - 0.31795317018456865 + 0.318094340805376 ] ], "section_ac_resistance": [ - 113.6134361203446 + 112.442159508229 ], - "primary_ac_resistance": 0.08027815288466034 + "primary_ac_resistance": 0.07737272722589066 }, - "topload_capacitance_pF": 17.961147447025535, + "topload_capacitance_pF": 17.457826729404093, "secondary_capacitance_pF": 0, - "total_capacitance_pF": 17.961147447025535, - "energy_capacitance_pF": 17.961147447025535 + "total_capacitance_pF": 17.457826729404093, + "energy_capacitance_pF": 17.457826729404093 }, "active_simulation_type": "distributed", "femm_results": { - "primary_inductance": 1.039362027049663e-05, + "primary_inductance": 1.0453241864077895e-05, "total_length_of_secondary_wire_ft": 580.7624755747023, "secondary_turns": 585.0, - "ac_resistance_of_primary_ohms": 0.07684303963432565, - "ac_resistance_of_secondary_ohms": 109.93088172193045, + "ac_resistance_of_primary_ohms": 0.07871292674564276, + "ac_resistance_of_secondary_ohms": 110.96513655576746, "induction_parameters": { "section_self": [ - 1.039362027049663e-05, - 0.0005317883712898829, - 0.0005527618581815833, - 0.0005348909584537599, - 0.0005534830920291543, - 0.0005347403280831997, - 0.0005519564995719794, - 0.0005306185955490154, - 0.0005439600834994453, - 0.0005170839404594502, - 0.0005194542988473846 + 1.0453241864077895e-05, + 0.0005333548080600552, + 0.000553538029294651, + 0.0005359138407205834, + 0.0005548169631934481, + 0.0005354140024087217, + 0.0005526892993014909, + 0.0005313052838771809, + 0.0005444249438899743, + 0.0005174901255729393, + 0.0005197996343731783 ], "section_coupling": [ [ - 0.42775885504631334, - 0.36248700186881594, - 0.26903272178113374, - 0.19096301184542344, - 0.1345642785719219, - 0.09494392406291964, - 0.06690839918524681, - 0.046552965292432046, - 0.03129872182785004, - 0.019674930408270324 + 0.42910306496316386, + 0.3636835163727028, + 0.2693935283111801, + 0.19069672024264112, + 0.1341995671596269, + 0.09460698581968688, + 0.06670612062522972, + 0.04645055204661876, + 0.031239228200690795, + 0.01967372719777935 ], [ - 0.5036332083285967, - 0.25290803504146353, - 0.14844959144066977, - 0.0925237488687096, - 0.05984764257464823, - 0.03959923965954612, - 0.026310467658904255, - 0.017125935735942212, - 0.010546519630541143 + 0.5051039556066876, + 0.2535624530625867, + 0.14845106393938212, + 0.09239792693765442, + 0.05968124909363653, + 0.039463544912013836, + 0.026231697147950872, + 0.017077634914153393, + 0.010535576139245257 ], [ - 0.503775905036356, - 0.2519028831114112, - 0.14669354958020311, - 0.09055797505930747, - 0.05780720282190652, - 0.0373400401047979, - 0.023797969508007118, - 0.01445059874103959 + 0.5045408184825648, + 0.25192141142696706, + 0.1465165181616669, + 0.09028391124521039, + 0.05754262761575078, + 0.03716461492442259, + 0.02368138509176645, + 0.014401982355102356 ], [ - 0.5045976918341424, - 0.25188081998464706, - 0.1458444588938986, - 0.08916713290758298, - 0.05574385907763506, - 0.034672172953789056, - 0.020712993987899355 + 0.5044431371691189, + 0.2516059711431128, + 0.14544404683540482, + 0.08870978303061551, + 0.05541196555227083, + 0.034440073618228303, + 0.020598030458985863 ], [ - 0.5041432905483981, - 0.25076248791340444, - 0.14433541000507455, - 0.08676741771356491, - 0.052489850864416356, - 0.030787178318551784 + 0.5043473011808223, + 0.2506456914192137, + 0.14382031336185633, + 0.08629703580201444, + 0.052116702154361295, + 0.030580515633549105 ], [ - 0.5026074461621589, - 0.2485820211910561, - 0.1410148971097289, - 0.0823567552477634, - 0.04725502124701621 + 0.5035960199217049, + 0.2488041459823575, + 0.14084773447882853, + 0.08205687648199263, + 0.04706072888098008 ], [ - 0.5011990477153279, - 0.24493781000517914, - 0.135467382585431, - 0.07548856197430992 + 0.501594465288821, + 0.24504557583655281, + 0.1352647794196056, + 0.07531079015939522 ], [ - 0.4980604184984676, - 0.2381639004254279, - 0.12651697308306237 + 0.49826227168469917, + 0.2384384042911006, + 0.1266307599932573 ], [ - 0.4918271861958355, - 0.22742146755311587 + 0.4921759005220099, + 0.22790558465056257 ], [ - 0.4823456805445718 + 0.48292032048379635 ] ], "section_ac_resistance": [ - 10.75073161138125, - 11.31493449343926, - 10.9872223583428, - 11.11877629796648, - 10.88516174786922, - 11.08079729496604, - 10.88276386463266, - 11.12557186303114, - 10.96027773638772, - 10.82464445391386 + 10.81972929524705, + 11.42312489308738, + 11.1047447014294, + 11.24500771995165, + 10.99377113665476, + 11.19976116652593, + 10.9995588566358, + 11.24079735663911, + 11.06436903421529, + 10.8742723953811 ], - "primary_ac_resistance": 0.07684303963432565 + "primary_ac_resistance": 0.07871292674564276 }, "c_self": [ - 0.2876954252206357, - 0.08464218018897707, - 0.1223605136333703, - 0.17201448479070042, - 0.20361472932489005, - 0.21815624492109098, - 0.20614990472248443, - 0.18237919708946382, - 0.1424842808372715, - 0.1186098824184118, - 9.851912474365328, - 4.2420029187858095, - 2.454205659870432 + 0.28979283110432164, + 0.08579847114369696, + 0.12341881890773032, + 0.17234227966741217, + 0.20034223731176654, + 0.21347697312313646, + 0.20633381901499703, + 0.18247220184201263, + 0.1439753919568873, + 0.11975266292123946, + 9.85303378199819, + 4.240135412449337, + 2.4649744278558856 ], "c_matrix": [ [ - 14.53664042077779, - 0.36602443904698356, - 0.11706552158105961, - 0.04770660410841287, - 0.02117558928069594, - 0.010149351526542961, - 0.005139104672339598, - 0.0027079618466387526, - 0.001764327895132014, - 0.02439187048099836, - 4.77181258617105, - 0.07355620423486026 + 11.5966748641572, + 0.3679004143829066, + 0.1171952456425081, + 0.0475825266170703, + 0.02117182119688367, + 0.01014303009347268, + 0.005145098381673746, + 0.0027205874952916462, + 0.001735960152482105, + 0.023850631031700608, + 4.763611608129023, + 0.07358948447936876 ], [ - 17.41255044238404, - 0.3962333358169554, - 0.1299869486148368, - 0.05424418104854272, - 0.02554855564324687, - 0.01290620585834485, - 0.006712029646608598, - 0.004257514819058388, - 0.037625015794043454, - 2.023249832032092, - 0.1986462359031741 + 15.97879691002062, + 0.3968454425925914, + 0.1293415543089055, + 0.05423946058971432, + 0.02565116388478658, + 0.012965591659898391, + 0.006798844235016256, + 0.0042666274047434335, + 0.03815107975506813, + 2.041166497950949, + 0.2037615008503937 ], [ - 16.804586808523762, - 0.4467397179946325, - 0.15462348123069491, - 0.0689228092161806, - 0.03429839253785214, - 0.01774747710609462, - 0.01118429519790914, - 0.09622533537351638, - 0.9651708581072315, - 0.36768201975559267 + 16.380122210301, + 0.4456771982056303, + 0.1557082095904758, + 0.06963782622851952, + 0.03458631689438802, + 0.0180303833195571, + 0.01127575647292364, + 0.09721556341583344, + 0.9602744535254822, + 0.37065688713032807 ], [ - 14.69328032708347, - 0.4654882512905022, - 0.16624478422442582, - 0.0757524029321262, - 0.03732775004739068, - 0.02282569463149842, - 0.1687499128450705, - 0.46046258594138645, - 0.3731185497143558 + 16.10581050929023, + 0.46664060572396904, + 0.1686669099893155, + 0.07690516627542883, + 0.038236880649876646, + 0.023213980163242172, + 0.1708631963521301, + 0.4534945090426802, + 0.3762422025526376 ], [ - 14.737897090969588, - 0.47043730036262227, - 0.17097856617218382, - 0.07636072979600324, - 0.04424533392521686, - 0.2505002175414068, - 0.2500610370366405, - 0.2978029420679597 + 12.14261463930991, + 0.4708571020893066, + 0.1704693123666012, + 0.07673842669987252, + 0.044123058904512756, + 0.24929251731766738, + 0.24712184667025203, + 0.29742442980063094 ], [ - 17.24873945503479, - 0.47320982724972566, - 0.16907520309125798, - 0.08896891569064673, - 0.3527475465757508, - 0.1561641777292191, - 0.22189706396926268 + 12.11904988214125, + 0.47251356162513375, + 0.1690622128583602, + 0.08831005759809518, + 0.3512501522948342, + 0.1552105111803802, + 0.2222474591080183 ], [ - 17.24119995075542, - 0.4690434347781599, - 0.19657888995166212, - 0.48974980070865476, - 0.1044061088221108, - 0.1586909473558846 + 11.77002107195635, + 0.4693253289405265, + 0.1946325853361424, + 0.48770332669416155, + 0.1044157540719893, + 0.1600801380868656 ], [ - 17.22944240620355, - 0.5466064688231546, - 0.7048370356783726, - 0.07158216558697406, - 0.1109000703427727 + 11.774063823159421, + 0.5363590155405226, + 0.700605645287041, + 0.07124293047900955, + 0.1115270490440754 ], [ - 15.311042498127538, - 1.090251744635521, - 0.046864630133632366, - 0.07261500632452347 + 15.611304381491289, + 1.095526215844176, + 0.047010734666885094, + 0.07372303623902426 ], [ - 3.177683456526757, - 0.03460075552894814, - 0.053322990401104275 + 3.184330038056338, + 0.03451602395247367, + 0.05386989261243966 ], [ - 0.7549395790620664, - 1.005987208303961 + 0.7514988968379347, + 1.011958921318784 ], [ - 14.21502775807472 + 14.20406330594874 ] ] }, - "ltspice_results": { - "upper_pole": 380411.4411441144, - "lower_pole": 262239.0239023902, + "ltspice_results_distributed": { + "upper_pole": 381944.2708400769, + "lower_pole": 261818.30082191803, "all_peaks": [ - 262239.0239023902, - 380411.4411441144, - 953877.5877587759, - 1306595.2595259526, - 1615223.222322232, - 1907654.9654965496, - 2220781.8781878185, - 2483520.552055205 + 261818.30082191803, + 381944.2708400769, + 1004615.7902784881, + 1361444.6824660813, + 1698243.6524619132, + 2032357.0109364288, + 2365919.697486004 ], - "primary_impedance_ohms": 0.23255332473531568, - "primary_impedance_phase": 7.762079509452217, - "input_voltage": 34.77175870061003, + "primary_impedance_ohms": 0.28007603781175033, + "primary_impedance_phase": -30.56158623038632 + }, + "ltspice_results_lumped": { + "upper_pole": 366437.57464786223, + "lower_pole": 258226.0190634788, + "all_peaks": [ + 258226.0190634788, + 366437.57464786223 + ], + "frequency": 366437.57464786223, + "input_voltage": 34.19515202577989, + "primary_impedance_ohms": 0.227967680171866, + "primary_impedance_phase": 27.88741653592745, "v_array": [ - 3358.2760693499663, - 12426.616340029599, - 25924.511181651913, - 42983.02387036084, - 61630.74056113361, - 81650.6570565827, - 101472.681138214, - 120863.2866169169, - 137884.48246401816, - 151198.25672056194 + 123980.49622818542 ], "i_array": [ - 5.058433808684488, - 5.411628429466013, - 5.6778516824925, - 5.81203790618616, - 5.77911319662441, - 5.805955816401604, - 5.866317353574929, - 5.768981000613572, - 5.561318784234364, - 5.20261960764394 + 4.983658710721116 + ], + "v_mmc": 2171.651518609131 + }, + "ltspice_results": { + "upper_pole": 381944.2708400769, + "lower_pole": 261818.30082191803, + "all_peaks": [ + 261818.30082191803, + 381944.2708400769, + 1004615.7902784881, + 1361444.6824660813, + 1698243.6524619132, + 2032357.0109364288, + 2365919.697486004 ], - "v_mmc": 2091.879027260925 + "primary_impedance_ohms": 0.28007603781175033, + "primary_impedance_phase": -30.56158623038632 }, "simulation_states": { - "auto_converge": "warning", - "ltspice_only": "success", - "stress": "success", - "mode": "success", "lumped": "success", - "distributed": "success" + "distributed": "success", + "ltspice_only": "success", + "stress": "warning", + "mode": "warning" }, "unit_system_version": "1.0", "internal_unit": "centimeters", diff --git a/pyTesla.exe b/pyTesla.exe index 126953e..0ec7aea 100644 Binary files a/pyTesla.exe and b/pyTesla.exe differ