Simulación de control cooperativo en enjambres de UAVs: intercambio de datos y consenso distribuido

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.

Etiquetas: Simulink UAV swarm consensus algorithm distributed control wireless channel

Publicado el 9-30 11:13