Memoria M9K en Cyclone IV

El dispositivo Cyclone IV de Altera dispone de unas memorias embebidas llamadas M9K. Estas memorias son configuradas por el sintetizador (Quartus) y dependiendo del tamaño necesario, se pueden combinar varias. Estas memorias siempre son síncronas, por lo que para que el sintenizador utilice una memoria M9K a partir del código, la memoria en cuestión debe estar gobernada por la señal de reloj.

Estas memorias pueden funcionar con un puerto puerto simple (entrada-salida) o un puerto doble. La configuración de puerto doble consiste en leer de manera independiente una misma memoria por dos puertos. Otra de los modos de funcionamiento es ROM, en el que se escribe el contenido al programar la FPGA y solo es posible leer su contenido.

Dependiendo de la configuración, la capacidad disponible las memorias M9K puede variar. Para anchos de palabra de 1, 2 y 4 bits la capacidad disponible es de 8k (8192 bits). Para tamaños de palabra mayores (8+1), (16+2), (32+4), la capacidad disponible es de 9k (9216 bits).

Las configuraciones en modo ROM son:

  • 8k x 1 bit
  • 4k x 2 bits
  • 2k x 4 bits
  • 1k x (8+1) bits
  • 512 x (16+2) bits
  • 256 x (32+4) bits

Las configuraciones en modo puerto doble son:

  • 8k x 1 bit
  • 4k x 2 bits
  • 2k x 4 bits
  • 1k x (8+1) bits
  • 512 x (16+2) bits

En el caso de los anchos de palabra no potencias de 2, se puede utilizar estos bits extras para control de errores.

Ejemplo de memoria 1k x 16

La primera opción está más optimizada ya que se necesita menos hardware para obtener el mismo resultado.

Modelado de precisión finita

El modelado de precisión finita consiste en la representación de números decimales mediante una codificación que no alcanza a representar el número exacto. Antes de entrar en detalles, será mejor repasar qué formatos de codificación binaria existen.

Codificación binaria con punto fijo

En la representación en punto fijo, el valor del número representado depende de la posición de los 1’s y los 0’s. Ejemplo:

\[ (10010)_2 = 1 \cdot  2^4 + 0 \cdot 2^3 + 0 \cdot 2^2 + 1 \cdot 2^1 + 0 \cdot 2^0 = 18 \]

El rango dinámico de esta codificación viene determinado por el número de bits que se utilizan. Sin embargo, la suma de números representados en punto fijo es muy sencilla.

Codificación binaria con punto flotante

El valor de un número no depende de la posición de cada uno de los bits, sino que dentro de la secuencia de binaria existe 3 partes: el signo, la mantisa y el exponente.

El valor del número se calcula como:

\[ \text{Valor} = S \cdot M \cdot 2^{E-cte} \]

La codificación con punto flotante ofrece un rango dinámico más grande que con el punto fijo. Además, la resolución de la codificación puede ser variable. Sin embargo, realizar una suma de dos números en coma flotante es más complejo que en punto fijo.

Para representar números enteros, existen dos codificaciones muy utilizadas. La primera es la explicada anteriormente, en el que la posición de cada bit representa un múltiplo de potencias de 2. Sin embargo, con esta codificación no es posible representar números negativos. Para representar números negativos la codificación más utilizada es la conocida como complemento a 2.

Codificación en punto fijo de enteros

La codificación de números con N bits y sin signo tiene un rango de \(\left[0, 2^N -1 \right]\). En este caso, la resolución es de 1.

Para calcular el valor de un número:

\[ X = \sum_{i=0}^{N-1} x_i 2^i\]

Codificación en punto fijo de enteros con signo

La codificación de números con N bits y con signo se puede realizar mediante la codificación complemento a 2. En esta codificación, cada bit tiene un peso, exactamente igual que en la codificación sin signo, con la particularidad de el bit más significativo tiene signo menos y el peso como potencia de 2 que le corresponda. Es decir:

Como vemos, el MSB (most significant bit) representa el peso \(2^4\) pero además tiene signo negativo.

El complemento a 2 tiene un rango de \(\left[-2^{N-1}, 2^{N-1}-1 \right] \) y una resolución de 1.

Equivalencia entre números sin signo y complemento a 2

En la tabla vemos la representación sin signo y la representación con signo y su equivalencia al formato decimal. En este caso N = 3, ya que se utilizan 3 bits para representar todos los números. El rango de los números sin signo es [0, 7] y en el caso de con signo [-4,3].

Los valores que son menores de \(2^{N-1} = 2^{3-1} = 2^2 = 4\) tienen una equivalencia directa entre ambas codificaciones, representados con fondo azul en la tabla. Es decir, 3 se escribe en formato binario en ambos casos \((011)_2\).

Para el caso de valores sin signo mayores a \(2^{N-1}\), su lectura en complemento a 2 sería:

\[ \text{Signed} = \text{Unsigned} – 2^N \]

Por ejemplo, 6 en formato sin signo es \((110)_2\). Sin embargo, \((110)_2\) leído como un número en complemento a 2 es:

\[ \text{Signed} = 6 – 2^3 = 6 – 8 = -2 \]

Por tanto,

