72 lines
1.3 KiB
Python
72 lines
1.3 KiB
Python
#! /usr/bin/python3
|
|
|
|
import scipy.optimize as opt
|
|
import numpy as np
|
|
import pandas as pd
|
|
import matplotlib.pyplot as plt
|
|
import VisTools.plotting as vt
|
|
|
|
plt.ioff()
|
|
plt.style.use('bmh')
|
|
fig, axarr = plt.subplots(
|
|
2,
|
|
1,
|
|
figsize=(10, 8),
|
|
gridspec_kw={'height_ratios':[2, 1]},
|
|
sharex="col"
|
|
)
|
|
data = pd.read_csv("./adccalib_v48.csv", comment="#")
|
|
|
|
data['Dv'] = data['v_pit48'] / data['v_keith']
|
|
print(data)
|
|
|
|
axarr[0].errorbar(
|
|
data['v_keith'],
|
|
data['v_pit48'],
|
|
yerr=data['dv_pit48'],
|
|
label="V$_{MONITOR\_48V}$",
|
|
fmt='.'
|
|
)
|
|
p =axarr[1].errorbar(
|
|
data['v_keith'],
|
|
data['Dv'],
|
|
yerr=data['dv_pit48'],
|
|
label=" absolute Error of ADC",
|
|
fmt='.',
|
|
alpha=.3
|
|
)
|
|
|
|
# fit to abs dist
|
|
linfnc = lambda x,m,c: x*m+c
|
|
|
|
pfinal = vt.fit_linear(
|
|
data.v_keith,
|
|
data.Dv,
|
|
(0,0)
|
|
)
|
|
|
|
axarr[1].plot(
|
|
data.v_set,
|
|
linfnc(data.v_keith, pfinal[0].n, pfinal[1].n),
|
|
color=p[0].get_color()
|
|
)
|
|
|
|
print( pfinal )
|
|
|
|
|
|
vt.annotate_unc(
|
|
plt,
|
|
pfinal[1],
|
|
name="\Delta V48[1]",
|
|
data_pos=(47, 1.1),
|
|
formatting='f')
|
|
|
|
plt.xlabel('V$_{IN,EXT} / V$')
|
|
axarr[0].set_ylabel('V$_{IN,PIT} / V$')
|
|
axarr[0].set_title("PowerIt ADC Calibration: 48V Input")
|
|
axarr[1].set_ylabel('($V_{IN,PIT} / V_{IN,EXT}$) / V')
|
|
#-plt.savefig("2kw_direct.png")
|
|
|
|
plt.tight_layout()
|
|
plt.savefig("adccalib_v48.pdf", dpi=1000)
|