2024年5月12日 星期日

使用 Keysight U3606B 同時監測電池充電與放電

https://4rdp.blogspot.com/2024/05/keysight-u3606b.html?m=0


辦公桌上的 Keysight U3606B 真的很好用,這次研究不斷電指示燈,拿它來監測鎳氫電池充放電時,電池的電壓與電流變化情形。

通常 DMM (Digital Multi-Meter) 一次只能測量電壓或是電流,無法兩者同時測量,如果想同時測量,一般需要兩台儀器,那 U3606B 如何辦到用一台儀器同時測到電池的電壓與電流呢?關鍵在 U3606B 內建電源供應,只要設定電源供應為定電流源 (CC, Constant Current),輸出 0 mA,就可以監測電池兩端電壓情形,再加上 U3606B 輸入端子測量電池電流,這樣兩個物理量就可以同時監測了。

我同時寫了一個 Python 程式,可以把讀值存檔,它需要安裝 PyVISA 模組

> pip install pyvisa

# (C) 2024, Bridan, CC BY-SA 3.0 TW
# The program is for V and I measurement
# https://4rdp.blogspot.tw

from __future__ import division, unicode_literals, print_function, absolute_import
import pyvisa
import time
import datetime


print("VISA list:")
rm = pyvisa.ResourceManager()
print(rm.list_resources())
addr = input("Input U3606B VISA address: ")
hybrid = rm.open_resource(addr)
hybrid.read_termination = '\n'
hybrid.write_termination = '\n'
hybrid.write("*RST")
time.sleep(3)

hybrid.write("CONFIGURE:CURRENT")
hybrid.write("SOURCE:CURRENT:RANGE 0.1")
hybrid.write("OUTPUT ON")

# set data file
file = 'VI- ' + datetime.datetime.now().strftime('%Y-%m-%d %H.%M.%S') + '.csv'
w_file = open(file, 'w')
w_file.write('Time,V,I\n')

t = input("How long time would you like to measure? (sec)  ")
n = int(t)

while n > 0:
    t = str(datetime.datetime.now())
    v = hybrid.query("SOURCE:SENSE:VOLTAGE?")
    i = hybrid.query("FETCH?")
    data = t[t.find(' '):] + ' , ' + v + ' , ' + i + '\n'
    print(data)
    w_file.write(data)
    time.sleep(1)
    n -= 1

w_file.close()
hybrid.write("OUTPUT OFF")


U3606B 從新上市到現在已經超過十年了,很多電子電路實驗這一台就可以搞定,當初選用它,沒有後悔過。

延伸閱讀

沒有留言:

張貼留言