universidad nacional autonoma de m exico facultad de ingenier … · 2018-08-29 · universidad...

51
Universidad Nacional Aut ´ onoma de M ´ exico Facultad de Ingenier ´ ıa Proyecto Final Control en Cuadric´ opetro Integrantes: elix Tejeda Fernando Torres Rodr´ ıguez Iv´ an Supervisor: Dr. Marcos ´ Angel Gonz´ alez Olvera Reporte de proyecto final en el dise˜ no de un controlador elaborado en la materia de Control Avanzado Divisi´ on de Ingenier´ ıa El´ ectrica - Control y Rob´ otica 20 de mayo de 2015

Upload: others

Post on 25-Apr-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Universidad Nacional Autonoma de Mexico

Facultad de Ingenierıa

Proyecto Final

Control en Cuadricopetro

Integrantes:

Felix Tejeda Fernando

Torres Rodrıguez Ivan

Supervisor:

Dr. Marcos Angel

Gonzalez Olvera

Reporte de proyecto final en el

diseno de un controlador elaborado

en la materia de

Control Avanzado

Division de Ingenierıa Electrica - Control y Robotica

20 de mayo de 2015

Page 2: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

“El secreto del exito es ser dueno de nada, pero el control de todo”

Nelson Rockefeller

Page 3: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO

Resumen

Facultad de Ingenierıa

Division de Ingenierıa Electrica - Control y Robotica

Proyecto Final

Control en Cuadricopetro

por Felix Tejeda Fernando

Torres Rodrıguez Ivan

Se modela, disena e implementa un controlador y observador tal que se logre estabilizar

un cuadricoptero. Durante el desarrollo del proyecto se analiza e implementa la teorıa

del espacio de estados para sistemas dinamicos linealizados. Ademas, se elaboran ex-

perimentos para estimar, comprender y predecir distintos comportamientos fısicos del

sistema.

Page 4: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Indice general

Resumen II

Indice General III

1. Modelado en Variables de Estado 1

1.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Fısica involucrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.1. Cinematica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.2.2. Motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.3. Fuerzas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.4. Torques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3. Ecuaciones de movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1.4. Modelo no lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1.4.1. Variables de estado . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.4.2. Puntos de equilibrio . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.5. Modelo lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.6. Parametros del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.7. Simplificaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.8. Analisis de estabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.9. Simulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2. Controlador y Observador 18

2.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.2. Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.2.1. Controlabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.2. Control optimo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2.3. Estabilidad en el sentido de Lyapunov . . . . . . . . . . . . . . . . 22

2.3. Observador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2.3.1. Observabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

2.3.2. Observador de Luenberger . . . . . . . . . . . . . . . . . . . . . . . 23

2.4. Control por estados observados . . . . . . . . . . . . . . . . . . . . . . . . 24

2.5. Simulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3. Implementacion 29

3.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.2. Sistema discreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

3.2.1. Discretizacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

iii

Page 5: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Indice General iv

3.2.2. Controlador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.2.3. Observador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.3. Simulaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.4. Puesta a punto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

3.5. Conlusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

A. Codigo en Matlab 42

Page 6: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Capıtulo 1

Modelado en Variables de Estado

1.1. Introduccion

Un cuadricoptero es una aeronave que tiene cuatro rotores distribuidos equidistante-

mente, usualmente colocados en las esquinas de un cuerpo cuadrado. Con cuatro rotores

independientes no son necesarios complejos mecanismos para llegar a manipularlo co-

rrectamente.

El desarrollo en los cuadricopteros habıa estado estancado por un largo periodo debido

a la complejidad en controlar cuatro motores independientes sin electronica comple-

ja y finos mecanismos. El actual decremento en los microcontroladores ha facilitado

la electronica e incluso ha sido posible el desarrolo de cuadricoperos completamente

autonomos para uso militar, comercial e incluso para fines recreativos.

El contro sobre un cuadicoptero es un problema bastante interesante. Con seis grados de

libertad (tres traslacional y tres rotacional) y solo cuatro entradas independientes (roto-

res), los cuadrcopteros estan realmente subactuados. Con el fin de lograr seis grados de

libertad, el movimiento rotacional y traslacional esta acoplado. La dinamica resultante

es altamente no lineal, especialmente despues de tomar en cuenta los efectos aerodinami-

cos. Finalmente, a diferencia de los vehıculos terrestres, las aeronaves tienen muy poca

friccion que prevengan su movimiento, por lo que deben proveer su propio frenado para

deterse y manterse estable. Se incluira un modelo muy simplificado del modelo dinamico

del cuadricoptero para lograr llevarlo a un punto de equilibrio. Ademas, se simula e

implementa un controlador que permita mantenerlo en vuelo.

1

Page 7: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 2

1.2. Fısica involucrada

El desarrollo en la dinamica del cuadricopero se empieza introduciendo las dos estructu-

ras en los que va a operar. La estructura inercial esta definido por la Tierra, cuya fuerza

gravitatoria apunta en direccion negativa al eje z. La estructura corporal esta definida

por la orientacion del cuadricoptero, cuyos rotores apuntan en direccion positiva al eje

z y sus brazos apuntan en direccion x y y.

Figura 1.1: Estructura inercial y corporal

1.2.1. Cinematica

Para formalizar la cinematica de la estructura inercial se define la posicion y velocidad

del cuadricopero como p = (x, y, z)T y p = (x, y, z)T respectivamente. Similarmente, se

definen los angulos roll, pitch y yaw para la estructura corporal como α = (φ, θ, ψ)T ,

cuyas correspondientes velocidades angulares son iguales a α = (φ, θ, ψ)T . Sin embargo,

notese que el vector de velocidad angular ω 6= α. La velocidad angular es un vector que

apunta a lo largo del eje de rotacion, mientras que α es solo la derivada con respecto del

tiempo de los angulos roll, pitch y yaw. Para convertir estas velocidades angulares a un

vector de velocidad angular, se utiliza la siguiente transformacion

ω =

1 0 −Sθ0 Cφ CθSφ

0 −Sφ CθCφ

αSe puede relacionar la estructura corporal e inercial mediante la matriz de rotacion

R. El desarrollo de esta matriz se hace mediante de los angulos de Euler y utilizando

Page 8: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 3

correctamente identidades trigonometricas en los angulos roll, pitch, yaw.

R =

CψCθ CψSθSφ − CφSψ SψSφ + CψCφSθ

CθSψ CψCφ + SψSθSφ CφSψSθ − CψSφ−Sθ CθSφ CθCφ

Para un vector ~v dado en la estructura corporal, el vector correspondiente en la estruc-

tura inercial esta dado por R~v.

1.2.2. Motores

Se utilizan motores de corriente directa para propulsar el cuadricoptero. Para estos

motores, el torque que producen estan dados por

τ = KtI

donde τ es el torque del motor, I es la corriente en el motor y Kt es la constante

proporcional de torque. Por otro lado, tomando en cuenta la resistencia del embobinado,

el voltaje sobre el motor esta dado por las leyes de Kirchoff

V = IRm +Kvω

donde V es el voltaje aplicado al motor, Rm su resistencia, ω la velocidad angular del

motor y Kv es una constante de proporcionalidad. Dados estos parametros y hacien-

do despreciable la pequena resistencia del motor, se obtiene la funcion de su potencia

consumida

P = V I =τ(τRm +KtKvω)

K2t

≈ Kv

Ktτω

1.2.3. Fuerzas

La potencia es utilizada para mantener el cuadricoptero en vuelo. Por la conversacion de

la energıa, la energıa utilizada por los motores en un cierto periodo de tiempo es igual a

la fuerza empleada por las helices para desplazar el aire a su alrededor y lograr elevarse

(P dt = F dx). Equivalentemente, la potencia es igual a un numero de veces la velocidad

del viento P = F dxdt .

P = Tvh

Se asume que la aeronave se movera relativamente lento, por lo que vh sera la velocidad

del viento desplazado cuando el cuadricoptero se encuentre flotando. Tambien se asumen

despreciables los efectos de rizo en el aire provocados por las helices. Dadas las ecuaciones

Page 9: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 4

de momentum para un objeto que se mantiene flotando

vh =

√T

2ρA

donde ρ es la densidad del aire y A es el area total que ocupan las aspas. Utilizando la

anterior ecuacion de potencia se tiene que

P =Kv

Ktτω =

KvKτ

KtTω =

T 3/2

√2ρA

Notese que en el caso general, τ = ~r× ~F ; en este caso, el torque es proporcional al empuje

T por una constante Kτ determinada por los parametros y configuracion de las aspas.

Resolviendo para la magnitud del empuje T se obtiene que el empuje es proporcional al

cuadrado de la velocidad angular del motor

T =

(KvKτ

√2ρA

Ktω

)2