\[ S = \left\{\begin{matrix}
U; & U < 2^{N-1} \\
U – 2^N ;& U \geq 2^{N-1}
\end{matrix}\right.\]

Codificación de reales con punto fijo

Los números decimales también pueden ser representados mediante la codificación de punto fijo. Sin embargo, la precisión con la que se pueden representar depende del número de bits y de la posición del punto.

La posición del punto es imaginaria ya que no se especifica de ninguna manera. A partir de este punto, los números a su izquierda son potencias de 2 positivas y a la derecha potencias de dos negativas. La resolución de esta representación la da el LSB (least significant bit).

\[ X =  \left(\sum_{i=0}^{N-1} x_i 2^i  \right) \cdot 2^{-b} \]

La notación para describir esta codificación es \([N,b]\), donde \(N\) es el número total de bits y \(b\) es el número de bits fraccionales. Por ejemplo, \([6,3]\) significan 6 bits totales de los cuales 3 son fraccionales. En este caso, la resolución es \(2^{-3 }= 0.125\).

Codificación de reales con punto fijo en complemento a 2

Para representar números reales con signo mediante complemento a 2, el rango de estos números es \( [-2^{N-1}\cdot Q, (2^{N-1}-1)\cdot Q]\), donde N es el número total de bits y Q es la resolución, que equivale a \(Q= 2^{-b}\).

\[ X = \left(-x_{N-1} 2^{N-1} + \sum_{i=0}^{N-2} x_i 2^i  \right) \cdot 2^{-b} \]

  • Ejemplo 1:
    • N = 6, b = 3, formato [6,3].
    • El rango es \(\left[2^{6-1}\cdot 2^{-3}, (2^{6-1}-1)\cdot 2^{-3} \right] = \left[-4, 3.875\right] \).
    • La resolución es de \(2^{-3} = 0.125\).
  • Ejemplo 2:
    • N = 5, b = 2, formato [5,2].
    • El rango es \(\left[2^{5-1}\cdot 2^{-2}, (2^{5-1}-1)\cdot 2^{-2} \right] = \left[-4, 3.75\right] \).
    • La resolución es de \(2^{-2} = 0.25\)

Rango dinámico de una codificación

El rango dinámico determina la cantidad de números que existen para codificar un rango de números. Es decir, en la codificación punto fijo sin signo, el rango es \([0, \left(2^{N}-1\right)\cdot Q]\) y la resolución es \(Q=2^{-b}\).

El rango dinámico es la relación entre la máxima excursión de la codificación (\(N_{max}-N_{min}\) y la resolución de la codificación.

\[ DR = \frac{N_{max}-N_{min}}{Q} = \frac{ \left(2^{N}-1\right)-0}{Q} = 2^{N}-1 \]

Para el caso de complemento a 2 donde el rango es \([-2^{N-1},2^{N-1}-1]\) y la resolución sigue siendo \(Q= 2^{-b}\) el rango dinámico es también \(2^{N}-1\).

Si se calcula en dB, definiendo el rango dinámico como \(20\log_{10}\{·\}\), obtenemos que el rango dinámico es aproximadamente, 6.02N dB. Por tanto, cada bit que se añada aumentará 6 dB el rango dinámico de la codificación.

Efectos de la precisión finita

El hecho de trabajar con precisión finita a la hora de representar los números, tiene efectos en la señal que estamos tratando. Los efectos pueden ser de dos tipos:

  • Disminuir el número de bits de enteros, lo cual reduce el rango de la codificación. Esto puede llevar a que la señal no pueda ser representada dentro de nuestra codificación. Es decir, un seno que tiene un rango de [0,8] no puede ser codificado con U[4,3] ya que números mayores de \(2^{4}\cdot 2^{-3} = 2\) no pueden ser representados. Esto puede tener dos tipos de consecuencias en la señal:
    • Wrap: la señal se desdobla y números superiores al máximo del rango se representan como valores cercanos al mínimo del rango.Ejemplo: S[4,3], rango [-1, 0.875], resolución \(2^{-3} = 0.125\). Si representa un número fuera del rango, \(1.125 = (01.001)_2 \). Solo tenemos 1 bit para representar la parte entera, por tanto el número quedará sesgado a \((1.001)_2\) que de Ca2 a decimal es \( \left(-2^{3} + 2^{0} \right) \cdot 2^{-3} = -0.875\)
    • Overflow: si se intentan representar números que están fuera del rango de la codificación la señal se satura en el valor máximo. Para que la señal se represente como overflow hay que añadir explícitamente electrónica que controle estos casos.
  • Cuantificación: al tener una precisión finita todos los valores deben ser representados mediante múltiplos de la resolución. Todo número real que se encuentre entre estos múltiplos de la resolución será mapeado directamente a uno de estos múltiplos. Por tanto, la señal quedará escalonada. Dependiendo de la técnica que se utilice para realizar este mapeada (redondeo o truncado) los efectos son distintos. Desde el punto de vista frecuencial, la cuantificación añade ruido blanco que se extiende por toda la banda de la señal (desde 0 Hz hasta la mitad de la frecuencia de muestreo \(\frac{f_s}{2}\).
    • Truncado: truncar significa redondear hacia abajo un valor. Esto hace que el error que se comete sea como máximo -Q y de media sea -Q/2. Sin embargo, computacionalmente es sencillo.
    • Redondeo:  se redondea al número más cercano. Es decir, se redondea hacia arriba si supera Q/2 y hacia abajo si el valor está por debajo de Q/2.

Implementación del redondeo o del truncado

En MATLAB tenemos las funciones floor() o round() que hacen el truncado o el redondeo respectivamente de la parte entera del número. Por tanto, si queremos redondear a 2 decimales el número 12.5432 lo que hay que hacer es:

  • Desplazamos dos dígitos hace la izquierda el número multiplicando por 100: 12.5432 · 100 = 1254.32
  • Aplicamos la función de truncado o redondedo: floor(1254.32) = 1254
  • Desplazamos de nuevo dos dígitos hacia la derecha el resultado diviendo por 100: 1254/100 = 12.54

En binario ocurre lo mismo, con la diferencia de que en lugar de multiplicar por potencias de 10 (100 en el caso anterior) hay que hacer por potencias de 2.

Ejemplo: truncar a 3 bits fraccionales \(1.28515625 = (01.01001001)_2\)

  • Desplazamos hacia la izquierda 3 posiciones multiplicando por \(2^3\): \(1.28515 \cdot 2^3 =  10.2812\)
  • Se aplica la función floor() al resultado: floor(10.2812) = 10
  • Se desplaza hacia la derecha 3 posiciones multiplicando por \(2^{-3}\): \( 10 \cdot 2^{-3} = 1.25 = (01.010)_2\)

Cuantificación de números en punto fijo con MATLAB

En MATLAB existe la función quantize(q, a) que sirve para calcular cuál va a ser el número con el que se va a cuantificar en binario un número. La función quantize() tiene donde argumentos:

  • q: es el cuantificador que define la codificación a utilizar. Se define con la función quantize(Format, Mode, Roundmode, Overflowmode), donde:
    • Format: [N b]
    • Mode: ‘fixed’ o ‘ufixed’ para codificación de punto fijo con signo o sin signo.
    • Roundmode: ‘floor’ para truncado, ‘round’ para redondeo.
    • Overflowmode: ‘saturate’ para saturar o ‘wrap’ para que desdoble el valor.
  • a: número a cuantificar.

Definición de punto fijo en Simulink

En Simulink se utiliza la función fixdt(Signed, WordLength, FractionLength) para definir el formato de la codificación.

Modificación de la resolución o escalado

Ampliación de la resolución

Se da cuando pasamos a representar la parte fraccional del número con más bits de los originales. Esta operación es tan sencilla como rellenar con ceros a la derecha del número.

Reducción de la resolución

La parte fraccional del númnero se represetnará con menos bits que los originales y por tanto, la resolución disminuye.

Ejemplo:

\(A = 2.625 = (010.101)_2\)

\(A [6,3] \rightarrow A =  A_e \cdot 2^{-3} =(010101)_2 ~~A_e = (010101)_2 21 \)

\(A’ [4,1] \rightarrow A’ =  A’_e \cdot 2^{-2} =(0101)_2~~A’_e = (0101)_2 = 5 \)

Esta operación se puede entender intuitivamente como que la parte entera del número cambia. Es decir, en el número original \(A_e = 21\) porque se utilizan 6 bits. Si truncamos con 4 bits y reinterpretamos la parte entera (leyendo los bits como un número binario entero), la parte entera \(A’_e\) disminuye. Finalmente, si se reescala en función de la posición del punto fijo, se obtiene el nuevo número.

Ejemplo:

\(A’_e = floor\left(A_e \cdot 2^{-2}\right) = 5\)

En este caso, se multiplica por \(2^{-2}\) porque hay que pasar de escala \(2^3\) a \(2^1\). Por tanto, hay que mover el punto a la derecha 2 posiciones.

Suma/resta

Sin pérdida de resolución

Ambos sumandos deben tener el mismo tamaño y escalado. Si no lo tienenm hay que extender el rango del número con menos bits en la parte fraccional.

El número total de bits del resultado es la suma de:

  • Máximo número de bits en la parte entera de los dos sumandos
  • Máximo número de bits en la parte fraccional de los dos sumandos
  • \(ceil\left[ \log_2{\left(\text{numero de sumas}\right)}\right]\). Si solo se hace una suma, el resultado es 1 bit extra.

Ejemplo:

A[6,5], B[8,2], S[12,5]

A = 0.53125, B = 3.25

\(A_e = A \cdot 2^5 = 17\), \(B_e = B \cdot 2^2 = 13\)

La suma que tenemos que realizar se puede visualizar de la siguiente manera:

Como vemos, hay que rellenar con 0’s en la parte baja de B. Si no lo hacemos, y sumamos las partes enteras directamente, estaremos sumando bits con pesos diferentes. En decimal sería equivalente a sumar decenas con centenas y centenas con millares. Obviamente, el resultado de esta operación será erroneo. Es por ello, que al añadir 0, hay que reinterpretar el número decimal que obtenemos. Es decir:

De esta manera, el LSB de B ya no tendrá un peso de \(2^0\), sino que pasará a tener un peso de \(2^3\).

Esta operación se puede realizar en decimal como multiplicar por una potencia de 2 elevado al número de desplazamientos hacia la izquierda que queramos. En este caso:

\[ B’_e = B_e \cdot 2^3 = 104 \]

De esta manera ya podemos hacer la suma de \(S_e = A_e + B’_e = 17 + 104 = 121\). Con este resultado, podemos calcular S subiendo el coma 5 posiciones multiplicando por \(2^{-s}\). Es decir, \(S = S_e \cdot 2^{-b} = 121 \cdot 2^{-5} = 3.78125\)

Con pérdida de precisión

El crecimiento natural de la operación suma es el que habíamos dicho en el apartado anterior. Sin embargo, es posible que en nuestro diseño queramos que el resultado de la operación tenga un formato menor al que marca el crecimiento natural. En este caso, tenemos que hacer la suma de la misma manera que habíamos explicado en el apartado anterior y una vez obtenido el resultado, realizar el truncado (o redondeo) del número.

Ejemplo: S = A + B

A[6,5] = 0.53125, B[8,3] = 3.125, S[9,2]

Sin perder precisión, el resultado de la suma es S = 3.65625.

\(A_e = 0.53125 \cdot 2^5 = 17 \)

\(B_e = 3.125 \cdot 2^3 = 25 \)

Primero, tenemos que alinear los pesos de \(A_e\) y \(B_e\). Para ello, hay que añadir 2 ceros a la derecha de \(B_e\), por lo que hay que desplazar hacia la izquierda dos posiciones los bits de \(B_e\).

\(B’_e = 25 \cdot 2^2 = 100 \)

Ahora, ya podemos sumar las partes enteras de A y B obteniendo:

\(S’e = A_e + B’_e = 17 + 100 = 117\)

Ahora hay que realizar el truncado (o redondeo, dependiendo de la aplicación). Al resultado de \(S’e\), debemos quitarle los tres últimos bits. Para ello, desplazamos hacia de derecha 3 posiciones, hacemos la operación floor() y finalmente calculamos S multiplicando por su escalado:

\[ S = floor\left( S’_e \cdot 2^{-3} \right) 2^{-2} = 3.5 \]

Multiplicación

Al multiplicar dos números, el formato del resultado equivale a la suma de bits de ambos operandos. Es decir:

A[Na, a], B[Nb, b], P[Np,p]

Np = Na + Nb

p = a + b

A diferencia de la suma, no es necesario alinear los pesos de los operandos, sino que es suficiente con multiplicar bit a bit y realizar el escalado correspondiente al final.

Sin embargo, debido a que el crecimiento de esta operación es tan grande, normalmente se recorta la precisión de la salida.

Ejemplo:

A[6,5], B[8,2], P = A·B [12,5], P = 1.7265625

A = 0.53125, Ae = 17

B = 3.25, Be = 13

\(P = floor(A \cdot B \cdot 2^5) \cdot 2^{-5} = 1.71875 \)

Caso extremo

Como sabemos, la representación en complemento a 2 (2’C) es asimétrica. Es decir, los números con formato [3,2] tienen un rango [-1, 0.75] y no [-1, 1]. En el caso de multiplicar 2 números con formato [3,2], existe un caso extremo que se da cuando los dos números son -1. P = (-1)·(-1) = 1, que resulta estar fuera del rango que este formato puede codificar. Para poder codificarlo, es necesario añadir un bit más en la parte real ([4,2]) cuyo rango es (-2, 1.75). Sin embargo, este bit extra solo se utilizará en el caso de que ambos operandos sean -1. Por tanto, si se conoce que en la aplicación no es posible obtener esos dos valores como operandos de la multiplicación, se puede dimensionar la salida con 1 solo bit entero.

Multiplicación por constante: P = A · K

En el caso de multiplicar por una constante, es posible conocer cuál será el crecimiento máximo del resultado. Debido a que se conoce el rango de A y el valor de K, no todos los valores del rango de P van a ser utilizados. De esta manera, es posible optimizar el formato del resultado.

Ejemplo:

A[8,4], K[5,2], P = A·K [13,6]

K = 2.25, Ke = 9

Para representar Ke solo hacen falta \(ceil(\log_2{Ke}) = 4\) bits. Este será el crecimiento que aportará K y no el que marca su formato (5). Por tanto, cualquier valor de P se podrá representar con [8+4, 4+2] = [12,6], ya que el MSB nunca se utilizará.

 

Inducción mútua y corriente inducida en COMSOL Multiphysics

Para calcular la inducción mutua y la corriente inducida por un campo magnético producido por otra bobina, es posible utilizar COMSOL Multiphysics. En COMSOL, una bobina multivuelta es posible modelarla mediante una aproximación homogeneizada o modelo concentrado (como un toroide cilíndrico) en lugar de definir explícitamente cada una de sus espiras.Para ello, hay que utilizar el nodo Multi-turn Coil. El nodo Multi-turn Coil modela el cilindro como un conjunto de hilos pequeños separados por un aislante eléctrico. La corriente fluye solo en una de las direcciones del cable y es despreciable en cualquier otra dirección. También es posible utilizar el nodo distorsión armónica que añade distorsión en la excitación de la bobina.

Para esta simulación, la bobina inferior será la que creará el campo magnético mediante una corriente de 1 A. La bobina superior será sobre la que haremos las medidas, tanto de la tensión en circuito abierto como de la corriente en cortocircuito.

Definición del proyecto

Para empezar, es necesario determinar qué tipo de estudio vamos a realizar, cómo vamos a describir la geometría y qué cálculos querremos hacer. Para ello, utilizaremos el Model Wizard. En él seleccionaremos un espacio 2D axisimétrico para utilizar la simetría axial de las dos bobinas y reducir el tiempo de simulación. Sin embargo, también podemos un espacio tridimiensional para definir la geometría. Para realizar los cálculos de corriente inducida, inducción mútua y demás, solo es necesario saber el campo magnético inducido por una de las bobinas. Por tanto, solo añadiremos la física de los campos magnéticos seleccionando AC/DC > Magnetic Field (mf). El estudio que haremos será del comportamiento en frecuencia de las bobinas por lo que seleccionaremos Frequency Domain en el tipo de estudio.

Definición de parámetros

Una vez creado el proyecto, añadiremos los parámetros de la geometría de las bobinas.

Name Expression Value Description
r_wire 1 [mm] 0.001 m Radius, wire
R1 5 [cm] 0.05 m Radius, coil 1
R2 R1 0.05 m Radius, coil 2
N1 20 20 Number of turns coil 1
N2 20 20 Number of turns coil 2
d 5 [cm] 0.05 m Distance between coils

Definición de la geometría

La geometría va a constar de:

  1. Bobina 1
  2. Bobina 2
  3. Esfera de aire y elementos infinitos
  4. Redondeo de las bobinas

La bobinas bobinas van a tener un arrollamiento plano, igual que las que se muestran el figura de arriba.

Bobina 1

Creamos un rectángulo de anchura r_wire*N1 y altura r_wire. En la pestaña Position, r = R1-r_wire*N1, z = -d/2-r_wire*N1

Bobina 2

Creamos un rectángulo de anchura r_wire*N2 y altura r_wire. En la pestaña Position, r = R2-r_wire*N2, z = d/2

Aire y elementos infinitos

Creamos un círculo con radio 2.25*R1, sector angle = 180º. En Rotation Angle, Rotation=-90º. En la pestaña Layers, creamos una nueva capa de 25 mm. Esta nueva capa va a dividir el circulo en dos 3 partes. La interna será el aire que envolverá las bobinas y las otras dos serán los elementos infinitos. Los elementos infinitos es un concepto que simula que el espacio alrededor de nuestro objeto sea infinito. Para ello, hace que los campos que llegan a esta capa no rebotan y son totalmente absorbidos, simulando que el campo o la onda sigue propagándose.

Redondeo

Añadimos un nodo Fillet en geometría. Añadimos los 8 vértices de los rectángulos y definimos un radio de r_wire/2.

Con todo esto, obtendremos una geometría similar a la siguiente:

Definición de elementos infinitos

En Component1 > Definitions creamos un nodo Infinite Element Domain y seleccionaremos los dos dominios que hemos creado con la capa de 25 mm en el círculo. Los dominios que tenemos que seleccionar son los que se muestran en azul:

Definición de materiales

Primero añadiremos el material de aire, en Built-in > Air para que se añada a todos los dominios. Finalmente, añadimos el material de cobre AC/DC > Copper y se lo asignamos a las dos bobinas.

Definición de física

Para la física, tendremos que añadir dos nodos Multi-Turn Coil para cada una de las bobinas. La bobina 1 tendrá como excitación una corriente de 1 A. Por tanto \(I_{coil} = 1 ~A\), N = N1 y la sección del cable \(\pi r^2_{wire}\).

En el otro nodo Multi-Turn Coil, cambiaremos la sección del cable. Si queremos hacer una medida en circuito abierto, seleccionaremos la excitación de la bobina como tensión y la pondremos a 0 V. Si lo que queremos es hacer una medida en cortocircuito, la excitación será corriente y la corriente igual a 0 A.

Simulación

Por último falta especificar a qué frecuencia queremos realizar la simulación. Para ello, en el subnodo Step 1 de Study 1 espeficamos la frecuencia que queramos. Por ejemplo, 1 kHz. Una vez descrita la física y el estudio ya podemos simular. Antes de simular podemos hacer click sobre el nodo de Study 1 y deseleccionar la opción que genera gráficas por defecto para el estudio de campo magnético. Una vez hayamos terminado, hacemos click en Compute.

Presentación de resultados

Una vez COMSOL termine la simulación, si creamos una gráfica veremos como aparentemente no ha simulado nada, habiendo un pequeño punto en la capa de elementos infinitos que tiene un color diferente de azul. Esto es debido a que existe una singularidad en este punto haciendo que la simulación tienda a infinito. Por culpa de esto, hace que todos los valores en comparación a este sean muy pequeños y apenas sean visibles en la escala de colores. Para evitar esto, es necesario especificar qué dominios del estudio queremos visualizar. Para ello, hacemos click derecho en el nodo Study 1/Solution 1 y creamos un subnodo de Selection. En geometric entity level cambiamos Entire geometry por Domain y seleccionamos solo el aire y las dos bobinas, dejando los elementos infinitos fuera de la selección.

Ahora ya podemos visualizar correctamente los resultados de campo magnético que ha generado por defecto COMSOL.

 
La inducción mútua se calcula como:
\[ L_{12} = \frac{N_2}{I_1} \int B\cdot dS \]

Implementando esta ecuación como una integral en el área de la bobina superior de la componente del flujo magnético en Z se consigue la inducción mutua entre ambas bobinas.

Red eléctrica

Una red eléctrica se considera lineal cuando \(v_s(\omega t)\) y \(i_s (\omega t)\) son senoidales.

La tensión de pico es mayor que el valor eficaz:

\[v_{pk} = \sqrt{2}v_{rms} \]

Un inductor retrasa \(\frac{\pi}{2}\) la corriente: \(\sin{(x+a)}\)

Un condensador adelanta \(\frac{\pi}{2}\) la corriente: \(\sin{(x-a)}\)

En trifásica hay tres fases:

  • Fase 1: \(\theta_1 = 0\). \(v_{s,1}(t) = \sqrt{2} V_{1,rms} \sin{(\omega t)}\)
  • Fase 2: \(\theta_2 = \frac{2\pi}{3}\). \(v_{s,2}(t) = \sqrt{2} V_{2,rms} \sin{\left(\omega t-\frac{2\pi}{3}\right)}\)
  • Fase 3: \(\theta_3 = \frac{4\pi}{3}\). \(v_{s,3}(t) = \sqrt{2} V_{3,rms} \sin{\left(\omega t-\frac{4\pi}{3}\right)}\)

Triángulo de potencias:

s

  • P: potencia activa = \(V_{rms}I_{rms} \cos{(\phi)} \) (kW)
  • Q: potencia reactiva (kWAR)
  • S: potencia aparente = \(V_{rms}I_{rms} \)  (kVA)

Factor de potencia:\( FP = \frac{P}{S} = \cos{(\phi)} \)

Tensión de fase y tensión de línea:

trifasica

La tensión de fase es la tensión que existe entre el neutro y una de las fases. En el dibujo \(V_{L_1}\).

La tensión de línea es la tensión que hay entre dos fases, en el dibujo \(V_{L_1, L_3}\). La tensión de línea puede escribirse como:

\[ V_{L_1, L_3} = V_{L_1} – V_{L_3}\]

En cuanto al módulo de la tensión de línea, este es mayor que la de fase:

\[ V_{L_1, L_3} = \sqrt{3} V_{L_1}\]

Una red equilibrada es aquella en que el desfase relativo entre fases es 0. Es decir, todas las fases tienen un desfase igual.

La potencia en una red equilibrada (\(\phi_1 = \phi_2 = \phi_3 = \phi\)) es:

\[ P_i = V_{RMS} I_{RMS} \cos{(\phi)} \]

\[ P = 3 P_i = 3 V_{RMS} I_{RMS} \cos{(\phi)} = \sqrt{3} V_{L_{RMS}} I_{RMS} \cos{(\phi)} \]

Además, la tensión de línea está desfasada 60º respecto a la de fase:

Fuente proyecto987

En caso de que la red sea desequilibrada (\(\phi_1 \neq \phi_2 \neq \phi_3\)):

Por cada fase tendremos una potencia activa (P) y aparente (Q):
\[ P_i = V_{i_{RMS}} I_{i_{RMS}} \cos{(\phi_i)} \]
\[ S_i = V_{i_{RMS}} I_{i_{RMS}} \]
\[ FP_i = \frac{V_{i_{RMS}} I_{i_{RMS}} \cos{(\phi_i)}}{V_{i_{RMS}} I_{i_{RMS}}} = \cos{(\phi_i)} \]

La potencia total será:
\[ P = \sum_i{P_i} \]
\[ Q = \sum_i{Q_i} \]
\[ S \neq \sum_i{S_i} \]
\[ S = \sqrt{P^2+Q^2} \]
\[ FP = \frac{P}{S} \]

Distorsión en redes no lineales

Una red se considera no lineal cuando \(v_{s}(\omega t)\) es senoidal y \(i_s(\omega t)\) no. Una señal periódica no senoidal puede expresarse como suma de diferentes componentes frecuenciales multiplos de la frecuencia fundamental, es decir, mediante su desarrollo en serie de Fourier (DSF).

\[ i_s(\omega t) = I_{s,0} + i_{s,1}(\omega t) + \sum_{k=2}^{+\infty} i_{s,k}(\omega t) \]

Podemos agrupar los términos como una componente de continua, una componente frecuencial y la suma de todos los armónicos:

\[ i_s(\omega t) = I_{s,0} + i_{s,1}\sin(\omega t – \phi_1) + \sum_{k=2}^{+\infty} i_{s,k}\sin(\omega t – \phi_k) \]

Donde la amplitud de la componente fundamental será \(I_{s,1} = \sqrt{2} I_{s,1~rms} \) y la de los armónicos: \( \left.I_{s,k}\right|_{k=2,3,…\infty} = \sqrt{2} I_{s,k~rms} \).

La distorsión de la corriente es igual a la diferencia entre la señal completa menos la componente fundamental:

\[ i_{s,dis}(\omega t) = i_s (\omega t) – I_{s,1}\sin(\omega t) = \sum_{k=2}^{+\infty} i_{s,k}\sin(\omega t – \phi_k)\]

El valor eficaz de una señal es:

\[ I_{s~RMS} = \sqrt{\frac{1}{2\pi} \int_0^{2\pi} i^2_{s}(\omega t)~d\omega t}\]

La distorsión de una señal calculada como valor eficaz es:

\[ I_{s,dis~RMS} =\sqrt{I^2_{s~RMS} – I^2_{s,1 RMS}} \]

Y la distorsión armónica de una señal será la relación entre el valor eficaz de la distorsión y el valor eficaz de la componente fundamental. Dado que la distorsión de la señal puede ser mucho mayor que la componente fundamental, el THD puede tomar valores mayores a 1.

\[ THD = \frac{I_{s,dis~RMS}}{I_{s,1~RMS}} = \sqrt{\frac{I^2_{s~RMS}}{I^2_{s,1}}-1} \]

Si la red es lineal, la corriente tendrá la misma forma que la tensión. Como la tensión de senoidal, la corriente también lo será. Por tanto, la distorsión armónica de una red lineal es 0.

La potencia aparente es el producto de la tensión eficaz que entrega la red y la corriente eficaz que entrega la red.

\[ S = V_{s~rms} \cdot I_{s~rms} \]

La potencia activa es el producto de la tensión eficaz que entrega la red con la corriente eficaz del armónico fundamental de la corriente y con un factor de corrección debido al desfase entre la corriente y la tensión:

\[ P = V_{rms} I_{s,1~rms}\cos{\phi_1} \]

El factor de potencia (FP) de es la relación entre la potencia activa y la potencia aparente:

\[ FP = \frac{P}{S} = \frac{V_{rms}I_{s,1~rms}\cos{\phi_1}}{V_{rms} I_{s~rms}}=\frac{I_{s,1~rms}}{I_{s,rms}} \cos{\phi_1}=\underbrace{\frac{I_{s,1~rms}}{I_{s,rms}}}_{\text{Factor de distorsion}}\underbrace{\cos{\phi_1}}_{\text{Factor de desplazamiento}} \]

En el caso de ser un red trifásica, el factor de potencia es la media de cada una de las lineas:

\[ FP_{trifasica} = \frac{\sum_i FP_i}{3} \]

El THD también puede calcularse como:

\[THD = \sqrt{\left(\frac{\cos{\phi_1}}{FP}\right)^2-1}\]

Rectificadores monofásicos Line Conmutated

 

Rectificadores activos HPF

Introducción

Los convertidores conmutados consumen corrientes armónicas. Esto causa que la corriente que la red entrega a la carga no tenga la misma forma que la tensión, o dicho de otro modo, que la frecuencia de la corriente sea diferente de la fundamental. Esto produce tanto distorsión armónica en la corriente suministrada por la red como distorsión de la tensión en el punto de conexión. Este último efecto es debido a que la línea tiene una impedancia distinta de 0 a la frecuencia de los armónicos y se produce una caída de tensión.

Para corregir esta situación, se pueden filtrar los armónicos de la corriente mediante redes pasivas resonantes o también se pueden emplear filtros activos en serie o en paralelo mediante inversores. Sin embargo, estas medidas son complicadas o no resuelven el problema de fondo que es que el convertidor está consumiendo corriente de manera poco eficiente.

Por ello, la mejor estrategia para solucionar este problema es utilizar rectificador de alto factor de potencia (HPF), los cuales reducen el consumo de armónicos de baja frecuencia en lugar de intentar atenuar los existentes. Este tipo de rectificadores modifican la forma de onda de la corriente de entrada para mejorar el espectro armónico y el factor de potencia. Existen varias maneras de clasificar un rectificador HPF: según la forma de la corriente absorbida (totalmente sinusoidal o simplemente se ajusta al máximo establecido por la normativa), según el número de semiconductores o según el estrés que sufren los semiconductores. (control en conducción continua, control en conducción discontinua o en el límite entre c.c. y c.d. o convertidores con redes resonantes para ZVS y ZCS).

Los rectificador HPF cuentan en esencia de dos etapas: la pre-regulación y la post-regulación.

Pre-regulador monofásico HPF. Rectificador + Convertidor DC/DC

El funcionamiento ideal del rectificador sería aquel en que la corriente que obtiene de la red debe ser sinusoidal y debe estar en fase con la tensión. Esto solo ocurre si la carga conectada a la salida del rectificador tiene un comportamiento idealmente resistivo.

Como vemos en la figura de arriba, si el rectificador ve conectado a su salida una resistencia, en este caso \(R_e\), la corriente será sinusoidal y estará en fase con la tensión.

\[ i_r(t) = \frac{v_r(t)}{R_e}\]

En este caso, de manera ideal, la potencia que llega a la resistencia emulada (\(R_e\)) es transferida sin pérdidas a la carga \(R\). De manera que se cumple que:

\[ p(t) = \frac{v^2_r}{R_e} = \frac{V^2_o}{R} \]

rectificador-hpfEl convertidor DC/DC deberá actuar de forma dinámica variando el ciclo de trabajo para obtener una tensión de salida constante a partir de la tensión de entrada variable. Por tanto, la relación de transformación \(M(d(t))\) será:

\[ M\left( d(t) \right) = \frac{v_o(t)}{v_r(t)} = \frac{V_{DC}}{V_m\left|\sin(\omega t)\right|} \]

Por tanto, cualquier convertidor que sea capaz de tener esta función de transferencia, podrá generar una tensión continua a la salida obteniendo de la red una corriente con forma sinusoidal y en fase con la tensión.

Las formas de onda de la tensiones y las corrientes en el convertidor son:

Debido a que se conserva la potencia que recibe la carga emulada \(R_e\), la corriente en la carga \(R\) es:

\[i_o = \frac{v_r(t)\cdot i_r(t)}{V_o} = \frac{V^2_m}{2\cdot V_o \cdot R_e}\left(1-cos(2\omega t) \right) \]

Por tanto, la corriente de salida tiene una componente DC de valor \(\frac{V^2_m}{2\cdot V_o \cdot R_e}\) y una componente frecuencial a \(2f_{red}\) que puede ser filtrado.

Sin embargo, como se puede observar, en los puntos en los que la tensión \(V_r\) es 0, en \(0, \pi, 2\pi\), el convertidor debe ser capaz de obtener \(V_{DC}\) a la salida. Esto implica que la función de transferencia tienda a infinito (lo que en la práctica no es posible). Debido a esta limitación, se producirá un error en la forma de onda de la corriente absorbida por el DC/DC en los pasos por 0, teniendo una distorsión armónica diferente de 0 pero muy reducida.

A la hora de elegir el tipo de convertidor DC/DC, se tiene que tener en cuenta que este debe ser capaz de trabajar en todo el rango de M. Por ejemplo, un convertidor buck tiene una relación de transformación \(M\leq 1 \), por lo que en aquellos puntos en los que la tensión de entrada del convertidor sea menor que la tensión de salida objetivo, se pierde el control del convertidor y este no va a ser capaz de trabajar en esta zona.

relacion-de-transformacionLo más apropiado entonces sería utilizar un convertidor buck-boost. Sin embargo, debido a la disposición de la bobina en esta configuración (en derivación) no es posible hacer un control en corriente. El control en corriente es interesante debido a que es la magnitud que realmente queremos modelar. Por tanto teniendo en cuenta esta limitación, esta configuración no se suele utilizar.

También se pierde el control del convertidor como ya se ha dicho en los puntos de la tensión de entrada \(V_r\) cercanos a 0, ya que el ciclo de trabajo en estos puntos tiende a 1 aunque no hay tensión. El convertidor boost (\(M\geq 1\)) es el más utilizado en pre-reguladores HPF monofásicos.

Pre-regulador monofásico mediante convertidor boost

pre-regulador-monofasico-mediante-convertidor-boost

El pre-regulador monofásico mediante convertidor boost es el que se muestra en la figura. Idealmente, el convertidor boost puede producir cualquier ratio de conversión que esté entre 1 e infinito. La relación de transformación de este convertidor es:

\[ M(d(t)) = \frac{V_o}{V_r} = \frac{1}{1-d(t)}\]

Despejando el ciclo de trabajo:

\[ d(t) = 1-\frac{v_r(t)}{V_o}\]

donde \(V_o\) es la tensión continua que se quiere conseguir a la salida y \(v_r(t)\) es la tensión a la salida del rectificador. Sin embargo, esta expresión solo es cierta cuando la corriente en la bobina está en conducción continua.

Para garantizar la conducción continua, el rizado de corriente en la bobina debe ser menor o igual que 2 veces la corriente media en la bobina:

\[ \Delta i_L \leq 2i_{L(AV)}\]

Donde hay que tener en cuenta que la corriente media que pasa por la bobina es la corriente media que el rectificador toma de la red (\(i_{L(AV)} = i_{r(AV)}\)). Vamos a calcular primero el valor de la corriente media en la bobina (o lo que es lo mismo, de la red). La corriente de salida está relacionada con la corriente de entrada mediante la siguiente expresión:

\[ \frac{I_o}{I_{r~(AV)}} = 1 – D \]

Despejando \(I_{r~(AV)}\), tenemos:

\[ I_{r~(AV)} = \frac{I_o}{1 – D} = \frac{\frac{V_o}{R}}{1-D} = \frac{V_o}{R\left(1-D\right)}~~~(1)\]

Sin embargo, esta ecuación no nos relaciona la corriente media de salida con la resistencia emulada \(R_e\). Para poder relacionarlas, sabemos que la función de transferencia de la tensión es:

\[ \frac{V_o}{V_{r~rms}} = \frac{1}{1-D} \]

\[V_o = \frac{V_{r~rms}}{1-D}\]

Como R es la relación entre la tensión de salida y la corriente de salida:

\[ R = \frac{V_o}{I_o} = \frac{V_{r~rms}}{I_{r~rms}} \frac{1}{\left(1-D\right)^2} = \frac{R_e}{ \left( 1-D\right)^2 }  \]

Donde \(R_e\) es la resistencia equivalente vista desde la salida del rectificador.

Retomando la expresión de la corriente de entrada (1):

\[ I_{r~(AV)} = \frac{V_o}{R\left(1-D\right)} = \frac{V_o}{R_e}\left(1-D\right) = \frac{V_{r~rsm}}{R_e}\]

\[ i_{r~(AV)} = \frac{v_r(t)}{R_e}\]

Por lo que ya tenemos la ecuación que relaciona la corriente media que proporciona la red con la resistencia emulada \(R_e\).

Ahora vamos a calcular la otra parte de la inecuación y tener las condiciones que aseguran que el convertidor trabaja en conducción continua, que interesa como hemos visto para que la relación de transformación sea válida. El rizado de corriente en el convertidor boost es:

\[ \Delta i_r = \frac{v_r(t)}{L}d(t)T_{s}\]

Por tanto, como habíamos dicho y siendo \(i_L = i_r\), para garantizar conducción continua:

\[ \Delta i_L \leq 2i_{L(AV)}\]

\[  \frac{v_r(t)}{L}d(t)T_{s} < 2\frac{v_r(t)}{R_e}  \]

Despejando \(R_e\):

\[ R_e < \frac{2L}{d(t)T_{s}} \]

Despejando \(d(t)\):

\[ d(t)< \frac{2L}{R_e T_{s}} \]

Si se cumplen estas ecuaciones, el convertidor estará en conducción continua y la relación de transformación que nos interesa se cumplirá. Sin embargo, estas últimas ecuaciones las podemos reescribir de la siguiente manera:

\[ R_e < \frac{2L}{\left(1-\frac{v_r(t)}{V_o}\right)T_{s}} \]

Como \(v_r(t) = V_M \left| \sin(\omega t) \right|\), es decir que \(0\leq V_r \leq V_M\), el valor máximo que puede tener \(R_e\) sea da cuando \( \frac{2L}{\left(1-\frac{v_r(t)}{V_o}\right)T_{s}}\) sea mínimo. Y esto sucede cuando el denominador es máximo. Dicho de otro modo, el máximo valor que puede tomar \(R_e\) se da cuando \(v_r(t) = 0\). Por tanto, el máximo valor de \(R_e\) que hace que el convertidor esté trabajando en modo corriente continua es:
\[ R_e < \frac{2L}{T_s} \]

El valor de \(R_e\) nos va a servir para diseñar la bobina del convertidor. Sabiendo que:
\[  R_e = \frac{V^2_{r(rms)}}{P_o} = \frac{V^2_m}{2P_o} \]

Entonces, sustituyendo:
\[ \frac{V^2_m}{2P}  < \frac{2L}{T_s} \Rightarrow L > \frac{V^2_m \cdot T_s}{4P} \]

Por tanto, este será el mínimo valor de inductancia que conseguirá que el convertidor esté trabajando en modo conducción continua.

Sin embargo, el valor de la inductancia de la bobina no será cualquier valor por debajo del mínimo. De hecho, en muchos casos tendremos impuesto un rizado máximo de corriente en la bobina. En ese caso, la expresión del rizado de la corriente en la bobina será el que limitará el mínimo valor de la inductancia. De la ecuación del rizado de la corriente en el convertidor boost:

\[ \Delta I_L = \frac{V_{r~rms}}{L}DT_s = \left\{ \frac{V_o}{V_{r~rms}} = \frac{1}{1-D} \right\} =     \frac{V_o}{L} D \left(1-D\right)T_s \]

Despejando L:
\[ L = \frac{V_o}{\Delta I_L} D \left(1-D\right)T_s \]

El valor del ciclo de trabajo D que maximiza la ecuación es \(D = 0.5\).
\[ \left. D \cdot \left(1-D\right)\right|_{D=0.5} = 0.25 = \frac{1}{4} \]

Teniendo este valor en cuenta, para cumplir que el rizado de corriente sea menor que el exigido:
\[ L > \frac{V_o}{4\Delta I_L} T_s \]

De esta manera quedaría totalmente diseñada la bobina.

El último componente que queda por determinar es el condensador. La función del condensador es la de proporcionar potencia a la salida cuando la potencia suministrada por la red es 0. Debido a que la corriente está en fase con la tensión y tienen la misma forma de onda, en \(\pi\) y \(2\pi\) la potencia es que entrega la red es 0. Sin embargo, la potencia que queremos entregar a la carga es constante. Para arreglar esta situación, el condensador se cargará en un cuarto de periodo almacenando energía y se descargará en el otro cuarto de periodo. Esta situación se muestra en la siguiente figura:
La potencia que suministra la red es:
\[ p_r(t) = v_r(t) \cdot i_r(t) = \frac{V^2_m}{R_e}\sin^2(\omega t) = \frac{V^2_m}{2R_e}\left[1-\cos\left(2\omega t\right)\right]\]

La potencia media entregada a la carga, será la potencia media suministrada por la red:
\[ P_{r(AV)} = P_o =  \frac{V^2_m}{2 R_e}\]

La potencia suministrada por el condensador debe ser la diferencia entre la que pide la carga y la que entrega la red:
\[ p_c(t) = p_r(t) – p_o(t) \]

La energía almacenada en un condensador es:
\[ E_c = \frac{1}{2} C V^2_c \]

Por tanto, la potencia del condensador será:
\[ p_c(t) = \frac{dE(t)}{dt} = \frac{d}{dt}\left[\frac{1}{2} C v^2_c(t)\right]  \]

 

Inmunidad conducida e inmunidad a transitorios en líneas de E/S y de alimentación DC

Cualquier cable de menor de 3 metros no está sujeto a la normativa EMI.

La norma define 3 criterios aptitud para los test de inmunidad:

  • Criterio A: el dispositivo funciona correctamente antes, durante y después del test. Si alguna función durante el test no se ha degradado pero se especifica en el manual, puede pasar como criterio A.
  • Criterio B: tras el test el funcionamiento es el correcto. Durante el test no. Sin embargo, no puede sufrir ninguna pérdida de información almacenada.
  • Criterio C: el dispositivo funciona mal tras pasar el test hasta que se reinicia.

En ningún caso de los anteriores, hay un daño físico del producto tras el test. Para el caso de RF radiada o conducida (e.g., acoplamiento de una señal de radio) de manera continuada, es necesario pasar la prueba con criterio A, ya que de lo contrario el producto no funcionará nunca.

Inmunidad frente a RF conducidas

Esta normativa deben pasarla todas aquellas entradas E/S del producto. Es decir, a entradas de alimentación y comunicación. Estas son sometidas a una tensión de modo común con una modulación AM de 1 kHz al 80% en el caso de un producto de tecnologías de la información.

Si los cables son apantallados, se inyecta una señal de perturbación sobre la pantalla para simular campos captados mediante una resistencia de 100 \(\Omega\). Si no están apantallados, se aplica en modo común sobre la línea con una impedancia de \(150 \Omega\).

La RF conducida puede manifestarse como un offset debido que al pasar por una unión PN esta se rectifique y aparece una tensión positiva.

Para proteger un equipo frente RF se puede hacer mediante blidaje, mediante cableado, mediante un diseño adecuado de la PCB (teniendo en cuenta el stack-up y el rutado de pistas) y también mediante filtrado con un filtro LC (entre otros).

La inductancia de una pista en la PCB es de 7-9 nH/cm.

ESD

La pistola ESD está formada por un alimentador de alta tensión y un condensador en paralelo.pistola-esdEsto hace que al realizar una descarga, la forma de onda de la corriente sea la superposición de dos descargas. Una directa de la alimentación de alta tensión a la punta y otra más tardía que corresponde a la descarga del condensador.

esd-2

Nivel Tensión indicada (kV) Primera cresta de la corriente de descarga (± 15%) Tiempo de subida \(t_r\) (± 25%) Corriente (± 30%) a 30 ns Corriente (± 30%) a 60 ns
1 2 7.5 0.8 4 2
2 4 15 0.8 8 4
3 6 22.5 0.8 12 6
4 8 30 0.8 16 8

Para pasar los test ESD el DUT (Design Under Test) debe funcionar en su modo más sensible. Se escogen puntos de test y se determina si la descarga es por aire o por contacto. Luego se aplican más de 10 descargas simples de la polaridad más sensible en los puntos seleccionados y se espara al menos 1 segundo para determinar si ha habido fallo. Los contactos de un conector plástico (como el de Ethernet) solo reciben descargas en el aire. Si el equipo no está conectado a tierra, se descargará el DUT entre disparo y disparo.

Las ESD llegar por conducción o por acoplamiento capacitivo o inductivo.

Tras el test, el equipo debe funcionar con criterio de aptitud B, es decir, debe funcionar correctamente al finalizar el test.

Diodos TVS: zener con unión PN gruesa para que puede aceptar corrientes grandes. Utilizado en el 90% de los casos.

Varistores: no aptos para lineas rápidas.

Se prefiere realizar descargar con una pistola ESD por contacto ya que la se asegura la repetibilidad del disparo. A través del aire, el camino de descarga nunca es el mismo.

Además de descargas directas (tocando directamente la caja), también se realizan descargas indirectas. Para ello, se descarga sobre un plano capacitivo cercano al producto. Estas descargas pueden ser más dañinas que las de contacto directo ya que la pistola tiene una impedancia de salida similar a la de un dedo humano (~330 Ω) mientras que por descarga indirecta la impedancia del aire será menor y el pico de corriente puede ser mucho mayor.

Teniendo en cuenta el campo eléctrico de ruptura, una distancia que minimizara las descargas ESD sobre la PCB es de 8 mm entre cualquier junta y la PCB. Si hubiese pintura conductora en el interior, la descarga se repartiría por toda la superficie. Sin embargo, habría que considerar la ESD desde cualquier punto de la pintura y la PCB. También se puede añadir un pantalla metálica para capturar la energía de la ESD. Esto podría hacer que una descarga cargase la placa metálica y que posteriormente hubiese una segunda ESD entre la placa y la PCB a través del aire. Para evitar esto, hay que poner la PCB al mismo potencia, de manera que se tendría que conectar la pantalla con la PCB. Esto lo que consigue es que parte de la energía de la descarga se vaya se almacene directamente en la placa y no en la PCB, minimizando el posible riesgo para los componentes.

esd

Las protecciones que suelen utilizarse para ESD son utilizando diodos TVS tal y como hemos dicho. Los circuitos integrados llevan una protección en cada pin para evitar ESD. Sin embargo, la máxima corriente que suelen soportar es ~150 mA. Esto hace que sea totalmente inútil confiar en la propia protección del IC. La corriente de pico suele ser de varias decenas de amperios y una tensión de 8 kV.

Las descargas ESD llegan a mi equipo por conducción o por acoplamiento capacitivo o inductivo a través de las líneas de E/S del equipo.

La primera línea de protección del equipo es la caja, que debería ser de plástico para evitar la entrada de ESD al circuito. Para evitar descargas ESD entre cualquier junta de la caja y la PCB hay que dejar un espacio libre de 8 mm.

También se puede recubrir el interior de la caja con una placa metálica o pintura conductora, ya que puede capturar la descarga y alejarla de la electrónica. La masa del circuito, las protecciones ESD, las pantallas de los cables y los conectores deberán ir conectados a la placa, para asegurar el mismo potencial y evitar descargas entre la placa y la PCB.

En cada de no disponer de una placa metálica en el interior de la placa, podemos utilizar un área de masa de E/S separada de la masa del circuito. Si no hay masa de circuito, habría que conectarlo a la masa del circuito pero es la peor solución.

Si la caja exterior es metálica, puede facilitar la descarga a tierra pero durante la descarga ESD la caja alcanzará varios kV que podrían descargarse de nuevo a través del aire y también, podrían inyectarse corrientes en los nodos del circuito debido a capacidades parásitas (a las altas frecuencias del ESD la capacidad parásita puede significar a un camino de baja impedancia).

Fuente: http://www.compliance-club.com/archive/old_archive/991215.htm#_Toc7417944
Fuente: http://www.compliance-club.com/archive/old_archive/991215.htm#_Toc7417944

Para solucionar el primer problema, habría que conectar la caja a la masa del circuito de manera directa o capacitivamente o dejar suficiente espacio entre la caja y la PCB para evitar descargas secundarias. Para solucionar la inyección de corrientes, habría que conectar la caja y el PCB en varios puntos o añadir una segunda caja. De esta manera, habría menos puntos cuya diferencia de potencial hiciese circular esta corriente indeseada.

Sin embargo, la caja no es suficiente para evitar descargas ESD y serán necesarios elementos de protección insertados en nuestro diseño.

Diodos TVS

Los diodos TVS (transient voltage suppressor), son diodos zener con una unión PN más gruesa para soportar corrientes instantáneas grandes. Sin embargo, al tener una unión PN más gruesa también tienen una capacidad mayor que carga al circuito.

Suelen ponerse en las pistas de E/S derivando a masa.

tvs
Fuente: http://www.ti.com/lit/ds/symlink/tpd1e10b09.pdf

Si ponemos el TVS alejado de la pista que estamos protegiendo 1 cm y teniendo en cuenta que la inductancia de una pista es de 9 nH/cm y la pendiente de la corriente de una descarga ESD es de 20 A/ns, estaría degradando la protección:

\[ V = L \frac{di}{dt} = 9~nH\cdot 20 A/ns = 180 V \]

Cada milímetro de pista entre la pista y el TVS degrada aproximadamente 20 V la protección.

tvs_datasheet

El diodo TVS muchas veces no es suficiente y es necesario añadir una resistencia en serie para limitar el pulso ESD residual. Normalmente es una resistencia, una ferrita o una inductancia (propia de la pista o discreta). El valor de la impedancia en serie debe ser tan alta como lo permita la aplicación. En caso de aplicaciones de alta frecuencia serán inviables.

Modelos SPICE de modelos TVS de LittelFuse

Los conectores con filtros integrados no suelen ser soluciones definitivas ya que suelen tener filtros suaves. Las ferritas que incorporan tienen un flujo de campo magnético de saturación bajo y a partir de entonces dejan pasar toda la interferencia, por lo que para ESD son inútiles.

Como regla de diseño, la entrada de un integrado digital debería soportar como máximo 100 mA. En un integrado analógico, de 2-5 mA.

EFT (Electrical Fast Transients)

En la línea de alimentación pueden existir transitorios rápidos que pueden afectar al funcionamiento de un equipo. Los EFT pueden surgir de la conexión del cable de alimentación AC, de la conmutación a ON/OFF de un equipo o cuando un relé se abre o se cierra. Otras fuentes de EFT pueden ser cargas altamente inductivas, como motores.

eft

Al igual que las ESD son descargas de gran tensión pero de mayor duración.eft_waveform

E/S alimentación y tierra E/S señal
Nivel Tensión de cresta (kV) Nivel Tensión de cresta (kV)
1 0.5 1 0.25
2 1 2 0.5
3 2 3 1
4 4 4 2

En los test, para introducir la EFT se utiliza una pinza de acoplamiento capacitiva alrededor del cable de alimentación. Este acoplamiento capacitivo se llama clamp y tiene una capacidad de 100 pF.

La EFT puede ser mucho más dañina que la ESD:

Arriba: ESD. Abajo: EFT

Según la norma EN 55024, aplicable a equipos de tecnología de la información:

  • Solo se aplica el test a cables de señal >3 m.
  • El criterio de aptitud es el B.

Se aplica una ráfaga de pulsos de 75 pulsos que se repiten cada 200 \(\mu s\) (frecuencia 5 kHz).

Ondas de choque

Las ondas de choque son las sobretensiones provocadas por descargas atmosféricas (rayos). La energía del pulso de test puede ser miles de veces mayor que la de ESD y EFT, por lo que los circuitos de protección para estos no sirven.

En tensión, el tiempo de subida de la onda es de 1.2 \(\mu s\) y el tiempo transcurrido hasta que vuelve a tener el valor mitad del pico, pasan 50 \(\mu s\). Es decir, es un pulso 1.2\(\mu s\)/50\(\mu s\).

En corriente es \(8/20\mu s\), cuyo pico viene determinado por la impedancia equivalente del generador (\(\approx 2 \Omega\)).

Como elementos de protección, hay que utilizar diodos TVS de alta potencia, tubos de descarga de gas, o varistores (MOVs) de alta potencia. Hay que tener en cuenta que las compañías eléctricas ya aportan una protección primaria en modo común a la entrada del edificio, pero si se trata de una red externa como la de teléfono esta protección está instalada por el proveedor.

Para proteger frente a ESD, EFT y ondas de choque, el esquema de protección debería constar de 2 niveles:

comparativa_corrientes proteccion_total

  1. La interferencia de alta tensión llega al circuito. En este momento, debido a que el diodo TVS tiene una respuesta rápida, es el primero que se pone a conducir y a derivar la señal a tierra.
  2. Mientras el diodo TVS está derivando corriente a tierra, la resistencia R limita la corriente y hace que caiga tensión.
  3. El valor de R se debe calcular de manera que el tubo de gas, que tiene un tiempo de respuesta lento pero es capaz de derivar grandes potencias, comience a conducir antes de que se alcance la corriente máxima que puede conducir el diodo TVS.

Diodos TVS de alta potencia

Los diodos TVS de alta potencia tienen una alta capacidad (~ 1 nF) y soportan potencias de kW, aunque hay muchos modelos diferentes. Sin embargo, cuanto más potencia deban soportar su capacidad será mayor ya que la capacidad viene determinada por el tamaño de la unión PN y su zona de deplexión que debe ser mayor para soportar más potencia. Como disipan mucha potencia, su temperatura cambiará drásticamente, por lo que hay que tener en cuenta el derating por temperatura en el que la corriente de pico máxima que puede soportar puede bajar hasta el 0%.

Varistores

tl;dr: puede soportar  más tensiones de pico pero deja pasar más interferencias. Ademas, se degrada.

Metal-oxide varistor (MOV) están formados por granos de óxido de zinc y otros metales que forman multitud de diodos dispuestos en todas las direcciones, por lo que es bidireccional y simétrico. Tienen una impedancia alta por debajo de la tensión de ruptura y una impedancia baja por encima de dicha tensión. Sin embargo, estos elementos se degradan tras cada transitorio absorbido.

Tubos de descarga de gas (GDT)

tl;dr: aguantan mucha corriente, limitando a ~10 V. Pero son muy lentos (ms). Cada vez que se ioniza, se deposita metal en las paredes y se crea un ruta de baja impedancia que deteriora su efectividad.

Se usa principalmente para proteger líneas externas (Ethernet, RS-485, …) a la entrada de edificios o instalaciones.

Tienen una baja capacidad (~1 pF), por lo que no cargan las líneas de datos rápidas. Son lentos ya que necesitan ionizar el gas de su interior. Sin embargo, una vez ionizado es capaz de absorber mucha potencia y mantener una tensión fija en sus bornes. Cuando el transitorio termina, el GDT vuelve a su estado de alta impedancia.

Red snubber de ayuda a la conmutación a OFF

La conmutación de un transistor no es instantánea. Hay momentos en los que la tensión de circuito abierto con la corriente de cortocircuito se solapan dando lugar a picos de potencia. Es lo que se conoce como consumo dinámico del transistor.

En la imagen vemos como mientras el transistor está en ON, hay un consumo activo debido a la resistencia parásita. Cuando se conmuta a ON o a OFF, aparece un pico de potencia. Una vez puesto a nivel bajo la entrada del transistor, hay un tiempo de retraso (time delay off) y posteriormente la tensión empieza a subir. durante \(t_{rv}\) (time rise voltage) Mientras la tensión sube, la corriente permanece constante. Cuando la tensión termina de subir, entonces la corriente empieza a bajar durante el periodo \(t_{fc}\) (time fall current). Y finalmente vemos que lo mismo ocurre durante la conmutación a ON.

Una red para disminuir la potencia disipada en la conmutación es la siguiente:

Cuando el SW está ON, \(V_{sw} = 0\), \(V_o = V_i\), \( V_{cs} = 0\), \(i_{sw} = I_o \) y \(i_{Df}  = 0 \).

En esta red tenemos dos casos particulares:

  1. Cuando \(C_s\) es pequeño y \(\tau < t_{fc} \).
  2. Cuando \(C_s\) es grande y \(\tau > t_{fc} \).

Nota: \(\tau\) no es RC ya que la corriente que carga el condensador no está limitada por la resistencia \(R_s\). Esta resistencia en realidad solo está para descargarlo.

Caso 1)

Intervalo \( 0 < t < \tau \)

\[ i_{sw} = I_o – \frac{I_o}{t_{fi}} t \]

\[ i_{cs} = \frac{I_o}{t_{fi}} \]

\[ V_{cs} = \frac{1}{C_s} \int{i_{C_s} dt} = \frac{1}{C_s} \int_0^\tau{\frac{I_o}{t_{fc}} t dt} = \frac{1}{C_s}\frac{I_o}{t_{fc}}{\frac{\tau^2}{2}} \]

\[V_{cs}(\tau) = V_i = \frac{1}{C_s}\frac{I_o}{t_{fc}}{\frac{\tau^2}{2}} \]

\[ \tau = \sqrt{\frac{2V_i C_s t_{fc}}{I_o}} \] snubber-conmutacion-off

A partir de \(\tau\), el diodo \(D_f\) empieza a conducir:

Intervalo \(\tau\) < t < \(t_{fi}\)

\[ V_{cs} = V_i \]

\[ i_{cs} = 0\]

\[ i_{Df} = I_o – i_{sw} = \frac{I_o}{t_{fc}}t \]

\[i_{Df}(t_1) = \frac{I_o}{t_{fc}}t \]

Caso 2)

Intervalo 0 < t < \(t_{fc}\)

La corriente que pasa por el switch baja:

\[ i_{sw} = I_o – \frac{I_o}{t_{fc}} t \]

La corriente en el condensador sube:

\[ i_{C_s} = \frac{I_o}{t_{fi}} t \]

\[V_{C_s} = \frac{1}{C_s} \int{i_{C_s} dt} = \frac{1}{C_s} \frac{I_o}{t_{fc}} \frac{t^2}{2} \]

\[V_{C_s}(t_{fc}) = \frac{t_{fi}}{2 C_s} \]

Intervalo \(t_{fi} < t < \tau \)

Toda la corriente de la carga circula hacia el condensador, por lo que se carga linealmente.

\[V_{C_s} = \frac{I_o}{C_s} \left( t – t_{fc} \right) + V_{cs}(t_{fc}) \]

\[ V_{C_s} = \frac{1}{C_s} \int{I_o dt}\]

\[V_{C_s} = \frac{I_o}{C_s} \left(\tau-t_{fc}\right) + V_{cs}\left(t_{fc}\right)\]

conmutacion-a-off-caso-condensador-grande

A la hora de escoger el condensador, se define la constante k, que es la relación entre el tiempo de carga del condensador y el tiempo de bajada de la corriente:

\[ k = \frac{\tau}{t_{fc}}\]

Existe un punto óptimo en el que la potencia que se disipa en la conmutación se minimiza y se da cuando:

\[ k = \frac{2}{3}\]

Hay que tener en cuenta que durante la conmutación a ON la corriente que debe soportar el transistor es la corriente \(I_o\) y la descarga del condensador. Además, es muy importante que durante el tiempo de ON el condensador se descargue totalmente, por lo que esta es la restricción necesario para dimensionar \(R_s\), que sirve para disipar la energía almacenada en el condensador durante el tiempo de ON.

Finalmente, lo que se observa con esta red snubber es que se reduce la tensión que se superpone mientras la corriente todavía está bajando. Por tanto, la potencia disipada en la conmutación se reduce.

Red limitadora de sobretensiones para convertidor Flyback

En los convertidores Flyback, debido a capacidad parásitas en los semiconductores y las inductancias de pérdidas del transformador aparecen una serie de oscilaciones y sobretensiones en los extremos del transistor y del diodo que puede llegar a los cientos de voltios con una alimentación de entrada de pocos voltios.

En el esquemático, \(L_{d_1}\) y \(L_{d_2}\) son las inductancias de pérdidas tanto del primario como del secundario, \(C_{oss}\) es la capacidad parásita del transistor y \(C_j\) la capacidad parásita del diodo.

Para evitar las sobretensiones en la conmutación a OFF, existe una red snubber que reduce la tensión en el condensador. Consiste en un diodo, un condensador y una resistencia.

flyback-con-red-snnuber

Durante el intervalo \(DT_s < t < DT_s + t_s\), en el que \(t_s\) es el tiempo en el que la corriente que circula por la red snubber se hace 0. En este intervalo, el diodo \(D_{sn}\) conduce. Por tanto, tomando el diodo como ideal, la tensión en el transistor es:

\[ V_{DS} = V_{i} + V_{sn}\]

Haciendo el KVL en la malla que cierra el transformador, la inductancia de dispersión y la red snubber, obtenemos que:

\[ V_1 + V_{L_d} + V_{sn} = 0\]

Si despejamos \(V_{sn}\):

\[V_{sn} = -V_1 – V_{L_d} \]

Por tanto, \(V_{DS}\) queda como:

\[V_{DS} = V_{i} – V_1 – V_{L_d}\]

Como \(V_1 = – \frac{N_1}{N_2}V_o\), \(V_{DS}\) es:

\[V_{DS} = V_{i} + \frac{N_1}{N_2}V_o – V_{L_d}\]

En cuanto a las corrientes, debido a que aparece una tensión en bornes del inductor \(L_{d_1}\), hay una variación de corriente.

\[V_{L_{d_1}} = -V_1 – V_{sn} = \frac{N_1}{N_2} V_o – V_{sn} = L_{d_1} \frac{d i_{L_{d_1}}}{dt} \]

\( \frac{N_1}{N_2} V_o – V_{sn} \) siempre será menor que 0, ya que \(V_{sn} \) será aproximadamente la tensión de ruptura del transistor entre drenador y surtidor.

Por tanto, la corriente es decreciente:

\[ i_{L_{d_1}} = i_{sn}= I_{{mg}_{max}} – \frac{1}{L_{d_1}} \left( V_{sn} – N_{12} V_o \right) \left( t – D T_s\right) \]

La pendiente de la corriente es muy grande, por lo que la corriente se hará 0 en un corto periodo de tiempo. Este periodo es el que habíamos llamado \(t_s\) y es:

\[ t_s = \frac{I_{L_{max}} L_{d_1}}{V_{sn} – N_{12} V_o} \]

snubber-flyback

Para diseñar la red snubber, se suele elegir una tensión de transistor que sea aproximadamente un 80% de la que el fabricante nos dice que aguanta. Por ejemplo, en el caso de un BUZZ11, la tensión de ruptura es de 50V.

La potencia que disipa la red snubber es igual al producto de la tensión por la corriente. La tensión es \(V_{sn}\) y la corriente sigue la expresión \(i_{sn} = I_{{mg}_{max}} – \frac{1}{L_{d_1}} \left( V_{sn} – N_{12} V_o \right) \left( t – D T_s\right)  \).

Por tanto, la potencia instantánea en la red snubber es:

\[ P_{sn} = V_{sn} \left[I_{{mg}_{max}} – \frac{1}{L_{d_1}} \left( V_{sn} – N_{12} V_o \right) \left( t – D T_s\right) \right] \]

Como \(V_{sn}\) se considera constante durante todo este periodo, la potencia tendrá la misma forma de onda que la corriente \(i_{sn}\) pero reescalada por un factor \(V_{sn}\). La potencia media que se disipará en un ciclo completo es:

\[ P_{sn_{AV}} = \frac{1}{T_s} \int{i_{sn}V_{sn} dt} =\frac{ V_{sn}}{T_s}\underbrace{\int{i_{sn} dt} }_{\text{Área del triángulo}} = \frac{ V_{sn}}{T_s}  \frac{1}{2} I_{{mg}_{max}} t_s \]

Sabiendo la potencia que se consume y la tensión que se disipa podemos calcular la resistencia simplemente como:

\[ R_{sn} = \frac{V^2_{sn}}{P_{{sn}_{AV}}} \]

Para dimensionar el condensador, lo haremos a partir de la tensión de rizado en el condensador \(C_{sn}\).

El condensador de carga a \(V_{c_{max}}\) y se descarga a través de la resistencia \(R_{sn}\).

La forma de onda de la descarga tendrá un aspecto parecido al siguiente:

descarga-condensadorDe manera, que si \(R \cdot C \ll T_s\) la descarga es prácticamente lineal.

La variación de tensión en el condensador es:

\[ \Delta V_{sn} = \frac{V_{sn_{max}} T_s}{R_{sn} C_{sn}} = \frac{V_{sn_{max}} }{R_{sn}C_{sn} f_s} \]

Del que podemos despejar \(C_{sn}\) como:

\[C_{sn} = \frac{V_{sn_{max}} }{R_{sn}\Delta V_{sn}  f_s} \]