diff --git a/pc/data/20110106/hallloop01.txt b/pc/data/20110106/hallloop01.txt new file mode 100644 index 0000000..4e025cb --- /dev/null +++ b/pc/data/20110106/hallloop01.txt @@ -0,0 +1,21 @@ +# keithley N (turn) V(measured) +# (A) (turn) Volt +0.001, 50, 0.0112 +0.002, 50, 0.0239 +0.003, 50, 0.0367 +0.004, 50, 0.0495 +0.005, 50, 0.0622 +0.006, 50, 0.0748 +0.007, 50, 0.0877 +0.008, 50, 0.1005 +0.009, 50, 0.1132 +0.01, 50, 0.126 +0.02, 50, 0.254 +0.03, 50, 0.382 +0.04, 50, 0.509 +0.05, 50, 0.637 +0.06, 50, 0.762 +0.07, 50, 0.868 +0.08, 50, 0.933 +0.09, 50, 0.969 +0.10, 50, 0.989 diff --git a/pc/data/20110106/hallloop02.txt b/pc/data/20110106/hallloop02.txt new file mode 100644 index 0000000..c17f8ee --- /dev/null +++ b/pc/data/20110106/hallloop02.txt @@ -0,0 +1,12 @@ +# keithley N (turn) V(measured) +# (A) (turn) Volt +0.1, 1, 0.0237 +0.2, 1, 0.0487 +0.3, 1, 0.0737 +0.4, 1, 0.0989 +0.5, 1, 0.1239 +0.6, 1, 0.1490 +0.7, 1, 0.1740 +0.8, 1, 0.1990 +0.9, 1, 0.2242 +1.0, 1, 0.2492 diff --git a/pc/data/20110106/hist.dat b/pc/data/20110106/hist.dat new file mode 100644 index 0000000..c824b4d --- /dev/null +++ b/pc/data/20110106/hist.dat @@ -0,0 +1,61 @@ + -1.50000000e+01 7.00000000e+02 + -1.45000000e+01 1.15000000e+02 + -1.40000000e+01 1.97000000e+02 + -1.35000000e+01 4.71000000e+02 + -1.30000000e+01 7.90000000e+02 + -1.25000000e+01 4.40000000e+02 + -1.20000000e+01 6.45000000e+02 + -1.15000000e+01 8.67000000e+02 + -1.10000000e+01 1.94000000e+03 + -1.05000000e+01 2.67300000e+03 + -1.00000000e+01 1.37900000e+03 + -9.50000000e+00 2.15900000e+03 + -9.00000000e+00 2.42800000e+03 + -8.50000000e+00 4.02200000e+03 + -8.00000000e+00 4.82600000e+03 + -7.50000000e+00 3.69500000e+03 + -7.00000000e+00 3.55800000e+03 + -6.50000000e+00 7.81100000e+03 + -6.00000000e+00 8.20900000e+03 + -5.50000000e+00 7.61200000e+03 + -5.00000000e+00 6.88400000e+03 + -4.50000000e+00 8.11600000e+03 + -4.00000000e+00 7.71300000e+03 + -3.50000000e+00 1.19900000e+04 + -3.00000000e+00 7.13100000e+03 + -2.50000000e+00 7.67200000e+03 + -2.00000000e+00 9.49200000e+03 + -1.50000000e+00 1.15940000e+04 + -1.00000000e+00 1.33020000e+04 + -5.00000000e-01 8.31300000e+03 + 0.00000000e+00 1.27100000e+04 + 5.00000000e-01 7.98500000e+03 + 1.00000000e+00 1.05530000e+04 + 1.50000000e+00 1.09650000e+04 + 2.00000000e+00 7.77200000e+03 + 2.50000000e+00 7.23500000e+03 + 3.00000000e+00 9.37100000e+03 + 3.50000000e+00 1.03880000e+04 + 4.00000000e+00 7.47900000e+03 + 4.50000000e+00 6.95300000e+03 + 5.00000000e+00 6.12400000e+03 + 5.50000000e+00 4.63200000e+03 + 6.00000000e+00 7.51100000e+03 + 6.50000000e+00 3.03800000e+03 + 7.00000000e+00 3.59400000e+03 + 7.50000000e+00 5.45000000e+03 + 8.00000000e+00 4.11300000e+03 + 8.50000000e+00 5.16000000e+03 + 9.00000000e+00 1.89300000e+03 + 9.50000000e+00 2.76500000e+03 + 1.00000000e+01 1.36500000e+03 + 1.05000000e+01 1.59100000e+03 + 1.10000000e+01 2.10300000e+03 + 1.15000000e+01 7.68000000e+02 + 1.20000000e+01 1.51500000e+03 + 1.25000000e+01 2.07300000e+03 + 1.30000000e+01 1.45600000e+03 + 1.35000000e+01 4.34000000e+02 + 1.40000000e+01 5.51000000e+02 + 1.45000000e+01 1.95000000e+02 + 1.50000000e+01 1.76700000e+03 diff --git a/pc/data/20110106/log-locked.gz b/pc/data/20110106/log-locked.gz new file mode 100644 index 0000000..f39c4e4 Binary files /dev/null and b/pc/data/20110106/log-locked.gz differ diff --git a/pc/data/20110106/log.gz b/pc/data/20110106/log.gz new file mode 100644 index 0000000..fd05388 Binary files /dev/null and b/pc/data/20110106/log.gz differ diff --git a/pc/data/20110106/log2-locked.gz b/pc/data/20110106/log2-locked.gz new file mode 100644 index 0000000..7d78008 Binary files /dev/null and b/pc/data/20110106/log2-locked.gz differ diff --git a/pc/data/20110106/log2.gz b/pc/data/20110106/log2.gz new file mode 100644 index 0000000..0cc561c Binary files /dev/null and b/pc/data/20110106/log2.gz differ diff --git a/pc/data/20110106/makehist.m b/pc/data/20110106/makehist.m new file mode 100644 index 0000000..04fe3c3 --- /dev/null +++ b/pc/data/20110106/makehist.m @@ -0,0 +1,29 @@ +# Make a histogram of the error (in milliamps) + +#a=load("log-locked"); +#len=size(a,1) +#keith=a(:,3); +#calib=a(1,4) +#dac=a(:,5); +#adc=a(:,6); +#lookup=load("../../../firmware/lookup.inc"); +#meas=-(lookup(dac + 1)/64 - calib * adc); +keith_amps = keith * 50; # 50 turns +p = polyfit(meas, keith_amps, 1) +meas_amps = meas * p(1) + p(2); # calibration fit +err_amps = keith_amps - meas_amps; + +[n, x] = hist(err_amps*1000, [-15:0.5:15]); + +for i = 0:30 + cumulative(i+1)=sum(n((31-i):(31+i))/len); +endfor +figure(1); +plot(x(31:61),cumulative); + + +savedata = [ x' n' ]; +save("-ascii", "hist.dat", "savedata"); + +figure(2); +bar(x,n) diff --git a/pc/data/20110106/process.txt b/pc/data/20110106/process.txt new file mode 100644 index 0000000..911efad --- /dev/null +++ b/pc/data/20110106/process.txt @@ -0,0 +1,43 @@ +Some processing thoughts: + +zcat log.gz | grep ^1 | tail -n +200000 > log-locked + +octave: + + a=load("log-locked"); + len=size(a,1) + t=1:10000; + keith=a(:,3); + calib=a(1,4) + dac=a(:,5); + adc=a(:,6); + meas=-(dac - calib * adc); + plot(keith(t),meas(t)) # should be linear + + p = polyfit(keith, meas, 1) + plot(t,keith(t) * p(1) + p(2),t,meas(t)) # should match + + t=1:len; + plot(t,keith(t) * p(1) + p(2) - meas(t)) # absolute error (units=dac) + axis([0 len -1 1]) + +Range is something like +- 0.5 over the entire range (of "DAC values") +This gives log(1024 / 1.0) / log(2) = 10 bits +No good! +Now let's convert the DAC values to their more-accurate value using the lookup table + + lookup=load("../../../firmware/lookup.inc"); + size(lookup) + meas=-(lookup(dac + 1)/64 - calib * adc); + p = polyfit(keith, meas, 1) + t=1:len; + + plot(t,keith(t) * p(1) + p(2) - meas(t)) # absolute error (units=dac) + axis([0 len -0.3 0.3]) + +Now closer to +- 0.05 +This gives log(1024 / 0.1) / log(2) = 13.3 bits + + + +