= kω2

donde k se puede decir que es constante. Sumando sobre los 4 motores se tiene que el

empuje total sobre el cuadricoptero es

TB =

4∑i=1

Ti = k

4∑i=1

ω2i

Dado que la velocidad angular de cada rotor es proporcional al voltaje aplicado, con cm

igual a una constante y V al voltaje aplicado al motor, tenemos que

w2i = cmV

2i

En adicion a la fuerza de empuje, se modela la friccion como una fuerza proporcional a

la velocidad lineal. Esta es una vista simplificada de la friccion viscoza pero es suficiente

para el modelado. Esta fuerza esta definida por la ecuacion

FD = −kd

x

y

z

1.2.4. Torques

Cada rotor contribuye con un torque alrededor del eje z. Este torque es el necesario para

que las helices giren y proveer empuje, esto crea instanteneamente la aceleracion angular

Page 10: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 5

y provoca las fuerzas de friccion de arrastre. La ecuacion de arrastre en la dinamica de

los fluidos proporciona la fuerza de friccion

FD =1

2ρCDAv

2

donde ρ es la densidad del fluido, A el area ocupada por las aspas y CD es una constante

adimensional. Esto implica que el torque debido a la friccion esta dada por

τD =1

2RρCDAv

2 =1

2RρCDA(ωR)2 = bω2

donde ω es la velocidad angular de las helices y R es la longitud de la mitad de un aspa.

Finalmente se puede escribir el torque completo sobre el eje z para el iesimo motor.

τz = bω2 + IM ω

donde IM es el momento de inercia sobre el eje z, ω es la aceleracion angular de la helice

y b es el mismo coeficiente de friccion anterior. Notese que en estado estacionario ω ≈ 0,

dado que la mayor parte del tiempo las helices se mantendran a una velocidad constante.

Por lo que se simplifica la expresion a

τz = (−1)i+1bω2i

donde el termino (−1)i+1 es positivo para la iesima helice si es que esta gira en sentido

de las manecillas del reloj y negativo si gira levogiramente. El torque total sobre el eje

z esta dado por la suma de todos los torques de cada helice

τψ = b(ω21 − ω2

2 + ω23 − ω2

4)

Los torques roll y pitch se derivan de la mecanica clasica. Se puede escoger arbitriara-

mente el motor 1 o 3 para torque roll

τφ =∑

r × T = Lk(ω21 − ω2

3)

Correspondientemente, el torque pitch esta dado por una expresion similar

τθ = Lk(ω22 − ω2

4)

Page 11: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 6

donde L es la distancia desde el centro del cuadricopero a cualquiera de los rotores.

Juntando todo, se encuentra que los torques en la estructrura corporal son

τB =

Lk(ω2

1 − ω23)

Lk(ω22 − ω2

4)

b(ω21 − ω2

2 + ω23 − ω2

4)

El modelo obtenido hasta ahora esta altamente simplificado. Se han ignorado multiples

efectos avanzados que contribuyen en la dinamica no lineal del cuadricoptero. Se ignora

las fuerzas de friccion rotacionales (las velocidades rotacionales son practicamente nulas),

el aleteo de las helices (deformacion de las aspas debidas a las altas velocidades y los

materiales flexibles), las velocidades en el fluido del entorno (viento), etc.

1.3. Ecuaciones de movimiento

En la estructrura inercial, la aceleracion del cuadricopero esta regida por el empuje, la

gravedad y la friccion lineal. Se puede obtenter el vector de empuje en la estructura

inercial mediante la matriz de rotacion R para mapear el vector de empuje desde la

estructrura corporal a la inercial. Por lo tanto, el movimiento lineal puede ser resumido

en

mp =

0

0

−mg

+RTB + FD

donde ~p es la posicion del cuadricoptero, g es la aceleracion debida a la gravedad, FD la

fuerza de friccion y TB es el vector de empuje sobre la estructura corporal.

Figura 1.2: Dinamica involucrada

Si bien es conveniente tener las ecuaciones lineales de movimiento sobre la estructura

inercial, las ecuaciones rotacionales de movimiento son utiles en la estructura corporal,

por lo que se puede expresar las rotaciones alrededor del centro del cuadricoptero en

lugar de estar alrededor del centro de inercia. Las ecuaciones de movimiento rotacional

se derivan de las ecuaciones dinamicas de Euler para cuerpos rıgidos. Expresada en forma

Page 12: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 7

vectorial, las ecuaciones de Euler se expresan como

Iω + ω × (Iω) = τ

donde ω es el vector de velocidad angular, I es la matriz inercial y τ es un vector de

torques externos. Se puede reescribir como

ω =

ωx

ωy

ωz

= I−1(τ − ω × (Iω))

Se puede modelar el cuadricopero como dos barras delgadas uniformes que se cruzan en

el origen con un masa puntual (motor) en cada fin de la barra. Con esto en mente, su

simetria resulta en una matriz diagonal de inercias de la forma

I =

Ixx 0 0

0 Iyy 0

0 0 Izz

Ademas, se obtiene el resultado final para las ecuaciones de movimiento rotacional en la

estructura corporal

ω =

τφI−1xx

τθI−1yy

τψI−1zz

−Iyy−IzzIxx

ωyωzIzz−IxxIyy

ωxωzIxx−IyyIzz

ωxωy

1.4. Modelo no lineal

Finalmente, dada la ecuacion de movimiento lineal, la matriz de inercia y la relacion de

velocidad angular de lo angulos roll, pitch, yaw con el vector de velocidad angular del

cuadricoptero se obtienen las ecuaciones de posicion y orientacion

x = −kdm x+ kcm

m (sinψ sinφ+ cosψ cosφ sin θ)(V 21 + V 2

2 + V 23 + V 2

4

)y = −kd

m y + kcmm (cosφ sinψ sin θ − cosψ sinφ)

(V 21 + V 2

2 + V 23 + V 2

4

)z = −kd

m z − g + kcmm (cos θ cosφ)

(V 21 + V 2

2 + V 23 + V 2

4

)φ = ωx + ωy (sinφ tan θ) + ωz (cosφ tan θ)

θ = ωy cos θ − ωz sinφ

ψ = sinφcos θωy + cosφ

cos θωz

ωx = LkcmIxx

(V 21 − V 2

3 )− Iyy−IzzIxx

ωyωz

ωy = LkcmIyy

(V 22 − V 2

4 )− Izz−IxxIyy

ωxωz

ωz = bcmIzz

(V 21 − V 2

2 + V 23 − V 2

4 )− Ixx−IyyIzz

ωxωy

Page 13: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 8

1.4.1. Variables de estado

El problema se divide en dos partes, por un lado se definen las variables de estado xp εR6

y salida yp εR3 para la posicion del sistema

xp =[x y z x y z

]Typ =

[x y z

]TPor otro lado, para el problema de orientacion, se tienen los estados xo εR6 y salida

yo εR3

xo =[φ θ ψ ωx ωy ωz

]Tyo =

[φ θ ψ

]TPara ambas partes del sistema se tiene al voltaje como un vector de entradas u εR4

u =[V 21 V 2

2 V 23 V 2

4

]TNotese qe el vector de entradas esta en terminos del cuadro del voltaje en los rotores

y por lo tanto el problema de control sera en el cuadrado de los voltajes y no en los

voltajes. Tomando esto en cuenta, se obtiene el modelo de variables de estado x = f(x, u),

x0 = x(t0) y y = h(x, u)

xp =

x4

x5

x6

−kdmx4 + kcm

m (sinx9 sinx7 + cosx9 cosx7 sinx8) (u1 + u2 + u3 + u4)

−kdmx5 + kcm

m (cosx7 sinx9 sinx8 − cosx9 sinx7) (u1 + u2 + u3 + u4)

−kdmx6 − g + kcm

m (cosx8 cosx7) (u1 + u2 + u3 + u4)

xo =

x10 + x11 (sinx7 tanx8) + x12 (cosx7 tanx8)

x11 cosx8 − x12 sinx7sinx7cosx8

x11 + cosx7cosx8

x12LkcmIxx

(u1 − u3)− Iyy−IzzIxx

x11x12LkcmIyy

(u2 − u4)− Izz−IxxIyy

x10x12bcmIzz

(u1 − u2 + u3 − u4)− Ixx−IyyIzz

x10x11

Page 14: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 9

1.4.2. Puntos de equilibrio

Se define al punto de operacion o punto de equilibrio de un sistema con modelo de

variables de estado

Σ =

x = f(x, u), x0 = x(t0)

y = h(x, u)

como aquellos calores x = X, u = U, y = Y constantes para los cuales se cumple que si

x0 = X y u(t) = U ∀ t ≥ t0 entonces x(t) = X, y(t) = Y ∀ t ≥ t0. Es decir, el punto de

equilibrio sera aquel valor (X,U,Y) que satisfaga

f(X,U) = 0 h(X,U) = Y

Para determinar el punto de equilibrio del cuadricopero se iguala x = 0 por lo tanto

debe cumplirse que

X4 = 0

X5 = 0

X6 = 0

−kdmX4 + kcm

m (sinX9 sinX7 + cosX9 cosX7 sinX8) (U1 + U2 + U3 + U4) = 0

−kdmX5 + kcm

m (cosX7 sinX9 sinX8 − cosX9 sinX7) (U1 + U2 + U3 + U4) = 0

−kdmX6 − g + kcm

m (cosX8 cosX7) (U1 + U2 + U3 + U4) = 0

X10 +X11 (sinX7 tanX8) +X12 (cosX7 tanX8) = 0

X11 cosX8 −X12 sinX7 = 0sinX7cosX8

X11 + cosX7cosX8

X12 = 0LkcmIxx

(U1 − U3)− Iyy−IzzIxx

X11X12 = 0LkcmIyy

(U2 − U4)− Izz−IxxIyy

X10X12 = 0

bcmIzz

(U1 − U2 + U3 − U4)− Ixx−IyyIzz

X10X11 = 0

Es posible distinguir que el sistema (cuadricoptero) para mantenerse estable debe estar

en una posicion horizontal de vuelo, por lo que la salida esta definida por φ = θ = ψ = 0

y x = y = z = 0. Con esto en cuenta y la condicion dinamica anterior se tiene que

P.E. =

X1 = 0 X2 = 0 X3 = 0 X4 = 0

X5 = 0 X6 = 0 X7 = 0 X8 = 0

X9 = 0 X10 = 0 X11 = 0 X12 = 0

U1 = U1 U2 = U1 U3 = U1, U4 = U1

Y1 = 0 Y2 = 0 Y3 = 0

Y4 = 0 Y5 = 0 Y6 = 0

Page 15: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 10

1.5. Modelo lineal

Con el fin de analizar y disenar un control tal que mantenga al cuadricopero en un

vuelo estacionario es necesario linealizar el modelo en torno a un punto de equilibrio

donde, dadas las condiciones deseadas, mantengan estable el sistema. Esta linealizacion

busca aproximar el comportamiento del sistema lineal en torno de un punto de equilibrio

mediante la dinamica de un sistema lineal.

Esto se lleva a cabo mediante la expancion en series de Taylor de las funciones f(x, u) y

h(x, u) en torno del punto de equilibrio. Por lo que el sistema lineal (o linealizado) que

aproxima al sistema no lineal en torno de un punto de equilibrio (X,U,Y) es

˙x = Ax+Bu

y = Cx+Du

x = x−Xu = u− Uy = y − Y

A = ∂f∂x

∣∣∣X,U

B = ∂f∂u

∣∣∣X,U

C = ∂h∂x

∣∣∣X,U

D = ∂h∂u

∣∣∣X,U

La traslacion del sistema dados los puntos de equilibrio obtenidos anteriormente dan

como resultado un sistema lineal con

x = x =

[xp

xo

]y = y =

[yp

yo

]u =

u1 − U1

u2 − U1

u3 − U1

u4 − U1

A =

0 0 0 1 0 0 0 0 0 0 0 0

0 0 0 0 1 0 0 0 0 0 0 0

0 0 0 0 0 1 0 0 0 0 0 0

0 0 0 −kdm 0 0 0 4kcmU1

m 0 0 0 0

0 0 0 0 −kdm 0 −4kcmU1

m 0 0 0 0 0

0 0 0 0 0 −kdm 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 1 0 0

0 0 0 0 0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 0 0 0 0 1

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Page 16: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 11

B =

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0kcmm

kcmm

kcmm

kcmm

0 0 0 0

0 0 0 0

0 0 0 0LkcmIxx

0 −LkcmIxx

0

0 LkcmIyy

0 −LkcmIyy

bcmIzz

− bcmIzz

bcmIzz

− bcmIzz

C =

1 0 0 0 0 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0 0 0 0 0

0 0 1 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 1 0 0 0 0 0

0 0 0 0 0 0 0 1 0 0 0 0

0 0 0 0 0 0 0 0 1 0 0 0

1.6. Parametros del modelo

Antes que cualquier controlador pueda ser desarrollado es necesario que los parametros

fısicos del cuadricoptero seas medidos o amenos estimados. Estos parametros se dividen

en las siguientes categorıas: masa y dimensiones de la aeronave, dinamica de los rotores,

motores y aerodinamica de las helices.

Para un analisis completo de la dinamica de los motores en los cuadricoptero es necesario

obtener un modelo matematico en las ecuaciones de movimiento del motor. Sin embargo,

ya que no hay informacion disponible relacionadas con las constantes del motor ademas

que es complicado modelar todos los elementos del motor de DC, se utiliza una aproxi-

macion alternativa. Esta aproximacion consiste en obtener la relacion voltaje-velocidad

de cada motor donde la pendiente del modelo lineal esperado nos dara la constante√cm.

El experimento consiste en un motor y sus helices (estas estan acopladas al motor por

un juego de engranes pero ya que la entrada del sistema es el voltaje y las salidas son

velocidad angular, los engranes se ven como una caja negra) que interrumpen el haz de

luz de un optointerruptor y, con ayuda del osciloscopio, se mide la frecuencia de la senal

cuadrada generada. La frecuencia se divide entre el numero de helices y eso resulta en la

velocidad angular del motor. Como excitacion se tiene una senal PWM que es controlada

mediante un microcontrolador, se hace variar el ancho de pulso y se analiza la respuesta.

Teoricamente, la relacion voltaje-velocidad de un motor DC es lineal sin embargo existen

sobrepasos de corriente ademas de errores en la medicion. Los resultados obtenidos en

el experimento, se muestran en la Fig. 1.3.

Page 17: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 12

0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6100

150

200

250

300

350PWM vs Omega

PWM

Vel

ocid

ad a

ngul

ar

Student Version of MATLAB

Figura 1.3: Relacion voltaje-velocidad

Dado que la dinamica del cuadricoptero es altamente dependiente de sus momentos de

inercia, un experimento de pendulo es utilizado para determinar los momentos de inercia

de toda la aeronave. Ya que el centro de masa y los ejes principales (eje de coordenadas)

de la aeronave son conocidos, los momentos de inercia respecto a cada eje principal

son hallados directamente al desarrollar un pendulo torsional con la rotacion pasando a

traves de su centro de masa alineado a su eje de rotacion. Es por eso que el momento

de inercia puede ser calculado usando la ecuacion de una oscilacion armonica simple

(linealizado alrededor de su punto de equilibrio θ = 0).

I =mg(l + d)t2

(2π)2−m(l + d)2

donde t es el periodo de oscilacion en segundos. El montaje experimental es mostrado

en la Fig 1.4.

Figura 1.4: Experimento para medir los momentos de inercia

Page 18: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 13

Dado que el empuje es proporcional al cuadrado de la velocidad angular por una cons-

tante k, se realiza un experimento que estime este parametro. Para el desarrollo de esta

etapa se fija con un tensor inextensible en el suelo al rotor y se le aplica un voltaje, la

pendiente de la relacion voltaje-empuje despues se manipula para obtener la relacion

empuje-velocidad angular. La grafica obtenida durante el experimento se muestran en

la Fig. 1.5.

0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10.45

0.5

0.55

0.6

0.65

0.7

0.75

0.8

0.85

0.9PWM2 vs Empuje

PWM2

Em

puje

Student Version of MATLAB

Figura 1.5: Relacion voltaje-empuje

Para estimar el factor de friccion b es necesario describir el torque que actua sobre

la barra de cada motor en relacion con su velocidad angular. Para el experimento, el

cuadricoptero es colocado en una bascula y alimentado con una fuente de 5V . Para

estimar el coeficiente de friccion, se induce una corriente tal que el empuje sea igual

al peso de la aeronave. Al medir la potencia disipada, el torque inducido por la helice

puede calcularse con

τloss =Plossωhover

Figura 1.6: Desarrollo del experimento

Page 19: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 14

Para obtener el coeficiente, este es la proporcion de la friccion al cuadrado de la velocidad

angular. Finalmente, los resultados obtenidos durare los experimentos se muestran en la

siguiente tabla

Parametros Valores numericos

g 9.78 Nms2

m 730× 10−3 kg

L 115× 10−3 m

cm 573.832× 103 rad2

s2V 2

Ixx 960× 10−6 kgm2

rad

Iyy 1070× 10−6 kgm2

rad

Izz 2298× 10−6 kgm2

rad

k 2.376× 10−6 Ns2

rad2

kd 200× 10−3 kgs

b 63.141× 10−9 Ns2

rad2

1.7. Simplificaciones

Se vuelve bastante complicado trabajar con una matriz de 12× 12 y ya que el problema

principal de control es estabilizar al cuadricoptero, se simplifica el sistema a otro donde

la posicion es despreciable. Por lo tanto, la dinamica a controlar es

x =

x10 + x11 (sinx7 tanx8) + x12 (cosx7 tanx8)

x11 cosx8 − x12 sinx7sinx7cosx8

x11 + cosx7cosx8

x12LkcmIxx

(u1 − u3)− Iyy−IzzIxx

x11x12LkcmIyy

(u2 − u4)− Izz−IxxIyy

x10x12bcmIzz

(u1 − u2 + u3 − u4)− Ixx−IyyIzz

x10x11

Donde su modelo lineal dado por sus puntos de equilibrio dan como resultado el sistema

x =

0 0 0 1 0 0

0 0 0 0 1 0

0 0 0 0 0 1

0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

x+

0 0 0 0

0 0 0 0

0 0 0 0LkcmIxx

0 −LkcmIxx

0

0 LkcmIyy

0 −LkcmIyy

bcmIzz

− bcmIzz

bcmIzz

− bcmIzz

u

Page 20: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 15

y =

1 0 0 0 0 0

0 1 0 0 0 0

0 0 1 0 0 0

xTomando la orientacion y velocidad angular como variables de estado, como entrada el

cuadrado del voltaje sobre el actuador y como salida la orientacion del cuadricoptero.

x =[φ θ ψ ωx ωy ωz

]Ty =

[φ θ ψ

]Tu =

[V 21 V 2

2 V 23 V 2

4

]T

1.8. Analisis de estabilidad

Se tiene un sistema de multiples entradas con multiples salidas (MIMO por sus siglas

en ingles). Con el fin de analizar la estabilidad del sistema para sus diferentes salidas se

obtienen las funciones de trasferencia con sus respectivos polos

y1(t) =163.3

s2 + (1.526× 10−15)s− (15.99× 10−18)u1(t) p =

−3.999× 10−9

3.999× 10−9

y3(t) =15.77

s2 + (15.06× 10−15)s+ (50.02× 10−18)u1(t) p =

−j7.072× 10−9

j7.072× 10−9

y2(t) =146.5

s2 + (8.328× 10−15)s+ (20.98× 10−18)u2(t) p =

−j4.580× 10−9

j4.580× 10−9

y3(t) =−15.77

s2 + (15.06× 10−15)s+ (50.02× 10−18)u2(t) p =

−j7.072× 10−9

j7.072× 10−9

y1(t) =−163.3

s2 + (1.526× 10−15)s− (15.99× 10−18)u3(t) p =

−3.999× 10−9

3.999× 10−9

y3(t) =15.77

s2 + (15.06× 10−15)s+ (50.02× 10−18)u3(t) p =

−j7.072× 10−9

j7.072× 10−9

y2(t) =−146.5

s2 + (8.328× 10−15)s+ (20.98× 10−18)u4(t) p =

−j4.580× 10−9

j4.580× 10−9

Page 21: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 16

y3(t) =−15.77

s2 + (15.06× 10−15)s+ (50.02× 10−18)u4(t) p =

−j7.072× 10−9

j7.072× 10−9

De las funciones de transferencia se concluye que la salida y1(t) es inestable para toda

entrada. Por su parte, las salidas y2(t) y y3(t) son crıticamente estables; esto indica que

la salida se comportara oscilatoriamente o asintoticamente estable.

1.9. Simulaciones

Se simulan los estados del sistema tanto no lineal como el modelo linealizado para una

condicion inicial de 0 para los angulos de orientacion y 1[rad/s] para las velocidades

angulares. Se utiliza la funcion de Matlab ode45 para simular a los sistema por 10s y un

paso de 0.01.

0 1 2 3 4 5 6 7 8 9 100

5

10Roll

0 1 2 3 4 5 6 7 8 9 10−5

0

5

10Pitch

0 1 2 3 4 5 6 7 8 9 10−20

−10

0

10Yaw

NL

L

Student Version of MATLAB

Figura 1.7: Modelo lineal vs no lineal

Page 22: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Modelado en Variables de Estado 17

0 1 2 3 4 5 6 7 8 9 10−20

−10

0

10Omega

1

0 1 2 3 4 5 6 7 8 9 10−2

−1

0

1

2Omega

2

0 1 2 3 4 5 6 7 8 9 10−2

−1

0

1

2Omega

3

NL

L

Student Version of MATLAB

Figura 1.8: Modelo lineal vs no lineal

De las simulaciones se concluye que mientras se mantenga el analisis en torno a un punto

cercano al de equilibrio, la linealizacion es efectiva para el diseno e implementacion de

controladores. Fısicamente el cuadricoptero, si es que es autonomo, se mantendra en un

comportamiento erratico y oscilatorio para algunos estados. Se puede decir que se tiene

un sistema inestable, por lo que el controlador debera ser capaz de mantener en una

posicion al cuadricoptero dado su modelo lineal.

Page 23: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Capıtulo 2

Controlador y Observador

2.1. Introduccion

Se dice que un sistema lineal es controlable o completamente controlable si para cualquier

estado inicial x0 = x(0) y cualquier estado final x(tf ) existe un control u(t) definido en

tε[0, tf ] tal que lleva el sistema de x(0) a x(tf ) en un tiempo finito; en caso contrario, se

que el sistema es no controlable. Por su parte, un observador sera una estructura que,

operando en paralelo con el sistema fısico, estime, reconstruya u observe el valor de los

estados de un sistema empleando unicamente la informacion de la entrada y la salida.

La controlabilidad es la propiedad que indica si el comportamiento de un sistema puede

ser controlado por medio de sus entradas, mientras que la observabilidad es la propiedad

que indica si el comportamiento interno del sistema puede detectarse en sus salıdas.

Estos conceptos son esenciales para analizar la estructura interna de los sistemas lineales.

Tambien son necesarios para el estudio de controladores y filtros.

Se dice que las propiedades de observabilidad y controlabilidad son dos nociones duales,

puesto que sus propiedades son intercambiables para sistemas duales adjuntos. Esto per-

mite analizar la observabilidad con las mismas herramientas empleadas para determinar

la controlabilidad o viceversa.

Dado un sistema lineal controlable y observable controlado mediante una realimentacion

de estados observados, el diseno del controlador y el observador pueden realizarse de

forma independiente, y si ambos son asintoticamente estables en el sentido de Lyapunov,

el sistema controlado seguira siendo asintoticamente estable.

18

Page 24: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Controlador y Observador 19

2.2. Controlador

Sea el sistema controlable x = Ax + Bu el cual se desea controlar de un estado inicial

x0 a un estado final dado por un cierto punto de equilibrio deseado (X,U). El objetivo

sera lograr disenar un controlador por realimentacion de estados tal que se logre

lımt→∞

x(t) = X

Donde el sistema realimentado resultante es

x = Ax+B(−kx+ r) ⇒ x = (A−Bk)x+Br

Donde, para lograr el objetivo de control es necesario garantizar que los polos o valores

caracterısticos de (A−Bk) sean de parte real negativa, con lo cual se logra que el origen

sea asintoticamente estable en el sentido de Lyapunov.

Figura 2.1: Contol por realimentacion de estados

Donde d es una perturbacion en la entrada del sistema y si consideramos el problema de

control de regulacion (control que lleva a un estado a un punto de equilibrio) al punto de

equilibrio (X,U) y trasladamos el sistema a este punto, el cual si (A,B) es controlable

seguira siendo de esta forma. Ahora en el sistema trasladado sera lograr

lımt→∞

x(t) = 0 ⇒ lımt→∞

x(t) = X

Donde para lograr el objetivo de control en el sistema trasladado u = −kx(t). Con lo

que el sistema realimentado es

˙x = Ax+B(−kx(t)) ⇒ ˙x = (A−Bk)x

Page 25: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Controlador y Observador 20

El diseno por variables de estado permite definir en forma arbitraria la dinamica del

sistema realimentado. De esta forma, si se determina dicha matriz k que asigna los polos

de (A−Bk) de modo que x = 0 sea asintoticamente estable en el sentido de Lyapunov

tenemos que

u = u− U = −kx = −k(x−X)

u(t) = −kx(t) + kX + U

Donde kX + U sera la referencia para el controlador por realimentacion de estado.

2.2.1. Controlabilidad

Dado el sistema de dimension n con p entradas en la ecuacion de estados

x = Ax+Bu

donde A y B son, respectivamente, matrices reales constantes de (n×n) y (n×p) se dice

que el par (A,B) es controlable si la matriz de controlabilidad C | ε Rn×np es de rango

completo, es decir P (C) = n.

