Saltar al contenido

Simulación por computadora de circuitos eléctricos

 

Las computadoras pueden ser herramientas poderosas si se usan correctamente, especialmente en los ámbitos de la ciencia y la ingeniería. El software existe para la simulación de circuitos eléctricos por computadora, y estos programas pueden ser muy útiles para ayudar a los diseñadores de circuitos a probar ideas antes de construir circuitos reales, ahorrando mucho tiempo y dinero.

 

Estos mismos programas pueden ser ayudas fantásticas para el estudiante principiante de electrónica, permitiendo la exploración de ideas de manera rápida y fácil sin necesidad de ensamblar circuitos reales. Por supuesto, no hay sustituto para construir y probar circuitos reales, pero las simulaciones por computadora ciertamente ayudan en el proceso de aprendizaje al permitir que el estudiante experimente con los cambios y vea los efectos que tienen en los circuitos. A lo largo de este libro, incorporaré impresiones de computadora de la simulación de circuitos con frecuencia para ilustrar conceptos importantes. Al observar los resultados de una simulación por computadora, un estudiante puede obtener una comprensión intuitiva del comportamiento del circuito sin la intimidación del análisis matemático abstracto.

 

Simulación de circuito con SPICE

 

Para simular circuitos en la computadora, utilizo un programa particular llamado SPICE , que funciona describiendo un circuito a la computadora mediante una lista de texto. En esencia, este listado es un tipo de programa de computadora en sí mismo y debe cumplir con las reglas sintácticas del lenguaje SPICE. Luego, la computadora se utiliza para procesar o “ejecutar” el programa SPICE, que interpreta el listado de texto que describe el circuito y genera los resultados de su análisis matemático detallado, también en forma de texto. Muchos detalles sobre el uso de SPICE se describen en el volumen 5 (“Referencia”) de esta serie de libros para aquellos que desean obtener más información. Aquí, presentaré los conceptos básicos y luego aplicaré SPICE al análisis de estos circuitos simples sobre los que hemos estado leyendo.

 

Primero, necesitamos tener SPICE instalado en nuestra computadora. Como programa gratuito, está comúnmente disponible en Internet para descargar y en formatos apropiados para muchos sistemas operativos diferentes. En este libro, uso una de las versiones anteriores de SPICE: la versión 2G6, por su simplicidad de uso. Luego, necesitamos un circuito para que SPICE analice. Probemos uno de los circuitos ilustrados anteriormente en el capítulo. Aquí está su diagrama esquemático:

 

spice schematic diagram

 

Este circuito simple consiste en una batería y una resistencia conectadas directamente entre sí. Conocemos el voltaje de la batería (10 voltios) y la resistencia de la resistencia (5 Ω), pero nada más sobre el circuito. Si describimos este circuito a SPICE, debería poder decirnos (como mínimo), cuánta corriente tenemos en el circuito usando Ley de Ohm (I = E / R).

 

SPICE es un programa basado en texto

 

SPICE no puede entender directamente un diagrama esquemático o cualquier otra forma de descripción gráfica. SPICE es un programa de computadora basado en texto, y exige que un circuito se describa en términos de sus componentes constituyentes y puntos de conexión. Cada punto de conexión único en un circuito se describe para SPICE por un número de “nodo”. Los puntos que son eléctricamente comunes entre sí en el circuito a simular se designan como tales compartiendo el mismo número. Puede ser útil pensar en estos números como números “cableados” en lugar de números “nodos”, siguiendo la definición dada en la sección anterior. Así es como la computadora sabe qué está conectado a qué: compartiendo números de cables o nodos comunes. En nuestro circuito de ejemplo, solo tenemos dos “nodos”, el cable superior y el cable inferior. SPICE exige que haya un nodo 0 en algún lugar del circuito, por lo que etiquetaremos nuestros cables 0 y 1:

 

spice nodes circuit

 

En la ilustración anterior, he mostrado múltiples etiquetas “1” y “0” alrededor de cada cable respectivo para enfatizar el concepto de puntos comunes que comparten números de nodo comunes, pero aún así esta es una imagen gráfica, no una descripción de texto. SPICE necesita tener los valores de los componentes y los números de nodos en forma de texto antes de que pueda continuar cualquier análisis.

 

Uso de un editor de texto para crear archivos SPICE <

 

La creación de un archivo de texto en una computadora implica el uso de un programa llamado editor de texto . Similar a un procesador de textos, un editor de texto le permite escribir texto y grabar lo que ha escrito en forma de un archivo almacenado en el disco duro de la computadora. Los editores de texto carecen de la capacidad de formato de los procesadores de texto (no cursiva , negrita o caracteres subrayados), y esto es algo bueno, ya que programas como SPICE no sabrían qué hacer con esta información extra. Si queremos crear un archivo de texto sin formato, sin absolutamente nada grabado excepto los caracteres del teclado que seleccionamos, un editor de texto es la herramienta a utilizar.

 

Si usa un sistema operativo Microsoft como DOS o Windows, hay un par de editores de texto disponibles con el sistema. En DOS, existe el antiguo programa de edición de texto Editar , que se puede invocar escribiendo edit en el símbolo del sistema. En Windows (3.x / 95/98 / NT / Me / 2k / XP), el editor de texto Notepad es su elección de valores. Hay muchos otros programas de edición de texto disponibles, y algunos incluso son gratuitos. Por casualidad uso un editor de texto gratuito llamado Vim , y lo ejecuto bajo los sistemas operativos Windows 95 y Linux. Poco importa qué editor uses, así que no te preocupes si las capturas de pantalla de esta sección no se parecen a las tuyas; la información importante aquí es lo que escribe , no qué editor utiliza.

 

Para describir este circuito simple de dos componentes a SPICE, comenzaré invocando mi programa editor de texto y escribiendo una línea de “título” para el circuito:

 

 

title text editor program

 

 

Podemos describir la batería de la computadora escribiendo una línea de texto que comience con la letra “v” (para “Fuente de voltaje”), identificando a qué cable se conecta cada terminal de la batería (los números de nodo), y el voltaje de la batería, así:

 

 

battery's voltage text editor program

 

 

Esta línea de texto le dice a SPICE que tenemos una fuente de voltaje conectada entre los nodos 1 y 0, corriente continua (CC), 10 voltios. Eso es todo lo que la computadora necesita saber sobre la batería. Ahora pasamos a la resistencia: SPICE requiere que las resistencias se describan con una letra “r”, los números de los dos nodos (puntos de conexión) y la resistencia en ohmios. Como se trata de una simulación por computadora, no es necesario especificar una potencia nominal para la resistencia. Eso es algo bueno de los componentes “virtuales”: ¡no pueden ser dañados por voltajes o corrientes excesivas!

 

 

resistor connected between nodes text editor program

 

 

Ahora, SPICE sabrá que hay una resistencia conectada entre los nodos 1 y 0 con un valor de 5 Ω. Esta línea de texto muy breve le dice a la computadora que tenemos una resistencia (“r”) conectada entre los mismos dos nodos que la batería (1 y 0), con un valor de resistencia de 5 Ω.

 

Si agregamos una declaración .end a esta colección de comandos SPICE para indicar el final de la descripción del circuito, tendremos toda la información que SPICE necesita, recopilada en un archivo y lista para procesar. Esta descripción del circuito, compuesta de líneas de texto en un archivo de computadora, se conoce técnicamente como netlist , o deck :

 

 

netlist deck text editor program

 

 

Mover archivos del editor de texto a SPICE

 

Una vez que hemos terminado de escribir todos los comandos SPICE necesarios, necesitamos “guardarlos” en un archivo en el disco duro de la computadora para que SPICE tenga algo a lo que hacer referencia cuando se invoque. Como esta es mi primera lista de redes SPICE, la guardaré con el nombre de archivo “circuit1.cir” (el nombre real es arbitrario). Puede elegir nombrar su primera lista de redes SPICE como algo completamente diferente, siempre y cuando no viole ninguna regla de nombre de archivo para su sistema operativo, como el uso de no más de 8 + 3 caracteres (ocho caracteres en el nombre y tres caracteres en la extensión: 12345678.123) en DOS.

 

Para invocar SPICE (dígale que procese el contenido del archivo netlist circuit1.cir), tenemos que salir del editor de texto y acceder a un símbolo del sistema (el “indicador DOS” para usuarios de Microsoft) donde podemos ingresar texto comandos para que el sistema operativo de la computadora obedezca. Esta forma “primitiva” de invocar un programa puede parecer arcaica para los usuarios de computadoras acostumbrados a un entorno gráfico de “apuntar y hacer clic”, pero es una forma muy poderosa y flexible de hacer las cosas. Recuerde, lo que está haciendo aquí al usar SPICE es una forma simple de programación de computadora, y cuanto más cómodo se sienta para darle a la computadora los comandos de texto a seguir, en lugar de simplemente hacer clic en las imágenes de los iconos con el mouse, más dominio que tendrás sobre tu computadora.

 

Una vez en el símbolo del sistema, escriba este comando, seguido de una pulsación de tecla [Intro] (este ejemplo usa el nombre del archivo circuit1.cir; si ha elegido un nombre de archivo diferente para su archivo netlist, sustitúyalo):

 

especia 

 

Así es como se ve esto en mi computadora (ejecutando el sistema operativo Linux), justo antes de presionar la tecla [Enter]:

 

 

spice linux

 

 

Tan pronto como presione la tecla [Intro] para emitir este comando, el texto de la salida de SPICE debería desplazarse por la pantalla de la computadora. Aquí hay una captura de pantalla que muestra lo que SPICE genera en mi computadora (he alargado la ventana "terminal" para mostrarle el texto completo. Con un terminal de tamaño normal, el texto excede fácilmente el largo de una página):

 

 

spice reiteration

 

 

SPICE comienza con una reiteración de la netlist, completa con la línea del título y la declaración final. Aproximadamente a la mitad de la simulación, muestra el voltaje en todos los nodos con referencia al nodo 0. En este ejemplo, solo tenemos un nodo que no sea el nodo 0, por lo que muestra el voltaje allí: 10.0000 voltios. Luego muestra la corriente a través de cada fuente de voltaje. Como solo tenemos una fuente de voltaje en todo el circuito, solo muestra la corriente a través de esa. En este caso, la fuente de corriente es de 2 amperios. Debido a una peculiaridad en la forma en que SPICE analiza la corriente, el valor de 2 amperios se emite como negativo (-) 2 amperios.

 

La última línea de texto en el informe de análisis de la computadora es "disipación de energía total", que en este caso se da como "2.00E + 01" vatios: 2.00 x 101, o 20 vatios. SPICE genera la mayoría de las figuras en notación científica en lugar de notación normal (punto fijo). Si bien esto puede parecer más confuso al principio, en realidad es menos confuso cuando se trata de números muy grandes o muy pequeños. Los detalles de la notación científica se tratarán en el próximo capítulo de este libro.

 

Una de las ventajas de utilizar un programa de texto "primitivo" como SPICE es que los archivos de texto tratados son extremadamente pequeños en comparación con otros formatos de archivo, especialmente los formatos gráficos utilizados en otro software de simulación de circuitos. Además, el hecho de que la salida de SPICE sea texto sin formato significa que puede dirigir la salida de SPICE a otro archivo de texto donde pueda manipularse aún más. Para hacer esto, volvemos a emitir un comando al sistema operativo de la computadora para invocar SPICE, esta vez redirigiendo la salida a un archivo que llamaré "output.txt":

 

 

spice linux output

 

 

SPICE se ejecutará "silenciosamente" esta vez, sin el flujo de salida de texto a la pantalla de la computadora como antes. Se creará un nuevo archivo, output1.txt, que puede abrir y cambiar utilizando un editor de texto o procesador de textos. Para esta ilustración, usaré el mismo editor de texto ( Vim ) para abrir este archivo:

 

 

circuit analysis text editor program

 

 

Ahora, puedo editar libremente este archivo, eliminando cualquier texto extraño (como los "banners" que muestran la fecha y la hora), dejando solo el texto que considero pertinente para el análisis de mi circuito:

 

 

circuit analysis text editor program

 

 

Una vez editado y vuelto a guardar adecuadamente con el mismo nombre de archivo (output.txt en este ejemplo), el texto puede pegarse en cualquier tipo de documento, siendo "texto plano" un formato de archivo universal para casi todos los sistemas informáticos. Incluso puedo incluirlo directamente en el texto de este libro, en lugar de como una imagen gráfica de "captura de pantalla", como esta:

 

