Python : Calcul encore plus simple d'un régulateur abaisseur

Dans Sélection d’inductance pour un régulateur abaisseur simple avec Python, nous avons présenté une méthode basée sur Python pour déterminer mathématiquement les plages d’inductance appropriées.

Cependant, cette méthode nécessite de nombreux paramètres à choisir ou à saisir à partir de la datasheet, qui ne sont parfois pas disponibles. De plus, la valeur d’inductance est parfois déjà connue (par exemple à partir d’un tableau dans la datasheet).

Sur cette base, l’approche simplifiée suivante se concentre sur le calcul de l’ondulation du courant d’inductance et de l’ondulation de la tension de sortie pour un ensemble donné de paramètres, en utilisant une valeur d’inductance fixe.

3V3-Buck-Calculation.py
#!/usr/bin/env python3
# IMPORTANT : Nous utilisons les limites de courant de vallée
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")
#
# FIN DES PARAMÈTRES
#
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 # Estimation de l'ESR parallèle céramique
)

# Afficher les résultats
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"))

Exemple de sortie

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