2 changed files with 69 additions and 4 deletions
@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env python3 |
||||
# coding: utf-8 |
||||
|
||||
import pylab as p |
||||
|
||||
data = [ |
||||
# SolarLader, Multimeter |
||||
[0, 0], |
||||
[0.412, 0.388], |
||||
[0.421, 0.392], |
||||
[0.64, 0.591], |
||||
[0.72, 0.655], |
||||
[0.78, 0.705], |
||||
[1, 0.903], |
||||
[1.05, 0.928], |
||||
[1.2, 1.04], |
||||
[1.36, 1.17], |
||||
[1.4, 1.205], |
||||
[1.706, 1.470], |
||||
[1.93, 1.58], |
||||
[2, 1.661], |
||||
[2.01, 1.683], |
||||
[2.08, 1.69], |
||||
[2.22, 1.78], |
||||
[2.27, 1.815], |
||||
] |
||||
|
||||
data_array = p.transpose(p.array(data)) |
||||
|
||||
Ichg = data_array[0] |
||||
Imulti = data_array[1] |
||||
|
||||
adc = Ichg * 4096/8.6 + 89 |
||||
|
||||
fit = p.polyfit(adc, Imulti, 1) |
||||
|
||||
poly = p.poly1d(fit) |
||||
|
||||
#Ifit = adc**2 * fit[0] + adc * fit[1] + fit[2] |
||||
Ifit = poly(adc) |
||||
Ierror = Ifit - Imulti |
||||
|
||||
adc_expanded = p.arange(0, 4095, 1) |
||||
Ifit_expanded = poly(adc_expanded) |
||||
|
||||
#print("adc² • {:.3f} + adc • {:.3f} + {:.3f}".format(fit[0], fit[1], fit[2])) |
||||
print("adc • {:.3g} + {:.3g}".format(fit[0], fit[1])) |
||||
|
||||
p.figure() |
||||
p.plot(adc, Imulti, 'rx') |
||||
p.plot(adc, Ifit, 'r-') |
||||
p.figure() |
||||
p.plot(adc, Imulti, 'rx') |
||||
p.plot(adc_expanded, Ifit_expanded, 'b-') |
||||
p.figure() |
||||
p.plot(adc, Ierror) |
||||
p.show() |
Loading…
Reference in new issue