使用 Python 进行更简单的降压稳压器计算

使用 Python 进行简单的降压稳压器电感选择 一文中,我们展示了一种基于 Python 的方法,用于数学计算合适的电感范围。

然而,该方法需要从数据手册中选择或输入大量参数,而这些参数有时无法获取。此外,有时电感值已经是已知的(例如来自数据手册中的表格)。

基于此,以下简化方法专注于在给定一组参数和固定电感值的情况下,计算电感电流纹波和输出电压纹波。

3V3-Buck-Calculation.py
#!/usr/bin/env python3
# 重要:我们使用谷值电流限制
from UliEngineering.Electronics.SwitchingRegulator import *
from UliEngineering.EngineerIO import *

Vin = normalize_numeric("12V")
Vout = normalize_numeric("3.3V")
fsw = normalize_numeric("600kHz")
Ioutmax = normalize_numeric("3A")
inductance = normalize_numeric("4.7uH")
Cout = normalize_numeric("22uF")
#
# 参数结束
#
inductance_current = buck_regulator_inductor_current(
    vin=Vin, vout=Vout, inductance=inductance, frequency=fsw, ioutmax=Ioutmax
)

output_ripple = buck_regulator_output_voltage_ripple(
    ripple_current = inductance_current.ripple,
    frequency=fsw, capacitance=Cout, esr=1e-3 # 并联陶瓷电容 ESR 的估算值
)

# 打印结果
print("Inductance:", format_value(inductance, "H"))
print("\tRipple current: ", format_value(inductance_current.ripple, "A"))
print("\tPeak current: ", format_value(inductance_current.peak, "A"))

print("\nInductor minimal ratings:")
print("\tSaturation current: ", format_value(inductance_current.peak, "A"))
print("\tThermal (RMS) current: ", format_value(inductance_current.rms, "A"))

print("\nRipple with Cout =", format_value(Cout, "F"))
print("\tVoltage ripple (P-P): ", format_value(output_ripple.pp, "V"))
print("\tVoltage ripple (RMS): ", format_value(output_ripple.rms, "V"))

示例输出

Buck-Calculation-Output.txt
Inductance: 4.70 µH
        Ripple current:  848 mA
        Peak current:  3.42 A

Inductor minimal ratings:
        Saturation current:  3.42 A
        Thermal (RMS) current:  3.01 A

Ripple with Cout = 22.0 µF
        Voltage ripple (P-P):  8.88 mV
        Voltage ripple (RMS):  2.56 mV

Check out similar posts by category: Electronics