perdiod = 1. / frequence step_time = perdiod/200 end_time = perdiod*10 line_peak_voltage = 10 circuit = Circuit('Simple Rectifier', global_nodes=(0, 'out')) circuit.subcircuit(subcircuit_1N4148) circuit.V('input', 'in', circuit.gnd, 'DC 0V', 'SIN(0V {}V {}Hz)'.format(line_peak_voltage, frequence)) circuit.X('D', '1N4148', 'in', 'out') circuit.C('load', 'out', circuit.gnd, micro(100)) circuit.R('load', 'out', circuit.gnd, kilo(1), ac='1k') circuit.Cload.plus.add_current_probe(circuit) simulation = circuit.simulation(temperature=25, nominal_temperature=25, pipe=True) simulation.options(filetype='binary') simulation.save('V(in)', 'V(out)') simulation.tran(step_time, end_time) print circuit.nodes for node in circuit.nodes: print repr(node), ':', ' '.join(element.name for element in node.elements) print circuit.Cload.plus # print repr(circuit.Cload) # # print circuit.1N4148 # print subcircuit_1N4148['1N4148'] # print circuit.out print '\n\n' print str(simulation)
end_time = perdiod * 10 line_peak_voltage = 10 circuit = Circuit('Simple Rectifier', global_nodes=(0, 'out')) circuit.subcircuit(subcircuit_1N4148) circuit.V('input', 'in', circuit.gnd, 'DC 0V', 'SIN(0V {}V {}Hz)'.format(line_peak_voltage, frequence)) circuit.X('D', '1N4148', 'in', 'out') circuit.C('load', 'out', circuit.gnd, micro(100)) circuit.R('load', 'out', circuit.gnd, kilo(1), ac='1k') circuit.Cload.plus.add_current_probe(circuit) simulation = circuit.simulation(temperature=25, nominal_temperature=25, pipe=True) simulation.options(filetype='binary') simulation.save('V(in)', 'V(out)') simulation.tran(step_time, end_time) print(circuit.nodes) for node in circuit.nodes: print(repr(node), ':', ' '.join(element.name for element in node.elements)) print(circuit.Cload.plus) # print repr(circuit.Cload) # # print circuit.1N4148 # print subcircuit_1N4148['1N4148'] # print circuit.out print('\n\n')
#################################################################################################### spice_server = SpiceServer() #################################################################################################### circuit = Circuit('Voltage Divider') circuit.V('input', 'in', circuit.gnd, '10V') circuit.R(1, 'in', 'out', kilo(9)) circuit.R(2, 'out', circuit.gnd, kilo(1)) #################################################################################################### simulation = circuit.simulation(temperature=25, nominal_temperature=25) simulation.operating_point() print str(simulation) raw_file = spice_server(simulation) for field in raw_file.variables: print field analysis = raw_file.analysis for node in (analysis['in'], analysis.out): # .in is invalid ! print 'Node {}: {} V'.format(str(node), float(node)) #################################################################################################### simulation = circuit.simulation(temperature=25, nominal_temperature=25) simulation.dc_sensitivity('v(out)')