vk3cpu/toroid.html

2524 wiersze
171 KiB
HTML
Czysty Wina Historia

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>VK3CPU RF Toroid Calculator</title>
<link rel="stylesheet" href="toroid.css">
</head>
<body>
<header>Miguel <a href="mailto:vk3cpu@gmail.com">VK3CPU</a> - RF Toroid Calculator v1.2<br></header>
<section class="gridLayoutClass">
<div id="chart-container" class="chart-container">
<canvas id="chartCanvas" class="chartCanvasClass">
2D Chart Canvas
</canvas>
</div>
<div id="inductor-container" class="inductor-container">
<canvas id="inductor2D" class="inductorClass" width="350" height="350">
</canvas>
</div>
<div class="slider_container">
<div>
<select name="modes" id="mode-select" onchange="setMode()">
<option value="Inductor">Inductor</option>
<option value="Suppressor">Suppressor</option>
<!--option value="Transformer" disabled="false">Transformer</option-->
</select>
<select name="toroids" id="toroid-select" onchange="setToroid()">
<!--option value="FT240">FT240</option>
<option value="FT140">FT140</option>
<option value="FT37">FT37</option-->
</select>
<select name="materials" id="material-select" onchange="setMaterial()">
<!--option value="75">75 [&#956;i=5000]</option>
<option value="79">79 [&#956;i=1400]</option>
<option value="43" selected='true'>43 [&#956;i=800]</option>
<option value="80">80 [&#956;i=600]</option>
<option value="67">67 [&#956;i=40]</option-->
</select>
</div>
<div class="sliders">
<label for="conductor_diameter_slider">AWG:</label>
<input type="range" id="conductor_diameter_slider" min="2" max="38" value="20" step="1">
</div>
<div class="sliders">
<label for="loop_turns_slider">N:</label>
<input type="range" id="loop_turns_slider" min="0.0" max="1.0" value="0.15" step="0.005">
</div>
<div class="sliders">
<label for="voltage_slider">Vrms:</label>
<input type="range" id="voltage_slider" min="0.0" max="3.0" value="1.0" step="0.005">
</div>
<div class="sliders">
<label for="frequency_slider">f:</label>
<input type="range" id="frequency_slider" min="0.0" max="4.0" value="2.0" step="0.05">
</div>
</div>
<div id="notes" class="notes">
<br>
<b><u>Notes:</u></b><br>
RF Toroid Calculator was developed to help users predict the RF characteristics of a ferrite or powdered-iron toroid wound as an inductor or suppressor.
It uses the manufacturer's (Fair-Rite & Micrometals) published data including the toroid's dimensions and complex permeability characteristics
to predict the component's characteristics.<br>
The calculator has 4 separate display areas. At the top is the chart display for showing frequency-dependent characteristics. Next is the
schematic display, where a scaled image of the toroid and windings is presented to help with intuitive design. Next is the control panel
section, where the user can select the application type, toroid material, toroid size, wire size, number of windings and excitation voltage.<br><br>
<b><u>Inputs via the select widgets:</u></b>
<ul>
<li>Application : Selects the intended use of the toroid, either Inductor or Suppressor is currently supported. This limits the material selection as appropriate.</li>
<li>Size : Selects the size of the toroid. FT240 is 2.4" in diameter. FT80 is 0.8", etc...</li>
<li>Material : Manufacturers material mix code. Inductor mode shows initial permeability [&#956;i] in square brackets. (Pick lower &#956;i for higher frequency applications.)
Suppressor mode displays effective suppression frequency range in square brackets.</li>
</ul>
<b><u>Inputs via the slider widgets:</u></b>
<ul>
<li>AWG : Select the wire gauge. Sliding L-R changes AWG from 40-0. (Defaults to 20 AWG)</li>
<li>N : Winding density at the toroid inner-diameter. Controls how many single-layer turns can be achieved around the core.
Maximum (100%, slider to hard-right) is reached when the turns are adjacent at the toroid's inner radius. (Defaults to 15%)</li>
<li>Vrms : The RMS voltage applied to the inductor (Volts). Determines the flux-density (B) and field-intensity (H) within the ferrite toroid. (Defaults to 10Vrms)</li>
<li>f : Shifts the frequency of interest of the chart display from left-to-right. Left towards kHz, right towards GHz. </li>
</ul>
<i>Note: Manufacturers recommend keeping the number of turns (N) to a minimum.</i><br><br>
<b><u>Chart display:</u></b>
The chart title contains manufacturer, size, material and part number of the device. <br>
Calculated parameters are displayed against frequency (log scale). Each parameter may be displayed or hidden
by tapping on the legend key. Tapping on a data point will display the parameters for a single frequency.
<ul>
<li>L(&#956;H) : Inductance in microhenries. </li>
<li>|Z|(&#937;) : Impedance magnitude in Ohms. </li>
<li> X(&#937;) : Reactance in Ohms. </li>
<li> R(&#937;) : (F) - Resistance due to core losses in Ohms. </li>
<li> Rc(&#937;) : (PI) - Resistance due to core losses in Ohms. </li>
<li> Rw(&#937;) : (PI) - Resistance due to wire losses in Ohms. </li>
<li> Q : Quality factor. (X/R) </li>
<li> I(mA) : RMS current in milliamps. </li>
<li> &#956;' : (F) Complex permeability - reactive part. (Hidden by default.) </li>
<li> &#956;'' : (F) Complex permeability - resistive part. (Hidden by default.) </li>
<li> &#956; : (PI) Permeability (Hidden by default.) </li>
<li> H(Oe) : Core field intensity in Oersted. (Hidden by default.) </li>
<li> B(G) : Core flux density in Gauss. (Hidden by default.) </li>
<li> Pd(mW) : Sum of the power dissipation in the core, in milliwatts. For PI, it includes power dissipated in the wire also. </li>
</ul>
<br>
<b><u>Schematic display:</u></b>
Scaled representation of the toroid and the windings. Wire gauge and toroid dimensions are provided.<br>
On the left of the display are the following:
<ul>
<li>L&#7522; : Initial inductance in microhenries. This is based on the initial permeability figure found in data sheets. For accuracy, use the frequency-dependent inductance displayed in the chart.</li>
<li>Vrms : Excitation RMS voltage selected.</li>
<li>Rdc : Wire resistance in ohms.</li>
<li>Ceff : Experimental effective-capacitance calculation to determine SRF. (Under development so greyed-out. Based on David Knight's G3YNH
work on the self-capacitance of toroidal inductors detailed <a href="https://www.g3ynh.info/zdocs/magnetics/appendix/Toroid_selfC.html">HERE</a>).</li>
<li>SRF : Experimental self-resonant frequency prediction in MHz. (Under development so greyed-out. From the same paper detailed above.)</li>
</ul>
In the middle of the display are the following:
<ul>
<li>nn AWG : The wire gauge selected, based on the American Wire Gauge Standard.</li>
<li>&#8960; : Conductor diameter in mm and (inches).</li>
<li>Nd : The selected winding density in percent.</li>
<li>N : The number of turns, based on the selected Nd.</li>
<li>wire : Wire conductor length in centimeters and (feet).</li>
</ul>
On the right are the manufacturers data for the selected material.
<ul>
<li>&#956;i : Initial permeability @ B < 10 gauss.</li>
<li>B : (F) Flux density in gauss when applied with H oersted.</li>
<li>H : (F) Applied field strength in oersted.</li>
<li>Bsat : (PI) Saturation flux density in gauss.</li>
<li>Br : Residual flux density in gauss.</li>
<li>Hc : Coercive force at 0 gauss.</li>
<li>Tc : Curie temperature in Celsius.</li>
<li>ρ: Resistivity in &#937;-cm.</li>
<li>Type : Material composition. (NiZn, MnZn, Phenolic, Carbonyl)</li>
<li>P/N : Manufacturer's part number.</li>
</ul>
<br>
<b><u>Observations:</u></b><br>
<b>Powdered Iron:</b><br>
Inductance and reactance values correspond well with those predicted by online calculators such as toroids.info.
However, predictions for Q have mixed results when compared to the Micrometals Q-Curve Catalog found <a href="https://s3.amazonaws.com/micrometals-production/filer_public/7e/d0/7ed096a0-fe6e-4df1-9da9-e129c1ee73d2/q_curve_catalog_issue_h.pdf">HERE</a>.
I suggest using their catalog for accurate Q prediction. It has been previously identified that Q values predicted using Micrometal's curve-fit equations do not reconcile with measured Q as discussed <a href="https://owenduffy.net/calc/toroid.htm">here</a>.
<br><br>
<u><b>Other VK3CPU calculators:</b>
<ul>
<li><a href="https://miguelvaca.github.io/vk3cpu/magloop.html">Magloop - STL Antenna Calculator</a></li>
<li><a href="https://miguelvaca.github.io/vk3cpu/short_dipole.html">Coil-loaded Dipole Calculator</a></li>
<li><a href="https://miguelvaca.github.io/vk3cpu/inductor_imp.html">RF Inductor Calculator</a></li>
</ul>
</u>
<br>
<b><u>TODO:</u></b><br>
<ul>
<li> Add a DC current bias slider.</li>
<li> Consider adding temperature slider.</li>
</ul>
<br>
<b><u>Change history:</u></b><br>
<b>[2-May-23] - v1.2</b> <br>
* Added 2646102002 which I have called the "FT102B-61" <br>
<b>[1-May-23] - v1.1</b> <br>
* Added 2643102002 which I have called the "FT102B-43" <br>
<b>[23-Jul-22] - v1.0</b> <br>
* Added 2643251002 which I have called the "FT154B".<br>
<b>[16-Feb-22] - v0.9f</b> <br>
* Remove references to transformers. Transformers will be supported by a separate calculator.<br>
<b>[17-Jan-22] - v0.9f</b> <br>
* Added x2 and x3 stacking for 31, 43, 52 and 61 240-sized toroids.<br>
<b>[24-Nov-21] - v0.9e</b> <br>
* Justify tooltips.<br>
<b>[14-Nov-21] - v0.9d</b> <br>
* Updated manufacturers data section to more-closely match datasheets. Also justify to appear like tabular data.<br>
<b>[6-Nov-21] - v0.9c</b> <br>
* Re-enabled PI support.<br>
* Added support for PI Material 17.<br>
<b>[3-Nov-21] - v0.9b</b> <br>
* Disabled PI support due to bugs that need to be fixed.<br>
<b>[2-Nov-21] - v0.9a</b> <br>
* Release 0.9a - Major code refactor to support Powdered Iron toroids.<br>
<b>[26-Oct-21]</b> <br>
* Increased resolution of the f-slider, making it smoothly regenerate the dataset.<br>
<b>[24-Oct-21]</b> <br>
* Fixed frozen f-slider issue that was occurring in some browsers running on Windows.<br>
* Increased contrast for experimental Ceff and SRF calculations, based on David Knight's (G3YNH) paper.<br>
</div>
</section>
<!--script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.5.1/Chart.min.js"></script-->
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.5.1/dist/chart.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/7.5.1/math.min.js"></script>
<script src="inductor.js"></script>
<script>
function awgToMm(awg) {
// AWG to diameter in mm:
switch (awg) {
case 40: return [0.0787, 0.10414];
case 39: return [0.0889, 0.1143];
case 38: return [0.102, 0.12954];
case 37: return [0.114, 0.14478];
case 36: return [0.127, 0.16002];
case 35: return [0.142, 0.1778];
case 34: return [0.160, 0.19812];
case 33: return [0.180, 0.22098];
case 32: return [0.203, 0.24638];
case 31: return [0.226, 0.27432];
case 30: return [0.255, 0.30734];
case 29: return [0.287, 0.33782];
case 28: return [0.320, 0.37338];
case 27: return [0.361, 0.4191];
case 26: return [0.404, 0.46228];
case 25: return [0.455, 0.51562];
case 24: return [0.511, 0.57658];
case 23: return [0.574, 0.64262];
case 22: return [0.645, 0.71374];
case 21: return [0.724, 0.8001];
case 20: return [0.813, 0.89154];
case 19: return [0.912, 0.99314];
case 18: return [1.024, 1.10998];
case 17: return [1.150, 1.23952];
case 16: return [1.290, 1.3843];
case 15: return [1.450, 1.5494];
case 14: return [1.628, 1.73228];
case 13: return [1.829, 1.93548];
case 12: return [2.053, 2.16154];
case 11: return [2.304, 2.41808];
case 10: return [2.588, 2.70256];
case 9: return [2.906, 3.0226];
case 8: return [3.264, 3.38328];
case 7: return [3.665, 3.78968];
case 6: return [4.115, 4.24688];
case 5: return [4.621, 4.75742];
case 4: return [5.189, 5.32892];
case 3: return [5.827, 5.97154];
case 2: return [6.544, 6.69036];
case 1: return [7.348, 7.54888];
case 0: return [8.251, 8.45];
default: return [0.0, 0.0];
}
}
function Ferrite() {
// Current selected material type:
this.material = '43';
// Current selected ferrite size:
this.size = 'FT240';
// User-selected variables:
this.cond_diameter_meters = 0.0;
this.N = 0;
this.Vrms = 0.0;
// Calculated frequency-independent variables:
this.cond_length_meters = 0.0;
this.Rdc = 0.0;
this.N_max = 0;
this.L = 0.0;
// Calculated and charted frequency-dependent variables:
this.L_vs_f = [];
this.Z_vs_f = [];
this.R_vs_f = [];
this.X_vs_f = [];
this.Q_vs_f = [];
this.i_vs_f = [];
this.P_vs_f = [];
this.mu1_vs_f = [];
this.mu2_vs_f = [];
this.H_vs_f = [];
this.B_vs_f = [];
this.cores = {
'80' : {
size : {
'FT114' : { PN:'5980001001', A:29.00, B:19.00, C:7.50, W:21.0, CC:19.80, le:7.32, Ae:0.37, Ve:2.70, Al:350.0 },
'FT87' : { PN:'5980001801', A:22.10, B:13.7, C:6.35, W:5.2, CC:20.70, le:5.42, Ae:0.26, Ve:0.142, Al:330.0 },
'FT37' : { PN:'5980000201', A:9.50, B:4.70, C:3.30, W:0.83, CC:28.50, le:2.07, Ae:0.073, Ve:0.15, Al:245.0 },
},
manufacturer : "Fair-Rite",
mat : "MnZn",
mu_i : 600,
B : 4700,
H : 5,
Br : 500,
Hc : 0.4,
Tc : 300,
R : 200,
complex_mu : {
freq: [10000.0, 100000.0, 300000.0, 500000.0, 667000.0, 800000.0, 1000000.0, 2000000.0, 2040000.0, 2090000.0, 2140000.0, 2190000.0, 2240000.0, 2290000.0, 2340000.0, 2400000.0, 2450000.0, 2510000.0, 2570000.0, 2630000.0, 2690000.0, 2750000.0, 2820000.0, 2880000.0, 2950000.0, 3020000.0, 3090000.0, 3160000.0, 3240000.0, 3310000.0, 3390000.0, 3470000.0, 3550000.0, 3630000.0, 3720000.0, 3800000.0, 3890000.0, 3980000.0, 4070000.0, 4170000.0, 4270000.0, 4370000.0, 4470000.0, 4570000.0, 4680000.0, 4790000.0, 4900000.0, 5010000.0, 5130000.0, 5250000.0, 5370000.0, 5500000.0, 5620000.0, 5750000.0, 5890000.0, 6030000.0, 6170000.0, 6310000.0, 6460000.0, 6610000.0, 6760000.0, 6920000.0, 7080000.0, 7240000.0, 7410000.0, 7590000.0, 7760000.0, 7940000.0, 8130000.0, 8320000.0, 8510000.0, 8710000.0, 8910000.0, 9120000.0, 9330000.0, 9550000.0, 9770000.0, 10000000.0, 10200000.0, 10500000.0, 10700000.0, 11000000.0, 11200000.0, 11500000.0, 11700000.0, 12000000.0, 12300000.0, 12600000.0, 12900000.0, 13200000.0, 13500000.0, 13800000.0, 14100000.0, 14500000.0, 14800000.0, 15100000.0, 15500000.0, 15800000.0, 16200000.0, 16600000.0, 17000000.0, 17400000.0, 17800000.0, 18200000.0, 18600000.0, 19100000.0, 19500000.0, 20000000.0, 20400000.0, 20900000.0, 21400000.0, 21900000.0, 22400000.0, 22900000.0, 23400000.0, 24000000.0, 24500000.0, 25100000.0, 25700000.0, 26300000.0, 26900000.0, 27500000.0, 28200000.0, 28800000.0, 29500000.0, 30200000.0, 30900000.0, 31600000.0, 32400000.0, 33100000.0, 33900000.0, 34700000.0, 35500000.0, 36300000.0, 37200000.0, 38000000.0, 38900000.0, 39800000.0, 40700000.0, 41700000.0, 42700000.0, 43700000.0, 44700000.0, 45700000.0, 46800000.0, 47900000.0, 49000000.0, 50100000.0, 51300000.0, 52500000.0, 53700000.0, 55000000.0, 56200000.0, 57500000.0, 58900000.0, 60300000.0, 61700000.0, 63100000.0, 64600000.0, 66100000.0, 67600000.0, 69200000.0, 70800000.0, 72400000.0, 74100000.0, 75900000.0, 77600000.0, 79400000.0, 81300000.0, 83200000.0, 85100000.0, 87100000.0, 89100000.0, 91200000.0, 93300000.0, 95500000.0, 97700000.0, 100000000.0] ,
mu_1: [552.5293373, 551.8353641, 551.7485492, 552.0082962, 552.8058814, 553.7193461, 552.7320041, 576.7065362, 578.16449, 579.6701607, 581.5634164, 583.3458896, 585.0316149, 586.864943, 589.0517811, 591.3347543, 593.120218, 595.3244732, 598.0256692, 600.4115685, 603.3914119, 606.4104715, 609.8122818, 613.3152321, 616.5004721, 620.3318893, 624.1874715, 628.1742612, 632.5550661, 637.3831485, 642.5114883, 647.7452009, 653.4235474, 659.5336823, 665.5433373, 672.7322003, 680.0993878, 688.0287583, 696.7352717, 706.0786223, 716.0689848, 726.5971847, 738.313893, 751.0129395, 764.8528686, 780.0733218, 796.4494587, 815.2404354, 834.8191246, 857.1206399, 882.0265771, 909.5173001, 940.3735841, 975.2661628, 1014.208789, 1059.063472, 1109.457948, 1167.162839, 1231.477696, 1302.602502, 1377.261326, 1445.496059, 1483.453054, 1441.572532, 1240.027627, 821.7123464, 280.0900126, -161.463971, -390.8270107, -452.3839303, -427.6338039, -368.8547616, -302.9694255, -241.3342552, -188.797456, -146.2660319, -113.5257068, -89.99241895, -74.29580358, -64.82477402, -59.81840292, -57.51010963, -56.76088184, -56.814224, -57.07040608, -57.42930609, -57.69547751, -57.74114269, -57.63837375, -57.40317876, -57.08823262, -56.68194973, -56.12916674, -55.51845246, -54.92332085, -54.20308253, -53.55237176, -52.84884535, -52.16993532, -51.48197934, -50.79025884, -50.09636006, -49.41869705, -48.69815414, -48.0752398, -47.43951487, -46.75561328, -46.11600183, -45.48493928, -44.8242942, -44.15447071, -43.54241343, -42.91292566, -42.28501298, -41.67530798, -41.02323705, -40.35247164, -39.6830753, -39.0184742, -38.32086167, -37.63258308, -36.92659005, -36.20447829, -35.50320056, -34.80637331, -34.10891596, -33.39995308, -32.70081648, -32.02218646, -31.34638472, -30.65456216, -29.98124368, -29.30336613, -28.67020496, -27.97301266, -27.32804174, -26.68851346, -26.03242315, -25.43234441, -24.78897718, -24.20805315, -23.63346464, -23.04328355, -22.43387581, -21.84967174, -21.30547567, -20.79749682, -20.24914529, -19.7045426, -19.19789941, -18.67802475, -18.17486627, -17.70084037, -17.20974228, -16.73414233, -16.26328553, -15.8057269, -15.37093672, -14.94312753, -14.50479774, -14.10080607, -13.69800883, -13.29768805, -12.90728014, -12.52724757, -12.14616373, -11.80040727, -11.43534958, -11.07737208, -10.75082832, -10.41957072, -10.09505637, -9.790459248, -9.480485647, -9.179966322, -8.897451637, -8.612714327, -8.338432873] ,
mu_2: [0.289303711, 0.385253824, 0.481491564, 0.867093317, 1.350762274, 1.739566353, 2.416427681, 7.721430072, 7.973516404, 8.211915795, 9.000578471, 9.525294184, 9.539358131, 9.985647983, 10.21317352, 10.9124654, 11.41459574, 11.92915091, 12.13222424, 12.97789753, 13.72904158, 14.26065941, 15.13724059, 16.09541422, 16.7102912, 17.71820085, 18.71122023, 19.49525004, 20.48658071, 21.74524484, 23.0640455, 24.7848944, 26.22850221, 27.97594052, 29.64695631, 31.90680981, 33.92890232, 36.59644102, 39.10737708, 41.86787182, 45.0658211, 48.77541547, 53.0750689, 57.45015629, 62.50272585, 68.15373893, 74.65275341, 81.90826162, 90.60225492, 100.8423824, 112.8009168, 126.9124574, 143.517934, 164.1092076, 189.6556519, 221.4211477, 261.2887724, 313.7025431, 382.2620274, 475.1209197, 602.2959658, 779.4137144, 1023.757354, 1345.612776, 1712.239766, 1995.009455, 2022.30722, 1783.651735, 1443.317974, 1137.490938, 907.7645787, 746.8613168, 638.0172567, 565.6402706, 517.8546566, 486.8367069, 466.763034, 453.2343538, 443.1904295, 434.2851329, 425.0558182, 415.0165515, 404.0869149, 392.4422242, 380.4012255, 368.3075283, 356.3459607, 344.4424301, 333.0438673, 321.8701137, 311.1108071, 300.7642878, 290.866019, 281.3240811, 272.2112127, 263.5413384, 255.1024179, 246.966844, 239.2042748, 231.7671826, 224.5464818, 217.5984796, 210.8794141, 204.3913395, 198.1026505, 192.1025947, 186.2302496, 180.6029462, 175.107119, 169.7837129, 164.6736254, 159.6346219, 154.7587518, 150.0331907, 145.4429647, 140.9625123, 136.6289636, 132.4415757, 128.3512765, 124.3878016, 120.5875242, 116.8721149, 113.293722, 109.7936776, 106.4169012, 103.148636, 99.97602469, 96.91757718, 93.92363002, 91.02253316, 88.21426803, 85.50721438, 82.86032447, 80.30070665, 77.83305378, 75.4422733, 73.13055534, 70.8844903, 68.72594029, 66.62088877, 64.58785225, 62.62626735, 60.70113617, 58.83188685, 57.02023332, 55.27327546, 53.58530131, 51.95356572, 50.36046931, 48.84091232, 47.33233133, 45.90476705, 44.49727149, 43.14865806, 41.8184313, 40.54886853, 39.31478716, 38.13533338, 36.97706789, 35.84327965, 34.75466551, 33.72000889, 32.69012875, 31.69350444, 30.75346018, 29.81618266, 28.92020338, 28.04094115, 27.21403855, 26.39507763, 25.60676388, 24.83984183, 24.1003866, 23.39371118, 22.69978386, 22.02932947, 21.37550228, 20.7479763] ,
},
color : 'grey',
},
'79' : {
size : {
'FT114' : { PN:'5979001001', A:29.00, B:19.00, C:7.50, W:21.0, CC:19.80, le:7.32, Ae:0.37, Ve:2.70, Al:860.0 },
'FT87' : { PN:'5979001801', A:22.10, B:13.7, C:6.35, W:5.2, CC:20.70, le:5.41, Ae:0.26, Ve:0.150, Al:840.0 },
'FT37' : { PN:'5979000201', A:9.50, B:4.70, C:3.20, W:0.83, CC:28.50, le:2.07, Ae:0.072, Ve:0.15, Al:600.0 },
},
manufacturer : "Fair-Rite",
mat : "MnZn",
mu_i : 1400,
B : 4600,
H : 5,
Br : 1500,
Hc : 0.34,
Tc : 225,
R : 200,
complex_mu : {
freq: [10000.0, 50000.0, 100000.0, 300000.0, 500000.0, 666000.0, 1000000.0, 1170000.0, 1360000.0, 1580000.0, 1840000.0, 2150000.0, 2500000.0, 2920000.0, 3400000.0, 3960000.0, 4620000.0, 5380000.0, 6270000.0, 7310000.0, 8510000.0, 9920000.0, 11600000.0, 13500000.0, 15700000.0, 18300000.0, 21300000.0, 24800000.0, 28900000.0, 33700000.0, 39300000.0, 45800000.0, 53400000.0, 62200000.0, 72500000.0, 84400000.0, 98400000.0, 115000000.0, 134000000.0, 156000000.0, 181000000.0, 211000000.0, 246000000.0, 287000000.0, 335000000.0, 390000000.0, 454000000.0, 529000000.0, 617000000.0, 719000000.0, 838000000.0, 976000000.0, 1140000000.0, 1330000000.0, 1540000000.0, 1800000000.0] ,
mu_1: [1382.4, 1379.2, 1377.5, 1382.7, 1396.5, 1417.2, 1500.0, 1560.0, 1630.0, 1710.0, 1740.0, 1710.0, 1620.0, 1490.0, 1310.0, 1080.0, 814.0, 532.0, 270.0, 67.4, -58.1, -116.0, -130.0, -123.0, -107.0, -90.3, -75.5, -63.1, -53.0, -44.7, -37.5, -31.3, -25.9, -21.2, -17.3, -14.1, -11.4, -9.2, -7.4, -5.9, -4.7, -3.7, -2.9, -2.3, -1.8, -1.4, -1.1, -0.8, -0.6, -0.4, -0.2, 0.0, 0.2, 0.6, 1.1, 1.8] ,
mu_2: [1.1, 2.4, 2.8, 5.2, 8.4, 11.9, 30.8, 50.9, 100.0, 207.0, 375.0, 565.0, 752.0, 925.0, 1080.0, 1200.0, 1270.0, 1250.0, 1160.0, 996.0, 809.0, 635.0, 492.0, 382.0, 300.0, 239.0, 192.0, 156.0, 127.0, 104.0, 84.1, 68.3, 55.5, 45.1, 36.8, 30.0, 24.6, 20.1, 16.6, 13.6, 11.3, 9.4, 7.8, 6.6, 5.5, 4.7, 4.0, 3.5, 3.0, 2.6, 2.3, 2.1, 2.0, 1.9, 1.9, 2.0] ,
},
color : 'grey',
},
'78' : {
size : {
'FT240' : { PN:'5978003801', A:61.0, B:35.55, C:12.70, W:106.0, CC:9.20, le:14.5, Ae:1.58, Ve:22.8, Al:3155.0 },
'FT140' : { PN:'5978002701', A:35.55, B:23.00, C:12.70, W:33.00, CC:11.20, le:8.90, Ae:0.79, Ve:7.00, Al:2545.0 },
'FT114' : { PN:'5978001201', A:29.00, B:19.00, C:13.85, W:26.00, CC:10.70, le:7.30, Ae:0.68, Ve:5.00, Al:2695.0 },
'FT90' : { PN:'5978007621', A:23.00, B:12.90, C:13.65, W:15.00, CC:10.30, le:5.40, Ae:0.52, Ve:2.83, Al:2795.0 },
'FT87' : { PN:'5978007601', A:22.10, B:13.70, C:12.70, W:15.00, CC:10.30, le:5.40, Ae:0.52, Ve:2.83, Al:2795.0 },
'FT19' : { PN:'5978002101', A:4.95, B:2.20, C:1.400, W:0.09, CC:69.20, le:1.04, Ae:0.015, Ve:0.157, Al:440.0 },
},
manufacturer : "Fair-Rite",
mat : "MnZn",
mu_i : 2300,
B : 4800,
H : 5,
Br : 1500,
Hc : 0.20,
Tc : 200,
R : 200,
complex_mu : {
freq: [10000.0, 100000.0, 300000.0, 500000.0, 700000.0, 900000.0, 1000000.0, 1170000.0, 1360000.0, 1580000.0, 1840000.0, 2150000.0, 2500000.0, 2920000.0, 3400000.0, 3960000.0, 4620000.0, 5380000.0, 6270000.0, 7310000.0, 8510000.0, 9920000.0, 11600000.0, 13500000.0, 15700000.0, 18300000.0, 21300000.0, 24800000.0, 28900000.0, 33700000.0, 39300000.0, 45800000.0, 53400000.0, 62200000.0, 72500000.0, 84400000.0, 98400000.0, 115000000.0, 134000000.0, 156000000.0, 181000000.0, 211000000.0, 246000000.0, 287000000.0, 335000000.0, 390000000.0, 454000000.0, 529000000.0, 617000000.0, 719000000.0, 838000000.0, 976000000.0, 1140000000.0, 1330000000.0, 1540000000.0, 1800000000.0] ,
mu_1: [2099.0, 2102.0, 2175.0, 2323.0, 2504.0, 2539.0, 2510.0, 2377.0, 2204.0, 1969.0, 1684.0, 1373.0, 1062.0, 769.0, 500.0, 266.0, 82.0, -43.0, -112.0, -138.0, -135.0, -118.0, -99.0, -81.0, -68.0, -58.0, -50.0, -43.0, -36.0, -30.0, -24.0, -20.0, -16.0, -13.0, -10.0, -8.0, -7.0, -5.0, -4.0, -3.0, -3.0, -2.0, -2.0, -1.0, -1.0, -1.0, -1.0, -1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0, 3.0] ,
mu_2: [13.0, 14.0, 33.0, 91.0, 314.0, 666.0, 900.0, 1109.0, 1310.0, 1493.0, 1623.0, 1683.0, 1678.0, 1618.0, 1511.0, 1361.0, 1176.0, 977.0, 787.0, 622.0, 488.0, 385.0, 309.0, 252.0, 208.0, 172.0, 141.0, 115.0, 94.0, 77.0, 63.0, 52.0, 43.0, 35.0, 29.0, 24.0, 20.0, 17.0, 14.0, 12.0, 10.0, 9.0, 7.0, 6.0, 5.0, 5.0, 4.0, 3.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0] ,
},
color : 'grey',
},
'77' : {
size : {
'FT240' : { PN:'5977003801', A:61.0, B:35.55, C:12.7, W:106.0, CC:9.20, le:14.5, Ae:1.58, Ve:22.8, Al:3155.0 },
'FT140' : { PN:'5977002701', A:35.55, B:23.00, C:12.7, W:33.00, CC:11.20, le:8.90, Ae:0.79, Ve:7.00, Al:2545.0 },
'FT114' : { PN:'5977001001', A:29.00, B:19.00, C:7.5, W:13.0, CC:19.80, le:7.30, Ae:0.37, Ve:2.70, Al:1365.0 },
'FT100' : { PN:'5977006401', A:25.40, B:15.50, C:12.7, W:19.0, CC:10.00, le:6.20, Ae:0.62, Ve:3.80, Al:2700.0 },
'FT50' : { PN:'5977000301', A:12.70, B:7.15, C:4.90, W:2.00, CC:22.90, le:2.95, Ae:0.129, Ve:0.38, Al:1180.0 },
'FT37' : { PN:'5977000201', A:9.50, B:4.75, C:3.30, W:0.83, CC:28.60, le:2.07, Ae:0.072, Ve:0.15, Al:945.0 },
},
manufacturer : "Fair-Rite",
mat : "MnZn",
mu_i : 2000,
B : 4900,
H : 5,
Br : 1800,
Hc : 0.30,
Tc : 200,
R : 100,
complex_mu : {
freq: [10000.0, 100000.0, 300000.0, 500000.0, 700000.0, 900000.0, 1000000.0, 1170000.0, 1360000.0, 1580000.0, 1840000.0, 2150000.0, 2500000.0, 2920000.0, 3400000.0, 3960000.0, 4620000.0, 5380000.0, 6270000.0, 7310000.0, 8510000.0, 9920000.0, 11600000.0, 13500000.0, 15700000.0, 18300000.0, 21300000.0, 24800000.0, 28900000.0, 33700000.0, 39300000.0, 45800000.0, 53400000.0, 62200000.0, 72500000.0, 84400000.0, 98400000.0, 115000000.0, 134000000.0, 156000000.0, 181000000.0, 211000000.0, 246000000.0, 287000000.0, 335000000.0, 390000000.0, 454000000.0, 529000000.0, 617000000.0, 719000000.0, 838000000.0, 976000000.0, 1140000000.0, 1330000000.0, 1540000000.0, 1800000000.0] ,
mu_1: [1989.0, 2001.0, 2045.0, 2142.0, 2193.0, 2097.0, 2074.0, 1892.0, 1668.0, 1423.0, 1174.0, 944.0, 738.0, 560.0, 407.0, 278.0, 171.0, 88.0, 27.0, -11.0, -31.0, -40.0, -41.0, -41.0, -39.0, -36.0, -33.0, -29.0, -26.0, -22.0, -19.0, -16.0, -13.0, -11.0, -9.0, -8.0, -6.0, -5.0, -4.0, -3.0, -3.0, -2.0, -2.0, -1.0, -1.0, -1.0, -1.0, -1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0, 3.0] ,
mu_2: [14.0, 37.0, 109.0, 250.0, 519.0, 791.0, 946.0, 1099.0, 1212.0, 1275.0, 1286.0, 1254.0, 1193.0, 1113.0, 1020.0, 920.0, 815.0, 708.0, 603.0, 506.0, 419.0, 346.0, 286.0, 237.0, 197.0, 163.0, 135.0, 111.0, 92.0, 76.0, 62.0, 51.0, 42.0, 35.0, 29.0, 24.0, 20.0, 17.0, 14.0, 12.0, 10.0, 8.0, 7.0, 6.0, 5.0, 4.0, 4.0, 3.0, 3.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0] ,
},
color : 'grey',
},
'75' : {
size : {
'FT240' : { PN:'5975003801', A:61.0, B:35.35, C:12.7, W:106.0, CC:9.20, le:14.5, Ae:1.58, Ve:22.8, Al:6850.0 },
'FT140' : { PN:'5975002701', A:35.55, B:23.00, C:12.7, W:33.00, CC:11.20, le:8.90, Ae:0.79, Ve:7.00, Al:5500.0 },
'FT100' : { PN:'5975006401', A:25.40, B:15.50, C:12.7, W:19.0, CC:10.00, le:6.20, Ae:0.62, Ve:3.80, Al:6250.0 },
'FT50' : { PN:'5975000301', A:12.70, B:7.15, C:4.90, W:2.00, CC:22.90, le:2.95, Ae:0.129, Ve:0.38, Al:2725.0 },
'FT37' : { PN:'5975000201', A:9.50, B:4.75, C:3.30, W:0.83, CC:28.60, le:2.06, Ae:0.072, Ve:0.15, Al:2200.0 },
},
manufacturer : "Fair-Rite",
mat : "MnZn",
mu_i : 5000,
B : 4800,
H : 5,
Br : 1000,
Hc : 0.11,
Tc : 140,
R : 300,
complex_mu : {
freq: [10000.0, 30000.0, 50000.0, 100000.0, 300000.0, 500000.0, 667000.0, 800000.0, 1000000.0, 1070000.0, 1150000.0, 1230000.0, 1320000.0, 1420000.0, 1520000.0, 1630000.0, 1750000.0, 1870000.0, 2010000.0, 2150000.0, 2310000.0, 2480000.0, 2660000.0, 2850000.0, 3050000.0, 3270000.0, 3510000.0, 3760000.0, 4040000.0, 4330000.0, 4640000.0, 4980000.0, 5340000.0, 5720000.0, 6140000.0, 6580000.0, 7050000.0, 7560000.0, 8110000.0, 8700000.0, 9330000.0, 10000000.0, 10700000.0, 11500000.0, 12300000.0, 13200000.0, 14200000.0, 15200000.0, 16300000.0, 17500000.0, 18700000.0, 20100000.0, 21500000.0, 23100000.0, 24800000.0, 26600000.0, 28500000.0, 30500000.0, 32700000.0, 35100000.0, 37600000.0, 40400000.0, 43300000.0, 46400000.0, 49800000.0, 53400000.0, 57200000.0, 61400000.0, 65800000.0, 70500000.0, 75600000.0, 81100000.0, 87000000.0, 93300000.0, 100000000.0, 107000000.0, 115000000.0, 123000000.0, 132000000.0, 142000000.0, 152000000.0, 163000000.0, 175000000.0, 187000000.0, 201000000.0, 215000000.0, 231000000.0, 248000000.0, 266000000.0, 285000000.0, 305000000.0, 327000000.0, 351000000.0, 376000000.0, 404000000.0, 433000000.0, 464000000.0, 498000000.0, 534000000.0, 572000000.0, 614000000.0, 658000000.0, 705000000.0, 756000000.0, 811000000.0, 870000000.0, 933000000.0, 1000000000.0],
mu_1: [4957.4, 4960.8, 4964.3, 5024.6, 5352.6, 5276.2, 4805.8, 4304.1, 3520.6, 3279.0, 3038.6, 2799.4, 2564.8, 2329.6, 2088.9, 1845.8, 1604.1, 1354.9, 1108.0, 864.5, 633.2, 420.2, 233.0, 77.9, -45.5, -135.8, -196.8, -234.1, -254.8, -262.2, -259.7, -253.8, -244.4, -232.8, -221.2, -209.1, -197.4, -185.8, -174.2, -163.5, -152.8, -142.6, -132.7, -123.3, -114.2, -105.6, -97.5, -89.9, -82.7, -76.0, -69.7, -63.9, -58.5, -53.4, -48.8, -44.5, -40.5, -36.9, -33.6, -30.5, -27.7, -25.1, -22.8, -20.6, -18.7, -16.9, -15.2, -13.7, -12.4, -11.1, -10.0, -9.0, -8.1, -7.3, -6.5, -5.8, -5.2, -4.7, -4.2, -3.7, -3.4, -3.0, -2.7, -2.4, -2.2, -1.9, -1.7, -1.6, -1.4, -1.3, -1.2, -1.0, -1.0, -0.9, -0.8, -0.7, -0.7, -0.6, -0.6, -0.6, -0.6, -0.5, -0.5, -0.5, -0.5, -0.5, -0.6, -0.6],
mu_2: [23.3, 29.0, 37.5, 77.6, 739.8, 1695.5, 2424.0, 2820.0, 3087.4, 3137.4, 3170.0, 3191.1, 3201.6, 3204.9, 3192.9, 3165.4, 3133.1, 3074.0, 2996.8, 2894.4, 2766.3, 2614.6, 2440.2, 2252.9, 2060.9, 1868.9, 1687.2, 1518.0, 1365.0, 1227.4, 1106.0, 999.0, 903.2, 819.2, 743.3, 675.8, 614.4, 559.3, 509.1, 463.5, 421.8, 383.9, 349.6, 318.3, 289.9, 264.2, 240.6, 219.2, 199.8, 182.2, 166.2, 151.6, 138.3, 126.2, 115.3, 105.3, 96.2, 88.0, 80.4, 73.6, 67.4, 61.6, 56.5, 51.7, 47.4, 43.5, 39.9, 36.6, 33.6, 30.9, 28.4, 26.1, 24.1, 22.2, 20.4, 18.8, 17.4, 16.0, 14.8, 13.7, 12.7, 11.7, 10.9, 10.1, 9.3, 8.7, 8.1, 7.5, 7.0, 6.5, 6.0, 5.6, 5.2, 4.9, 4.6, 4.3, 4.0, 3.7, 3.5, 3.3, 3.1, 2.9, 2.8, 2.6, 2.5, 2.4, 2.3, 2.2],
},
color : 'grey',
},
'67' : {
size : {
'FT240' : { PN:'5967003801', A:61.0, B:35.55, C:12.7, W:106.0, CC:9.20, le:14.5, Ae:1.58, Ve:22.8, Al:55.0 },
'FT140' : { PN:'5967002701', A:35.55, B:23.00, C:12.7, W:33.00, CC:11.20, le:8.90, Ae:0.79, Ve:7.00, Al:45.0 },
'FT114A': { PN:'5967001201', A:29.00, B:19.00, C:13.85, W:26.0, CC:10.70, le:7.30, Ae:0.68, Ve:5.0, Al:47.0 },
'FT114' : { PN:'5967001001', A:29.00, B:19.00, C:7.50, W:13.0, CC:19.80, le:7.30, Ae:0.37, Ve:2.70, Al:25.0 },
'FT82' : { PN:'5967000601', A:21.00, B:13.20, C:6.35, W:6.40, CC:21.30, le:5.20, Ae:0.243, Ve:1.26, Al:24.0 },
'FT50' : { PN:'5967000301', A:12.70, B:7.15, C:4.90, W:2.00, CC:22.90, le:2.95, Ae:0.129, Ve:0.38, Al:22 },
'FT37' : { PN:'5967000201', A:9.50, B:4.75, C:3.30, W:0.83, CC:28.60, le:2.07, Ae:0.072, Ve:0.15, Al:18.0 },
},
manufacturer : "Fair-Rite",
mat : "NiZn",
mu_i : 40,
B : 2300,
H : 20,
Br : 800,
Hc : 3.5,
Tc : 475,
R : 1.0e7,
complex_mu : {
freq: [1000000.0, 1040000.0, 1080000.0, 1130000.0, 1170000.0, 1220000.0, 1270000.0, 1320000.0, 1380000.0, 1430000.0, 1490000.0, 1550000.0, 1620000.0, 1680000.0, 1750000.0, 1820000.0, 1900000.0, 1970000.0, 2060000.0, 2140000.0, 2230000.0, 2320000.0, 2410000.0, 2510000.0, 2610000.0, 2720000.0, 2830000.0, 2950000.0, 3070000.0, 3190000.0, 3320000.0, 3460000.0, 3600000.0, 3750000.0, 3900000.0, 4060000.0, 4230000.0, 4400000.0, 4580000.0, 4760000.0, 4960000.0, 5160000.0, 5370000.0, 5590000.0, 5820000.0, 6060000.0, 6310000.0, 6560000.0, 6830000.0, 7110000.0, 7400000.0, 7700000.0, 8020000.0, 8350000.0, 8690000.0, 9040000.0, 9410000.0, 9790000.0, 10200000.0, 10600000.0, 11000000.0, 11500000.0, 12000000.0, 12500000.0, 13000000.0, 13500000.0, 14000000.0, 14600000.0, 15200000.0, 15800000.0, 16500000.0, 17200000.0, 17900000.0, 18600000.0, 19300000.0, 20100000.0, 21000000.0, 21800000.0, 22700000.0, 23600000.0, 24600000.0, 25600000.0, 26600000.0, 27700000.0, 28900000.0, 30000000.0, 31300000.0, 32500000.0, 33900000.0, 35300000.0, 36700000.0, 38200000.0, 39800000.0, 41100000.0, 42700000.0, 44300000.0, 45900000.0, 47500000.0, 49300000.0, 51400000.0, 53500000.0, 55600000.0, 57700000.0, 59800000.0, 62000000.0, 64100000.0, 66500000.0, 69300000.0, 72100000.0, 74900000.0, 77700000.0, 80500000.0, 83300000.0, 86500000.0, 90100000.0, 93700000.0, 97400000.0, 101000000.0, 105000000.0, 108000000.0, 112000000.0, 117000000.0, 122000000.0, 127000000.0, 132000000.0, 137000000.0, 141000000.0, 146000000.0, 152000000.0, 158000000.0, 164000000.0, 171000000.0, 177000000.0, 184000000.0, 190000000.0, 197000000.0, 206000000.0, 214000000.0, 223000000.0, 231000000.0, 239000000.0, 248000000.0, 256000000.0, 266000000.0, 277000000.0, 289000000.0, 300000000.0, 311000000.0, 322000000.0, 333000000.0, 346000000.0, 361000000.0, 375000000.0, 390000000.0, 404000000.0, 419000000.0, 433000000.0, 450000000.0, 469000000.0, 488000000.0, 508000000.0, 527000000.0, 546000000.0, 565000000.0, 585000000.0, 607000000.0, 633000000.0, 658000000.0, 684000000.0, 709000000.0, 735000000.0, 760000000.0, 789000000.0, 823000000.0, 857000000.0, 891000000.0, 924000000.0, 958000000.0, 992000000.0, 1030000000.0, 1070000000.0, 1110000000.0, 1150000000.0, 1200000000.0, 1240000000.0, 1290000000.0, 1330000000.0, 1380000000.0, 1440000000.0, 1500000000.0, 1560000000.0, 1620000000.0, 1680000000.0, 1740000000.0, 1800000000.0, 1740000000.0, 1800000000.0, 1800000000.0] ,
mu_1: [38.16, 38.14, 38.13, 38.16, 38.13, 38.14, 38.12, 38.12, 38.12, 38.13, 38.12, 38.11, 38.12, 38.11, 38.09, 38.09, 38.08, 38.08, 38.08, 38.08, 38.07, 38.07, 38.07, 38.07, 38.07, 38.06, 38.06, 38.05, 38.05, 38.06, 38.04, 38.04, 38.04, 38.03, 38.03, 38.02, 38.02, 38.01, 38.02, 38.01, 38.02, 38.03, 38.01, 38.01, 38.02, 38.02, 38.02, 38.02, 38.01, 38.03, 38.04, 38.03, 38.04, 38.05, 38.05, 38.06, 38.07, 38.09, 38.11, 38.12, 38.14, 38.16, 38.18, 38.2, 38.21, 38.23, 38.27, 38.31, 38.35, 38.38, 38.42, 38.48, 38.52, 38.57, 38.63, 38.7, 38.78, 38.86, 38.94, 39.03, 39.13, 39.25, 39.37, 39.51, 39.67, 39.83, 39.99, 40.19, 40.41, 40.63, 40.89, 41.19, 41.51, 41.15, 41.35, 41.56, 41.77, 42.01, 42.31, 42.66, 43.06, 43.5, 43.99, 44.5, 45.09, 45.75, 46.59, 47.72, 49.06, 50.65, 52.53, 54.61, 56.67, 58.48, 59.11, 58.06, 55.77, 53.06, 50.24, 47.54, 44.77, 41.98, 39.59, 37.55, 35.77, 34.19, 32.77, 31.5, 30.27, 28.92, 27.71, 26.64, 25.65, 24.75, 23.9, 23.01, 22.04, 21.16, 20.35, 19.6, 18.85, 18.15, 17.5, 16.77, 15.99, 15.23, 14.53, 13.85, 13.19, 12.57, 11.88, 11.15, 10.46, 9.78, 9.18, 8.6, 8.05, 7.49, 6.79, 6.23, 5.7, 5.19, 4.68, 4.21, 3.81, 3.37, 2.85, 2.38, 1.94, 1.53, 1.17, 0.83, 0.46, 0.06, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ,
mu_2: [0.47, 0.47, 0.46, 0.46, 0.45, 0.45, 0.43, 0.42, 0.42, 0.4, 0.39, 0.38, 0.38, 0.37, 0.36, 0.36, 0.35, 0.34, 0.34, 0.33, 0.33, 0.33, 0.32, 0.31, 0.31, 0.3, 0.3, 0.29, 0.29, 0.29, 0.28, 0.28, 0.28, 0.28, 0.27, 0.27, 0.27, 0.26, 0.26, 0.26, 0.26, 0.26, 0.26, 0.25, 0.25, 0.24, 0.24, 0.24, 0.23, 0.23, 0.23, 0.22, 0.22, 0.22, 0.22, 0.21, 0.21, 0.21, 0.21, 0.21, 0.21, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.19, 0.19, 0.19, 0.19, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.21, 0.21, 0.21, 0.21, 0.22, 0.22, 0.23, 0.23, 0.23, 0.24, 0.24, 0.24, 0.25, 0.25, 0.26, 0.27, 0.3, 0.31, 0.32, 0.35, 0.36, 0.37, 0.41, 0.44, 0.48, 0.54, 0.6, 0.67, 0.8, 1.0, 1.3, 1.83, 2.68, 4.09, 6.28, 9.77, 14.58, 19.26, 23.05, 25.77, 27.63, 28.81, 29.59, 30.01, 30.13, 30.07, 29.94, 29.73, 29.48, 29.22, 28.93, 28.61, 28.29, 27.98, 27.68, 27.39, 27.12, 26.82, 26.51, 26.21, 25.92, 25.64, 25.39, 25.17, 24.93, 24.7, 24.41, 24.14, 23.89, 23.63, 23.38, 23.13, 22.85, 22.53, 22.2, 21.92, 21.56, 21.25, 20.93, 20.57, 20.26, 19.77, 19.41, 19.07, 18.73, 18.38, 18.02, 17.68, 17.28, 16.89, 16.54, 16.16, 15.82, 15.51, 15.19, 14.75, 14.43, 14.08, 13.78, 13.47, 13.19, 12.92, 12.61, 12.27, 12.01, 11.72, 11.47, 11.22, 11.03, 10.84, 10.65, 10.49, 10.31, 10.16, 10.02, 9.89, 9.78, 11.49, 11.45, 8.88] ,
},
color : 'grey',
},
'61' : {
size : {
'FT240x3' : { PN:'5961003801', A:61.0, B:35.55, C:38.1, W:318.0, CC:3.07, le:14.5, Ae:4.74, Ve:68.4, Al:510.0 },
'FT240x2' : { PN:'5961003801', A:61.0, B:35.55, C:25.4, W:212.0, CC:4.60, le:14.5, Ae:3.16, Ve:45.6, Al:340.0 },
'FT240' : { PN:'5961003801', A:61.0, B:35.55, C:12.7, W:106.0, CC:9.20, le:14.5, Ae:1.58, Ve:22.8, Al:170.0 },
'FT140' : { PN:'5961002701', A:35.55, B:23.00, C:12.7, W:33.00, CC:11.20, le:8.90, Ae:0.79, Ve:7.00, Al:140.0 },
'FT114A': { PN:'5961001201', A:29.00, B:19.00, C:13.85, W:26.0, CC:10.70, le:7.30, Ae:0.68, Ve:5.0, Al:145.0 },
'FT114' : { PN:'5961001001', A:29.00, B:19.00, C:7.50, W:13.0, CC:19.80, le:7.30, Ae:0.37, Ve:2.70, Al:80.0 },
'FT102B' : { PN:'2661102002', A:25.90, B:12.80, C:28.60, W:55.0, CC:3.11, le:5.60, Ae:1.80, Ve:10.07, Al:476.0 },
'FT82' : { PN:'5961000601', A:21.00, B:13.20, C:6.35, W:6.40, CC:21.30, le:5.20, Ae:0.243, Ve:1.26, Al:75.0 },
'FT50' : { PN:'5961000301', A:12.70, B:7.15, C:4.90, W:2.00, CC:22.90, le:2.95, Ae:0.129, Ve:0.38, Al:69 },
'FT37' : { PN:'5961000201', A:9.50, B:4.75, C:3.30, W:0.83, CC:28.60, le:2.07, Ae:0.072, Ve:0.15, Al:55.0 },
},
manufacturer : "Fair-Rite",
mat : "NiZn",
mu_i : 125,
B : 2350,
H : 15,
Br : 1200,
Hc : 1.8,
Tc : 300,
R : 1.0e8,
complex_mu : {
freq: [10000.0, 50000.0, 100000.0, 300000.0, 500000.0, 700000.0, 1000000.0, 1080000.0, 1160000.0, 1240000.0, 1320000.0, 1420000.0, 1530000.0, 1640000.0, 1750000.0, 1870000.0, 2020000.0, 2160000.0, 2310000.0, 2480000.0, 2670000.0, 2860000.0, 3050000.0, 3270000.0, 3530000.0, 3780000.0, 4040000.0, 4330000.0, 4660000.0, 5000000.0, 5340000.0, 5720000.0, 6170000.0, 6610000.0, 7050000.0, 7560000.0, 8170000.0, 8780000.0, 9390000.0, 10000000.0, 10700000.0, 11600000.0, 12400000.0, 13200000.0, 14200000.0, 15300000.0, 16400000.0, 17500000.0, 18700000.0, 20200000.0, 21600000.0, 23100000.0, 24800000.0, 26700000.0, 28600000.0, 30500000.0, 32700000.0, 35300000.0, 37800000.0, 40400000.0, 43300000.0, 46600000.0, 50000000.0, 53400000.0, 57200000.0, 61700000.0, 66100000.0, 70500000.0, 75600000.0, 81700000.0, 87800000.0, 93900000.0, 100000000.0, 107000000.0, 116000000.0, 124000000.0, 132000000.0, 142000000.0, 153000000.0, 164000000.0, 175000000.0, 187000000.0, 202000000.0, 216000000.0, 231000000.0, 248000000.0, 267000000.0, 286000000.0, 305000000.0, 327000000.0, 353000000.0, 378000000.0, 404000000.0, 433000000.0, 466000000.0, 500000000.0, 534000000.0, 572000000.0, 617000000.0, 661000000.0, 705000000.0, 756000000.0, 817000000.0, 878000000.0, 939000000.0, 1000000000.0] ,
mu_1: [118.03, 117.55, 117.59, 117.89, 117.95, 117.85, 118.57, 118.5, 118.51, 118.53, 118.52, 118.49, 118.47, 118.5, 118.53, 118.53, 118.54, 118.54, 118.59, 118.58, 118.65, 118.71, 118.76, 118.84, 118.94, 119.04, 119.15, 119.29, 119.47, 119.69, 119.92, 120.19, 120.57, 120.98, 121.42, 121.97, 122.72, 123.54, 124.47, 125.48, 126.84, 128.58, 130.59, 132.86, 135.72, 139.39, 143.28, 147.07, 150.66, 152.75, 151.8, 147.86, 140.88, 131.6, 122.17, 113.86, 105.12, 96.33, 88.56, 82.07, 75.64, 69.45, 64.33, 60.03, 55.88, 51.86, 48.4, 45.5, 42.6, 39.66, 37.13, 34.87, 32.9, 30.8, 28.6, 26.66, 24.92, 23.03, 21.2, 19.46, 17.9, 16.32, 14.68, 13.23, 11.97, 10.62, 9.32, 8.16, 7.2, 6.24, 5.3, 4.54, 3.87, 3.21, 2.57, 2.05, 1.63, 1.15, 0.74, 0.37, 0.05, -0.22, -0.49, -0.69, -0.87, -1.05] ,
mu_2: [0.45, 0.45, 0.45, 0.46, 0.48, 0.58, 0.62, 0.62, 0.62, 0.63, 0.65, 0.66, 0.7, 0.72, 0.75, 0.75, 0.76, 0.76, 0.74, 0.77, 0.76, 0.77, 0.78, 0.78, 0.8, 0.81, 0.84, 0.86, 0.87, 0.93, 0.95, 0.98, 1.07, 1.11, 1.17, 1.31, 1.42, 1.56, 1.78, 2.02, 2.35, 2.88, 3.54, 4.43, 5.91, 8.31, 11.73, 16.41, 23.49, 33.55, 44.49, 54.68, 64.11, 71.61, 76.41, 78.94, 80.56, 80.98, 80.56, 79.37, 77.69, 75.44, 73.15, 70.95, 68.5, 65.97, 63.62, 61.47, 59.3, 56.95, 54.88, 53.08, 51.43, 49.72, 47.92, 46.32, 44.89, 43.33, 41.76, 40.3, 38.91, 37.48, 35.95, 34.55, 33.22, 31.81, 30.3, 28.89, 27.62, 26.28, 24.89, 23.63, 22.49, 21.36, 20.25, 19.17, 18.27, 17.33, 16.4, 15.59, 14.87, 14.13, 13.41, 12.79, 12.3, 11.9] ,
},
color : 'grey',
},
'52' : {
size : {
'FT240x3' : { PN:'5952003801', A:60.0, B:35.35, C:38.1, W:400.32, CC:3.05, le:14.5, Ae:4.74, Ve:68.4, Al:975.0 },
'FT240x2' : { PN:'5952003801', A:60.0, B:35.35, C:25.4, W:266.88, CC:4.57, le:14.5, Ae:3.16, Ve:45.6, Al:650.0 },
'FT240' : { PN:'5952003801', A:60.0, B:35.35, C:12.7, W:133.44, CC:9.14, le:14.5, Ae:1.58, Ve:22.8, Al:325.0 },
'FT140' : { PN:'5952020801', A:35.25, B:22.60, C:12.7, W:38.26, CC:11.10, le:8.79, Ae:0.792, Ve:6.959, Al:283.0 },
'FT114' : { PN:'5952020701', A:28.8, B:18.70, C:7.50, W:14.81, CC:19.34, le:7.23, Ae:0.374, Ve:2.702, Al:162.0 },
'FT82' : { PN:'5952020601', A:21.70, B:13.50, C:6.35, W:7.54, CC:20.80, le:5.33, Ae:0.256, Ve:1.368, Al:151.0 },
'FT50A' : { PN:'5952020501', A:12.45, B:7.8, C:6.35, W:2.46, CC:21.24, le:3.06, Ae:0.144, Ve:0.442, Al:148.0 },
'FT50' : { PN:'5952020401', A:12.45, B:7.8, C:4.90, W:2.16, CC:22.31, le:2.90, Ae:0.13, Ve:0.378, Al:141.0 },
'FT37' : { PN:'5952020301', A:9.42, B:4.72, C:3.30, W:0.87, CC:28.66, le:2.06, Ae:0.072, Ve:0.147, Al:110.0 },
},
manufacturer : "Fair-Rite",
mat : "NiZn",
mu_i : 250,
B : 4200,
H : 10,
Br : 2900,
Hc : 0.60,
Tc : 250,
R : 1.0e9,
complex_mu : {
freq: [10000.0, 75000.0, 100000.0, 300000.0, 500000.0, 666000.0, 800000.0, 960000.0, 3000000.0, 5000000.0, 5290000.0, 5740000.0, 6190000.0, 6640000.0, 7160000.0, 7770000.0, 8380000.0, 8990000.0, 9690000.0, 10500000.0, 11300000.0, 12200000.0, 13200000.0, 14200000.0, 15300000.0, 16500000.0, 17900000.0, 19300000.0, 20700000.0, 22300000.0, 24100000.0, 25900000.0, 28000000.0, 30400000.0, 32700000.0, 35100000.0, 37900000.0, 41100000.0, 44300000.0, 47500000.0, 51300000.0, 55500000.0, 59600000.0, 64300000.0, 69800000.0, 75300000.0, 80700000.0, 87100000.0, 94500000.0, 102000000.0, 109000000.0, 118000000.0, 128000000.0, 137000000.0, 148000000.0, 161000000.0, 173000000.0, 186000000.0, 200000000.0, 217000000.0, 234000000.0, 251000000.0, 271000000.0, 293000000.0, 315000000.0, 340000000.0, 369000000.0, 398000000.0, 427000000.0, 461000000.0, 500000000.0, 539000000.0, 578000000.0, 624000000.0, 675000000.0, 726000000.0, 783000000.0, 849000000.0, 916000000.0, 982000000.0, 1060000000.0, 1150000000.0, 1240000000.0, 1330000000.0, 1430000000.0, 1560000000.0, 1680000000.0],
mu_1: [272.64, 267.78, 268.08, 266.51, 265.73, 265.54, 265.36, 265.25, 268.44, 293.51, 290.76, 295.23, 298.26, 299.66, 298.92, 295.43, 288.51, 278.83, 265.16, 249.12, 233.44, 217.14, 200.97, 186.96, 174.9, 162.89, 151.28, 141.63, 133.64, 126.05, 119.14, 113.54, 108.44, 103.41, 99.3, 95.63, 91.73, 87.85, 84.32, 81.03, 77.51, 73.9, 70.58, 67.17, 63.53, 60.2, 57.14, 53.85, 50.29, 47.02, 43.88, 40.44, 36.9, 33.72, 30.57, 27.43, 24.65, 22.18, 19.62, 16.99, 14.69, 12.6, 10.48, 8.42, 6.63, 4.9, 3.27, 1.87, 0.81, -0.15, -0.94, -1.5, -1.92, -2.25, -2.58, -2.88, -3.17, -3.55, -3.87, -4.2, -4.61, -5.12, -5.69, -6.37, -7.18, -8.22, -9.41],
mu_2: [1.43, 3.32, 3.14, 2.74, 2.74, 2.83, 2.87, 3.01, 5.62, 18.88, 24.42, 33.27, 43.8, 55.65, 70.27, 87.04, 103.16, 117.07, 129.99, 139.81, 145.57, 148.73, 149.32, 148.17, 145.94, 142.49, 137.95, 133.21, 128.53, 123.35, 118.07, 113.46, 108.87, 104.39, 100.66, 97.55, 94.55, 91.53, 89.01, 86.86, 84.65, 82.51, 80.63, 78.73, 76.75, 75.03, 73.49, 71.85, 70.17, 68.63, 67.13, 65.52, 63.64, 61.79, 59.64, 57.43, 55.34, 53.41, 51.33, 49.1, 47.04, 45.07, 42.97, 40.71, 38.63, 36.47, 34.07, 31.87, 29.84, 27.75, 25.57, 23.73, 22.14, 20.61, 19.22, 18.03, 16.99, 15.96, 15.08, 14.37, 13.67, 13.02, 12.44, 11.94, 11.39, 10.86, 10.41],
},
color : 'grey',
},
'46' : {
size : {
'FT240' : { PN:'2646803802', A:61.0, B:35.55, C:12.7, W:118.0, CC:9.16, le:14.5, Ae:1.58, Ve:22.8, Al:1371.0 },
'FT200' : { PN:'2646626202', A:50.80, B:25.40, C:38.1, W:285.0, CC:2.3791, le:11.1, Ae:4.65, Ve:51.432, Al:5282.0 },
'FT122' : { PN:'2646804502', A:31.10, B:19.05, C:16.3, W:36.0, CC:8.0495, le:7.57, Ae:0.941, Ve:7.12, Al:1561.0 },
'FT112A': { PN:'2646101902', A:28.50, B:13.80, C:28.60, W:67.0, CC:31.17, le:5.60, Ae:1.80, Ve:1.0072, Al:4032.0 },
},
manufacturer : "Fair-Rite",
mat : "MgZn",
mu_i : 500,
B : 2550,
H : 10,
Br : 1680,
Hc : 0.53,
Tc : 140,
R : 1.0e8,
complex_mu : {
freq: [10000.0, 100000.0, 200000.0, 300000.0, 400000.0, 500000.0, 600000.0, 800000.0, 1000000.0, 1170000.0, 1360000.0, 1580000.0, 1840000.0, 2150000.0, 2500000.0, 2920000.0, 3400000.0, 3960000.0, 4620000.0, 5380000.0, 6270000.0, 7310000.0, 8510000.0, 9920000.0, 11600000.0, 13500000.0, 15700000.0, 18300000.0, 21300000.0, 24800000.0, 28900000.0, 33700000.0, 39300000.0, 45800000.0, 53400000.0, 62200000.0, 72500000.0, 84400000.0, 98400000.0, 115000000.0, 134000000.0, 156000000.0, 181000000.0, 211000000.0, 246000000.0, 287000000.0, 335000000.0, 390000000.0, 454000000.0, 529000000.0, 617000000.0, 719000000.0, 838000000.0, 976000000.0, 1140000000.0, 1330000000.0, 1540000000.0, 1800000000.0] ,
mu_1: [524.7, 514.9, 513.6, 512.8, 512.7, 512.9, 513.5, 515.7, 519.2, 525.4, 534.5, 546.5, 559.4, 567.2, 562.0, 541.2, 504.8, 458.0, 406.6, 357.3, 313.0, 274.5, 241.1, 212.3, 187.0, 165.1, 146.1, 129.4, 114.7, 101.4, 89.2, 78.2, 67.6, 57.9, 48.9, 40.7, 33.3, 26.5, 20.6, 15.6, 11.5, 8.3, 5.8, 3.8, 2.4, 1.2, 0.4, -0.3, -0.7, -1.0, -1.3, -1.5, -1.7, -1.9, -2.2, -2.4, -2.8, -3.5] ,
mu_2: [7.0, 7.1, 7.5, 8.0, 8.9, 9.9, 10.9, 13.2, 18.2, 21.9, 28.3, 39.8, 62.0, 96.6, 142.3, 189.5, 231.3, 260.9, 276.0, 278.3, 272.3, 261.1, 247.6, 232.7, 217.3, 202.2, 187.4, 173.5, 160.6, 148.8, 138.0, 127.9, 118.3, 109.1, 100.4, 91.9, 83.8, 75.9, 68.2, 60.7, 53.6, 47.1, 41.1, 35.7, 31.0, 26.8, 23.2, 20.0, 17.2, 14.9, 12.9, 11.3, 9.8, 8.7, 7.7, 6.9, 6.4, 6.1] ,
},
color : 'grey',
},
'43' : {
size : {
'FT240x3' : { PN:'5943003801', A:61.0, B:35.55, C:38.1, W:318.0, CC:3.06, le:14.5, Ae:4.74, Ve:68.4, Al:3225.0 },
'FT240x2' : { PN:'5943003801', A:61.0, B:35.55, C:25.4, W:212.0, CC:4.59, le:14.5, Ae:3.16, Ve:45.6, Al:2150.0 },
'FT240' : { PN:'5943003801', A:61.0, B:35.55, C:12.7, W:106.0, CC:9.20, le:14.5, Ae:1.58, Ve:22.8, Al:1075.0 },
'FT154B' : { PN:'2643251002', A:39.10, B:16.75, C:22.2, W:104.0, CC:3.33, le:7.80, Ae:0.234, Ve:18.2, Al:3074.0 },
'FT140x2' : { PN:'5943002701', A:35.55, B:23.00, C:25.4, W:66.0, CC:5.60, le:8.90, Ae:1.58, Ve:14.00, Al:1770.0 },
'FT140' : { PN:'5943002701', A:35.55, B:23.00, C:12.7, W:33.0, CC:11.20, le:8.90, Ae:0.79, Ve:7.00, Al:885.0 },
'FT125' : { PN:'5943001701', A:31.75, B:19.05, C:9.50, W:23.0, CC:12.90, le:7.60, Ae:0.59, Ve:4.50, Al:775.0 },
'FT114' : { PN:'5943001001', A:29.00, B:19.00, C:7.50, W:13.0, CC:19.80, le:7.30, Ae:0.37, Ve:2.70, Al:510.0 },
'FT102B' : { PN:'2643102002', A:25.90, B:12.80, C:28.60, W:55.0, CC:3.11, le:5.60, Ae:1.80, Ve:10.07, Al:3296.0 },
'FT82' : { PN:'5943000601', A:21.00, B:13.20, C:6.35, W:6.40, CC:21.30, le:5.20, Ae:0.243, Ve:1.26, Al:470.0 },
'FT50B' : { PN:'2643801902', A:12.70, B:7.9, C:12.70, W:4.70, CC:10.421, le:3.12, Ae:0.3, Ve:0.9325, Al:1206.0 },
'FT50' : { PN:'5943000301', A:12.70, B:7.15, C:4.90, W:2.00, CC:22.90, le:2.95, Ae:0.129, Ve:0.38, Al:440.0 },
'FT37' : { PN:'5943000201', A:9.50, B:4.75, C:3.30, W:0.83, CC:28.60, le:2.07, Ae:0.072, Ve:0.15, Al:350.0 },
},
manufacturer : "Fair-Rite",
mat : "NiZn",
mu_i : 800,
B : 3500,
H : 10,
Br : 2200,
Hc : 0.36,
Tc : 130,
R : 1.0e5,
complex_mu : {
freq: [10000.0, 100000.0, 300000.0, 500000.0, 700000.0, 900000.0, 1000000.0, 1040843.912, 1083356.049, 1127604.548, 1173660.329, 1221597.208, 1271492.016, 1323424.724, 1377478.567, 1433740.18, 1492299.738, 1553251.097, 1616691.948, 1682723.971, 1751453.001, 1822989.193, 1897447.203, 1974946.369, 2055610.905, 2139570.096, 2226958.508, 2317916.205, 2412588.97, 2511128.542, 2613692.855, 2720446.295, 2831559.964, 2947211.95, 3067587.615, 3192879.893, 3323289.598, 3459025.746, 3600305.888, 3747356.465, 3900413.162, 4059721.294, 4225536.192, 4398123.62, 4577760.194, 4764733.828, 4959344.196, 5161903.214, 5372735.534, 5592179.071, 5820585.54, 6058321.023, 6305766.553, 6563318.726, 6831390.338, 7110411.043, 7400828.045, 7703106.813, 8017731.829, 8345207.362, 8686058.276, 9040830.875, 9410093.774, 9794438.815, 10194482.01, 10610864.54, 11044253.75, 11495344.28, 11964859.11, 12453550.76, 12962202.49, 13491629.55, 14042680.47, 14616238.48, 15213222.83, 15834590.37, 16481336.98, 17154499.26, 17855156.11, 18584430.54, 19343491.38, 20133555.24, 20955888.39, 21811808.85, 22702688.45, 23629955.06, 24595094.86, 25599654.75, 26645244.79, 27733540.82, 28866287.12, 30045299.2, 31272466.76, 32549756.63, 33879216.03, 35262975.74, 36703253.61, 38202358.07, 39762691.82, 41386755.7, 43077152.7, 44836592.13, 46667893.95, 48573993.3, 50557945.2, 52622929.46, 54772255.75, 57009368.94, 59337854.58, 61761444.68, 64284023.69, 66909634.69, 69642485.91, 72486957.47, 75447608.37, 78529183.84, 81736622.91, 85075066.33, 88549864.84, 92166587.72, 95931031.71, 99849230.31, 103927463.5, 108172267.6, 112590446.2, 117189080.5, 121975540.9, 126957499.2, 132142940.1, 137540174.7, 143157853.5, 149004980.2, 155090926.5, 161425446.7, 168018693.4, 174881234.1, 182024067.8, 189458642.8, 197196874.9, 205251166.7, 213634427.2, 222360093.0, 231442149.0, 240895151.7, 250734252.1, 260975219.8, 271634468.7, 282729083.0, 294276844.7, 306296262.3, 318806599.8, 331827908.5, 345381058.3, 359487771.8, 374170658.7, 389453252.1, 405360046.4, 421916536.5, 439149258.3, 457085831.9, 475755005.4, 495186700.9, 515412062.8, 536463507.7, 558374776.0, 581180986.1, 604918691.1, 629625936.8, 655342323.1, 682109067.2, 709969069.8, 738966984.0, 769149286.3, 800564352.0, 833262531.9, 867296233.3, 902720004.2, 939590620.5, 977967177.1, 1017911182.0, 1059486657.0, 1102760237.0, 1147801278.0, 1194681973.0, 1243477458.0, 1294265942.0, 1347128826.0, 1402150837.0, 1459420162.0, 1519028591.0, 1581071660.0, 1645648812.0, 1712863547.0, 1782823595.0, 1855641085.0, 1931432726.0, 2010319994.0, 2092429326.0, 2177892326.0, 2266845968.0, 2359432825.0, 2455801291.0, 2556105823.0, 2660507184.0, 2769172705.0, 2882276551.0, 3000000000.0],
mu_1: [816.0434106, 809.4449846, 808.5477831, 812.4832301, 830.0, 840.0, 851.3550816, 855.3857072, 859.4280167, 863.329692, 868.8362314, 873.4029217, 878.6444097, 884.0783849, 889.0529029, 895.3839031, 899.4493574, 904.0126394, 907.5266357, 910.0203411, 910.9492314, 911.4432599, 910.0241714, 906.443633, 901.7612532, 894.7454962, 886.5318274, 876.4861149, 864.8268961, 851.8814883, 836.9656884, 820.9649591, 803.9201657, 786.4046357, 767.5437693, 748.078803, 728.1939222, 708.024764, 687.5199527, 667.2839247, 647.2975609, 627.2853647, 607.7149357, 588.2959163, 569.4661363, 551.1033373, 533.2520488, 515.834048, 498.6328191, 482.1858831, 466.3487294, 450.8418277, 435.856601, 421.3303978, 407.5182508, 393.9971741, 380.9413358, 368.4577648, 356.3852298, 344.7942781, 333.5853593, 322.7425848, 312.35968, 302.2204109, 292.5988049, 283.2869199, 274.2216373, 265.6180661, 257.2803026, 249.160291, 241.2841181, 233.775772, 226.2806641, 219.2852607, 212.3792322, 205.65458, 199.1326295, 192.8574158, 186.7017878, 180.6860621, 174.8067106, 169.0641159, 163.4172714, 157.8108122, 152.496357, 147.1781132, 141.9045894, 136.7576294, 131.6965718, 126.6982028, 121.9103193, 117.1243187, 112.4318844, 107.9118477, 103.3905232, 99.04778341, 94.80141586, 90.66367569, 86.61887717, 82.7360264, 78.92937687, 75.24423862, 71.61557489, 68.11114917, 64.70845403, 61.35970005, 58.16417106, 54.99950081, 51.98086999, 49.04606958, 46.21742756, 43.48953175, 40.86438026, 38.32897415, 35.9111902, 33.60366679, 31.36620548, 29.25810043, 27.26016277, 25.33436861, 23.52832203, 21.83230634, 20.20725259, 18.68336788, 17.24877159, 15.89862405, 14.65712437, 13.47214896, 12.35542792, 11.33991416, 10.36420209, 9.440788341, 8.612194737, 7.826606509, 7.078008771, 6.387697882, 5.752794218, 5.162377181, 4.592156449, 4.076342228, 3.586660745, 3.120234351, 2.695352478, 2.302422231, 1.929560777, 1.587058651, 1.261615037, 0.961547574, 0.671581848, 0.415344641, 0.167703835, -0.055788884, -0.266081108, -0.460160219, -0.6384921, -0.803665771, -0.95280532, -1.089612412, -1.218894539, -1.330816403, -1.433134834, -1.521798239, -1.61281749, -1.685171164, -1.748774697, -1.824947393, -1.869291211, -1.919426596, -1.962779073, -2.010004471, -2.056958278, -2.106915463, -2.137781096, -2.169012949, -2.208400104, -2.246651436, -2.271554896, -2.300684784, -2.321922889, -2.341299582, -2.367853582, -2.382587788, -2.397842195, -2.40574571, -2.41658175, -2.428523833, -2.429057786, -2.437691491, -2.447634592, -2.456583053, -2.466197302, -2.480427891, -2.503263931, -2.534327999, -2.56735631, -2.623242801, -2.697527559, -2.799488116, -2.941510933, -3.136445289, -3.407015884, -3.773734912, -4.274679156, -4.957240854, -5.84054521, -6.95245912, -8.229961109],
mu_2: [10.11279513, 7.770352725, 13.12514619, 18.86346319, 26.0, 39.7584741, 48.0, 52.24323758, 56.08474704, 60.66052028, 63.77378899, 68.79225981, 74.55092495, 82.10240562, 89.91580362, 99.86344223, 109.8854973, 122.0905173, 134.9205245, 150.1954341, 165.5561763, 182.6703335, 199.6600693, 217.9770489, 236.2656043, 254.5206731, 272.9632256, 290.6334221, 308.0098765, 324.8292976, 340.8766836, 355.442382, 368.9213716, 381.3955747, 392.885811, 402.6777229, 410.5907043, 417.6843355, 423.3470394, 427.9791561, 431.5502447, 433.8375244, 434.8004796, 435.3066996, 434.9828234, 433.4925342, 431.9292566, 429.3102906, 426.2907469, 423.1008996, 419.1481421, 414.7761543, 409.9786354, 405.0314957, 399.7558796, 394.3670598, 388.5238795, 382.7374037, 376.7736165, 370.7288147, 364.5412953, 358.5572719, 352.293695, 346.1714307, 340.0336128, 333.7435023, 327.7813875, 321.7860835, 315.8033369, 309.8798359, 304.1390618, 298.321386, 292.6251645, 287.063184, 281.6429841, 276.3156579, 271.0000261, 265.8900686, 260.7994498, 255.8300132, 250.9296943, 246.2315314, 241.5308595, 236.9549992, 232.489607, 228.0226635, 223.6806842, 219.3635523, 215.0323858, 210.832678, 206.6547215, 202.4945207, 198.3025938, 194.1682534, 190.0809625, 186.059191, 181.9879784, 178.0347824, 174.0459223, 170.1143112, 166.2235604, 162.4113316, 158.6054727, 154.8116149, 151.0441475, 147.3701595, 143.6761117, 140.0112141, 136.406703, 132.8270467, 129.2737356, 125.7777699, 122.3131771, 118.8394449, 115.4182493, 112.0540883, 108.7120941, 105.4466725, 102.2010201, 98.99834385, 95.86141645, 92.81023381, 89.77140325, 86.83106141, 83.92687516, 81.10449855, 78.33059554, 75.64825806, 73.04742107, 70.47486799, 68.01979237, 65.61151219, 63.29295152, 61.03288382, 58.84546545, 56.73133403, 54.67562862, 52.70152094, 50.78913283, 48.93524506, 47.14199955, 45.42751077, 43.74810579, 42.14543587, 40.58795409, 39.09008945, 37.64841345, 36.24304964, 34.90317234, 33.59938343, 32.34859618, 31.14511465, 29.97529319, 28.85230646, 27.7720412, 26.72586867, 25.72936557, 24.75833806, 23.83742534, 22.95090576, 22.09307736, 21.27675587, 20.49158785, 19.74229606, 19.02552627, 18.34444448, 17.68643739, 17.06591121, 16.46785679, 15.89743828, 15.35949916, 14.85061966, 14.35392972, 13.8833472, 13.44260977, 13.0110046, 12.60952872, 12.22325904, 11.85805387, 11.51208879, 11.18573273, 10.87660458, 10.59413026, 10.32674988, 10.0842746, 9.857029553, 9.658149541, 9.476343336, 9.322814549, 9.185113931, 9.07482699, 8.993569752, 8.940985197, 8.916090809, 8.922877831, 8.964492093, 9.045510866, 9.171683804, 9.343332921, 9.562863338, 9.833703433, 10.14060623, 10.47906645, 10.80237748, 11.05249316, 11.13324746, 10.91140156],
},
color : 'grey',
},
'43_old' : {
size : {
'FT240' : { PN:'5943003801', A:61.0, B:35.55, C:12.7, W:106.0, CC:9.20, le:14.5, Ae:1.58, Ve:22.8, Al:1075.0 },
'FT140' : { PN:'5943002701', A:35.55, B:23.00, C:12.7, W:33.0, CC:11.20, le:8.90, Ae:0.79, Ve:7.00, Al:885.0 },
'FT125' : { PN:'5943001701', A:31.75, B:19.05, C:9.50, W:23.0, CC:12.90, le:7.60, Ae:0.59, Ve:4.50, Al:775.0 },
'FT114' : { PN:'5943001001', A:29.00, B:19.00, C:7.50, W:13.0, CC:19.80, le:7.30, Ae:0.37, Ve:2.70, Al:510.0 },
'FT82' : { PN:'5943000601', A:21.00, B:13.20, C:6.35, W:6.40, CC:21.30, le:5.20, Ae:0.243, Ve:1.26, Al:470.0 },
'FT50B' : { PN:'2643801902', A:12.70, B:7.9, C:12.70, W:4.70, CC:10.421, le:3.12, Ae:0.3, Ve:0.9325, Al:1206.0 },
'FT50' : { PN:'5943000301', A:12.70, B:7.15, C:4.90, W:2.00, CC:22.90, le:2.95, Ae:0.129, Ve:0.38, Al:440.0 },
'FT37' : { PN:'5943000201', A:9.50, B:4.75, C:3.30, W:0.83, CC:28.60, le:2.07, Ae:0.072, Ve:0.15, Al:350.0 },
},
manufacturer : "Fair-Rite",
mat : "NiZn",
mu_i : 800,
B : 2900,
H : 10,
Br : 1300,
Hc : 0.45,
Tc : 130,
R : 1.0e5,
complex_mu : {
freq: [10000.0, 50000.0, 100000.0, 150000.0, 200000.0, 250000.0, 300000.0, 333000.0, 400000.0, 480000.0, 500000.0, 600000.0, 640000.0, 667000.0, 800000.0, 960000.0, 1000000.0, 2000000.0, 2330000.0, 2680000.0, 3090000.0, 3560000.0, 4090000.0, 4710000.0, 5430000.0, 6250000.0, 7200000.0, 8289999.999999999, 9540000.0, 11000000.0, 12600000.0, 14600000.0, 16800000.0, 19300000.0, 22200000.0, 25600000.0, 29500000.0, 33900000.0, 39100000.0, 45000000.0, 51800000.0, 59600000.0, 68700000.0, 75600000.0, 124000000.0, 216000000.0] ,
mu_1: [791.5, 789.1, 788.0, 788.1, 788.6, 789.4, 790.6, 791.5, 793.5, 795.1, 795.3, 793.8, 791.9, 790.2, 777.6, 754.1, 747.1, 589.1, 556.6, 531.1, 501.4, 470.5, 439.8, 409.3, 378.8, 349.8, 321.8, 294.7, 268.7, 243.5, 219.8, 194.2, 171.0, 149.3, 128.7, 109.7, 92.57, 78.12, 64.65, 53.21, 43.43, 35.07, 28.03, 23.99, 10.09, 2.919] ,
mu_2: [3.5, 3.9, 5.391, 7.078, 8.472, 9.701, 10.9, 11.73, 13.55, 15.86, 16.46, 19.56, 21.21, 22.65, 35.32, 57.44, 62.8, 167.3, 186.2, 201.5, 213.2, 222.2, 227.9, 230.9, 231.5, 230.3, 227.7, 224.2, 220.0, 214.9, 209.1, 201.7, 193.6, 184.6, 174.4, 163.3, 151.8, 140.4, 128.7, 117.4, 106.5, 96.01, 85.93, 79.54, 52.37, 31.52] ,
},
color : 'grey',
},
'31' : {
size : {
'FT400x2' : { PN:'2631814002', A:101.6, B:76.2, C:50.8, W:840.0, CC:4.2992, le:27.5, Ae:6.40, Ve:1765.0, Al:2922.0 },
'FT400' : { PN:'2631814002', A:101.6, B:76.2, C:25.4, W:420.0, CC:8.5985, le:27.5, Ae:3.20, Ve:882.5, Al:1461.0 },
'FT240x3' : { PN:'2631803802', A:61.0, B:35.55, C:38.1, W:354.0, CC:3.0542, le:14.5, Ae:4.74, Ve:68.4, Al:4113.0 },
'FT240x2' : { PN:'2631803802', A:61.0, B:35.55, C:25.4, W:236.0, CC:4.5813, le:14.5, Ae:3.16, Ve:45.6, Al:2742.0 },
'FT240' : { PN:'2631803802', A:61.0, B:35.55, C:12.7, W:118.0, CC:9.1627, le:14.5, Ae:1.58, Ve:22.8, Al:1371.0 },
'FT200' : { PN:'2631626202', A:50.80, B:25.40, C:38.1, W:278.0, CC:2.3791, le:11.1, Ae:4.65, Ve:51.432, Al:5282.0 },
'FT114' : { PN:'2631801202', A:29.00, B:19.00, C:13.85, W:25.0, CC:1.0795, le:7.33, Ae:0.679, Ve:4.977, Al:1164.0 },
'FT74' : { PN:'2631626302', A:18.70, B:10.15, C:14.65, W:13.3, CC:7.2188, le:4.26, Ae:0.59, Ve:2.513, Al:1741.0 },
},
manufacturer : "Fair-Rite",
mat : "MnZn",
mu_i : 1500,
B : 3600,
H : 5,
Br : 2600,
Hc : 0.34,
Tc : 130,
R : 3.0e3,
complex_mu : {
freq: [10000.0, 50000.0, 100000.0, 150000.0, 200000.0, 250000.0, 300000.0, 333000.0, 400000.0, 480000.0, 500000.0, 600000.0, 640000.0, 667000.0, 800000.0, 960000.0, 1000000.0, 2000000.0, 2330000.0, 2680000.0, 3090000.0, 3560000.0, 4090000.0, 4710000.0, 5430000.0, 6250000.0, 7200000.0, 8290000.0, 9540000.0, 11000000.0, 12600000.0, 14600000.0, 16800000.0, 19300000.0, 22200000.0, 25600000.0, 29500000.0, 33900000.0, 39100000.0, 45000000.0, 51800000.0, 59600000.0, 68700000.0, 75600000.0, 124000000.0, 216000000.0, 353000000.0, 617000000.0, 1000000000.0],
mu_1: [1423.52, 1406.98, 1401.93, 1379.45, 1386.57, 1385.58, 1387.5, 1388.08, 1388.37, 1391.6, 1390.55, 1396.46, 1392.65, 1390.14, 1463.65, 1409.68, 1400.65, 980.76, 854.67, 757.67, 668.67, 590.0, 520.67, 460.33, 409.0, 365.67, 329.0, 299.0, 272.0, 248.0, 227.0, 206.0, 187.0, 168.0, 149.6666667, 132.3333333, 115.6666667, 100.7, 86.2, 73.33333333, 61.8, 51.26666667, 43.0, 39.06, 14.7, 1.61, 0.0, 0.0, 0.0],
mu_2: [10.45, 27.02, 41.61, 57.82, 72.67, 89.6, 106.76, 119.0, 141.03, 173.33, 183.07, 228.68, 248.07, 260.16, 345.99, 444.47, 463.22, 734.77, 752.33, 728.33, 696.33, 657.67, 616.0, 571.33, 527.0, 484.33, 444.33, 408.33, 375.33, 346.67, 321.67, 299.0, 278.67, 260.0, 242.3333333, 226.3333333, 210.3333333, 195.0, 180.0, 165.3333333, 151.6666667, 138.6666667, 130.0, 125.0, 86.5, 52.1, 32.1, 18.7, 12.5],
},
color : 'grey',
},
};
this.mat = this.cores[this.material];
this.core = this.mat.size[this.size];
this.getMaterialDataStrings = function () {
retval = [];
retval.push(["Size", this.size]);
retval.push(["Material", this.material.toString()]);
retval.push(["Type", this.mat.mat]);
retval.push(["μi", this.mat.mu_i.toString()]);
retval.push(["B", this.mat.B.toString() + " G"]);
retval.push(["H", this.mat.H.toString() + " Oe"]);
retval.push(["Br", this.mat.Br.toString() + " G"]);
retval.push(["Hc", this.mat.Hc.toString() + " Oe"]);
retval.push(["Tc", this.mat.Tc.toString() + " C"]);
retval.push(["ρ", this.mat.R.toPrecision(2).toString() + " Ω cm"]);
retval.push(["P/N", this.core.PN]);
return retval;
};
this.setMaterial = function (material) {
this.material = material;
this.mat = this.cores[this.material];
this.core = this.mat.size[this.size];
};
this.setSize = function (size) {
this.size = size;
this.core = this.mat.size[this.size];
};
this.setTurns = function (turns) {
this.N = turns;
};
this.getMaterialTypes = function () {
return ["75", "31", "78", "77", "79", "43", "43_old", "46", "80", "52", "61", "67"];
};
this.getSizesForMaterial = function (material) {
return Object.keys(this.cores[material].size);
};
this.getComplexPermeability = function (frequency) {
// Use the proximityResistance look-up table and interpolate values depending on the spacing ratio and the number of turns.
var mu_1 = 0.0;
var mu_2 = 0.0;
var i_before = 0;
var i_after = this.cores[this.material].complex_mu.freq.length-1;
var i = Math.floor((i_after + i_before)/2);
// Divide-and-conquer. Find the indices before and after the value. Use them for interpolation later.
while((i_before+1) < i_after) {
if(frequency >= this.cores[this.material].complex_mu.freq[i]) {
i_before = i;
} else {
i_after = i;
}
i = Math.floor((i_after + i_before)/2);
}
// Linear interpolation between empirical proximity resistance values:
mu_1 = (((frequency - this.cores[this.material].complex_mu.freq[i]) / (this.cores[this.material].complex_mu.freq[i+1] - this.cores[this.material].complex_mu.freq[i])
* (this.cores[this.material].complex_mu.mu_1[i+1] - this.cores[this.material].complex_mu.mu_1[i])) + this.cores[this.material].complex_mu.mu_1[i]);
mu_2 = (((frequency - this.cores[this.material].complex_mu.freq[i]) / (this.cores[this.material].complex_mu.freq[i+1] - this.cores[this.material].complex_mu.freq[i])
* (this.cores[this.material].complex_mu.mu_2[i+1] - this.cores[this.material].complex_mu.mu_2[i])) + this.cores[this.material].complex_mu.mu_2[i]);
return [mu_1, mu_2];
};
this.getInductance = function (frequency, mu) {
// const mu = this.getComplexPermeability(frequency);
const L = mu[0] * 4.0 * Math.PI * this.N**2 * 1e-3 / this.core.CC;
return L;
};
this.getImpedance = function (frequency, mu) {
// const mu = this.getComplexPermeability(frequency);
const Lo = 4.0 * Math.PI * this.N**2 * 1e-9 / this.core.CC;
const Rs = 2.0 * Math.PI * frequency * Lo * mu[1];
const Xs = 2.0 * Math.PI * frequency * Lo * mu[0];
return { real:Rs , imag:Xs };
};
this.getWireResistance = function(frequency) {
// Calculate AC wire-resistance, using IEC 60287-1-1:
const Ks = 1.0; // Solid core conductor
const xs4 = ((8 * Math.PI * frequency * Ks) / (this.Rdc * 1e7))**2;
const Ys = xs4 / (192.0 + 0.8 * xs4);
const Rac = this.Rdc * (1 + Ys);
return Rac;
};
this.getWireResistance2 = function(frequency, r) {
// Al-Asadi equation:
const mu0 = Math.PI * 4e-7;
const cu_sigma = 58e6;
const delta = 1/Math.sqrt(Math.PI * frequency * this.mat.mu_i * mu0 * cu_sigma);
const k = delta * (1-Math.E**(-r/delta));
const Rac = 1/(Math.PI * cu_sigma * k * (2*r - k));
return Rac;
};
this.recalculate = function (frequencies) {
// Input variables:
this.cond_diameter_meters = 0.001 * awgToMm(40.0 - conductor_diameter_slider.value)[0];
this.Vrms = 10.0 ** voltage_slider.value;
// Frequency independent characteristics:
this.N_max = Math.PI / (Math.atan2(0.5e3 * this.cond_diameter_meters, (0.5 * this.core.B - 0.5e3 * this.cond_diameter_meters)));
this.N = 1 + Math.round(loop_turns_slider.value * (this.N_max - 1) * 0.25);
//this.cond_length_meters = this.N * (2*this.core.C + this.core.A - this.core.B) * 1e-3;
//this.cond_length_meters = 2e-3 * Math.sqrt ( (Math.PI * 0.5 * (this.core.A + this.core.B))**2 + (this.N * (2*this.core.C + this.core.A - this.core.B))**2 );
this.cond_length_meters = 2e-3 * Math.sqrt ( (Math.PI * 0.5 * (this.core.A + this.core.B))**2 + (this.N * (2*(this.cond_diameter_meters*1e3) + 2*this.core.C + this.core.A - this.core.B))**2 );
this.Rdc = 1.68e-8 * this.cond_length_meters / (Math.PI * ((this.cond_diameter_meters*0.5)**2.0));
//const Cpmult = 12.9*()
//this.C = (0.9 + (78.1/this.N**2))*1e-12; // In Farads
this.L = (this.N**2) * this.core.Al * 1.0e-9; // In Henries
// Based on David Knight's equation:
this.C = (0.9 + (78.1/this.N**2))*1e-12; // In Farads
this.SRF = 1.0/(2.0*Math.PI* Math.sqrt(this.L*this.C));
// Clear the frequency dependent characteristics before appending new data:
this.L_vs_f = [];
this.Z_vs_f = [];
this.R_vs_f = [];
this.X_vs_f = [];
this.Q_vs_f = [];
this.i_vs_f = [];
this.P_vs_f = [];
this.mu1_vs_f = [];
this.mu2_vs_f = [];
this.H_vs_f = [];
this.B_vs_f = [];
frequencies.forEach(freq => {
const mu = this.getComplexPermeability(freq);
const L = this.getInductance(freq, mu);
const Z = this.getImpedance(freq, mu);
// Make freq in kHz from Hz:
freq *= 1e-3;
this.mu1_vs_f.push({x:freq, y:mu[0]});
this.mu2_vs_f.push({x:freq, y:mu[1]});
//this.L_vs_f.push({x:freq, y:(mu[0] * 4.0 * Math.PI * this.N**2 * 1e-3 / this.core.CC)});
this.L_vs_f.push({x:freq, y:L});
this.R_vs_f.push({x:freq, y:Z.real});
this.X_vs_f.push({x:freq, y:Z.imag});
this.Q_vs_f.push({x:freq, y:(Z.imag/Z.real)});
const ZZ = math.complex(Z.real, Z.imag);
const II = math.divide(this.Vrms, ZZ).toPolar();
this.i_vs_f.push({x:freq, y:(II.r*1e3)}); // in mA
//this.P_vs_f.push({x:freq, y:((this.Vrms**2 / Z.real)*1e3)});
this.P_vs_f.push({x:freq, y:((Z.real * II.r**2)*1e3)}); // in mW
this.Z_vs_f.push({x:freq, y:(ZZ.toPolar().r)});
const H = ((0.4 * Math.PI * this.N * 1.414 * II.r) / this.core.le);
const B = ((this.Vrms * 1e8) / (4.44e3 * freq * this.N * this.core.Ae));
//const B = Math.sqrt(mu[0]**2 + mu[1]**2) * H;
this.H_vs_f.push({x:freq, y:H});
this.B_vs_f.push({x:freq, y:B});
});
};
//
this.calculateInductance = function () {
return this.L_vs_f;
};
this.calculateImpedance = function () {
return this.Z_vs_f;
};
this.calculatePermeability1 = function () {
return this.mu1_vs_f;
};
this.calculatePermeability2 = function () {
return this.mu2_vs_f;
};
this.calculateResistance = function () {
return this.R_vs_f;
};
this.calculateReactance = function () {
return this.X_vs_f;
};
this.calculateQualityFactor = function () {
return this.Q_vs_f;
};
this.calculateCurrent = function () {
return this.i_vs_f;
};
this.calculatePowerLoss = function () {
return this.P_vs_f;
};
this.calculateH = function () {
return this.H_vs_f;
};
this.calculateB = function () {
return this.B_vs_f;
};
}
function PowderedIron() {
// Current selected material type:
this.material = '2';
// Current selected ferrite size:
this.size = 'T300';
// User-selected variables:
this.cond_diameter_meters = 0.0;
this.coated_cond_diameter_meters = 0.0;
this.N = 0;
this.Vrms = 0.0;
// Calculated frequency-independent variables:
this.cond_length_meters = 0.0;
this.Rdc = 0.0;
this.N_max = 0;
this.L = 0.0;
this.C = 0.0;
this.SRF = 0.0;
// Calculated and charted frequency-dependent variables:
this.L_vs_f = [];
this.Z_vs_f = [];
this.R_vs_f = [];
this.Rac_vs_f = [];
this.X_vs_f = [];
this.Q_vs_f = [];
this.i_vs_f = [];
this.P_vs_f = [];
this.mu_vs_f = [];
this.H_vs_f = [];
this.B_vs_f = [];
this.cores = {
'0' : {
size : {
'T300' : { PN:'T300-0', A:77.22, B:49.02, C:12.70, W:73.5, CC:0.0, le:19.8, Ae:1.68, Ve:33.4, Al:1.5 },
'T184' : { PN:'T184-0', A:46.74, B:24.13, C:18.03, W:46.2, CC:0.0, le:11.2, Ae:1.88, Ve:21.0, Al:3.0 },
'T157' : { PN:'T157-0', A:39.88, B:24.13, C:14.48, W:23.5, CC:0.0, le:10.1, Ae:1.06, Ve:10.7, Al:1.8 },
'T130' : { PN:'T130-0', A:33.02, B:19.81, C:11.10, W:12.7, CC:0.0, le:8.28, Ae:0.698, Ve:5.78, Al:1.5 },
'T106' : { PN:'T106-0', A:26.92, B:14.48, C:11.10, W:9.41, CC:0.0, le:6.49, Ae:0.659, Ve:4.28, Al:1.9 },
'T94' : { PN:'T94-0', A:23.93, B:14.22, C:7.92, W:4.75, CC:0.0, le:5.97, Ae:0.362, Ve:2.16, Al:1.06 },
'T80' : { PN:'T80-0', A:20.19, B:12.57, C:6.35, W:2.62, CC:0.0, le:5.14, Ae:0.231, Ve:1.19, Al:0.85 },
'T68' : { PN:'T68-0', A:17.53, B:9.40, C:4.83, W:1.67, CC:0.0, le:4.23, Ae:0.179, Ve:0.759, Al:0.75 },
'T50' : { PN:'T50-0', A:12.70, B:7.70, C:4.83, W:0.79, CC:0.0, le:3.19, Ae:0.112, Ve:0.358, Al:0.64 },
'T44' : { PN:'T44-0', A:11.18, B:5.82, C:4.04, W:0.59, CC:0.0, le:2.68, Ae:0.099, Ve:0.266, Al:0.65 },
'T37' : { PN:'T37-0', A:9.53, B:5.21, C:3.25, W:0.32, CC:0.0, le:2.31, Ae:0.064, Ve:0.147, Al:0.49 },
'T30' : { PN:'T30-0', A:7.80, B:3.84, C:3.25, W:0.24, CC:0.0, le:1.84, Ae:0.060, Ve:0.110, Al:0.60 },
'T25' : { PN:'T25-0', A:6.48, B:3.05, C:2.44, W:0.12, CC:0.0, le:1.50, Ae:0.037, Ve:0.055, Al:0.45 },
},
manufacturer : "Micrometals",
mat : "Phenolic",
mu_i : 1,
Bsat : 14800.0,
Br : 0.0,
Hc : 0.0,
mu_vs_f : { a:1.0e50, b:1.0, c:1.0, d:1.0 },
mu_vs_B : { a:1.00e2, b:0.0, c:1.0, d:1.0e80, e:1.0, f:1e80 },
mu_vs_H : { a:1.00e90, b:1.0e90, c:1.0e90, d:1.0e90, e:1.0 },
CL_vs_f_B : { a:1.0e90, b:1.0e90, c:1.0e90, d:1.0e-90 },
color : '#EECFA1', // a dark tan
color_code : "Tan",
},
'2' : {
size : {
'T300' : { PN:'T300-2', A:77.22, B:49.02, C:12.70, W:167.0, CC:0.0, le:19.8, Ae:1.68, Ve:33.4, Al:11.4 },
'T225B': { PN:'T225-2B',A:57.15, B:35.69, C:25.40, W:189.0, CC:0.0, le:14.6, Ae:2.59, Ve:37.8, Al:21.5 },
'T225' : { PN:'T225-2', A:57.15, B:35.69, C:13.97, W:103.5, CC:0.0, le:14.6, Ae:1.42, Ve:20.7, Al:12.0 },
'T200B': { PN:'T200-2B',A:50.80, B:31.75, C:25.40, W:149.0, CC:0.0, le:13.0, Ae:2.31, Ve:29.8, Al:21.8 },
'T200' : { PN:'T200-2', A:50.80, B:31.75, C:13.97, W:82.0, CC:0.0, le:13.0, Ae:1.27, Ve:16.4, Al:12.0 },
'T184' : { PN:'T184-2', A:46.74, B:24.13, C:18.03, W:105.0, CC:0.0, le:11.2, Ae:1.88, Ve:21.0, Al:24.0 },
'T157' : { PN:'T157-2', A:39.88, B:24.13, C:14.48, W:53.5, CC:0.0, le:10.1, Ae:1.06, Ve:10.7, Al:14.0 },
'T130' : { PN:'T130-2', A:33.02, B:19.81, C:11.10, W:28.9, CC:0.0, le:8.28, Ae:0.698, Ve:5.78, Al:11.0 },
'T106' : { PN:'T106-2', A:26.92, B:14.48, C:11.10, W:21.4, CC:0.0, le:6.49, Ae:0.659, Ve:4.28, Al:13.5 },
'T94' : { PN:'T94-2', A:23.93, B:14.22, C:7.92, W:10.8, CC:0.0, le:5.97, Ae:0.362, Ve:2.16, Al:8.4 },
'T80' : { PN:'T80-2', A:20.19, B:12.57, C:6.35, W:5.95, CC:0.0, le:5.14, Ae:0.231, Ve:1.19, Al:5.5 },
'T68' : { PN:'T68-2', A:17.53, B:9.40, C:4.83, W:3.795, CC:0.0, le:4.23, Ae:0.179, Ve:0.759, Al:5.7 },
'T50' : { PN:'T50-2', A:12.70, B:7.70, C:4.83, W:1.79, CC:0.0, le:3.19, Ae:0.112, Ve:0.358, Al:4.9 },
'T44' : { PN:'T44-2', A:11.18, B:5.82, C:4.04, W:1.33, CC:0.0, le:2.68, Ae:0.099, Ve:0.266, Al:5.2 },
'T37' : { PN:'T37-2', A:9.53, B:5.21, C:3.25, W:0.735, CC:0.0, le:2.31, Ae:0.064, Ve:0.147, Al:4.0 },
'T30' : { PN:'T30-2', A:7.80, B:3.84, C:3.25, W:0.55, CC:0.0, le:1.84, Ae:0.060, Ve:0.110, Al:4.3 },
'T25' : { PN:'T25-2', A:6.48, B:3.05, C:2.44, W:0.275, CC:0.0, le:1.50, Ae:0.037, Ve:0.055, Al:3.4 },
},
manufacturer : "Micrometals",
mat : "Carbonyl E",
mu_i : 10,
Bsat : 14800.0,
Br : 30.0,
Hc : 3.0,
mu_vs_f : { a:1.11e-1, b:7.01e-11, c:9.00e-1, d:1.0e0 },
mu_vs_B : { a:1.57e3, b:4.50e-1, c:1.25e0, d:1.16e17, e:-3.70e0, f:1.07e2 },
mu_vs_H : { a:1.00e-2, b:1.83e-7, c:1.46e0, d:0.0e0 },
B_vs_H : { a:1.50e-3, b:1.96e0, c:1.97e4, d:9.18e-4, e:1.48e3 },
CL_vs_f_B : { a:4.0e9, b:3.0e8, c:2.7e6, d:9.6e-16 },
color : '#CD0000', // a dark red
color_code : "Red/Clear",
},
'17' : {
size : {
'T184' : { PN:'T184-17', A:46.74, B:24.13, C:18.03, W:105.0, CC:0.0, le:11.2, Ae:1.88, Ve:21.0, Al:8.7 },
'T157' : { PN:'T157-17', A:39.88, B:24.13, C:14.48, W:53.5, CC:0.0, le:10.1, Ae:1.06, Ve:10.7, Al:5.3 },
'T130' : { PN:'T130-17', A:33.02, B:19.81, C:11.10, W:28.9, CC:0.0, le:8.28, Ae:0.698, Ve:5.78, Al:4.0 },
'T106B': { PN:'T106-17B',A:26.92, B:14.48, C:14.60, W:26.7, CC:0.0, le:6.49, Ae:0.858, Ve:5.57, Al:6.6 },
'T106' : { PN:'T106-17', A:26.92, B:14.48, C:11.10, W:21.4, CC:0.0, le:6.49, Ae:0.659, Ve:4.28, Al:5.1 },
'T94' : { PN:'T94-17', A:23.93, B:14.22, C:7.92, W:10.8, CC:0.0, le:5.97, Ae:0.362, Ve:2.16, Al:2.9 },
'T80' : { PN:'T80-17', A:20.19, B:12.57, C:6.35, W:5.95, CC:0.0, le:5.14, Ae:0.231, Ve:1.19, Al:2.2 },
'T68' : { PN:'T68-17', A:17.53, B:9.40, C:4.83, W:3.795, CC:0.0, le:4.23, Ae:0.179, Ve:0.759, Al:2.1 },
'T50' : { PN:'T50-17', A:12.70, B:7.70, C:4.83, W:1.79, CC:0.0, le:3.19, Ae:0.112, Ve:0.358, Al:1.8 },
'T44' : { PN:'T44-17', A:11.18, B:5.82, C:4.04, W:1.33, CC:0.0, le:2.68, Ae:0.099, Ve:0.266, Al:1.85 },
'T37' : { PN:'T37-17', A:9.53, B:5.21, C:3.25, W:0.735, CC:0.0, le:2.31, Ae:0.064, Ve:0.147, Al:1.5 },
'T30' : { PN:'T30-17', A:7.80, B:3.84, C:3.25, W:0.55, CC:0.0, le:1.84, Ae:0.060, Ve:0.110, Al:1.6 },
'T25' : { PN:'T25-17', A:6.48, B:3.05, C:2.44, W:0.275, CC:0.0, le:1.50, Ae:0.037, Ve:0.055, Al:1.2 },
},
manufacturer : "Micrometals",
mat : "Carbonyl",
mu_i : 4,
Bsat : 14400.0,
Br : 30.0,
Hc : 3.0,
mu_vs_f : { a:3.33e-1, b:7.01e-11, c:9.00e-1, d:1.0e0 },
mu_vs_B : { a:1.57e3, b:4.50e-1, c:1.25e0, d:1.16e17, e:-3.70e0, f:1.07e2 },
mu_vs_H : { a:1.00e-2, b:1.34e-8, c:1.55, d:0.0 },
B_vs_H : { a:6.20e-4, b:1.96e0, c:7.71e4, d:9.31e-4, e:3.60e3 },
CL_vs_f_B : { a:4.0e9, b:3.0e8, c:2.7e6, d:4.40e-16 },
color : '#007FFF', // azure blue
color_code : "Blue/Yellow",
},
'6' : {
size : {
'T300' : { PN:'T300-6', A:77.22, B:49.02, C:12.70, W:167.0, CC:0.0, le:19.8, Ae:1.68, Ve:33.4, Al:9.5 },
'T225' : { PN:'T225-6', A:57.15, B:35.69, C:13.97, W:103.5, CC:0.0, le:14.6, Ae:1.42, Ve:20.7, Al:10.4 },
'T200' : { PN:'T200-6', A:50.80, B:31.75, C:13.97, W:82.0, CC:0.0, le:13.0, Ae:1.27, Ve:16.4, Al:10.4 },
'T184' : { PN:'T184-6', A:46.74, B:24.13, C:18.03, W:105.0, CC:0.0, le:11.2, Ae:1.88, Ve:21.0, Al:19.5 },
'T130' : { PN:'T130-6', A:33.02, B:19.81, C:11.10, W:28.9, CC:0.0, le:8.28, Ae:0.698, Ve:5.78, Al:9.6 },
'T106' : { PN:'T106-6', A:26.92, B:14.48, C:11.10, W:21.4, CC:0.0, le:6.49, Ae:0.659, Ve:4.28, Al:11.6 },
'T94' : { PN:'T94-6', A:23.93, B:14.22, C:7.92, W:10.8, CC:0.0, le:5.97, Ae:0.362, Ve:2.16, Al:7.0 },
'T80' : { PN:'T80-6', A:20.19, B:12.57, C:6.35, W:5.95, CC:0.0, le:5.14, Ae:0.231, Ve:1.19, Al:4.5 },
'T68' : { PN:'T68-6', A:17.53, B:9.40, C:4.83, W:3.795, CC:0.0, le:4.23, Ae:0.179, Ve:0.759, Al:4.7 },
'T50' : { PN:'T50-6', A:12.70, B:7.70, C:4.83, W:1.79, CC:0.0, le:3.19, Ae:0.112, Ve:0.358, Al:4.0 },
'T44' : { PN:'T44-6', A:11.18, B:5.82, C:4.04, W:1.33, CC:0.0, le:2.68, Ae:0.099, Ve:0.266, Al:4.2 },
'T37' : { PN:'T37-6', A:9.53, B:5.21, C:3.25, W:0.735, CC:0.0, le:2.31, Ae:0.064, Ve:0.147, Al:3.0 },
'T30' : { PN:'T30-6', A:7.80, B:3.84, C:3.25, W:0.55, CC:0.0, le:1.84, Ae:0.060, Ve:0.110, Al:3.6 },
'T25' : { PN:'T25-6', A:6.48, B:3.05, C:2.44, W:0.275, CC:0.0, le:1.50, Ae:0.037, Ve:0.055, Al:2.7 },
},
manufacturer : "Micrometals",
mat : "Carbonyl SF",
mu_i : 8.5,
Bsat : 14800.0,
Br : 26.0,
Hc : 3.0,
mu_vs_f : { a:1.33e-1, b:7.01e-11, c:9.00e-1, d:1.0e0 },
mu_vs_B : { a:1.57e3, b:4.50e-1, c:1.25e0, d:1.16e17, e:-3.70e0, f:1.07e2 },
mu_vs_H : { a:1.00e-2, b:4.87e-8, c:1.57e0, d:0.0e0 },
B_vs_H : { a:1.28e-3, b:1.96e0, c:2.30e4, d:9.19e-4, e:1.74e3 },
CL_vs_f_B : { a:4.0e9, b:3.0e8, c:2.7e6, d:8.9e-16 },
color : '#ECD540', // a darker yellow
color_code : "Yellow/Clear",
},
'10' : {
size : {
'T184' : { PN:'T184-10', A:46.74, B:24.13, C:18.03, W:102.9, CC:0.0, le:11.2, Ae:1.88, Ve:21.0, Al:13.8 },
'T157' : { PN:'T157-10', A:39.88, B:24.13, C:14.48, W:52.43, CC:0.0, le:10.1, Ae:1.06, Ve:10.7, Al:8.2 },
'T130' : { PN:'T130-10', A:33.02, B:19.81, C:11.10, W:28.32, CC:0.0, le:8.28, Ae:0.698, Ve:5.78, Al:6.83 },
'T94' : { PN:'T94-10', A:23.93, B:14.22, C:7.92, W:10.58, CC:0.0, le:5.97, Ae:0.362, Ve:2.16, Al:5.8 },
'T68' : { PN:'T68-10', A:17.53, B:9.40, C:4.83, W:3.72, CC:0.0, le:4.23, Ae:0.179, Ve:0.759, Al:3.2 },
'T50' : { PN:'T50-10', A:12.70, B:7.70, C:4.83, W:1.75, CC:0.0, le:3.19, Ae:0.112, Ve:0.358, Al:3.1 },
'T44' : { PN:'T44-10', A:11.18, B:5.82, C:4.04, W:1.30, CC:0.0, le:2.68, Ae:0.099, Ve:0.266, Al:3.3 },
'T37' : { PN:'T37-10', A:9.53, B:5.21, C:3.25, W:0.72, CC:0.0, le:2.31, Ae:0.064, Ve:0.147, Al:2.5 },
},
manufacturer : "Micrometals",
mat : "Carbonyl W",
mu_i : 6,
Bsat : 14600.0,
Br : 18.0,
Hc : 3.0,
mu_vs_f : { a:2.00e-1, b:7.01e-11, c:9.00e-1, d:1.0e0 },
mu_vs_B : { a:1.57e3, b:4.50e-1, c:1.25e0, d:1.16e17, e:-3.70e0, f:1.07e2 },
mu_vs_H : { a:1.00e-2, b:5.54e-9, c:1.69e0, d:0.0e0 },
B_vs_H : { a:9.13e-4, b:1.96e0, c:3.83e4, d:9.23e-4, e:2.43e3 },
CL_vs_f_B : { a:4.0e9, b:3.0e8, c:2.7e6, d:8.0e-16 },
color : '#4F4F4F',
color_code : "Black/Clear",
},
};
this.mat = this.cores[this.material];
this.core = this.mat.size[this.size];
this.getMaterialDataStrings = function () {
retval = [];
retval.push(["Size", this.size]);
retval.push(["Material", this.material.toString()]);
retval.push(["Type", this.mat.mat]);
retval.push(["\u03bci", this.mat.mu_i.toString()]);
retval.push(["Color", this.mat.color_code]);
retval.push(["Bsat", this.mat.Bsat.toString() + " G"]);
retval.push(["Mass", this.core.W.toString() + " g"]);
retval.push(["P/N", this.core.PN]);
return retval;
};
this.setMaterial = function (material) {
this.material = material;
this.mat = this.cores[this.material];
this.core = this.mat.size[this.size];
};
this.setSize = function (size) {
this.size = size;
this.core = this.mat.size[this.size];
};
this.setTurns = function (turns) {
this.N = turns;
};
this.getMaterialTypes = function () {
return ["2", "6", "10", '17', '0'];
};
this.getSizesForMaterial = function (material) {
return Object.keys(this.cores[material].size);
};
this.getMuFromFreq = function (f) {
return 1/(this.mat.mu_vs_f.a + this.mat.mu_vs_f.b * f**this.mat.mu_vs_f.c) + this.mat.mu_vs_f.d;
};
this.getMuFromBpk = function (B) {
// return ((this.mat.mu_vs_B.a + this.mat.mu_vs_B.c * B + this.mat.mu_vs_B.e * B**2) / (1.0 + this.mat.mu_vs_B.b * B + this.mat.mu_vs_B.d * B**2))**0.5;
return (1 / ((1/(this.mat.mu_vs_B.a + this.mat.mu_vs_B.b * B ** this.mat.mu_vs_B.c)) + (1/(this.mat.mu_vs_B.d * B ** this.mat.mu_vs_B.e)) + (1/this.mat.mu_vs_B.f))); // ((this.mat.mu_vs_B.a + this.mat.mu_vs_B.c * B + this.mat.mu_vs_B.e * B**2) / (1.0 + this.mat.mu_vs_B.b * B + this.mat.mu_vs_B.d * B**2))**0.5;
};
this.getBpkFromH = function (H, f) {
return this.getMuFromFreq(f) / ((1/(H + this.mat.B_vs_H.a * H ** this.mat.B_vs_H.b)) + (1/(this.mat.B_vs_H.c * H ** this.mat.B_vs_H.d)) + (1/this.mat.B_vs_H.e));
};
this.getMuFromH = function (H, f) {
//return this.getMuFromFreq(f) / ((1/(H + this.mat.mu_vs_H.a * H ** this.mat.mu_vs_H.b)) + (1/(this.mat.mu_vs_H.c * H ** this.mat.mu_vs_H.d)) + (1/this.mat.mu_vs_H.e));
return 1/(this.mat.mu_vs_H.a + this.mat.mu_vs_H.b * H**this.mat.mu_vs_H.c) + this.mat.mu_vs_H.d;
};
// Return power loss in Watts:
this.getPdFromfB = function (f, B) {
return this.core.Ve * 1e-3 * (f / (this.mat.CL_vs_f_B.a / B**3.0 + this.mat.CL_vs_f_B.b / B**2.3 + this.mat.CL_vs_f_B.c / B**1.65) + this.mat.CL_vs_f_B.d * B**2 * f**2);
};
this.getInductanceOld = function (frequency) {
const mu = this.getMuFromFreq(frequency);
//const L = mu * 4.0 * Math.PI * this.N**2 * 1e-9 / this.core.CC;
const CC = this.core.le / this.core.Ae;
const L = mu * 4.0 * Math.PI * this.N**2 * 1e-9 / CC;
return L;
};
this.getInductance = function (frequency, Bpk) {
// const L = this.core.Al * this.N**2 * 1e-9;
// New method because using Ae and le did not match Al with N^2.
const L = this.getMuFromFreq(frequency) * this.getMuFromBpk(Bpk) * 1e-2 * (this.core.Al / this.mat.mu_i) * this.N**2 * 1e-9;
return L;
};
this.getReactance = function (frequency, Bpk) {
const Xs = 2.0 * Math.PI * frequency * this.getInductance(frequency, Bpk);
return Xs;
};
/*
this.getWireResistance = function(frequency) {
// Calculate AC wire-resistance, using IEC 60287-1-1: - this seemed really hopeless for high-frequencies:
const Ks = 1.0; // Solid core conductor
const xs4 = ((8 * Math.PI * frequency * Ks) / (this.Rdc * 1e7))**2;
const Ys = xs4 / (192.0 + 0.8 * xs4);
const Rac = this.Rdc * (1 + Ys);
return Rac;
};
*/
this.getWireResistance = function(frequency, wire_radius_meter) {
// Al-Asadi equation for AC resistance in Ohms/meter:
const mu0 = Math.PI * 4e-7;
const cu_sigma = 58e6;
const delta = 1/Math.sqrt(Math.PI * frequency * this.mat.mu_i * mu0 * cu_sigma);
const k = delta * (1-Math.E**(-wire_radius_meter/delta));
const Rac = 1/(Math.PI * cu_sigma * k * (2*wire_radius_meter - k));
return Rac;
};
this.I_inductor = function (frequency, voltage) {
const K1 = 4.44 * frequency * this.N * this.core.Ae * 1e-8;
const K2 = 0.4 * Math.PI * this.N / this.core.le;
const B = voltage * 1e8 / (4.44 * frequency * this.N * this.core.Ae);
var mu = this.getMuFromFreq(frequency);
mu *= this.getMuFromBpk(B);
mu *= 1e-2;
return voltage / (mu * K1 * K2 * 1.414);
}
this.I_wire = function (frequency, voltage) {
const Rac = this.getWireResistance(frequency, this.cond_diameter_meters * 0.5);
return (voltage / Rac);
}
this.solve_V_inductor = function (frequency, voltage) {
// Initially assume voltage is divided between wire resistance and inductor core-loss resistance equivalently:
var voltage_upper = voltage;
var voltage_lower = 0.0;
var voltage_fraction = 0.5 * voltage;
var i_inductor = 0.0;
var i_wire = 0.0;
var count = 0;
while(true) {
count++;
i_inductor = this.I_inductor(frequency, (voltage - voltage_fraction));
i_wire = this.I_wire(frequency, voltage_fraction);
if(count > 60) {
console.log("ERROR!", count);
break;
}
if(i_inductor > (i_wire * 1.001)) {
voltage_lower = voltage_fraction;
voltage_fraction = 0.5 * (voltage_lower + voltage_upper);
continue;
}
if(i_wire > (i_inductor * 1.001)) {
voltage_upper = voltage_fraction;
voltage_fraction = 0.5 * (voltage_lower + voltage_upper);
continue;
}
// Current's match within 1% of each other, which is good-enough for now.
break;
}
//console.log(count, frequency, i_inductor, i_wire);
const Rac = this.cond_length_meters * this.getWireResistance(frequency, this.cond_diameter_meters*0.5);
const V = (voltage - voltage_fraction); // Across the inductor.
const B = V * 1.0e8 / (4.44 * frequency * this.N * this.core.Ae);
const Pd = this.getPdFromfB(frequency, B);
const Pw = (i_wire**2 * Rac);
const X = this.getReactance(frequency, B);
const Xc = 1/(2*Math.PI*frequency*this.C);
const H = 0.4 * Math.PI * this.N * i_inductor / this.core.le;
const Ri = Pd / i_inductor**2;
const Q = X / (Ri + Rac);
const mu = this.getMuFromFreq(frequency) * this.getMuFromBpk(B) * 1e-2;
const L = this.getInductance(frequency, B);
return {
V : V, // Voltage across inductor in the L-R model.
I : i_wire,
Pd : Pd,
Pw : Pw,
L : L,
X : X,
B : B,
H : H,
Ri : Ri,
Rac: Rac,
R : (Ri+Rac),
u : mu,
Q : Q,
Z : (X**2 + (Ri+Rac)**2)**0.5,
}
}
// frequencies = [] of frequencies in Hz
this.recalculate = function (awg, turns_density, voltage, frequencies) {
// Input variables:
// awg = 40.0 - conductor_diameter_slider.value;
this.cond_diameter_meters = 0.001 * awgToMm(awg)[0];
this.coated_cond_diameter_meters = 0.001 * awgToMm(awg)[1];
this.Vrms = 10.0 ** voltage;
// Frequency independent characteristics:
this.N_max = Math.PI / (Math.atan2(0.5e3 * this.cond_diameter_meters, (0.5 * this.core.B - 0.5e3 * this.cond_diameter_meters)));
this.N = 1 + Math.round(turns_density * (this.N_max - 1));
//this.cond_length_meters = this.N * (2*this.core.C + this.core.A - this.core.B) * 1e-3;
//this.cond_length_meters = 2e-3 * Math.sqrt ( (Math.PI * 0.5 * (this.core.A + this.core.B))**2 + (this.N * (2*this.core.C + this.core.A - this.core.B))**2 );
this.cond_length_meters = 1e-3 * Math.sqrt ( (Math.PI * 0.5 * (this.core.A + this.core.B))**2 + (this.N * (4*(this.cond_diameter_meters*1e3) + 2*this.core.C + this.core.A - this.core.B))**2 );
this.Rdc = 1.68e-8 * this.cond_length_meters / (Math.PI * ((this.cond_diameter_meters*0.5)**2.0));
this.L = (this.N**2) * this.core.Al * 1.0e-9; // In Henries
// Based on David Knight's equation:
this.C = (0.9 + (78.1/this.N**2))*1e-12; // In Farads
//this.C = this.getEquivalentCapacitance();
this.SRF = 1.0/(2.0*Math.PI* Math.sqrt(this.L*this.C));
// Clear the frequency dependent characteristics before appending new data:
this.L_vs_f = [];
this.Z_vs_f = [];
this.R_vs_f = [];
this.Rac_vs_f = [];
this.X_vs_f = [];
this.Q_vs_f = [];
this.i_vs_f = [];
this.P_vs_f = [];
this.mu_vs_f = [];
this.H_vs_f = [];
this.B_vs_f = [];
frequencies.forEach(freq => {
const ind = this.solve_V_inductor(freq, this.Vrms);
freq *= 1e-3;
this.mu_vs_f.push({x:freq, y:ind.u});
this.L_vs_f.push({x:freq, y:ind.L*1e6});
this.R_vs_f.push({x:freq, y:ind.Ri});
this.Rac_vs_f.push({x:freq, y:ind.Rac});
this.X_vs_f.push({x:freq, y:ind.X});
this.Q_vs_f.push({x:freq, y:ind.Q});
this.i_vs_f.push({x:freq, y:(ind.I*1e3)}); // in mA
this.P_vs_f.push({x:freq, y:((ind.Pd + ind.Pw)*1e3)}); // in mW
this.Z_vs_f.push({x:freq, y:ind.Z});
this.H_vs_f.push({x:freq, y:ind.H});
this.B_vs_f.push({x:freq, y:ind.B});
});
};
//
this.calculateInductance = function () {
return this.L_vs_f;
};
this.calculateImpedance = function () {
return this.Z_vs_f;
};
this.calculatePermeability = function () {
return this.mu_vs_f;
};
this.calculateResistance = function () {
return this.R_vs_f;
};
this.calculateWireResistance = function () {
return this.Rac_vs_f;
};
this.calculateReactance = function () {
return this.X_vs_f;
};
this.calculateQualityFactor = function () {
return this.Q_vs_f;
};
this.calculateCurrent = function () {
return this.i_vs_f;
};
this.calculatePowerLoss = function () {
return this.P_vs_f;
};
this.calculateH = function () {
return this.H_vs_f;
};
this.calculateB = function () {
return this.B_vs_f;
};
};
function Controller() {
// Define global storage for calculated values, so we don't recalculate the same things multiple times:
this.t_mode = 'Inductor';
this.t_size = 'FT240';
this.t_material = '43';
this.t_type = 'ferrite';
this.frequencies = [];
// Create a ferrite and powdered-iron object:
this.ferrite = new Ferrite();
this.powdered_iron = new PowderedIron();
this.toroid = this.ferrite;
this.setSize = function (size) {
this.t_size = size;
this.toroid.setSize(this.t_size);
};
this.setMaterial = function (material) {
if(material in this.ferrite.cores) {
this.toroid = this.ferrite;
this.toroid.setMaterial(material);
this.t_material = material;
this.t_type = 'ferrite';
// Now re-configure the chart axes options:
this.myChart.data = {
datasets: [
{
label: 'L (\u03bcH)',
fill: false,
borderColor: 'orange',
backgroundColor: 'orange',
data: this.toroid.calculateInductance(),
borderWidth: 1,
yAxisID: 'lID'
},
{
label: '|Z| (\u03A9)',
fill: false,
borderColor: 'black',
backgroundColor: 'black',
data: this.toroid.calculateImpedance(),
borderWidth: 1,
yAxisID: 'ohmsID'
},
{
label: 'X (j\u03A9)',
fill: false,
borderColor: 'blue',
backgroundColor: 'blue',
data: this.toroid.calculateReactance(),
borderWidth: 1,
yAxisID: 'ohmsID'
},
{
label: 'R (\u03A9)',
fill: false,
borderColor: 'red',
backgroundColor: 'red',
data: this.toroid.calculateResistance(),
borderWidth: 1,
yAxisID: 'ohmsID'
},
{
label: 'Q',
fill: false,
borderColor: '#69359C',
backgroundColor: '#9A4EAE',
data: this.toroid.calculateQualityFactor(),
borderWidth: 1,
yAxisID: 'qID'
},
{
label: 'I (mA)',
fill: false,
borderColor: 'rgb(0,128,128)',
backgroundColor: 'rgb(0,118,118)',
data: this.toroid.calculateCurrent(),
borderWidth: 1,
yAxisID: 'ccID'
},
{
label: '\u03bc\'',
fill: false,
borderColor: '#0070FF',
backgroundColor: '#1974D2',
data: this.toroid.calculatePermeability1(),
borderWidth: 1,
yAxisID: 'muID',
hidden: true
},
{
label: '\u03bc\'\'',
fill: false,
borderColor: '#F78FA7',
backgroundColor: '#FFC0CB',
data: this.toroid.calculatePermeability2(),
borderWidth: 1,
yAxisID: 'muID',
hidden: true
},
{
label: 'H(Oe)',
fill: false,
borderColor: '#654321',
backgroundColor: '#986960',
data: this.toroid.calculateH(),
borderWidth: 1,
yAxisID: 'hID',
hidden: true
},
{
label: 'B(G)',
fill: false,
borderColor: '#FFD300',
backgroundColor: '#F0E130',
data: this.toroid.calculateB(),
borderWidth: 1,
yAxisID: 'bID',
hidden: true
},
{
label: 'Pd(mW)',
fill: false,
borderColor: 'rgb(50,50,50)',
backgroundColor: 'rgb(100,100,100)',
data: this.toroid.calculatePowerLoss(),
borderWidth: 1,
yAxisID: 'wattsID',
hidden: false
}]
};
} else
if(material in this.powdered_iron.cores) {
this.toroid = this.powdered_iron;
this.toroid.setMaterial(material);
this.t_material = material;
this.t_type = 'powdered_iron';
// Now re-configure the chart axes options:
this.myChart.data = {
datasets: [
{
label: 'L (\u03bcH)',
fill: false,
borderColor: 'orange',
backgroundColor: 'orange',
data: this.toroid.calculateInductance(),
borderWidth: 1,
yAxisID: 'lID'
},
{
label: '|Z| (\u03A9)',
fill: false,
borderColor: 'black',
backgroundColor: 'black',
data: this.toroid.calculateImpedance(),
borderWidth: 1,
yAxisID: 'ohmsID'
},
{
label: 'X (j\u03A9)',
fill: false,
borderColor: 'blue',
backgroundColor: 'blue',
data: this.toroid.calculateReactance(),
borderWidth: 1,
yAxisID: 'ohmsID'
},
{
label: 'Rc (\u03A9)',
fill: false,
borderColor: 'red',
backgroundColor: 'red',
data: this.toroid.calculateResistance(),
borderWidth: 1,
yAxisID: 'ohmsID'
},
{
label: 'Rw (\u03A9)',
fill: false,
borderColor: '#F78FA7',
backgroundColor: '#FFC0CB',
//borderColor: 'pink',
//backgroundColor: 'pink',
data: this.toroid.calculateWireResistance(),
borderWidth: 1,
yAxisID: 'ohmsID'
},
{
label: 'Q',
fill: false,
borderColor: '#69359C',
backgroundColor: '#9A4EAE',
data: this.toroid.calculateQualityFactor(),
borderWidth: 1,
yAxisID: 'qID'
},
{
label: 'I (mA)',
fill: false,
borderColor: 'rgb(0,128,128)',
backgroundColor: 'rgb(0,118,118)',
data: this.toroid.calculateCurrent(),
borderWidth: 1,
yAxisID: 'ccID'
},
{
label: '\u03bc',
fill: false,
borderColor: '#0070FF',
backgroundColor: '#1974D2',
data: this.toroid.calculatePermeability(),
borderWidth: 1,
yAxisID: 'muID',
hidden: true
},
{
label: 'H(Oe)',
fill: false,
borderColor: '#654321',
backgroundColor: '#986960',
data: this.toroid.calculateH(),
borderWidth: 1,
yAxisID: 'hID',
hidden: true
},
{
label: 'B(G)',
fill: false,
borderColor: '#FFD300',
backgroundColor: '#F0E130',
data: this.toroid.calculateB(),
borderWidth: 1,
yAxisID: 'bID',
hidden: true
},
{
label: 'Pd(mW)',
fill: false,
borderColor: 'rgb(50,50,50)',
backgroundColor: 'rgb(100,100,100)',
data: this.toroid.calculatePowerLoss(),
borderWidth: 1,
yAxisID: 'wattsID',
hidden: false
}]
}
} else {
console.log("Unrecognised material selected =", material);
}
};
this.updateFrequencies = function (slider_value) {
this.frequencies = [];
//for(var i = 4.0; i <= 8.0; i+=0.01) {
var f = 1.0 * slider_value;
for(var i = Math.floor(4.00+f); i <= 5.52+f; i+=0.01) {
this.frequencies.push(10.0**i);
}
}
this.updateChart = function () {
if(this.t_type == 'ferrite') {
this.myChart.options.plugins.title.text
= this.ferrite.mat.manufacturer + " " + this.t_size + "-" + this.t_material + " [" + this.ferrite.core.PN + "]"
+ " : " + this.toroid.N + 't #' + (40.0 - conductor_diameter_slider.value) + ' AWG';
this.myChart.data.datasets[0].data = this.ferrite.calculateInductance();
this.myChart.data.datasets[1].data = this.ferrite.calculateImpedance();
this.myChart.data.datasets[2].data = this.ferrite.calculateReactance();
this.myChart.data.datasets[3].data = this.ferrite.calculateResistance();
this.myChart.data.datasets[4].data = this.ferrite.calculateQualityFactor();
this.myChart.data.datasets[5].data = this.ferrite.calculateCurrent();
this.myChart.data.datasets[6].data = this.ferrite.calculatePermeability1();
this.myChart.data.datasets[7].data = this.ferrite.calculatePermeability2();
this.myChart.data.datasets[8].data = this.ferrite.calculateH();
this.myChart.data.datasets[9].data = this.ferrite.calculateB();
this.myChart.data.datasets[10].data = this.ferrite.calculatePowerLoss();
this.myChart.update();
} else {
this.myChart.options.plugins.title.text
= this.powdered_iron.mat.manufacturer + " " + this.t_size + "-" + this.t_material + " [" + this.powdered_iron.core.PN + "]"
+ " : " + this.toroid.N + 't #' + (40.0 - conductor_diameter_slider.value) + ' AWG';
this.myChart.data.datasets[0].data = this.powdered_iron.calculateInductance();
this.myChart.data.datasets[1].data = this.powdered_iron.calculateImpedance();
this.myChart.data.datasets[2].data = this.powdered_iron.calculateReactance();
this.myChart.data.datasets[3].data = this.powdered_iron.calculateResistance();
this.myChart.data.datasets[4].data = this.powdered_iron.calculateWireResistance();
this.myChart.data.datasets[5].data = this.powdered_iron.calculateQualityFactor();
this.myChart.data.datasets[6].data = this.powdered_iron.calculateCurrent();
this.myChart.data.datasets[7].data = this.powdered_iron.calculatePermeability();
this.myChart.data.datasets[8].data = this.powdered_iron.calculateH();
this.myChart.data.datasets[9].data = this.powdered_iron.calculateB();
this.myChart.data.datasets[10].data = this.powdered_iron.calculatePowerLoss();
this.myChart.update();
}
};
this.recalculate = function () {
if(this.t_type == 'ferrite') {
this.ferrite.recalculate(this.frequencies);
} else {
this.powdered_iron.recalculate((40.0 - conductor_diameter_slider.value), loop_turns_slider.value, voltage_slider.value, this.frequencies);
}
drawDesign();
};
function justifyText(pre, post) {
var whitespace = 14 - pre.length - post.length;
return pre + ' '.repeat(whitespace) + post;
}
// Startup methods:
this.updateFrequencies(frequency_slider.value);
this.chartCanvas = document.getElementById("chartCanvas");
this.chartCanvasContext = chartCanvas.getContext('2d');
this.myChart = new Chart(this.chartCanvasContext, {
type: 'line',
data: {
datasets: [
{
label: 'L (\u03bcH)',
fill: false,
borderColor: 'orange',
backgroundColor: 'orange',
data: this.toroid.calculateInductance(),
borderWidth: 1,
yAxisID: 'lID'
},
{
label: '|Z| (\u03A9)',
fill: false,
borderColor: 'black',
backgroundColor: 'black',
data: this.toroid.calculateImpedance(),
borderWidth: 1,
yAxisID: 'ohmsID'
},
{
label: 'X (j\u03A9)',
fill: false,
borderColor: 'blue',
backgroundColor: 'blue',
data: this.toroid.calculateReactance(),
borderWidth: 1,
yAxisID: 'ohmsID'
},
{
label: 'R (\u03A9)',
fill: false,
borderColor: 'red',
backgroundColor: 'red',
data: this.toroid.calculateResistance(),
borderWidth: 1,
yAxisID: 'ohmsID'
},
{
label: 'Q',
fill: false,
borderColor: '#69359C',
backgroundColor: '#9A4EAE',
data: this.toroid.calculateQualityFactor(),
borderWidth: 1,
yAxisID: 'qID'
},
{
label: 'I (mA)',
fill: false,
borderColor: 'rgb(0,128,128)',
backgroundColor: 'rgb(0,118,118)',
data: this.toroid.calculateCurrent(),
borderWidth: 1,
yAxisID: 'ccID'
},
{
label: '\u03bc\'',
fill: false,
borderColor: '#0070FF',
backgroundColor: '#1974D2',
data: this.toroid.calculatePermeability1(),
borderWidth: 1,
yAxisID: 'muID',
hidden: true
},
{
label: '\u03bc\'\'',
fill: false,
borderColor: '#F78FA7',
backgroundColor: '#FFC0CB',
data: this.toroid.calculatePermeability2(),
borderWidth: 1,
yAxisID: 'muID',
hidden: true
},
{
label: 'H(Oe)',
fill: false,
borderColor: '#654321',
backgroundColor: '#986960',
data: this.toroid.calculateH(),
borderWidth: 1,
yAxisID: 'hID',
hidden: true
},
{
label: 'B(G)',
fill: false,
borderColor: '#FFD300',
backgroundColor: '#F0E130',
data: this.toroid.calculateB(),
borderWidth: 1,
yAxisID: 'bID',
hidden: true
},
{
label: 'Pd(mW)',
fill: false,
borderColor: 'rgb(50,50,50)',
backgroundColor: 'rgb(100,100,100)',
data: this.toroid.calculatePowerLoss(),
borderWidth: 1,
yAxisID: 'wattsID',
hidden: false
}]
},
options: {
responsive: true,
maintainAspectRatio: false,
elements: {
point: {
radius: 0,
},
},
scales: {
x: {
type: 'logarithmic',
position: 'bottom',
display: 'auto',
title: {
display: true,
text: 'Frequency (kHz)',
color: 'black',
font: {
weight : 'bold'
}
},
ticks: {
autoSkip: false,
}
},
'lID': {
type: 'linear',
display: 'auto',
title: {
display: true,
text: '\u03bcH',
color: 'black',
font: {
weight : 'bold'
}
},
position: 'left',
},
'ohmsID': {
type: 'logarithmic',
display: 'auto',
title: {
display: true,
text: '\u03A9',
color: 'black',
font: {
weight : 'bold'
}
},
position: 'left',
},
'qID' : {
type: 'linear',
display: 'auto',
title: {
display: true,
text: 'Q',
color: 'purple',
font: {
weight : 'bold'
}
},
position: 'left',
},
'ccID' : {
type: 'linear',
display: 'auto',
title: {
display: true,
text: 'mA',
color: 'rgb(0,128,128)',
font: {
weight : 'bold'
}
},
min: 0.0,
position: 'right',
},
'muID' : {
type: 'logarithmic',
display: 'auto',
title: {
display: true,
text: '\u03bc',
color: 'rgb(128,128,128)',
font: {
weight : 'bold'
}
},
min: 0.0,
position: 'right',
},
'hID' : {
type: 'linear',
display: 'auto',
title: {
display: true,
text: 'Oe',
color: 'rgb(0,128,0)',
font: {
weight : 'bold'
}
},
min: 0.0,
position: 'right',
},
'bID' : {
type: 'linear',
display: 'auto',
title: {
display: true,
text: 'G',
color: 'rgb(55,55,0)',
font: {
weight : 'bold'
}
},
min: 0.0,
position: 'left',
},
'wattsID' : {
type: 'linear',
display: 'auto',
title: {
display: true,
text: 'mW',
color: 'rgb(50,50,50)',
font: {
weight : 'bold'
}
},
min: 0.0,
position: 'right',
}
},
plugins : {
//showLines: true,
mode : 'nearest',
title: {
display: true,
text: this.toroid.core.manufacturer + " " + this.t_size + "-" + this.t_material + " [" + this.toroid.core.PN + "]",
},
tooltip: {
enabled: true,
mode: 'index',
intersect: false,
position: 'nearest',
bodyFont: {
family: 'monospace',
},
callbacks: {
title: function(context) {
var value = context[0].parsed.x;
var postlabel = " kHz";
if(value >= 1.0e6) {
value *= 1e-6;
postlabel = " GHz";
} else
if(value >= 1.0e3) {
value *= 1e-3;
postlabel = " MHz";
}
var label = 'Freq = ' + value.toPrecision(4).toString() + postlabel;
return label;
},
label: function(context) {
let value = context.element.parsed.y;
var label = context.dataset.label || '';
if (label) {
label += ' ';
}
if((label[0] == 'R') || (label[0] == 'X')) {
if(label[1] != ' ') {
label = label[0] + label[1] + ' ';
} else {
label = label[0] + ' ';
}
var num = getMetricPrefix(value);
if(num.val < 1e-15) {
label = justifyText(label, '0.0' + ' ' + num.pfx + '\u03A9');
} else {
label = justifyText(label, num.val.toPrecision(3).toString() + ' ' + num.pfx + '\u03A9');
}
} else if(label[1] == 'Z') {
var num = getMetricPrefix(value);
label = justifyText('|Z| ', num.val.toPrecision(3).toString() + ' ' + num.pfx + '\u03A9');
} else if(label[0] == 'L') {
var num = getMetricPrefix(value * 1e-6);
label = justifyText('L ', num.val.toPrecision(3).toString() + ' ' + num.pfx + 'H');
} else if(label[0] == 'I') {
var num = getMetricPrefix(value * 1e-3);
label = justifyText('I ', num.val.toPrecision(3).toString() + ' ' + num.pfx + 'A');
} else if(label[0] == 'B') {
var num = getMetricPrefix(value);
label = justifyText('B ', num.val.toPrecision(3).toString() + ' ' + num.pfx + 'G');
} else if(label[0] == 'H') {
var num = getMetricPrefix(value);
label = justifyText('H ', num.val.toPrecision(3).toString() + ' ' + num.pfx + 'Oe');
} else if(label[0] == 'P') {
var num = getMetricPrefix(value * 1e-3);
label = justifyText('Pd ', num.val.toPrecision(3).toString() + ' ' + num.pfx + 'W');
} else if(label[0] == 'Q') {
label = justifyText('Q ', value.toPrecision(3).toString() + ' ');
} else {
label = justifyText(label, value.toPrecision(3).toString() + ' ');
}
return label;
}
}
}
},
}
});
};
var controller = new Controller();
function acResistance(frequency_hz) {
return (toroid.cond_length_meters / (Math.PI * toroid.cond_diameter_meters * cu_sigma * skinDepth(frequency_hz)));
}
function getSRF() {
// First, use the initial permeability to start:
var mu = cores[material].mu_i;
var c_0 = 3e8;
var c_r = (1/Math.sqrt(mu)) * c_0;
var srf = c_r / (2 * toroid.cond_length_meters);
return srf;
}
function getMaxTurnsFrom() {
var cond_diameter_meters = 0.001 * awgToMm(40.0 - conductor_diameter_slider.value)[1];
var N_max = Math.PI / (Math.atan2(0.5e3 * cond_diameter_meters, (0.5 * toroid.core.B - 0.5e3 * cond_diameter_meters)));
return N_max;
}
function setMode() {
var modes = document.getElementsByName("modes");
controller.t_mode = modes[0].value;
l_inductors = {
sort_order : {
"Ferrites" : ["75", "78", "77", "79", "43", "43_old", "80", "52", "61", "67"],
"Powdered Iron" : ["2", "6", "10", "17", "0"]
},
"75":"75 [\u03bci=5000]",
"78":"78 [\u03bci=2300]",
"77":"77 [\u03bci=2000]",
"79":"79 [\u03bci=1400]",
"43":"43 [\u03bci=800]",
"43_old":"43 pre-2020 [\u03bci=800]",
"80":"80 [\u03bci=600]",
"52":"52 [\u03bci=250]",
"61":"61 [\u03bci=125]",
"67":"67 [\u03bci=40]",
"2":"2 [\u03bci=10]",
"6":"6 [\u03bci=8.5]",
"10":"10 [\u03bci=6]",
"17":"17 [\u03bci=4]",
"0":"0 [\u03bci=1]"};
l_suppressors = {
sort_order : {
"Ferrites" : ["61", "46", "43", "31", "75"],
},
"61":"61 [200 MHz - 1 GHz]",
"46":"46 [25 MHz - 300 MHz]",
"43":"43 [25 MHz - 300 MHz]",
"31":"31 [1 MHz - 300 MHz]",
"75":"75 [200 kHz - 30 MHz]"};
// Clear the materials from the DOM:
var l_materials = document.getElementById("material-select");
while(l_materials.firstChild) {
l_materials.removeChild(l_materials.firstChild);
}
var l_mat_selected;
if(controller.t_mode == "Suppressor") {
l_mat_selected = l_suppressors;
} else { // Inductors and Transformers should use the inductor material list:
l_mat_selected = l_inductors;
}
// Create the optgroup:
Object.keys(l_mat_selected.sort_order).forEach(function (kk) {
var optgroup = document.createElement("OPTGROUP");
optgroup.setAttribute("label", kk)
// Now insert only the sizes that exist for this material:
l_mat_selected.sort_order[kk].forEach(function (key){
// Create an option tag:
if(controller.t_material == key) {
// This is so that if the size was selected and still exists, then maintain the setting:
optgroup.appendChild(new Option(l_mat_selected[key], key, false, true));
} else {
optgroup.appendChild(new Option(l_mat_selected[key], key));
}
});
l_materials.appendChild(optgroup);
});
if(!(controller.t_material in l_mat_selected)) {
controller.t_material = Object.keys(l_mat_selected)[0];
}
// Now rebuild the size DOM for the selected material:
rebuildSizeDOM();
// Re-set the material, as it *may* have changed:
setMaterial();
}
function setToroid() {
//console.log("setToroid()")
var toroids = document.getElementsByName("toroids");
//controller.t_size = toroids[0].value;
controller.setSize(toroids[0].value);
controller.recalculate();
controller.updateChart();
}
function rebuildSizeDOM() {
// Remove all toroid sizes in the DOM:
var toroid_sizes = document.getElementById("toroid-select");
while(toroid_sizes.firstChild) {
toroid_sizes.removeChild(toroid_sizes.firstChild);
}
// Now insert only the sizes that exist for this material:
for(const key in controller.toroid.mat.size) {
// Create an option tag:
if(controller.t_size == key) {
// This is so that if the size was selected and still exists, then maintain the setting:
toroid_sizes.appendChild(new Option(key, key, false, true));
} else {
toroid_sizes.appendChild(new Option(key, key));
}
}
if(!(controller.t_size in controller.toroid.mat.size)) {
//console.log(t_size + " NOT exists!");
controller.setSize(Object.keys(controller.toroid.mat.size)[0]);
}
}
function setMaterial() {
//console.log("setMaterial()")
var materials = document.getElementsByName("materials");
controller.setMaterial(materials[0].value);
// Rebuild the list of available sizes for this material type:
rebuildSizeDOM();
controller.recalculate()
controller.updateChart();
}
// Limit how often we update the chart, as it is quite a slow operation. But updating the graphic
// is very fast. So we update that with every event, but set a short timer for when we stop moving
// the slider.
const emphasis_delay = 40;
var conductor_diameter_timer_handler = 0;
conductor_diameter_slider.oninput = function() {
// Check if we have exceeded the maximum turns:
/*
const max_N = getMaxTurnsFrom();
if(max_N > toroid.N) {
var temp = loop_turns_slider.value;
loop_turns_slider.value = (((1+(temp*(toroid.N_max-1)))-1) / (max_N-1));
}
*/
controller.recalculate();
if(conductor_diameter_timer_handler != 0) {
clearTimeout(conductor_diameter_timer_handler);
}
conductor_diameter_timer_handler = setTimeout(function(){
controller.updateChart();
conductor_diameter_timer_handler = 0;
}, emphasis_delay);
}
var loop_turns_timer_handler = 0;
loop_turns_slider.oninput = function() {
controller.recalculate();
if(loop_turns_timer_handler != 0) {
clearTimeout(loop_turns_timer_handler);
}
loop_turns_timer_handler = setTimeout(function(){
controller.updateChart();
loop_turns_timer_handler = 0;
}, emphasis_delay);
//generateTurnsRatioLUT(loop_turns_slider.value);
}
var frequency_timer_handler = 0;
frequency_slider.oninput = function() {
controller.updateFrequencies(frequency_slider.value);
controller.recalculate();
if(frequency_timer_handler != 0) {
clearTimeout(frequency_timer_handler);
}
frequency_timer_handler = setTimeout(function(){
controller.updateChart();
frequency_timer_handler = 0;
}, emphasis_delay);
}
var voltage_timer_handler = 0;
voltage_slider.oninput = function() {
controller.recalculate();
if(voltage_timer_handler != 0) {
clearTimeout(voltage_timer_handler);
}
voltage_timer_handler = setTimeout(function(){
controller.updateChart();
voltage_timer_handler = 0;
}, emphasis_delay);
}
window.onresize = function() {
controller.recalculate();
controller.updateChart();
}
window.onorientationchange = function() {
controller.recalculate();
controller.updateChart();
}
window.onbeforeprint = function() {
console.log("onbeforeprint");
controller.drawDesign();
}
//
function generateTurnsRatioLUT(max_turns) {
var res = {};
var ss = [];
for(var i=1; i<=max_turns; i++) {
for(var j=i; j<=max_turns; j++) {
res[j/i] = [i,j];
ss.push(j/i);
}
}
var kk = Object.keys(res).sort();
var jj = [];
kk.forEach(element => {
jj.push([element, res[element][0], res[element][1]]);
});
console.log(ss.sort());
return res;
}
const afront_canvas = document.getElementById("inductor2D");
const fctx = afront_canvas.getContext('2d');
function drawInductor(fctx, originX, originY, outerRadius, innerRadius, wireRadius, turns, width, toroid_colour) {
let theta = Math.PI/(turns);
var front_originX = originX - 0.5*(1*outerRadius + 20 + width) - 10;
originY -= 12;
var x1 = 0;
var y1 = 0;
var x2 = 0;
var y2 = 0;
// Draw entry and exit wires:
if(turns > 1) {
x1 = front_originX + (outerRadius + 20) * Math.cos(0.5 * Math.PI + 0.5 * theta);
y1 = originY + (outerRadius + 20) * Math.sin(0.5 * Math.PI + 0.5 * theta);
x2 = front_originX + (innerRadius - wireRadius) * Math.cos(0.5 * Math.PI + theta);
y2 = originY + (innerRadius - wireRadius) * Math.sin(0.5 * Math.PI + theta);
} else {
x1 = front_originX + (outerRadius + 20) * Math.cos(0.5 * Math.PI + 0.1 * theta);
y1 = originY + (outerRadius + 20) * Math.sin(0.5 * Math.PI + 0.1 * theta);
x2 = front_originX;
y2 = originY + (innerRadius - wireRadius);
}
var angle = math.atan2(y1 - y2, x1 - x2) - Math.PI * 0.5;
fctx.beginPath();
fctx.arc(x1, y1, wireRadius, angle, Math.PI+angle);
fctx.arc(x2, y2, wireRadius, Math.PI+angle, angle);
fctx.fillStyle = "black";
fctx.fill();
// Draw front profile of toroid former:
fctx.lineWidth = outerRadius - innerRadius;
//fctx.strokeStyle = "#7F7F7F"; // rgb(100, 100, 100);
fctx.strokeStyle = toroid_colour; // rgb(100, 100, 100);
fctx.beginPath();
fctx.arc(front_originX, originY, 0.5 * (outerRadius + innerRadius), 0.0, 2.0 * Math.PI, false);
fctx.stroke();
fctx.lineWidth = 1.0;
// Draw side profile of toroid:
var side_originX = front_originX + outerRadius + 20;
fctx.fillStyle = "#7F7F7F"; // rgb(100, 100, 100);
fctx.fillRect(side_originX, originY - outerRadius, width, (outerRadius - innerRadius));
fctx.fillRect(side_originX, originY + innerRadius, width, (outerRadius - innerRadius));
//fctx.fillStyle = 'lightgrey';
fctx.fillStyle = toroid_colour; // rgb(100, 100, 100);
fctx.fillRect(side_originX, originY - innerRadius, width, (2 * innerRadius));
// Write width of cross-section of toroid (not including winding wire thickness):
fctx.font = "12px arial";
fctx.fillStyle = "black";
fctx.textAlign = "center";
fctx.fillText((controller.toroid.core.C).toFixed(1) + " mm", side_originX + 0.5*width, originY + outerRadius + 20);
fctx.fillText("(" + (controller.toroid.core.C*0.03937).toFixed(3) + "\")", side_originX + 0.5*width, originY + outerRadius + 34);
// Draw wire winding around top cross-section view:
fctx.strokeStyle = "black";
fctx.beginPath();
fctx.lineWidth = 2.0 * wireRadius;
fctx.moveTo(side_originX + 0.5*width, originY - outerRadius - wireRadius);
fctx.arcTo(side_originX + width + wireRadius, originY - outerRadius - wireRadius, side_originX + width + wireRadius, originY - outerRadius + 0.5*innerRadius, wireRadius);
fctx.arcTo(side_originX + width + wireRadius, originY - innerRadius + wireRadius, side_originX + 0.5*width, originY - innerRadius + wireRadius, wireRadius);
fctx.arcTo(side_originX - wireRadius, originY - innerRadius + wireRadius, side_originX - wireRadius, originY - outerRadius + 0.5*innerRadius, wireRadius);
fctx.arcTo(side_originX - wireRadius, originY - outerRadius - wireRadius, side_originX + 0.5*width, originY - outerRadius - wireRadius, wireRadius);
fctx.lineTo(side_originX + 0.5*width, originY - outerRadius - wireRadius);
fctx.stroke();
// Draw wire winding around bottom cross-section view:
fctx.beginPath();
fctx.lineWidth = 2.0 * wireRadius;
fctx.moveTo(side_originX + 0.5*width, originY + outerRadius + wireRadius);
fctx.arcTo(side_originX + width + wireRadius, originY + outerRadius + wireRadius, side_originX + width + wireRadius, originY + outerRadius - 0.5*innerRadius, wireRadius);
fctx.arcTo(side_originX + width + wireRadius, originY + innerRadius - wireRadius, side_originX + 0.5*width, originY + innerRadius - wireRadius, wireRadius);
fctx.arcTo(side_originX - wireRadius, originY + innerRadius - wireRadius, side_originX - wireRadius, originY + outerRadius - 0.5*innerRadius, wireRadius);
fctx.arcTo(side_originX - wireRadius, originY + outerRadius + wireRadius, side_originX + 0.5*width, originY + outerRadius + wireRadius, wireRadius);
fctx.lineTo(side_originX + 0.5*width, originY + outerRadius + wireRadius);
fctx.stroke();
// Draw horizontal wires across mid of cross-section view:
fctx.lineWidth = 1.0;
for(let i = 0; i < Math.floor(turns/2); i++) {
x1 = (side_originX - wireRadius);
y1 = originY + (innerRadius-wireRadius) * Math.sin((i/turns)* (2.0 * Math.PI) + 0.5*Math.PI + (1/turns) * Math.PI);
x2 = (side_originX + width + wireRadius);
y2 = y1;
angle = 0.5 * Math.PI;
fctx.beginPath();
fctx.arc(x1, y1, wireRadius, angle, Math.PI+angle);
fctx.arc(x2, y2, wireRadius, Math.PI+angle, angle);
fctx.fillStyle = "black";
fctx.fill();
}
// Draw the lead-in wires:
if(turns > 1) {
x1 = front_originX + (outerRadius + 20) * Math.cos(0.5 * Math.PI - 0.5 * theta);
y1 = originY + (outerRadius + 20) * Math.sin(0.5 * Math.PI - 0.5 * theta);
x2 = front_originX + (innerRadius - wireRadius) * Math.cos(0.5 * Math.PI - theta);
y2 = originY + (innerRadius - wireRadius) * Math.sin(0.5 * Math.PI - theta);
} else {
x1 = front_originX + (outerRadius + 20) * Math.cos(0.5 * Math.PI - 0.1 * theta);
y1 = originY + (outerRadius + 20) * Math.sin(0.5 * Math.PI - 0.1 * theta);
x2 = front_originX;
y2 = originY + (innerRadius - wireRadius);
}
angle = math.atan2(y1 - y2, x1 - x2) - Math.PI * 0.5;
fctx.beginPath();
fctx.arc(x1, y1, wireRadius, angle, Math.PI+angle);
fctx.arc(x2, y2, wireRadius, Math.PI+angle, angle);
fctx.fillStyle = "black";
fctx.fill();
// Now draw the rest of the wires:
for(let i = 0; i < (turns - 1); i++) {
x1 = front_originX + (outerRadius + wireRadius) * Math.cos((i/turns)* (2.0 * Math.PI) + 0.5*Math.PI + (1/turns) * Math.PI + Math.PI/turns);
y1 = originY + (outerRadius + wireRadius) * Math.sin((i/turns)* (2.0 * Math.PI) + 0.5*Math.PI + (1/turns) * Math.PI + Math.PI/turns);
x2 = front_originX + (innerRadius - wireRadius) * Math.cos((i/turns)* (2.0 * Math.PI) + 0.5*Math.PI + (1/turns) * Math.PI);
y2 = originY + (innerRadius - wireRadius) * Math.sin((i/turns)* (2.0 * Math.PI) + 0.5*Math.PI + (1/turns) * Math.PI);
angle = math.atan2(y1 - y2, x1 - x2) - Math.PI * 0.5;
fctx.beginPath();
fctx.arc(x1, y1, wireRadius, angle, Math.PI+angle);
fctx.arc(x2, y2, wireRadius, Math.PI+angle, angle);
fctx.fillStyle = "black";
fctx.fill();
}
// Draw the Dimensions:
var localx = front_originX - outerRadius - 10;
fctx.beginPath();
fctx.moveTo(localx + 10, originY - outerRadius);
fctx.lineTo(localx, originY - outerRadius);
fctx.moveTo(localx + 10, originY + outerRadius);
fctx.lineTo(localx, originY + outerRadius);
fctx.lineTo(localx, originY - outerRadius);
fctx.stroke();
fctx.font = "12px arial";
fctx.save();
fctx.translate(localx, originY);
fctx.rotate(-Math.PI * 0.5);
fctx.textAlign = "center";
fctx.fillText((controller.toroid.core.A).toFixed(1) + " mm", 0, -20);
fctx.fillText("(" + (controller.toroid.core.A*0.03937).toFixed(3) + "\")", 0, -6);
fctx.restore();
localx = front_originX + outerRadius + 20 + width + 15;
fctx.beginPath();
fctx.moveTo(localx - 5, originY - innerRadius);
fctx.lineTo(localx, originY - innerRadius);
fctx.lineTo(localx, originY + innerRadius);
fctx.lineTo(localx - 5, originY + innerRadius);
fctx.stroke();
fctx.save();
fctx.translate(localx, originY);
fctx.rotate(-Math.PI * 0.5);
fctx.textAlign = "center";
fctx.fillText((controller.toroid.core.B).toFixed(1) + " mm", 0, 12);
fctx.fillText("(" + (controller.toroid.core.B*0.03937).toFixed(3) + "\")", 0, 26);
fctx.restore();
}
function drawTransformer(fctx, originX, originY, outerRadius, innerRadius, wireRadius, turns) {
// Draw toroid former:
fctx.beginPath();
fctx.arc(originX, originY, outerRadius, 0.0, 2.0 * Math.PI, false);
fctx.stroke();
fctx.beginPath();
fctx.arc(originX, originY, innerRadius, 0.0, 2.0 * Math.PI, false);
fctx.stroke();
fctx.lineWidth = 1.0;
// Draw left-hand entry wire:
var x1 = originX - innerRadius + wireRadius;
var y1 = originY;
var x2 = originX - outerRadius - 100;
var y2 = originY;
var angle = math.atan2(y1 - y2, x1 - x2) - Math.PI * 0.5;
fctx.beginPath();
fctx.arc(x1, y1, wireRadius, angle, Math.PI+angle);
fctx.arc(x2, y2, wireRadius, Math.PI+angle, angle);
fctx.fillStyle = "black";
fctx.fill();
// Right-hand exit wire:
x1 = originX + outerRadius + wireRadius;
y1 = originY;
x2 = originX + outerRadius + 100;
y2 = originY;
angle = math.atan2(y1 - y2, x1 - x2) - Math.PI * 0.5;
fctx.beginPath();
fctx.arc(x1, y1, wireRadius, angle, Math.PI+angle);
fctx.arc(x2, y2, wireRadius, Math.PI+angle, angle);
fctx.fillStyle = "black";
fctx.fill();
// Draw cross-over wire:
let theta = Math.PI/8.0;
x1 = originX + (innerRadius - wireRadius) * Math.cos(Math.PI - theta);
y1 = originY + (innerRadius - wireRadius) * Math.sin(Math.PI - theta);
x2 = originX + (outerRadius + wireRadius) * Math.cos(- theta);
y2 = originY + (outerRadius + wireRadius) * Math.sin(- theta);
angle = math.atan2(y1 - y2, x1 - x2) - Math.PI * 0.5;
fctx.beginPath();
fctx.arc(x1, y1, wireRadius, angle, Math.PI+angle);
fctx.arc(x2, y2, wireRadius, Math.PI+angle, angle);
fctx.fillStyle = "black";
fctx.fill();
for(let i = 0; i < (turns-1); i++) {
x1 = originX + (innerRadius - wireRadius) * Math.cos((i/(turns-1.5)) * (Math.PI - theta));
y1 = originY + (innerRadius - wireRadius) * Math.sin((i/(turns-1.5)) * (Math.PI - theta));
x2 = originX + (outerRadius + wireRadius) * Math.cos(((i+0.5)/(turns-1.5)) * (Math.PI - theta));
y2 = originY + (outerRadius + wireRadius) * Math.sin(((i+0.5)/(turns-1.5)) * (Math.PI - theta));
angle = math.atan2(y1 - y2, x1 - x2) - Math.PI * 0.5;
fctx.beginPath();
fctx.arc(x1, y1, wireRadius, angle, Math.PI+angle);
fctx.arc(x2, y2, wireRadius, Math.PI+angle, angle);
fctx.fillStyle = "black";
fctx.fill();
}
for(let i = 0; i < (turns-2); i++) {
x1 = originX + (innerRadius - wireRadius) * Math.cos(((i+1.0)/(turns-1.5)) * (Math.PI - theta) + Math.PI);
y1 = originY + (innerRadius - wireRadius) * Math.sin(((i+1.0)/(turns-1.5)) * (Math.PI - theta) + Math.PI);
x2 = originX + (outerRadius + wireRadius) * Math.cos(((i+0.5)/(turns-1.5)) * (Math.PI - theta) + Math.PI);
y2 = originY + (outerRadius + wireRadius) * Math.sin(((i+0.5)/(turns-1.5)) * (Math.PI - theta) + Math.PI);
angle = math.atan2(y1 - y2, x1 - x2) - Math.PI * 0.5;
fctx.beginPath();
fctx.arc(x1, y1, wireRadius, angle, Math.PI+angle);
fctx.arc(x2, y2, wireRadius, Math.PI+angle, angle);
fctx.fillStyle = "black";
fctx.fill();
}
}
function drawBalun(fctx, originX, originY, outerRadius, innerRadius, wireRadius, turns) {
//
}
function drawDesign() {
const win_width = document.getElementById("inductor-container").clientWidth;
const win_height = document.getElementById("inductor-container").clientHeight;
afront_canvas.width = win_width-12;
afront_canvas.height = win_height-12;
fctx.clearRect(0, 0, win_width, win_height);
const outer_radius = 0.15 * win_height;
var cond_radius = outer_radius * controller.toroid.cond_diameter_meters * 1e3 / controller.toroid.core.A;
const loopx = win_width/2;
const loopy = win_height/2;
const loop_diameter_mm = controller.toroid.core.A;
const cond_diameter_mm = controller.toroid.cond_diameter_meters * 1000.0;
const loop_diameter_inches = loop_diameter_mm / 25.4;
const cond_diameter_inches = cond_diameter_mm / 25.4;
let inner_radius = outer_radius * controller.toroid.core.B / controller.toroid.core.A;
let thickness = 2.0 * outer_radius * controller.toroid.core.C / controller.toroid.core.A;
drawInductor(fctx, loopx, loopy, outer_radius, inner_radius, cond_radius, controller.toroid.N, thickness, controller.toroid.mat.color);
//drawTransformer(fctx, loopx, loopy, outer_radius, inner_radius, cond_radius, toroid.N);
const y_offset = loopy + outer_radius + 20;
var arrow_size = 10.0;
// Draw inner-diameter arrows: (for using a winding former)
const inner_dia_y = loopy + outer_radius + 40;
// Draw outer-diameter arrows: (for using a winding former)
const outer_dia_y = loopy + outer_radius + 0;
// Write loop inductance:
fctx.font = "12px arial";
fctx.textAlign = "left";
const L = controller.toroid.L * 1.0e+6;
fctx.fillText("L\u1d62 = " + L.toFixed(0).toString() + " \u03bcH", 8, 18);
fctx.fillText("Rdc = " + controller.toroid.Rdc.toFixed(3) + " \u03A9", 8, 32);
fctx.fillText("Vrms = " + controller.toroid.Vrms.toFixed(2) + " V", 8, 46);
//fctx.fillStyle = "lightgrey";
//fctx.fillText("Ceff = " + (toroid.C*1e12).toFixed(1) + " pF", 8, win_height - 28);
//fctx.fillText("SRF = " + (toroid.SRF*1e-6).toFixed(2) + " MHz", 8, win_height - 14);
fctx.fillStyle = "lightgrey";
//fctx.fillStyle = "grey";
fctx.fillText("Ceff \u2248 " + (controller.toroid.C*1e12).toFixed(1) + " pF", 8, win_height - 28);
fctx.fillText("SRF \u2248 " + (controller.toroid.SRF*1e-6).toFixed(2) + " MHz", 8, win_height - 14);
//fctx.fillText("SRF = " + (getSRF()*1e-6).toFixed(1) + " MHz", 8, win_height - 14);
fctx.fillStyle = "black";
fctx.textAlign = "center";
fctx.font = "bold 16px courier";
fctx.fillText((40-conductor_diameter_slider.value).toString() + " AWG", loopx, 20);
//fctx.fillText("N = " + controller.toroid.N.toString() + " : Nd = " + (loop_turns_slider.value*100).toFixed(0) + "%", loopx, win_height - 28);
//fctx.fillText("Nd = " + (loop_turns_slider.value*100).toFixed(0) + "% : N = " + controller.toroid.N.toString(), loopx, win_height - 28);
fctx.fillText("N = " + controller.toroid.N.toString(), loopx, win_height - 28);
fctx.font = "12px arial";
fctx.fillText("wire = " + (controller.toroid.cond_length_meters*100.0).toFixed(1)+ " cm (" + (3.2808399*controller.toroid.cond_length_meters).toFixed(2)+ "\')", loopx, win_height - 14);
//fctx.fillText("(" + (3.2808399*toroid.cond_length_meters).toFixed(2)+ "\')", loopx, win_height - 14);
fctx.fillText("\u2300 = " + (1e3 * controller.toroid.cond_diameter_meters).toFixed(3) + " mm" , loopx, 34);
fctx.fillText("(" + (39.37007874 * controller.toroid.cond_diameter_meters).toFixed(3) + "\")", loopx, 48);
// Top right text:
fctx.textAlign = "right";
var datasheet = controller.toroid.getMaterialDataStrings();
var max_width = 0;
datasheet.forEach((element, index) => {
let text = fctx.measureText(element[0] + ": " + element[1]);
if(text.width > max_width) {
max_width = text.width;
}
});
datasheet.forEach((element, index) => {
fctx.textAlign = "left";
fctx.fillText(element[0] + ": ", win_width-18-max_width, 18+(index*14));
fctx.textAlign = "right";
fctx.fillText(element[1], win_width-18, 18+(index*14));
});
}
function getMetricPrefix(num) {
if(num >= 1e9) return {val: num*1e-9, pfx:'G'};
if(num >= 1e6) return {val: num*1e-6, pfx:'M'};
if(num >= 1e3) return {val: num*1e-3, pfx:'k'};
if(num < 1e-12) return {val: num*1e15, pfx:'f'};
if(num < 1e-9) return {val: num*1e12, pfx:'p'};
if(num < 1e-6) return {val: num*1e9, pfx:'n'};
if(num < 1e-3) return {val: num*1e6, pfx:'\u03bc'};
if(num < 1.0) return {val: num*1e3, pfx:'m'};
return {val:num, pfx:' '};
}
setMode();
controller.recalculate();
controller.updateChart();
</script>
</body>
</html>