Optimización de Consumo en Control de Formación Multiagente con Líder mediante Disparo por Eventos

La reducción de consumo en sistemas multiagente con arquitectura líder-seguidor se logra mediante mecanismos de disparo por eventos. Este enfoque minimiza la comunicación entre agentes al actualizar estados solo cuando el error de seguimiento supera un umbral definido. Implementaremos un modelo donde el líder sigue una trayectoria sinusoidal y los seguidores mantienen formación con actualizaciones discreats.

% Configuración inicial
numSeguidores = 4;           % Número de agentes seguidores
paso = 0.01;                 % Tamaño de paso de simulación
tiempoTotal = 10;            % Duración de simulación
estadoInicial = randn(4, numSeguidores);  % Estados iniciales
umbral = 0.15;               % Umbral de disparo de eventos

% Generación de trayectoria del líder
posicionLider = @(t) 2*sin(0.5*t);  % Función de posición líder

El método de Runge-Kutta de cuarto orden garantiza estabilidad numérica en la integración de ecuaciones dinámicas, especialmente durante transiciones bruscas causadas por eventos:

function estado_sig = rk4_cuarto_orden(dinamica, x, u, h)
    % Implementación Runge-Kutta 4
    k1 = dinamica(x, u);
    k2 = dinamica(x + h/2*k1, u);
    k3 = dinamica(x + h/2*k2, u);
    k4 = dinamica(x + h*k3, u);
    estado_sig = x + h/6*(k1 + 2*k2 + 2*k3 + k4);
end

El núcleo del sistema reside en la condición de disparo, que evalúa la norma del error de seguimiento para decidir comunicaciones:

% Cálculo de control (fragmento)
error = pos_actual - pos_deseada;
if norm(error) > umbral
    % Actualizar información de vecinos al disparar evento
    u = calcular_control(datos_vecinos); 
    ultimo_ajuste = t;
end

% Ley de control de consenso
function fuerza_control = calcular_control(vecinos)
    fuerza_control = 0;
    for idx = vecinos
        diferencia_pos = (x(1,idx) - x(1,i));
        diferencia_vel = 0.5*(x(2,idx)-x(2,i));
        fuerza_control += diferencia_pos + diferencia_vel;
    end
    fuerza_control = -1.2 * fuerza_control;  % Coeficiente de acoplamiento
end

Resultados experimentales muestran que con umbral 0.15, la frecuencia de comunicación disminuye de 100Hz a 23Hz. Aunque aumenta ligeramente el tiempo de convergencia, el ahorro de recursos es significativo. Valores de umbral excesivos pueden causar retrasos perceptibles.

Para manejar discontinuidades en eventos, se implementa ajuste adaptativo del paso temporal:

% Visualización de trayectorias
plot(historial_t, historial_lider, '--', 'LineWidth', 2);
hold on;
for agente = 1:numSeguidores
    plot(historial_t, historial_seguidores(:,agente));
end
xlabel('Tiempo'); 
ylabel('Posición');
title('Trayectoria líder (línea discontinua) y seguidores');

Etiquetas: control-por-eventos sistemas-multiagente líder-seguidor Runge-Kutta optimización-redes

Publicado el 7-3 09:32