Solver: Algoritmo Gradencialbibing.us.es/proyectos/abreproy/5123/descargar... · 0 es la denominada...
Transcript of Solver: Algoritmo Gradencialbibing.us.es/proyectos/abreproy/5123/descargar... · 0 es la denominada...
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Solver: Algoritmo Gradencial
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 147 Ramón Jesús Cuesta Pérez
Capítulo 7
Solver: Algoritmo Gradencial
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
7.1 Formulación teórica
En este capítulo vamos a programar un
resolver el siguiente problema QP:
u* =
Uno de los fundamentos de este algoritmo es, al igual que ocurría con el de Jacobi,
pasar de resolver un problema N
dimensionales. Sin embargo utilizaremos métodos gradenciales para llegar al óptimo.
Antes de entrar en la formulación teórica del algoritmo conviene presentar una serie de
conceptos matemáticos que van a ser fundamentales para el poster
algoritmo. Para ello emplearemos una nomenclatura matemática clásica:
Sea f (z) una función real convexa
en C, donde C ⊆ RN es un conjunto cerrado y convexo. El problema de optimización
que queremos resolver es el siguiente:
Al ser f diferenciable en C,
f (z) ≥ f (
Lo cual se puede demostrar fácilmente mediante el desarrollo en serie de Taylor, que
establece que f (z) = f
desconocida.
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 148 Ramón Jesús Cuesta Pérez
Formulación teórica
En este capítulo vamos a programar un solver basado en métodos gradenciales para
resolver el siguiente problema QP:
= u
minarg 2
1uTHu + bu
s. a 1u ≤ u ≤ 1u
1U ≤ Tu + u(t−1) 1 ≤ 1U
Uno de los fundamentos de este algoritmo es, al igual que ocurría con el de Jacobi,
pasar de resolver un problema N-dimensional a resolver N problemas mono
dimensionales. Sin embargo utilizaremos métodos gradenciales para llegar al óptimo.
Antes de entrar en la formulación teórica del algoritmo conviene presentar una serie de
conceptos matemáticos que van a ser fundamentales para el posterior desarrollo del
algoritmo. Para ello emplearemos una nomenclatura matemática clásica:
(z) una función real convexa f : RN → R que al menos sea diferenciable de clase 1
es un conjunto cerrado y convexo. El problema de optimización
que queremos resolver es el siguiente:
f* = min f (z)
s.a z ∈ C
C, f (z) estará acotada inferiormente por
(y) + ∇ f (y)T (z − y) , ∀ y, z ∈ C (1)
Lo cual se puede demostrar fácilmente mediante el desarrollo en serie de Taylor, que
f (y) + ∇ f (y)T (z − y) + 2
2
1∇ f (c)T (z − y
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
basado en métodos gradenciales para
Uno de los fundamentos de este algoritmo es, al igual que ocurría con el de Jacobi,
N problemas mono
dimensionales. Sin embargo utilizaremos métodos gradenciales para llegar al óptimo.
Antes de entrar en la formulación teórica del algoritmo conviene presentar una serie de
ior desarrollo del
algoritmo. Para ello emplearemos una nomenclatura matemática clásica:
que al menos sea diferenciable de clase 1
es un conjunto cerrado y convexo. El problema de optimización
Lo cual se puede demostrar fácilmente mediante el desarrollo en serie de Taylor, que
y)2, donde c=cte
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Si f(z) es estrictamente convexa
f (z) ≥ f (y) + ∇ f (y)T (z −
La siguiente propiedad que
decir:
||∇ f (z) −
Donde L ≥ 0 es la denominada constante de Lipschitz. L
una función sea lipschitzian
dicho entorno, por lo que a
su gradiente fuese lipschitziano y cumpliese la condición anterior.
Si combinamos (1) y (2) llegamos fácilmente a que
demostramos:
f (z) ≥ f (y) + ∇ f
||∇
Por tanto, al ser L una cota superior de
superiormente según:
f (z) ≤ f
Una vez claras estas propiedades matemáticas volvemos a nuestro
original, en el que podemos comprobar que la función objetivo
diferenciable de clase dos en el recint
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 149 Ramón Jesús Cuesta Pérez
es estrictamente convexa se cumple que 2
2
1∇ f (c)T (z − y)2
y) cqd.
La siguiente propiedad que imponemos a f(z) es que su gradiente sea lipschitziano, es
− ∇ f (y) || ≤ L ||z – y|| , ∀z,y ∈ C (2)
0 es la denominada constante de Lipschitz. La condición suficiente para que
una función sea lipschitziana en un entorno es que dicha función sea diferenciable en
dicho entorno, por lo que a f le bastaría con ser diferenciable de clase dos en
su gradiente fuese lipschitziano y cumpliese la condición anterior.
Si combinamos (1) y (2) llegamos fácilmente a que 2∇ f (z) ≤ L
f (y)T (z − y), => f (z) − f (y) ≥ + ∇ f (y)T (
∇ f (z) − ∇ f (y) || ≥ 2∇ f (y)T (z − y)
||∇ f (z) − ∇ f (y) || ≤ L ||z – y||
2∇ f (z) ≤ L cqd
Por tanto, al ser L una cota superior de 2∇ f (z), la función quedará también acotada
f (y) + ∇ f (y)T (z − y) + 2
L||z – y||2 (3)
Una vez claras estas propiedades matemáticas volvemos a nuestro
original, en el que podemos comprobar que la función objetivo f (u) =
diferenciable de clase dos en el recinto definido por las restricciones. P
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
2 ≥ 0, entonces
imponemos a f(z) es que su gradiente sea lipschitziano, es
a condición suficiente para que
dicha función sea diferenciable en
le bastaría con ser diferenciable de clase dos en C para que
L ∀z ∈ C. Lo
(z − y)
, la función quedará también acotada
Una vez claras estas propiedades matemáticas volvemos a nuestro problema QP
2
1uTHu + bu es
o definido por las restricciones. Puesto que H es
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
definida positiva, cumple también
propiedades anteriores son aplicables a ella.
Entremos ya en la formulación del algoritmo. Los métodos gradenciales de
optimización tradicionales se basan en seguir la dirección del gradiente en cada
iteración para encontrar de la forma más rápida posible el mínimo.
iteración nos llevaría de uk
Seguiríamos iterando hasta que
mismo, hasta que el gradiente se hiciese cero, lo que indica que habríamos llegado al
mínimo.
Si atendemos a la condición (3), considerando que z =
cota superior de la variación de la función objetivo en cada iteración del algoritmo del
solver:
f (u
Donde ∆u = uk+1 – uk (no confundir con el incremento de control en el algoritmo MPC)
y ∇ f = Hx + b.
La idea del algoritmo que vamos a programar es minimizar la cota superior de
f (uk+1) − f (uk), de modo que forzaremos a que la diferencia
objetivo entre sucesivas iteraciones sea cada vez más pequeña, lo que indicará que nos
estaremos acercando al óptimo utilizando además la dirección del gradiente.
que hacíamos en el capítulo anterior, realizaremos esta minimización para cada una de
las N variables de decisión por separado, de modo que el problema mono dimensional
que nos queda es:
∆ui* =
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 150 Ramón Jesús Cuesta Pérez
definida positiva, cumple también con la condición de convexidad. Por tanto
propiedades anteriores son aplicables a ella.
Entremos ya en la formulación del algoritmo. Los métodos gradenciales de
optimización tradicionales se basan en seguir la dirección del gradiente en cada
ontrar de la forma más rápida posible el mínimo. De esta forma, una
a uk+1 usando un paso h de la siguiente forma:
uk+1 = uk − h∇ f (uk)
Seguiríamos iterando hasta que f (uk) y f (uk+1) fuesen muy parecidos, o lo que es lo
el gradiente se hiciese cero, lo que indica que habríamos llegado al
Si atendemos a la condición (3), considerando que z = uk+1 e y = uk, podemos obtener la
cota superior de la variación de la función objetivo en cada iteración del algoritmo del
uk+1) − f (uk) ≤ 2
L ∆u 2 + ∇ f (uk)
T ∆u
(no confundir con el incremento de control en el algoritmo MPC)
La idea del algoritmo que vamos a programar es minimizar la cota superior de
, de modo que forzaremos a que la diferencia del valor
objetivo entre sucesivas iteraciones sea cada vez más pequeña, lo que indicará que nos
estaremos acercando al óptimo utilizando además la dirección del gradiente.
en el capítulo anterior, realizaremos esta minimización para cada una de
las N variables de decisión por separado, de modo que el problema mono dimensional
* = u
minarg 2
L ∆ui
2 + ∇ fi (u) ∆ui
s. a u ≤ ui + ∆ui ≤ u
U ≤ ui,k + ∆ui,k + Ui-1,k ≤ U
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
de convexidad. Por tanto, todas las
Entremos ya en la formulación del algoritmo. Los métodos gradenciales de
optimización tradicionales se basan en seguir la dirección del gradiente en cada
De esta forma, una
de la siguiente forma:
) fuesen muy parecidos, o lo que es lo
el gradiente se hiciese cero, lo que indica que habríamos llegado al
, podemos obtener la
cota superior de la variación de la función objetivo en cada iteración del algoritmo del
(no confundir con el incremento de control en el algoritmo MPC)
La idea del algoritmo que vamos a programar es minimizar la cota superior de
del valor de la función
objetivo entre sucesivas iteraciones sea cada vez más pequeña, lo que indicará que nos
estaremos acercando al óptimo utilizando además la dirección del gradiente. Y, al igual
en el capítulo anterior, realizaremos esta minimización para cada una de
las N variables de decisión por separado, de modo que el problema mono dimensional
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Donde ∇ fi (u) es la componente i de
anterior.
Resolviendo este problema tendremos el incremento
de u en cada iteración del solver
Al igual que hicimos en el algoritmo de Jacobi, obtenemos
las restricciones y luego comprobamos si se ha salido de la región, aplicando la acción
correctora.
La solución analítica al problema sin restricciones pues, es
Comprobamos ahora si el nuevo valor de u
es decir, si:
Asignaremos el valor límite para que cumpla las restricciones a
original no es válido.
El último paso, tras realizar la iteración para los N problemas monodimensionales,
comprobar si ||∆u*|| ha sido mayor que la tolerancia indicada, en cuyo caso volvemos a
iterar hasta que se cumpla la condición de paro.
iteración donde combinamos los N resultados obtenidos en las optimizaciones mono
dimensionales, ya que el gradiente de la función objetivo se calcula con el vector
completo, quedándonos luego con cada componente obtenida por separado.
El único punto que nos queda por justificar es el valor de la constante de Lipschitz, L.
Como hemos visto, ésta debe suponer una cota superior para
función objetivo vale precisamente
positiva, su máximo valor singular coincidirá con su máximo autovalor. Como además
H no depende de u (es constante), este máximo valor es válido como cota superior. Así
pues, tomaremos:
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 151 Ramón Jesús Cuesta Pérez
es la componente i de ∇ f (u) y Ui-1 es la acción de control absoluta
Resolviendo este problema tendremos el incremento que experimenta cada componente
solver, hasta que finalmente este ∆u sea muy próximo a cero.
Al igual que hicimos en el algoritmo de Jacobi, obtenemos ∆ui* como si no tuviésemos
las restricciones y luego comprobamos si se ha salido de la región, aplicando la acción
problema sin restricciones pues, es ∆ui* = L
f i∇−
Comprobamos ahora si el nuevo valor de ui,k+1 = ui,k + ∆ui,k* incumple las restricciones,
u ≤ ui,k + ∆ui,k* ≤ u
U ≤ ui,k + ∆ui,k* + ui-1,k ≤ U
el valor límite para que cumpla las restricciones a ∆u
, tras realizar la iteración para los N problemas monodimensionales,
ha sido mayor que la tolerancia indicada, en cuyo caso volvemos a
iterar hasta que se cumpla la condición de paro. Nótese que es al principio de cada
eración donde combinamos los N resultados obtenidos en las optimizaciones mono
dimensionales, ya que el gradiente de la función objetivo se calcula con el vector
completo, quedándonos luego con cada componente obtenida por separado.
El único punto que nos queda por justificar es el valor de la constante de Lipschitz, L.
Como hemos visto, ésta debe suponer una cota superior para 2∇ f , que para nuestra
función objetivo vale precisamente H. Debido a que esta matriz es simétrica y definida
, su máximo valor singular coincidirá con su máximo autovalor. Como además
(es constante), este máximo valor es válido como cota superior. Así
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
es la acción de control absoluta
que experimenta cada componente
sea muy próximo a cero.
como si no tuviésemos
las restricciones y luego comprobamos si se ha salido de la región, aplicando la acción
L
ui )(.
incumple las restricciones,
ui,k* si su valor
, tras realizar la iteración para los N problemas monodimensionales, es
ha sido mayor que la tolerancia indicada, en cuyo caso volvemos a
Nótese que es al principio de cada
eración donde combinamos los N resultados obtenidos en las optimizaciones mono
dimensionales, ya que el gradiente de la función objetivo se calcula con el vector u
completo, quedándonos luego con cada componente obtenida por separado.
El único punto que nos queda por justificar es el valor de la constante de Lipschitz, L.
, que para nuestra
simétrica y definida
, su máximo valor singular coincidirá con su máximo autovalor. Como además
(es constante), este máximo valor es válido como cota superior. Así
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Calcularemos el valor de L fuera de línea, desde el generador de código de MATLAB,
incluyendo su valor en una variable global constante declarada en
generado:
L=max(eig(H)); ... fprintf(f,
const double L=797.458633;
Una vez justificado este último aspecto teórico
código debidamente comentado.
7.2 Programación del algoritmo en C++
double * qp_gradient( doubledouble L, double uant){ double dxj, fyj; /* Variables para problema 1D */ double *dx; /* Vector de incrementos de x */ double step; /* Variable para cálculo de ||dx|| */ double prev_u; /* Variable que almacena la int fin=0; /* Flag para condición de paro */ dx= vec_din(N); //Creamos el vector de incrementos de x
while (!fin) //Iteraremos hasta que se cumpla la condición de fi n { step=0; prev_u=uant; //Inicializamos con la última acción de control del MPC //Dividimos el problema de dimensión N en N problem as 1D for ( int j=0; j<N; j++) {
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 152 Ramón Jesús Cuesta Pérez
L = λmax(H).
Calcularemos el valor de L fuera de línea, desde el generador de código de MATLAB,
incluyendo su valor en una variable global constante declarada en el fichero de cabecera
fprintf(f, '\tconst double L=%f;\n\n' ,L);
L=797.458633; (Fichero generado)
Una vez justificado este último aspecto teórico pasamos sin más dilación
código debidamente comentado.
Programación del algoritmo en C++
double *x, const double H[][N], doubleuant)
/* Variables para problema 1D */ /* Vector de incrementos de x */ /* Variable para cálculo de ||dx|| */ /* Variable que almacena la acción de control previa *//* Flag para condición de paro */
//Creamos el vector de incrementos de x
//Iteraremos hasta que se cumpla la condición de fi n
//Inicializamos con la última acción de control del MPC
//Dividimos el problema de dimensión N en N problem as 1D j=0; j<N; j++)
{ //Calculamos la componente j del gradiente de f // fy = b + Hx fyj=b[j]; for ( int i=0; i<N; i++) fyj=fyj+H[j][i]*x[i]; //Obtenemos el mínimo sin restricciones dxj=-fyj/L;
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
Calcularemos el valor de L fuera de línea, desde el generador de código de MATLAB,
el fichero de cabecera
,L); (Generador)
sin más dilación a presentar el
double *b, const
acción de control previa */
//Iteraremos hasta que se cumpla la condición de fi n
//Inicializamos con la última acción de control del MPC
j del gradiente de f
//Obtenemos el mínimo sin restricciones
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
} for ( int i=0; i<N; i++) x[i]=x[i]+dx[i]; if ( sqrt(step)<tol) fin=1; } free(dx); //Liberamos memoria reservada dinámicamente
return (x); //Devolvemos x* }
Nota: la tolerancia (tol ) se define fuera de la función, asignándole un valor constante
por ejemplo: #define tol 0.0001
Lo mismo ocurre con las restricciones:
#define XMIN -0.5 #define XMAX 0.5 #define UMIN -3 #define UMAX 3 El motivo de esto no es otro que reducir la memoria RAM requerida, almacenando estos
valores constantes en memoria flash.
7.3 Simulaciones
Realicemos ahora las simulaciones, repitiendo la secuencia seguida en los
anteriores.
Comenzamos comparando cómo cambia el control con las variaciones de N y
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 153 Ramón Jesús Cuesta Pérez
//Forzamos a que se cumpla la primera restricción if (x[j]+dxj>XMAX) dxj=XMAX-x[j]; if (x[j]+dxj<XMIN) dxj=XMIN-x[j]; //Forzamos a que se cumpla la segunda restricción if ((x[j]+dxj+prev_u)>UMAX) dxj=UMAX-prev_u-x[j]; if ((x[j]+dxj+prev_u)<UMIN) dxj=UMIN-prev_u-x[j]; dx[j]=dxj; //Almacenamos el valor definitivo de dx step=step+dxj*dxj; //Vamos calculando ||dx|| prev_u=prev_u+x[j]+dxj; //Actualizamos el u previo
}
i=0; i<N; i++) //Actualizamos x con los dx obtenidosx[i]=x[i]+dx[i];
(step)<tol) //Comprobamos si se satisface la condición de paro
//Liberamos memoria reservada dinámicamente
//Devolvemos x*
) se define fuera de la función, asignándole un valor constante
#define tol 0.0001
Lo mismo ocurre con las restricciones:
El motivo de esto no es otro que reducir la memoria RAM requerida, almacenando estos
valores constantes en memoria flash.
Realicemos ahora las simulaciones, repitiendo la secuencia seguida en los
Comenzamos comparando cómo cambia el control con las variaciones de N y
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
//Forzamos a que se cumpla la primera restricción
//Forzamos a que se cumpla la segunda restricción
//Almacenamos el valor definitivo de dx //Vamos calculando ||dx||
//Actualizamos el u previo
//Actualizamos x con los dx obtenidos
//Comprobamos si se satisface la condición de paro
//Liberamos memoria reservada dinámicamente
) se define fuera de la función, asignándole un valor constante,
El motivo de esto no es otro que reducir la memoria RAM requerida, almacenando estos
Realicemos ahora las simulaciones, repitiendo la secuencia seguida en los capítulos
Comenzamos comparando cómo cambia el control con las variaciones de N y λ.
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Modelo del sistema
( 0
6.1)(
−=
zzG
En primer lugar fijaremos las restricciones de control y el valor de
Tomamos los siguientes valores:
% Modelo del sistema A=[1 -0.6 -0.16]; B=1.6*[0 1 -0.3]; % Horizonte de control y ponderación de la acción de control
N=[variable]; lambda=1; % Restricciones de controldumin=- 0.5; dumax=0.5; umin=
Obtenemos los siguientes resultados tras realizar cada simulación con 200 iteraciones y
sucesivos cambios de set-point.
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 154 Ramón Jesús Cuesta Pérez
( ))( )2.08.0
3.0
+−⋅z
z ;
( )( )(1
111
2.018.01
3.016.1)( −−
−−−
+−−⋅=
zz
zzzG
En primer lugar fijaremos las restricciones de control y el valor de λ, haciendo variar N.
Tomamos los siguientes valores: λ = 1 , ∆umin = -0.5 , ∆umax = 0.5 , umin
control y ponderación de la acción de control
% Restricciones de control 0.5; dumax=0.5; umin= -1; umax=4;
Obtenemos los siguientes resultados tras realizar cada simulación con 200 iteraciones y
point.
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
))1−
λ, haciendo variar N.
= -1 , umax = 4.
control y ponderación de la acción de control
Obtenemos los siguientes resultados tras realizar cada simulación con 200 iteraciones y
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
La conclusión que se extrae es la misma que en los capítulos anteriores: un aumento de
N mejora la anticipación al cambio de referencia. Lo que sí es cierto es que los
resultados divergen menos al aumentar el horizonte usando este
utilizando el algoritmo de Jacobi. Esto nos indica que deberíamos aumentar el número
de iteraciones del algoritmo del capítulo 6 conforme aumentamos N. Veamos ahora una
zona ampliada de esta gráfica.
Observemos ahora las evoluciones de
anterior, es notorio como se reducen los picos al aumentar N, suavizando el control.
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 155 Ramón Jesús Cuesta Pérez
La conclusión que se extrae es la misma que en los capítulos anteriores: un aumento de
N mejora la anticipación al cambio de referencia. Lo que sí es cierto es que los
resultados divergen menos al aumentar el horizonte usando este solver
utilizando el algoritmo de Jacobi. Esto nos indica que deberíamos aumentar el número
de iteraciones del algoritmo del capítulo 6 conforme aumentamos N. Veamos ahora una
zona ampliada de esta gráfica.
las evoluciones de las distintas u(t). Como ocurría en el capítulo
anterior, es notorio como se reducen los picos al aumentar N, suavizando el control.
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
La conclusión que se extrae es la misma que en los capítulos anteriores: un aumento de
N mejora la anticipación al cambio de referencia. Lo que sí es cierto es que los
solver gradencial que
utilizando el algoritmo de Jacobi. Esto nos indica que deberíamos aumentar el número
de iteraciones del algoritmo del capítulo 6 conforme aumentamos N. Veamos ahora una
. Como ocurría en el capítulo
anterior, es notorio como se reducen los picos al aumentar N, suavizando el control.
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Finalmente, los tiempos de ejecución para cada valor de N son los siguientes:
Horizonte Tiempo mín. (s)
7 0.000
15 0.0011
20 0.0042
25 0.028
30 0.064
50 0.7404
Vemos como, para N=7, el algoritmo es más rápido que los de Lemke y Jacobi,
consumiendo además mucha menos memoria RAM que el primero y aproximadamente
la misma que el segundo. Los tiempos van aumentando progresivamente, siendo del
orden de las décimas de segundo hasta N=25. A partir de N=30 ya entramos en el orden
de magnitud del segundo. Esto podría mejorarse fijando un número máximo de
iteraciones para el solver.
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 156 Ramón Jesús Cuesta Pérez
os tiempos de ejecución para cada valor de N son los siguientes:
Tiempo mín. (s) Tiempo máx. (s) Tiempo medio
0.0004 0.0305
0.0011 0.3687
0.0042 0.7600
0.0288 1.1095
0.0645 1.8104
0.7404 6.8466
Vemos como, para N=7, el algoritmo es más rápido que los de Lemke y Jacobi,
consumiendo además mucha menos memoria RAM que el primero y aproximadamente
la misma que el segundo. Los tiempos van aumentando progresivamente, siendo del
segundo hasta N=25. A partir de N=30 ya entramos en el orden
de magnitud del segundo. Esto podría mejorarse fijando un número máximo de
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
os tiempos de ejecución para cada valor de N son los siguientes:
Tiempo medio (s)
0.0055
0.1205
0.2740
0.5602
1.1102
3.8327
Vemos como, para N=7, el algoritmo es más rápido que los de Lemke y Jacobi,
consumiendo además mucha menos memoria RAM que el primero y aproximadamente
la misma que el segundo. Los tiempos van aumentando progresivamente, siendo del
segundo hasta N=25. A partir de N=30 ya entramos en el orden
de magnitud del segundo. Esto podría mejorarse fijando un número máximo de
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Fijemos ahora el horizonte de control y variemos
N = 20, ∆umin = -0.5 , ∆umax
% Modelo del sistema A=[1 -0.6 -0.16]; B=1.6*[0 1 -0.3]; % Horizonte de control y ponderación de la acción d e control
N=20; lambda= [variable]; % Restricciones de controldumin=- 0.5; dumax=0.5;
Los resultados obtenidos son los siguientes:
Como era de prever según las conclusiones sacadas en el capítulo anterior, el parámetro
λ no tiene mucha influencia al utilizar horizontes “altos” como los que podemos
alcanzar con esta versión del algoritmo. Ampliemos la gráfica para ver su efecto:
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 157 Ramón Jesús Cuesta Pérez
Fijemos ahora el horizonte de control y variemos λ. Tomamos los siguientes valores:
max = 0.5 , umin = -1 , umax = 4.
% Horizonte de control y ponderación de la acción d e control
;
% Restricciones de control 0.5; dumax=0.5; umin=-1; umax=4;
Los resultados obtenidos son los siguientes:
Como era de prever según las conclusiones sacadas en el capítulo anterior, el parámetro
no tiene mucha influencia al utilizar horizontes “altos” como los que podemos
sión del algoritmo. Ampliemos la gráfica para ver su efecto:
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
. Tomamos los siguientes valores:
% Horizonte de control y ponderación de la acción d e control
Como era de prever según las conclusiones sacadas en el capítulo anterior, el parámetro
no tiene mucha influencia al utilizar horizontes “altos” como los que podemos
sión del algoritmo. Ampliemos la gráfica para ver su efecto:
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
La evolución de u(t) es:
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 158 Ramón Jesús Cuesta Pérez
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Ampliamos una región de la imagen para comprobar cómo un incremento de
los picos y suaviza el control.
La conclusión que sacamos es que tiene más peso
elegido que la ponderación de la acción de control en la función objetivo (
cuando trabajamos con horizontes del orden de las decenas o superior.
Simulemos ahora los casos particulares.
Sistema con cero de fase no mínima
( 0
1)(
−−=
zzG
Tomaremos como horizonte N = 20, y como
∆umin = -0.5 , ∆umax = 0.5 , u
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 159 Ramón Jesús Cuesta Pérez
Ampliamos una región de la imagen para comprobar cómo un incremento de
los picos y suaviza el control.
La conclusión que sacamos es que tiene más peso sobre el control el horizonte (N)
elegido que la ponderación de la acción de control en la función objetivo (
cuando trabajamos con horizontes del orden de las decenas o superior.
os ahora los casos particulares.
fase no mínima
( ))( )2.08.0
21
+−⋅z
z ;
( )( )(1
111
2.018.01
211)( −−
−−−
+−−⋅−=
zz
zzzG
Tomaremos como horizonte N = 20, y como λ = 0.5. Impondremos como restricciones:
umin = -2 , umax = 2.
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
Ampliamos una región de la imagen para comprobar cómo un incremento de λ reduce
sobre el control el horizonte (N)
elegido que la ponderación de la acción de control en la función objetivo (λ), al menos
)1−
= 0.5. Impondremos como restricciones:
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
% Modelo del sistema A=[1 -0.6 -0.16]; B=-1*[0 1 -2]; % Horizonte de control y ponderación de la acción d e controlN=20; lambda=0.5; % Restricciones de controldumin=- 0.5; dumax=0.5; umin=
Realizamos la simulación con 2
salida del sistema obtenida es la siguiente:
Como en el capítulo anterior, para un sistema de fase no mínima mejora el control
cuanto más alto es el horizonte de control/predicción.
Por su parte, la evolución de u(t) es la siguiente:
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 160 Ramón Jesús Cuesta Pérez
% Horizonte de control y ponderación de la acción d e control
% Restricciones de control 0.5; dumax=0.5; umin= -2; umax=2;
Realizamos la simulación con 240 iteraciones y sucesivos cambios de set
obtenida es la siguiente:
Como en el capítulo anterior, para un sistema de fase no mínima mejora el control
cuanto más alto es el horizonte de control/predicción.
Por su parte, la evolución de u(t) es la siguiente:
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
% Horizonte de control y ponderación de la acción d e control
0 iteraciones y sucesivos cambios de set-point. La
Como en el capítulo anterior, para un sistema de fase no mínima mejora el control
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Observamos en la gráfica como se
también se cumplen las relativas a
0.000000
0.000000
- 0.500000
7.171088
7.338602
7.469028
Queda demostrado, pues, el cumplimiento de todas las restricciones.
Por último indicamos los tiempos de ejecución:
Tiempo mínimo de iteración:
Tiempo máximo de iteración:
Tiempo medio de iteración:
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 161 Ramón Jesús Cuesta Pérez
Observamos en la gráfica como se cumple la restricción sobre umin, veamos ahora cómo
también se cumplen las relativas a ∆u observando los resultados numéricos:
y u w
0.000000 0.000000 3.000000
0.000000 0.500000 3.000000
0.500000 1.000000 3.000000
7.171088 1.443120 7.000000
7.338602 0.967748 7.000000
7.469028 0.467748 7.000000
Queda demostrado, pues, el cumplimiento de todas las restricciones.
Por último indicamos los tiempos de ejecución:
Tiempo mínimo de iteración: 0.001843 segundos
Tiempo máximo de iteración: 0.991128 segundos
Tiempo medio de iteración: 0.176084 segundos
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
, veamos ahora cómo
éricos:
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Integrador
Como parámetros tomaremos N = 20 y
= -0.5 , ∆umax = 0.5 , umin =
% Modelo del sistema A=[1 -1]; B=[0 1]; % Horizonte de control y ponderación de la acción d e controlN=20; lambda=1; % Restricciones de controldumin=- 0.5; dumax=0.5; umin=
Realizamos la simulación con 440 iteraciones y sucesivos cambios de set
salida del sistema obtenida es la siguiente:
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 162 Ramón Jesús Cuesta Pérez
1
1)(
−=
zzG ; 1
11
1)( −
−−
−=
z
zzG
Como parámetros tomaremos N = 20 y λ = 1. Impondremos como restricciones:
-2 , umax = 2 , ymin = 0 , ymax = 18.
% Horizonte de control y ponderación de la acción d e control
% Restricciones de control 0.5; dumax=0.5; umin= -2; umax=2; ymin=0; ymax=18;
Realizamos la simulación con 440 iteraciones y sucesivos cambios de set
salida del sistema obtenida es la siguiente:
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
. Impondremos como restricciones: ∆umin
% Horizonte de control y ponderación de la acción d e control
Realizamos la simulación con 440 iteraciones y sucesivos cambios de set-point. La
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
El hecho de que hayamos tomado
que la acción del controlador sea m
capítulos 4 y 5, lo mismo que nos ocurría en el capítulo 6. Obtenemos pues una
respuesta con más sobreoscilaciones y transiciones de menor pendiente.
Por su parte, la evolución de u(t) es la siguient
La acción de control es menos agresiva que en los capítulos 4 y 5.
gráfica como se cumple la restricción sobre u
cumplen las relativas a ∆u observando los resultados num
0.000000
0.000000
0.500000
1.080501
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 163 Ramón Jesús Cuesta Pérez
El hecho de que hayamos tomado λ=1 y tengamos un horizonte de control mayor hace
que la acción del controlador sea menos agresiva que en el control de este sistema en los
capítulos 4 y 5, lo mismo que nos ocurría en el capítulo 6. Obtenemos pues una
respuesta con más sobreoscilaciones y transiciones de menor pendiente.
Por su parte, la evolución de u(t) es la siguiente:
La acción de control es menos agresiva que en los capítulos 4 y 5. Observamos en la
gráfica como se cumple la restricción sobre umin, veamos ahora cómo también se
∆u observando los resultados numéricos:
y u w
0.000000 0.000000 3.000000
0.000000 0.500000 3.000000
0.500000 0.580501 3.000000
1.080501 0.503259 3.000000
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
=1 y tengamos un horizonte de control mayor hace
enos agresiva que en el control de este sistema en los
capítulos 4 y 5, lo mismo que nos ocurría en el capítulo 6. Obtenemos pues una
Observamos en la
, veamos ahora cómo también se
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
9.186241
11.186241
12.858886
14.150139
Queda demostrado, pues, el cumplimiento de todas las restricciones.
Por último indicamos los tiempos de ejecución:
Tiempo mínimo de iteración:
Tiempo máximo de iteración:
Tiempo medio de iteración:
Sistema inestable
)( =zG
Respecto al capítulo anterior, aumentamos el horizonte a N =
Mantenemos las restricciones:
ymax = 9.
% Modelo del sistema A=[1 -1.1]; B=0.1*[1 0.2]; % Horizonte de control y ponderación de la acción d e controlN=20; lambda=0.5; % Restricciones de controldumin=- 2; dumax=2; umin=
Realizamos la simulación con 440 iteraciones y sucesivos cambios de set
modo certificaremos que se verifican dichas restricciones. La salida del sistema
que se muestra en la página siguiente. Obtenemos unos picos de sobreoscilación
menores que en el capítulo anterior, mejorando también la anticipación al cambio de
set-point al haber aumentado el horizonte de control.
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 164 Ramón Jesús Cuesta Pérez
y u w
9.186241 2.000000 3.000000
11.186241 1.672645 16.000000
12.858886 1.291252 16.000000
14.150139 0.945639 16.000000
Queda demostrado, pues, el cumplimiento de todas las restricciones.
Por último indicamos los tiempos de ejecución:
Tiempo mínimo de iteración: 0.001705 segundos
Tiempo máximo de iteración: 1.216700 segundos
de iteración: 0.208179 segundos
( )1.1
2.01.0
−+⋅
z
z ;
( )1
11
1.11
2.011.0)( −
−−
−+⋅=
z
zzG
Respecto al capítulo anterior, aumentamos el horizonte a N = 20, y tomamos un
Mantenemos las restricciones: ∆umin = -2 , ∆umax = 2 , umin = -10 , umax
% Horizonte de control y ponderación de la acción d e control
% Restricciones de control 2; dumax=2; umin= -10; umax=10; ymin=0; ymax=9;
Realizamos la simulación con 440 iteraciones y sucesivos cambios de set
modo certificaremos que se verifican dichas restricciones. La salida del sistema
en la página siguiente. Obtenemos unos picos de sobreoscilación
ores que en el capítulo anterior, mejorando también la anticipación al cambio de
point al haber aumentado el horizonte de control.
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
, y tomamos un λ = 0.5.
max = 10 , ymin = 0 ,
% Horizonte de control y ponderación de la acción d e control
Realizamos la simulación con 440 iteraciones y sucesivos cambios de set-point. De este
modo certificaremos que se verifican dichas restricciones. La salida del sistema es la
en la página siguiente. Obtenemos unos picos de sobreoscilación
ores que en el capítulo anterior, mejorando también la anticipación al cambio de
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Por su parte, la evolución de u(t) es la siguiente:
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 165 Ramón Jesús Cuesta Pérez
Por su parte, la evolución de u(t) es la siguiente:
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
En esta gráfica se aprecia también la mejora en el anticipo al
Observamos en la gráfica como se cumple la restricción sobre u
también se cumplen las relativas a
0.000000
0.200000
0.564478
0.985764
5.864291
6.349721
6.766304
7.115823
Queda demostrado, pues, el cumplimiento de todas
indicamos los tiempos de ejecución:
Tiempo mínimo de iteración:
Tiempo máximo de iteración:
Tiempo medio de iteración:
Sistema tipo dead-beat
)(zG =
Tomaremos N = 20 y λ
∆umax = 0.5 , umin = -5 , umax
% Modelo del sistema A=[1]; B=3*[0 0 0 0 1 0.3]; % Horizonte de control y ponderación de la acción d e N=20; lambda=0.5; % Restricciones de controldumin=- 0.5; dumax=0.5; umin=
Realizamos la simulación con 4
salida del sistema obtenida es la siguiente:
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 166 Ramón Jesús Cuesta Pérez
En esta gráfica se aprecia también la mejora en el anticipo al cambio de referencia y
Observamos en la gráfica como se cumple la restricción sobre umin, veamos ahora cómo
también se cumplen las relativas a ∆u observando los resultados numéricos:
y u w
0.000000 0.000000 3.000000
0.200000 2.000000 3.000000
0.564478 3.044784 3.000000
0.985764 3.039420 3.000000
5.864291 -0.007313 8.000000
6.349721 -1.008525 8.000000
6.766304 -1.982190 8.000000
7.115823 -2.874681 8.000000
Queda demostrado, pues, el cumplimiento de todas las restricciones.
indicamos los tiempos de ejecución:
Tiempo mínimo de iteración: 0.001775 segundos
Tiempo máximo de iteración: 1.523744 segundos
Tiempo medio de iteración: 0.157707 segundos
( )5
3.0
z
zK + ; ( )141 3.01)( −−− +⋅= zzKzG
y λ = 0.5. Impondremos como restricciones:
max = 5.
% Horizonte de control y ponderación de la acción d e control
% Restricciones de control 0.5; dumax=0.5; umin= -5; umax=5;
Realizamos la simulación con 450 iteraciones y sucesivos cambios de set
salida del sistema obtenida es la siguiente:
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
cambio de referencia y.
, veamos ahora cómo
éricos:
las restricciones. Por último
= 0.5. Impondremos como restricciones: ∆umin = -0.5 ,
control
0 iteraciones y sucesivos cambios de set-point. La
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Apenas se observan diferencias su parte, la evolución de u(t) es la siguiente:
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 167 Ramón Jesús Cuesta Pérez
Apenas se observan diferencias con respecto a los resultados del capítulo anterior.su parte, la evolución de u(t) es la siguiente:
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
con respecto a los resultados del capítulo anterior. Por
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
Observamos en la gráfica como se cumple
también se cumplen las relativas a
0.000000
0.000000
0.000000
17.990037
18.012
18.060700
Queda demostrado, pues, el cumplimiento de todas las restricciones.
Por último indicamos los tiempos de ejecución:
Tiempo mínimo de iteración:
Tiempo máximo de iteración:
Tiempo medio de iteración:
Simulación con ruido
Cerramos las simulaciones añadiendo ruido. Tomaremos para ello el sistema estable de
las primeras simulaciones y unos valores de N =
restricciones serán las siguientes:
% Modelo del sistema A=[1 -0.6 -0.16]; B=1.6*[0 1 -0.3]; % Horizonte de control y ponderación de la acción d e controlN=15; lambda=0.5; % Restricciones de controldumin=- 0.5; dumax=0.5; umin=
El nivel de ruido será de ± 0.05, el doble que en los capítulos 4 y 5.
simulación son los mostrados en la página siguiente. Como en el capítulo anterior, el
ruido afecta al control menos de lo que lo hacía en los capítulos 4 y 5, donde el
horizonte era menor.
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 168 Ramón Jesús Cuesta Pérez
Observamos en la gráfica como se cumple las restricciones sobre u, veamos ahora cómo
también se cumplen las relativas a ∆u observando los resultados numéricos:
y u w
0.000000 0.000000 3.000000
0.000000 0.500000 3.000000
0.000000 0.727105 3.000000
17.990037 4.445193 18.000000
18.012 760 3.945193 18.000000
18.060700 3.445193 18.000000
Queda demostrado, pues, el cumplimiento de todas las restricciones.
Por último indicamos los tiempos de ejecución:
Tiempo mínimo de iteración: 0.001782 segundos
Tiempo máximo de iteración: 0.375992 segundos
Tiempo medio de iteración: 0.101395 segundos
erramos las simulaciones añadiendo ruido. Tomaremos para ello el sistema estable de
las primeras simulaciones y unos valores de N = 20 y λ = 0.5. Por su parte, las
restricciones serán las siguientes: ∆umin = -0.5 , ∆umax = 0.5 , umin = -1 ,
% Horizonte de control y ponderación de la acción d e control
Restricciones de control 0.5; dumax=0.5; umin= -1; umax=4;
El nivel de ruido será de ± 0.05, el doble que en los capítulos 4 y 5. Los resultados de la
mostrados en la página siguiente. Como en el capítulo anterior, el
a al control menos de lo que lo hacía en los capítulos 4 y 5, donde el
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
u, veamos ahora cómo
éricos:
erramos las simulaciones añadiendo ruido. Tomaremos para ello el sistema estable de
Por su parte, las
umax = 4.
% Horizonte de control y ponderación de la acción d e control
Los resultados de la
mostrados en la página siguiente. Como en el capítulo anterior, el
a al control menos de lo que lo hacía en los capítulos 4 y 5, donde el
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
La evolución de u(t) es la siguiente:
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 169 Ramón Jesús Cuesta Pérez
La evolución de u(t) es la siguiente:
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
La menor incidencia del ruido
aprecia que no se violan las restricciones
cumplen las restricciones sobre
0.000000
0.030000
0.838000
7.294714
6.537181
5.348081
Para acabar comprobaremos que los tiempos de ejecución
este caso. Ello se debe al tipo de condición de paro utilizada. En el algoritmo del
capítulo 6 se realizan siempre las mismas iteraciones, pero en éste varían en función de
la tolerancia. Cuando nos encontramos en régimen perman
apenas cambia de una iteración a otra del MPC, por lo que el
rápido. Al añadir ahora ruido nos obliga a iterar más veces en estos tramos,
resintiéndose un poco los tiempo
Tiempo mínimo de iteració
Tiempo máximo de iteración:
Tiempo medio de iteració
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 170 Ramón Jesús Cuesta Pérez
La menor incidencia del ruido puede apreciarse en la gráfica anterior, donde además se
n las restricciones sobre u(t). Comprobamos que también se
cumplen las restricciones sobre ∆u(t) atendiendo a los siguientes valores numéricos.
y u w
0.000000 0.000000 3.000000
0.030000 0.500000 3.000000
0.838000 1.000000 3.000000
7.294714 0.936266 8.000000
6.537181 0.436266 8.000000
5.348081 0.372252 4.000000
Para acabar comprobaremos que los tiempos de ejecución si se ven algo afectados en
este caso. Ello se debe al tipo de condición de paro utilizada. En el algoritmo del
capítulo 6 se realizan siempre las mismas iteraciones, pero en éste varían en función de
la tolerancia. Cuando nos encontramos en régimen permanente y sin ruido la solución
apenas cambia de una iteración a otra del MPC, por lo que el solver halla el óptimo muy
rápido. Al añadir ahora ruido nos obliga a iterar más veces en estos tramos,
resintiéndose un poco los tiempos de ejecución:
de iteració n: 0.001877 segundos
Tiempo máximo de iteración: 0.719843 segundos
Tiempo medio de iteració n: 0.345731 segundos
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
donde además se
. Comprobamos que también se
os siguientes valores numéricos.
si se ven algo afectados en
este caso. Ello se debe al tipo de condición de paro utilizada. En el algoritmo del
capítulo 6 se realizan siempre las mismas iteraciones, pero en éste varían en función de
ente y sin ruido la solución
halla el óptimo muy
rápido. Al añadir ahora ruido nos obliga a iterar más veces en estos tramos,
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática
Universidad de Sevilla
7.4 Bibliografía del capítulo
Richter, S. Jones, C.N. Morari, MMethods
Joint 48th IEEE Conference on Decision and Control and 28th
Shanghai, P.R. China, December 16
Camacho, EF. Bordons, C. Model Predictive Control
London : Springer, cop. 2004
2nd ed.
Balagurusamy, E. Programación orientada a objetos con C++
Madrid [etc.] : McGraw-Hill/Interamericana de España, 2007
3ª ed.
Rodríguez Ramírez, D. Camacho, EF.
Escuela Superior de Ingenieros. Universidad de Sevilla. 2011
Pizarro, L. Mesa, J . Apuntes y transparencias de
Escuela Superior de Ingenieros. Universidad de Sevilla. 2011
Proyecto Fin de Carrera
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Dpto. Ing. de Sistemas y Automática Página 171 Ramón Jesús Cuesta Pérez
Bibliografía del capítulo
Morari, M. Real-Time Input-Constrained MPC Using Fast Gradient
Joint 48th IEEE Conference on Decision and Control and 28th Chinese Control Conference
Shanghai, P.R. China, December 16-18, 2009
Model Predictive Control
Programación orientada a objetos con C++
Hill/Interamericana de España, 2007
Camacho, EF. Apuntes y transparencias de Ingeniería de
Escuela Superior de Ingenieros. Universidad de Sevilla. 2011
Apuntes y transparencias de Métodos Matemáticos
Superior de Ingenieros. Universidad de Sevilla. 2011
Implementación de algoritmos MPC con restricciones en mbed NXP LPC1768
Ramón Jesús Cuesta Pérez
Curso 2011/2012
Constrained MPC Using Fast Gradient
Chinese Control Conference
Apuntes y transparencias de Ingeniería de Control