SHARENG Divulgación

Inicio » 2016 » marzo

Monthly Archives: marzo 2016

Statistical analysis using Monte Carlo method (I)

imagesWhen any electronic device is designed, we can use several deterministic methods for calculating its main parameters. So, we can get the parameters that we measure physically in any device or system. These preliminary calculations allow the development and their results are usually agreed with the prediction. However, we know that everything we manufacture is always subject to tolerances. And these tolerances cause variations in the results that often can not be analyzed easily, without a powerful calculation application. In 1944, Newmann and Ulam developed a non-deterministic, statistical method called Monte Carlo. In the following blog post.  we are going to analyze the use of this powerful method for predicting possible tolerances in circuits, especially when they are manufactured industrially.

In any process, the output result is a function of the input variables. These variables generate a response which can be determined, both if the system is linear and if it is not linear. The relationship between the response and the input variables is called transfer function, and its knowledge allows us to get any result concerning the input excitation.

However, it must be taken in account that the input variables are random variables, with their own distribution function, and are subject to stochastic processes, although their behavior is predictable through the Theory of Probability. For example, when we make any measure, we get its average value and the error in which can be measured that magnitude. This allows to limit the environment in which it is correct and decide when the magnitude behaves incorrectly.

For many years, I have learned to successfully transform the results obtained by simulations in real physical results, with predictable behavior and I got valid conclusions, and I have noticed that in most cases the use of the simulation is reduced to get the desired result without studying the dependence of the variables in that result. However, most simulators have very useful statistical algorithms that, properly used, allow to get a series of data that the designer can use in the future, predicting any system behavior, or at least analyzing what it can happen.

However, these methods are not usually used. Either for knowledge lack of statistical patterns, or for ignorance of how these patterns can be used. Therefore, in these posts we shall analyze the Monte Carlo method on circuit simulations and we shall discover an important tool which is unknown to many simulator users.

DEVICES LIKE RANDOM VARIABLES

Electronic circuits are made by simple electronic devices, but they have a statistical behavior due to manufacturing. Device manufacturers usually show their nominal values and tolerances. Thus, a resistance manufacturer not only publishes its rating values and its dimensions. Tolerances, stress, temperature dependance, etc., are also published. These parameters provide important information, and propertly analyzed with a powerful calculation tool (such as a simulator), we can predict the behavior of any complex circuit.

In this post, we are going to analyze exclusively the error environment around the nominal value, in one resistor. In any resistor, the manufacturer defines its nominal value and its tolerance. We asume these values 1kΩ for the nominal value and ± 5% for its tolerance. It means the resistance value can be found between 950Ω and 1,05kΩ. In the case of a bipolar transistor, the current gain β could take a value between 100 and 600 (i.e. NXP BC817), which may be an important and uncontrollable variation of current collector. Therefore, knowing these data, we can analyze the statistical behavior of an electronic circuit through the Monte Carlo method.

First, let us look resistance: we have said that the resistance has a ± 5% tolerance. Then, we will analyze the resistor behavior with the Monte Carlo method, using a circuit simulator. A priori, we do not know the probability function, although most common is a Gaussian function, whose expression is well known

normal

being μ the mean and σ² the variance. Analyzing by the simulator, through Monte Carlo method and with 2000 samples, we can get a histogram of resistance value, like it is shown in the next figure

Distribución de los valores de la resistencia usando el análisis de Monte Carlo

Histogram of the resistor

Monte Carlo algorithm introduces a variable whose value corresponds to a Gaussian distribution, but the values it takes are random. If these 2000 samples were taken in five different processes with 400 samples each one, we would still find a Gaussian tendency, but their distribution would be different

Distribuciones gaussianas con varios lotes

Gaussian distributions with different processes

Therefore, working properly with the random variables, we can get a complete study of the feasibility of any design and the sensitivity that each variable shows. In the next example, we are going to analyze the bias point of a bipolar transistor, whose β variation is between 100 and 600, being the average value 350 (β is considered a Gaussian distribution), feeding it with resistors with a nominal tolerance of ± 5% and studying the collector current variation using 100 samples.

STATISTICAL ANALYSIS OF A BJT BEHAVIOR IN DC

Now, we are going to study the behavior of a bias circuit, with a bipolar transistor, like the next figure

Circuito de polarización de un BJT

Bias point circuit of a BJT

where the resistors have a ±5% tolerance and the transistor has a β variation between 100 and 600, with a nominal value of 350. Its bias point is  Ic=1,8mA, Vce=3,2V. Making a Monte Carlo analysis, with 100 samples, we can get the next result

Variación de la corriente del BJT en función de las variables aleatorias

BJT current distribution respect to the random variables

 

Seeing the graph form, we can check that the result converges to a Gaussian distribution, being the average value Ic=1,8mA and its tolerance, ±28%. Suppose now that we do the same sweep before processing, in several batches of 100 samples each one. The obtained result is

