User Tools

Site Tools


workshop:tools

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
workshop:tools [2021/02/03 14:21] – external edit 127.0.0.1workshop:tools [2024/01/12 08:33] (current) yent
Line 1: Line 1:
 +====== Online calculation tools ======
  
 +<html>
 +<script type="text/javascript">
 +function onlinetool_create_calculator(id) {
 +  var c = {
 +    fields: {},
 +    processors: {},
 +    get: function(name) {
 +      if(!(name in this.fields)) return null;
 +      var v = parseFloat(this.fields[name].val());
 +      return isNaN(v) ? null : v;
 +    },
 +    set: function(name, value) {
 +      if(!(name in this.fields)) return;
 +      this.fields[name].val(value);
 +    },
 +    dataOk: function(ignore) {
 +      if(!ignore) ignore = /^$/;
 +      for(var n in this.fields) if(!n.match(ignore)) if(this.get(n) == null) return false;
 +      return true;
 +    },
 +    addTrigger: function(name, processor) {
 +      if(!(name in this.fields)) return this;
 +      this.processors[name] = processor;
 +      this.fields[name].change(function() {
 +        var i = jQuery(this);
 +        var c = i.data('calculator');
 +        c.processors[i.attr('name')].call(c);
 +      });
 +      return this;
 +    }
 +  };
 +  jQuery('#' + id+ ' td').each(function(i) {
 +    if(i%4 == 2) jQuery(this).css('padding-left', '30px');
 +  });
 +  jQuery('#' + id + ' td input').each(function() {
 +    var i = jQuery(this);
 +    i.data('calculator', c);
 +    c.fields[i.attr('name')] = i;
 +  });
 +  return c;
 +}
 +</script></html>
 +
 +===== Tracks and wires =====
 +
 +==== Track calculator ====
 +<html>
 +<script type="text/javascript">
 +  document.addEventListener("DOMContentLoaded", function(event) {
 +    onlinetool_create_calculator('track_calculator').addTrigger('width', function() {
 +      if(this.dataOk(/current/)) this.set('current', (9.868 * Math.pow(this.get('temperature_rise'), 0.44) * Math.pow(this.get('width') * this.get('thickness') / 1000, 0.725)).toFixed(3));
 +    }).addTrigger('current', function() {
 +      if(this.dataOk(/width/)) this.set('width', (1000 * Math.pow(this.get('current') / (9.868 * Math.pow(this.get('temperature_rise'), 0.44)), 1 / 0.725) / this.get('thickness')).toFixed(3));
 +    });
 +  });
 +</script>
 +<table id="track_calculator">
 +  <tr><td>Current</td><td><input type="text" name="current" /> A</td><td>Temperature rise</td><td><input type="text" name="temperature_rise" value="1" /> °C</td></tr>
 +  <tr><td>Width</td><td><input type="text" name="width" /> mm</td><td>Thickness</td><td><input type="text" name="thickness" value="35" /> µm</td></tr>
 +</table>
 +</html>
 +
 +
 +==== Wire gauge calculator ====
 +<html>
 +<script type="text/javascript">
 +  document.addEventListener("DOMContentLoaded", function(event) {
 +    onlinetool_create_calculator('wire_calculator').addTrigger('area', function() {
 +      if(this.dataOk(/current/)) this.set('current', (9.868 * Math.pow(this.get('temperature_rise'), 0.44) * Math.pow(this.get('area'), 0.725)).toFixed(3));
 +    }).addTrigger('current', function() {
 +      if(this.dataOk(/area/)) this.set('area', Math.pow(this.get('current') / (9.868 * Math.pow(this.get('temperature_rise'), 0.44)), 1 / 0.725).toFixed(3));
 +    });
 +  });
 +</script>
 +<table id="wire_calculator">
 +  <tr><td>Current</td><td><input type="text" name="current" /> A</td><td>Temperature rise</td><td><input type="text" name="temperature_rise" value="1" /> °C</td></tr>
 +  <tr><td>Area</td><td><input type="text" name="area" /> mm²</td><td>&nbsp;</td><td>&nbsp;</td></tr>
 +</table>
 +</html>
 +
 +==== Conductor resistivity ====
 +
 +<m>R = rho * l / A</m>, where A is in m² and l in m
 +
 +For copper <m>rho = 16.8e-9 ohm.m</m>.
 +
 +<html>
 +<script type="text/javascript">
 +  document.addEventListener("DOMContentLoaded", function(event) {
 +    onlinetool_create_calculator('conductor_resistivity_calculator').addTrigger('length', function() {
 +      if(this.dataOk(/resistance/)) this.set('resistance', (this.get('rho') * this.get('length') / (this.get('area') / 1000000)).toFixed(6));
 +    }).addTrigger('resistance', function() {
 +      if(this.dataOk(/area/)) this.set('area', (1000000 * this.get('rho') * this.get('length') / this.get('resistance')).toFixed(6));
 +    }).addTrigger('area', function() {
 +      if(this.dataOk(/length/)) this.set('length', (this.get('resistance') * (this.get('area') / 1000000) / this.get('rho')).toFixed(6));
 +    });
 +  });
 +</script>
 +<table id="conductor_resistivity_calculator">
 +  <tr><td>Area</td><td><input type="text" name="area" /> mm²</td><td>ρ</td><td><input type="text" name="rho" value="16.8e-9" /> ohm.m</td></tr>
 +  <tr><td>Length</td><td><input type="text" name="length" /> m</td><td>Resistance</td><td><input type="text" name="resistance" value="" /> Ω</td></tr>
 +</table>
 +</html>
 +
 +==== AWG table ====
 +
 +^  AWG gauge  ^  Conductor Diameter mm  ^  Ohms per km  ^  Maximum amps for chassis wiring  ^  Maximum amps for power transmission  ^  Maximum frequency for 100% skin depth for solid conductor copper  ^
 +| OOOO | 11.684 | 0.16072  | 380  | 302  | 125 Hz |
 +| OOO | 10.40384 | 0.202704  | 328  | 239  | 160 Hz |
 +| OO | 9.26592 | 0.255512  | 283  | 190  | 200 Hz |
 +| 0 | 8.25246 | 0.322424  | 245  | 150  | 250 Hz |
 +| 1 | 7.34822 | 0.406392  | 211  | 119  | 325 Hz |
 +| 2 | 6.54304 | 0.512664  | 181  | 94  | 410 Hz |
 +| 3 | 5.82676 | 0.64616  | 158  | 75  | 500 Hz |
 +| 4 | 5.18922 | 0.81508  | 135  | 60  | 650 Hz |
 +| 5 | 4.62026 | 1.027624  | 118  | 47  | 810 Hz |
 +| 6 | 4.1148 | 1.295928  | 101  | 37  | 1100 Hz |
 +| 7 | 3.66522 | 1.634096  | 89  | 30  | 1300 Hz |
 +| 8 | 3.2639 | 2.060496  | 73  | 24  | 1650 Hz |
 +| 9 | 2.90576 | 2.598088  | 64  | 19  | 2050 Hz |
 +| 10 | 2.58826 | 3.276392  | 55  | 15  | 2600 Hz |
 +| 11 | 2.30378 | 4.1328  | 47  | 12  | 3200 Hz |
 +| 12 | 2.05232 | 5.20864  | 41  | 9.3  | 4150 Hz |
 +| 13 | 1.8288 | 6.56984  | 35  | 7.4  | 5300 Hz |
 +| 14 | 1.62814 | 8.282  | 32  | 5.9  | 6700 Hz |
 +| 15 | 1.45034 | 10.44352  | 28  | 4.7  | 8250 Hz |
 +| 16 | 1.29032 | 13.17248  | 22  | 3.7  | 11 k Hz |
 +| 17 | 1.15062 | 16.60992  | 19  | 2.9  | 13 k Hz |
 +| 18 | 1.02362 | 20.9428  | 16  | 2.3  | 17 kHz |
 +| 19 | 0.91186 | 26.40728  | 14  | 1.8  | 21 kHz |
 +| 20 | 0.8128 | 33.292  | 11  | 1.5  | 27 kHz |
 +| 21 | 0.7239 | 41.984  | 9  | 1.2  | 33 kHz |
 +| 22 | 0.64516 | 52.9392  | 7  | 0.92  | 42 kHz |
 +| 23 | 0.57404 | 66.7808  | 4.7  | 0.729  | 53 kHz |
 +| 24 | 0.51054 | 84.1976  | 3.5  | 0.577  | 68 kHz |
 +| 25 | 0.45466 | 106.1736  | 2.7  | 0.457  | 85 kHz |
 +| 26 | 0.40386 | 133.8568  | 2.2  | 0.361  | 107 kH |
 +| 27 | 0.36068 | 168.8216  | 1.7  | 0.288  | 130 kHz |
 +| 28 | 0.32004 | 212.872  | 1.4  | 0.226  | 170 kHz |
 +| 29 | 0.28702 | 268.4024  | 1.2  | 0.182  | 210 kHz |
 +| 30 | 0.254 | 338.496  | 0.86  | 0.142  | 270 kHz |
 +| 31 | 0.22606 | 426.728  | 0.7  | 0.113  | 340 kHz |
 +| 32 | 0.2032 | 538.248  | 0.53  | 0.091  | 430 kHz |
 +| 33 | 0.18034 | 678.632  | 0.43  | 0.072  | 540 kHz |
 +| 34 | 0.16002 | 855.752  | 0.33  | 0.056  | 690 kHz |
 +| 35 | 0.14224 | 1079.12  | 0.27  | 0.044  | 870 kHz |
 +| 36 | 0.127 | 1360  | 0.21  | 0.035  | 1100 kHz |
 +| 37 | 0.1143 | 1715  | 0.17  | 0.0289  | 1350 kHz |
 +| 38 | 0.1016 | 2163  | 0.13  | 0.0228  | 1750 kHz |
 +| 39 | 0.0889 | 2728  | 0.11  | 0.0175  | 2250 kHz |
 +| 40 | 0.07874 | 3440  | 0.09  | 0.0137  | 2900 kHz |
 +
 +
 +===== Fuse calculation =====
 +
 +==== Preece formula ====
 +
 +<m>I = A * d^1.5</m>, where d is in mm. For copper A = 80, for aluminium A = 59.3
 +
 +==== Onderdonk formula ====
 +
 +<m>I = A * sqrt{{log{{T_m-T_a}/{234-T_a}}}/{8.48e-6 * t}}</m>, where A is in mm², t in seconds, and Tm/Ta in °C. For copper Tm = 1083°C. Usually we take Ta = 25°C.
 +
 +In short for copper@25°C : <m>I = A * {303.75 / sqrt{t}}</m>