Apostila de uso do SPICE

Propaganda
Apostila de uso do SPICE
João Paulo Cerquinho Cajueiro
Universidade Federal de Pernambuco
Departamento de Eletrônica e Sistemas
Versão 0.2
2009.1
Objetivo
Esta apostila tem como propósito ser uma base inicial
para a utilização do simulador de circuitos SPICE para
os alunos do curso de Eletrônica I da UFPE. Os princı́pios de utilização desta ferramenta são demonstrados a
partir de vários exemplos. Esta ainda é uma versão preliminar deste texto, portanto vários conceitos importantes
(como por exemplo simulação AC e ordem dos pinos de
transistores) ainda não são mostrados.
1
fontes CC
Cada linha é um elemento de circuito. A primeira letra indica o tipo do elemento, como por exemplo V para
1
fontes de tensão, I para fontes de corrente e R para resistores. Linhas que começam com um asterisco são comentários e com um ponto são comandos especiais do SPICE.
A primeira linha do código SPICE é o titulo do circuito
que será simulado e não representa nenhum elemento ou
comando.
A simulação e os gráficos de resultados são definidos dentro de um bloco de controle, delimitado pelos comandos .control e .endc. O código SPICE é finalizado
com um comando .end. Um exemplo inicial é mostrado
abaixo.
Exemplo 1 - Fontes
*Análises DC e tran
*Descricao do circuito
VEN 1 0 DC 10V
R1 1 0 1k
IEN 2 0 DC 10MA
R2 2 0 1k
*Analise
.control
tran 0.01ms 1ms
plot v(1) v(2)
dc ven 0 10 0.1
plot v(1) v(2)
.endc
.end
Neste exemplo são mostradas 2 simulações. Uma no
tempo (transiente), definida pelo comando tran e outra em DC em função de VEN, definida pelo comando
dc. Estes são os dois tipos de simulação mais úteis para
eletrônica I. Note que é possı́vel definir mais de uma simulação no mesmo arquivo.
Os parâmetros da simulação transiente são o tamanho do passo e o tempo final da janela de simulação, com
a opção de acrescentar um valor para o tempo inicial.
Por exemplo, para fazer uma simulação de 2 a 5 segundos
com passos de 1 ms o comando seria tran 1m 5s 2s1 .
A simulação DC varia uma fonte independente de
tensão ou corrente entre um valor inicial e um final e faz
uma simulação de ponto de operação (ou seja, desprezando capacitores e indutores) passo-a-passo. No exemplo 1 acima, fazemos a variação de ven de 0V até 10V
com passos de 0,1 V.
O comando plot imprime um gráfico das variáveis
que quisermos ver depois de uma simulação.
Um outro detalhe importante presente neste exemplo é o uso de fatores de escala. O SPICE entende, por
exemplo, 10k como sendo 10.000 e 1ms como sendo 0.001.
A tabela abaixo mostra os fatores de escala do SPICE
1 Na verdade a simulação é de 0 a 5 s, mas o SPICE só vai guardar o
resultado a partir de 2 s.
Fator
Tera
Giga
Mega
Kilo
Mili
Mills
Micro
Nano
Pico
Femto
Sı́mbolo
t
g
meg
k
m
mil
u
n
p
f
Valor
1012
109
106
103
10−3
25, 4 · 10−6
10−6
10−9
10−12
10−15
Cada valor é definido por uma única letra, exceto
no caso de Mega e Mills2 , para não confundir com Mili.
Qualquer outra letra após o sı́mbolo é desconsiderada,
portanto pode-se usar ms ou gHz (e normalmente devese usar para aumentar a legibilidade).
2
Onda senoidal
Sinais senoidais aparecem frequentemente em estudos de
circuito, portanto é natural que o SPICE tenha como
definir um. O exemplo 2 mostra justamente isto.
Exemplo 2 - Onda senoidal
*Descricao do circuito
VEN 1 0 DC 0V sin(1 10m 1kHz)
R1 1 0 1k
IEN 2 0 sin(1M 10U 1KHz)
2 Um mills é um milésimo de polegada. A distância entre dois pinos de
um CI, por exemplo, é de 100 mills.
R2 3 0 1k
*Fonte de tensao auxiliar
VAUX 3 2 dc 0
*Analise
.control
tran 0.01ms 3ms
plot v(1) -v(2)
plot i(ven) -i(vaux)
.endc
.end
A senóide é definida por: sin(VO VA F TD D), o que gera
um sinal igual a VO antes do atraso TD e a equação abaixo
após TD:
VO + VAe−D(t−TD) sin(2πF(t − TD))
Os dois últimos parâmetros podem ser omitidos e assumem então o valor zero, como mostra o exemplo.
Além das senóides, note o uso de uma fonte de tensão
auxiliar com valor zero (ou seja, equivalente a um curto)
para medida da corrente. Isto é necessário pois o SPICE
só consegue mostrar correntes que passam por fontes de
tensão. Note ainda o sinal de menos nos comandos plot,
indicando que podemos fazer operações matemáticas nas
variáveis.
3
Pulso
O exemplo 3 mostra o uso de um capacitor no SPICE e
como descrever uma onda quadrada e triangular através
do pulse. O capacitor é identificado pela linha que começa com a letra c. Caso fosse necessário um indutor, a
letra equivalente seria l.
Exemplo 3 - Carga e Descarga RC.
*Descricao do circuito
VENA 1 0 pulse(0 1 0 1n 1n 0.5m 1m)
R1 1 2 1k
C1 2 0 100nf
VENB 3 0 pulse(0 1 0 499n 499n 1n 1m)
R2 3 0 1k
*Analise
.control
tran 0.01ms 3ms
plot v(1) v(3)
plot v(1) v(2)
plot v(1,2)
.endc
.end
Uma onda quadrada no SPICE é definida por:
pulse(V1 V2 delay ts td larg periodo)
Onde os parâmetros podem ser visualizados na figura
abaixo. Note que fazendo ts e td quase igual a periodo
e larg muito pequeno, se descreve uma onda triangular.
delay ts
larg
td
V2
V1
periodo
Uma última novidade neste código SPICE é a linha
plot v(1,2), que pega a tensão entre os nós 1 e 2 do
circuito. Todos os outros gráficos são feitos considerando
o nó 0 como referência. Aliás, os cálculos do SPICE são
feitos considerando o nó 0 como referência, portanto é
obrigatório que todo circuito SPICE tenha um nó 0.
4
Modelos
Os elementos ativos (ou seja, diodos e transistores) são
descritos no SPICE através de modelos. No exemplo
abaixo é feita a simulação de um diodo.
Exemplo 4 - Curva de um diodo
*Descricao do circuito
VEN 1 0 0V
D1 2 0 D1N4007
*Fonte de tensao auxliar
VAUX 1 2 dc 0
.model D1N4007 D(IS=2.55e-9
+N=1.75 VJ=0.75 BV=100 IBV=9.86e-5)
*Analise
.control
dc ven 0.01 0.75 0.01
plot i(vaux)
plot log(i(vaux))
.endc
.end
Note que um diodo é identificado no SPICE pela letra
d. Da mesma forma transistores bipolares tem usam a
letra q, MOSFETs usam d e JFETs usam f. Ao final da
pinagem, indica-se o nome do modelo.
No exemplo 4, mostra-se o modelo do diodo 1N4007.
O comando do SPICE é o .model, seguido do nome do
modelo (que é o mesmo usado quando se chama o elemento) e do tipo do modelo (D para diodo, NPN ou PNP
para TBJ, NJF ou PJF para JFETs e NMOS ou PMOS para
MOSFETs) com os parâmetros daquele dispositivo. No
exemplo o diodo é descrito com apenas 5 parâmetros,
mas o modelo completo do diodo tem 15 parâmetros, todos os que não são identificados recebem valores padrões.
Ainda no modelo, note que é possı́vel continuar uma linha acrescentando um + no inı́cio da linha seguinte.
Além disto, o SPICE permite que se incorpore um
arquivo ao código utilizando o comando .include. Isto
pode ser utilizado para incluir uma biblioteca com modelos de dispositivos, tal como a modelos.lib, presente na
página da disciplina.
Exemplo 5 - Transiente dos diodos
.include modelos.lib
*Descricao do circuito
VEN1 1 0 0V pulse 0 5 0 1n 1n .1u .3u
R1 2 4 1k
D1 4 0 D1N4001
R2 3 5 1k
D2 5 0 D1N4148
*Fontes de tensao auxiliar
VAUX1 1 2 dc 0
VAUX2 1 3 dc 0
*Analise
.control
tran .01n .2u
plot v(4) v(5)
plot i(vaux1) i(vaux2)
.endc
.end
não é necessário colocar o modelo do diodo no código
quando se inclue um arquivo de modelos, logo o código
fica mais legı́vel.
5 Amplificador Operacional e subcircuitos.
Um dispositivo mais complexo que será utilizado na disciplina é o amplificador operacional. Não existe um modelo SPICE pronto para amplificadores operacionais, até
porque existem muitas formas diferentes de implementar um. No caso em questão, para simular um LM324
utiliza-se um subcircuito.
Antes, para entender o que é um subcircuito, podemos implementar um multiplicador de tensão, descrevendo um duplicador de tensão e replicando esta descrição usando subcircuitos.
Exemplo 6 - Multiplicador de tensao
.include modelos.lib
*Subcircuito do duplicador
.subckt dup 1 2 3 4
C1 1 3 100nf
C2 2 4 100nf
D1 2 3 D1N4148
D2 3 4 D1N4148
.ends
*Descricao
X1 1 0 2 3
X2 2 3 4 5
X3 4 5 6 7
Ven 1 0 0V
*Fontes de
do circuito
dup
dup
dup
sin(0 10 60Hz)
tensao auxiliar
*Analise
.control
tran .1m 1
plot v(1) v(3) v(5) v(7)
.endc
.end
Para entender melhor este circuito, a figura abaixo mostra um diagrama esquemático dele.
O subcircuito é definido pelos comandos .subckt e
1
C1
dup
D2
D1
2
C2
2
1
Ven
0
3
X1
4
4
X2
3
6
X3
5
.ends. Entre estes dois comandos está a descrição do
subcircuito, que é um código SPICE normal. O comando
.subckt recebe o nome do subcircuito que está sendo
descrito e a lista dos nós deste circuito que serão pinos. O
subcircuito é chamado como um elemento começado pela
letra X, seguido da relação de que nós do circuito estão
ligados aos pinos e do nome do subcircuito utilizado
O modelo do amplificador LM324 presente no arquivo modelos.lib é um subcircuito com cinco pinos: entrada não-inversor, entrada inversora, alimentação positiva, alimentação negativa e saı́da, nesta ordem. Para
utilizá-lo basta chamar um subcircuito com estes 5 pinos
7
e com o nome LM324, vide o exemplo 7.
Exemplo 7 - Oscilador com Amp-op
.include modelos.lib
*Descricao do circuito
XAO 3 4 1 2 6 LM324
VCC 1 0 10
VEE 2 0 -10
R1 6 3 10k
R2 3 0 1k
R3 6 4 10k
C1 4 0 100n
*Fontes de tensao auxiliar
*Analise
.control
tran .1u 1m
plot v(4) v(6)
.endc
.end
6
Fila
Elementos passivos
• Resistor
Rnome nó+ nó- valor
• Capacitor
C nome nó+ nó- valor <IC=tensão inicial>
• Indutor
Lnome nó+ nó- valor <IC=corrente inicial>
Elementos Ativos
• Diodo
Dnome anodo catodo modelo
• Transistor Bipolar
Qnome coletor base emissor modelo <área>
• Transistor JFET
J nome dreno porta fonte modelo <área>
• Transistor MOSFET
M nome dreno porta fonte substrato modelo
<L=comprimento W=largura>
Fontes Independentes
• Tensão
V nome nó+ nó- onda <DC valor> <AC
amplitude,fase>
• Corrente
I nome nó+ nó- onda <DC valor> <AC amplitude,fase>
Onde onda pode ser apenas um valor constante (então
não se usa DC) ou pode ser sin, pulse ou pwl.
• Seno
sin( offset amplitude frequência <atraso <amortecimento <fase> > >)
• Pulso
pulse( v1 v2 atraso subida descida largura
perı́odo)
• Interligação de pontos
pwl( t1 v1 <t2 v2 <t3 v3 . . . > > >)
Fontes controladas
• Tensão ⇒ Tensão
E nome nó+ nó- controle+ controle- ganho
• Tensão ⇒ corrente
Gnome nó+ nó- controle+ controle- ganho
• Corrente ⇒ Tensão
H nome nó+ nó- Vcontrole ganho
• Corrente ⇒ Corrente
F nome nó+ nó- Vcontrole ganho
Análises
• Varredura dc
DC fonte inı́cio fim passo
• Varredura em frequência
AC {lin|dec|oct} passos inı́cio fim
• Transiente
tran passo fim <inı́cio <passo máximo> >
<UIC >
• Função de transferência
tf saı́da entrada
Download