Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Technologie industrielle

Les bizarreries des SPICE

"Déchets dedans, déchets de dehors." —Anonyme

SPICE est un logiciel très fiable, mais il a ses petites bizarreries auxquelles il faut un certain temps pour s'y habituer. Par "bizarrerie", j'entends une demande faite à l'utilisateur d'écrire le fichier source d'une manière particulière afin qu'il fonctionne sans donner de messages d'erreur.

Je ne pas signifie tout type de défaut avec SPICE qui produirait des résultats erronés ou trompeurs :cela serait plus correctement appelé un « bug ». En parlant de bugs, SPICE en a aussi quelques-uns.

Certaines (ou toutes) de ces bizarreries peuvent être uniques à la version 2g6 de SPICE, qui est la seule version que j'ai largement utilisée. Ils ont peut-être été corrigés dans les versions ultérieures.

Un bon début

SPICE exige que le fichier source commence par autre chose que la première « carte » dans la description du circuit « pont ». Ce premier caractère du fichier source peut être un saut de ligne, une ligne de titre ou un commentaire :il doit juste y avoir quelque chose là avant la première ligne de spécification de composant du fichier.

Sinon, SPICE refusera de faire une analyse, affirmant qu'il y a une erreur grave (telle que des connexions de nœuds incorrectes) dans le "deck".

Une bonne fin

SPICE exige que le .end ligne à la fin du fichier source ne se termine pas par un caractère de saut de ligne ou de retour chariot. En d'autres termes, lorsque vous avez fini de taper « .end ” vous ne devez pas appuyer sur [Entrée] touche de votre clavier.

Le curseur de votre éditeur de texte doit s'arrêter immédiatement à droite du "d" après le ".end " et n'allez pas plus loin. Ne pas tenir compte de cette bizarrerie entraînera une "carte de fin manquante ” message d'erreur à la fin de la sortie d'analyse.

L'analyse réelle du circuit n'est pas affectée par cette erreur, j'ignore donc normalement le message. Cependant, si vous cherchez à recevoir une sortie « parfaite », vous devez faire attention à cette idiosyncrasie.

Doit avoir un nœud 0

Vous disposez d'une grande liberté dans la numérotation des nœuds du circuit, mais vous devez avoir un nœud 0 quelque part dans votre netlist pour que SPICE fonctionne. Le nœud 0 est le nœud par défaut pour la terre du circuit, et c'est le point de référence pour toutes les tensions spécifiées aux emplacements de nœud unique.

Lorsqu'une simple analyse CC est effectuée par SPICE, la sortie contiendra une liste des tensions à tous les nœuds non nuls du circuit. Le point de référence (masse) pour toutes ces lectures de tension est le nœud 0. Par exemple :

tension de nœud tension de nœud ( 1) 15.0000 ( 2) 0.6522 

Dans cette analyse, il existe une tension continue de 15 volts entre le nœud 1 et la masse (nœud 0) et une tension continue de 0,6522 volts entre le nœud 2 et la masse (nœud 0). Dans ces deux cas, la polarité de la tension est négative au nœud 0 par rapport à l'autre nœud (en d'autres termes, les deux nœuds 1 et 2 sont positifs par rapport au nœud 0).

Évitez les circuits ouverts

SPICE ne peut pas gérer les circuits ouverts d'aucune sorte. Si votre netlist spécifie un circuit avec une source de tension ouverte, par exemple, SPICE refusera d'effectuer une analyse.

Un excellent exemple de ce type d'erreur se trouve lors de la « connexion » d'une source de tension à l'entrée d'une source dépendante de la tension (utilisée pour simuler un amplificateur opérationnel). SPICE a besoin de voir un chemin complet pour le courant, donc j'attache généralement une résistance de grande valeur (appelez-la rbogus !) à travers la source de tension pour agir comme une charge minimale.

Éviter certaines boucles de composants

SPICE ne peut pas gérer certaines boucles ininterrompues de composants dans un circuit, à savoir les sources de tension et les inductances. Les boucles suivantes entraîneront l'abandon de l'analyse par SPICE :

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 

La raison pour laquelle SPICE ne peut pas gérer ces conditions provient de la façon dont il effectue l'analyse CC :en traitant toutes les inductances comme des courts-circuits et tous les condensateurs comme des ouvertures. Étant donné que les courts-circuits (0 Ω) et les circuits ouverts (résistance infinie) contiennent ou génèrent des infinités mathématiques, un ordinateur ne peut tout simplement pas les gérer, et SPICE interrompra donc l'analyse si l'une de ces conditions se produit.

Comment gérer les inductances et les condensateurs dans SPICE

Afin de rendre ces configurations de composants acceptables pour SPICE, vous devez insérer des résistances de valeurs appropriées aux endroits appropriés, en éliminant les courts-circuits et les circuits ouverts respectifs. Si une résistance en série est requise, choisissez une valeur de résistance très faible.

A l'inverse, si une résistance parallèle est requise, choisissez une valeur de résistance très élevée. Par exemple :

Pour résoudre le problème d'inductance parallèle, insérez une résistance de très faible valeur en série avec chaque inductance incriminée.

netlist d'origine l1 2 4 10m l2 2 4 50m l3 2 4 25m 
fixe netlist rbogus1 2 3 1e-12 rbogus2 2 5 1e-12 l1 3 4 10m l2 2 4 50m l3 5 4 25m

