Python: Kondensator-Lade-/Entladezeit durch einen Widerstand berechnen
Du kannst leicht die Zeit berechnen, die zum Laden oder Entladen eines Kondensators durch einen Widerstand erforderlich ist, mit der UliEngineering-Python-Bibliothek:
from UliEngineering.Electronics.Capacitors import *
from UliEngineering.EngineerIO import *
# Ladezeit eines 100uF-Kondensators durch 10k aus einer 5V-Quelle berechnen
# durch eine Schottky-Diode mit 0,3V Durchlassspannung, bis 3,0V
charge_time = capacitor_resistor_charge_time(
capacitance="100uF", resistance="10kΩ", source_voltage="5V",
initial_voltage="0V", target_voltage="3.0V", diode_voltage="300mV"
)
# Entladezeit desselben Kondensators durch 10k auf 1,0V berechnen
# durch eine Silizium-Diode mit 0,7V Durchlassspannung
discharge_time = capacitor_resistor_discharge_time(
capacitance="100uF", resistance="10kΩ", initial_voltage="5.0V",
target_voltage="1.0V", diode_voltage="700mV"
)
# Ergebnisse automatisch formatieren & ausgeben
print(f"Ladezeit: {format_value(charge_time, 's')}")
print(f"Entladezeit: {format_value(discharge_time, 's')}")Beispielausgabe
Ladezeit: 1.02 s
Entladezeit: 2.66 sDas Laden und Entladen eines Kondensators durch einen Widerstand folgt einer exponentiellen Kurve, die durch die RC-Zeitkonstante τ = R × C beschrieben wird. Die Zeitkonstante bestimmt, wie schnell der Kondensator lädt oder entlädt: nach einer Zeitkonstante erreicht der Kondensator beim Laden etwa 63,2% seiner Endspannung oder fällt beim Entladen auf 36,8% ab.
Das obige Diagramm zeigt die charakteristische RC-Ladekurve für einen 100 µF-Kondensator, der durch einen 10 kΩ-Widerstand aus einer 5V-Quelle lädt. Die roten gestrichelten Linien markieren die Zeitkonstanten (τ, 2τ, 3τ, 4τ, 5τ) und zeigen, dass der Kondensator nach 5 Zeitkonstanten 99,3% der Quellenspannung erreicht. Dies zeigt, warum die Zeitkonstante fundamental für Zeitschaltungen, Filter und Impulsformungsanwendungen ist.
Diagramm-Estellungsskript
#!/usr/bin/env python3
import matplotlib.pyplot as plt
import numpy as np
import sys
sys.path.insert(0, '/home/uli/dev/UliEngineering')
from UliEngineering.Electronics.Capacitors import capacitor_resistor_charge_time
# Zeitbereich für das Diagramm
t = np.linspace(0, 0.005, 200) # 0 bis 5ms
# Diagramm erstellen
plt.figure(figsize=(10, 6))
# Feste Parameter
C = 100e-6 # 100 µF
R = 10e3 # 10 kΩ
V_source = 5.0 # 5V
V_initial = 0.0
# Spannung vs. Zeit für RC-Laden berechnen
tau = R * C
V = V_source + (V_initial - V_source) * np.exp(-t / tau)
plt.plot(t * 1000, V, color='blue', linewidth=2)
plt.xlabel('Zeit (ms)', fontsize=12)
plt.ylabel('Kondensatorspannung (V)', fontsize=12)
plt.title('RC-Kondensator-Ladekurve (R=10kΩ, C=100µF)', fontsize=14, fontweight='bold')
plt.grid(True, alpha=0.3)
# Zeitkonstanten markieren
for n in [1, 2, 3, 4, 5]:
t_n = n * tau
V_n = V_source + (V_initial - V_source) * np.exp(-n)
plt.axvline(x=t_n * 1000, color='red', linestyle='--', alpha=0.3)
plt.text(t_n * 1000, V_n + 0.1, f'{n}τ', fontsize=9, color='red')
plt.tight_layout()
plt.savefig('capacitor_charge_time_plot.svg', format='svg', dpi=300)