Thursday, April 9, 2020

Aplicación de Jupyter para calcular y mostrar solución de circuitos

Introducción

Desde el estudiante, hasta el investigador en algún campo de la ingeniería, necesitan de herramientas que le permitan realizar una diversidad de cálculos numéricos y, una vez estos se han completado, generar de un documento que permita dar a conocer el resultado de su trabajo.

El notebook de Jupyter es una herramienta que posee múltiples ventajas para el cálculo numérico y la presentación de documentos, es una herramienta libre que puede ejecutar de manera independiente para cada una de sus celdas códigos para varios lenguajes de programación como Python, R y Julia; además, puede maquetar texto mediante Markdown que a su vez es compatible con Latex y CSS. Para una presentación de texto o figuras más exigente, puede utilizarse código html.

La figura 1 muestra una porción del portal de Anaconda, un sitio desde el cual se puede acceder a abundante documentación, blogs y descarga de Jupyter notebook, aplicación que ejecuta directamente el código Python y Markdown entre otros. Este portal se puede acceder desde aquí.


Fig.1 Portal de anaconda




Presentación de texto e imágenes

Se requiere de encontrar los parámetros eléctricos de un amplificador que utiliza un transistor BJT y deberá calcularse el punto de operación Q que incluye la Ib así como VCE; además, para el análisis de AC se encontrará la impedancia de entrada, impedancia de salida, ganancia de tensión y de corriente.

La figura 2 muestra el circuito a analizar.

Fig.2 Uso de Markdown para presentación de texto y gráfico.

La figura 2a muestra el código que debe incluirse para definir el contenido de la primera celda como "Markdown" tal como lo indica la flecha y luego, para cada encabezado, se inicia la línea con un símbolo "#" para el primer nivel. 

En la segunda celda, también del tipo Markdown, se dispone de un encabezado de segundo nivel identificado al inicio de la línea con dos "##"; además se incorpora una imagen con nombre "ckto0.png" que pertenece al amplificador a analizar. Estos archivos de figuras pueden ubicarse en el mismo directorio que el archivo de Jupyter o bien, dentro de un subdirectorio.

Es necesario destacar que Markdown acepta código CSS para objetos que incluyen párrafos y figuras entre otros. En ese caso particular se aprecia en la línea la porción de código <figure style="width:70%"  con la cual se reduce la imagen al 70% de su tamaño original. Para conocer más opciones de configuración CSS, las puede encontrar en este PDF.

La figura 2b muestra la presentación que tendrán las dos celdas al ejecutarse, lo cual se logra con el botón de menú "run" o bien presionando la secuencia de teclas Shift-Enter. Cabe notar que la presentación es aceptable e inmediata de aplicar si no se desea una maquetación exigente del contenido. Si fuera este último caso, la celda puede ejecutar código html con sólo escribir como primera línea de la misma %%html.

Cálculos

Entre otros lenguajes de programación, Jupyter ejecuta Python, para lo cual es necesario definir la celda como tipo "code". La potencia de este lenguaje permite dar solución numérica a problemas sumamente complejos, lo que posibilita resolver con Jupyter una gran variedad de problemas en ciencias e ingeniería.

La figura 3 muestra una porción de código para encontrar parámetros eléctricos del circuito.

Fig.3 Presentación de fórmulas que determinan la ganancia de tensión y código Python para calcularla.

La figura 3 muestra dos celdas, una en Markdown que brinda con buena presentación, las fórmulas que definen la ganancia de tensión. Estas fórmulas han sido escritas con la sintaxis definida por Latex, la cual es bastante intuitiva luego de pocos minutos de utilizarlo, sin contar a lo largo de muchos años, se ha dispuesto de abundante documentación y ejemplos en la Web.

La segunda celda, etiquetada con el número 10, dispone de una fórmula escrita en Python que calcula la ganancia de tensión y muestra su resultado. Este lenguaje de programación ha tomado un auge importante en los últimos años, dada su sencillez en la sintaxis y la abundancia de librerías en aplicaciones científicas.

Cabe mencionar de manera muy importante, que a lo largo del documento, se disponen de celdas con código Python con variables comunes utilizadas por ellas. En Jupyter es posible reasignar un valor a una variable y ejecutar todas las celdas de forma rápida, actualizando instantáneamente los nuevos valores. Consecuentemente, el código es reutilizable con ninguno o pocos cambios, para amplificadores similares.

Conclusiones

  •  El uso de Jupyter con lenguaje de programación Python permite realizar cálculos numéricos complejos en el campo de la ingeniería, que pueden incluir circuitos analógicos como amplificadores con BJT.
  • El uso de Python como lenguaje de programación y la sintaxis de Latex para redactar fórmulas, pueden considerarse como habilidades generales que poseen estudiantes, ingenieros y científicos, lo cual puede facilitar considerablemente el uso de Jupyter.
  • La presentación de informes puede hacerse con Jupyter, dada la posibilidad de maquetación de texto con CSS y fórmulas en Latex.
  • En general, Jupyter puede ser una valiosa herramienta para la elaboración de documentos y cálculos en el campo de la ciencia e ingeniería.
 

Descarga de archivos

Para quienes deseen conocer conocer en detalle los documentos generados en la elaboración de este blog, pueden descargar los archivos siguientes:
  • El archivo tipo ZIP contiene el documento JupyterCircuits2.ipynb (Deberá tener instalado Jupyter - anaconda, disponible en Windows, Linux y Mac) y las figuras utilizadas en el mismo: Descarga.
  • El archivo PDF contiene el documento Jupyter con figuras incorporadas en dicho formato: Descarga.

Saturday, March 28, 2020

Uso de Libreoffice para el cálculo de componentes en un amplificador BJT tipo NPN

Introducción

En muchas ocasiones, el proceso del diseño de circuitos requiere el cálculo de valores en sus componentes, haciendo que el usuario invierta un tiempo considerable para encontrar los valores deseados y, una vez encontrados, no siempre tendrá la flexibilidad de hacer cambios de una manera clara y comprensible. Si bien es cierto, puede ayudarse con una gran variedad de lenguajes de programación y luego resolver matrices de considerable tamaño, el proceso en general puede ser poco amigable.

Aplicaciones de ofimática "libres" y fáciles de obtener como Libreoffice calc, han incorporado varias funciones para facilitar al usuario la realización de sus cálculos previo al análisis de resultados. Una de esas funciones es "solver", utilizada para encontrar valores a partir de muchas variables y restricciones a algunas de ellas.

En este blog se utilizará la función solver de Libreoffice para calcular valores de componentes electrónicos de una manera amigable y flexible, haciendo posible de utilizar la misma hoja electrónica para cálculos similares. Para verificar la utilidad de los datos obtenidos, se ha utilizado el simulador Qucs version 0.0.19, instalado en Windows 10 pro versión 1903.

Circuito propuesto

Para mostrar la utilidad del solver, se propone encontrar los valores de componentes pasivos de un amplificador de emisor común que emplea un BJT tipo NPN. El circuito se muestra en la figura 1.




Figura1. a) Amplificador de emisor común. b) Malla equivalente para encontrar corriente de base, c) Porción del circuito utilizada para encontrar la corriente de colector, d) Modelo simplificado para encontrar la ganancia de tensión en AC.

De la figura 1a) puede verse que el amplificador posee las resistencias RB1, Rb2 y Rb3 que ayudan a fijar la corriente de base y establecer el punto de operación Q. Los capacitores C1 y C2 acoplan la señal tanto a la entrada como a la salida del circuito y finalmente C3 sirve para el desacoplo de la componente AC en la región de emisor, lo cual provoca una mayor ganancia de señal en dicha componente alterna.

Las imágenes de la figura 1b), 1c) y 1d) muestran los modelos de circuitos a analizar, tanto en AC como en DC. En el análisis de amplificadores transistorizados generalmente se busca encontrar una ganancia de tensión (AV) y, en ocasiones, una tensión de colector para el punto de operación VcQ. 

Para esta aplicación particular, se asignarán valores constantes a estos parámetros eléctricos y se buscará encontrar los valores de resistencias y capacitancias para los componentes pasivos del circuito.

La herramienta Solver

Esta herramienta permite encontrar los valores de celdas que se utilizan como incógnitas en una hoja electrónica de Libreoffice calc, para obtener el resultado fijado por el usuario. La figura 2 muestra los datos introducidos y el menú del cual se obtiene la herramienta.

Figura 2. a) Celdas que contienen los datos iniciales de variables a calcular, b) Menú de herramientas de Libreoffice calc, c) Opciones de configuración para solver.

En la figura 2a) se disponen de 4 celdas con fondo amarillo que se utilizan par definir datos constantes a lo largo del cálculo. Los valores de resistencias definidos en las celdas B4:B8 contienen valores aleatorios y las celdas restantes que contienen números, son resultados de fórmulas, tales como DeltaV, Vc(DC) e Ib que han sido definidas en la figura 1b) a 1d). 

El menú descrito en la figura 2b) indica la ubicación de solver y 2c) muestra las opciones de configuración. Estas son las siguientes:

  1. Target Cell. Debe contener la celda con la fórmula en la cual se busca obtener un valor específico. Tal es el caso de DeltaV, Vc(DC) e Ib para el rango B13:B15.
  2. Optimize results to. Puede establecerse que, para el resultado definido en el literal anterior, el programa busque un valor específico, un máximo o un mínimo.
  3. By changing cells. Se define el rango de celdas que contienen variables. En este caso particular, son 5 resistencias del circuito, cuyos valores están en el rango B4:B8.
  4. Limiting conditions. Se establecen las restricciones de los cálculos. Dadas las condiciones, debe definirse por ejemplo que todos los valores de resistencias sean positivas y que algunos parámetros tengan valores fijos.
