用Python比较同VRWM不同封装TVS的额定工作点

1 阅读2分钟

同为24 V TVS,封装和额定脉冲电流可能不同。Python可以检查比较条件是否一致,并生成参数表,但不应输出“封装越大越好”的自动排名。

准备可追溯数据

parts = [
    {"part": "SMA04J24V", "package": "SMA", "vrwm_v": 24.0,
     "vbr_min_v": 26.7, "vbr_max_v": 29.5, "vc_max_v": 38.9,
     "ipp_a": 10.3, "waveform": "10/1000 us"},
    {"part": "SMB06J24V", "package": "SMB", "vrwm_v": 24.0,
     "vbr_min_v": 26.7, "vbr_max_v": 29.5, "vc_max_v": 38.9,
     "ipp_a": 15.5, "waveform": "10/1000 us"},
    {"part": "SMC15J24V", "package": "SMC", "vrwm_v": 24.0,
     "vbr_min_v": 26.7, "vbr_max_v": 29.5, "vc_max_v": 38.9,
     "ipp_a": 38.6, "waveform": "10/1000 us"},
]

数据来自ASIM公开对照页。每个VC必须和IPP、波形放在同一条记录中。

检查条件并计算额定点乘积

def compare_rows(rows: list[dict]) -> list[dict]:
    waveforms = {row["waveform"] for row in rows}
    if len(waveforms) != 1:
        raise ValueError("波形不同,不能直接比较")

    result = []
    for row in rows:
        item = dict(row)
        item["vc_times_ipp_w"] = round(row["vc_max_v"] * row["ipp_a"], 1)
        item["decision"] = "BOARD_REVIEW_REQUIRED"
        result.append(item)
    return result

for row in compare_rows(parts):
    print(row)

VC × IPP用于核对额定工作点的数量级,不代表器件在任意波形、任意温度或重复脉冲下都能承受该功率。

为什么不做自动排名

封装更大通常对应更高额定脉冲能力,但实际板级结果还取决于焊盘、走线、回流寄生、后级耐压和安装空间。程序只能显示差异,不能批准替代。

可以增加哪些检查

  • VRWM是否覆盖线路最高持续电压;
  • VC是否低于后级允许窗口;
  • 波形和温度条件是否一致;
  • PCB封装和焊盘是否兼容;
  • 候选是否完成目标板浪涌与温升验证。

参考资料: