From b2e8ea7d743c17d6a5a6ccd8b7324df282cdbb13 Mon Sep 17 00:00:00 2001 From: "Eugeniy E. Mikhailov" Date: Wed, 6 Apr 2022 12:00:47 -0400 Subject: better algorithm description for setting desired current --- qolab/hardware/power_supply/keysight_e3612a.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'qolab/hardware/power_supply/keysight_e3612a.py') diff --git a/qolab/hardware/power_supply/keysight_e3612a.py b/qolab/hardware/power_supply/keysight_e3612a.py index 7b1dee2..fc13bc0 100644 --- a/qolab/hardware/power_supply/keysight_e3612a.py +++ b/qolab/hardware/power_supply/keysight_e3612a.py @@ -89,11 +89,18 @@ class KeysightE3612A(PowerSupplySCPI): """ Tuning Vout to achieve desired Iout. Generally setting current limit will maintain current near but not exact to desired. - This function will try to guess the correct Vout value + Since Vlimit can be set with good precision, + this function will try tune Vlimit until the Idesired is reached. """ iDesired = val self.setChanIlimit(chNum, val+currentHeadRoom) - # here we assume that hook up is already made, so we can estimate source resistance + # Here, we assume that hook up is already made, so we can estimate source resistance + # So the protocol is the following: + # find R -> calculate required Vout for the desired Idesired + # -> set Vlimit to reach desired Vout and Iout + # In general, once we estimate resistance of the load + source, we do not need to + # anything extra. But there is a problem: for a given Vlimit setting, the actual Vout + # is slightly off. for i in range(10): iOut=self.getChanIout(chNum) if abs(iOut-iDesired) <= currentPrecision: -- cgit v1.2.3