Los fundamentos de Monte Carlo en SPICE: Teoría y demostración

Zachariah Peterson
|  Creado: Abril 14, 2022  |  Actualizado: Septiembre 2, 2024
Monte Carlo en SPICE

Cada vez que colocas un componente en tu PCB, es casi como si estuvieras apostando. Todos los componentes tienen tolerancias, y algunas de estas son muy precisas (por ejemplo, los resistores), pero otros componentes pueden tener tolerancias muy amplias en sus valores nominales (por ejemplo, inductores de hilo o ferritas). En el evento de que las tolerancias en estos componentes se vuelvan demasiado grandes, ¿cómo puedes predecir cómo estas tolerancias afectarán a tus circuitos?

Mientras que podrías calcular variaciones alrededor de los valores eléctricos nominales (voltaje, corriente o potencia) a mano, realizar estos cálculos manualmente consume mucho tiempo, especialmente en circuitos grandes. Sin embargo, los simuladores SPICE han tomado prestado un tipo de simulación muy útil de la teoría de probabilidad para ayudarte a responder estas preguntas. Este tipo de simulación es conocido como Monte Carlo, y ahora puedes realizar esta simulación con el paquete SPICE en Altium Designer.

En este artículo, proporcionaré una visión general de la teoría involucrada en la comprensión y construcción de simulaciones de Monte Carlo, luego mostraré algunos resultados de ejemplo para un circuito regulador de potencia y cómo los resultados se ven afectados por las tolerancias. Las simulaciones de Monte Carlo generan una gran cantidad de datos que puedes usar para tomar estadísticas sobre la operación de tu circuito, y esto te da una buena idea de si tu producto tiene una alta probabilidad de funcionar según tus especificaciones debido a las tolerancias en los valores de los componentes.

Monte Carlo en Simulaciones SPICE

Las simulaciones de Monte Carlo operan en un proceso simple: generar aleatoriamente un conjunto de números y luego usar esos números aleatorios en un modelo matemático para calcular algo útil. Cuando se usa una simulación de Monte Carlo en SPICE, la simulación genera los valores de los componentes en tu circuito de manera aleatoria usando las tolerancias que defines. Luego, utiliza estos valores de componentes generados aleatoriamente para ejecutar una simulación SPICE estándar. Este proceso se repite múltiples veces (a veces cientos de veces) para darte un conjunto de datos que describen cómo cambia el comportamiento de tu circuito debido a las tolerancias de los componentes.

Los paquetes SPICE implementan simulaciones de Monte Carlo a través de un proceso simple. Esto implica la generación de números aleatorios y el cálculo de voltaje y corriente en el algoritmo estándar de SPICE, seguido por la visualización de resultados en una tabla o gráfico:

  1. Seleccione qué componentes desea que experimenten variaciones aleatorias y defina la tolerancia en el componente.
  2. Seleccione una distribución para las tolerancias de los componentes (la Gaussiana es la más utilizada) y el número de ejecuciones de simulación.
  3. El simulador SPICE genera valores de componentes aleatorios usando el nominal definido en el esquemático y la tolerancia/distribución definida en el Paso 2.
  4. El simulador SPICE calcula el voltaje/corriente/potencia objetivo en cada punto del circuito usando los valores de componentes aleatorios en el Paso 3.
  5. Los Pasos 3 y 4 se repiten hasta alcanzar el número deseado de ejecuciones de simulación.
  6. Los resultados del Paso 5 se compilan en un gráfico o tabla para una inspección o análisis más detallado.

Ejemplo: Simulación de Monte Carlo de un Regulador de Voltaje

En el ejemplo a continuación, he utilizado el circuito convertidor buck mostrado abajo. Este circuito utiliza un inductor relativamente grande en la sección principal (L1), seguido por un filtro L en la salida para reducir aún más el ruido de conmutación. El capacitor de salida tiene una resistencia de amortiguación para ayudar a reducir la intensidad de la respuesta transitoria y suavizar el voltaje de salida.

Monte Carlo SPICE buck converter
Circuito Buck convertidor que usaré en este ejemplo de simulación.

Este circuito está diseñado para reducir la entrada de 25 V a aproximadamente 6.75 V. En mi simulación, voy a permitir que los valores del inductor varíen hasta un 30%, y realizaré 15 pruebas. Esta gran variación se encontraría en algunos inductores de hilo y ferritas, y usar una variación tan grande puede ayudarte a ver cuáles podrían ser los valores extremos de ondulación y sobretensión.

