1. Cinemática de drones
Sistemas de referencia
-
Sistema tierra (W) ENU:
o Fijo a tierra
-
Sistema Cuerpo (B)
o Sistema de referencia del dron
o X suele ser hacia a donde apunta el morro
o Regla de la mano derecha para saber x y z
-
NED (North- East- Down)
o Usado en aeronáutica (nosotros no lo usaremos)
Orientación de la aeronave – Me he perdido un
Para saber la orientación de la nave (Sistema local B) respecto
al sistema global W.
Se utilizan los ángulos de Euler
Orden: X: Pitch(θ) → Y: Roll(Ο) → Z: Yaw(ψ)
Matriz de orientación
Esta matriz
sirve para
saber la
orientación
respecto del
sistema global
Dw = R·db
Rotaciones
Para conocer las velocidades en cada eje R·vector_velocidad
Proyección de la fuerza de empuje es siempre vertical porque es generada por
las hélices [0 0 Ft]
Ejemplo 1: Cuadricóptero m =1 kg, Empuje total rotores T=m·g = 9.8 (N) apunta
arriba, Φ=0°, θ =10°, ψ=0°, una velocidad de Vx=3 (m/s) en {B}
Ejercicio2: Cuadricóptero m =1 kg, Empuje total rotores T=m·g = 9.8 (N)
(apunta arriba), Φ=0°, θ =10°, ψ=90°, una velocidad de Vx=3 (m/s) en {B}
Modelo cinemático de rotación
Descripción matemática de cómo cambia la orientación del dron en el espacio,
centrándose exclusivamente en la geometría del movimiento sin tener en
cuenta las fuerzas o los motores que lo producen.
Formas de medir la rotación:
ο·
Velocidades angulares
o En el sistema cuerpo (B)
π
ο§ ωπ = [ωπ₯ , ωπ¦ , ωπ§ ]
ο§ Medida por la IMU (sensor del dron)
ο§ Es medido respecto a los ejes del dron
o Sistema tierra (W)
π
ο§ ωπ€ = [ΟΜ, θΜ, ψΜ]
ο§
ο§
Es la derivada de los ángulos de Euler (Alabeo, Cabeceo y
Guiñada)
Es la orientación "real" respecto al mundo (dron visto
desde el suelo)
Para convertir las lecturas del sensor interno en cambios de orientación reales
para el observador externo se utiliza la matriz de transformación E
ωπ = π · ωπ€
ππ€ = πΈ · ππ
De manera explícita:
ΟΜ = ωπ₯ + ωπ¦ sin Ο tan θ + ωπ§ cos Ο tan π
θΜ = ωπ¦ cos Ο − ωπ§ sin π
ψΜ =
1
(ω sin Ο + ωπ§ cos Ο)
cos θ π¦
Aquí aparece el término π‘θ = tan(θ)Fíjate que
si el dron se inclina 90º, la tangente tiende a
infinito.
Esto es lo que se conoce como Gimbal Lock o
bloqueo de cardán, una limitación matemática
de usar ángulos de Euler
Ejemplo3: Rotación pura de cabeceo (Pitch).
ο·
ο·
Ángulos actuales: π = 0°, θ = 10°, ψ = 0°.
Queremos: una variación de pitch de 20°/s = 0.349 rad/s, sin alabeo ni
guiñada
Ejemplo 4: Rotación de guiñada
ο·
ο·
Ángulos actuales: π = 0°, θ = 10°, ψ = 0°.
Queremos: una variación de pitch de 20°/s = 0.349 rad/s, sin alabeo ni
guiñada
2. Modelo dinámico
La cinemática describe como se mueve el dron geométricamente
La dinámica explica por qué se mueve (Fuerzas y momentos aplicados)
ο·
Dinámica de traslación
o El movimiento se rige por la segunda ley de Newton (F=m·a),
pero escrita para el sistema inercial
o
ο§
Ft (Empuje total): Suma de los 4 motores (f1+f2+f3+f4)
ο· Esta fuerza siempre apunta hacia arriba
ο§ R (Matriz de rotación): Proyecta el empuje hacia donde
esta inclinado el dron
ο§ Si el dron está inclinado, parte del empuje se usa para
avanzar horizontalmente y otra parte para luchar contra la
gravedad.
En vuelo estacionario
o Fórmula desglosada:
(Hovering), los ángulos
ο§ Eje X: ππ₯Μ = πΉπ‘ ⋅ (cos Ο sin θ cos ψ + sin Ο sin ψ)
son 0 y el empuje Ft debe
ο§ Eje Y: ππ¦Μ = πΉπ‘ ⋅ (cos Ο sin θ sin ψ − sin Ο cos ψ) ser exactamente igual al
ο§ Eje Z: ππ§Μ = πΉπ‘ ⋅ (cos Ο cos θ) − ππ
peso mg para que el dron
no suba ni baje (π§Μ = 0)
Ejemplo 5: Ascenso vertical desde un Hover.
ο·
ο·
Dron de masa m =1kg, Empuje total Ft= 13 (N) (> al peso del dron),
Calcular la aceleración.
Para π = 0°, θ =0°y ψ=0°, la matriz R = I (Identidad)
Ejemplo 6: Desplazamiento horizontal.
ο·
ο·
Dron de masa m =1kg, Empuje total Ft= 10 (N) (> al peso del dron),
Calcular la aceleración.
Para π = 0°, θ =10°y ψ=45°, la matriz R = I (Identidad)
Dinámica rotacional
Explicación de como el dron consigue girar sobre sus propios ejes (Orientación)
ο·
Dron como solido rígido: Considerando el cuadricóptero un cuerpo
simétrico nos permite definir la matriz inercia (I)
πΌπ₯
πΌ = [0
0
0
πΌπ¦
0
0
0]
πΌπ§
Ecuación de Euler
πΌωπΜ + ωπ × (πΌωπ ) = π
ο·
ο·
ο·
τ = [τπ₯ , τπ¦ , τπ§ ]: Son los pares o momentos (torques) que actúan sobre
cada eje.
ππ : Son las velocidades angulares que ya conoces del modelo
cinemático.
πΜπ : Representa la aceleración angular (qué tan rápido cambia el giro).
Al resolver πΌππΜ + ππ × (πΌππ ) = π se obtiene 3 ecuaciones, una para cada eje
τπ₯ +(πΌπ¦ −πΌπ§ )ωπ¦ ωπ§
ο·
Aceleración en X (Roll): ωΜπ₯ =
ο·
Aceleración en Y (Pitch): ωπ¦Μ =
ο·
Aceleración en Z (Yaw): ωΜπ§ =
πΌπ₯
τπ¦ +(πΌπ§ −πΌπ₯ )ωπ§ ωπ₯
πΌπ¦
τπ§ +(πΌπ₯ −πΌπ¦ )ωπ₯ ωπ¦
πΌπ§
Los términos como (πΌ_π¦ − πΌ_π§)|ωπ¦ ωπ§ se llaman términos giroscópicos.
Representan acoplamientos: si el dron está girando sobre dos ejes a la vez,
aparece una fuerza natural que intenta hacerlo girar sobre el tercero
Relación de velocidades de Euler en world (W) y ángulos locales
3. Ecuaciones de Mezclador
Las Ecuaciones del Mezclador (o Mixer) son el "traductor" final de tu dron. Su
función es convertir los 4 comandos globales de vuelo que decide el
controlador en las velocidades específicas a las que debe girar cada motor.
ο·
ο·
Entrada: 4 comandos de control
o Throttle (πΉπ‘ ): Empuje vertical para controlar la altura.
o Roll (τπ₯ ): Par de rotación para inclinarse a izquierda o derecha.
o Pitch (τπ¦ ): Par de rotación para inclinarse adelante o atrás.
o Yaw (τπ§ ): Par de rotación para girar sobre el eje vertical.
Procesamiento
o Primero se debe entender la ubicación de los motores
M1 (Frontal): Situado adelante.
M3 (Posterior): Situado atrás.
M2 (Izquierdo): Situado a la izquierda.
M4 (Derecho): Situado a la derecha
o Las 4 ecuaciones fundamentales
ο§ Empuje vertical: Es la suma de las fuerzas de los 4
motores
ο· (Ft) πΉπ‘ = ππ (ω12 + ω22 + ω23 + ω24 )
ο§
Roll (π x): Se genera por la diferencia de empuje entre los
motores laterales (M2 y M4)
ο· ir hacia la derecha (M2↓, M4↑)
ο· τπ₯ = π ⋅ ππ (ω24 − ω22 )
ο§
Pitch(π y): Se genera por la diferencia entre los motores
frontal y posterior (M1 y M3)
ο· ir hacia atrás (M1↑, M3↓)
ο· τπ¦ = π ⋅ ππ (ω12 − ω23 )
ο§
Yaw(π z): Se basa en el par de reacción (giro sobre si
mismo)
ο· girar sentido antihorario (M1↑ = M3↑, M2↓ = M4↓)
ο· τπ§ = ππ (ω22 + ω24 − ω12 − ω23 )
o Matriz de asignación: Todas las relaciones se agrupan en una
única matriz que permite al software calcularlo todo de golpe
Para saber la
velocidad M^-1 (la
inversa de la
matriz)
ο·
Salida: El resultado final del procesamiento son las velocidades
específicas a las que debe girar cada una de las 4 hélices
o Velocidades angulares (π1 , π2 , π3 , π4)
o Fuerza y par real: Al girar a esas velocidades, los motores
generan físicamente el empuje y los momentos que el dron
necesitaba para moverse
ο§ Fuerza de empuje vertical: π π π , π = coeficiente de
empuje
ο§ Par de reacción:
Ejemplos
Caso1: Ascenso vertical: Si quieres subir sin inclinarte ni girar, todos los
motores deben empujar con la misma fuerza
o Lógica
ο§ La fuerza de empuje (Ft) es positiva
ο§ Los pares de rotación son cero (ππ₯ , ππ¦ , τπ§ )
o Resultado: Todos los motores reciben la misma fuerza
ο§
πΉ
ω12 = ω22 = ω23 = ω24 = 4ππ‘
π
Caso2: Cabeceo / Pitch: Para inclinar el dron adelante o atrás, necesitas crear
una diferencia de fuerza entre el motor frontal (M1) y el posterior (M3).
o Lógica: Queremos un par de cabeceo positivo (ππ¦ > 0)
o Resultado
τπ¦
o M1 acelera añadiendo par + 2π π
π
τπ¦
o M3 desacelera restando par - 2π π
π
o Como el de delante empuja más que el de atrás, el morro sube y
el dron se inclina hacia atrás
Caso 3: Alabeo / Roll: Funciona igual que el cabeceo, pero usando los motores
laterales: el izquierdo (M2) y el derecho (M4)
o Lógica: Queremos un par de cabeceo positivo (ππ₯ > 0)
o Resultado
π
o M4 acelera añadiendo par + 2ππ₯ π
π
π
o M2 desacelera restando par - 2ππ₯ π
π
o El lado derecho sube más que el izquierdo, provocando una
inclinación hacia la derecha.
4. Control jerárquico de drones multirrotor
Explica como el “cerebro” del dron organiza las tareas. El control Jerárquico
divide el problema en varias capas o lazos que trabajan a distintas velocidades
o Lógica de los lazos: El control va por prioridades
o Lazos internos (Rápidos):
ο§ Se encargan de la estabilidad.
ο§ Reaccionan en milisegundos para que el dron no se caiga
si hay una ráfaga de aire
o Lazos externos (Lentos):
ο§ Se encargan de la navegación.
ο§ Son los que deciden ir del punto A al punto B y no
necesitan ser tan frenéticos
Funcionamiento de cada lazo
o Lazo de altitud
o Objetivo: Mantiene la altura deseada (Zs)
o Es independiente del movimiento horizontal
o es el encargado de decidir cuánta fuerza vertical neta deben
hacer los motores en conjunto para que el dron suba, baje o se
mantenga quieto en el aire
o Método: Utiliza un control PID + Feedforward: Aade
dir4eectamente el valor de la gravedad (mg) para que el dron
sepa de antemano cuánta fuerza mínima necesita para no caerse
o Lazo de posición
o Entrada: Coordenadas deseadas (Xs, Ys)
o Procesamiento: Usa controladores tipo PD para calcular la
aceleración necesaria
o Traducción: Convierte esa aceleración en ángulos de inclinación
o Limitación: En drones normales, estos ángulos se suelen limitar
(saturar) a 20°-30° por seguridad.
(Traductor): Convierte una aceleración en la inclinación que tiene que tener para
conseguirlo
1º Ecuación dinámica traslacional: La aceleración del dron depende de la fuerza
de los motores
2ºPara realizar los cálculos se hacen suposiciones
- Vuelo nivelado (Ft=mg): Se asume que el empuje total es igual al peso
para centrarnos Oslo en el movimiento horizontal
- Ángulos pequeños: Se asume que el dron no se va a inclinar mucho
3º Las ecuaciones de movimiento se simplifican
4º Ecuaciones usadas por el codigo
1
Ο = (ππ₯ sin ψ − ππ¦ cos ψ)
π
1
θ = (ππ₯ cos π − ππ¦ sin π)
π
o Lazo de actitud
o Objetivo: Estabilizar la orientación del dron
o Controladores: Utiliza tres controladores PD independientes (uno
para cada eje) que
o generan los torques necesarios para corregir el error de ángulo
**** Teoria ****
Matlab
Ejercicio 1 pagina 40
Ejercicio-1: Implementación del controlador del dron
A partir del archivo SimDron.m, completa el código de la función control_quad()
siguiendo las indicaciones de las diapositivas.
La función recibe dos parámetros de entrada: x: vector de estado del dron, y
Ref: vector de referencias (valores deseados).
%% Señal de Control
function Tau = quad_control(t, x, Ref)
global m g
global Kpx Kdx Kpy Kdy Kpz Kdz
global Kp_phi Kd_phi Kp_theta Kd_theta Kp_psi Kd_psi
pos = x(1:3); vel = x(4:6); phi = x(7) ; theta = x(8); psi =x(9); omega =
x(10:12);
xref = Ref(1); yref = Ref(2); zref = Ref(3); psiref = Ref(4);
%Control de altitud
Ft = Kpz*(zref - pos(3)) - Kdz*vel(3) + m*g;
%Control de X e Y
ax = Kpx*(xref - pos(1)) - Kdx*vel(1);
ay = Kpy*(yref - pos(2)) - Kdy*vel(2);
sp = sin(psi); cp = cos(psi);
phi_ref = (ax*sp - ay*cp)/g;
theta_ref = (ax*cp - ay*sp)/g;
tau_x = Kp_phi*(phi_ref-phi) - Kd_phi*omega(1);
tau_y = Kp_theta*(theta_ref-theta) - Kd_theta*omega(2);
tau_z = Kp_psi*(psiref-psi) - Kd_psi*omega(3);
Tau = [Ft; tau_x; tau_y; tau_z];
end
Guiñada apenas cambia, pitch el rojo.
¿ Que pasaría si se aumenta la p?
Roll y pitch iguales porque es simétrico, la guiñada si que va a parte
Kpz=25
Según z dice que se ha pasado, y en la trayectoria del dron también puedes
verlo
Ejercicio-2: Plan de vuelo
Modifica la función entrada() para que el dron ejecute el siguiente plan de
vuelo:
ο·
ο·
ο·
Fase-1: Despegue y ascenso a una altura z = 5m 0 < t ≤ 2 s
Fase-2: Desplazamiento horizontal hasta (x, y)=(5, 5) m 2 < t ≤ 5 s
Fase-3: Cambio de guiñada de 45° 5 < t < 8 s
%% FUNCIONES ------------------------------------------%Generacion de la entrada
function Ref = entrada(t)
%Ref = [xref, yref, zref, psiref];
%EJERCICIO 2
if t <= 2.
Ref = [0, 0, 5, 0];
elseif t > 2 && t <= 5
Ref = [5, 5, 5, 0];
else
Ref = [5, 5, 5, pi/4];
end
end
IMPORTANTE: DINAMICA Y CONTROL
Programar drones con matlab en la proxima clase
Exmane para después de semana santa, la primera semana no sta