Resistiven Spannungsteiler mit PySpice simulieren
English
Deutsch
Der folgende Code simuliert einen resistiven 10kΩ / 1kΩ-Spannungsteiler mit PySpice und kann als guter Ausgangspunkt für die Simulation einfacher Schaltungen dienen.
Dieser Beitrag zeigt dir, wie du den Spannungsteiler mit Transientenanalyse simulierst. Siehe auch eine alternative Variante dieses Beitrags mit DC-Sweep-Analyse: Resistiven Spannungsteiler mit PySpice DC-Sweepen
pyspice_voltage_divider.py
import PySpice.Logging.Logging as Logging
logger = Logging.setup_logging()
from PySpice.Probe.Plot import plot
from PySpice.Spice.Netlist import Circuit
from PySpice.Unit import *
circuit = Circuit("MyCircuit")
# Spannungsquelle erstellen: 5V DC
source = circuit.VoltageSource('V1', 'in', circuit.gnd, dc_value=5@u_V)
# Widerstandsteiler erstellen
r1 = circuit.R('R1', 'in', 'n1', 10@u_kΩ)
r2 = circuit.R('R2', 'n1', circuit.gnd, 1@u_kΩ)
# Für 1 Sekunde mit Schritten von 1 Millisekunde simulieren
simulator = circuit.simulator(temperature=25, nominal_temperature=25)
analysis = simulator.transient(step_time=1@u_ms, end_time=1@u_s)Du kannst auf das Array der Ausgangsspannungen des Teilers (d.h. Knoten n1) mit analysis['n1'] zugreifen:
Dies ist der Code, den wir zum Plotten verwendet haben:
plot_voltage_divider.py
import matplotlib.ticker as mtick
import matplotlib.pyplot as plt
from UliEngineering.EngineerIO import format_value
def format_volts(value, pos=None):
return format_value(value, 'V')
plt.style.use("ggplot")
plt.xlabel("Zeit [ms]")
plt.ylim([0.0, 5.5])
plt.gca().yaxis.set_major_formatter(mtick.FuncFormatter(format_volts))
plt.gcf().set_size_inches(8,5)
plt.plot(analysis["in"], label="Eingangsspannung")
plt.plot(analysis["n1"], label="Spannungsteiler-Ausgang")
plt.gca().legend()
plt.savefig("/ram/PySpice-Voltage-Divider.svg")Check out similar posts by category:
Electronics, Python, SPICE
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow