Vous êtes sur la page 1sur 13

Diseo del controlador del vehculo areo no

tripulado
Sistema de Ecuaciones en el espacio de Estados:
Consideramos nuestras variables de estado como y el vector de
control:

[]

V
T

x=
u=[ elev thrust ]
q

Entonces se tiene de acuerdo al problema:

][ ] [

3 103 0.06
0.147
11.0767
0.0841 9.8065 V
T
0.8281
0
+ 105 104
x = 0.0316 7.1712
thrust ]
[
elev
0
37.3527 9.9628
0
q
0.98
0
0
0
1
0

0
0

[]

V
1 0 0 0
y=
0 0 1 0 q

Para determinar la funcin de transferencia de lazo cerrado del


circuito dadas las matrices especificadas encontramos la frmula
general y luego reemplazamos:

x = Ax+ Bu (i)
y=Cx (ii)

Aplicamos transformada de Laplace a


sX ( s ) =AX ( s ) + BU ( s )

( sI A ) X ( s )=BU ( s )
1

CX ( s ) =C ( sI A ) BU (s)
En la ecuacin
Y ( s )=CX (s )

( ii ) :

(i) :

Y ( s )=C ( sI A ) BU (s)
1

FT=C ( sI A ) B
A=[-0.1470 11.0767 0.0841 -9.8065;
-0.0316 -7.1712 0.8281
0;
0
-37.3527 -9.9628
0;
0
0
1
0];
B=[3.1^-3 0.06;
10^-5 10^-4;
0.98
0;
0
0];
C=[1 0 0 0;
0 0 1 0];
D=[0 0;0 0];
syms s
ft = C * (s * eye(4) - A)^-1 * B;
ft = simplify(ft);
vpa(ft,4)
Otra forma de obtener la funcin de transferencia de la planta es
mediante le siguiente comando ss (Space States) y luego tf (transfer
Function)
clc
clear all
close all
%Matrices del sistema:
A=[-0.1470 11.0767 0.0841 -9.8065;-0.0316 -7.1712 0.8281
0;0 -37.3527 -9.9628 0;0 0 1 0];
B=[3.1^-3 0.06;10^-5 10^-4;0.98 0;0 0];
C=[1 0 0 0;0 0 1 0];
D=[0 0;0 0];
estados = {'Velocidad' 'Angulo de Ataque' 'Velocidad
Angular' 'Angulo de Elevacion'};
entradas = {'Elevador' 'Empuje'};
salidas = {'Velocidad' 'Velocidad Angular'};
%Representacin de espacio de estados:
sistema_SS = ss(A,B,C,D)
%Funcion de Transferencia de La planta:
FT_Planta = tf(sistema_SS)
Con lo que se obtiene como resultado las siguientes ecuaciones de
funcin de transferencia:

From input 1 to output...

1:

0.03357 s^3 + 0.6577 s^2 + 3.407 s - 68.91


--------------------------------------------s^4 + 17.28 s^3 + 105.2 s^2 + 18.44 s + 11.58

2:

0.98 s^3 + 7.171 s^2 + 1.416 s


--------------------------------------------s^4 + 17.28 s^3 + 105.2 s^2 + 18.44 s + 11.58

From input 2 to output...


1:

0.06 s^3 + 1.029 s^2 + 6.153 s + 0.03663


--------------------------------------------s^4 + 17.28 s^3 + 105.2 s^2 + 18.44 s + 11.58

2:

-0.003735 s^2 + 0.07027 s


--------------------------------------------s^4 + 17.28 s^3 + 105.2 s^2 + 18.44 s + 11.58

De este comando se aprecia que todas las funciones de transferencia


tienen el mismo denominador este se debe a la ecuacin previamente
establecida matemticamente:
FT=C ( sI A )1 B
En la cual se aprecia que el denominador est dado por:

|( sI A )1|
Como mostramos a continuacin:
syms s
Det = det((s*eye(4) - A)^-1);
Det = simplify(Det);
Det = vpa(Det, 3)
4.4e23/(4.4e23*s^4 + 7.6e24*s^3 + 4.63e25*s^2 + 8.11e24*s +
5.09e24)
1
s +17.27 s +105.2 s2 +18.43 s +11.568
4

Comprobando as la validez del comando Matlab y verificando que el


resultado es el correcto.
Ahora comprobamos cada una de estas salidas ante una entrada
escaln:

num1
num2
num3
num4

=
=
=
=

[-0.03735 0.6577 3.407 -68.91]


[0.98 7.171 1.416 0]
[0.06 1.029 6.153 0.03663];
[-0.003735 0.07027 0];

den = [1 17.28 105.2 18.44 11.58];


figure
subplot(221)
step(num1,den)
subplot(222)
step(num2,den)
subplot(223)
step(num3,den)
subplot(224)
step(num4,den)
Step Response

Step Response

0.15

Amplitude

Amplitude

0.1
-5

-10

20

40

0.05
0
-0.05

60

20

Time (seconds)
-3

Step Response

0.3

Amplitude

Amplitude

0.2
0.1
0
-0.1

20

40

Time (seconds)

40

60

Time (seconds)

60

80

x 10

Step Response

1
0
-1

20

40

60

80

Time (seconds)

De aqu se aprecia que la entrada 2 no afecta significativamente a


ambas salidas del sistema y por lo tanto se puede simplificar el
sistema a una sola entrada para poder aplicar los mtodos de diseo
de control conocidos.

Para un buen diseo de controlador PID se debe tomar en cuenta las


siguientes consideraciones:

Sea el controlador PID:


KP+

KI
+K Ds
s

Entonces se tiene que la salida y est dada por la siguiente ecuacin:


Y=

Kc P
Kc P
P
R+
D
N
1+ K c P
1+ K c P
1+ K c P

) (

) (

Los datos del problema son que:


El ruido para el sensor de velocidad es de:

0.4 m/s

El ruido para la razn del grado de inclinacin del sensor es de:


1.7 m/ s
Se desea estabilizar la velocidad con

v =10 m/s

clc
clear all
close all
%Variables de estado del sistema
A=[-0.1470 11.0767 0.0841 -9.8065;-0.0316 -7.1712 0.8281
0;0 -37.3527 -9.9628 0;0 0 1 0];
B=[3.1^-3 0.06;10^-5 10^-4;0.98 0;0 0];
C=[1 0 0 0;0 0 1 0];
D=[0 0;0 0];
states = {'Velocidad' 'Angulo de Ataque' 'Velocidad
Angular' 'Angulo de Elevacion'};
inputs = {'elevator' 'thrust'};
outputs = {'Velocidad' 'Velocidad Angular'};
%REPRESENTACION DE ESPACIO DEESTADOS

sys_nombrar =
ss(A,B,C,D,'statename',states,'inputname',inputs,...
'outputname',outputs)
%FUNCION DE TRANSFERENCIA
sys_tfcompleta=tf(sys_nombrar)
%REPRESETACION FACTORIZADA
% sys_zpk1=zpk(sys_nombrar)
%ANALISIS EN LAZO ABIERTO
figure
step(sys_nombrar)
%PARA LA FUNCION DE TRANSFERENCIA Salida2-Entrada1 (picth
rate-elevator)
sys_space21=sys_nombrar('Velocidad Angular','elevator')
sys_tf21=sys_tfcompleta(2,1)
figure
rlocus(sys_space21)
% input='se elige un valor del plano polar, se selecciona
una ganancia de K=6.18, Overshoot=0.2%, Polos dominantes:
-11.6 mas- 3.36i'
%RETROALIMENTAMOS A LA F.T. Salida2-Entrada1
k=6.18
loopclose21=feedback(sys_tf21,k);
figure
step(sys_tf21,loopclose21,'r')
%CONTROL P
num21=[0.98,7.171,1.416,0];
den21=[1,17.28,105.2,18.44,11.58];
Kp=0.5;
numKp=[Kp];
denKp=[1];
newnum21=conv(numKp,num21);
newden21=conv(denKp,den21);
[numControlP,denControlP]=cloop(newnum21,newden21);
sys_tf21_P=tf(numControlP,denControlP)
%PLETEO COMPARANDO CON EL LAZO ABIERTO
figure
step(sys_tf21,sys_tf21_P,'r')
% damp(sys_nombrar)
% rlocus(sys_tf1completa)
%Controlador PD:
Kp = 0.5;

Kd = 0.5;
numKPD=[Kd Kp];
denKPD=[0 1];
newnumPD =conv(numKPD, num21);
newdenPD =conv(denKPD, den21);
[numControlPD, denControlPD] = cloop(newnumPD,newdenPD);
sys_tf21_PD = tf(numControlPD, denControlPD)
figure
step(sys_tf21, sys_tf21_PD,'r')
%Controlador PID:
Kp = 100;
Kd = 1;
Ki = 200;
numKPID = [Kd Kp Ki];
denKPID = [1 0];
newnumPID = conv(numKPID, num21);
newdenPID = conv(denKPID, den21);
[numControlPID, denControlPID] =
cloop(newnumPID,newdenPID);
sys_tf21_PID=tf(numControlPID,denControlPID)
figure
step(sys_tf21,sys_tf21_PID,'r')

Respuesta ante cada una de las dos entradas para cada una de las
dos salidas. En el siguiente grfico se observa como la entrada de
empuje afecta de manera despreciable a las dos salidas del sistema y
por lo tanto el modelo se puede reducir a considerar solamente una
entrada que en este caso es la del elevador.

Step Response
From: Elevador

From: Empuje

To: Velocidad

-2
-4
-6

Amplitude

-8

To: Velocidad Angular

-10
0.08
0.06
0.04
0.02
0
-0.02
-0.04

20

40

60

80 0

20

40

60

Time (seconds)

Lugar geomtrico de las races: del sistema sin controlador

80

Root Locus

Imaginary Axis (seconds-1)

-2

-4

-6
-25

-20

-15

-10

-5

Real Axis (seconds -1)

Sistema con Controlador Proporcional:


Step Response
From: Elevador To: Velocidad Angular

0.08

0.06

Amplitude

0.04

0.02

-0.02

-0.04

10

20

30

40

50

60

70

Time (seconds)

El lugar geomtrico con el controlador proporcional no se ve afectado


en cuanto a forma

Root Locus

-1

Imaginary Axis (seconds )

-2

-4

-6
-25

-20

-15

-10

-5

-1

Real Axis (seconds )

Sistema con controlador Proporcional Derivativo:


Step Response
From: Elevador To: Velocidad Angular

0.35
0.3
0.25

Amplitude

0.2
0.15
0.1
0.05
0
-0.05

10

20

30

40

Time (seconds)

50

60

70

Lugar Geomtrico con el controlador Proporcional Derivativo:

Root Locus

5
4

-1

Imaginary Axis (seconds )

3
2
1
0
-1
-2
-3
-4
-5
-8

-7

-6

-5

-4

-3

-2
-1

Real Axis (seconds )

-1

Step Response
From: Elevador To: Velocidad Angular

1.2

0.8

Amplitude

0.6

0.4

0.2

-0.2

10

20

30

40

50

60

70

-20

20

Time (seconds)

Root Locus

-1

Imaginary Axis (seconds )

-2

-4

-6
-120

-100

-80

-60

-40
-1

Real Axis (seconds )

Vous aimerez peut-être aussi