La otra razón por la que el inductor es el componente variado es que es un determinante principal de la ondulación de salida cuando el convertidor opera en el modo de conducción continua. Incluso podríamos ir un paso más allá y mirar la corriente del inductor en sí para ver cuán cerca viene la corriente del inductor a la conducción continua si realmente necesitáramos verificar el peor comportamiento eléctrico.

Resultados

Algunos resultados iniciales que muestran la respuesta transitoria dada variaciones del 30% en los valores de los componentes se muestran a continuación. Desde esta ventana, vemos que el convertidor ya muestra algo de sobrepico que varía desde 8.37 V hasta 8.56 V, dependiendo de los valores de los inductores. Los valores para el contorno inferior (en verde, L1 = 91.9 uH, L2 = 6.16 uH) y el contorno superior (en púrpura, L1 = 122uH, L2 = 7.64 uH) están marcados en el gráfico a continuación.

Monte Carlo SPICE simulation
Resultados de análisis transitorio para nuestro convertidor de dólares generado con Monte Carlo en SPICE.

Cada curva corresponde a un par de valores de inductores generados aleatoriamente. A partir de los resultados, podemos ver claramente los efectos de las variaciones en el inductor:

  1. Hay alguna variación en el tiempo de subida, sobrepico y respuesta transitoria a medida que el regulador se activa.
  2. Cada posible valor de inductancia produce cambios muy pequeños en el rizado en la forma de onda del voltaje de salida.

El hecho de que el rizado de salida permanezca tan bajo es alentador; significa que podemos confiar en este diseño para producir un rizado consistente asumiendo pequeñas variaciones en todos los demás parámetros.

¿Por qué es Tan Baja la Variación en el Rizado?

Sin mirar la ecuación para la ondulación de salida como función de la inductancia de salida, es natural asumir que un cambio en la inductancia de +/- 30% produciría variaciones igualmente grandes en la inductancia de salida. Sin embargo, si observamos la ecuación para la ondulación de la forma de onda de voltaje en la corriente de salida para un convertidor buck operando en el modo de conducción continua, podemos ver por qué este no es el caso:

Monte Carlo SPICE
La onda de corriente de salida para un convertidor de dólares.

Debido a que el valor de la inductancia está en el denominador, el efecto de esas variaciones se reduce. Puedes ver esto tomando una perturbación sobre los valores nominales del inductor y observando cómo la sensibilidad de la ondulación es proporcional a cualquier variación en las inductancias:

Monte Carlo SPICE
Variación en la corriente de onda de salida para nuestra tolerancia del 30% en los inductores. Podemos ver que el impacto de estas variaciones es menor cuando el inductor es más grande.

El impacto de estas variaciones se reduce por el valor del inductor. En otras palabras, una tolerancia del 30% para un inductor grande creará un cambio mucho menor en la ondulación de salida que la misma tolerancia del 30% en un inductor más pequeño. Este comportamiento es típico cuando la relación entre algún valor eléctrico (la corriente en este caso) está relacionada de manera no lineal con el valor del componente en cuestión.

Además, la frecuencia de corte de 3 dB en el filtro de salida (L2 + C2) ya está por debajo de la frecuencia PWM que modula Q1. La caída de 3 dB en esta sección del filtro es nominalmente de 41.1 kHz, mientras que la frecuencia de ondulación coincide con la frecuencia PWM de 100 kHz. La ondulación ya será filtrada significativamente, por lo que las variaciones resultantes en la frecuencia de corte no tienen tanto impacto en la ondulación de salida.

Análisis Estadístico

Si vas a realizar un análisis de Monte Carlo, puede que necesites hacer algún análisis estadístico para entender realmente los límites del comportamiento de tu circuito debido a variaciones aleatorias en los valores de los componentes. En el gráfico a continuación, he tomado mis resultados de análisis transitorio anteriores y extraído el voltaje máximo que ocurre durante la fase de encendido debido al sobrepaso. He calculado el promedio y la desviación estándar para cuantificar los efectos de las variaciones en los valores de inductancia.

Para exportar tus resultados transitorios en formato CSV u otro formato de datos, usa el comando Archivo → Exportar → Gráfico desde el menú principal en Altium Designer. Luego puedes importar tus datos a Excel, MATLAB, Mathematica u otro programa de análisis de datos.

