Los enjambres de drones requieren mecanismos robustos de comunicación descentralizada y algoritmos de control que permitan alcanzar un consenso incluso bajo limitaciones de alcance y perturbaciones. Este artículo describe cómo construir un antorno de simulación en Simulink para evaluar la coordinación de múltiples UAVs, modelando tanto la dinámica de vuelo como el canal inalámbrico y el protocolo de consenso.
Arquitectura del sistema
Se considera una red ad hoc aérea sin nodo central, donde cada agente ejecuta las mismas reglas de control y comparte su estado únicamente con vecinos dantro del radio de comunicación R. La topología cambia dinámicamente con el movimiento. Las capas del modelo se dividen en:
- Capa física y de enlace: modelo de propagación de espacio libre, ruido AWGN y cálculo de conectividad basado en distancia.
- Capa de control: algoritmo de consenso distribuido que actualiza una variable de estado común (por ejemplo, velocidad en el eje X).
- Capa de aplicación: formación de patrones o sincronización de altitud.
Parámetros de la simulación
% Configuración del enjambre
numDrones = 6; % seis aeronaves
velocidadMax = 12; % m/s
radioComunicacion = 90; % metros
posInicial = [0,0,30; 15,0,30; -15,0,30; 0,15,30; 0,-15,30; 5,10,30];
% Parámetros del canal RF
freqPortadora = 2.4e9; % Hz
anchoBanda = 10e6; % Hz
modulacion = 'QPSK';
tasaDatos = 2e6; % bps
Modelado de la dinámica en Simulink
Cada UAV se encapsula en un subsistema referenciado. La cinemática 3D se implementa con bloques Integrator que reciben componentes de velocidad:
function [dx, dy, dz] = f_movimiento(vel, rumbo, elevacion)
dx = vel * cos(rumbo) * cos(elevacion);
dy = vel * sin(rumbo) * cos(elevacion);
dz = vel * sin(elevacion);
end
El vector de rumbo y elevación se obtiene a partir de un controlador proporcional basado en el error respecto al estado de consenso.
Canal de comunicación aéreo
La conectividad entre el agente i y j se determina con:
dist_ij = sqrt((xi - xj)^2 + (yi - yj)^2 + (zi - zj)^2);
conectado = dist_ij <= radioComunicacion;
En el bloque de canal se introduce el Free Space Path Loss cuya atenuación depende de la distancia y la frecuencia. Se añade ruido blanco gaussiano con una relación señal a ruido ajustable. Para simular desvanecimientos se puede incorporar un bloque Rayleigh cuando no hay línea de vista.
Algoritmo de consenso distribuido
Cada dron actualiza su variable de consenso s (por ejemplo, su coordenada x deseada) usando la diferencia promedio con sus vecinos:
function ds = control_consenso(s_local, s_vecinos)
if isempty(s_vecinos)
ds = 0;
else
ds = sum(s_vecinos - s_local) * ganancia;
end
end
La ganancia se calibra para asegurar convergencia rápida sin oscilaciones.
Implementación del lazo completo
En Simulink se utiliza Model Reference para replicar el bloque del UAV. Las señales de estado de todas las aeronaves se agrupan mediante Bus Creators y se realimentan a cada nodo tras aplicar una máscara que filtra los vecinos según la distancia. Un bloque MATLAB Function centralizado (opcional) puede reconstruir la matriz de adyacencia para análisis:
function matriz_ady = calcular_adyacencia(posiciones, R)
N = size(posiciones,1);
matriz_ady = zeros(N);
for i = 1:N
for j = 1:N
if i ~= j
d = norm(posiciones(i,:)-posiciones(j,:));
matriz_ady(i,j) = d < R;
end
end
end
end
Métricas de desempeño
Durante la ejecución se registran las siguientes señales:
- Error de consenso: \(E(t) = \frac{1}{N}\sum_{i=1}^{N}(s_i - \bar{s})^2\)
- Tiempo de convergencia: instante en que el error desciende por debajo de 0.01.
- Conectividad promedio: porcentaje de pares enlazados en cada instante.
Experimento: convergencia y fallo de enlace
Se configura una formación inicial dispersa. A los 25 segundos se desconecta uno de los drones durante 8 segundos para emular pérdida de comunicación. Se observa que el error de consenso aumenta transitoriamente pero se recupera una vez restablecida la conectividad. Los resultados típicos se recogen en la tabla:
| Métrica | Resultado |
|---|---|
| Tiempo de convergencia inicial | < 14 s |
| Error máximo durante fallo | +230% |
| Tiempo de re-convergencia | < 6 s |
| Conectividad media | 78% |
Visualización
Se pueden generar gráficos 3D de las trayectorias con Simulink 3D Animation y paneles de supervisión (Dashboard) que muestren la topología en vivo. La evolución del error se captura con bloques To Workspace y se representa en un scope.
Extensiones posibles
El modelo admite ampliaciones como:
- Control de formación líder-seguidor añadiendo un offset al consenso.
- Protocolo MAC sencillo (TDMA) implementado con Stateflow.
- Agentes con pilas de red completas mediante simulación conjunta con NS-3.
- Optimización de ganancias con algoritmos genéticos ( Simulink Design Optimizaton ).
Este entorno de simulación facilita la experimentación con dinámicas de vuelo, condiciones de canal adversas y algoritmos distribuidos antes de pasar a hardware real.