mi primer circuito
 v 1 0 dc 10
 r 1 0 5
 .final
 voltaje de nodo
 (1) 10.0000
 corrientes de fuente de voltaje
 nombre actual
 v -2.000E + 00
 disipación de potencia total 2.00E + 01 vatios
 

 

Por cierto, este es el formato preferido para la salida de texto de simulaciones SPICE en esta serie de libros: como texto real, no como imágenes de captura de pantalla gráficas.

 

Alteración de valores en SPICE

 

Para alterar el valor de un componente en la simulación, necesitamos abrir el archivo netlist (circuit1.cir) y hacer las modificaciones necesarias en la descripción del texto del circuito, luego guardar esos cambios en el mismo nombre de archivo y volver a invoque SPICE en el símbolo del sistema. Este proceso de edición y procesamiento de un archivo de texto es familiar para todos los programadores de computadoras. Una de las razones por las que me gusta enseñar SPICE es que prepara al alumno para pensar y trabajar como un programador informático, lo cual es bueno porque la programación informática es un área importante del trabajo electrónico avanzado.

 

Anteriormente exploramos las consecuencias de cambiar una de las tres variables en un circuito eléctrico (voltaje, corriente o resistencia) usando la Ley de Ohm para predecir matemáticamente lo que sucedería. Ahora intentemos lo mismo con SPICE para hacer los cálculos por nosotros.

 

Si tuviéramos que triplicar el voltaje en nuestro último circuito de ejemplo de 10 a 30 voltios y mantener la resistencia del circuito sin cambios, esperaríamos que la corriente también se triplique. Intentemos esto, cambiando el nombre de nuestro archivo netlist para no sobrescribir el primer archivo. De esta manera, tendremos ambas versiones de la simulación del circuito almacenadas en el disco duro de nuestra computadora para uso futuro. La siguiente lista de texto es el resultado de SPICE para esta lista de red modificada, formateada como texto sin formato en lugar de como una imagen gráfica de la pantalla de mi computadora:

 

segundo circuito de ejemplo
 v 1 0 dc 30
 r 1 0 5
 .final
 voltaje de nodo
 (1) 30.0000
 corrientes de fuente de voltaje
 nombre actual
 v -6.000E + 00
 disipación de potencia total 1.80E + 02 vatios
 

 

Tal como esperábamos, la corriente se triplicó con el aumento de voltaje. La corriente solía ser de 2 amperios, pero ahora ha aumentado a 6 amperios (-6,000 x 100). Observe también cómo ha aumentado la disipación de potencia total en el circuito. Antes tenía 20 vatios, pero ahora tiene 180 vatios (1,8 x 102). Recordando que la potencia está relacionada con el cuadrado del voltaje (Ley de Joule: P = E2 / R), esto tiene sentido. Si triplicamos el voltaje del circuito, la potencia debería aumentar en un factor de nueve (32 = 9). Nueve veces 20 es de hecho 180, por lo que la producción de SPICE sí se correlaciona con lo que sabemos sobre la potencia en los circuitos eléctricos.

 

Creación de comentarios en SPICE

 

Si queremos ver cómo respondería este circuito simple en un amplio rango de voltajes de batería, podemos invocar algunas de las opciones más avanzadas dentro de SPICE. Aquí, usaré la opción de análisis ".dc" para variar el voltaje de la batería de 0 a 100 voltios en incrementos de 5 voltios, imprimiendo el voltaje y la corriente del circuito en cada paso. Las líneas en la lista de redes SPICE que comienzan con un símbolo de estrella ("*") son comentarios . Es decir, no le dicen a la computadora que haga nada relacionado con el análisis de circuitos, sino que simplemente sirven como notas para cualquier ser humano que lea el texto de la lista de la red.

 

tercer circuito de ejemplo
 v 1 0
 r 1 0 5
 * la declaración ".dc" le dice a spice que barre el suministro "v"
 * voltaje de 0 a 100 voltios en pasos de 5 voltios.
 .dc v 0 100 5
 .print dc v (1) i (v)
 .final
 

 

 

Comandos de impresión y trazado

 

El comando .print en esta lista de redes SPICE indica a SPICE que imprima columnas de números correspondientes a cada paso del análisis:

 

