La gestión eficiente de microrredes involucra la resolución de problemas de optimización para coordinar distintas fuentes de generación. Este texto describe la consturcción de un modelo básico de despacho usando la plataforma MATLAB junto con el toolbox YALMIP y el solver comercial CPLEX.
Integración entre YALMIP y CPLEX
YALMIP proporciona un entorno flexible para formular problemas de optimización en MATLAB, mientras que CPLEX ofrece un motor de resolución robusto para problemas de programación lineal y no lineal. Su combinación permite abordar modelos de despacho con múltiples restricciones de manera eficiente.
Modleado de las Unidades de Generación
1. Generación Fotovoltaica y Eólica
Estas fuentes renovables presentan variabilidad dependiente de condiciones climáticas. En el código, se representan mediante vectores con valores estimados para cada intervalo de tiempo:
% Valores pronosticados de potencia renovable (kW)
pv_vals = [11, 16, 21, 26, 31];
wind_vals = [6, 9, 13, 11, 8];
Estos datos simplificados simulan la disponibilidad, aunque en aplicaciones reales se emplearían modelos de predicción más complejos.
2. Grupo Electrógeno Diésel
Este componente térmico tiene restricciones técnicas de operación y un costo asociado. Su modelado se realiza mediante una variable de decisión con límites inferior y superior:
% Parámetros del generador diésel
pot_max_diesel = 55; % Límite superior (kW)
pot_min_diesel = 8; % Límite inferior (kW)
coste_diesel = 0.25; % Coste unitario (u.m./kW)
% Variable de potencia del diésel
pot_diesel = sdpvar(1, length(pv_vals), 'full');
% Restricciones de operación
restricciones = [pot_diesel >= pot_min_diesel, pot_diesel <= pot_max_diesel];
3. Sistema de Almacenamiento con Baterías
Las baterías permiten gestionar la energía excedente y suplir déficits. Se definen variables para carga, descarga y estado de carga, junto con sus restricciones dinámicas:
% Características del banco de baterías
carga_max_bat = 18; % Potencia máxima de carga (kW)
descarga_max_bat = 25; % Potencia máxima de descarga (kW)
cap_total_bat = 90; % Capacidad total (kWh)
rendimiento = 0.92; % Eficiencia de carga/descarga
% Variables de decisión para el almacenamiento
bat_carga = sdpvar(1, length(pv_vals), 'full');
bat_descarga = sdpvar(1, length(pv_vals), 'full');
bat_soc = sdpvar(1, length(pv_vals), 'full');
% Restricciones operativas
restricciones = [restricciones, ...
bat_carga >= 0, bat_carga <= carga_max_bat, ...
bat_descarga >= 0, bat_descarga <= descarga_max_bat, ...
bat_soc(1) == cap_total_bat];
% Ecuación de balance de energía en el almacenamiento
for k = 1:length(pv_vals)-1
restricciones = [restricciones, ...
bat_soc(k+1) == bat_soc(k) + bat_carga(k)*rendimiento - bat_descarga(k)/rendimiento];
end
Función Objetivo y Resolución
El objetivo principal es minimizar los costos operativos totales, considerando únicamente el combustible del generador diésel en este modelo simplificado:
% Función objetivo: costo total de generación
obj_costo = sum(pot_diesel * coste_diesel);
% Resolución del problema de optimización
ops = sdpsettings('solver', 'cplex', 'verbose', 1);
sol = optimize(restricciones, obj_costo, ops);
El comando optimize invoca al solver CPLEX para encontrar la asignación de potencia que minimiza el costo sujeto a todas las restricciones formuladas.