Resistiven Spannungsteiler mit PySpice DC-Sweepen

English Deutsch

Der folgende Code simuliert einen resistiven 10kΩ / 1kΩ-Spannungsteiler mit PySpice unter Verwendung eines DC-Sweeps und kann als geeigneter Ausgangspunkt für die Simulation einfacher Schaltungen dienen. Wir sweepen von 0V bis 5V in Schritten von 10mV.

Siehe auch unseren vorherigen Beitrag Resistiven Spannungsteiler mit PySpice simulieren für eine alternative Version mit Transientenanalyse:

pyspice_dc_sweep.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('in', '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Ω)
# DC-Sweep von 0V bis 5.0V in 0.01V-Schritten simulieren
simulator = circuit.simulator(temperature=25, nominal_temperature=25)
analysis = simulator.dc(Vin=slice(0, 5.0, 0.01))

Du kannst auf das Array der Ausgangsspannungen des Teilers (d.h. Knoten n1) mit analysis['n1'] zugreifen. Beachte, dass wenn das erste Argument von circuit.VoltageSource 'in' ist, das Argument an simulator.dc Vin heißt und nicht einfach in! Ein V wird automatisch vorangestelltPySpice DC-Sweep-Simulation eines resistiven Spannungsteilers mit Eingangs- vs. Ausgangsspannung

Dies ist der Code, den wir zum Plotten verwendet haben:

plot_dc_sweep.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("Eingangsspannung")
plt.xlabel("Teilerausgangsspannung")
plt.gca().yaxis.set_major_formatter(mtick.FuncFormatter(format_volts))
plt.gca().xaxis.set_major_formatter(mtick.FuncFormatter(format_volts))
plt.gcf().set_size_inches(8,5)
plt.plot(analysis["in"], analysis["n1"], label="Eingangsspannung")
plt.savefig("/ram/PySpice-Voltage-Divider-Sweep.svg")

Check out similar posts by category: Electronics, Python, SPICE