Capítulo 7: Diseño e implementación del control del...
Transcript of Capítulo 7: Diseño e implementación del control del...
Capítulo 7: Diseño e implementación del control del pedestal
Capítulo 7: Diseño e implementación del control del pedestal
7.1. Introducción
La metodología utilizada para el diseño y la implementación del control del pedestal
se basa en dos programas: Matlab, con su módulo Simulink, y Controldesk de dSPACE. Se
comienza diseñando un esquema de Simulink que recoge los datos de los sensores. Estos
datos, junto con la referencia generada por otro módulo de Simulink, se procesan en el
controlador propiamente dicho, el cual genera la actuación que es enviada al pedestal. Para la
recogida de datos de los sensores y el envío de las señales de actuación se emplean funciones
propias de las librerías Real Time Interface Library (RTI) de dSPACE.
Una vez diseñado, el esquema de Simulink se compila utilizando la misma librería y el
archivo de código objeto resultante se introduce en la memoria interna de la tarjeta de
adquisición de datos dSPACE. Para ello se utiliza el programa Controldesk de dSPACE. Con
este programa se desarrolla también una pantalla de explotación que permitirá cambiar los
parámetros de la simulación, tales como el tipo de control, la referencia, etc. así como ver en
tiempo real las representaciones gráficas de las medidas de los sensores y las actuaciones.
41
7.2. Diseño del esquema en Simulink
7.2. Diseño del esquema en Simulink
42
Ilustración 7.1: Control de orientación
Capítulo 7: Diseño e implementación del control del pedestal
43
Ilustración 7.2: Control de elevación
7.2. Diseño del esquema en Simulink
En las ilustraciones 7.1 y 7.2 se aprecian los esquemas de control para los motores de
orientación y elevación respectivamente. Los elementos comunes incluyen el generador de
referencias, los controladores y diversos bloques utilizados por el Controldesk para
interactuar con el esquema en tiempo real. Los bloques no comunes serán descritos más
adelante en este mismo capítulo.
En la configuración general del modelo se ha de elegir el tiempo de muestreo que
regirá todos los procesos. Los tiempos elegidos para subprocesos deberán ser múltiplos del
tiempo general. Nótese que la elección de un tiempo superior a 0.0015 s provocará el
funcionamiento defectuoso de los giróscopos.
7.2.1. Generador de referencias
En el generador de referencias se distinguen dos bloques claramente diferenciados, el
generador de ondas sinusoidales (planificador sinusoidal) y el generador de rampas. Ambos
generan las referencias de posición y de velocidad para el instante presente, así como un
avance para el instante situado N veces el tiempo de muestreo en el futuro, con N igual al
horizonte de predicción. Las señales futuras son requeridas por el control predictivo para
calcular la secuencia de control.
7.2.2. Bloque de controladores
Se compone de tres bloques: el control en posición, en velocidad y el compensador de
fricción; así como de la lógica necesaria para elegir los distintos modos de control
implementados. Los esquemas en posición y en velocidad son iguales, variando únicamente
44
Ilustración 7.3. Generador de referencias
Capítulo 7: Diseño e implementación del control del pedestal
las entradas que reciben y los valores de inicialización con los que operan. En su interior una
lógica análoga permite encauzar el flujo de datos entre los bloques correspondientes al
control PI y al control predictivo generalizado en cada caso (posición y velocidad). El bloque
de compensación de fricción presenta una estructura simétrica, en la que cada mitad se ocupa
de un sentido de giro del motor.
45
Ilustración 7.4. Controladores
7.2. Diseño del esquema en Simulink
46
Ilustración 7.5. Compensación de fricción. Modelo LuGre
Capítulo 7: Diseño e implementación del control del pedestal
En el esquema del control predictivo generalizado se calcula en cada instante el valor
de la actuación según la ecuación (6.12). Nótese que es necesario dividir la matriz F en dos
debido al límite de 50 elementos impuesto por la versión de Matlab de la que se dispone.
Para el cálculo de las matrices que caracterizan el controlador GPC se han creado los
scripts de Matlab “iniciaor.m” e “iniciael.m”. Editándolos se pueden ajustar los valores de
los parámetros del sistema. Ambos llaman a la función “calculaGPC.m” con los valores
adecuados para el sistema de rotación y el de elevación.
Script iniciaor.m
global HG HGv F F1 F2 Fv Fv1 Fv2 P Pv T horconpos horpredpos horconvel horpredvel Gp lambdapos lambdavel a b1 b2 bv
% periodo de muestreo
T=0.01;
% Constantes del Sistema
TM=0.035712; % Calculadas con los valores de
KM=0.083568; % catálogo de los motores
a=exp(-T/TM);
b1=KM*TM*(T/TM-1+exp(-T/TM));
b2=KM*TM*(1-(1+T/TM)*exp(-T/TM));
bv=(b1+b2)/T;
47
Ilustración 7.6. Controlador PI
7.2. Diseño del esquema en Simulink
48
Ilustración 7.7. Controlador GPC
Capítulo 7: Diseño e implementación del control del pedestal
% Modelo posicion A·y=B·u+C·e/D
A=[1 -(1+a) a];
B=[0 b1 b2];
C=[1];
lambdapos=0.05;
% Modelo velocidad Av·yd=Bv·u+Cv·e/D
Av=[1 -a];
Bv=[(b1+b2)/T];
Cv=[1];
lambdavel=0.65;
horconpos=25; % Horizonte de control en posición
horpredpos=25; % Horizonte de predicción en posición
horconvel=4; % Horizonte de control en velocidad
horpredvel=28; % Horizonte de predicción en velocidad
[P,F,HG,Gp]=calculaGPC(A,B,C,horpredpos,horconpos,lambdapos);
[Pv,Fv,HGv,Gpv]=calculaGPC(Av,Bv,Cv,horpredvel,horconvel,lambdavel);
F1=F(1:12,:); % Se divide la matriz F para no superar
F2=F(13:horpredpos,:); % el tamaño límite impuesto por matlab (50 elementos)
Fv1=Fv(1:horpredvel/2,:); % Idem para Fv
Fv2=Fv(horpredvel/2+1:horpredvel,:);
script iniciael.m
global HG HGv F F1 F2 Fv Fv1 Fv2 P Pv T horconpos horpredpos horconvel horpredvel Gp lambdapos lambdavel a b1 b2 bv
% periodo de muestreo
T=0.01;
% Constantes del Sistema
TM=0.035712; % Calculadas con los valores de
49
7.2. Diseño del esquema en Simulink
KM=0.083568; % catálogo de los motores
a=exp(-T/TM);
b1=KM*TM*(T/TM-1+exp(-T/TM));
b2=KM*TM*(1-(1+T/TM)*exp(-T/TM));
bv=(b1+b2)/T;
% Modelo posicion A·y=B·u+C·e/D
A=[1 -(1+a) a];
B=[0 b1 b2];
C=[1];
lambdapos=0.05;
% Modelo velocidad Av·yd=Bv·u+Cv·e/D
Av=[1 -a];
Bv=[(b1+b2)/T];
Cv=[1];
lambdavel=0.07;
horconpos=25; % Horizonte de control en posición
horpredpos=25; % Horizonte de predicción en posición
horconvel=28; % Horizonte de control en velocidad
horpredvel=28; % Horizonte de predicción en velocidad
[P,F,HG,Gp]=calculaGPC(A,B,C,horpredpos,horconpos,lambdapos);
[Pv,Fv,HGv,Gpv]=calculaGPC(Av,Bv,Cv,horpredvel,horconvel,lambdavel);
F1=F(1:12,:); % Se divide en dos la matriz F para no superar
F2=F(13:horpredpos,:); % el tamaño límite impuesto por matlab (50 elementos)
Fv1=Fv(1:horpredvel/2,:); % Idem para Fv
Fv2=Fv(horpredvel/2+1:horpredvel,:);
50
Capítulo 7: Diseño e implementación del control del pedestal
función calculaGPC.m
% Cálculo de las matrices del GPC y^= G*u+F*y+P*Du-1
function [P,F,HGf,Gp]=calculaGPC(A,B,C,horpred,horcon,lambda)
DA=conv(A,[1 -1]);
n=length(C);
m=length(DA);
if n<m
C(n+1:m)=0;
end
if n>m
disp('error: orden(C) > orden(A)');
return;
end
% Division polinómica: E son los cocientes y F los restos
E=zeros(horpred,horpred);
F=zeros(horpred,m);
for f=1:horpred
[q(f) r]=deconv(C,DA);
F(f,:)=r;
C=[r(2:m) 0];
end
F(:,1)=[];
for f=1:horpred
E(f,:)=[q(1:f) zeros(1,horpred-f)];
end
% Gp son los polinomios Gj = Ej*B
% G es la matriz de los coeficientes de los polinomios Gj ordenados
Gp=zeros(horpred,horpred+length(B)-1);
G=zeros(horpred,horcon);
for i=1:horpred
51
7.2. Diseño del esquema en Simulink
[Gp(i,:)]=conv(E(i,:),B);
end
for i=1:horpred
for j=1:horcon
G(j+i-1,j)=Gp(i,i);
end
end
G(horpred+1:length(G(:,1)),:)=[];
P=zeros(horpred,1);
for i=1:length(P)
P(i)=Gp(i,i+length(B)-1);
end
HG=inv(G'*G+lambda*eye(horcon))*G';
HGf=HG(1,:); % Solo se utilizará la primera fila
7.2.3. Bloques no comunes
Debido a limitaciones en el hardware de las tarjetas dSPACE, la comunicación del
controlador de elevación con el pedestal no se realiza de forma directa, sino a través del
control de orientación. Así, la señal de actuación de la elevación se transmite a través de los
módulos tx_ssi y rx_ssi al esquema de orientación, del cual se transmite al pedestal a través
del bloque DS1102DAC.
52