Capítulo 7: Diseño e implementación del control del...

12
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

Transcript of Capítulo 7: Diseño e implementación del control del...

Page 1: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

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

Page 2: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

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

Page 3: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

Capítulo 7: Diseño e implementación del control del pedestal

43

Ilustración 7.2: Control de elevación

Page 4: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

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

Page 5: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

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

Page 6: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

7.2. Diseño del esquema en Simulink

46

Ilustración 7.5. Compensación de fricción. Modelo LuGre

Page 7: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

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

Page 8: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

7.2. Diseño del esquema en Simulink

48

Ilustración 7.7. Controlador GPC

Page 9: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

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

Page 10: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

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

Page 11: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

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

Page 12: Capítulo 7: Diseño e implementación del control del pedestalbibing.us.es/proyectos/abreproy/4022/fichero... · 7.2. Diseño del esquema en Simulink En las ilustraciones 7.1 y 7.2

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