diff --git a/magloop.html b/magloop.html index 2e9bb17..24c096f 100644 --- a/magloop.html +++ b/magloop.html @@ -260,57 +260,77 @@ return retval; } + function capacitorVoltage(frequency) { + const Vcap = Math.sqrt(transmit_power_slider.value * inductiveReactance(frequency) * qualityFactor(frequency)); + return Vcap; + } + + function calculateCapacitorVoltage() { + var retval = []; + frequencies.forEach(freq => { + const Vcap = capacitorVoltage(freq); + retval.push({x:freq, y:Vcap}); + }); + return retval; + } + loop_diameter_slider.oninput = function() { loop_diameter_value.innerHTML = this.value; updateFrequencies(); - myChart.data.datasets[0].data = calculateRadiationResistance(); - myChart.data.datasets[1].data = calculateInductiveReactance(); - myChart.data.datasets[2].data = calculateTuningCapacitor(); - myChart.data.datasets[3].data = calculateLossResistance(); - myChart.data.datasets[4].data = calculateEfficiencyFactor(); - myChart.data.datasets[5].data = calculateQualityFactor(); - myChart.data.datasets[6].data = calculateBandwidth(); + myChart.data.datasets[0].data = calculateTuningCapacitor(); + myChart.data.datasets[1].data = calculateBandwidth(); + myChart.data.datasets[2].data = calculateEfficiencyFactor(); + myChart.data.datasets[3].data = calculateRadiationResistance(); + myChart.data.datasets[4].data = calculateInductiveReactance(); + myChart.data.datasets[5].data = calculateLossResistance(); + myChart.data.datasets[6].data = calculateQualityFactor(); + myChart.data.datasets[7].data = calculateCapacitorVoltage(); myChart.update(); } conductor_diameter_slider.oninput = function() { conductor_diameter_value.innerHTML = this.value; - myChart.data.datasets[0].data = calculateRadiationResistance(); - myChart.data.datasets[1].data = calculateInductiveReactance(); - // myChart.data.datasets[2].data = calculateTuningCapacitor(); - myChart.data.datasets[3].data = calculateLossResistance(); - myChart.data.datasets[4].data = calculateEfficiencyFactor(); - myChart.data.datasets[5].data = calculateQualityFactor(); - myChart.data.datasets[6].data = calculateBandwidth(); + myChart.data.datasets[0].data = calculateTuningCapacitor(); + myChart.data.datasets[1].data = calculateBandwidth(); + myChart.data.datasets[2].data = calculateEfficiencyFactor(); + myChart.data.datasets[3].data = calculateRadiationResistance(); + myChart.data.datasets[4].data = calculateInductiveReactance(); + myChart.data.datasets[5].data = calculateLossResistance(); + myChart.data.datasets[6].data = calculateQualityFactor(); + myChart.data.datasets[7].data = calculateCapacitorVoltage(); myChart.update(); } loop_turns_slider.oninput = function() { loop_turns_value.innerHTML = this.value; - myChart.data.datasets[0].data = calculateRadiationResistance(); - myChart.data.datasets[1].data = calculateInductiveReactance(); - myChart.data.datasets[2].data = calculateTuningCapacitor(); - myChart.data.datasets[3].data = calculateLossResistance(); - myChart.data.datasets[4].data = calculateEfficiencyFactor(); - myChart.data.datasets[5].data = calculateQualityFactor(); - myChart.data.datasets[6].data = calculateBandwidth(); + myChart.data.datasets[0].data = calculateTuningCapacitor(); + myChart.data.datasets[1].data = calculateBandwidth(); + myChart.data.datasets[2].data = calculateEfficiencyFactor(); + myChart.data.datasets[3].data = calculateRadiationResistance(); + myChart.data.datasets[4].data = calculateInductiveReactance(); + myChart.data.datasets[5].data = calculateLossResistance(); + myChart.data.datasets[6].data = calculateQualityFactor(); + myChart.data.datasets[7].data = calculateCapacitorVoltage(); myChart.update(); } loop_spacing_slider.oninput = function() { loop_spacing_value.innerHTML = loop_spacing_slider.value; - myChart.data.datasets[0].data = calculateRadiationResistance(); - myChart.data.datasets[1].data = calculateInductiveReactance(); - myChart.data.datasets[2].data = calculateTuningCapacitor(); - myChart.data.datasets[3].data = calculateLossResistance(); - myChart.data.datasets[4].data = calculateEfficiencyFactor(); - myChart.data.datasets[5].data = calculateQualityFactor(); - myChart.data.datasets[6].data = calculateBandwidth(); + myChart.data.datasets[0].data = calculateTuningCapacitor(); + myChart.data.datasets[1].data = calculateBandwidth(); + myChart.data.datasets[2].data = calculateEfficiencyFactor(); + myChart.data.datasets[3].data = calculateRadiationResistance(); + myChart.data.datasets[4].data = calculateInductiveReactance(); + myChart.data.datasets[5].data = calculateLossResistance(); + myChart.data.datasets[6].data = calculateQualityFactor(); + myChart.data.datasets[7].data = calculateCapacitorVoltage(); myChart.update(); } transmit_power_slider.oninput = function() { transmit_power_value.innerHTML = this.value; + myChart.data.datasets[7].data = calculateCapacitorVoltage(); + myChart.update(); } heightAboveGround_slider.oninput = function() { @@ -386,6 +406,15 @@ data: calculateQualityFactor(), borderWidth: 1, yAxisID: 'qID' + }, + { + label: 'V cap', + fill: false, + borderColor: 'rgb(150, 150, 0)', + backgroundColor: 'rgb(150, 150, 0)', + data: calculateCapacitorVoltage(), + borderWidth: 1, + yAxisID: 'vID' }] }, options: { @@ -465,6 +494,17 @@ }, position: 'right', id: 'qID' + },{ + type: 'linear', + display: true, + scaleLabel: { + display: true, + labelString: 'Volts', + fontColor: 'rgb(150, 150, 0)', + fontStyle: 'bold' + }, + position: 'right', + id: 'vID' }] }, showLines: true