|
2 | 2 |
|
3 | 3 | #################################################################################################### |
4 | 4 |
|
5 | | -import PySpice.Logging.Logging as Logging |
| 5 | +from PySpice.Logging import Logging |
6 | 6 | logger = Logging.setup_logging() |
7 | 7 |
|
8 | 8 | #################################################################################################### |
9 | 9 |
|
10 | | -from PySpice import Circuit |
| 10 | +from PySpice import Circuit, Simulator |
11 | 11 |
|
12 | 12 | #################################################################################################### |
13 | 13 |
|
14 | | -from PySpice.Unit import * |
| 14 | +# pylint: disable=no-name-in-module |
| 15 | +from PySpice.Unit import ( |
| 16 | + kilo, |
| 17 | + as_Ω, u_kOhm, U_Ω, u_kΩ, |
| 18 | + u_Degree, u_Hz, u_mA, u_mH, u_ms, u_uF, u_V, |
| 19 | +) |
| 20 | +# pylint: enable=no-name-in-module |
15 | 21 |
|
16 | | -foo = kilo(1) # unit less |
| 22 | +foo = kilo(1) # unit less |
17 | 23 |
|
18 | 24 | resistance_unit = U_Ω |
19 | 25 |
|
20 | 26 | resistance1 = u_kΩ(1) |
21 | | -resistance1 = u_kOhm(1) # ASCII variant |
| 27 | +resistance1 = u_kOhm(1) # ASCII variant |
22 | 28 |
|
23 | 29 | resistance1 = 1@u_kΩ # using Python 3.5 syntax |
24 | 30 | resistance1 = 1 @u_kΩ # space doesn't matter |
25 | | -resistance1 = 1 @ u_kΩ # |
| 31 | +resistance1 = 1 @ u_kΩ |
26 | 32 |
|
27 | | -resistance2 = as_Ω(resistance1) # check unit |
| 33 | +resistance2 = as_Ω(resistance1) # check unit |
28 | 34 |
|
29 | | -resistances = u_kΩ(range(1, 11)) # same as [u_kΩ(x) for x in range(1, 11)] |
| 35 | +resistances = u_kΩ(range(1, 11)) # same as [u_kΩ(x) for x in range(1, 11)] |
30 | 36 | resistances = range(1, 11)@u_kΩ # using Python 3.5 syntax |
31 | 37 |
|
32 | 38 | capacitance = u_uF(200) |
33 | 39 | inductance = u_mH(1) |
34 | 40 | temperature = u_Degree(25) |
35 | 41 |
|
36 | | -voltage = resistance1 * u_mA(1) # compute unit |
| 42 | +voltage = resistance1 * u_mA(1) # compute unit |
37 | 43 |
|
38 | 44 | frequency = u_ms(20).frequency |
39 | 45 | period = u_Hz(50).period |
|
78 | 84 |
|
79 | 85 | circuit.V('input', 1, circuit.gnd, 10*u.V) |
80 | 86 | circuit.R(1, 1, 2, 2*u.kΩ) |
81 | | -circuit.R(2, 1, 3, 1*u.kΩ) |
82 | | -circuit.R(3, 2, circuit.gnd, 1*u.kΩ) |
| 87 | +circuit.R(2, 1, 3, 1*u.MΩ) |
| 88 | +circuit.R(3, 2, circuit.gnd, 1*u.mΩ) |
83 | 89 | circuit.R(4, 3, circuit.gnd, 2*u.kΩ) |
84 | 90 | circuit.R(5, 3, 2, 2*u.kΩ) |
85 | 91 |
|
86 | 92 | print(circuit) |
| 93 | + |
| 94 | +simulator = Simulator.factory() |
| 95 | +simulation = simulator.simulation(circuit, temperature=25, nominal_temperature=25) |
| 96 | +analysis = simulation.operating_point() |
| 97 | + |
| 98 | +for node in analysis.nodes.values(): |
| 99 | + # Fixme: format value + unit |
| 100 | + # Fixme: DeprecationWarning: Conversion of an arraywith ndim > 0 |
| 101 | + # to a scalar is deprecated, and will error in future. Ensure you |
| 102 | + # extract a single element from your array before performing this |
| 103 | + # operation. (Deprecated NumPy 1.25.) |
| 104 | + # _ = float(node) |
| 105 | + _ = float(node[0]) |
| 106 | + print(f'Node {node}: {_:4.1f} V') |
| 107 | +#o# |
0 commit comments