La optimización de sistemas energéticos integrados (electricidad y gas) enfrenta constantemente el desafío de la incertidumbre, particularmente en fuentes renovables. Los métodos de optimización robusta tradicionales tienden a generar despachos excesivamente conservadores al enfocarse en el peor escenario. Al combinar la optimización robusta distribuida (DRO) con el Valor en Riesgo Condicional (CVaR), logramos un equilibrio óptimo: se mitiga el riesgo operativo sin incurrir en costos prohibitivos.
La construcción del conjunto difuso se basa en la distancia de Wasserstein:
function radioAmbiguedad = calcularRadioWasserstein(datosHistoricos, nivelConfianza)
cantidadMuestras = size(datosHistoricos, 1);
distanciaEmpirica = mean(pdist2(datosHistoricos, datosHistoricos).^2);
radioAmbiguedad = sqrt(-log(nivelConfianza)/(2*cantidadMuestras)) + distanciaEmpirica;
end
La función evalúa la dispersión de las muestras históricas de generación. El parámetro nivelConfianza actúa como un controlador de tolerancia; un valor de 0.05 permite un 5% de desviación en la distribución, garantizando un conjunto difuso ni demasiado restrictivo ni excesivamente amplio.
La interfaz eléctrico-gaseoso requiere modelar la conversión de energía físicamente:
for pasoTiempo = 1:horizonte
modeloRestricciones = [modeloRestricciones, ...
potenciaGenerada(pasoTiempo) == factorConversion * flujoGasNatural(pasoTiempo) + factorPresion * presionNodo(pasoTiempo)];
modeloRestricciones = [modeloRestricciones, presionNodo(pasoTiempo) <= 4.2]; % Restricción de seguridad para turbinas
end
Los coeficientes factorConversion y factorPresion regulan la transformación de presión y flujo de gas a ptoencia. Es crucial imponer límites de presión operativa para prevenir daños mecánicos en las turbinas de gas.
La integración del CVaR permite cuantificar y limitar las pérdidas esperadas en la cola de la distribución de probabilidad:
nivelConfianzaCVaR = 0.95;
variableUmbral = sdpvar(1);
variablesExceso = sdpnumEscenarios, 1);
modeloRestricciones = [modeloRestricciones, ...
variablesExceso >= 0, ...
variablesExceso >= costoOperativo - variableUmbral];
funcionObjetivoTotal = funcionObjetivoTotal + 0.3 * variableUmbral + (1 / (1 - nivelConfianzaCVaR)) * mean(variablesExceso);
La varible variablesExceso representa el costo excedentario en los escenarios más críticos. El factor de peso 0.3 calibra la compensación entre la economía del despacho y la seguridad del sistema.
Para la resolución matemática, se recomienda configurar el solver Gurobi ajustando el gap de optimalidad al 0.01% y un límite de tiempo preventivo:
configuracionSolver = sdpsettings('solver', 'gurobi', 'verbose', 1);
configuracionSolver.gurobi.MIPGap = 1e-4;
configuracionSolver.gurobi.TimeLimit = 3600;
En topologías de red extensas, la activación de procesamienot paralelo es indispensable para mantener tiempos de cómputo viables.

La gráfica ilustra la superioridad del enfoque propuesto. Durante periodos de alta volatilidad eólica, el método de optimización robusta distribuida incrementa los costos operativos en menos del 5%, mientras que las técnicas robustas convencionales elevan el costo hasta un 18%.
En modelos de energía acoplada, las validaciones cruzadas de flujo son esenciales para evitar resultados físicamente inviables:
if any(flujoGasNatural < 0)
error('Alerta: Flujo de gas negativo detectado. Verificar configuración del compresor.');
end