v i (v)
 0.000E + 00 0.000E + 00
 5.000E + 00 -1.000E + 00
 1.000E + 01 -2.000E + 00
 1.500E + 01 -3.000E + 00
 2.000E + 01 -4.000E + 00
 2.500E + 01 -5.000E + 00
 3.000E + 01 -6.000E + 00
 3.500E + 01 -7.000E + 00
 4.000E + 01 -8.000E + 00
 4.500E + 01 -9.000E + 00
 5.000E + 01 -1.000E + 01
 5.500E + 01 -1.100E + 01
 6.000E + 01 -1.200E + 01
 6.500E + 01 -1.300E + 01
 7.000E + 01 -1.400E + 01
 7.500E + 01 -1.500E + 01
 8.000E + 01 -1.600E + 01
 8.500E + 01 -1.700E + 01
 9.000E + 01 -1.800E + 01
 9.500E + 01 -1.900E + 01
 1.000E + 02 -2.000E + 01
 

 

 

Si reedito el archivo netlist, cambiando el comando .print por un comando .plot, SPICE generará un gráfico crudo compuesto por caracteres de texto:

 

Leyenda: + = v # rama
 -------------------------------------------------- ----------------------
 barrido v # rama-2.00e + 01 -1.00e + 01 0.00e + 00
 --------------------- | ------------------------ | --- --------------------- |
 0.000e + 00 0.000e + 00. . +
 5.000e + 00 -1.000e + 00. . +.
 1.000e + 01 -2.000e + 00. . +.
 1.500e + 01 -3.000e + 00. . +.
 2.000e + 01 -4.000e + 00. . +.
 2.500e + 01 -5.000e + 00. . +.
 3.000e + 01 -6.000e + 00. . +.
 3.500e + 01 -7.000e + 00. . +.
 4.000e + 01 -8.000e + 00. . +.
 4.500e + 01 -9.000e + 00. . +.
 5.000e + 01 -1.000e + 01. +.
 5.500e + 01 -1.100e + 01. +. .
 6.000e + 01 -1.200e + 01. +. .
 6.500e + 01 -1.300e + 01. +. .
 7.000e + 01 -1.400e + 01. +. .
 7.500e + 01 -1.500e + 01. +. .
 8.000e + 01 -1.600e + 01. +. .
 8.500e + 01 -1.700e + 01. +. .
 9.000e + 01 -1.800e + 01. +. .
 9.500e + 01 -1.900e + 01. +. .
 1.000e + 02 -2.000e + 01 +. .
 --------------------- | ------------------------ | --- --------------------- |
 barrido v # rama-2.00e + 01 -1.00e + 01 0.00e + 00
 

 

 

En ambos formatos de salida, la columna izquierda de números representa el voltaje de la batería en cada intervalo, ya que aumenta de 0 voltios a 100 voltios, 5 voltios a la vez. Los números en la columna de la derecha indican la corriente del circuito para cada uno de esos voltajes. Mire detenidamente esos números y verá la relación proporcional entre cada par: la Ley de Ohm (I = E / R) es verdadera en todos y cada uno de los casos, cada valor de corriente es 1/5 del valor de voltaje respectivo, porque la resistencia del circuito es exactamente 5 Ω. Una vez más, los números negativos para la corriente en este análisis de SPICE son más una peculiaridad que cualquier otra cosa. Solo preste atención al valor absoluto de cada número a menos que se especifique lo contrario.

 

Programas informáticos para interpretar y convertir datos SPICE

 

Incluso hay algunos programas de computadora capaces de interpretar y convertir la salida de datos no gráficos de SPICE en un diagrama gráfico. Uno de estos programas se llama Nutmeg , y su salida se ve así:

 

nutmeg graphical plot

 

Observe cómo Nutmeg traza el voltaje de resistencia v (1) (voltaje entre el nodo 1 y el punto de referencia implícito del nodo 0) como una línea con una pendiente positiva (de abajo a la izquierda a arriba a la derecha). Si alguna vez se vuelve competente en el uso de SPICE no es relevante para su aplicación en este libro. Lo único que importa es que desarrolle una comprensión de lo que significan los números en un informe generado por SPICE. En los ejemplos que vienen, haré todo lo posible para anotar los resultados numéricos de SPICE para eliminar cualquier confusión, y desbloquear el poder de esta increíble herramienta para ayudarlo a comprender el comportamiento de los circuitos eléctricos.

 

HOJAS DE TRABAJO RELACIONADAS: