Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

SPICE Quirks

“Entra lixo, sai lixo.” —Anônimo

SPICE é um software muito confiável, mas tem suas pequenas peculiaridades que demoram um pouco para se acostumar. Por “peculiaridade”, quero dizer uma exigência colocada sobre o usuário para escrever o arquivo de origem de uma maneira particular para que funcione sem dar mensagens de erro.

Eu não significa qualquer tipo de falha no SPICE que produziria resultados errôneos ou enganosos:isso seria mais apropriadamente conhecido como um "bug". Falando em bugs, SPICE tem alguns deles também.

Algumas (ou todas) dessas peculiaridades podem ser exclusivas do SPICE versão 2g6, que é a única versão que usei extensivamente. Eles podem ter sido corrigidos em versões posteriores.

Um bom começo


O SPICE exige que o arquivo de origem comece com algo diferente do primeiro "cartão" no "baralho" de descrição do circuito. Este primeiro caractere no arquivo de origem pode ser um feed de linha, linha de título ou um comentário:deve haver apenas algo lá antes da primeira linha de especificação de componente do arquivo.

Caso contrário, a SPICE se recusará a fazer uma análise, alegando que há um erro grave (como conexões de nó inadequadas) no "deck".

Um bom final


SPICE exige que o .end linha no final do arquivo de origem não ser encerrada com um avanço de linha ou um caractere de retorno de carro. Em outras palavras, quando você terminar de digitar “ .end ”Você não deve pressionar [Enter] chave no seu teclado.

O cursor no seu editor de texto deve parar imediatamente à direita do “d” após o “ .end ”E não vá mais longe. A não observação dessa peculiaridade resultará em um “ cartão final ausente ”Mensagem de erro no final da saída da análise.

A análise real do circuito não é afetada por esse erro, então normalmente ignoro a mensagem. No entanto, se você deseja receber uma saída "perfeita", deve prestar atenção a essa idiossincrasia.

Deve ter um nó 0


Você tem muita liberdade para numerar os nós do circuito, mas deve tem um nó 0 em algum lugar da sua netlist para que o SPICE funcione. O nó 0 é o nó padrão para o aterramento do circuito e é o ponto de referência para todas as tensões especificadas em localizações de nó único.

Quando a análise DC simples é realizada pelo SPICE, a saída conterá uma lista de tensões em todos os nós diferentes de zero no circuito. O ponto de referência (terra) para todas essas leituras de tensão é o nó 0. Por exemplo:
 voltagem do nó voltagem do nó (1) 15,0000 (2) 0,6522 

Nesta análise, existe uma tensão DC de 15 volts entre o nó 1 e o terra (nó 0), e uma tensão DC de 0,6522 volts entre o nó 2 e o terra (nó 0). Em ambos os casos, a polaridade da tensão é negativa no nó 0 com referência ao outro nó (em outras palavras, ambos os nós 1 e 2 são positivos em relação ao nó 0).

Evite circuitos abertos


SPICE não pode lidar com circuitos abertos de qualquer tipo. Se a sua netlist especifica um circuito com uma fonte de tensão aberta, por exemplo, o SPICE se recusará a realizar uma análise.

Um bom exemplo desse tipo de erro é encontrado ao “conectar” uma fonte de tensão à entrada de uma fonte dependente de tensão (usada para simular um amplificador operacional). SPICE precisa ver um caminho completo para a corrente, então eu costumo amarrar um resistor de alto valor (chame-o de rbogus !) através da fonte de tensão para atuar como uma carga mínima.

Evite certos loops de componentes


SPICE não pode lidar com certos loops ininterruptos de componentes em um circuito, nomeadamente fontes de tensão e indutores. Os seguintes loops farão com que o SPICE aborte a análise:






 netlist l1 2 4 10m l2 2 4 50m l3 2 4 25m 






 netlist v1 1 0 dc 12 l1 1 0 150m 






 netlist c1 5 6 33u c2 6 7 47u 



O motivo pelo qual o SPICE não pode lidar com essas condições deriva da maneira como ele realiza a análise DC:tratando todos os indutores como curtos e todos os capacitores como abertos. Uma vez que os curtos-circuitos (0 Ω) e os circuitos abertos (resistência infinita) contêm ou geram infinitudes matemáticas, um computador simplesmente não pode lidar com eles e, portanto, o SPICE interromperá a análise se qualquer uma dessas condições ocorrer.

Como lidar com indutores e capacitores em SPICE


A fim de tornar essas configurações de componentes aceitáveis ​​para SPICE, você deve inserir resistores de valores adequados nos locais apropriados, eliminando os respectivos curtos-circuitos e circuitos abertos. Se um resistor em série for necessário, escolha um valor de resistência muito baixo.

Por outro lado, se um resistor paralelo for necessário, escolha um valor de resistência muito alto. Por exemplo:

Para corrigir o problema do indutor paralelo, insira um resistor de valor muito baixo em série com cada indutor incorreto.






 netlist original l1 2 4 10m l2 2 4 50m l3 2 4 25m 
 fixed netlist rbogus1 2 3 1e-12 rbogus2 2 5 1e-12 l1 3 4 10m l2 2 4 50m l3 5 4 25m 