Variación de la corriente del BJT para varios lotes

BJT current distribution respect several batches

where we can see that in each batch we get a graph which converges to a Gaussian distribution. In this case, the Gaussian distribution has an average value μ=1,8mA and a variance σ²=7%. Thus, we have been able to analyze each process not only like a global statistical analysis but also like a batch. Suppose now that β is a random variable with an uniform distribution function, between 100 and 600. By analyzing only 100 samples, the next graphic is got

Distribución con b uniforme

Results with a BETA uniform distribution

and it can be seen that the current converges to an uniform distribution, increasing the current tolerance range and the probability at the ends. Therefore, we can also study the circuit behaviour when it shows different distribution functions for each variable.

Seeing that, with the Monte Carlo method, we are able to analyze any complex circuit behavior in terms of tolerances, in the same way it will help us to study how we could correct those results. Therefore, in the next posts we shall analyzed deeply this method, increasing the study of its potential and what we can be achieved with it.

CORRECTING THE TOLERANCES

In the simulated circuit, when we have characterized the transistor β like an uniform random variable, we have increased the probability into unwanted current values (at the ends). This is one of the most problematic features, not only on bipolar transistors but also on field effect transistor: the variations of their current ratios. This simple example let see what happens when we use a typical correction circuit for the β variation, like the classic polarization by emitter resistance.

Bias circuit by emitter resistance

Using this circuit and analyzing by Monte Carlo, we can compare its results with the analysis obtained in the previous case, but using 1000 samples. The result is

Resultados con ambos circuitos

Results with both circuits

where we can check that the probability values have increased around 2mA, reducing the probability density at the low values of current and narrowing the distribution function. Therefore, the Monte Carlo method is a method that not only enables us to analyze the behavior of a circuit when subjected to a statistical, but also allow us to optimize our circuit and adjust it to the desired limit values. Used properly, it is a powerful calculation tool that will improve the knowledge of our circuits.

CONCLUSIONS

In this first post, we wish to begin a serie dedicated to Monte Carlo method. In it, we wanted to show the method and its usefulness. As we have seen in the examples, the use of Monte Carlo method provides very useful data, especially with the limitations and variations of the circuit we are analyzing if we know how they are characterized. On the other hand, it allows us to improve it using statistical studies, in addition to setting the standards for the verification of in any production process.

In the next posts we shall go more in depth on the method, by performing a more comprehensive method through the study of a specific circuit of one of my most recent projects, analyzing what the expected results and the different simulations that can be performed using the method of Monte Carlo, like the worst case, the sensitivity, and the post-production optimization.

REFERENCES

  1. Castillo Ron, Enrique, “Introducción a la Estadística Aplicada”, Santander, NORAY, 1978, ISBN 84-300-0021-6.
  2. Peña Sánchez de Rivera, Daniel, “Fundamentos de Estadística”, Madrid,  Alianza Editorial, 2001, ISBN 84-206-8696-4.
  3. Kroese, Dirk P., y otros, “Why the Monte Carlo method is so important today”, 2014, WIREs Comp Stat, Vol. 6, págs. 386-392, DOI: 10.1002/wics.1314.
Anuncios

Análisis estadísticos usando el método de Monte Carlo (I)

imagesCuando nos enfrentamos a cualquier diseño electrónico, por lo general disponemos de métodos deterministas que permiten el cálculo de lo que estamos diseñando, de modo que podemos prever los parámetros que vamos a encontrar en la medida física de cualquier dispositivo o sistema. Estos cálculos previos facilitan el desarrollo y normalmente los resultados suelen coincidir en gran medida con la predicción. Sin embargo, sabemos que todo aquello que creemos o fabriquemos siempre está sometido a tolerancias. Y esas tolerancias provocan variaciones en los resultados que muchas veces no se pueden analizar de forma sencilla, sin una herramienta de cálculo potente. En 1944, Newmann y Ulam desarrollaron un método estadístico no determinista que denominaron Método de Monte Carlo. En las siguientes entradas vamos a analizar el uso de este potente método para la predicción de posibles tolerancias en circuitos, sobre todo cuando son fabricados de forma industrial.

En un sistema o proceso, el resultado final es consecuencia de las variables de entrada. Estas generan una respuesta que puede ser determinada tanto si el sistema es lineal como si es no lineal. A la relación entre la respuesta o salida del sistema y las variables de entrada la denominamos función de transferencia, y su conocimiento nos permite evaluar cualquier resultado en función de la excitación de entrada.

