Diferencia entre revisiones de «Simulación de circuitos»

De fabwiki
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
 
(No se muestran 5 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
= Circuitos básicos =
= Circuitos básicos =


==Archivo de Entrada SPICE (resistor_dc.cir)==
== Doble resistor, medición entre resistores y tierra ==
 
===resistor_dc.cir===
<pre>
<pre>
.title Resistor DC
.title Resistor DC
Línea 8: Línea 10:
r1 1 2 1k
r1 1 2 1k
r2 2 0 1k
r2 2 0 1k
.control
op
print v(1, 2)
print v(2)
.endc
.end
</pre>
== Diodo, medición entre diodo y tierra ==
===1n4148.lib===
<pre>.model 1n4148 D(IS=2.5n N=1.9 BV=100 RS=1)</pre>
===diodo.cir===
<pre>
.title Diodo DC
.include 1n4148.lib
v1 1 0 10
r1 1 2 1k
d1 2 0 1n4148


.control
.control
Línea 146: Línea 169:
El resultado:<br>
El resultado:<br>
[[Archivo:Clave outputfile.wav]]
[[Archivo:Clave outputfile.wav]]
==2N3904.lib==
<pre>
.model 2N3904 NPN(Is=6.734f Xti=3 Eg=1.11 Vaf=74.03 Bf=416.4 Ne=1.259
+ Ise=6.734f Ikf=66.78m Xtb=1.5 Br=.7371 Nc=2 Isc=0 Ikr=0 Rc=1
+ Cjc=3.638p Mjc=.3085 Vjc=.75 Fc=.5 Cje=4.493p Mje=.2593 Vje=.75
+ Tr=239.5n Tf=301.2p Itf=.4 Vtf=4 Xtf=2 Rb=10)
</pre>
=Transistor Transient (Respuesta transitoria)=
<pre>
.title transistor tran
.include 2n3904.lib
v1 1 0 10
q1 collector base emitter 2n3904
r1 1 collector 1k
r2 1 base 220k
r3 emitter 0 100
v2 2 0 ac 1 sin 0 .1 1000
c1 2 base 1u
.control
  tran 1u 3m
  run
.endc
.end
</pre>
=Oscilador de cambio de fase=
<pre>
.title oscilador de cambio de fase
.include 2n3904.lib // C B E
.param cc = "4.7u"
.param rc = "1k"
v1 vcc 0 5
q1 q1c q1b 0 2n3904
r1 q1c vcc {rc}
c1 q1c 0 {cc}
q2 q2c q2b 0 2n3904
r2 q2c vcc {rc}
c2 q2c 0 {cc}
q3 q3c q3b 0 2n3904
r3 q3c vcc {rc}
c3 q3c 0 {cc}
r4 q1c q2b 1
r5 q2c q3b 1
r6 q3c q1b 1
.tran 1u 100m
.control
  run
  plot v(q1c) xlimit 0 30m
  spec 1 2k 10 v(q1c)
  plot mag(v(q1c))
.endc
.end
</pre>

Revisión actual - 16:37 9 ago 2026

Circuitos básicos

Doble resistor, medición entre resistores y tierra

resistor_dc.cir

.title Resistor DC

v1 1 0 10
r1 1 2 1k
r2 2 0 1k

.control
op
print v(1, 2)
print v(2)
.endc

.end

Diodo, medición entre diodo y tierra

1n4148.lib

.model 1n4148 D(IS=2.5n N=1.9 BV=100 RS=1)

diodo.cir

.title Diodo DC
.include 1n4148.lib

v1 1 0 10
r1 1 2 1k
d1 2 0 1n4148

.control
op
print v(1, 2)
print v(2)
.endc

.end

Caja de ritmos

Podemos simular el sonido de la clave de la caja de ritmos Roland TR-808.

Aquí está el esquematico del generador de sonido de clave:

Las ecuaciones de diseño se muestran aquí:

Archivo de Entrada SPICE (tr808_clave.cir)

.title Roland TR-808 Clave
.include TL072.mod

v0 opampout out 0 

r1 inv out 1.5meg
r2 3   0   100
c1 inv 3   47n
c2 3   out 47n

x1 ninv inv cc ee opampout TL072

vcc cc 0  15
vee ee 0 -15

v1 ninv 0 dc 0 ac 1 PULSE(0 10m 1u 0 0 100u 0.25) 

.control
  tran 10us 200ms
  wrdata outputfile v(out)
.endc

.end

TL072.mod

* TL072 OPERATIONAL AMPLIFIER "MACROMODEL" SUBCIRCUIT
* CREATED USING PARTS RELEASE 4.01 ON 06/16/89 AT 13:08
* (REV N/A)      SUPPLY VOLTAGE: +/-15V
* CONNECTIONS:   NON-INVERTING INPUT
*                | INVERTING INPUT
*                | | POSITIVE POWER SUPPLY
*                | | | NEGATIVE POWER SUPPLY
*                | | | | OUTPUT
*                | | | | |
.SUBCKT TL072    1 2 3 4 5
*
  C1   11 12 3.498E-12
  C2    6  7 15.00E-12
  DC    5 53 DX
  DE   54  5 DX
  DLP  90 91 DX
  DLN  92 90 DX
  DP    4  3 DX
  EGND 99  0 POLY(2) (3,0) (4,0) 0 .5 .5
  FB    7 99 POLY(5) VB VC VE VLP VLN 0 4.715E6 -5E6 5E6 5E6 -5E6
  GA    6  0 11 12 282.8E-6
  GCM   0  6 10 99 8.942E-9
  ISS   3 10 DC 195.0E-6
  HLIM 90  0 VLIM 1K
  J1   11  2 10 JX
  J2   12  1 10 JX
  R2    6  9 100.0E3
  RD1   4 11 3.536E3
  RD2   4 12 3.536E3
  RO1   8  5 150
  RO2   7 99 150
  RP    3  4 2.143E3
  RSS  10 99 1.026E6
  VB    9  0 DC 0
  VC    3 53 DC 2.200
  VE   54  4 DC 2.200
  VLIM  7  8 DC 0
  VLP  91  0 DC 25
  VLN   0 92 DC 25
.MODEL DX D(IS=800.0E-18)
.MODEL JX PJF(IS=15.00E-12 BETA=270.1E-6 VTO=-1)
.ENDS

Ngspice Manual


Para Ejecutar la Simulación

  • instalar ngspice
  • crea un directorio para los archivos de simulación
  • crea TL072.mod en ese directorio
  • crea tr808_clave.cir en ese directorio
  • ejecutar la simulación
ngspice -b tr808_clave.cir

Para ver el resultado de la simulación

Usando GNU Plotutils:

graph -T ps -f 0.04 outputfile > outputfile.ps
ps2pdf outputfile.ps
open outputfile.pdf

El resultado:

Para escuchar el resultado de simulación

Podés usar Spice Audio Tools para convertir el outputfile a un archivo de formato .wav.

python spicetowav.py outputile outputfile.wav

El resultado:

2N3904.lib

.model 2N3904	NPN(Is=6.734f Xti=3 Eg=1.11 Vaf=74.03 Bf=416.4 Ne=1.259
+		Ise=6.734f Ikf=66.78m Xtb=1.5 Br=.7371 Nc=2 Isc=0 Ikr=0 Rc=1
+		Cjc=3.638p Mjc=.3085 Vjc=.75 Fc=.5 Cje=4.493p Mje=.2593 Vje=.75
+		Tr=239.5n Tf=301.2p Itf=.4 Vtf=4 Xtf=2 Rb=10)

Transistor Transient (Respuesta transitoria)

.title transistor tran

.include 2n3904.lib

v1 1 0 10
q1 collector base emitter 2n3904
r1 1 collector 1k
r2 1 base 220k
r3 emitter 0 100

v2 2 0 ac 1 sin 0 .1 1000
c1 2 base 1u

.control
  tran 1u 3m
  run
.endc

.end

Oscilador de cambio de fase

.title oscilador de cambio de fase
.include 2n3904.lib // C B E 

.param cc = "4.7u"
.param rc = "1k"

v1 vcc 0 5

q1 q1c q1b 0 2n3904
r1 q1c vcc {rc}
c1 q1c 0 {cc}

q2 q2c q2b 0 2n3904
r2 q2c vcc {rc}
c2 q2c 0 {cc}

q3 q3c q3b 0 2n3904
r3 q3c vcc {rc}
c3 q3c 0 {cc}

r4 q1c q2b 1
r5 q2c q3b 1
r6 q3c q1b 1

.tran 1u 100m

.control
  run
  plot v(q1c) xlimit 0 30m
  spec 1 2k 10 v(q1c)
  plot mag(v(q1c))
.endc

.end