Académique Documents
Professionnel Documents
Culture Documents
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
][ ] [
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
x = Ax+ Bu (i)
y=Cx (ii)
( 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:
1:
2:
2:
|( 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
num1
num2
num3
num4
=
=
=
=
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)
KI
+K Ds
s
Kc P
Kc P
P
R+
D
N
1+ K c P
1+ K c P
1+ K c P
) (
) (
0.4 m/s
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
-10
0.08
0.06
0.04
0.02
0
-0.02
-0.04
20
40
60
80 0
20
40
60
Time (seconds)
80
Root Locus
-2
-4
-6
-25
-20
-15
-10
-5
0.08
0.06
Amplitude
0.04
0.02
-0.02
-0.04
10
20
30
40
50
60
70
Time (seconds)
Root Locus
-1
-2
-4
-6
-25
-20
-15
-10
-5
-1
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
Root Locus
5
4
-1
3
2
1
0
-1
-2
-3
-4
-5
-8
-7
-6
-5
-4
-3
-2
-1
-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
-2
-4
-6
-120
-100
-80
-60
-40
-1