Porównaj commity

...

3 Commity

Autor SHA1 Wiadomość Data
miguel d820ee882b Update transformer.html 2023-05-26 13:17:00 +10:00
miguel 6c9d08dacf Make Zl exponential 2023-05-26 08:26:58 +10:00
miguel db982dfddc Update Notes section. 2023-05-26 08:22:56 +10:00
1 zmienionych plików z 17 dodań i 18 usunięć

Wyświetl plik

@ -39,11 +39,11 @@
</div> </div>
<div class="sliders"> <div class="sliders">
<label for="primary_turns_slider">Np:</label> <label for="primary_turns_slider">Np:</label>
<input type="range" id="primary_turns_slider" min="0.0" max="1.0" value="0.15" step="0.005"> <input type="range" id="primary_turns_slider" min="0.0" max="1.0" value="0.020" step="0.005">
</div> </div>
<div class="sliders"> <div class="sliders">
<label for="secondary_turns_slider">Ns:</label> <label for="secondary_turns_slider">Ns:</label>
<input type="range" id="secondary_turns_slider" min="0.0" max="1.0" value="0.15" step="0.005"> <input type="range" id="secondary_turns_slider" min="0.0" max="1.0" value="0.20" step="0.005">
</div> </div>
<div class="sliders"> <div class="sliders">
<label for="power_slider">P:</label> <label for="power_slider">P:</label>
@ -51,7 +51,7 @@
</div> </div>
<div class="sliders"> <div class="sliders">
<label for="load_impedance_slider">Zl:</label> <label for="load_impedance_slider">Zl:</label>
<input type="range" id="load_impedance_slider" min="5.0" max="5000.0" value="50.0" step="5.0"> <input type="range" id="load_impedance_slider" min="0.0" max="3.0" value="1.0" step="0.05">
</div> </div>
</div> </div>
<div id="notes" class="notes"> <div id="notes" class="notes">
@ -60,24 +60,22 @@
<b><u>Notes:</u></b><br> <b><u>Notes:</u></b><br>
The VK3CPU RF Transformer Calculator was developed to help users predict the RF characteristics of a ferrite toroid wound as a transformer. The VK3CPU RF Transformer Calculator was developed to help users predict the RF characteristics of a ferrite toroid wound as a transformer.
It uses the manufacturer's (Fair-Rite) published data including the toroid's dimensions and complex permeability characteristics It uses the manufacturer's (Fair-Rite) published data including the toroid's dimensions and complex permeability characteristics
to predict the component's characteristics.<br> to predict the transformer's characteristics.<br>
The calculator has 3 separate display areas. At the top is the chart display for showing frequency-dependent characteristics. Next is the The calculator has 3 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 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> section, where the user can select the wire size, toroid material, toroid size, number of primary and secondary windings, input power and load impedance.<br><br>
<b><u>Inputs via the select widgets:</u></b> <b><u>Inputs via the select widgets:</u></b>
<ul> <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>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.) <li>Material : Manufacturers material mix code. Select this first. Initial permeability [&#956;i] is displayed in square brackets. (Pick lower &#956;i for higher frequency applications.) </li>
Suppressor mode displays effective suppression frequency range in square brackets.</li>
</ul> </ul>
<b><u>Inputs via the slider widgets:</u></b> <b><u>Inputs via the slider widgets:</u></b>
<ul> <ul>
<li>AWG : Select the wire gauge. Sliding L-R changes AWG from 40-0. (Defaults to 20 AWG)</li> <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. <li>Np : Number of turns for the primary Winding. (Defaults to 20 turns.)</li>
Maximum (100%, slider to hard-right) is reached when the turns are adjacent at the toroid's inner radius. (Defaults to 15%)</li> <li>Ns : Number of turns for the secondary Winding. (Defaults to 20 turns.) </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>P : The input power in watts. (Defaults to 100 W)</li>
<li>f : Shifts the frequency of interest of the chart display from left-to-right. Left towards kHz, right towards GHz. </li> <li>Zl : Load impedance in ohms. (Defaults to 50 ohms.) </li>
</ul> </ul>
<i>Note: Manufacturers recommend keeping the number of turns (N) to a minimum.</i><br><br> <i>Note: Manufacturers recommend keeping the number of turns (N) to a minimum.</i><br><br>
<b><u>Chart display:</u></b> <b><u>Chart display:</u></b>
@ -730,7 +728,7 @@
//const Ls = mu[0] * 4.0 * Math.PI * this.Np**2 / this.core.CC; //const Ls = mu[0] * 4.0 * Math.PI * this.Np**2 / this.core.CC;
const Xp = (Rs**2 + Xs**2) / Xs; // Get parallel equivalent reactance const Xp = (Rs**2 + Xs**2) / Xs; // Get parallel equivalent reactance
const Rp = (Rs**2 + Xs**2) / Rs; // Get parallel equivalent resistance const Rp = (Rs**2 + Xs**2) / Rs; // Get parallel equivalent resistance
const Cd = 1e-10 + (0.9 + (78.1/this.Np**2))*1e-12; const Cd = (0.9 + (78.1/this.Np**2))*1e-12;
const Rl = this.Zl*(this.Np/this.Ns)**2; // Load impedance reflected to primary side in ohms const Rl = this.Zl*(this.Np/this.Ns)**2; // Load impedance reflected to primary side in ohms
const w = 2 * Math.PI * frequency; const w = 2 * Math.PI * frequency;
@ -807,7 +805,7 @@
this.Pin = 10.0 ** power_slider.value; this.Pin = 10.0 ** power_slider.value;
this.Z0 = 50.0; this.Z0 = 50.0;
this.Vrms = Math.sqrt(this.Pin * this.Z0); this.Vrms = Math.sqrt(this.Pin * this.Z0);
this.Zl = 1.0 * load_impedance_slider.value; this.Zl = 5.0 * 10.0**load_impedance_slider.value;
// Frequency independent characteristics: // 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_max = Math.PI / (Math.atan2(0.5e3 * this.cond_diameter_meters, (0.5 * this.core.B - 0.5e3 * this.cond_diameter_meters)));
@ -2698,7 +2696,8 @@
function drawTransformer(fctx, originX, originY, outerRadius, innerRadius, wireRadius, pturns, sturns, width, toroid_colour) { function drawTransformer(fctx, originX, originY, outerRadius, innerRadius, wireRadius, pturns, sturns, width, toroid_colour) {
let theta = Math.atan2((2*wireRadius), innerRadius - wireRadius); let theta = Math.atan2((2*wireRadius), innerRadius - wireRadius);
var front_originX = originX - 0.5*(1*outerRadius + 20 + width) - 10; //var front_originX = originX - 0.5*(1*outerRadius + 20 + width) - 10;
var front_originX = originX;
originY -= 12; originY -= 12;
// Draw front profile of toroid former: // Draw front profile of toroid former:
@ -2711,7 +2710,7 @@
fctx.lineWidth = 1.0; fctx.lineWidth = 1.0;
// Draw side profile of toroid: // Draw side profile of toroid:
var side_originX = front_originX + outerRadius + 20; var side_originX = front_originX + outerRadius + 10;
fctx.fillStyle = "#6F6F6F"; // rgb(100, 100, 100); fctx.fillStyle = "#6F6F6F"; // rgb(100, 100, 100);
fctx.fillRect(side_originX, originY - outerRadius, width, (outerRadius - innerRadius)); fctx.fillRect(side_originX, originY - outerRadius, width, (outerRadius - innerRadius));
fctx.fillRect(side_originX, originY + innerRadius, width, (outerRadius - innerRadius)); fctx.fillRect(side_originX, originY + innerRadius, width, (outerRadius - innerRadius));
@ -2800,7 +2799,7 @@
// Draw the Dimensions: // Draw the Dimensions:
fctx.strokeStyle = "black"; fctx.strokeStyle = "black";
fctx.lineWidth = 1; fctx.lineWidth = 1;
var localx = front_originX - outerRadius - 10; var localx = front_originX - outerRadius - 20;
fctx.beginPath(); fctx.beginPath();
fctx.moveTo(localx + 10, originY - outerRadius); fctx.moveTo(localx + 10, originY - outerRadius);
fctx.lineTo(localx, originY - outerRadius); fctx.lineTo(localx, originY - outerRadius);
@ -2819,7 +2818,7 @@
fctx.fillText("(" + (controller.toroid.core.A*0.03937).toFixed(3) + "\")", 0, -6); fctx.fillText("(" + (controller.toroid.core.A*0.03937).toFixed(3) + "\")", 0, -6);
fctx.restore(); fctx.restore();
localx = front_originX + outerRadius + 20 + width + 15; localx = front_originX + outerRadius + 10 + width + 15;
fctx.beginPath(); fctx.beginPath();
fctx.moveTo(localx - 5, originY - innerRadius); fctx.moveTo(localx - 5, originY - innerRadius);
fctx.lineTo(localx, originY - innerRadius); fctx.lineTo(localx, originY - innerRadius);