En este caso, se busca llegar a valores de AV y VcQ, ubicados en las celdas B13 y B14 respectivamente. Por tanto, si Target cell tiene la celda B13 buscando el valor de AV, debería incluirse entre las restricciones de Limiting conditions, que B14 sea igual a VcQ.

Escenarios propuestos

Para probar la herramienta, se proponen dos escenarios un poco diferentes, los cuales se describen en la figura 3.

Figura 3. Valores propuestos de AV y Vc(DC) para dos escenarios en los que se calcularán elementos pasivos del amplificador.

La porción de hoja electrónica mostrada en la figura 3, describe en la columna B los valores iniciales para las resistencias. Tal como se aprecia, contiene valores que, en conjunto, no son utilizados para amplificadores y servirán como valores iniciales para el cálculo por solver.

Los valores de resistencias en las celdas C4:C8 y D4:D8 para los escenarios 1 y 2 respectivamente, son los resultados obtenidos. la configuración de solver utilizada ha sido:

Escenario 1.

  • Target Cell. C13
  • Optimize results to. 5
  • By changing cells. C4:C8
  • Limiting conditions. C4>=0, C5>=0, C6>=0, C7>=0, C8>=0, C14>=0, C15=8. 

Escenario 2.

  • Target Cell. D13
  • Optimize results to. 3
  • By changing cells. D4:D8
  • Limiting conditions. D4>=0, D5>=0, D6>=0, D7>=0, D8>=0, D14>=0, D15=5.

Resultados de las simulaciónes

El resultado del primer escenario se muestra en la figura 4.

Figura 4. a) Punto de operación del transistor, c) Gráficas de simulación, d) a e) Valores obtenidos de simulación.

Los valores esperados de AV y Vc son 5V y 8V respectivamente; se han obtenido 4.39V y 7.63V, lo cual representa un error de 12.2% y 4.6%. Considerando que no se han utilizado fórmulas que representen modelos muy aproximados de los componentes utilizados en el amplificador y, si la aplicación del mismo no requiere valores de muy baja tolerancia, pueden aplicarse los valores encontrados con solver.

En el caso de los capacitores, su valor ha sido calculado como 5 veces aquella capacitancia que causa la frecuencia de corte para un circuito RC. fc = 1 / (2 PI r c) donde r es la resistencia Thévenin vista desde los bornes del capacitor, pero a veces puede apreciarse que la reactancia capacitiva no es lo suficientemente baja para que la tension AC tenga la misma magnitud en ambos bornes del capacitor respecto de tierra. Para igualar lo más posible estas tensiones, se aumenta el valor del capacitor, lo cual puede verse en ambos escenarios para las figuras 5a) y 5b).

Los resultados del segundo escenario se dan a conocer en la figura 5.

Figura 5. a) Punto de operación del transistor, c) Gráficas de simulación, d) a e) Valores obtenidos de simulación.

Para este segundo caso, Los valores esperados de AV y Vc son 3V y 5V respectivamente; se han obtenido 2.7V y 5.86V, lo cual representa un error de 10% y 17.2%. Se puede aplicar si se cumplen condiciones de baja tolerancia como en el escenario 1.

Conclusiones


  • La herramienta de solver, disponible en Libreoffice calc, permite calcular fácilmente los valores de componentes pasivos de un amplificador, una vez se han generado las fórmulas de los parámetros eléctricos que se consideran constantes o restricciones en el diseño.
  • Con solver pueden cambiarse los valores de parámetros constantes y generar fácilmente un segundo escenario para el mismo amplificador.
  • Los parámetros encontrados con solver poseen una tolerancia alta porque se han utilizado modelos poco aproximados respecto de los utilizados por Qucs; sin embargo, el usuario puede utilizar fórmulas con modelos más exactos y aún así aprovechar la herramienta de solver para encontrar fácilmente los valores de elementos pasivos del amplificador.

Thursday, March 26, 2020

Consejos en el proceso de manufactura para PCBs con acabado profesional

Introducción

A medida que se han ido desarrollando herramientas para el diseño de circuitos, tanto analógicos como aquellos controlados por microcontroladores, se abre la posibilidad de construir PCBs para aplicaciones específicas; sin embargo, en El Salvador no se dispone de empresas dedicadas a la construcción de tarjetas electrónicas y la posibilidad inmediata es su construcción artesanal, lo que ocasiona errores por soldaduras frías o falsos contactos, adicionando a ello una falta de presentación en su calidad de producto final en el contexto de un proyecto profesional.

