Optimización Multiobjetivo de Microrredes Híbridas mediante Algoritmos de Enjambre de Partículas en MATLAB

La gestión operativa de microrredes que intergan fuentes renovables intermitentes, generación térmica y almacenamiento de energía presenta desafíos matemáticos significativos. Para abordar este problema, se implementa un modelo de despacho económico y ambiental utilizando el algoritmo de Enjambre de Partículas Multiobjetivo (MOPSO) en MATLAB. Este enfoque busca equilibrar la minimización de los costos operativos totales con la maximización de la penetración de energías renovables.

Formulación del Modelo y Estructura de Datos

El sistema considera cuatro unidades de generación y almacenamiento: turbinas eólicas, paneles fotovoltaicos, generadores diésel y bancos de baterías. Para optimizar el rendimiento computacional, los parámetros técnicos de los equipos se estructuran mediante operaciones matriciales en lugar de variables escalares dispersas, facilitando el cálculo vectorizado durante la evaluación de la población.

% Configuración de los parámetros del algoritmo MOPSO
num_particulas = 80;
iteraciones_max = 150;
inercia_inicial = 0.9;
factor_cognitivo = 1.5;
factor_social = 1.5;

% Límites máximos de generación por unidad (kW)
limites_gen = [1500, 1000, 600, 300]; % Eólica, Solar, Diésel, Batería

% Eficiencias de conversión de energía por unidad
eficiencias = [0.85, 0.92, 0.90, 0.95];

Definición de las Funciones Objetivo

El probelma de despacho se formula como una optimización biobjetivo. La primera función minimiza el costo total de operación, que incluye el consumo de combustible, los costos de operación y mantenimiento (O&M), y las transacciones de compra de energía con la red principal. La segunda función maximiza la tasa de utilización de los recursos renovables disponibles.

function [F_costo, F_renovable] = evaluar_objetivos(vector_decision, demanda, precio_red)
    % Decodificación de la matriz de decisión en perfiles de potencia
    [P_eolica, P_solar, P_diesel, P_bat, SOC] = decodificar_estado(vector_decision);
    
    % Cálculo de costos operativos internos
    costo_combustible = sum(P_diesel * 0.90); % Costo unitario del diésel
    costo_om = sum(P_eolica * 0.12 + P_solar * 0.09); % Tarifas de O&M
    
    % Interacción con la red eléctrica principal
    deficit = max(0, demanda - (P_eolica + P_solar + P_diesel + P_bat));
    costo_red = sum(deficit * precio_red);
    
    F_costo = costo_combustible + costo_om + costo_red;
    
    % Tasa de penetración de energías renovables
    generacion_renovable_total = sum(P_eolica + P_solar);
    F_renovable = generacion_renovable_total / sum(demanda); 
end

La función max(0, ...) asegura que la compra de energía a la red solo ocurra cuando la generación local y el almacenamiento sean isnuficientes para cubrir la demanda, modelando correctamente la unidireccionalidad de la transacción en este escenario específico.

Implementación del Bucle MOPSO y Manejo de Restricciones

El núcleo del algoritmo MOPSO actualiza las velocidades y posiciones de las partículas basándose en su mejor posición histórica y un líder global seleccionado de un archivo externo. Un aspecto crítico es la reparación de restricciones para el Estado de Carga (SOC) de las baterías, evitando sobrecargas o descargas profundas que degraden el equipo.

for k = 1:iteraciones_max
    for j = 1:num_particulas
        % Selección de líder global desde el archivo de Pareto
        lider = seleccionar_lider(archivo_pareto);
        
        % Actualización de velocidad y posición
        r1 = rand(); r2 = rand();
        velocidad = inercia * velocidad + ...
                    factor_cognitivo * r1 * (mejor_personal(j) - posicion(j)) + ...
                    factor_social * r2 * (lider - posicion(j));
        
        posicion = posicion + velocidad;
        
        % Reparación estricta de restricciones para el Estado de Carga (SOC)
        idx_soc = obtener_indices_soc();
        posicion(idx_soc) = max(0.1, min(0.9, posicion(idx_soc)));
        
        % Evaluación y actualización del frente de Pareto
        [nuevo_costo, nueva_renovable] = evaluar_objetivos(posicion, demanda, precio_red);
        actualizar_archivo(nuevo_costo, nueva_renovable, posicion);
    end
    
    % Decaimiento lineal de la inercia para mejorar la convergencia
    inercia = inercia_inicial - (inercia_inicial - 0.4) * (k / iteraciones_max);
end

El análisis de los resultados obtenidos revela compensaciones económicas no lineales. Durante las horas pico de tarifas eléctricas, el algoritmo tiende a despachar el generador diésel por encima de su punto de eficiencia nominal. Aunque esto incrementa el costo marginal del combustible, el ahorro neto por la reducción de compras a la red en horas de alta demanda resulta en un costo operativo global inferior.

Dado que la naturaleza del MOPSO genera un frente de soluciones no dominadas, el resultado final no es un único punto de operación, sino un conjunto de alternativas óptimas de Pareto. La selección de la solución de despacho definitiva requiere un proceso de toma de decisiones multicriterio, donde el operador del sistema pondera la preferencia entre la austeridad económica y los objetivos de sostenibilidad ambiental según los requisitos operativos de la microrred.

Etiquetas: optimizacion-multiobjetivo microrredes MOPSO matlab gestion-energia

Publicado el 6-18 20:34