diff options
Diffstat (limited to 'resistor_values.py')
| -rwxr-xr-x | resistor_values.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/resistor_values.py b/resistor_values.py new file mode 100755 index 0000000..701b969 --- /dev/null +++ b/resistor_values.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 +from math import log10 + +c = 33e-9 + +F = [220.00, 233.08, 246.94, 261.63, 277.18, 293.66, 311.13, 329.63, 349.23, + 369.99, 392.00, 415.30, 440.00, 466.16, 493.88, 523.25, 554.37, 587.33, + 622.25, 659.25] +F = F[::-1] + +r5scale = [10, 11, 12, 13, 15, 16, 18, 20, 22, 24, 27, 30, 33, 36, 39, 43, 47, + 51, 56, 62, 68, 75, 82, 91, 100] +# f = 1/(1.4 * r * c) + +R = list() +for f in F: + r = 1/(1.4 * f * c) + R.append(r) + + +def get_closest_val(r, r5scale): + scale = int(log10(r)) - 1 + opts = [(10**scale * rs) for rs in r5scale] + err_val = [(opt/r, opt) for opt in opts] + err_val = sorted(err_val, key=lambda a: abs(a[0] - 1)) + return err_val[0][1], err_val[0][0] + +Rd = [b-a for a, b in zip(R, R[1:])] +Rideal = R[0:1] + Rd[1:] + +Rreal = [32700] # 30000 + 2700 = 32700 ~= 32832 +Rerr = list() +rp_real = R[0] +for r in R[1:]: + rd = r - rp_real + rd,err = get_closest_val(rd, r5scale) + Rreal.append(rd) + Rerr.append(err) + rp_real += rd + +print(Rerr) +print(Rreal) + |
