diff options
author | Eugeniy E. Mikhailov <evgmik@gmail.com> | 2022-04-06 12:00:47 -0400 |
---|---|---|
committer | Eugeniy E. Mikhailov <evgmik@gmail.com> | 2022-04-06 12:00:47 -0400 |
commit | b2e8ea7d743c17d6a5a6ccd8b7324df282cdbb13 (patch) | |
tree | 37e0987822c657551f455e8d859c2a5d37c41c0d | |
parent | c25ee7e20279e2394186c3f7af3fd11f4e187c30 (diff) | |
download | qolab-b2e8ea7d743c17d6a5a6ccd8b7324df282cdbb13.tar.gz qolab-b2e8ea7d743c17d6a5a6ccd8b7324df282cdbb13.zip |
better algorithm description for setting desired current
-rw-r--r-- | qolab/hardware/power_supply/keysight_e3612a.py | 11 |
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: |