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:

PySpice Transienten-Simulation eines resistiven Spannungsteilers mit Eingangs- und Ausgangsspannung über die Zeit

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