Následující kód simuluje odporový dělič napětí 10kΩ / 1kΩ pomocí PySpice s využitím DC sweep a může sloužit jako vhodný výchozí bod pro simulaci jednoduchých obvodů. Sweepujeme od 0V do 5V v krocích 10mV.
Viz také náš předchozí příspěvek Jak simulovat odporový dělič napětí pomocí PySpice pro alternativní verzi s využitím transientní analýzy:
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")
# Vytvoření zdroje napětí: 5V DC
source = circuit.VoltageSource('in', 'in', circuit.gnd, dc_value=5@u_V)
# Vytvoření odporového děliče
r1 = circuit.R('R1', 'in', 'n1', 10@u_kΩ)
r2 = circuit.R('R2', 'n1', circuit.gnd, 1@u_kΩ)
# Simulace DC sweep od 0V do 5.0V v krocích 0.01V
simulator = circuit.simulator(temperature=25, nominal_temperature=25)
analysis = simulator.dc(Vin=slice(0, 5.0, 0.01))K poli výstupních napětí děliče (tj. uzel n1) můžete přistupovat pomocí analysis['n1']. Mějte na paměti, že pokud je první argument funkce circuit.VoltageSource 'in', argument pro simulator.dc bude pojmenován Vin, ne jen in! V bude automaticky přidáno na začátek
Toto je kód, který jsme použili pro vykreslení grafu:
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("Vstupní napětí")
plt.xlabel("Výstupní napětí děliče")
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="Vstupní napětí")
plt.savefig("/ram/PySpice-Voltage-Divider-Sweep.svg")
Podívejte se na podobné články podle kategorie:
Elektronika Python SPICE
Pokud vám tento článek pomohl, zvažte, zda mi nekoupíte kávu nebo nepřispějete přes PayPal na podporu výzkumu a publikování nových článků na TechOverflow