Skip to main content
仿真电池行为,测试被测设备对各种电量、电压和保护事件的响应。

导入

方法

基于 Net 的 API 提供的方法既能读取也能设置。不带值参数调用时,方法读取并打印当前值;带值调用时,则设置该值。

方法参考

Net.get(name, type=NetType.Battery)

按名称获取一个电池仿真 Net。
参数: 返回: 电池仿真 Net 实例

set_mode_battery()

把仪器初始化为电池仿真模式。

setup_battery(*, sim_mode=None, soc=None, voc=None, voltage_full=None, voltage_empty=None, current_limit=None, capacity=None, model=None)

一次调用应用多项电池设置。所有参数都只能按关键字传入。
setup_battery() 把仪器置于电池模式并关闭输出。随后它按这个顺序应用每一个非 None 的参数:sim_modemodelvoltage_fullvoltage_emptycurrent_limitsocvoccapacity
  • soc 必须在 0 到 100 之间,其中 0 会被实际应用。超出该范围的值会抛出 ValueError
  • voltage_full 会被舍入到 0.1 V。
  • sim_mode'static''dynamic'
  • 输出保持关闭。请在 setup_battery() 之后调用 enable()

mode(mode_type=None)

设置或读取电池仿真模式。
参数:

soc(value=None)

设置或读取荷电状态。
参数:

voc(value=None)

设置或读取开路电压。
参数:

voltage_full(value=None) / voltage_empty(value=None)

设置或读取满电/亏电电压。

capacity(value=None)

设置或读取电池容量。必须大于 0。仪器可能把该值钳位到它支持的范围内。实际应用的值与请求值不同时,它会给出警告。

current_limit(value=None)

设置或读取最大充放电电流。范围:0.001 A 至 6.0 A(Keithley 2281S)。

ovp(value=None) / ocp(value=None)

设置或读取保护阈值。

model(partnumber=None)

设置或读取电池模型。
Keithley 2281S 电池模型: Keithley 2281S 把电池模型保存在存储槽(0-9)中: 注意: 如果某个存储槽是空的,该调用会抛出错误。错误信息会提示您改用 'discharge',或者先从仪器前面板或用下面的 define_model() 保存一个模型。基本的电池仿真请用 'discharge',它在所有仪器上都能用。

model_catalog()

列出仪器上可用的电池模型。返回的列表涵盖各个编号存储槽,以及固件内置的模型。只读 —— 汇总这份目录不会改变仪器状态。
在 Keithley 2281S 上,存储槽 1-9 在其中有模型时才会被列出。五个固件内置模型列出时不带存储槽编号。放电模式不会被列出,因为它只能在前面板操作,在当前固件上没有对应的 SCPI 调用形式。

read_model(slot)

从某个存储槽读出已保存模型的曲线点。返回一个字典。只读 —— 导出模型不会改变当前激活的是哪个模型。
在 Keithley 2281S 上,存储槽 1-9 保存模型,没有可导出的 0 号槽。每个模型的 VOC 和内阻各有 101 个点。读取空存储槽会被拒绝,并提示改用 model_catalog()

define_model(slot, voc, resistance)

把自定义电池模型写入某个存储槽,可创建也可覆盖。一个模型由两条以荷电状态为索引的曲线组成:voc(非递减)和 resistance
保存到已占用的存储槽会静默覆盖它。事后您无法删除或清空存储槽,因为 Keithley 2281S 没有对应的 SCPI 命令。存储槽只能被覆盖。请在您自己的代码中给覆盖操作加上显式确认。有效的目标存储槽是 1-9。

enable() / disable()

启用或禁用电池仿真输出。

clear_ovp() / clear_ocp()

清除保护故障。
打印电池仿真器的完整状态。

terminal_voltage() / current() / esr()

读取测量值(返回数值,不打印)。
返回: float - 测量值

示例

基本的电池仿真

仿真电池放电

带保护监测

受支持的硬件

说明

  • 使用其他电池方法之前请先调用 set_mode_battery()
  • soc()voc() 这样的方法,是读取还是设置,取决于是否传入了值
  • soc() 的值在发送到仪器之前会被舍入到最接近的整数
  • 参数固定时请用 mode('static'),需要行为随时间演变时请用 mode('dynamic')
  • 结束时请务必调用 disable()
  • terminal_voltage()current()esr() 返回数值(供代码使用)
  • print_state() 打印数值(用于调试)
  • 保护阈值有助于避免损坏您的被测设备
  • Keithley 2281S 的限制:输出 0-20 V,电流 0.001-6.0 A,容量必须大于 0
  • OVP 范围:0-60 V;OCP 范围:0.001-6.0 A