Monte Carlo SPICE statistics
Desviación media y estándar en la tensión de sobrepaso determinada por respuestas transitorias.

Si construimos un intervalo de confianza utilizando nuestros datos recogidos y los valores estadísticos anteriores, el 95% de estos circuitos mostrarán un sobrepico que varía de 8.375 V a 8.605 V. Si quisiéramos realizar un análisis más profundo, como un análisis de peor caso, podríamos usar cualquiera de estos valores extremos para entender el comportamiento del circuito.

Evaluación de la Fiabilidad con Conjuntos de Datos Mayores

Para evaluar la fiabilidad estadísticamente, podrías realizar un número mucho mayor de simulaciones, de modo que tendrías muchos puntos de datos para observar. Con más datos, podrías construir un histograma a partir de tus mediciones extraídas y usar esto para obtener una distribución de probabilidad que define el comportamiento del circuito; entonces podrías usar estos valores para determinar la probabilidad de que el circuito opere en un régimen totalmente inaceptable (más allá de los valores extremos en nuestro intervalo de confianza).

Solo por diversión, he aumentado el número de simulaciones realizadas en este análisis a 100 iteraciones. Los resultados transitorios con 100 iteraciones se muestran a continuación. A partir de estas curvas, podemos extraer nuevamente el voltaje de sobrepico máximo durante la fase de encendido.

Monte Carlo SPICE statistics
Respuesta transitoria durante los primeros 100 nosotros de la fase de encendido. De este conjunto de 100 curvas, podríamos extraer la tensión de eclips para cada curva y determinar una distribución de probabilidad describiendo la tensión máxima.

Si exportas los resultados a Excel, ahora tendrás suficientes datos para crear un histograma como el que se muestra a continuación. La curva naranja superpuesta muestra la función acumulativa determinada a partir de los datos agrupados; muestra qué porcentaje de los datos se encuentra en o por debajo del contenedor actual y puede usarse como medida del rango de operación esperado de este circuito.

Monte Carlo SPICE statistics
Estadísticas de voltaje de sobre-shoot determinadas a partir de 100 simulaciones.

La conclusión aquí es que tenemos una forma rápida y fácil de verificar cómo variará el rendimiento del circuito dadas las tolerancias de los componentes. Si los resultados no están dentro de nuestras especificaciones o márgenes de seguridad, entonces el circuito necesitará ser modificado antes de crear el diseño del PCB y ensamblar un prototipo.

Si estás interesado en ejecutar simulaciones de Monte Carlo para tus circuitos dentro de Altium Designer®, no necesitas un paquete de simulación externo o software de análisis especializado. Todo lo que necesitas para evaluar tus circuitos y realizar simulaciones de fiabilidad se puede encontrar dentro del editor esquemático en Altium Designer. Una vez que hayas completado tu PCB y estés listo para compartir tus diseños con colaboradores o tu fabricante, puedes compartir tus diseños completados a través de la plataforma Altium 365™. Todo lo que necesitas para diseñar y producir electrónica avanzada se puede encontrar en un solo paquete de software.

Solo hemos arañado la superficie de lo que es posible hacer con Altium Designer en Altium 365. Comienza tu prueba gratuita de Altium Designer + Altium 365 hoy.

Sobre el autor / Sobre la autora

Sobre el autor / Sobre la autora

Zachariah Peterson tiene una amplia experiencia técnica en el mundo académico y la industria. Actualmente brinda servicios de investigación, diseño y marketing a empresas de la industria electrónica. Antes de trabajar en la industria de PCB, enseñó en la Universidad Estatal de Portland y realizó investigaciones sobre la teoría, los materiales y la estabilidad del láser aleatorio. Su experiencia en investigación científica abarca temas de láseres de nanopartículas, dispositivos semiconductores electrónicos y optoelectrónicos, sensores ambientales y estocástica. Su trabajo ha sido publicado en más de una docena de revistas revisadas por pares y actas de congresos, y ha escrito más de 1000 blogs técnicos sobre diseño de PCB para varias empresas. Es miembro de IEEE Photonics Society, IEEE Electronics Packaging Society, American Physical Society y Printed Circuit Engineering Association (PCEA), y anteriormente se desempeñó en el Comité Asesor Técnico de Computación Cuántica de INCITS.

Recursos Relacionados

Documentación técnica relacionada

Volver a la Pàgina de Inicio
Thank you, you are now subscribed to updates.