Failed to fetch fork details. Try again later.
-
Olivier Kaufmann authored4fc0e714
Forked from
reversaal / OhmPi
Source project has a limited visibility.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import numpy as np
import logging
import matplotlib.pyplot as plt
from utils import change_config
change_config('config_ohmpi_card_3_15.py', verbose=False)
from OhmPi.measure import OhmPiHardware
k = OhmPiHardware()
k.exec_logger.setLevel(logging.INFO)
# Test #1:
print('Testing _vab_pulse')
k._vab_pulse(vab=12, length=1., sampling_rate=k.rx.sampling_rate, polarity=1)
r = k.readings[:,4]/k.readings[:,3]
print(f'Mean resistance: {np.mean(r):.3f} Ohms, Dev. {100*np.std(r)/np.mean(r):.1f} %')
print(f'sampling rate: {k.rx.sampling_rate:.1f} ms, mean sample spacing: {np.mean(np.diff(k.readings[:,0]))*1000.:.1f} ms')
# Test #2:
print('\n\nTesting vab_square_wave')
k.vab_square_wave(vab=12, cycle_length=1., sampling_rate=k.rx.sampling_rate, cycles=3)
r = k.readings[:,4]/k.readings[:,3]
print(f'Mean resistance: {np.mean(r):.3f} Ohms, Dev. {100*np.std(r)/np.mean(r):.1f} %')
print(f'sampling rate: {k.rx.sampling_rate:.1f} ms, mean sample spacing: {np.mean(np.diff(k.readings[:,0]))*1000.:.1f} ms')
print(r)
print(f'length of array: {len(r)}, expected length: {6000./k.rx.sampling_rate}')
print(k.readings)
fig, ax = plt.subplots()
ax.plot(k.readings[:,0], k.readings[:,3], '-r', marker='.', label='iab')
ax.set_ylabel('Iab [mA]')
ax2 = ax.twinx()
ax2.plot(k.readings[:,0], k.readings[:,2]*k.readings[:,4], '-b', marker='.', label='vmn')
ax2.set_ylabel('Vmn [mV]')
fig.legend()
plt.show()
# compote mean voltages inside pulses
pulses = k.readings[:,1]
mean_vmn=[]
mean_iab=[]
for i in range(int(np.min(pulses)), int(np.max(pulses))+1):
mean_vmn.append(np.mean(k.readings[k.readings[:,1]==i, 4]))
mean_iab.append(np.mean(k.readings[k.readings[:,1]==i, 3]))
mean_vmn = np.array(mean_vmn)
mean_iab = np.array(mean_iab)
print(f'Vmn: {mean_vmn}, Iab: {mean_iab}')
sp = np.mean(mean_vmn[np.ix_([0,2,4])]-mean_vmn[np.ix_([1,3,5])])/2
print(f'SP: {sp} mV')
r = ((k.readings[:,4]+k.readings[:,1]*sp)/k.readings[:,3])
print(f'Mean resistance with sp correction : {np.mean(r):.3f} Ohms, Dev. {100*np.std(r)/np.mean(r):.1f} %')
change_config('config_default.py', verbose=False)