Como no exemplo anterior com indutores paralelos, é importante fazer o resistor de correção (R ​​ bogus ) muito baixa em resistência, de modo a não impactar substancialmente a operação do circuito.

Para consertar o circuito do capacitor em série, um dos capacitores deve ter uma derivação do resistor através dele. SPICE requer um caminho de corrente DC para cada capacitor para análise.






 netlist original c1 5 6 33u c2 6 7 47u 
 fixed netlist c1 5 6 33u c2 6 7 47u rbogus 6 7 9e12 

O R falso valor de 9 Tera-ohms fornece um caminho de corrente DC para C 1 (e cerca de C 2 ) sem impactar substancialmente a operação do circuito.

Medição de corrente


Embora a impressão ou plotagem da tensão seja bastante fácil no SPICE, a saída dos valores atuais é um pouco mais difícil. As medições de tensão são especificadas declarando os nós de circuito apropriados.

Por exemplo, se desejarmos saber a tensão em um capacitor cujos cabos se conectam entre os nós 4 e 7, podemos fazer .print declaração parecida com esta:






 c1 4 7 22u .print ac v (4,7) 

No entanto, se quisermos que o SPICE meça o atual através desse capacitor, não seria tão fácil. As correntes em SPICE devem ser especificadas em relação a uma fonte de tensão, não a qualquer componente arbitrário. Por exemplo:






 c1 4 7 22u vinput 6 4 ac 1 sin .print ac i (vinput) 



Este .print cartão instrui SPICE para imprimir a corrente através da fonte de tensão V input , que por acaso é a mesma que a corrente através de nosso capacitor entre os nós 4 e 7. Mas e se não houver tal fonte de tensão em nosso circuito para referência para medição de corrente?

Uma solução é inserir um resistor shunt no circuito e medir a tensão nele. Neste caso, eu escolhi um valor de resistência de shunt de 1 Ω para produzir 1 volt por ampere de corrente até C 1 :




 c1 4 7 22u rshunt 6 4 1 .print ac v (6,4) 

No entanto, a inserção de uma resistência extra em nosso circuito grande o suficiente para reduzir uma tensão significativa para a faixa pretendida de corrente pode afetar as coisas adversamente. Uma solução melhor para o SPICE é esta, embora ninguém busque uma solução de medição tão atual na vida real:




 c1 4 7 22u vbogus 6 4 dc 0 .print ac i (vbogus) 

Inserir uma fonte de tensão DC "falsa" de zero volts não afeta a operação do circuito de forma alguma, mas fornece um lugar conveniente para o SPICE fazer uma medição de corrente. Curiosamente, não importa que V bogus é uma fonte DC quando procuramos medir a corrente AC!

O fato de que SPICE produzirá uma leitura de corrente AC é determinado pelo “ ac ”Especificação no .print cartão e nada mais. Também deve ser observado que a maneira como o SPICE atribui uma polaridade às medições de corrente é um pouco estranha. Tome o seguinte circuito como exemplo:






 exemplo v1 1 0 r1 1 2 5k r2 2 0 5k .dc v1 10 10 1 .imprimir dc i (v1). 

Com tensão total de 10 volts e resistência total de 10 kΩ, você pode esperar que SPICE diga que haverá 1 mA (1e-03) de corrente através da fonte de tensão V 1 , mas na realidade, SPICE produzirá um valor negativo 1 mA (-1e-03)! SPICE considera a corrente que sai da extremidade negativa de uma fonte de tensão DC (a direção normal) como um valor negativo de corrente em vez de um valor positivo de corrente.

Há momentos em que colocarei uma fonte de tensão "falsa" em um circuito CC como este simplesmente para fazer o SPICE produzir um positivo valor atual:






 exemplo v1 1 0 r1 1 2 5k r2 2 3 5k vbogus 3 0 dc 0 .dc v1 10 10 1 .print dc i (vbogus) .end 

Observe como V bogus é posicionado de forma que a corrente do circuito entre em seu lado positivo (nó 3) e saia em seu lado negativo (nó 0). Esta orientação garantirá uma figura de saída positiva para a corrente do circuito.

Análise de Fourier


Ao realizar uma análise de Fourier (domínio da frequência) em uma forma de onda, descobri que é necessário imprimir ou plotar a forma de onda usando o .print ou .plot cartões, respectivamente. Se você não imprimir ou plotar, o SPICE fará uma pausa por um momento durante a análise e, em seguida, abortará o trabalho após a saída da "solução transitória inicial".

Além disso, ao analisar uma onda quadrada produzida pelo “ pulso ”Função de origem, você deve dar à forma de onda algum tempo finito de subida e descida, ou então os resultados da análise de Fourier estarão incorretos. Por alguma razão, uma onda quadrada perfeita com tempo zero de subida / descida produz níveis significativos de uniforme harmônicos de acordo com a opção de análise de Fourier da SPICE, o que não é verdade para ondas quadradas reais.

Tecnologia industrial

  1. Como criar um preenchimento automático da Pesquisa Google
  2. Introdução ao SPICE
  3. História do SPICE
  4. A interface da linha de comando
  5. Componentes do circuito
  6. Considerações práticas - Comunicação Digital
  7. Dispositivos semicondutores em SPICE
  8. JFET Quirks
  9. IGFET Quirks
  10. Simulação de Circuitos Elétricos por Computador