Sin embargo, hay que tener en cuenta que las variables de entrada son variables aleatorias, con su propia función de distribución, debido a que están sometidas a procesos estocásticos, aunque su comportamiento es predecible gracias a la teoría de la probabilidad. Por ejemplo, cuando describimos una medida de cualquier tipo, solemos representar su valor nominal o medio, así como el entorno de error asociado en el que esa magnitud medida puede estar. Esto nos permite limitar el entorno en el cual la magnitud es correcta y decidir cuándo la magnitud se comporta de modo incorrecto.

Durante muchos años, después de haber aprendido a transformar con éxito los resultados obtenidos mediante simulación en resultados físicos reales, con comportamientos predecibles y extrayendo conclusiones válidas, me he dado cuenta que en la mayoría de las ocasiones la simulación se reduce a obtener un resultado apetecido, sin profundizar en absoluto en ese resultado. Sin embargo, la mayoría de los simuladores están dotados de algoritmos estadísticos útiles que, correctamente utilizados, permiten al usuario de la aplicación obtener una serie de datos que puede usar para el futuro y permiten predecir el comportamiento de cualquier sistema, o al menos, analizar qué es lo que se puede producir.

Sin embargo, esos métodos que los simuladores incluyen nos suelen ser utilizados. Ya sea por falta de conocimiento de patrones estadísticos, ya sea por desconocimiento de cómo usar esos patrones. Por tanto, en esta serie de entradas vamos a desgranar el método de Monte Carlo que podemos encontrar en un simulador de circuitos e descubrir un potencial importante que es desconocido para muchos de los usuarios de los simuladores de circuitos.

LOS COMPONENTES COMO VARIABLES ALEATORIAS

Los circuitos electrónicos están formados por componentes electrónicos simples, pero que tienen un comportamiento estadístico, debido a los procesos de fabricación. No obstante, los fabricantes de componentes delimitan correctamente los valores nominales y el entorno de error en que se mueven. Así, un fabricante de resistencias no sólo publica sus valores nominales y dimensiones. También publica los entornos de error en los que esa resistencia varía, el comportamiento con la temperatura, el comportamiento con la tensión, etc. Todos estos parámetros, convenientemente analizados, proporcionan una información importante que, bien analizada dentro de una potente herramienta de cálculo como es el simulador, permite predecir el comportamiento de circuito total.

En este caso se va a analizar exclusivamente el entorno de error en el valor nominal. En una resistencia, cuando el fabricante define el valor nominal (en este caso, vamos a suponer 1kΩ) y expresa que tiene una tolerancia de ±5%, quiere decir que el valor de la resistencia puede estar comprendido entre 950Ω y 1,05kΩ. En el caso de un transistor, su ganancia de corriente β puede tomar un valor entre 100 y 600 (por ejemplo, el BC817 de NXP), por lo que puede haber una variación de corriente de colector importante e incontrolable. Por tanto, conociendo estos datos, podemos analizar el comportamiento estadístico de un circuito eléctrico gracias a la rutina de Monte Carlo.

Analicemos primero la resistencia: hemos dicho que la resistencia tiene una tolerancia de ±5%. Entonces, vamos a analizar usando el simulador el comportamiento de esta resistencia usando la rutina de Monte Carlo. A priori, desconocemos qué función densidad de probabilidad tiene la resistencia, aunque lo más habitual es una función de tipo gaussiano, cuya expresión es ya conocida

normal

donde μ es el valor medio y σ² es la varianza. Analizando con el simulador, mediante el método de Monte Carlo y para 2000 muestras, se puede obtener una representación de la variación del valor nominal de la resistencia, obteniendo un histograma como el que se muestra en la figura siguiente

Distribución de los valores de la resistencia usando el análisis de Monte Carlo

Distribución de los valores de la resistencia usando el análisis de Monte Carlo

El algoritmo de Monte Carlo introduce valor en la variable cuya distribución corresponde a una gaussiana, pero los valores que toma son en todo momento aleatorios. Si esas 2000 muestras se tomasen en 5 procesos de 400 muestras cada uno, seguiríamos teniendo una tendencia a la gaussiana, pero sus distribuciones serían diferentes

Distribuciones gaussianas con varios lotes

Distribuciones gaussianas con varios lotes

Por tanto, trabajando convenientemente con las variables aleatorias, se puede extraer un estudio completo de la fiabilidad del diseño realizado, así como de la sensibilidad que tiene cada una de las variables que se utilizan. En el siguiente ejemplo, vamos a proceder al análisis del punto de operación de un transistor bipolar convencional, cuya variación de β está comprendida entre 100 y 600, con un valor medio de 350 (comprendida β con una distribución gaussiana), polarizado con resistencias con una tolerancia nominal de ±5%, y estudiando la variación de la corriente de colector en 100 muestras.

ANÁLISIS DEL COMPORTAMIENTO ESTADÍSTICO DE UN BJT EN DC

Para estudiar el comportamiento de un circuito de polarización con transistor bipolar, partimos del circuito como el de la figura

