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.

No comments:

Post a Comment