Comme dans l'exemple précédent avec des inductances parallèles, il est important de faire la résistance de correction (Rfausse ) très faible en résistance, afin de ne pas impacter substantiellement le fonctionnement du circuit.

Pour fixer le circuit de condensateur en série, l'un des condensateurs doit avoir une résistance de dérivation à travers lui. SPICE nécessite un chemin de courant continu vers chaque condensateur pour l'analyse.

netlist d'origine c1 5 6 33u c2 6 7 47u 
fixe netlist c1 5 6 33u c2 6 7 47u rbogus 6 7 9e12 

Le Rfaux une valeur de 9 téra-ohms fournit un chemin de courant continu vers C1 (et autour de C2 ) sans impacter substantiellement le fonctionnement du circuit.

Mesure actuelle

Bien que l'impression ou le tracé de la tension soit assez facile dans SPICE, la sortie des valeurs de courant est un peu plus difficile. Les mesures de tension sont spécifiées en déclarant les nœuds de circuit appropriés.

Par exemple, si nous souhaitons connaître la tension aux bornes d'un condensateur dont les fils se connectent entre les nœuds 4 et 7, nous pourrions distinguer .print l'instruction ressemble à ceci :

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

Cependant, si nous voulions que SPICE mesure le courant à travers ce condensateur, ce ne serait pas si facile. Les courants dans SPICE doivent être spécifiés par rapport à une source de tension, et non à un composant arbitraire. Par exemple :

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

Ce .print la carte demande à SPICE d'imprimer le courant à travers la source de tension Vinput , qui se trouve être le même que le courant traversant notre condensateur entre les nœuds 4 et 7. Mais que se passe-t-il s'il n'y a pas une telle source de tension dans notre circuit à référencer pour la mesure du courant ?

Une solution consiste à insérer une résistance shunt dans le circuit et à mesurer la tension à ses bornes. Dans ce cas, j'ai choisi une valeur de résistance shunt de 1 Ω pour produire 1 volt par ampère de courant à travers C1 :

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

Cependant, l'insertion d'une résistance supplémentaire dans notre circuit suffisamment grande pour faire chuter une tension significative pour la plage de courant prévue pourrait nuire aux choses. Une meilleure solution pour SPICE est la suivante, bien que l'on ne rechercherait jamais une telle solution de mesure actuelle dans la vraie vie :

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

L'insertion d'une "fausse" source de tension continue de zéro volt n'affecte pas du tout le fonctionnement du circuit, mais elle fournit un endroit pratique pour SPICE pour prendre une mesure de courant. Chose intéressante, peu importe que Vfaux est une source de courant continu lorsque nous cherchons à mesurer le courant alternatif !

Le fait que SPICE produira une lecture de courant alternatif est déterminé par le "ac ” spécification dans le .print carte et rien de plus. Il convient également de noter que la façon dont SPICE attribue une polarité aux mesures de courant est un peu étrange. Prenons l'exemple du circuit suivant :

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

Avec une tension totale de 10 volts et une résistance totale de 10 kΩ, vous pouvez vous attendre à ce que SPICE vous dise qu'il y aura 1 mA (1e-03) de courant à travers la source de tension V1 , mais en réalité, SPICE affichera un chiffre négatif 1 mA (-1e-03) ! SPICE considère que le courant sortant de l'extrémité négative d'une source de tension continue (le sens normal) est une valeur négative du courant plutôt qu'une valeur positive du courant.

Il y a des moments où je vais ajouter une "fausse" source de tension dans un circuit CC comme celui-ci simplement pour que SPICE produise un positif valeur actuelle :

exemple 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 

Remarquez comment Vfaux est positionné de manière à ce que le courant du circuit entre par son côté positif (nœud 3) et sorte par son côté négatif (nœud 0). Cette orientation assurera un chiffre de sortie positif pour le courant du circuit.

Analyse de Fourier

Lors de l'exécution d'une analyse de Fourier (domaine fréquentiel) sur une forme d'onde, j'ai trouvé nécessaire d'imprimer ou de tracer la forme d'onde à l'aide de .print ou .plot cartes, respectivement. Si vous ne l'imprimez pas ou ne le tracez pas, SPICE fera une pause pendant un moment pendant l'analyse, puis abandonnera le travail après avoir sorti la « solution transitoire initiale ».

Aussi, lors de l'analyse d'une onde carrée produite par le « impulsion ", vous devez donner à la forme d'onde un temps de montée et de descente fini, sinon les résultats de l'analyse de Fourier seront incorrects. Pour une raison quelconque, une onde carrée parfaite avec un temps de montée/descente nul produit des niveaux significatifs de même harmoniques selon l'option d'analyse de Fourier de SPICE, ce qui n'est pas vrai pour les ondes carrées réelles.


Technologie industrielle

  1. Comment créer une saisie semi-automatique de recherche Google
  2. Introduction à SPICE
  3. Histoire de SPICE
  4. L'interface de ligne de commande
  5. Composants de circuit
  6. Considérations pratiques - Communication numérique
  7. Périphériques semi-conducteurs dans SPICE
  8. Bizarreries JFET
  9. bizarreries IGFET