Circuito de polarización de un BJT

Circuito de polarización de un BJT

donde las resistencias tienen tolerancias totales de ±5% y el transistor tiene una variación de β entre 100 y 600, con un valor nominal de 350. El punto de operación es Ic=1,8mA, Vce=3,2V. Haciendo el análisis de Monte Carlo para 100 muestras, obtenemos el siguiente resultado

Variación de la corriente del BJT en función de las variables aleatorias

Variación de la corriente del BJT en función de las variables aleatorias

Por la forma de la gráfica, se puede comprobar que el resultado converge a una gaussiana, donde el valor medio predominante es Ic=1,8mA, con una tolerancia de ±28%. Supongamos ahora que hacemos el mismo barrido que antes, en varios lotes de proceso, de 100 muestras cada uno. El resultado obtenido es

Variación de la corriente del BJT para varios lotes

Variación de la corriente del BJT para varios lotes

donde podemos ver que en cada lote tendremos una curva que converge a una gaussiana. En este caso, la gaussiana tiene un valor medio μ=1,8mA y una varianza σ²=7%. De este modo, podemos analizar cada proceso como un análisis estadístico global como por lotes. Supongamos que ahora β es una variable aleatoria con una función de distribución uniforme entre 100 y 600. Analizando sólo para las 100 muestras, se obtiene la curva

Distribución con b uniforme

Distribución con BETA uniforme

y se puede observar que la tendencia de la corriente es a converger a una distribución uniforme, aumentando el rango de tolerancia de la corriente y aumentando la probabilidad en los extremos de su valor. Por tanto, también podemos estudiar cómo se comporta el circuito cuando tenemos distintas funciones de distribución gobernando cada una de las variables.

Visto que, con el método de Monte Carlo podemos analizar el comportamiento en términos de tolerancias de un circuito complejo, también del mismo modo nos ayudará a estudiar cómo podemos corregir esos resultados. Por tanto, a lo largo de las entradas vamos a profundizar cada vez más en el potencial del método y lo que se puede conseguir con él.

CORRIGIENDO LAS TOLERANCIAS

En el circuito básico que hemos utilizado, al caracterizar la β del transistor como una variable uniforme, hemos aumentado la probabilidad de haya posibles valores de corriente que caigan en valores indeseados. Esto es uno de los puntos más problemáticos de los transistores bipolares y de efecto campo, las variaciones de sus ganancias en corriente. Vamos a ver, con un sencillo ejemplo, qué es lo que ocurre cuando usamos un circuito de corrección de la variación de β, como puede ser el circuito clásico de autopolarización por emisor

Circuito con autopolarización por emisor

Circuito con autopolarización por emisor

Usando este circuito, volvemos a hacer un análisis de Monte Carlo y lo comparamos con el análisis obtenido en el caso anterior,pero usando 1000 muestras. El resultado obtenido es

Resultados con ambos circuitos

Resultados con ambos circuitos

donde se puede ver que se ha incrementado la probabilidad en valores en torno a los 2mA, reduciendo la densidad de probabilidad en valores bajos de corriente y estrechando la distribución. Por tanto, el método de Monte Carlo no sólo es un método que nos permite analizar el comportamiento de un circuito cuando se somete a una estadística, sino que nos permitirá optimizar nuestro circuito y ajustarlo a los valores límite deseados. Usado convenientemente, es una potente herramienta de cálculo que mejorará el conocimiento de nuestros circuitos.

CONCLUSIONES

En esta primera entrada de una serie dedicada al método de Monte Carlo, en la que hemos querido presentar el método y su utilidad. Como hemos podido ver en el ejemplo, el uso del método de Monte Carlo proporciona datos de mucha utilidad, sobre todo si deseamos conocer cuáles son las limitaciones y variaciones del circuito que estamos analizando. Por otro lado, nos permite mejorar éste a través de los estudios estadísticos, además de fijar los patrones para la verificación del mismo en un proceso productivo.

En las siguientes entradas profundizaremos más en el método, realizando un estudio más exhaustivo del método a través de un circuito concreto de uno de mis proyectos más recientes, analizando cuáles son los resultados esperados y las diferentes simulaciones que se pueden realizar usando el método de Monte Carlo, como las de caso peor, sensibilidad, y optimización post-producción.

REFERENCIAS

  1. Castillo Ron, Enrique, “Introducción a la Estadística Aplicada”, Santander, NORAY, 1978, ISBN 84-300-0021-6.
  2. Peña Sánchez de Rivera, Daniel, “Fundamentos de Estadística”, Madrid,  Alianza Editorial, 2001, ISBN 84-206-8696-4.
  3. Kroese, Dirk P., y otros, “Why the Monte Carlo method is so important today”, 2014, WIREs Comp Stat, Vol. 6, págs. 386-392, DOI: 10.1002/wics.1314.