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á.

 

Sistemas temporales discretos

La definición de sistema discreto en el tiempo corresponde a una transformación o operador que relaciona un conjunto de valor de entrada \(x[n]\) con un conjunto de valores de salida \(y[n]\).
\[ y[n] = T\{x[n]\} \]

Sistemas sin memoria

Son aquellos en los que los valores de salida \(y[n]\) solo dependen de valores presentes de la entrada \(x[n]\). Es decir, no dependen de \(x[n-1]\), \(x[n-2]\), …
Un sistema sin memoria podría ser:
\[ y[n] = \left( x[n] \right)^2 \]

Sistemas lineales

Los sistemas lineales cumplen la propiedad de superposición. Esto significa que la salida será  igual a la suma proporcional de las entradas.

\[ T\{a\cdot x_1[n] + b\cdot x_2[n] \} = a\cdot T\{x_1[n]\} + b\cdot T\{x_[n]\} \]

Sistemas invariantes en tiempo

Un sistema invariante en el tiempo es aquel cuya salida se ve desplazada en tiempo si así lo hace la entrada. Por tanto, un desplazamiento temporal de la señal de entrada, provocará un desplazamiento en la señal de salida. De esta manera, un sistema será invariante si para todo \(n_0\), la señal \(x_1 = x[n-n_0]\) produce una señal a la salida cuyo valor se \(y_1[n] = y[n-n_0]\).

Un ejemplo de un sistema no invariante en tiempo es:
\[ y[n] = x[Mn]\]
La respuesta \(y_1[n-n_0]\) a la entrada \(x_1[n-n_0]\) es:
\[ y_1[n] = x_1[Mn] = x[Mn-n_0] \]
Como vemos, \[ y[n-n_0] = x[M(n-n_0)] \neq y_1[n] \]
Por tanto, el sistema no el invariante.

Sistemas causales

Un sistema causal es aquel que para determinar los valores de salida del sistema, solo se necesiten los valores presentes o pasados de la entrada.

Sistemas estables

Son aquellos que para cada una de las posibles entradas finitas del sistema, la salida siempre es finita. Cada una de las posibles entradas finitas del sistema significa:
\[ |x[n]| \leq B_x < \infty \] Una salida finitia signfica: \[ |y[n]| \leq B_y < \infty \]

Sistemas lineales invariantes en el tiempo

Los sistemas que son invariantes en tiempo y a la vez lineales se pueden estudiar fácilmente a través del operador convolución. De esta manera, es posible obtener cuál va a ser la salida de un sistema en función de su entrada.

Un sistema queda completamente descrito a través de su función de transferencia \(h[n]\). Esta función de transferencia es la salida que obtenemos cuando a la entrada aplicamos un impulso \(\delta[n]\).

Autofunciones en sistemas lineales invariantes

Como hemos visto, los sistemas lineales invariantes son de especial interés debido a que tienen ventajas sobre los sistemas no lineal o no invariantes y es que se puede describir mediante su respuesta impulsional.

Por propiedades de la función \(\delta [n]\), es posible describir la secuencia \(x[n]\) como:
\[ x[n] = \sum_{k=-\infty}^{+\infty} x[k]\cdot \delta[n-k] \]

De este modo, al aplicar la secuencia \(x[k]\) a la entrada de un sistema, su salida será:
\[ y[n] =  T\left\{x[n] \right\} = T\left\{\sum_{k=-\infty}^{+\infty} x[k]\cdot \delta[n-k] \right\} =\sum_{k=-\infty}^{+\infty} x[k]\cdot  T\left\{ \delta[n-k] \right\} \]

Si identificamos la transformación del tren de deltas \( T\left\{ \delta[n-k] \right\}\) como su respuesta impulsional \(h[n]\), obtenemos lo que se conoce como su ecuación de convolución:
\[ y[n] =  \sum_{k=-\infty}^{+\infty} x[k]\cdot  h[n-k] \]

Como ya se explicó en otra entrada, las autofunciones son útiles para la caracterización de sistemas. Las autofunciones son aquellas que al aplicarse en la entrada de un sistema, su salida es la misma que la función de la entrada multiplicada por una constante. Es decir, si \(x[n]\) es una autofunción de \(y[n]\):

\[ y[n] =  T\left\{x[n] \right\} = a \cdot x[n]  \]

donde \(a\) es una constante.

Una de las autofunciones de los sistemas invariantes es la exponencial compleja \(x[n] = z^n\) donde \(z\) es un número complejo cualquiera. Esta función es autofunción de cualquier sistema lineal invariante ya que:
\[ y[n] = \sum_{k=-\infty}^{+\infty} z^{n-k} h[k] = z^n\sum_{k=-\infty}^{+\infty} z^{-k} h[k]   \]

Si esta serie converge, ya que el sumatorio no depende de \(n\), \(y[n]\) puede escribirse como:
\[ y[n] = H(z) z^n\]

Este es lo mismo que decir que si a la entrada de un sistema lineal invariante se aplica una secuencia exponencial \(z^n\), a la salida se obtiene la misma secuencia multiplicada por una constante. Por tanto, queda demostrado que las exponenciales complejas \(z^n\) son autofunciones de un sistema lineal invariante cuyos autovalores están determiandos por:
\[ H(z) =  \sum_{k=-\infty}^{+\infty} z^{-k} h[k] \]

Si se interpreta \(z\) como una variable, \(H(z)\) es una función compleja de variable independiente compleja que se conoce como función de transferencia y describe el comportamiento del sistema frente a cualquier entrada.

Sistemas definidos por ecuaciones en diferencias finitas

Los sistemas discretos se pueden caracterizar, además de por su respuesta impulsional, por ecuaciones en diferencias finitas lineales con coeficientes constantes. Una ecuación en diferencias finitas lineal con coeficientes constantes corresponde a:
\[ \sum_{k=0}^P a_k y[n-k] = \sum_{k=0}^{Q} b_k x[n-k] \]
donde \(x[n]\) es una dato (ya que es la secuencia de entrada), \(y[n]\) es la incógnita de la ecuación y \(a_k\) y \(b_k\) son los coeficientes independientes de \(n\). El orden de la ecuación corresponde al mayor entre \(P\) y \(Q\).

No obstante, si se describe un sistema mediante ecuaciones en diferencias finitas, este no queda totalmente caracterizado debido a la falta de información sobre el estado del sistema antes de aplicar ninguna secuencia a la entrada. Es por eso, que para poder determinar cuál será la salida del sistema a una determinada secuencia, es necesario conocer también las condiciones iniciales del sistema. Por ejemplo, en el sistema que define un sumador:
\[ y[n] = x[n] + y[n-1]\]
si se le aplica una secuencia constante \(x[n] = 1\) para \(n\geq 0\), el valor de \(y[0]\) será:
\[ y[0] = x[0] + y[-1] = 1 + y[-1] \]
Solo se podrá determinar el valor de \(y[0]\) si conocemos \(y[-1]\). Normalmente, el sistema se supone que estaba en reposo y que las condiciones iniciales son \(y[n] = 0\) para \(n<0\). De esta manera, \(y[0] = 1\)
\subsubsection{Sistemas recurrentes y no recurrentes}

Los sistemas recurrentes son aquellos que proporcionan valores de \(y[n]\) en función de valores de la propia salida calculados anteriormente. Es decir:
\[ y[n] = \frac{1}{a_0}\left( \sum_{k=0}^{Q} b_k x[n-k] – \sum_{k=1}^{P} a_k y[n-k]  \right) \]

Si la salida \(y[n]\) solo depende de los valores presentes y pasados de \(x[n]\), o lo que es lo mismo, P = 0, el sistema es no recurrente.

\[ y[n] = \sum_{k=0}^{Q} \frac{b_k}{a_0} x[n-k] \]

Respuesta impulsional

Para obtener la respuesta impulsional de un sistema lineal invariante definido por diferencias finitas, basta con aplicar a la entrada la secuencia exponencial \(x[n] = z^n\). Como hemos visto, esta secuencia es autofunción del sistema y por tanto la salida será:
\[ y[n] = H(z) z^n \]

\(H(z)\) no tiene por qué existir siempre ya que el sumatorio que lo define debe converger.

Un sistema lineal invariante definido por ecuaciones de diferencias finitas, como hemos visto, corresponde a la ecuación:

\[ \sum_{k=0}^P a_k y[n-k] = \sum_{k=0}^{Q} b_k x[n-k] \]

Al sustituir \(x[n]\) e \(y[n]\) en la ecuación, se obtiene:
\[ \sum_{k=0}^P a_k H(z)z^{n-k} = \sum_{k=0}^{Q} b_k z^{n-k} \]

\(H(z)\) no depende de k, por lo que puede salir fuera del sumatorio.

\[ H(z) \sum_{k=0}^P a_k z^{n-k} = \sum_{k=0}^{Q} b_k z^{n-k} \]

Si despejamos \(H(z)\) obtenemos:

\[ H(z) = \frac{\sum_{k=0}^{Q} b_k z^{n-k}}{\sum_{k=0}^P a_k z^{n-k}} = \frac{\sum_{k=0}^{Q} b_k z^{-k}}{\sum_{k=0}^P a_k z^{-k}} \]

Por tanto, la función de transferencia de un sistema caracterizado por una ecuación en diferencias finitas es un cociente de polinomios en \(z^{-1}\) cuyos coeficientes son directamente los coeficientes de la ecuación.

Por ejemplo, si queremos diseñar un sistema de orden 2 no recurrente que cancele un tono a la frecuencia \(\omega_0 = \frac{\pi}{4}\), la ecuación en diferencias finitas debe seguir la siguiente expresión:
\[ y[n] = \sum_{k=0}^Q b_k x[n-k] \]

ya que el sistema es no recurrente. Por ser de orden 2, \(Q=2\). Por tanto, queda calcular los coeficiente \(b_k\).

La entrada del sistema será:
\[ x[n] = \cos{\left(\frac{\pi}{4}n\right)} = \frac{1}{2} \left( e^{j \frac{\pi}{4} n} + e^{-j \frac{\pi}{4} n} \right) \]

Debido a la fórmula de Euler (\(e^{jx} = \cos{x} + j \sin{x}\)), la entrada puede escribirse como combinación lineal de dos exponenciales. Como se ha demostrado, este tipo de funciones son autofunciones del sistema lineal invariante y por tanto la salida será:
\[ y[n] = \frac{1}{2} e^{j \frac{\pi}{4} n} H\left(e^{j \frac{\pi}{4}} \right) + \frac{1}{2} e^{-j \frac{\pi}{4} n} H\left(e^{-j \frac{\pi}{4}} \right)  \]

Para cancelar un tono a esta frecuencia la salida debe ser nula, \( y[n] = 0\). Esto ocurre si:
\[ H\left(e^{j \frac{\pi}{4}} \right) = H\left(e^{-j \frac{\pi}{4}} \right) = 0\]

La función de transferencia \(H(z)\) será:
\[ H(z) = \sum_{k=0}^{Q=2} b_k z^{-k}\]
ya que \(P = 0\) por ser un sistema no recurrente.

Podemos desarrollar \(H(z)\) como:
\[H(z) = b_0 + b_1 z^{-1} + b_2 z^{-2} \]

Esta expresión se puede escribir como un producto de raíces y es equivalente a:
\[ H(z) = b_0 \prod_{i=0}^1 \left(1-z_i z^{-1}\right) = b_0 \left( 1 -z_0 z^{-1}\right) \left(1-z_1 z^{-1} \right)  \]

donde \(z_0 = e^{j \frac{\pi}{4}}\) y \(z_1 = e^{-j \frac{\pi}{4}}\).

Podemos identificar ambas expresiones si desarrollamos este producto:
\[ H(z) = b_0 \left(1 + \left(-z_0-z_1\right) z^{-1} + z_0 z_1 z^{-2} \right) \]

El término \(b_0\) solo determina la ganancia del sistema y puede valer simplemente 1. Por tanto:
\[ b_0 = b_0 = 1\]
\[ b_1 = -z_0 -z_1 = -e^{j \frac{\pi}{4}}-e^{-j \frac{\pi}{4}} = 2\cdot \cos{\frac{\pi}{4}} = \sqrt{2}\]
\[ b_2 = z_0 z_1 = e^{j \frac{\pi}{4}}\cdot e^{-j \frac{\pi}{4}} = 1\]

Finalmente, \(H(z)\) queda como:
\[ H(z) = 1 +  \sqrt{2}z^{-1} + z^{-2} \]

y:

\[ y[n] = 1 + \sqrt{2} z^{-1} + z^{-2} \]

Añadir bibliografía en LaTeX

Para añadir bibliografía en LaTeX a partir de un archivo BibTeX .bib, el archivo BibTeX debe tener la siguiente estrutura:

En el archivo .tex, hay que añadir las siguientes intrucciones:

En \bibliographystyle{unsrt} el argumento puede ser:

plain Estilo normal. Se listan en orden alfabético
unsrt Igual que plain pero aparecen en orden de citación
alpha Igual que plain pero utiliza las etiquetas para identificar la cita en lugar de números
abbrv Igual que plain pero utiliza abreviaciones para los nombres, meses o nombres de revistas

Ahora para citar la referencia en el texto, hay que hacerlo con:

Solo aquellas citas que se hayan llamado en el texto aparecerán en el apartado de referencias.
Si se está usando TexMaker, será necesario compilar varias veces BibTeX y varias veces la compilación rápida para ver los cambios reflejados.

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.

Desajuste en la referencia a figuras, ecuaciones o tablas en Latex

Si el número que aparece como referencia al referenciar un objeto (imagen, ecuación, tabla, etc.) mediante el comando \ref{} no coincide con el del elemento, es porque la sentencia \caption{} aparece después de la de \label{}.

Esto ocurre porque elementos numerados como /section, \begin{equation} o \caption utilizan un contador para saber qué número es el siguiente elemento. Este contador es \refstepcounter y sirve para incrementar el contador que lleva la cuenta del número de índice de un capítulo, número de ecuación o número de figura. Cuando se escribe una etiqueta \label se guarda esa información en el archivo .aux con el fin de que cuando se escriba \ref en el documento, sepa cuál de todos los contadores debe mostrar para esa referencia. Cuando se está dentro de un entorno como por ejemplo \begin{equation} o \begin{figure} se le está diciendo a \label que incremente el contador de ese entorno. Lo mismo ocurre con table. Por tanto, cuando se pone \label antes que \caption, se incrementa el contador de \label y se muestra el número erróneo en \ref

Para ver los cambios puede que sea necesario recompilar un par de veces.

Fuente: Table numbering mismatch in caption and in text

Solucionar configuración de brillo en ASUS ROG GL552W con Linux Mint

En el terminal:

Cambiar:

por:

Una vez hecho el cambio, guardar el archivo.

Finalmente, reiniciar el equipo.

Las teclas(Fn+F5/F6) deberían volver a funcionar.

Quizá sea necesario reconfigurar después de cada actualización del sistema.

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]  \]