Control óptimo está incluido como unidad docente de la asignatura Control Avanzado de Sistemas impartido en la UMH por José María Azorín Poveda.
http://ocw.umh.es/ingenieria-y-arquitectura/control-avanzado
El objetivo general de las prácticas es que los alumnos diseñen y comprueben en simulación el comportamiento de los controladores estudiados en teoría. En particular:
- Técnicas de optimización para su aplicación en ingeniería de control.
- Diseño de reguladores que optimicen el índice de prestaciones de un sistema (control óptimo).
Se incorporan también ejemplos de examen.
PIAR v 015. 2024 Plan Individual de ajustes razonables
Prácticas y exámenes de control óptimo (subida a slide share)
1. Práctica 1: Control digital
óptimo de un Sistema Discreto
Escalar
ALUMNO: MARTÍNEZ VERDÚ, Jaime
ASIGNATURA: CAV
GRUPO: Martes de 12:30 a 14:30
Fecha límite: 23 de Junio de 2.006
INGENIERÍA INDUSTRIAL
CURSO: 4º
2. Escuela Politécnica Superior de Elche
Ingeniería Industrial
CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
curso 2005-2006
PRÁCTICA 1: Control Digital Óptimo de un Sistema
Discreto Escalar
Objetivos
•
•
•
Realizar el control digital óptimo de un sistema discreto utilizando Matlab.
Implementar una función en Matlab para el cálculo de las ganancias de
realimentación óptimas de un sistema discreto escalar.
Simulación de un sistema de control discreto mediante Matlab.
Descripción
Considérese el siguiente sistema discretizado con un periodo de muestreo de T = 0.01
segundos:
x k +1 = 3 x k + 2u k
Suponiendo que el intervalo de tiempo en el que se desea controlar el sistema es de 1
segundo y que el estado inicial del sistema es x0 = 4, realizar los siguientes apartados:
(i)
Encontrar la ganancia de realimentación óptima que minimiza la función de
coste:
N −1
(
2
2
J = 10 x N + ∑ 2 x k2 + u k
)
k =0
(ii)
Obtener la señal de control óptima, así como la trayectoria de estado resultante
de aplicar dicha señal de control.
(iii)
Calcular el valor de la función de coste:
a. A partir de la expresión completa mostrada en el apartado (i).
b. Considerando que el valor de la función de coste óptima es:
J* =
1 T
x0 S 0 x0
2
Comprobar que en ambos casos se obtiene el mismo resultado.
Página 1 de 2
3. Escuela Politécnica Superior de Elche
Ingeniería Industrial
Observaciones
Deberá implementarse una función en Matlab que a partir de las matrices de la ecuación
de estado, los factores de ponderación de la función de coste y el número de intervalos
de muestreo, devuelva la ganancia de realimentación óptima en cada instante de
muestreo.
Así mismo deberá crearse un fichero de Matlab para realizar la simulación del sistema
discreto con las ganancias de realimentación óptimas calculadas.
Importante
•
Debe entregarse un informe de la práctica indicando los resultados obtenidos junto
con los listados de los ficheros de Matlab utilizados.
•
El plazo de entrega del informe de la práctica finaliza el día del examen de la
asignatura en la convocatoria de Junio de 2006.
Página 2 de 2
4. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
1. Desarrollo teórico.
Tal y como viene expresado en el enunciado, el sistema discreto a controlar es el
siguiente:
xk 1 3 xk 2 uk
De clase de teoría conocemos que los sistemas se modelan o rigen a partir de
unas ecuaciones físicas que modelan el sistema y entre ellas se encuentra el modelo de
estado cuya. Sabemos de teoría cual es la forma de la expresión de la ecuación del
modelo dinámico del sistema para sistemas dinámicos lineales discretos. De hecho, la
forma general es la siguiente:
x k 1 F xk G u k
donde cada término de dicha expresión viene descrito por términos matriciales
que comparados con los de la expresión que proporciona el enunciado de la función de
estado, que no son matriciales, da lugar a los siguientes resultados:
xk 1 F xk G u k F y G son escalares xk 1 f xk g u k
x k 1 f x k g u k xk 1 3 x k 2 u k
f 3 g 2
El intervalo de tiempo en el que se desea controlar el sistema es de 1 segundo y
el estado inicial del sistema es x0 = 4. Por otro lado, la función de coste a minimizar es:
N 1
2
2
2
J 10 x N (2 x k u k )
k 0
De igual manera, en clases de teoría aprendimos el análisis de funciones de coste
matriciales por lo que, como en este caso empleamos valores escalares, hemos de
realizar una transformación de un desarrollo matricial a uno más sencillo escalar:
J
S N ,Q y R
T
1 T
1 N 1 T
1
1 N 1
2
2
2
x N S N x N ( x k Q x k u k R u k ) son escalares J s N x N (q x N r u N )
2
2 k 0
2
2 k 0
Si esta expresión de la función de coste obtenida la comparamos con la
proporcionada por el enunciado, obtenemos los siguientes resultados:
J
N 1
1
1 N 1
2
2
2
2
2
2
s N x N (q x N r u N ) J 10 x N (2 x k u k )
2
2 k 0
k 0
1
s N 10 s N 20
2
Jaime Martínez Verdú
1
q 2 q 4
2
1-1
1
r 1 r 2
2
5. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
Una vez despejados todos los parámetros necesarios para la resolución del
ejercicio pasamos a obtener los valores de la ganancia de realimentación. Para obtener
esa ganancia de realimentación, no hay más que traducir a código implementado en
Matlab® las siguientes funciones:
kk
f g sk 1
r g 2 sk 1
f 2 sk 1 r
sk
q
r g 2 sk 1
Transformación de las ecuaciones de Riccati en código MatlLab®:
1
2
3
4
5
6
7
8
9
10
11
12
function [k,s]=ctropt1d(f,g,r,q,N,Sn)
i=N; % La obtención de los valores de k y s se hace recursividad hacia atrás
s(N)=Sn; % Damos el valor de Sn al valor final de S
k(N)=0; % La ganancia final será nula
for i=N-1:-1:1
k(i)=f*g*s(i+1)/(r+g^2*s(i+1));
s(i)=((f^2*s(i+1)*r)/(r+g^2*s(i+1)))+q;
end
return
Jaime Martínez Verdú
1-2
6. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
2. Desarrollo práctico.
APARTADO (i) Encontrar la ganancia de realimentación óptima que minimiza la
función de coste siguiente:
N 1
2
2
2
J 10 x N (2 x k u k )
k 0
Crearemos un fichero .m con el siguiente código implementado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
T=0.01; % Sistema discretizado con un periodo de muestreo de T = 0.01 segundos
Tc=1; % Intervalo de tiempo en el cual se desea controlar el sistema de Tc = 1 seg
t=[0:T:Tc]; % Calculamos el vector con los instantes en los cuales se sucede cada muestra
N=length(t); % Obtenemos el numero de muestras que van a existir, la dimensión del vector
f=3; % Introducimos la Matriz de Estados F que en este caso es un escalar f
g=2; % Introducimos la Matriz de Entradas G que en este caso es un escalar g
q=2; % Introducimos la Matriz de Ponderación de estados Q que en este caso es un escalar q
r=2; % Introducimos la Matriz de Ponderación de la señal de control R que es un escalar r
Sn=20; % Valor final de S
% A continuación obtenemos el valor de la ganancia de realimentación optima
% que minimiza la función de coste propuesta
[k,s]=ctroptd(f,g,r,q,N,Sn);
k
El valor de la ganancia permanece constante para cada muestra desde el
principio hasta tres muestras antes de finalizar el control:
Columns 1 through 8
1.3874 1.3874 1.3874
Columns 9 through 16
1.3874 1.3874 1.3874
Columns 17 through 24
1.3874 1.3874 1.3874
Columns 25 through 32
1.3874 1.3874 1.3874
Columns 33 through 40
1.3874 1.3874 1.3874
Columns 41 through 48
1.3874 1.3874 1.3874
Columns 49 through 56
1.3874 1.3874 1.3874
Columns 57 through 64
1.3874 1.3874 1.3874
Columns 65 through 72
1.3874 1.3874 1.3874
Columns 73 through 80
1.3874 1.3874 1.3874
Columns 81 through 88
1.3874 1.3874 1.3874
Columns 89 through 96
1.3874 1.3874 1.3874
Columns 97 through 101
1.3874 1.3876 1.3912
Jaime Martínez Verdú
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.3874 1.3874 1.3874 1.3874 1.3874
1.4634
0
1-3
8. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
APARTADO (ii) Obtener la señal de control óptima, así como la trayectoria de estado
resultante de aplicar dicha señal de control.
Crearemos un fichero .m, cuyo comienzo es semejante al anterior, con el
siguiente código implementado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
T=0.01; % Sistema discretizado con un periodo de muestreo de T = 0.01 segundos
Tc=1; % Intervalo de tiempo en el cual se desea controlar el sistema de Tc = 1 seg
t=[0:T:Tc]; % Calculamos el vector con los instantes en los cuales se sucede cada muestra
N=length(t); % Obtenemos el numero de muestras que van a existir, la dimensión del vector
f=3; % Introducimos la Matriz de Estados F que en este caso es un escalar f
g=2; % Introducimos la Matriz de Entradas G que en este caso es un escalar g
q=2; % Introducimos la Matriz de Ponderación de estados Q que en este caso es un escalar q
r=2; % Introducimos la Matriz de Ponderación de la señal de control R que es un escalar r
Sn=20; % Valor final de S
% A continuación obtenemos el valor de la ganancia de realimentación optima
% que minimiza la función de coste propuesta
[k,s]=ctroptd(f,g,r,q,N,Sn);
x(1)=4; % Obtenemos del estado para k = 0 x1
for i=1:N-1
u(i)=-k(i)*x(i); % Obtenemos cada acción de control desde k = 0 u0 hasta k = N-1 uN-1
x(i+1)=f*x(i)+g*u(i); % Obtenemos cada estado desde k = 1 x2 hasta k = N xN
end
u(i+1)=-k(i)*x(i); ); % Obtenemos la acción de control para k = N uN
subplot(2,1,1)
stairs(u,'k')
TITLE('Trayectoria de la señal de control optima u(k)')
XLABEL('Muestras')
YLABEL('Amplitud de la señal de control u(k)')
AXIS([0 100 -7 1])
hold on
subplot(2,1,2)
stairs(x,'b')
TITLE('Trayectoria del estado resultante al aplicar la señal de control x(k)')
XLABEL('Muestras')
YLABEL('Amplitud de los estados x(k)')
AXIS([0 100 -1 4])
Jaime Martínez Verdú
1-5
10. Jaime Martínez Verdú
Amplitud de la señal de control u(k)
Amplitud de los estados x(k)
1-7
-1
0
1
2
3
4
-7
-6
-5
-4
-3
-2
-1
0
1
0
0
10
10
20
20
40
50
Muestras
60
70
30
40
50
Muestras
60
70
Trayectoria del estado resultante al aplicar la señal de control x(k)
30
Trayectoria de la señal de control optima u(k)
80
80
90
90
100
100
CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
11. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
APARTADO (iii) Calcular el valor de la función de coste.
a. A partir de la expresión completa mostrada en el apartado (i).
b. Considerando que el valor de la función de coste óptima es:
J*
1 T
x0 S 0 x0
2
Comprobar que en ambos casos se obtiene el mismo resultado.
Crearemos un fichero .m, cuyo comienzo es semejante al anterior, con el
siguiente código implementado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
T=0.01; % Sistema discretizado con un periodo de muestreo de T = 0.01 segundos
Tc=1; % Intervalo de tiempo en el cual se desea controlar el sistema de Tc = 1 seg
t=[0:T:Tc]; % Calculamos el vector con los instantes en los cuales se sucede cada muestra
N=length(t); % Obtenemos el numero de muestras que van a existir, la dimensión del vector
f=3; % Introducimos la Matriz de Estados F que en este caso es un escalar f
g=2; % Introducimos la Matriz de Entradas G que en este caso es un escalar g
q=2; % Introducimos la Matriz de Ponderación de estados Q que en este caso es un escalar q
r=2; % Introducimos la Matriz de Ponderación de la señal de control R que es un escalar r
Sn=20; % Valor final de S
% A continuación obtenemos el valor de la ganancia de realimentación optima
% que minimiza la función de coste propuesta
[k,s]=ctroptd(f,g,r,q,N,Sn);
x(1)=4; % Obtenemos del estado para k = 0 x1
for i=1:N-1
u(i)=-k(i)*x(i); % Obtenemos cada acción de control desde k = 0 u0 hasta k = N-1 uN-1
x(i+1)=f*x(i)+g*u(i); % Obtenemos cada estado desde k = 1 x2 hasta k = N xN
end
u(i+1)=-k(i)*x(i); ); % Obtenemos la acción de control para k = N uN
Xn=x(i+1)^2;
a=0;
b=0;
for i=1:N-1
Xk(i)=x(i)^2; % Vamos calculando cada uno de los cuadrados de los estados
Uk(i)=u(i)^2; % Vamos calculando cada uno de los cuadrados de las acciones de control
a=a+Xk(i); % Vamos sumando los cuadrados de los estados
b=b+Uk(i); % Vamos sumando los cuadrados de las acciones de control
end
J1=1/2*Sn*Xn+1/2*q*a+1/2*r*b
J2=1/2*x(1)*s(1)*x(1)
El resultado es el siguiente:
J1 =
65.9411
J2 =
J
1
1 N 1
1
1 N 1
1 N 1
2
2
2
2
2
2
s N xN (q x N r u N ) J s N xN (q xN ) (r u N )
2
2 k 0
2
2 k 0
2 k 0
J
a
65.9411
Jaime Martínez Verdú
1
1 N 1 2
1 N 1 2
2
s N x N q ( x N ) r (u N )
2
2 2
k 0
k 0
1-8
b
12. Práctica 2: Control digital
óptimo de un Sistema Discreto
en el Estado Estacionario
ALUMNO: MARTÍNEZ VERDÚ, Jaime
ASIGNATURA: CAV
GRUPO: Martes de 12:30 a 14:30
Fecha límite: 23 de Junio de 2.006
INGENIERÍA INDUSTRIAL
CURSO: 4º
13. Escuela Politécnica Superior de Elche
Ingeniería Industrial
CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
curso 2004-2005
PRÁCTICA 2: Control Digital Óptimo de un Sistema
Discreto en el Estado Estacionario
Objetivos
•
•
•
•
•
Realizar el control digital óptimo, durante un determinado intervalo de tiempo, de
un sistema discreto utilizando Matlab.
Efectuar el control óptimo en el estado estacionario de un sistema discreto.
Implementar una función en Matlab para el cálculo de la matriz de realimentación
óptima en cada instante, de un sistema discreto con una única entrada.
Crear una función en Matlab para obtener la matriz de realimentación óptima en el
estado estacionario de un sistema discreto con una única entrada.
Comparar el control óptimo en el estado estacionario frente al control óptimo
durante un intervalo de tiempo determinado.
Descripción
Un oscilador armónico está descrito por la ecuación de estado:
&
x1 = x 2
&
x 2 = −ω 2 x1 + u
donde ω = 2 es la frecuencia natural del oscilador.
Suponiendo que el sistema es discretizado con un periodo de muestreo de T = 0.025
segundos y que el estado inicial es x0 = [1 0]T, realizar los siguientes apartados:
(i)
Controlar el sistema durante un intervalo de tiempo de 10 segundos de forma
que se minimice la función de coste:
J=
(
)
(
1
1 N −1
2
2
2
s1 x12N + s 2 x 2 N + ∑ q1 x12k + q 2 x 2 k + ru k
2
2 k =0
)
donde x1k y x2k corresponden a las variables de estado x1 y x2, respectivamente,
en el instante k; y los factores de ponderación tienen los siguientes valores:
s1 = 2
q1 = 2
s2 = 1
q2 = 1
r=1
Página 1 de 2
14. Escuela Politécnica Superior de Elche
Ingeniería Industrial
(ii)
Diseñar un regulador lineal cuadrático en el estado estacionario de forma que se
minimice la función de coste:
J∞ =
(
1 ∞
∑ q1 x12k + q2 x22k + ru k2
2 k =0
)
donde los parámetros q1, q2 y r tienen los mismos valores que en el apartado
anterior.
(iii)
Comparar los sistemas de control (i) y (ii).
Observaciones
Deberá implementarse una función en Matlab que a partir de las matrices de la ecuación
de estado, los factores de ponderación de la función de coste y el número de intervalos
de muestreo, devuelva la ganancia de realimentación óptima en cada instante de
muestreo.
Así mismo deberá crearse una función en Matlab que a partir de las matrices de la
ecuación de estado y los factores de ponderación de la función de coste, calcule la
ganancia de realimentación óptima en el estado estacionario.
Importante
•
Debe entregarse un informe de la práctica indicando los resultados obtenidos
(gráficas del estado, señal de control, ...) junto con los listados de los ficheros de
Matlab utilizados.
•
El plazo de entrega del informe de la práctica finaliza el día del examen de la
asignatura en la convocatoria de Junio de 2005.
Página 2 de 2
15. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
1. Desarrollo teórico.
En esta práctica se va a realizar el control digital óptimo de un sistema discreto
de segundo orden utilizando para ello el software MatLab®. Tal y como puede
observarse al leer el enunciado de la práctica, se va a realizar dos controles:
Un control digital óptimo durante un intervalo de tiempo.
Y otro control digital óptimo en el estado estacionario.
Primeramente necesitaremos implementar una función desarrollada en el entorno
de programación de MatLab® para que, de este modo, puedan calcular las ganancias
óptimas de realimentación en cada instante del control. Como tenemos dos situaciones,
tendremos que distinguir dos cálculos de ganancias:
En primer lugar, se va a calcular la ganancia de realimentación
constante para cada instante dentro del intervalo de control.
En segundo lugar, se va a calcular la ganancia de realimentación
constante para cada instante en el estado estacionario.
Finalmente, y tal y como se exige en el enunciado de la práctica, se realizacrá
una comparación entre ambos métodos.
El sistema de segundo orden que representa el comportamiento del oscilador
armónico (sabiendo que la frecuencia natural del oscilador es raíz de dos) está
modelado por la siguiente ecuación de estado:
x1 (t ) x2 (t )
x2 (t ) x1 (t ) u (t )
2
, con 2 y
x1 (0) 1
x2 (0) 0
Si el sistema de dos ecuaciones lo convertimos a su forma matricial, obtenemos
el siguiente resultado:
x1 (t ) 0
x (t ) 2
2
1 x1 (t ) 0
u (t ) , con
0 x 2 (t ) 1
x1 (0) 1
x (0) 0
2
Puesto que el control digital es de un sistema discreto, necesitamos discretizarlo.
El sistema debe ser discretizado con un periodo de T = 0.025 s. La función
implementada en Matlab que calcula la secuencia de ganancias es la siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
Jaime Martínez Verdú
function K1=ctropt(F,G,R,Q,N,Sn)
S=Sn; % Damos el valor de Sn al valor final de S
[n m]=size(F);
K1(N,:)=zeros(1,n); % La ganancia final será nula
for i=N:-1:2
M=S-S*G*inv(R+G'*S*G)*G'*S;
K1(i-1,:)=inv(R+G'*S*G)*G'*S*F;
S=F'*M*F+Q;
end
return
2-1
16. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
2. Desarrollo práctico.
APARTADO (i) Control en un intervalo de tiempo finito de 10 segundos. Controlar el
sistema durante un intervalo de tiempo de 10 segundos de forma que se minimice la
función de conste siguiente:
1
1 N 1
2
2
2
2
J s1, N x1, N s 2, N x2, N (q1 x12,k q 2 x2,k r u k )
2
2 k 0
donde x1,k y x2,k corresponden a las variables de estado x1 y x2, respectivamente,
en el instante k, y los factores de ponderación tiene los siguientes valores:
s1, N 2
s 2, N 1
q1 2
q2 1
r 1
Podemos comparar la función de coste a estudiar con una función de coste en
forma general:
J
1
1 N 1
2
2
2
s1, N x12, N s 2, N x2, N (q1 x12,k q 2 x2,k r u k )
2
2 k 0
T
1 T
1 N 1 T
J x N S N x N ( xk Q xk u k R u k )
2
2 k 0
Para obtener los valores de las matrices realizamos las operaciones siguientes:
MATIZ S N :
Para obtener la forma de esta matriz necesitamos comparar el término fuera del
sumatorio, es decir,
S11, N
SN
S 21, N
1 T
x N S N x N x1, N
2
x1, N
S11, N
Jaime Martínez Verdú
S12, N S N es simétrica
S11, N
S N S
S 22, N
12, N
S12, N x1, N
S11, N
x 2 , N
S 22, N x2, N
S12, N
S11, N x1, N S12, N x2, N
x 2 , N
S12, N x1, N S 22, N x2, N
2
x12, N 2 S12, N x1, N x2, N S 22, N x2, N
2-2
S12, N
S 22, N
17. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
2
2
s1, N x12, N s2, N x2, N S11, N x12, N 2 S12, N x1, N x2, N S 22, N x2, N
S11, N s1, N
2
2 S12, N 0 S N
0
S
22, N s2, N
0
1
MATIZ Q :
Para obtener la forma de esta matriz necesitamos comparar el término izquierdo
de dentro del sumatorio, es decir,
Q
Q 11
Q21
Q12 Q es simétrica
Q11
Q Q
Q22
12
Q12
Q22
Q12 x1,k
Q22 x 2,k
Q11 x1,k Q12 x 2,k
x1,k
x 2 , k
Q12 x1,k Q22 x 2,k
2
Q11 x12,k 2 Q12 x1,k x 2,k Q22 x 2,k
T
x k Q x k x1,k
Q
x 2,k 11
Q12
2
2
q1 x12,k q 2 x 2,k Q11 x12,k 2 Q12 x1,k x 2,k Q22 x 2,k
Q11 q1
2
2 Q12 0 Q
0
Q q
2
22
0
1
MATIZ R :
Tal y como puede observarse, ésta matriz no es más que un escalar, por lo que su
valor es de 1.
Jaime Martínez Verdú
2-3
18. CONTROL AVANZADO DE SISTEMAS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
CONTROL ÓPTIMO
T=0.025; % Sistema discretizado con un periodo de muestreo de T = 0.025 segundos
Tc=10; % Intervalo de tiempo en el cual se desea controlar el sistema de Tc = 10 seg
t=[0:T:Tc]; % Calculamos el vector con los instantes en los cuales se sucede cada muestra
N=length(t); % Obtenemos el numero de muestras que van a existir, la dimensión del vector
F=[0,1;-2,0]; % Introducimos la Matriz de Estados F
G=[0;1]; % Introducimos la Matriz de Entradas G
Q=[2,0;0,1]; % Introducimos la Matriz de Ponderacion de estados Q
R=[1]; % Introducimos la Matriz de Ponderacion de la señal de control r
Sn=[2,0;0,1]; % Valor final de S
[Fd,Gd]=c2d(F,G,T);
% A continuación obtenemos el valor de la ganancia de realimentación optima
% que minimiza la función de coste propuesta
Ki=ctropt(Fd,Gd,R,Q,N,Sn);
Ki;
subplot(2,1,1)
stairs(Ki(:,1),'b')
TITLE('Trayectoria de la ganancia de control optima K(k) que controla el estado x1(k)')
XLABEL('Muestras')
YLABEL('Amplitud de la ganancia de control K1(k)')
AXIS([0 400 0 0.5])
hold on
subplot(2,1,2)
stairs(Ki(:,2))
TITLE('Trayectoria de la ganancia de control optima K(k) que controla el estado x2(k)')
XLABEL('Muestras')
YLABEL('Amplitud de la ganancia de control K2(k)')
AXIS([0 400 0 1.5])
El valor de la ganancia permanece constante para cada muestra desde el principio hasta tres
muestras antes de finalizar el control:
Ki =
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
Jaime Martínez Verdú
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
0.4077
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
0.4077
0.4077
0.4077
0.4077
0.4077
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
2-4
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
0.4076
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3598
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
1.3597
21. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
APARTADO (ii) Diseñar un regulador lineal cuadrático en el estado estacionario de
forma que se minimice la función de coste:
J
1
(q1 x12,k q2 x22,k r u k2 )
2 k 0
donde q1, q2 y r tienen los mismos valores que en el apartado anterior.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function K2=ctroptest(F,G,R,Q)
[n m]=size(F);
S=eye(n); % Inicializamos el valor actual Sk al de Sn final (algortimo recursivo hacia detras)
E=1e-6;
fin=0;
while fin==0
Saux=S;
M=S-S*G*inv(R+G'*S*G)*G'*S;
S=F'*M*F+Q;
a=max(max(abs(Saux-S)));
if a<=E
fin=1;
end
end
K2=inv(R+G'*S*G)*G'*S*F;
return
Crearemos un fichero .m, cuyo comienzo es semejante al anterior, con el
siguiente código implementado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
T=0.025; % Sistema discretizado con un periodo de muestreo de T = 0.025 segundos
Tc=10; % Intervalo de tiempo en el cual se desea controlar el sistema de Tc = 10 seg
t=[0:T:Tc]; % Calculamos el vector con los instantes en los cuales se sucede cada muestra
N=length(t); % Obtenemos el numero de muestras que van a existir, la dimensión del vector
F=[0,1;-2,0]; % Introducimos la Matriz de Estados F
G=[0;1]; % Introducimos la Matriz de Entradas G
Q=[2,0;0,1]; % Introducimos la Matriz de Ponderacion de estados Q
R=[1]; % Introducimos la Matriz de Ponderacion de la señal de control r
Sn=[2,0;0,1]; % Valor final de S
[Fd,Gd]=c2d(F,G,T);
% A continuación obtenemos el valor de la ganancia de realimentación optima
% que minimiza la función de coste propuesta
Kii=ctroptest(Fd,Gd,R,Q,N,Sn);
Kii
Kii =
0.4077
1.3598
Jaime Martínez Verdú
2-7
22. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
APARTADO (iii) Comparar los sistemas.
Tal y como puede observarse, el valor de la ganancia en un control en el estado
estacionario es coincide justamente con la ganancia del control en un intervalo finito
aunque en éste solamente coincide durante un período de tiempo. No obstante, la
comparación debemos realizarla más exhaustiva y, para ello, analizaremos la trayectoria
de estados y de acciones de control. Para realizar la comparación de aplicar un control
en un tiempo finito o un control en el espacio estacionario se ha desarrollado la
siguiente función de MatLab®:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
T=0.025; % Sistema discretizado con un periodo de muestreo de T = 0.025 segundos
Tc=10; % Intervalo de tiempo en el cual se desea controlar el sistema de Tc = 10 seg
t=[0:T:Tc]; % Calculamos el vector con los instantes en los cuales se sucede cada muestra
N=length(t); % Obtenemos el numero de muestras que van a existir, la dimensión del vector
F=[0,1;-2,0]; % Introducimos la Matriz de Estados F
G=[0;1]; % Introducimos la Matriz de Entradas G
Q=[2,0;0,1]; % Introducimos la Matriz de Ponderacion de estados Q
R=[1]; % Introducimos la Matriz de Ponderacion de la señal de control r
Sn=[2,0;0,1]; % Valor final de S
[F,G]=c2d(A,B,T);
K1 = ctropt(F,G,R,Q,N,Sn); %Hallamos la ganancia óptima en int. finito
X1(1,1)=1;
X1(2,1)=0;
for i=1:N-1
U1(i)=-K1(i,:)*X1(:,i);
X1(:,i+1)=F*X1(:,i)+G*U1(i);
end
K2 = ctroptest (F,G,R,Q); %Hallamos la ganancia óptima en estado estacionario
X2(1,1)=1;
X2(2,1)=0;
for i=1:N-1
U2(i)=-K2*X2(:,i);
X2(:,i+1)=F*X2(:,i)+G*U2(i);
end
XDIFF=X1-X2;
UDIFF=U1-U2;
subplot(2,1,1)
stairs(X1(1,:),'b')
hold on
stairs(X1(2,:),'r')
TITLE('Trayectoria de Estados en control de intervalo finito')
XLABEL('Muestras')
YLABEL('Amplitud de la Trayectoria de Estados x1(k) y x2(k)')
hold on
subplot(2,1,2)
stairs(U1,'b')
TITLE('Trayectoria de las acciones de control en control de intervalo finito')
XLABEL('Muestras')
YLABEL('Amplitud de la acción de control u(k)')
figure
subplot(2,1,1)
stairs(X2(1,:),'b')
hold on
stairs(X2(2,:),'r')
TITLE('Trayectoria de Estados en control en Estado Estacionario')
XLABEL('Muestras')
YLABEL('Amplitud de la Trayectoria de Estados x1(k) y x2(k)')
Jaime Martínez Verdú
2-8
23. CONTROL AVANZADO DE SISTEMAS
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
CONTROL ÓPTIMO
hold on
subplot(2,1,2)
stairs(U1,'b')
TITLE('Trayectoria de las acciones de control en Estado Estacionario')
XLABEL('Muestras')
YLABEL('Amplitud de la acción de control u(k)')
figure
subplot(2,1,1)
stairs(XDIFF(1,:),'b')
hold on
stairs(XDIFF(2,:),'r')
TITLE('Trayectoria de la diferencia de Estados')
XLABEL('Muestras')
YLABEL('Amplitud de la diferencia de Trayectoria de Estados ')
hold on
subplot(2,1,2)
stairs(UDIFF,'b')
TITLE('Trayectoria de la diferencia de las acciones de control ')
XLABEL('Muestras')
YLABEL('Amplitud de la diferencia de acciones de control')
A Grosso modo, el funcionamiento de dicha función va dirigido a calcular la
evolución de los estados y de la acción de control resultante de emplear cada una de las
secuencia de ganancias de realimentación por un lado (X1, U1) y la ganancia de
realimentación constante por otro (X2, U2). En las páginas siguientes, compararemos el
funcionamiento de ambos sistemas de control basándonos en las siguientes gráficas.
Jaime Martínez Verdú
2-9
26. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
La evolución de los estados no es fielmente la misma. De todas maneras, la diferencia es tan
pequeña que es casi insignificativa. Por tanto, en este caso se puede decir que no es
recomendable realizar un control en intervalo de Tiempo Finito puesto que la carga
computacional no favorece la obtención de unos resultados mejores; se trabaja con mayor
cantidad de datos debido a que la ganancia de realimentación tiene valores diferentes en cada
instante de muestreo y la mejora en el control no es los suficientemente significativa como para
que merezca la pene tal esfuerzo computacional de cálculos de ganancias.
Jaime Martínez Verdú
2-12
27. Práctica 3: Control digital
óptimo de un Péndulo Invertido
ALUMNO: MARTÍNEZ VERDÚ, Jaime
ASIGNATURA: CAV
GRUPO: Martes de 12:30 a 14:30
Fecha límite: 23 de Junio de 2.006
INGENIERÍA INDUSTRIAL
CURSO: 4º
28. Escuela Politécnica Superior de Elche
Ingeniería Industrial
CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
curso 2004-2005
PRÁCTICA 3: Control Digital Óptimo de un Péndulo
Invertido
Objetivos
•
•
Aplicar el control digital óptimo en estado estacionario al diseño de un sistema de
seguimiento.
Simular en Matlab el comportamiento de un servosistema
Descripción
Se desea realizar el control digital óptimo del péndulo invertido que se muestra a
continuación:
El péndulo invertido es un sistema inestable, pudiendo caer en cualquier momento y
hacia cualquier dirección, a menos que se le aplique una fuerza de control. La fuerza de
control u se aplica sobre el carro. Se desea mantener el péndulo invertido en posición
vertical tanto como sea posible realizando un control de la posición del carro.
Se supone que la masa del péndulo, m, se concentra al final de la varilla, que la varilla
tiene una longitud l, y que la masa del carro es M. Se define el ángulo de rotación de la
varilla alrededor del punto P como θ, y la posición de carro se representa por x.
El esquema de control que debe utilizarse para que la posición del carro siga la
referencia introducida es el siguiente:
Página 1 de 2
29. Escuela Politécnica Superior de Elche
Ingeniería Industrial
Se va a suponer que θ es pequeño, ya que se desea mantener el péndulo invertido en
posición vertical. Con esta consideración, las ecuaciones del péndulo invertido son:
&
M lθ& = (M + m )gθ − u
M && = u − m gθ
x
Asumiendo que la masa del carro es de 2 kg, la masa de la varilla es 0.1 kg y la longitud
de la varilla es de 0.5 m, diseñar el esquema de control que hace que la posición del
carro siga la referencia introducida y que la varilla se mantenga en posición vertical.
Observaciones
•
•
Considerar un periodo de muestreo de 0.1 segundos
Simular el funcionamiento del sistema durante al menos 10 segundos
Importante
•
Debe entregarse un informe de la práctica indicando los resultados obtenidos
(gráficas del estado, señal de control, ...) junto con los listados de los ficheros de
Matlab utilizados.
•
El plazo de entrega del informe de la práctica finaliza el día del examen de la
asignatura en la convocatoria de Junio de 2005.
Página 2 de 2
30. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
1. Introducción.
Como objetivo esencial de la presente práctica es el de aplicar los conceptos de
control digital óptimo en estado estacionario a un sistema de seguimiento adquiridos y
desarrollados en clases de teoría. El sistema a controlar es el péndulo invertido mostrado
en la figura. El carrito con un
l·sen(θ)
x
péndulo invertido, se muestra a
la derecha, es "empujado" con
una fuerza impulsiva, u. Tenemos
determinadas ya las ecuaciones
θ
Z
l·cos(θ)
dinámicas de movimiento del
sistema, y hemos linealizado
cerca del ángulo del péndulo,
θ = 0 (en otras palabras,
X
asumamos que péndulo no se
u
aparta más que unos pocos grados
de la vertical, elegida en un
ángulo de π). Debemos encontrar un controlador para satisfacer todos los
requerimientos de diseño.
Para realizar el control óptimo se calculará la ganancia de realimentación óptima
constante para el estado estacionario. Para ello, se empleará la función implementada en
la práctica anterior ctroptest.m con unas ligeras modificaciones. Además de todo lo
dicho, se simulará el sistema con MatLab® para probar que su comportamiento es los
más estable posible.
2. Conceptos Teóricos.
Las ecuaciones que representan al sistema del péndulo invertido son las
siguientes:
Ml ( M m) g u
M x u mg
Para este caso, asumamos que
M masa del carro
2 kg
m masa del péndulo
0.1 kg
l longitud al centro de masa del péndulo 0.5 m
u fuerza aplicada al carro
x coordenadas de posición del carro
ángulo del péndulo respecto de la vertical
Los requerimientos de diseño para este sistema son:
Periodo de muestreo de 0.1 segundos.
Tiempo de simulación de 10 segundos.
Jaime Martínez Verdú
3-1
31. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
Se toman las siguientes variables de estado de modo que todas ellas tengan
significado físico. La variable de estado x1 será el ángulo del péndulo respecto a la
vertical, la variable x2 la velocidad angular del péndulo, la variable de estado x3 hace
referencia a la posición del carro y x4 a la velocidad lineal del carro::
x2 (t ) (t )
x1 (t ) (t )
x3 (t ) x(t )
x4 (t ) x(t )
El modelo de estado empleando las ecuaciones del péndulo invertido quedaría de
la siguiente manera:
x1 (t ) (t ) x1 (t ) x 2 (t )
x3 (t ) x(t ) x3 (t ) x 4 (t )
( M m) g
1
( M m) g
1
(t )
u (t ) x 2 (t )
x1 (t )
u (t )
M l
M l
M l
M l
m g
1
m g
1
x 4 (t ) (t ) x 4 (t )
x
x1 (t )
u (t ) x 4 (t )
(t )
u (t )
M
M
M
M
x 2 (t ) (t ) x 2 (t )
Por tanto, tendríamos el siguiente sistema de ecuaciones diferenciales:
x1 (t ) x 2 (t )
( M m) g
1
x1 (t )
u (t )
M l
M l
x 3 (t ) x 4 (t )
x 2 (t )
x 4 (t )
mg
1
(t )
u (t )
M
M
En forma matricial, el modelo de estado del sistema, queda del siguiente modo:
0
x1 (t )
( M m) g
x2 (t )
M l
x3 (t )
0
x (t ) m g
4
M
y
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
x1 (t )
1
x2 (t ) M l
u (t )
x3 (t ) 0
1
x4 (t ) M
x1 (t )
x2 (t )
x3 (t )
x (t )
4
Se pretende que el sistema siga una referencia determinada por lo que se hace
necesario añadir un controlador integral.
Jaime Martínez Verdú
3-2
32. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
Para averiguar el valor de la matriz de realimentación que hace estable al
sistema, debemos analizar el sistema ampliado. Dicho sistema se obtiene del siguiente
modo:
(k 1) F (k ) G w(k )
xe (k )
(k )
ve (k )
F
F
C F
con
0
I
G
G
C G
F: es la matriz de estado del sistema discretizada.
G: es la matriz de entradas del sistema discretizada.
C: es la matriz de salidas del sistema.
De esta forma, la nueva ecuación de estado del sistema es:
(k 1) F (k ) G w(k )
xe (k )
(k )
ve (k )
La señal de control es una realimentación de estado:
w(k ) K (k )
K K
KI
donde K es la matriz de realimentación del sistema KI es la constante del
integrador.
Para calcular el valor de la ganancia K se define una función de coste que se
pretende optiminzar minimizándola. Tal función de coste es la siguiente:
J
1 T
( k Q k wkT R wk )
2 k 0
Los valores de las matrices de ponderación se toman:
10
0
Q 0
0
0
Jaime Martínez Verdú
0
0
0
1
0
0
0
100
0
0
0
1
0
0
0
3-3
0
0
0
0
1
R 1
33. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
3. Procedimiento.
A continuación mostraremos el código empleado en MatLab®:
Jaime Martínez Verdú
3-4
34. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
La función ctroptest.m, es igual que la de la práctica anterior cambiando F y G
por F1 y G1 que son las matrices del sistema discretizadas ampliadas.
Si se simula el sistema durante diez segundos, se obtienen las gráficas expuestas
en páginas siguientes.
4. Resultados.
Tal y como se puede observar en los experimentos 1A 1B y 1C al ponderar más
la posición del carro, la gráfica de su estado posee menos oscilaciones que en los demás
casos. Por tanto, el valor de la salida será más estable. Con respecto a la posición
angular no existe mucha diferencia de unos casos a otros.
Al aumentar el valor del factor de ponderación de la acción de control de 1 a 10
se produce una notable mejora en la salida del sistema puesto que se suaviza mucho más
sobre todo si estamos ponderando el tercer estado. En los demás casos 2B y 2C la salida
es mejor aunque no tan buena. Se nota también una diferencia sobre todo en la
trayectoria de la señal de control puesto que en los experimentos 1A 1B y 1C tuvo un
pico inicial de unos 1.5 voltios y ahora no excede de 0.75. Por tanto, y obviamente, se
ha disminuido la exigencia de señal de control.
Al disminuir el valor del factor de ponderación de 1 a 0.1 se produce un aumento
de oscilaciones en la salida y también de valores de la señal de control pues consigue
picos de casi 3 voltios.
Jaime Martínez Verdú
3-5
35. 1A Q=[10 0 0 0 0;0 1 0 0 0;0 0 100 0 0;0 0 0 1 0;0 0 0 0 1];R=1;
1B Q=[100 0 0 0 0;0 1 0 0 0;0 0 10 0 0;0 0 0 1 0;0 0 0 0 1];R=1;
Trayectoria de los estados x(k)
Trayectoria de los estados x(k)
x1 posicion angular
x2 velocidad angular
x3 posicion del carro
x4 velocidad del carro
1.4
1.2
1
1
0.8
0.8
Amplitud del estado x(k)
1.2
0.6
0.4
0.6
0.4
0.2
0.2
0
0
-0.2
-0.2
-0.4
0
10
20
30
40
50
60
70
80
-0.4
90
0
10
20
30
40
Muestras
50
Muestras
1C Q=[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1];R=1;
Trayectoria de los estados x(k)
x1 posicion angular
x2 velocidad angular
x3 posicion del carro
x4 velocidad del carro
1.4
1.2
1
Amplitud del estado x(k)
Amplitud del estado x(k)
x1 posicion angular
x2 velocidad angular
x3 posicion del carro
x4 velocidad del carro
1.4
0.8
0.6
0.4
0.2
0
-0.2
-0.4
0
10
20
30
40
50
Muestras
60
70
80
90
60
70
80
90
36. 1A Q=[10 0 0 0 0;0 1 0 0 0;0 0 100 0 0;0 0 0 1 0;0 0 0 0 1];R=1;
1B Q=[100 0 0 0 0;0 1 0 0 0;0 0 10 0 0;0 0 0 1 0;0 0 0 0 1];R=1;
Trayectoria de la salida y(k)
Trayectoria de la salida y(k)
1.5
Amplitud de y(k)
Amplitud de y(k)
1.5
1
0.5
0
0
10
20
30
40
50
60
70
80
1
0.5
0
90
0
10
20
30
Trayectoria de la señal de control u(k)
Amplitud de u(k)
Amplitud de u(k)
1
0
-0.5
0
10
20
30
40
50
60
70
80
70
80
90
60
70
80
90
60
70
80
90
1
0
-0.5
-1
90
0
10
20
30
40
50
Trayectoria de la salida del integrador v(k)
20
Amplitud de v(k)
20
15
10
5
20
30
40
50
60
70
80
15
10
5
0
90
0
10
20
30
40
Muestras
50
Muestras
1C Q=[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1];R=1;
Trayectoria de la salida y(k)
1.5
Amplitud de y(k)
10
1
0.5
0
0
10
20
30
40
50
60
70
80
90
60
70
80
90
60
70
80
90
Trayectoria de la señal de control u(k)
2
Amplitud de u(k)
0
1
0
-1
0
10
20
30
40
50
Trayectoria de la salida del integrador v(k)
15
Amplitud de v(k)
Amplitud de v(k)
60
0.5
Trayectoria de la salida del integrador v(k)
0
50
1.5
0.5
-1
40
Trayectoria de la señal de control u(k)
1.5
10
5
0
0
10
20
30
40
50
Muestras
37. 2A Q=[10 0 0 0 0;0 1 0 0 0;0 0 100 0 0;0 0 0 1 0;0 0 0 0 1];R=10;
2B
Q=[100 0 0 0 0;0 1 0 0 0;0 0 10 0 0;0 0 0 1 0;0 0 0 0 1];R=10;
Trayectoria de los estados x(k)
Trayectoria de los estados x(k)
x1 posicion angular
x2 velocidad angular
x3 posicion del carro
x4 velocidad del carro
1.4
1.2
1
1
0.8
0.8
Amplitud del estado x(k)
1.2
0.6
0.4
0.6
0.4
0.2
0.2
0
0
-0.2
-0.2
-0.4
0
10
20
30
40
50
60
70
80
-0.4
90
0
10
20
30
40
50
Muestras
Muestras
2C Q=[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1];R=10;
Trayectoria de los estados x(k)
x1 posicion angular
x2 velocidad angular
x3 posicion del carro
x4 velocidad del carro
1.4
1.2
1
Amplitud del estado x(k)
Amplitud del estado x(k)
x1 posicion angular
x2 velocidad angular
x3 posicion del carro
x4 velocidad del carro
1.4
0.8
0.6
0.4
0.2
0
-0.2
-0.4
0
10
20
30
40
50
Muestras
60
70
80
90
60
70
80
90
38. 2A Q=[10 0 0 0 0;0 1 0 0 0;0 0 100 0 0;0 0 0 1 0;0 0 0 0 1];R=10;
2B
Q=[100 0 0 0 0;0 1 0 0 0;0 0 10 0 0;0 0 0 1 0;0 0 0 0 1];R=10;
Trayectoria de la salida y(k)
Trayectoria de la salida y(k)
1.5
Amplitud de y(k)
Amplitud de y(k)
1.5
1
0.5
0
0
10
20
30
40
50
60
70
80
1
0.5
0
90
0
10
20
30
Amplitud de u(k)
Amplitud de u(k)
0.5
0
0
10
20
30
40
50
60
70
80
70
80
90
60
70
80
90
60
70
80
90
0
-0.5
-1
90
0
10
20
30
40
50
Trayectoria de la salida del integrador v(k)
20
25
Amplitud de v(k)
20
15
10
5
20
30
40
50
60
70
80
15
10
5
0
90
0
10
20
30
40
Muestras
50
Muestras
2C Q=[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1];R=10;
Trayectoria de la salida y(k)
1.5
Amplitud de y(k)
10
1
0.5
0
0
10
20
30
40
50
60
70
80
90
60
70
80
90
60
70
80
90
Trayectoria de la señal de control u(k)
1
Amplitud de u(k)
0
0.5
0
-0.5
-1
0
10
20
30
40
50
Trayectoria de la salida del integrador v(k)
20
Amplitud de v(k)
Amplitud de v(k)
60
0.5
Trayectoria de la salida del integrador v(k)
0
50
1
1
-0.5
40
Trayectoria de la señal de control u(k)
Trayectoria de la señal de control u(k)
15
10
5
0
0
10
20
30
40
50
Muestras
39. 3A Q=[10 0 0 0 0;0 1 0 0 0;0 0 100 0 0;0 0 0 1 0;0 0 0 0 1];R=0.1;
3B Q=[100 0 0 0 0;0 1 0 0 0;0 0 10 0 0;0 0 0 1 0;0 0 0 0 1];R=0.1;
Trayectoria de los estados x(k)
Trayectoria de los estados x(k)
x1 posicion angular
x2 velocidad angular
x3 posicion del carro
x4 velocidad del carro
1.4
1.2
1
1
0.8
0.8
Amplitud del estado x(k)
1.2
0.6
0.4
0.6
0.4
0.2
0.2
0
0
-0.2
-0.2
-0.4
0
10
20
30
40
50
60
70
80
-0.4
90
0
10
20
30
40
Muestras
50
Muestras
3C Q=[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1];R=0.1;
Trayectoria de los estados x(k)
x1 posicion angular
x2 velocidad angular
x3 posicion del carro
x4 velocidad del carro
1.4
1.2
1
Amplitud del estado x(k)
Amplitud del estado x(k)
x1 posicion angular
x2 velocidad angular
x3 posicion del carro
x4 velocidad del carro
1.4
0.8
0.6
0.4
0.2
0
-0.2
-0.4
0
10
20
30
40
50
Muestras
60
70
80
90
60
70
80
90
40. 3A Q=[10 0 0 0 0;0 1 0 0 0;0 0 100 0 0;0 0 0 1 0;0 0 0 0 1];R=0.1;
3B Q=[100 0 0 0 0;0 1 0 0 0;0 0 10 0 0;0 0 0 1 0;0 0 0 0 1];R=0.1;
Trayectoria de la salida y(k)
Trayectoria de la salida y(k)
1.5
Amplitud de y(k)
Amplitud de y(k)
1.5
1
0.5
0
0
10
20
30
40
50
60
70
80
1
0.5
0
90
0
10
20
30
Amplitud de u(k)
Amplitud de u(k)
2
1
0
0
10
20
30
40
50
60
70
80
70
80
90
60
70
80
90
60
70
80
90
1
0
-1
-2
90
0
10
20
30
40
50
Trayectoria de la salida del integrador v(k)
15
Amplitud de v(k)
15
10
5
20
30
40
50
60
70
80
10
5
0
90
0
10
20
30
40
Muestras
50
Muestras
3C Q=[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1];R=0.1;
Trayectoria de la salida y(k)
1.5
Amplitud de y(k)
10
1
0.5
0
0
10
20
30
40
50
60
70
80
90
60
70
80
90
60
70
80
90
Trayectoria de la señal de control u(k)
4
Amplitud de u(k)
0
2
0
-2
0
10
20
30
40
50
Trayectoria de la salida del integrador v(k)
10
Amplitud de v(k)
Amplitud de v(k)
60
2
Trayectoria de la salida del integrador v(k)
0
50
3
3
-1
40
Trayectoria de la señal de control u(k)
Trayectoria de la señal de control u(k)
8
6
4
2
0
0
10
20
30
40
50
Muestras
41. Práctica 4: Problema del
Seguimiento Lineal cuadrático
ALUMNO: MARTÍNEZ VERDÚ, Jaime
ASIGNATURA: CAV
GRUPO: Martes de 12:30 a 14:30
Fecha límite: 23 de Junio de 2.006
INGENIERÍA INDUSTRIAL
CURSO: 4º
42. Escuela Politécnica Superior de Elche
Ingeniería Industrial
CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
PRÁCTICA
Cuadrático
4:
Problema
de
curso 2004-2005
Seguimiento
Lineal
Objetivos
•
•
•
Diseñar un regulador lineal cuadrático óptimo para que el estado de un sistema siga
una referencia durante un intervalo de tiempo utilizando Matlab.
Implementar una función en Matlab que calcule los parámetros de regulación
óptima en cada instante para que el estado siga una referencia.
Simular en Matlab el comportamiento del sistema con el control óptimo de
seguimiento diseñado.
Descripción
Considérese el siguiente sistema discreto correspondiente a un servomotor, obtenido
utilizando un periodo de muestreo T = 0.06 s:
⎡ x1 (k + 1)⎤ ⎡1 0.053⎤ ⎡ x1 (k )⎤ ⎡0.0116⎤
⎢ x (k + 1)⎥ = ⎢0 0.787 ⎥ ⎢ x (k )⎥ + ⎢ 0.373 ⎥u (k )
⎦⎣ 2 ⎦ ⎣
⎦
⎣ 2
⎦ ⎣
donde x1 y x2 representan respectivamente la posición y velocidad del servomotor.
(i) Suponiendo el estado inicial es x0 = [1 0]T, diseñar un regulador lineal cuadrático de
forma que se minimice el siguiente índice durante un intervalo de control de 5 s:
J=
[
N −1
1
(xN − rN )T S (xN − rN ) + 1 ∑ (xk − rk )T Q(xk − rk ) + ukT Ruk
2
2 k =0
]
⎡15 0 ⎤
T
donde R = 0.1, S = Q = ⎢
⎥ , rk = [2 0] , k = 0, 1, …,N.
⎣ 0 0.2⎦
(ii) Diseñar el regulador considerando que la referencia introducida es rk = [4 0]T, k = 0,
1, …,N.
(iii) Comprobar que en tanto en (i) como en (ii) el regulador diseñado consigue que el
estado del sistema siga la referencia indicada.
Página 1 de 2
43. Escuela Politécnica Superior de Elche
Ingeniería Industrial
Observaciones
Deberá implementarse una función en Matlab que a partir de las matrices de la ecuación
de estado, los factores de ponderación de la función de coste, el número de intervalos de
muestreo, y de la referencia que debe seguir el estado, devuelva los parámetros de
regulación óptima en cada instante de muestreo.
Así mismo deberá crearse un fichero de Matlab para realizar la simulación del sistema
discreto con los parámetros de regulación óptima calculados.
Importante
•
Debe entregarse un informe de la práctica indicando los resultados obtenidos
(gráficas del estado, señal de control, ...) junto con los listados de los ficheros de
Matlab utilizados.
•
El plazo de entrega del informe de la práctica finaliza el día del examen de la
asignatura en la convocatoria de Junio de 2005.
Página 2 de 2
44. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
1. Desarrollo teórico.
Esencialmente, el objetivo de esta práctica va dirigido a diseñar un regulador
lineal cuadrático óptimo, para cualquier estado del sistema siga una señal de referencia
determinada. Para ello se implementarán en Matlab las funciones de computación de
parámetros para cada instante. Finalmente, se simulará el sistema para dos referencias
distintas verificando el comportamiento del sistema.
El sistema discreto obtenido con un tiempo de muestreo de 0.06 s que va a ser
objeto de estudio, correspondiente a un servomotor, es el siguiente:
x1 (k 1) 1
x2 (k 1) 0
0.053 x1 (k ) 0.0116
u (k )
0.787 x2 (k ) 0.373
donde x1 representa la posición del servomotor y x2 representa la velocidad del
servomotor. Suponiendo que el estado inicial es x0 = [0 1]T y la minimización del índice
de costes debe realizarse durant4e un intervalo de tiempo de5 s;:
J
1
1 N 1
T
( x N rN )T S ( xN rN ) [( xK rK )T Q ( xK rK ) u K R u K
2
2 K 0
donde R = 0.1, S y Q son las matrices de ponderación y que son exactamente
iguales (matrices diagonales con pivotes 15 y 0.2) y rk la señal de referencia.
Tal y como nos explicó José María Azorín en clases de teoría, la señal de control
viene definida de la siguiente manera:
uk K k xk M k
Las matrices Kk y Mk se obtiene de forma recursiva hacia atrás empleando las
siguientes expresiones matemáticas:
K k ( R G T S k 1G ) 1 G T S k 1 F
M k ( R G T S k 1G ) 1 G T Pk 1
Para poder obtener los valores de dichas matrices, necesitamos calcular también
las matrices Pk y Sk del siguiente modo:
Pk F T Pk 1 F T S k 1G ( R G T S k 1G ) 1 G T Pk 1 Qrk
S k F T ( S k 1 S k 1G ( R G T S k 1G ) 1 G T S k 1 ) F Q
Para poder aplicar el algoritmo, hemos de conocer el valor de las condiciones
iniciales del algoritmo que son: KN = 0, SN, MN = 0 y PN = -SN·RN.
Jaime Martínez Verdú
4-1
45. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
El programa desarrollado para la realización de la práctica es el siguiente:
Para modificar el valor de la amplitud de la señal de referencia hemos de variar
la línea 10 cambiando [1 0]’ por [4 0]’ para pasar de un apartado a otro. Tal y como se
puede comprobar en las prácticas, se alcanza el valor en ambos casos.
Jaime Martínez Verdú
4-2
46. CONTROL AVANZADO DE SISTEMAS
CONTROL ÓPTIMO
El programa desarrollado para calcular las matrices K y M es el siguiente:
Jaime Martínez Verdú
4-3
49. Escuela Polit´cnica Superior de Elche
e
Ingenier´ Industrial
ıa
Examen de Control Avanzado de Sistemas
´
Control Optimo
Junio 2002
1. Consid´rese el siguiente sistema discreto escalar:
e
xk+1 = f (xk , uk )
yk = cxk
Plantear las ecuaciones del controlador optimo que hacen que la salida del sistema siga una se˜al de
´
n
referencia rk sobre el intervalo [0, N ], suponiendo que el estado inicial x0 es conocido y que el estado
final xN puede variarse en la b´squeda de la soluci´n ´ptima.
u
o o
(4 puntos)
2. Consid´rese el siguiente sistema continuo:
e
x1 (t)
˙
01
=
x2 (t)
˙
00
x1 (t)
0
+
u(t)
x2 (t)
1
y la siguiente funci´n de coste:
o
J(0) =
1
2
∞
(x(t)T
0
q1 0
x(t) + u2 (t))dt
0 q2
Determinar los valores de q1 y q2 para que el polinomio caracter´
ıstico del sistema en bucle cerrado
utilizando la ganancia de realimentaci´n sub´ptima sea:
o
o
p(s) = s2 + 5s + 10
(6 puntos)
50. Escuela Polit´cnica Superior de Elche
e
Ingenier´ Industrial
ıa
Examen de Control Avanzado de Sistemas
´
Control Optimo
Septiembre 2003
1. Consid´rese el siguiente sistema discreto lineal escalar:
e
xk+1 = 4xk + 2uk
(a) Encontrar la ley de control optimo que minimiza la funci´n de coste siguiente:
´
o
∞
(4x2 + 4u2 )
k
k
J=
k=0
(3 puntos)
(b) Obtener la ubicaci´n de los polos del sistema en bucle cerrado utilizando la ley de control calculada.
o
¿Es estable el sistema en bucle cerrado? Razonar la respuesta.
(0.5 puntos)
(c) Calcular el valor de la funci´n de coste asociado a la estrategia de control optimo si el estado inicial
o
´
es x0 = 3.
(0.5 puntos)
(d) Consid´rese que el sistema anterior ha sido obtenido al discretizar un sistema continuo con un periodo
e
de muestreo de 0.1 seg. Plantear la expresi´n de la funci´n de coste que deber´ minimizarse si se
o
o
ıa
desea controlar el sistema unicamente durante 2 seg de forma que se utilice la m´
´
ınima se˜al de
n
control posible, asumiendo que el estado inicial es conocido y que el estado final puede variarse en
la b´squeda de la soluci´n optima. Razonar la respuesta.
u
o ´
(1.5 puntos)
2. Consid´rese el sistema continuo descrito por la siguiente ecuaci´n diferencial:
e
o
y (t) = u(t)
¨
(a) Calcular la ley de control que minimiza la siguiente funci´n de coste:
o
J=
1
2
∞
(y 2 (t) + y 2 (t) + u2 (t))dt
˙
0
(4 puntos)
(b) Obtener la ubicaci´n de los polos del sistema en bucle cerrado utilizando la ley de control calculada.
o
¿Es estable el sistema en bucle cerrado? Razonar la respuesta.
(0.5 puntos)
51. Escuela Polit´cnica Superior de Elche
e
Ingenier´ Industrial
ıa
Examen de Control Avanzado de Sistemas
´
Control Optimo
Junio 2004
1. Consid´rese el siguiente sistema discreto:
e
x1 (k + 1) = x2 (k)
x2 (k + 1) = u(k)
y la siguiente funci´n de coste:
o
∞
J=
x2 (k) + x2 (k) + x1 (k)x2 (k) + ru2 (k)
1
2
k=0
Determinar el valor de r para que los polos del sistema en bucle cerrado utilizando la ley de control
o
´ptimo que minimiza la funci´n de coste anterior sean z1 = 0, z2 = −0.2.
o
(5 puntos)
2. Consid´rese el siguiente sistema continuo:
e
x(t) =
˙
01
0
x(t) +
u(t)
20
2
(a) Encontrar la ley de control optimo que minimiza la funci´n de coste:
´
o
J=
1
2
∞
0
(x(t)T
10
x(t) + 2u2 (t))dt
01
(3 puntos)
(b) Obtener la ubicaci´n de los polos del sistema en bucle cerrado utilizando la ley de control calculada.
o
¿Es estable el sistema en bucle cerrado? Razonar la respuesta.
(1 punto)
(c) Indicar cual ser´ la funci´n de coste que habr´ que minimizar si se deseara que el estado x(t)
ıa
o
ıa
siguiera un estado de referencia r(t) durante un intervalo de control [t0 , T ].
(1 punto)
52. Escuela Polit´cnica Superior de Elche
e
Ingenier´ Industrial
ıa
Examen de Control Avanzado de Sistemas
´
Control Optimo
Diciembre 2004
1. Consid´rese el siguiente sistema discreto:
e
xk+1 =
01
0
x +
u
00 k
1 k
y la siguiente funci´n de coste:
o
J=
1
2
∞
(xT
k
k=0
11
x + 2u2 )
k
1q k
(a) Determinar el valor de q para que los polos del sistema en bucle cerrado, utilizando la ley de control
´ptimo que minimiza la funci´n de coste anterior, sean z1 = 0, z2 = −0.1.
o
o
(7 puntos)
(b) ¿Es necesario aplicar el control ´ptimo para poder determinar cu´l es el valor ´ptimo de la funci´n
o
a
o
o
de coste? Razonar la respuesta.
(1 punto)
(c) Plantear la funci´n de coste a minimizar para que la salida del sistema, y k = Cxk , siga una se˜al de
o
n
referencia rk durante el intervalo de control [0, N ].
(2 puntos)