Source code for labscript_utils.unitconversions.quad_driver

#####################################################################
#                                                                   #
# quad_driver.py                                                    #
#                                                                   #
# Copyright 2013, Monash University                                 #
#                                                                   #
# This file is part of the labscript suite (see                     #
# http://labscriptsuite.org) and is licensed under the Simplified   #
# BSD License. See the license.txt file in the root of the project  #
# for the full license.                                             #
#                                                                   #
#####################################################################
from .UnitConversionBase import *

[docs] class quad_driver(UnitConversion): base_unit = 'V' derived_units = ['A', 'Gcm']
[docs] def __init__(self,calibration_parameters = {'A_per_V':19.9757, 'Gcm_per_A':1.88679, 'A_offset':-0.642724, 'A_min':-0.09}): self.parameters = calibration_parameters self.parameters.setdefault('A_per_V',19.9757) self.parameters.setdefault('Gcm_per_A',1.88679) self.parameters.setdefault('A_offset',-0.642724) self.parameters.setdefault('A_min',-0.09) UnitConversion.__init__(self,self.parameters)
@vectorise def A_to_base(self,amps): V_min = (self.parameters['A_min'] - self.parameters['A_offset'])/self.parameters['A_per_V'] if amps < 0.001: volts = 0 elif amps <= self.parameters['A_min']: volts = V_min else: volts = (amps - self.parameters['A_offset'])/self.parameters['A_per_V'] return volts
[docs] def A_from_base(self,volts): amps = max(volts * self.parameters['A_per_V'] + self.parameters['A_offset'], self.parameters['A_min']) return amps
[docs] def Gcm_to_base(self,gauss_per_cm): volts = self.A_to_base(gauss_per_cm/self.parameters['Gcm_per_A']) return volts
[docs] def Gcm_from_base(self,volts): gauss_per_cm = self.parameters['Gcm_per_A'] * self.A_from_base(volts) return gauss_per_cm