Se dispone de una cantidad considerable de empresas en el extranjero que se dedican a la fabricación de PCBs a precios bastante bajos, lo cual hace viable la construcción de circuitos dedicados para proyectos profesionales. Si bien es cierto los costos de fabricación son bajos, debe incluirse el flete desde el país de origen y los impuestos de introducción por la aduana, que usualmente están calculados sobre la base de la factura pagada al fabricante.

Algunas empresas, además de fabricar PCBs, realizan el montaje de los componentes electrónicos. Estos componentes pueden ser suministrados por el cliente, pueden ser comprados por el fabricante de PCBs o bien ellos mismos poseen un almacén de componentes electrónicos, los cuales tienen generalmente precios muy bajos.

A continuación se brindan unos consejos útiles para quienes requieren de PCBs con un acabado profesional para la entrega de sus proyectos.

Empresas

Al buscar en línea empresas dedicadas a la fabricación de PCBs, resulta fácil de encontrar muchas de ellas ya que publicitan sus servicios en los buscadores de internet. Al buscar en detalle sus servicios pueden apreciarse algunas diferencias que pueden ser convenientes:

  • Si además de ofrecer el PCB tradicional, ofrecen realizar el impreso en material tipo flex, aluminio, cobre grueso entre otras.
  • Se brinda el servicio de ensamblaje de componentes.
  • Poseen un almacén con disponibilidad de componentes a bajo precio.
  • Si ellos no tienen disponibilidad de componentes, pueden realizar la compra con referencias dadas por el cliente.
  • Disponen de una calculadora de precio en línea.

La siguiente tabla muestra algunos ejemplos de fabricantes en línea.
URL de fabricante PCBs
Otros PCB
Ensamblaje
Gestión de compra
Almacén
País origen
Precio
x
x
x
-
China
En línea
x
x
-
-
China
En línea
x
-
-
-
Alemania
Cotizar
x
-
-
-
China
En línea
x
x
-
-
China
En línea
-
-
-
-
EEUU
En línea
-
x
x
x
China
En línea

 Como puede apreciarse, Seeedstudio ofrece la posibilidad de comprar en un almacén componentes a bajo precio, por lo que se convierte en una excelente opción para seleccionarse como el proveedor de las placas impresas.

Búsqueda de componentes

El primer paso consiste en la búsqueda de los componentes electrónicos cuyas funciones puedan ser integradas con los demás componentes del circuito. En esta tarea resulta útil disponer de proveedores como digikey, mouser y arrow, entre otros.
Sin embargo, al conocer que el fabricante de PCBs posee un almacén de componentes electrónicos, debe buscarse en primera instancia esta opción, en especial para componentes pasivos como resistencias y capacitores, los cuales suelen ser numerosos pero de bajo costo. Seeedstudio muestra un amplio surtido de componentes en este enlace. Una vez se dispone de los componentes que el fabricante puede surtir, se buscan los componentes restantes con los proveedores en línea, como los mencionados en el párrafo anterior.
La siguiente figura muestra una porción de componentes disponibles en Seeedstudio.

Muestra de listado de componentes ofrecidos por Seeedstudio

Aplicación para el diseño de PCBs


Una de las aplicaciones que ofrece una facilidad notable en el proceso de aprendizaje para su utilización y provee su uso gratuito con limitaciones en las dimensiones del impreso es Eagle©. Aún en la necesidad de requerir dimensiones mayores a 100x80 mm, el pago de licencia es de bajo costo, menor a $20 mensuales, por lo cual se recomienda esta aplicación.
Generalmente, el diseño de los PCBs se entrega en formato GERBER ya que puede incluir los siguientes archivos:
  • Diseño de cada una de las capas del PCB descritas en el documento brd.
  • La máscara de soldadura para los componentes (soldermask).
  • La película de color que se añade a la superficie del PCB.
  • El detalle de agujeros.
  • La lista de materiales.
El procedimiento para obtener los archivos GERBER se describe en este enlace, un vídeo aquí y la siguiente figura muestra la ventana de diálogo de Eagle para generar los archivos que, al integrarse en un comprimido, son los requeridos por el fabricante de PCBs.

Ventana de diálogo para Autodesk Eagle en la creación de archivos GERBER.

Conclusiones

  • Entre varias opciones para obtener un PCB con acabado profesional, se incluye la manufactura en el extranjero con empresas como las mencionadas en la primera tabla. Aunque los costos de transporte e impuestos puedan resultar considerables, se compensa con el bajo precio de los componentes electrónicos y de manufactura de PCB en el extranjero.
  • Para la manufactura de PCBs que incluya compra y emsamblado de componentes, primero debe buscarse en la lista que posee el fabricante de PCBs y luego con proveedores en línea. Al hacerlo de esta manera, se reducirá costos notablemente porque el fabricante de PCBs cobra la gestión de compra con los proveedores.