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 vorangestellt
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
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow