Selective Harmonic Elimination via Feedback Optimal Control



Jesús Oroya - Dic 2020


1. Definición del problema


Consideraremos una función escalón:

$$ \{ f(\tau) \ | \ \tau \in [0,2\pi]\} \ \text{ y } \ f(\tau) \in \{-1,1\}$$

Con simetría de media onda:

$$ f(\tau) = -f(\tau+\pi) $$

Cuyos coeficientes de Fourier se pueden escribir como:

$$ a_i = \frac{2}{\pi} \int_0^\pi f(\tau ) \cos(i \tau)d\tau \ | \ \forall i \ odd $$ $$ b_j = \frac{2}{\pi} \int_0^\pi f(\tau) \sin(j \tau) d\tau \ | \ \forall j \ odd $$

Consideramos dos conjuntos de números impares \( \mathcal{E}_a \) y \( \mathcal{E}_b\) con cardinalidades \(|\mathcal{E}_a| = N_a \) y \(|\mathcal{E}_b| = N_b\)

Consideramos los vectores objetivo \({a}_T \in \mathbb{R}^{N_a}\) y \({b}_T \in \mathbb{R}^{N_b}\)

Buscamos una función \( f(\tau ) \) cuyos coeficientes de Fourier satisfagan:

$$ a_i = ({a}_T)_i \ | \ \forall i \in \mathcal{E}_a $$ $$ b_j = ({b}_T)_j \ | \ \forall \ j \in \mathcal{E}_b $$


2. SHE como un sistema dinámico


Podemos re-escribir los coeficientes como:

$$ \alpha_i(\tau) = \frac{2}{\pi}\int_0^\tau f(\tau) \cos(i\tau)d\tau \Rightarrow \begin{cases} \dot{\alpha_i}(\tau) & = \frac{2}{\pi}f(\tau)\cos(i\tau) \\ \alpha_i(0) & = 0 \end{cases} $$ $$ \beta_j(\tau) = \frac{2}{\pi}\int_0^\tau f(\tau) \sin(j\tau)d\tau \Rightarrow \begin{cases} \dot{\beta}_j(\tau) & = \frac{2}{\pi}f(\tau)\sin(j\tau) \\ \beta_j(0) & = 0 \end{cases} $$

Entonces \(\alpha_i(\pi)\) y \(\beta_j(\pi)\) corresponden a los coeficientes de Fourier \(a_i\) y \(b_j\) respectivamente.

Tomamos como ejemplo \( \mathcal{E}_a = \{1\} \) y \( \mathcal{E}_b = \{1\} \). Esto nos da el siguiente sistema dinámico:

$$ \begin{cases} \alpha_1 = (2/\pi) \cos(\tau)f(\tau) & \alpha_1(0) = 0 \\ \beta_1 = (2/\pi) \sin(\tau)f(\tau) & \beta_1(0) = 0 \end{cases} $$

Veamos como se comporta esta dinámica con un control \(f(\tau)\) dado.

Evolución del sistema dinámico:

Cambio de variable \(\alpha'(\tau) = a_T - \alpha(\tau)\) y \(\beta'(\tau) = b_T - \beta(\tau)\)

$$ \begin{cases} \dot{\alpha_i'}(\tau) & = -\frac{2}{\pi}f(\tau)\cos(i\tau) \\ \alpha_i'(0) & = \textcolor{red}{a_T^i} \end{cases} $$ $$ \begin{cases} \dot{\beta_j'}(\tau) & = -\frac{2}{\pi}f(\tau)\sin(j\tau) \\ \beta_j'(0) & = \textcolor{red}{b_T^i} \end{cases} $$

Si el sistema termina en \(\alpha_i'(\pi) = 0\) y \(\beta_j'(\pi) = 0\) entonces las condiciones iniciales \(\textcolor{red}{a_T^i}\) y \(\textcolor{red}{b_T^j}\) son los coefientes de Fourier de \(f(\tau)\)

Tomamos como ejemplo \( \mathcal{E}_a = \{1\} \) y \( \mathcal{E}_b = \{1\} \). Esto nos da el siguiente sistema dinámico:

$$ \begin{cases} \alpha_1 = -(2/\pi) \cos(\tau)f(\tau) & \alpha_1(0) = a_T^1 \\ \beta_1 = -(2/\pi) \sin(\tau) f(\tau) & \beta_1(0) = b_T^1 \end{cases} $$

Veamos como se comporta esta dinámica con un control \(f(\tau)\) dado.

Evolución del sistema dinámico inverso


3. Problema de control óptimo


El problema de control se puede escribir como:

$$ \min_{f(\tau) \in \{-1,1\}} \Big(\|{\alpha}(\pi)\|^2 + \| {\beta}(\pi)\|^2 \Big) $$

sujeto a:

$$ \forall i \in \mathcal{E}_a\ \ \begin{cases} \dot{\alpha}_i(\tau) = -(2/\pi) \cos(i\tau) f(\tau) & \tau \in [0,\pi]\\ \alpha_i(0) = a_T^i \end{cases} $$ $$ \forall j \in \mathcal{E}_b\ \ \begin{cases} \dot{\beta}_j(\tau) = -(2/\pi) \sin(j\tau) f(\tau) & \tau \in [0,\pi]\\ \beta_j(0) = b_T^i \end{cases} \\ $$

Tomando la notación

$$ \mathcal{D}^\alpha_i(\tau) = (2/\pi) \cos(j\tau) $$ $$ \mathcal{D}^\beta_j(\tau) = (2/\pi) \sin(j\tau) $$

Entonces podemos construir los vectores \(\mathcal{D}^\alpha\) y \(\mathcal{D}^\beta\) como:

$$ \mathcal{D}^\alpha(\tau) = [\mathcal{D}^\alpha_1(\tau),\mathcal{D}^\alpha_3(\tau),\mathcal{D}^\alpha_5(\tau), \dots ] $$ $$ \mathcal{D}^\beta(\tau) = [\mathcal{D}^\beta_1(\tau),\mathcal{D}^\beta_3(\tau),\mathcal{D}^\alpha_5(\tau), \dots ] $$

Entonces podemos re-escribir las ecuaciones como:

El problema de control se puede escribir como:

$$ \min_{f(\tau) \in \{-1,1\}} \Big(\|{\alpha}(\pi)\|^2 + \| {\beta}(\pi)\|^2 \Big) $$

sujeto a:

$$ \begin{cases} \dot{\alpha}(\tau) = -\mathcal{D}_\alpha(\tau) f(\tau) & \tau \in [0,\pi]\\ \alpha(0) = a_T \end{cases} $$ $$ \begin{cases} \dot{\beta}(\tau) = -\mathcal{D}_\beta(\tau) f(\tau) & \tau \in [0,\pi]\\ \beta(0) = b_T \end{cases} $$

Podemos reducir aún más la ecuación mediante la siguiente notación:

$$ \mathcal{D}(\tau) = [\mathcal{D}_\alpha(\tau) \ \mathcal{D}_\beta(\tau) ] $$ $$ x(\tau) = [\alpha(\tau) \ \beta(\tau)] $$

Por tanto

$$ x_0 = [a_T \ \ b_T] $$

El problema de control se puede escribir como:

$$ \min_{f(\tau) \in \{-1,1\}} \|x(\pi)\|^2 $$

sujeto a:

$$ \begin{cases} \dot{x}(\tau) = -\mathcal{D}(\tau) f(\tau) & \tau \in [0,\pi]\\ x(0) = x_0 \end{cases} $$

Para resolverlo numéricamente necesitamos tomar una discretización del intervalo \([0,\pi]\), es decir:

$$ \tau \in [0,\pi] \rightarrow {\{t_0,t_1,t_2, \dots,t_{K}\}} $$ $$ t_0 = 0 \ | \ t_K = \pi $$

Tomaremos esta discretización equiespaciada en el tiempo.

De esta manera podemos referirnos a las funciones \(f(\tau)\) y \(x(\tau)\) como vectores:

$$ f(\tau) \rightarrow \vec{f} = \{f_0,f_1,\dots,f_K\}$$ $$ x(\tau) \rightarrow \vec{x} = \{x_0,x_1,\dots,x_K\}$$ $$ \mathcal{D}(\tau) \rightarrow \vec{\mathcal{D}} = \{\mathcal{D}_0,\mathcal{D}_1,\dots,\mathcal{D}_K\}$$

El problema de control se puede escribir como:

$$ \min_{\{f_0 \ , \ f_1 \ , \ \dots \ , \ f_{K-1} \} } \|x_K\|^2 $$

sujeto a:

$$ f_t \in \{-1,1\} \ | \ \forall t \in \{0,1,\dots,K-1\} $$ $$ \begin{cases} x_{t+1} = x_t - \Delta t \ \mathcal{D}_t f_t & \forall t \in \{0,1,\dots,K-1\} \\ x_0 \ dado \end{cases} $$

Tomamos como ejemplo \( \mathcal{E}_a = \{1\} \) y \( \mathcal{E}_b = \{1\} \). Esto nos da el siguiente sistema dinámico:

$$ x_t = \begin{bmatrix} (\alpha_1)_t \ (\beta_1)_t\end{bmatrix} $$ $$ \begin{cases} (\alpha_1)_{t+1} = (\alpha_1)_{t}-\Delta t\ \mathcal{D}_t^\alpha \ f_t & (\alpha_1)_0 = a_T^1 \\ (\beta_1)_{t+1} = (\beta_1)_{t}-\Delta t\ \mathcal{D}_t^\beta \ f_t & (\beta_1)_0 = b_T^1 \\ \end{cases} $$

Donde hemos usado una discretización temporal:

$$[0,\pi] \rightarrow \{t_0,t_1,\dots,t_{20}\} = \{1\pi/20,2\pi/20,\dots,19\pi/20,\pi \}$$

Evolución del sistema dinámico en tiempo discreto

Evolución del sistema dinámico en tiempo discreto


4. Conjunto Controlable


¿Como podemos encontrar todas las posibles trayectorias cuyo final sea el origen de coordenadas?

Con ayuda de la dirección de evolución \(\mathcal{D}(\tau)\) que en este caso es:

$$ \mathcal{D}(\tau) = \begin{bmatrix} \mathcal{D}_{\alpha_1}(\tau) \\ \mathcal{D}_{\beta_1}(\tau) \end{bmatrix} = \frac{2}{\pi} \begin{bmatrix} \cos(\tau) \\ \sin(\tau) \end{bmatrix} $$

Podemos reconstruir la trayectoria desde el final.

Reconstrucción de todas las posibles trayectorias

Estrategia para obtener la region controlable

Estrategia para obtener la region controlable

Dado una dirección \(w \in \mathbb{R}^{N_a + N_b} / \ ||w|| = 1\) entonces podemos aproximar la frontera en la dirección \(w\) como una trayectoria \(x_w\).

$$ \begin{cases} (x_w)_t= (x_w)_{t-1} + \Delta t \| \mathcal{D}_t.w\| \\ (x_w)_0 = 0 \end{cases} $$

Donde \(w\) son puntos de la esfera unidad de dimensión \(\mathbb{R}^{N_a+N_b}\)

Entonces dado un conjunto \(\mathcal{W}\) de trayectorias \((x_w)_t\) se puede construir una función cuyo valor sea 0 cuando estemos en la región controlable

$$ V_t(x) = \sum_{w_k \in \mathcal{W}} \sigma [x(\tau) - (x_{w_k})_t] $$

Donde \(\Theta:\mathbb{R} \rightarrow \mathbb{R}\) es una función de activación. Como por ejemplo:

$$ \sigma(x) = \begin{cases} 1 \ \text{ si } x>0 \\ 0 \ \text{ si } x<0 \end{cases} $$


5. Obtención de soluciones


Suponiendo que conocemos \(V_t(x)\) ¿Cómo podemos encontrar soluciones al problema?

Siempre que nos mantengamos dentro de la región controlable en todo tiempo acabaremos en el origen y por tanto \(f_t\) será una solución.

2 niveles

5 niveles

9 niveles


6. Comportamiento de soluciones óptimas en la región controlable


7. Cambios de número de ángulos


\( \mathcal{E}_b = \{ 1 \,\ 7 \,\ 9 \,\ 11 \,\ 13\} \) y \(\mathcal{E}_a = \{ \emptyset\}\)

\( \mathcal{E}_b = \{ 1 \,\ 7 \,\ 9 \,\ 11 \,\ 13\} \) y \(\mathcal{E}_a = \{ \emptyset\}\)