aboutsummaryrefslogtreecommitdiff
path: root/qolab/hardware/power_supply/keysight_e3612a.py
diff options
context:
space:
mode:
authorEugeniy E. Mikhailov <evgmik@gmail.com>2022-04-06 12:00:47 -0400
committerEugeniy E. Mikhailov <evgmik@gmail.com>2022-04-06 12:00:47 -0400
commitb2e8ea7d743c17d6a5a6ccd8b7324df282cdbb13 (patch)
tree37e0987822c657551f455e8d859c2a5d37c41c0d /qolab/hardware/power_supply/keysight_e3612a.py
parentc25ee7e20279e2394186c3f7af3fd11f4e187c30 (diff)
downloadqolab-b2e8ea7d743c17d6a5a6ccd8b7324df282cdbb13.tar.gz
qolab-b2e8ea7d743c17d6a5a6ccd8b7324df282cdbb13.zip
better algorithm description for setting desired current
Diffstat (limited to 'qolab/hardware/power_supply/keysight_e3612a.py')
-rw-r--r--qolab/hardware/power_supply/keysight_e3612a.py11
1 files changed, 9 insertions, 2 deletions
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: