#format inline_latex
Tabla de Contenidos
Modelado del Quadrotor
Tabla de Contenidos
La derivación de la dinámica no lineal es realizada en coordenadas inerciales NED y de cuerpo fijo. Denotemos con {$$$ e_N$$, $$$e_E$$, $$$e_D$$} los ejes inerciales, y con { $$$x_B$$ , $$$y_B$$ , $$$z_B$$ } a los ejes del cuerpo. Los ángulos de Euler de los ejes del cuerpo son { $$$\phi$$, $$$\theta$$, $$$\psi$$} con respecto a los ejes $$$e_N$$, $$$e_E$$ y $$$e_D$$ respectivamente, y son referidos como roll, pitch and yaw. Definamos a r como el vector de posición desde el origen inercial hacía el centro de gravedad del vehículo(CG), y dejemos que $$$\omega_B$$ sea definido como la velocidad angular en con respecto al eje de referencia del cuerpo.
La dirección actual de la velocidad es referida como $$$e_v$$ en coordenadas inerciales. Los rotores, numerados 1-4, están montados sobre los ejes $$$x_B$$, $$$y_B$$, $$$-x_B$$ y $$$-y_B$$, respectivamente, con vectores de posición $$$r_i$$ con respecto a CG. Cada rotor produce un
Fuerza y Momento
$$$ \mathbf{F} = -D_B\cdot\vec{e_V} + mg\cdot\vec{e_D} + \sum\limits^{4}_{i=1}(-T_i\cdot\vec{z_B}-D_i\cdot\vec{e_V})$$
$$$ \mathbf{M} = \sum\limits_{i=1}^4[Q_i\cdot\vec{z_B} - R_i\cdot\vec{e_V} - D_i(\vec{r_i}\times\vec{e_V}) + T_i(\vec{r_i}\times\vec{z_B})]$$
$$$ \mathbf{F} = m\ddot{r} $$
$$$ \mathbf{M} = I \dot{\omega}_B + \omega_B \times I \omega_B $$
Descripción
Fuerza de Arrastre del Cuerpo
$$$ D_B = q_{\infty}SC_D $$
Empuje
$$$ T_i \cong \mu_i\frac{K_\tau}{1+0.1s}$$
Fuerza de arrastre sobre los rotores debido a la velocidad horizontal
$$$ D_i $$
Momento de arrastre sobre el eje de rotación de los rotores
$$$ Q_i = K_{\tau}T_i $$
Momento de Roll generado en los rotores por la velocidad
$$$ R_i $$
Fuerza de arrastre en los rotores debido a la velocidad
$$$ D_i $$
Empuje Total
$$$ T = \sum\limits_{i=1}^4{T_i} $$
Aproximación de la Fuerza y el Momento
Suponiendo que el Cuadricóptero está en vuelo estacionario podemos despreciar $$$ D_B $$ y $$$ D_i $$. Con esto nos queda:
Fuerza
$$$ m\ddot{r} = \mathbf{F} = -R_{\psi}R_{\theta}R_{\phi}T\cdot\vec{z_B} + mg\cdot\vec{e_D}$$
Aproximando las matrices de rotación de los ángulos para ángulos pequeños, tenemos:
$$$ -R_{\psi}R_{\theta}R_{\phi} = \left[\matrix{ 1 & \psi & \theta \cr \psi & 1 & \phi \cr \theta & -\phi & 1 }\right] $$
$$$ m\ddot{r} = \left[\matrix{ 1 & \psi & \theta \cr \psi & 1 & \phi \cr \theta & -\phi & 1 }\right]\left[\matrix{ 0 \cr 0 \cr -T }\right] + \left[\matrix{ 0 \cr 0 \cr mg }\right] $$
$$$ m\ddot{r} = \left[\matrix{ 0 & -\bar{T} & 0 \cr \bar{T} & 0 & 0 \cr 0 & 0 & 1 }\right]\left[\matrix{ \phi \cr \theta \cr T }\right] + \left[\matrix{ 0 \cr 0 \cr mg }\right] $$
Momento
También podemos despreciar los momemtos de Rolling $$$ R_i $$ y $$$ \omega_B\times I\omega_B $$. El Torque nos queda:
$$$ \mathbf{M} = I\dot{\omega}_B = \sum\limits_{i=1}^4[Q_i\cdot\vec{z_B} + T_i(\vec{r_i}\times\vec{z_B})] $$
$$$ \left[\matrix{ I_x\ddot{\phi} \cr I_y\ddot{\theta} \cr I_z\ddot{\psi} }\right] = \left[\matrix{ 0 & l & 0 & -l \cr l & 0 & -l & 0 \cr K_r & -K_r & K_r & -K_r }\right]\left[\matrix{ T_1 \cr T_2 \cr T_3 \cr T_4 }\right] $$
Referencias
[[ http://www.eecs.berkeley.edu/~tomlin/papers/conferences/whjt05_iros.pdf | Multi-Agent Quadrotor Testbed Control Design: Integral Sliding Mode vs. Reinforcement Learning ]]
Path Tracking Control for Quadrotor Helicopters
Medición de los parámetros de la Planta
Para el diseño del controlador del quadricóptero resulta necesario realizar la medición de los distintos parámetros del modelo real. Los parámetros fundamentales son el peso, el momento de inercia, los empujes de los motores.
Empuje de los motores
Al momento de realizar esta medición poseíamos 2 motores rctimer 2830, 1 ESC rctimer de 30A, 1 ESC mystery de 30A, 1 hélice con paso normal y una hélice con paso pusher.
Se realizó la medición del empuje de cada motor, con las distintas hélices y los dos controladores. Esta medición se hizo montando el motor sobre un peso de plomo, el cual se ponía sobre la balanza y luego se realizaron las curvas de transferencia entre PWM y fuerza de empuje.
Motor 1
RCTimer Normal
Duty |
2949 |
5898 |
8847 |
11796 |
14745 |
17694 |
20643 |
23592 |
26541 |
29491 |
32440 |
35389 |
38338 |
41287 |
Fuerza |
0 |
55 |
100 |
145 |
185 |
230 |
270 |
320 |
360 |
400 |
440 |
490 |
540 |
600 |
$$$F = 0.0154 * D - 35.83$$
Mystery Pusher
Duty |
2949 |
5898 |
8847 |
11796 |
14745 |
17694 |
20643 |
23592 |
26541 |
29491 |
32440 |
35389 |
38338 |
41287 |
Fuerza |
20 |
20 |
95 |
165 |
245 |
325 |
410 |
480 |
575 |
670 |
770 |
855 |
855 |
845 |
$$$F = 0.0283 * D - 155$$
RCTimer Pusher
Duty |
2949 |
5898 |
8847 |
11796 |
14745 |
17694 |
20643 |
23592 |
26541 |
29491 |
32440 |
35389 |
38338 |
41287 |
Fuerza |
5 |
60 |
105 |
150 |
195 |
240 |
290 |
335 |
380 |
425 |
475 |
540 |
605 |
665 |
$$$F = 0.017 * D - 45.4$$
Mystery Normal
Duty |
2949 |
5898 |
8847 |
11796 |
14745 |
17694 |
20643 |
23592 |
26541 |
29491 |
32440 |
35389 |
38338 |
41287 |
Fuerza |
5 |
5 |
80 |
150 |
225 |
300 |
380 |
460 |
545 |
640 |
730 |
790 |
760 |
760 |
$$$F = 0.0267 * D - 156$$
Motor 2
Mystery Normal
Duty |
2949 |
5898 |
8847 |
11796 |
14745 |
17694 |
20643 |
23592 |
26541 |
29491 |
32440 |
35389 |
38338 |
Fuerza |
15 |
15 |
80 |
160 |
235 |
320 |
395 |
475 |
570 |
665 |
765 |
840 |
840 |
$$$F = 0.028 * D - 167.7$$
RCTimer Pusher
Duty |
2949 |
5898 |
8847 |
11796 |
14745 |
17694 |
20643 |
23592 |
26541 |
29491 |
32440 |
35389 |
38338 |
41287 |
Fuerza |
10 |
65 |
110 |
155 |
200 |
245 |
295 |
345 |
395 |
435 |
490 |
560 |
605 |
660 |
$$$F = 0.0168 * D - 34.1$$
Mystery Pusher
Duty |
2949 |
5898 |
8847 |
11796 |
14745 |
17694 |
20643 |
23592 |
26541 |
29491 |
32440 |
35389 |
38338 |
Fuerza |
5 |
5 |
80 |
155 |
245 |
335 |
425 |
535 |
655 |
795 |
905 |
1015 |
1015 |
$$$F = 0.03523 * D - 231.7$$
RCTimer Normal
Duty |
2949 |
5898 |
8847 |
11796 |
14745 |
17694 |
20643 |
23592 |
26541 |
29491 |
32440 |
35389 |
38338 |
41287 |
Fuerza |
25 |
65 |
110 |
155 |
195 |
235 |
275 |
315 |
360 |
400 |
435 |
485 |
540 |
595 |
$$$F = 0.015 * D - 23.47$$
Motor1, RCTimer, Pusher y Motor2, Mystery y Normal
Cálculo Aproximado de las constantes
Cálculo de la constante de Inercia
$$$K_J = \frac{r}{J_T}$$
$$$J = \sum{m.r^2}$$
$$$J_T = 2(J_{motor} + J_{ESC} + J_{helice}) + J_{barra}$$
$$$J_{motor} = 52.{20,5}2 [g.{cm}2] = 21853 [g.{cm}^2]$$
$$$J_{ESC} = 32.{10}2 [g.{cm}2] = 3200 [g.{cm}^2]$$
$$$J_{helice} = 15.{20,5}2 [g.{cm}2] = 6303,75 [g.{cm}^2]$$
$$$J_{barra} = \frac{m.L2}{12} = \frac{110.{51}2}{12} [g.{cm}2] = 23842,5 [g.{cm}2]$$
$$$J_T = 86556 [g.{cm}2] = 0.0086556 [Kg.{m}2]$$
$$$\boxed{K_J = \frac{21}{86556}[\frac{1}{g.cm}]= 24.26174962[\frac{1}{Kg.m}]}$$
Cálculo de la constante del Motor
Según las mediciones realizadas podemos aproximar estas constantes.
$$$K_{MPusher} = \frac{\Delta_F}{\Delta_D} = \frac{40}{3000}\frac{g}{cuentas}$$
$$$K_{MNormal} = \frac{\Delta_F}{\Delta_D} = \frac{70}{3000}\frac{g}{cuentas}$$