C =[B AB A2B · · · An−1B

]Para el cuadricoptero, la matriz de controlabilidad resulta de 6× 24 y parte de esta es

C =

0 0 0 0 · · · 0 0

0 0 0 0 · · · 0 0

0 0 0 0 · · · 0 0

163.3269 0 −163.3269 0 · · · 0 0

0 146.5363 0 −146.5363 · · · 0 0

15.7669 −15.7669 15.7669 −15.7669 · · · 0 0

El rango de la matrix C es igual al numero de estado por lo que se puede concluir que

el par (A,B) es controlable.

2.2.2. Control optimo

El objetivo principal de la teorıa de control optimo es determinar las senales de control

que causan a un proceso el satisfacer las restricciones fısicas que se tengan y asimismo

minimizar o maximizar segun sea el caso cierto criterio de desempeno deseado.

Page 26: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Controlador y Observador 21

En el caso donde la dinamica del sistema es descrita por un conjunto de ecuaciones

diferenciales y el costo esta descrito por una funcion cuadratica, se le conoce como

problema LQ. Uno de los principales resultados en la solucion de este problema dieron

como resultado el Regulador Cuadratico Lineal (LQR), un control por realimentacion

de estados cuyas ecuaciones se describen a continuacion.

El control LQR asume un sistema dinamico lineal

x = Ax+Bu

Este control tiene la forma u = −kx con k = R−1BTP , el cual estabiliza al sistema y

minimiza la medida de desempeno

V =

∫ ∞t

(xTQx+ uTRu) dτ

con Q = I3×3 y R = 1 en este caso, ya que solo se busca resolver el problema de control

de una manera optima, mas no se requiere que los estados o la energıa tenga mas peso

una que la otra. P debe satisfacer la ecuacion algebraica de Riccati

ATP + PA− PBR−1BTP +Q = 0

Dadas estas condiciones y dada la linealizacion del cuadricoptero sobre los puntos de

equilibrio, se obtienen los vectores de ganancia del controlador

k =

0.7071 0.0000 0.5000 0.7102 0.0000 0.5156

0.0000 0.7071 −0.5000 0.0000 0.7105 −0.5156

−0.7071 0.0000 0.5000 −0.7102 0.0000 0.5156

0.0000 −0.7071 −0.5000 0.0000 −0.7105 −0.5156

Con los valores caracterısticos en lazo cerrado A−Bk en

λ1 λ2 λ3 λ4 λ5 λ6

−1.000 −230.977 −207.231 −31.518 −1.000 −1.000

El control resultante tendra como referencia una entrada de equilibrio U la cual se

interpreta como la velocidad necesaria de los motores para generar un empuje igual al

peso del cuadricoptero

r(t) = kX + U =[0.8 0.8 0.8 0.8

]

Page 27: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Controlador y Observador 22

2.2.3. Estabilidad en el sentido de Lyapunov

El origen del sistema autonomo

x = (A−Bk)x xεRn×1 y AεRn×n

es asintoticamente estable si la ecuacion de Lyapunov

ATP + PA = −Q

tiene solucion unica P = P T εRn×n , P > 0 ∀ Q = QT > 0 , QεRn×n. Si dada Q > 0

y la solucion resulta en P > 0 el sistema sobre el origen es asintoticamente estable en el

sentido de Lyapunov.

Para el cuadricoptero, se propone Q = I6×6 cuya solucion de P dada la ecuacion de

Lyapunov esta dada por

P =

0.5043 0 0 −0.5000 0 0

0 0.5048 0.0000 0 −0.5000 0.0000

0 0.0000 0.5315 0 0.0000 −0.5000

−0.5000 0 0 0.5000 0 0

0 −0.5000 0.0000 0 0.5000 −0.0000

0 0.0000 −0.5000 0 −0.0000 0.5002

M11(P ) = 0.5043 M22(P ) = 0.2546 M33(P ) = 0.1353

M44(P ) = 580.79× 10−6 M55(P ) = 2.7759× 10−6 M66(P ) = 82.85× 10−9

Todos los valores caracterısticos de la matriz P son positivos, indicando que P es positiva

definida. Por lo tanto se puede concluir que (A−Bk) es estable en el sentido de Lyapunov.

2.3. Observador

Dado el sistema observable x = Ax+Bu, y = Cx el observador asintotico

˙x = Ax+Bu+ L(y − y)

y = Cx x(0) = x0

Donde L es una matriz de diseno. Si se analiza la dinamica del error de observacion

˙x = (A−LC)x, con x = x− x y se garantiza que los valores caracterısticos de (A−LC)

Page 28: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Controlador y Observador 23

sean parte real negativa, entonces

lımt→∞

x(t) = 0 ⇒ lımt→∞

x(t) = x(t)

2.3.1. Observabilidad

Dado un sistema

x = Ax+Bu y = Cx

se dice que el par (A,C) es observable si es posible reconstruir la condicion inicial x0

en un tiempo finito tf a partir del conomiento de la entrada u(t) y la salida y(t) en

el intervalo tε[0, tf ]. De otro modo se dice que el par (A,C) es no (completamente)

observable.

Dado el principio de dualidad, si el par (AT , CT ) es controlable, entonces el par (A,C)

es observable, se analiza la observabilidad del cuadricoptero al obtener la matriz de

observabilidad O = CT(AT ,CT )

O =

1 0 0 0 0 0

0 1 0 0 0 0

0 0 1 0 0 0

0 0 0 1 0 0...

......

......

...

0 0 0 0 0 0

0 0 0 0 0 0

El rango de la matriz de observabilidad es igual al numero de estados, indicando que no

hay dependencia lineal entre las columnas de la matriz. Por lo tanto, el par (A,C) es

observable.

2.3.2. Observador de Luenberger

El problema de diseno consiste en los valores caracterısticos de la matriz (A− LC), los

cuales dictan la dinamica del error de observacion. En vista de que los valores carac-

terısticos de una matriz no se alteran al transponerla, el problema de diseno de la matriz

L es el mismo que en el caso de diseno de controladores. Por lo tanto, si se disena para

la matriz (AT − CTLT ), el problema es numericamente igual al diseno de la matriz k.

Page 29: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Controlador y Observador 24

De modo que los polos deseados para la matriz (A − LC) seran 5 veces mas rapidos a

los de la matriz (A−Bk) con el fin de asegurar un correcto funcionamiento del sistema.

L =

0 0 0

0 2200 0

0 0 2200

0 0 0

0 1196600 0

0 0 800

Se tiene un termino demasiado grande, provocando que la velocidad angular del segundo

motor ω2 opere en condiciones irreales dada la gran diferencia entre las constantes de

tiempo. Se modifica este termino y se tiene, por lo tanto

L =

0 0 0

0 2200 0

0 0 2200

0 0 0

0 11966 0

0 0 800

Con los valores caracterısticos en el observador asintotico A− LC

λ1 λ2 λ3 λ4 λ5 λ6

−5.000 −5.000 −157.600 −5.000 −5.500 −2185.6

2.4. Control por estados observados

Se considera el sistema controlable y observable el cual sera controlado mediante el

control por realimentacion de estados observados (o control por realimentacion de la

salida)

u(t) = −kx+ r(t) ˙x(t) = (A− LC)x(t) + bu(t) + Ly(t)

El controlador tiene como funcion de transferencia

C(s) = k[sI −A+Bk + LC]−1L

Dado que el controlador y el observador pueden realizarse de forma independiente gracias

al principio de separacion, las matrices k y L previamente desarrolladas seran utilizadas

para resolver el problema de control sobre el cuadricoptero.

Page 30: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Controlador y Observador 25

Figura 2.2: Contol por realimentacion de estados observados

2.5. Simulaciones

Inicialmente, se simula el control por estados realimentados (Fig. 2.3) sin el observador

para asegurar que se tenga un comportamiento deseado. Se dice que la planta tiene una

condicion inicial en la posicion de aproximadamente π radianes. Las salidas de interes

son los angulos Roll, Pitch y Y aw, la velocidad angular (Fig. 2.4) y la senal de control

(Fig. 2.5). Esta ultima no puede tomar valores mayores a uno, ya que se trata de una

senal PWM donde unicamente esta definido un cliclo de trabajo de 0 % a 100 %.

Figura 2.3: Control por realimentacion de estados

Page 31: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Controlador y Observador 26

0 1 2 3 4 5 6 7 8 9 100

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

Time offset: 0 Student Version of MATLAB

0 1 2 3 4 5 6 7 8 9 10−3

2.5

−2

1.5

−1

0.5

0

−3

2.5

−2

1.5

−1

0.5

0

−3

2.5

−2

1.5

−1

0.5

0

Time offset: 0 Student Version of MATLAB

Figura 2.4: Angulos (izquierda) y velocidades angulares

0 1 2 3 4 5 6 7 8 9 10.75

0.8

.85

0.9

.95

1

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

Time offset: 0 Student Version of MATLABFigura 2.5: Senal de control

Page 32: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Controlador y Observador 27

Una vez que se comprueba que el sistema es estable y que se logra el objetivo de control,

se simula el control realimentado por estados observados (Fig. 2.6). Las condiciones

iniciales del observador se definen como nulas. Las salidas de interes son iguales a la

simulacion anterior, sin embargo en este caso se compara el estado observado con el

estado del sistema (Fig. 2.7).

Figura 2.6: Control por realimentacion de estados observados

0 1 2 3 4 5 6 7 8 9 100

0.5

1

1.5

2

2.5

3

3.5

0

0.5

1

1.5

2

2.5

3

3.5

0.5

0

0.5

1

1.5

2

2.5

3

Time offset: 0 Student Version of MATLAB

0 1 2 3 4 5 6 7 8 9 100.1

0

0.1

0.2

0.3

0.4

0.5

0.6

−15

−10

−5

0

5

10

15

20

−8

−7

−6

−5

−4

−3

−2

−1

0

1

2

Time offset: 0 Student Version of MATLAB

Figura 2.7: Angulos (izquierda) y velocidades angulares con observador

Page 33: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Controlador y Observador 28

0 1 2 3 4 5 6 7 8 9 100.5

0.6

0.7

0.8

0.9

1

0.7

.75

0.8

.85

0.9

.95

1

0

0.2

0.4

0.6

0.8

1

0.4

0.5

0.6

0.7

0.8

0.9

Time offset: 0 Student Version of MATLABFigura 2.8: Senal de control con observador

Las simulaciones demuestran que es posible alcanzar el objetivo de control en el cua-

dricoptero. Los angulos Roll, Pitch, Y aw convergeran a su punto de equilibrio, de igual

forma tanto la dinamica del error como la del error en la estimacion convergen a cero. La

salida tiene un comportamiento amortiguado y la senal de control es relativamente rapi-

da pero al tratarse de motores de corriente directa y ya que no se invierte la polaridad

se puede decir que es ’soportable’ por el actuador.

Page 34: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Capıtulo 3

Implementacion

3.1. Introduccion

Actualmente, gracias al avance tecnologico en la electronica digital es posible construir

sofisticados sistemas a un precio razonablemente bajo, ademas de ser confiables y fle-

xibles. Uno de estos grandes avance son los microcontroladores. Un microcontolador es

un circuito integrado que incluye en su interior tres unidades funcionales de una compu-

tadora: CPU, Memoria y Unidades de E/S, es decir, se trata de un computador completo

en un solo circuito integrado.

La arquitectura tradicional de los microcontroladores se basa en el esquema conocido

como Harvard, en el que el CPU esta conectado a dos memorias por intermedio de dos

buses separados. Una de las memorias contiene solamente las instrucciones del programa,

y es llamada Memoria de Programa. La otra memoria solo almacena los datos y es

llamada Memoria de Datos. La principal ventaja en esta arquitectura es que el tiempo

de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor

velocidad de operacion.

Dado que la gran mayorıa de los sistemas de control se implementan en forma digital, es

necesario en alguna etapa del diseno discretizar; bien el controlador en tiempo continuo

disenado en base a un modelo en tiempo continuo de la planta, o bien la planta en tiempo

continuo misma a fin de realizar el diseno del controlador discreto en forma directa.

Un convertidor analogico-digital convierte la senal medida en tiempo continuo x(t) en

una secuencia de valores discretos x[k], aptos para ser procesados en un computador

digital. Mientras que un digital-analogico convierte la secuencia discreta x[k] en una senal

analogica x(t) que puede ser interpretada por la mayorıa de los dispositivos electronicos.

29

Page 35: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 30

3.2. Sistema discreto

Se considera ahora un sistema controlado mediante un esquema de control digital

Figura 3.1: Sistema digital

En este caso el analisis del sistema se debe efectuar a partir de las senales muestreadas,

que resultan en senales de tiempo discreto. Se considera a la senal x(t), tεR la senal

muestreada x[k] se define mediante

x[k] = x(t) t = kTs

Donde Ts es el tiempo de muestreo. Por otro lado, al no existir el concepto de derivada

en una senal en tiempo discreto, la representacion o modelo de un sistema se realiza

mediante ecuaciones en diferencias. En el caso de un sistema representado mediante

variables de estado, estas toman la forma

x[k + 1] = fd(x[k], u[k]) y[k] = hd(x[k], u[k])

Si las ecuaciones son lineales (o linealizadas)

x[k + 1] = Adx[k] +Bdu[k] y[k] = Cdx[k] +Ddu[k]

donde para su solucion es necesario conocer la condicion inicial x[0] y la entrada u[k].

3.2.1. Discretizacion

Para obtener la representacion en tiempo discreto de un sistema continuo se utiliza la

discretizacion exacta con reten de orden cero (ZOH por sus siglas en ingles) a la salida

del DAC el cual retiene y mantiene constante una senal en tiempo discreto entre los

tiempos de muestreo. Para estas condiciones, se evalua el estado del sistema continuo en

Page 36: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 31

el instante de muestreo t = (k + 1)Ts

x[k + 1] , x((k + 1)Ts) = eA(k+1)Tsx(0) +

∫ (k+1)T

0eA((k+1)Ts−τ)Bu(τ) dτ =

= eATsx[k] +

(∫ Ts

0eAσ dσ

)Bu[k]

donde σ = (k + 1)T − τ . Ası se llega al modelo discreto lineal donde

Ad , eATs Bd ,∫ Ts0 eAτ dτB

Cd , C Dd , D

Para obtener el model discreto del cuadricoptero se elabora un experimento para calcular

el tiempo de muestreo del microcontrolador. Solo se hace uso de la placa y el codigo que

se muestra a continuacion

void setup(){

Serial.begin(9600);

muestreo();

}

void loop(){

}

void muestreo(){

unsigned long time1=0;

unsigned long time=0;

for(byte i =0; i<4; i++){

time1=micros();

int A=analogRead(A0);

time=micros()-time1;

Serial.print(" Muestra: ");

Serial.print(i+1);

Serial.print(" Tiempo: ");

Serial.println(time);

}

}

En el monitor serial se muestra el tiempo que se tarda el microcontrolador en ejecutar el

conjunto de instrucciones. Se tiene una media de 112µs lo que equivale a una frecuencia

de muestreo de 8.928Hz, un dato aceptado ya que se utiliza el Arduino UNO. Este

Page 37: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 32

intervalo de tiempo es utilizado para discretizar al sistema obteniendo, finalmente el

sistema discreto linealizado sobre el punto de equilibrio

Ad =

1.0000 0 0 0.0001 0 0

0 1.0000 0 0 0.0001 0

0 0 1.0000 0 0 0.0001

0 0 0 1.0000 0 0

0 0 0 0 1.0000 0

0 0 0 0 0 1.0000

Bd =

0.0000 0 0.0000 0

0 0.0000 0 0.0000

0.0000 0.0000 0.0000 0.0000

0.0183 0 −0.0183 0

0 0.0164 0 −0.0164

0.0018 −0.0018 0.0018 −0.0018

Cd =

1 0 0 0 0 0

0 1 0 0 0 0

0 0 1 0 0 0

3.2.2. Controlador

El analisis adecuado es el mismo que se emplea en tiempo continuo sobre las matrices de

controlabilidad. Por lo tanto, el problema de asignacion de polos de la matriz (Ad−Bdkd)es el mismo que en el caso continuo. La unica diferencia radica en la ubicacion de los

polos de diseno. Para disenar los polos en tiempo discreto conviene primero establecer

los polos en tiempo continuo deseados de la matriz (A−Bk) y despues disenar kd para

asignar los polos de (Ad −Bdkd).

Dadas estas observaciones sobre el diseno de la ganancia, se tienen los vectores

kd =

0.6980 0.0000 0.4991 0.7011 0.0000 0.5147

0.0000 0.6989 −0.4991 0.0000 0.7023 −0.5147

−0.6980 −0.0000 0.4991 −0.7011 0.0000 0.5147

−0.0000 −0.6989 −0.4991 −0.0000 −0.7023 −0.5147

Page 38: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 33

Con los valores caracterısticos en lazo cerrado Ad −Bdkd en

λ1 λ2 λ3 λ4 λ5 λ6

0.9745 0.9771 0.9965 0.9999 0.9999 0.9999

Un sistema discreto, lineal, invariante en el tiempo es asintoticamente estable si todos

los valores caracterısticos de la matriz en lazo cerrado estan dentro de la unidad. Por

lo que se confirma que el sistema en tiempo continuo y discreto se comportaran de la

misma manera.

3.2.3. Observador

Si el sistema es observable y se disena los polos de (Ad−LdCd) de modo que se encuen-

tren dentro del cırculo unitario entonces se asegura que el error de observacion tiende

asintoticamente a cero. La matriz de ganancias del observador en tiempo discreto resulta

Ld =

0.2177 0 0

0 0.0181 0

0 0 0.0011

1.1884 0 0

0 0.0875 0

0 0 0.0028

Con los valores caracterısticos en el observador asintotico Ad − LdCd

λ1 λ2 λ3 λ4 λ5 λ6

0.9994 0.9994 0.7829 0.9825 0.9994 0.9994

3.3. Simulaciones

Se simula el sistema en tiempo discreto (Fig. 3.2) con el fin de analizar su respuesta y

verificar que las condiciones de estabilidad y observabilidad se cumplan. De igual forma

que en el sistema continuo, las salidas de interes son los angulos Roll, Pitch y Y aw,

la velocidad angular (Fig. 3.3) y la senal de control (Fig. 3.4). El mismo bloque de

saturacion es colocado en cascada con la senal de error para simular el ciclo de trabajo

del actuador. Ademas, de igual manera, las condiciones iniciales son π radianes en los

angulos.

Page 39: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 34

Figura 3.2: Control discreto por realimentacion de estados

0 1 2 3 4 5 6 70

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

Time offset: 0 Student Version of MATLAB

0 1 2 3 4 5 6 7−3

2.5

−2

1.5

−1

0.5

0

−3

2.5

−2

1.5

−1

0.5

0

−3

2.5

−2

1.5

−1

0.5

0

Time offset: 0 Student Version of MATLAB

Figura 3.3: Angulos (izquierda) y velocidades angulares

Una vez que se comprueba que el sistema es estable y que se logra el objetivo de control,

se simula el control realimentado por estados observados (Fig. 3.5). Las condiciones

iniciales del observador se definen como nulas. Las salidas de interes son iguales a la

simulacion anterior, sin embargo en este caso se compara el estado observado con el

estado del sistema (Fig. 3.6).

De las simulaciones se concluye que el tiempo de muestreo del microcontrolador es lo

suficientemente rapido para emular un sistema continuo. Solo existen unas pequenas

diferencias en las senales, sin embargo no son lo suficientemente relevantes para llevar

a cabo alguna otra accion de control. El controlador y observador final a implementar

sobre el microcontrolador sera el descrito en este capıtulo.

Page 40: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 35

0 1 2 3 4 5 6 7.75

0.8

.85

0.9

.95

1

0

0.2

0.4

0.6

0.8

1

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

Time offset: 0 Student Version of MATLABFigura 3.4: Senal de control discreto

Figura 3.5: Control discreto por realimentacion de estados observados

Page 41: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 36

0 1 2 3 4 5 6 70.5

0

0.5

1

1.5

2

2.5

3

0.5

0

0.5

1

1.5

2

2.5

3

0.5

0

0.5

1

1.5

2

2.5

3

3.5

Time offset: 0 Student Version of MATLAB

0 1 2 3 4 5 6 7−8

−6

−4

−2

0

2

4

−10

−5

0

5

10

15

−15

−10

−5

0

5

10

15

20

Time offset: 0 Student Version of MATLAB

Figura 3.6: Angulos (izquierda) y velocidades angulares con observador discreto

0 1 2 3 4 5 6 70.4

0.5

0.6

0.7

0.8

0.9

1

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

0

0.2

0.4

0.6

0.8

1

Time offset: 0 Student Version of MATLABFigura 3.7: Senal de control con observador discreto

Page 42: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 37

3.4. Puesta a punto

Se implementa el controlador por realimentacion de estados observados en el microcon-

trolador Arduino UNO. El algoritmo que seguira el microcontrolador es

1. Configurar el microcontrolador y las constantes (Ad, Bd, Cc, kd, Ld)

2. Inicializar x[k] = 0

3. Escribir a puerto de salida x[k]

4. Leer el ADC r[k], y[k]

5. Calcular u[k] = −kdx[k] + r[k]

6. Calcular x[k + 1] = (Ad − LdCd)x[k] +Bdu[k] + Ldy[k]

7. Esperar al siguiente Ts

8. Reasignar x[k]← x[k + 1]

9. Regresar al paso 3

Por otro lado, los dispositivos electronicos empleados para lograr estabilizar el cua-

dricoptero son

Frame para cuadricoptero Syma X5C

Microcontrolador ATMega328.

Giroscopio-Acelerometro de 3 ejes MPU6050.

Transistores de potencia NPN modelo BD135.

Resistencias de distintos valores.

Tableta para prototipos.

Las conexiones electricas al microcontrolador y a los distintos dispositivos se muestran

a continuacion en la Fig. 3.8. Se utilizan dos fuentes de poder, una para polarizar el mi-

crocontrolador que bien podrıa ser la computadora y otra mas para la etapa de potencia

en los motores.

Page 43: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 38

)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

C))x)x)DD)

C)))

)C))))

)xF)))

00))4

00)))

00))6

00)))

004)8

00)))

006)

00)))

DD)2)8

DD)))

0)) )

0)) )

0)) 4

0)) )

0)4 6

0)) ))

0)6 ))

0)) ))

0)) ))

0)) )4

0)) ))

0)) )6

0)4 ))

0)) )8

0)6 )

))

x)

x)

x)

x4

)x8)))))8

80)))))

0))))

8) 8)

8) 84

Figura 3.8: Diagrama de conexiones

Finalmente, el codigo dentro del ambiente Arduino IDE desarrollado para lograr el

objetivo de control es el siguiente

#include <Wire.h>

//Direccion I2C de la IMU

#define MPU 0x68

//Ratios de conversion

#define A_R 16384.0

#define G_R 131.0

//Conversion de radianes a grados 180/PI

#define RAD_A_DEG = 57.295779

//MPU-6050 da los valores en enteros de 16 bits

//Valores sin refinar

int16_t AcX, AcY, AcZ, GyX, GyY, GyZ;

float Acc[2];

float Gy[2];

float Angle[4];

float y[4],x[]={0,0,0,0,0,0,0},u[5],xs[7],r=0.8;

int out[]={6,9,10,11};

Page 44: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 39

void setup() {

Wire.begin();

Wire.beginTransmission(MPU);

Wire.write(0x6B);

Wire.write(0);

Wire.endTransmission(true);

Serial.begin(9600);

pinMode(out[0], OUTPUT);

pinMode(out[1], OUTPUT);

pinMode(out[2], OUTPUT);

pinMode(out[3], OUTPUT);

}

void loop() {

//Leer los valores del Acelerometro de la IMU

Wire.beginTransmission(MPU);

Wire.write(0x3B); //Pedir el registro 0x3B - corresponde al AcX

Wire.endTransmission(false);

Wire.requestFrom(MPU,6,true); //A partir del 0x3B, se piden 6 registros

AcX=Wire.read()<<8|Wire.read(); //Cada valor ocupa 2 registros

AcY=Wire.read()<<8|Wire.read();

AcZ=Wire.read()<<8|Wire.read();

//Se calculan los angulos Y, X respectivamente.

Acc[1] = atan(-1*(AcX/A_R)/sqrt(pow((AcY/A_R),2)+pow((AcZ/A_R),2)))*RAD_TO_DEG;

Acc[0] = atan((AcY/A_R)/sqrt(pow((AcX/A_R),2)+pow((AcZ/A_R),2)))*RAD_TO_DEG;

//Leer los valores del Giroscopio

Wire.beginTransmission(MPU);

Wire.write(0x43);

Wire.endTransmission(false);

Wire.requestFrom(MPU,4,true);

GyX=Wire.read()<<8|Wire.read();

GyY=Wire.read()<<8|Wire.read();

//Calculo del angulo del Giroscopio

Gy[0] = GyX/G_R;

Gy[1] = GyY/G_R;

//Aplicar el Filtro Complementario

Angle[0] = 0.98 *(Angle[0]+Gy[0]*0.010) + 0.02*Acc[0];

Page 45: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 40

Angle[2] =Angle[0]-4;

Angle[1] = 0.98 *(Angle[1]+Gy[1]*0.010) + 0.02*Acc[1];

Angle[3] =Angle[1]+3.38;

y[1]=Angle[2];

y[2]=Angle[3];

y[3]=0;

u[1]=-(0.698*x[1]+0.4991*x[3]+0.7011*x[4]+0.5147*x[6])+r;

u[2]=-(0.6989*x[2]-0.4991*x[3]+0.7023*x[5]-0.5147*x[6])+r;

u[3]=-(-0.698*x[1]+0.4991*x[3]-0.7011*x[4]+0.5147*x[6])+r;

u[4]=-(-0.6989*x[2]-0.4991*x[3]-0.7023*x[5]-0.5147*x[6])+r;

//Se~nal de control a los actuadores

analogWrite(out[0],255*u[1]);

analogWrite(out[1],255*u[2]);

analogWrite(out[2],255*u[3]);

analogWrite(out[3],255*u[4]);

xs[1]=0.7823*x[1]+0.0001*x[4]+0.2177*y[1];

xs[2]=0.9819*x[2]+0.0001*x[5]+0.0181*y[2];

xs[3]=0.9989*x[3]+0.0001*x[6]+0.0011*y[3];

xs[4]=-1.1884*x[1]+1*x[4]+0.0183*u[1]-0.0183*u[3]+1.1884*y[1];

xs[5]=-0.0875*x[2]+1*x[5]+0.0164*u[2]-0.0164*u[4]+0.0875*y[2];

xs[6]=-0.0028*x[3]+1*x[6]+0.0018*u[1]-0.0018*u[2]+0.0018*u[3]

-0.0018*u[4]+0.0028*y[3];

x[1]=xs[1];

x[2]=xs[2];

x[3]=xs[3];

x[4]=xs[4];

x[5]=xs[5];

x[6]=xs[6];

}

3.5. Conlusiones

La implementacion del algoritmo de control es relativamente sencillo de programar,

sin embargo se tiene una considerable diferencia entre las simulaciones y los resultados

obtenidos. Estas diferencias se le atanen principalmente a la estimacion de parametros

en el cuadricoptero, se cree que no son lo suficientemente cercanas a la realidad por lo

que el observador tiene problemas para lidiar con este error. Ademas, otro problema es

el modelado ideal de los motores, la constante que relaciona al voltaje con la velocidad

Page 46: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Implementacion 41

angular es diferente para cada motor, en otras palabras las helices del cuadricoptero

giran a velocidades diferentes aun aplicando el mismo voltaje en los cuatro motores.

El desarrollo del proyecto resulto bastante util para comprender en mayor manera el

modelado y control por variables de estado. Se analizan y repasan todos los temas vistos

en el curso, por lo que se tiene un mejor entendimiento de la teorıa de variables de estado.

Ademas, se nota la gran diferencia entre las simulaciones y la teorıa y la respuesta del

sistema fısico.

FELIX TEJEDA Fernando

TORRES RODRIGUEZ Ivan

Page 47: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Apendice A

Codigo en Matlab

clc;

clear all;

syms x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11 x12;

syms u1 u2 u3 u4;

syms kd m k cm L b Ix Iy Iz g;

%Sistema resultante

eq1=’(L*k*cm)/Ix*(u1-u3)=0’;

eq2=’(L*k*cm)/Iy*(u2-u4)=0’;

eq3=’(b*cm)/Iz*(u1-u2+u3-u4)=0’;

%Punto de equilibrio

[U2 U3 U4]=solve(eq1,eq2,eq3,u2,u3,u4);

%Funciones

f4=-kd/m*x4+k*cm/m*(sin(x9)*sin(x7)+cos(x9)*cos(x7)*sin(x8))*(u1+u2+u3+u4);

f5=-kd/m*x5+k*cm/m*(cos(x7)*sin(x9)*sin(x8)-cos(x9)*sin(x7))*(u1+u2+u3+u4);

f6=-kd/m*x6-g+k*cm/m*(cos(x8)*cos(x7))*(u1+u2+u3+u4);

%Orientacion

f7=x10+x11*sin(x7)*tan(x8)+x12*cos(x7)*tan(x8);

f8=x11*cos(x8)-x12*sin(x7);

f9=sin(x7)/cos(x8)*x11+cos(x7)/cos(x8)*x12;

f10=L*k*cm/Ix*(u1-u3)-(Iy-Iz)/Ix*x11*x12;

f11=L*k*cm/Iy*(u2-u4)-(Iz-Ix)/Iy*x10*x12;

f12=b*cm/Iz*(u1-u2+u3-u4)-(Ix-Iy)/Iz*x10*x11;

a1=diff(f7,x7,1);

42

Page 48: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Appendix A. Codigo en Matlab 43

a2=diff(f7,x8,1);

a3=diff(f7,x9,1);

a4=diff(f7,x10,1);

a5=diff(f7,x11,1);

a6=diff(f7,x12,1);

display(’a1’)

pretty(a1)

display(’a2’)

pretty(a2)

display(’a3’)

pretty(a3)

display(’a4’)

pretty(a4)

display(’a5’)

pretty(a5)

display(’a6’)

pretty(a6)

clc;

clear all;

m=0.73; l=0.115; cm=573832;

Ix=960e-6; Iy=1070e-6; Iz=2298e-6;

k=2.376e-6; kd=200e-3; b=63.141e-9;

U=0.85;

t=0:0.01:10;

ci=[0 0 0 1 1 1];

%No lineal

f=@(t,x)[x(4)+x(5)*sin(x(1))*tan(x(2))+x(6)*cos(x(1))*tan(x(2));...

x(5)*cos(x(2))-x(6)*sin(x(1));...

sin(x(1))/cos(x(2))*x(5)+cos(x(1))/cos(x(2))*x(6);...

-(Iy-Iz)/Ix*x(5)*x(6);...

-(Iz-Ix)/Iy*x(4)*x(6);...

-(Ix-Iy)/Iz*x(4)*x(5)];

[t,x]=ode45(f,t,ci);

%Lineal

f=@(t,xl)[xl(4);xl(5);xl(6);0;0;0];

Page 49: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Appendix A. Codigo en Matlab 44

[t,xl]=ode45(f,t,ci);

figure

subplot(3,1,1)

plot(t,x(:,1),’b-’)

title(’Roll’);

hold on

plot(t,xl(:,1),’k--’)

subplot(3,1,2)

plot(t,x(:,2),’b-’)

title(’Pitch’);

hold on

plot(t,xl(:,2),’k--’)

subplot(3,1,3)

plot(t,x(:,3),’b-’)

title(’Yaw’);

hold on

plot(t,xl(:,1),’k--’)

legend(’NL’,’L’)

figure

subplot(3,1,1)

plot(t,x(:,3),’b-’)

title(’Omega_1’);

hold on

plot(t,xl(:,3),’k--’)

subplot(3,1,2)

plot(t,x(:,4),’b-’)

title(’Omega_2’);

hold on

plot(t,xl(:,4),’k--’)

subplot(3,1,3)

plot(t,x(:,5),’b-’)

title(’Omega_3’);

hold on

plot(t,xl(:,5),’k--’)

legend(’NL’,’L’)

%Matrices

A=[0 0 0 1 0 0;...

0 0 0 0 1 0;...

0 0 0 0 0 1;...

Page 50: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Appendix A. Codigo en Matlab 45

0 0 0 0 0 0;...

0 0 0 0 0 0;...

0 0 0 0 0 0];

B=[0 0 0 0;...

0 0 0 0;...

0 0 0 0;...

l*k*cm/Ix 0 -l*k*cm/Ix 0;...

0 l*k*cm/Iy 0 -l*k*cm/Iy;...

b*cm/Iz -b*cm/Iz b*cm/Iz -b*cm/Iz];

C=[eye(3) zeros(3)];

D=[zeros(3) zeros(3,1);...

zeros(3) zeros(3,1)];

%Funciones de tranferencia

s=tf(’s’);

G=C*inv(s*eye(6)-A)*B;

roots([1 8.328e-15 2.098e-17]);

roots([1 1.506e-14 5.002e-17]);

%Controlador

Ctrl=ctrb(A,B);

RangoCtrl=rank(Ctrl);

Q=eye(6);

R=eye(4);

[k,P,E]=lqr(A,B,Q,R);

%Estabilidad

P=lyap((A-B*k),eye(6));

det(P(1:2,1:2));

det(P(1:3,1:3));

det(P(1:4,1:4));

det(P(1:5,1:5));

det(P(1:6,1:6));

%Observador

Page 51: Universidad Nacional Autonoma de M exico Facultad de Ingenier … · 2018-08-29 · UNIVERSIDAD NACIONAL AUTONOMA DE M EXICO Resumen Facultad de Ingenier a Divisi on de Ingenier a

Appendix A. Codigo en Matlab 46

Obs=ctrb(A’,C’)’;

RangoObs=rank(Obs);

L=place(A’,C’,5*E)’;

L(5,2)=L(5,2)/100;

eig(A-L*C);

%Discreto

Ts=112e-6;

[kd,Sd,Ed] = lqrd(A,B,Q,R,Ts);

[Ad,Bd] = c2d(A,B,Ts);

Ld=place(Ad’,C’,exp(Ts*eig(A-L*C)))’

eig(Ad-Ld*C);

exp(Ts*eig(A-L*C));