ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL FACULTAD DE INGENIERÍA ELECTRICA Y COMPUTACION OPERACIÓN ECONÓMICA EN LOS SISTEMAS DE POTENCIA “DESPACHO ECONÓMICO MÉTODO DE LAMBDA ITERATIVO CON PÉRDIDAS” PROFESOR PhD. CRISTÓBAL MERA INTEGRANTES ERICK CONDE BERMEO MILTON CUENCA CABRERA I TERMINO 2013 - 2014 GUAYAQUIL - ECUADOR 1 Contenido 1. ANTECEDENTES 2. INTRODUCCIÓN 3. OBJETIVOS 4. FUNDAMENTACIÓN TEÓRICA 4.1. SELECCIÓN DE UNIDADES 4.2. DESPACHO ECONÓMICO DE PLANTAS TÉRMICAS 4.3. CÁLCULO DE LAS PÉRDIDAS EN LA RED 4.4. COORDINACIÓN HIDROTÉRMICA 5. DEFINICIÓN DEL PROBLEMA 6. FORMULACIÓN DEL PROBLEMA SELECCIÓN DE UNIDADES POR EL MÉTODO DE LA LISTA PRIORITARIA DESPACHO ECONÓMICO METODO LAMBDA ITERATIVO CON PÉRDIDAS COORDINACIÓN HIDROTÉRMICA 7. MÉTODOS DE SOLUCIÓN SELECCIÓN DE UNIDADES POR EL MÉTODO DE LA LISTA PRIORITARIA DESPACHO ECONÓMICO METODO LAMBDA ITERATIVO CON PÉRDIDAS 8. RESULTADOS SELECCIÓN DE UNIDADES POR EL MÉTODO DE LA LISTA PRIORITARIA DESPACHO ECONÓMICO METODO LAMBDA ITERATIVO CON PÉRDIDAS COORDINACIÓN HIDROTÉRMICA 9. ANÁLISIS DE RESULTADOS 10. CONCLUSIONES Y RECOMENDACIONES 2 1. ANTECEDENTES La condición necesaria para que un Sistema de Transmisión esté en condiciones de Estabilidad es que en todo momento se verifique el equilibrio entre la energía que los Generadores inyectan a la Red y el consumo de la demanda, si ese equilibrio se rompe por falla de algún gran Generador o salida de alguna Línea, comienza un fenómeno de oscilación de frecuencia que debe ser frenado por los mecanismos de seguridad en los próximos 3 o 4 segundos, si eso no ocurre, comienzan desengancharse máquinas y puede ocurrir un apagón total. El Mercado de la Energía, en particular el Mercado Eléctrico, se caracteriza por tener exceso permanente de capacidad, es decir los Activos de Generación siempre son mayores que las necesidades de abastecimiento por razones de disponibilidad y confiabilidad del Sistema. Las Reservas son imprescindibles para la seguridad, máquinas con capacidad de arrancar en negro, equipos funcionando a mínimo técnico, etc, son todos componentes de un sistema capaz de responder adecuadamente ante las emergencias, en los períodos de menor hidráulica y salidas forzadas y/o programadas de equipos térmicos. Las Reservas también son imprescindibles para mantener el nivel de calidad: frecuencia y tensión. 2. INTRODUCCIÓN El siguiente informe se basa en el estudio de un Sistema De Potencia sencillo conformado por cinco barras, de las cuales cuatro de ellas son de carga y una de oscilación. El análisis consiste en la obtención del flujo de carga y todos los parámetros que intervienen, para hacer uso de ellos en su despacho. El objeto estimular a los estudiantes al manejo y análisis de datos con herramientas computacionales que nos ayudaran en la aplicación de lo laboral, considerando la importancia que estos estudios tienen para el sector eléctrico desregulado. También se introducirán aplicaciones operativas como despacho económico. El programa supone que el grado máximo es de 3 y a su vez permite el ingreso de n unidades generadoras, ya que según investigaciones se estima que una buena aproximación de la función de costo de la unidad se la puede obtener con un polinomio de grado 3. 3. OBJETIVOS Desarrollar una programación en MatLab para calcular los coeficientes B o también llamados coeficientes de pérdidas para un sistema de n barras. Desarrollar una programación en MatLab para la ejecución del despacho económico de la n unidades generadoras con las funciones de costo polinómicas de grado 2 mediante el método del Lambda Iterativo considerando pérdidas. Realizar la selección de unidades de un sistema eléctrico de potencia usando el método de lista prioritaria y programación dinámica. Realizar la Coordinación Hidrotérmica para varias plantas térmicas e hidráulicas. 3 4. FUNDAMENTACIÓN TEÓRICA 4.1. SELECCIÓN DE UNIDADES En la selección de las unidades térmicas se debe tener presente ciertos aspectos que incrementan el costo de producción, estos están relacionados con los tiempos mínimos de conexión, desconexión y arranque. RESTRICCIONES EN LA SELECCIÓN DE UNIDADES En la selección de las unidades térmicas se deben tener presente ciertas restricciones tales como la reserva rodante, tiempo mínimo de arranque, tiempo mínimo de salida de operación, restricciones de personal, costos de arranque, entre otras. A continuación nos referimos a las mencionadas. Reserva rodante. Está relacionada con el control automático de generación AGC, capacidad de generación disponible. Esta no debe ser concentrada en una sola central. La reserva rodante deberá ser distribuida a lo largo del sistema de potencia para evitar las limitaciones en el sistema de transmisión y permitir a varias partes del sistema operar como islas cuando se desconecten del sistema. Además la reserva rodante deber permitir cuando se pierda una unidad importante del sistema que este funcione normalmente abasteciendo la carga durante el tiempo que esta unidad permanezca fuera de servicio. Tiempo mínimo de arranque. Cuando la unidad esta fuera de servicio, existe un tiempo entre el encendido y la entrada al sistema debido a la sincronización de la unidad con el sistema. Tiempo mínimo de salida de operación. Cuando la unidad está trabajando, no debe ser apagada inmediatamente para que no exista ningún daño en sus elementos. Restricciones de personal. Son las limitaciones en cuanto al personal calificado que existe para el control y mantenimiento de las unidades. Costos de arranque. Se tienen los siguientes costos de arranque Cuando la unidad se la ha dejado enfriar ( ) Cuando la unidad se mantiene caliente (banking) Donde: = costo de arranque en frío = costo de combustible = costo fijo (personal, mantenimiento, etc) 4 = constante de tiempo térmica de la unidad = tiempo (horas) que la unidad fue enfriada = costo de mantener la unidad a temperatura de operación Además: Se selecciona a ciertas unidades para que operen en ciertas épocas del año debido a que en época de estiaje las unidades Hidroeléctricas no funcionan a su máxima capacidad. MÉTODOS PARA SELECCIONAR UNIDADES Para la selección de unidades nos referimos a dos métodos, el de la lista prioritaria y el método de la programación dinámica. Lista prioritaria En este método se construye una lista de prioridades en base a la cual se seleccionaran las unidades que cubran la demanda de la carga en los intervalos de tiempo establecidos, considerando los costos más económicos para la producción. Para esto es necesario calcular primero un costo promedio de producción dada por: Donde: = tasa neta de calor = cantidad de calor que entra a la unidad i (Btu por hora) = costo de combustible por hora, unidad i (C/hora) = potencia unidad i Se determina entonces los costos de producción promedio con las potencias máximas de cada unidad y se considera además el incremento producido por los costos de tiempo mínimo de desconexión, tiempos mínimos de conexión, costos de arranque en frío, costos de arranque en caliente. Una vez obtenidos los costos totales de producción para cada unidad, se establece la unidad de menor costo de producción a partir de la cual se puede construir una lista en orden de menor a mayor dependiendo de sus costos. Con la unidad de menor costo se realizan las combinaciones necesarias para poder abastecer la demanda del sistema con el costo más económico de producción. 5 Selección de unidades usando programación dinámica En el método de selección de unidades por programación dinámica se tienen las siguientes consideraciones: Un estado consiste en tener algunas unidades en operación y otras fuera de línea. Los costos de arranque de una unidad es independiente del tiempo que esta estuvo fuera de línea. No hay costos de apagado de una unidad. Hay un estricto orden de prioridad, y en cada intervalo se especifica la mínima capacidad en la que pueden estar operando. La forma de computar el mínimo costo en una hora K, con la combinación I de unidades. ( ) ( ) ( ) ( ) En donde: Estado (K, I)=I-esima combinación a la hora K. ( )= Mínimo Costo Total al llegar al estado (K, I). ( )= Costo de Producir el estado (K, I). ( )= Costo de Transición del estado (K-1, L), al estado (K,I). =Estado en la hora anterior. Para la selección de unidades aplicadas en este estudio, se realiza una programación de acuerdo a un estricto orden de prioridad. Esto es, las unidades son acomodadas en un orden tal que la carga sea satisfecha. Para esto se determina la unidad con el límite superior de potencia mayor, y sus combinaciones con cada una de las otras unidades, la suma de las capacidades máximas de cada unidad nos dará las capacidades totales de cada combinación. El costo total de abastecer la carga en un periodo de tiempo será entonces la suma de los despacho de cada intervalo en que se ha dividido el periodo de tiempo, más los costos relacionados con los tiempos mínimos de encendido, tiempo de desconexión, arranque ya sea en frio o caliente de cada una de las unidades. En Programación Dinámica la selección de unidades es el modulo que se encarga de enlazar las diferentes partes del programa, ya que primero selecciona las unidades a funcionar y luego se encarga directamente de procesar el despacho en las diferentes cargas diarias, teniendo incluido el módulo de las perdidas. Con lo que se procesa el Fcost, agregándosele el Pcost y el Scost. 6 4.2. DESPACHO ECONÓMICO DE PLANTAS TÉRMICAS La operación económica de los sistemas de potencia requiere que el gasto de la producción, uso de combustible para abastecer la demanda de un periodo de tiempo sea minimizado. Esto no es tan sencillo puesto que deben tenerse presente algunos factores que afectan e incrementan los gastos, las limitaciones en el abastecimiento de combustible complican la entrada de datos al despacho puesto que deben tomar las medidas adecuadas para tener el combustible necesario y no para la producción. En el caso de que el abastecimiento de combustible no es una limitación, los costos son simplemente la entrada del costo del combustible, ajustes por manejo del combustible y mantenimiento de la planta. Podemos ilustrar para una mejor comprensión el problema del despacho económico a través de la siguiente figura. FIGURA # 1 Operación Económica en los Sistemas de Potencias Esquema de unidades de generación térmica En el sistema de N unidades de generación térmica conectadas a una simple barra, mediante las cuales se sirve a una carga Pr. L a entrada en cada unidad especificada por Fi, representan los costos de las unidades. La salida de cada unidad, Pi, es la potencia generada por cada unidad particular. Por lo tanto el costo total de producción del sistema es la suma de los costos individuales década unidad. Nuestra primera restricción para este sistema simple es que la suma de las potencias de salida de las unidades debe ser equivalente a la demanda de la carga. Podemos expresarlo de la siguiente manera: ∑ ( ) Restricción: ∑ 7 Donde: =costos de generación de cada unidad i = costo total =potencia generada por cada unidad =potencia de la carga MÉTODOS DE SOLUCIÓN DE DESPACHO ECONÓMICO Para la solución del despacho económico existen algunos métodos, tales como el método de LaGrange, método de Lambda Iterativo, método del Gradiente, método de las Aproximaciones Lineales, método de Newton, Punto de Base y Factores de Participación, método de la Programación Dinámica; en nuestro caso nos vamos a referir al de Lambda iterativo. Método de lambda iterativo Este método se basa en un criterio sencillo para solucionar el problema del despacho, partiendo del hecho de que si se tienen la curva de cada unidad correspondiente al costo incremental vs potencias de salida, gráficamente podríamos entonces determinar que se cumpla la condición de minimizar los costos haciendo que para un mismo lambda se tengan potencias de cada unidad que satisfagan la demanda de la carga. Nuestra primera estimación entonces no será correcta y tendremos un error. Tendremos entonces que asumir un nuevo valor de lambda, incrementado su valor o disminuyendo el mismo dependiendo de si el error es negativo o positivo el error obtenido. Con estos dos primeros resultados se puede extrapolar o interpolar para disminuir el ancho del intervalo dentro del cual se encuentra la solución, considerando además una tolerancia adecuada para poder para las iteraciones sucesivas que se deben hacer en el procedimiento. Gráficamente tenemos: FIGURA # 2 Operación Económica en los Sistemas de Potencias Proyecciones de lambda 8 Donde: ( ) FIGURA # 3 Operación Económica en los Sistemas de Potencias Ilustración de solución con método lambda iterativo 4.3. CÁLCULO DE LAS PÉRDIDAS EN LA RED Los sistemas eléctricos de potencia poseen unidades generadoras y demandas ubicadas en distintos puntos del sistema que están interconectados por el sistema de transmisión de grandes longitudes. Si la demanda es considerable y el sistema de transmisión esta congestionado entonces las pérdidas de energía pueden ser significativas. Estas pérdidas dependen de la resistencia de la línea y la corriente que fluye por ella. Las perdidas pueden ser difíciles para evaluar en forma analítica. De esta manera se establece un método basado en la matriz de coeficiente de perdidas la cual es una aproximación a las perdidas reales del sistema. La pérdida de transmisión depende de la potencia generada por las unidades, la demanda del sistema y la red de transmisión representada por su matriz de impedancia. Para encontrar una relación matemática, primero se aplica la transformación de invariancia de potencia a la matriz de impedancia del sistema para expresar las perdidas solo en términos de la corriente de los generadores. Luego se convierte la corriente de los generadores en potencia de salida de las unidades para poder expresar las perdidas en función de las potencia para un sistema con un numero K de generadores, lo que se puede escribir según las ecuaciones 9 4.4. COORDINACIÓN HIDROTÉRMICA Un problema mas general y básico de la programación hidrotermal a corto plazo requiere que una cantidad dada de agua a ser usada, de tal manera que se minimice el costo de funcionamiento de las unidades térmicas. Vamos a utilizar la sigueinte figura en la creación de este problema. El problema que queremos establecer es el problema de programacion de una planta hidrotermicaa corto plazo donde el sistema de energía está representada por un equivalente unidad, . En este caso, hay una sola planta hidroeléctrica . Suponemos que la hidroeléctrica no es suficiente para suplir toda la carga demandada durante el período y que hay un máximo de volumen total de agua que se puede descargar todo el período de horas. En la creación de este problema y los ejemplos que siguen, asumimos todos los , son cero. La única otra limitación hidráulico que se va a imponer inicialmente es que el volumen total de agua descargada debe ser exactamente como se ha definido. FIGURA # 4 Operación Económica en los Sistemas de Potencias Sistema hidrotérmico con restricciones hidráulicas Donde: j= intervalo = afluencia durante j = volumen al final del intervalo = descarga durante j = derrame durante la descarga 10 Por lo tanto, el problema de programación matemática puede ser configurado como: ∑ Sujeto a: ∑ Donde ∑ Todas las cargas son constantes en este intervalo. Otras consideraciones se impusieron como son: Asumamos la operación de carga constante y asuma la característica q Vs P está disponible como se muestra en la figura: ( ) FIGURA # 4 Operación Económica en los Sistemas de Potencias Características de entrada y salida para unidad hidroeléctrica 11 Tenemos un problema similar para el combustible. La función de Lagrange es: ∑ ( ) ( ) ∑ ( ) Para un intervalo especifico j = k, Por lo tanto: Añadimos las pérdidas al problema: La función de lagrange es: ∑ ( ) ( ) ∑ ( ) Con las ecuaciones de coordinación resultantes (hora k) ( ( ) ) Esto da lugar a una solución de programación más complejo como el que se muestra en la Figura. En este procedimiento de solución y son las respectivas tolerancias en el equilibrio de la carga y de las relaciones de balance hídrico. Tenga en cuenta que este problema pasa por alto las limitaciones de descarga de volumen y hora de cambio. 12 5. DEFINICIÓN DEL PROBLEMA Con este proyecto se trata de buscar la manera de resolver problemas que se presentan en la operación económica de los sistemas de potencias como son el despacho de las unidades considerando las pérdidas de transmisión, la selección más conveniente y económica para suplir una determinada carga así como también la coordinación de unidades térmicas e hidráulicas el cual me permite que el costo de producción de energía de estas unidades sea el más económico, todo esto a través de herramientas computacionales como es Matlab. 6. FORMULACIÓN DEL PROBLEMA SELECCIÓN DE UNIDADES POR EL MÉTODO DE LA LISTA PRIORITARIA Características de las Unidades TABLA # 1 Operación Económica en los Sistemas de Potencias Características de unidades térmicas Unidad Hi (MBtu/hr) 1 510+7.2 +0.00142+ 2 310+7.85 +0.00194+ 3 7.8+7.9 +0.00482+ Pi (MW) Costo ($/MBtu) Mín Máx 1.10 150 600 1.00 100 400 1.20 50 200 TABLA # 2 Operación Económica en los Sistemas de Potencias Costos y tiempos de conexión y desconexión de las unidades térmicas Conexión Desconexión Unidad Tiempo (horas) Costo ($) Tiempo (horas) Costo ($) 1 1 20 1 20 2 1 20 2 20 3 4 20 4 20 Características de la carga TABLA # 3 Operación Económica en los Sistemas de Potencias Datos de carga para cada período Horas Carga (MW) 06h:00-12h:00 1100 12h:00-18h:00 700 18h:00-20h:00 200 20h:00-24h:00 700 24h:00-06h:00 1100 13 DESPACHO ECONÓMICO METODO LAMBDA ITERATIVO CON PÉRDIDAS Características de las Unidades TABLA # 4 Operación Económica en los Sistemas de Potencias Características de unidades térmicas Unidad Fi (MBtu/hr) 1 200+7 +0.008 2 180+6.3 +0.009 3 140+6.8 +0.007 Pi (MW) Mín Máx 10 85 10 80 10 70 Características de Líneas de Transmisión TABLA # 5 Operación Económica en los Sistemas de Potencias Características de líneas de transmisión Datos de las Líneas de Transmisión Z Serie Y Paralelo De barra a barra R[pu] X[pu] B[pu] LINEA 1-4 0.02 0.06 0 LINEA 2-4 0.08 0.24 0 LINEA 3-4 0.06 0.18 0 Características de Barras TABLA # 6 Operación Económica en los Sistemas de Potencias Características de líneas de barras Barra 1 2 3 4 Datos de Barra Generación P[MW] Voltaje[pu] Ángulo[grados] 50.4605 0.97 2.76 54.5115 1 8.58 49.7012 1 5.89 0 0.96 0.89 Carga P[MW] 0 0 0 150 Q [MW] 0 0 0 0 14 COORDINACIÓN HIDROTÉRMICA Función de Costo de Unidad Térmica F(Ps)=3250-0.3P +0.0024P [$/h] Características de Unidad Hidráulica PH=600 [MW] E=3600 MWh Características de la carga TABLA # 7 Operación Económica en los Sistemas de Potencias Características de líneas de la carga Periodo 1 2 3 7. Horas 8 4 12 PD[MW] 1000 2500 2000 MÉTODOS DE SOLUCIÓN SELECCIÓN DE UNIDADES POR EL MÉTODO DE LA LISTA PRIORITARIA %-------------------------------------------------------------------------%---------------SELECCION DE UNIDADES POR LISTA PRIORITARIA---------------%-------------------------------------------------------------------------clc; clear all; disp(' ------------------------------------------------------') disp(' SELECCION DE UNIDADES POR METODO DE LISTA PRIORITARIA') disp(' ------------------------------------------------------') %Especificamos el numero de unidades disponibles n=3; g=2; %Coeficientes de la función de tasa de calor de las unidades Coeficiente=[510 7.2 0.00142; 310 7.85 0.00194; 78 7.97 0.00482]; %Costo ($/MBtu) CIncre=[1.10; 1 ; 1.20]; %Limites de potencia entregada de cada unidad [ Pmin ; Pmax] POT=[150 100 50; 600 400 200]; %-------------------------------------------------------------------------%-------------------------------EJEMPLO 1---------------------------------%-------------------------------------------------------------------------%Durante todo tiempo de duración de la carga, actuan todas las unidades INT = 5; DEM = [1100; 700; 200; 700; 1100]; H = [6; 6; 2; 4; 6]; TCd = [1 20; 2 20; 4 20]; TCa = [1 20; 1 20; 4 20]; %-------------------------------------------------------------------------%Calculando la tasa incremental de calor y el costo promedio de produccion %de cada unidad for i = 1:n t = 0; for j = 1:g+1 t = t + (Coeficiente(i,j) * POT(2,i)^(j-1)); 15 end HPi(i,1) = t/POT(2,i); FPA(i,1) = (t/POT(2,i))*CIncre(i,1); FP=FPA; end %Tasa incremental de calor de las unidades HPi;%Matriz de Hi/Pi %Costo promedio de produccion Fi/pi FP;%Matriz del costo promedio de Produccion Fi/Pi %Matriz que indica el orden de las Unidades for i=1:n Uni(i,1)=i; end %Presentamos la matriz de tiempos y costos de desconexion y arranque ADa(:,1) = Uni; ADa(:,2) = TCa(:,1); ADa(:,3) = TCa(:,2); ADa(:,4) = TCd(:,1); ADa(:,5) = TCd(:,2); %Ordenamos la matriz del costo promedio de Produccion Fi/Pi en orden %ascendente clear i clear j for i=1:n for j=1:n-i if FP(j)>FP(j+1) X=FP(j); FP(j)=FP(j+1); FP(j+1)=X; end end end %Mostramos la matriz de las unidades, su respectiva numeracion, %potencia maxima de cada unidad clear i clear j for i = 1:n for j = 1:n if FP(i,1) == FPA(j,1) Muni(i,1) = j; Muni(i,3) = POT(1,j); Muni(i,4) = POT(2,j); coef(i,:) = Coeficiente(j,:); costo(i,:) = CIncre(j,:); end end end %Matriz de unidades indicando las potencias maximas y minimas y el costo %promedio de produccion ordenados de menor a mayor Muni(:,2) = FP; disp(' ***CARACTERISTICAS DE LAS UNIDADES**** ') disp(' Unidad $/MBtu MWmin MWmax ') disp(Muni) for i = 1:n for j = 1:n if FP(i,1) == FPA(j,1) ADaO(i,:) = ADa(j,:); end end end %Programacion de las unidades clear i for i = 1:n if i == 1 PROuni(i,1) = Muni(i,1); PROuni(i,2) = Muni(i,3); PROuni(i,3) = Muni(i,4); else PROuni(i,1) = PROuni(i-1,1) + Muni(i,1); PROuni(i,2) = PROuni(i-1,2) + Muni(i,3); PROuni(i,3) = PROuni(i-1,3) + Muni(i,4); end end %Matriz de programacion de unidades, se combinan unidades disp(' ***PROGRAMACION DE UNIDADES*** ') disp(' Combinacion Min. MW de Max. MW de ') disp(' comb comb') 16 disp(PROuni) clear j clear i clear h %Ahora hago la primera seleccion de unidades for i = 1:INT h = 0; for j = 1:n if h ~= 1 if DEM(i,1) <= PROuni(j,3) h = 1; M1(i,3) = PROuni(j,1); M1(i,4) = PROuni(j,2); M1(i,5) = PROuni(j,3); end end end end M1(:,1) = H; M1(:,2) = DEM; M1; clear i clear h clear j clear t clear k clear y clear p clear o clear r %Si no es necesario la unidad, determino el numero de horas h h = 0; for i = 1:INT-1 h = h + M1(i,1); if M1(i+1,3) < M1(i,3) t = 0; y = 0; for j = 1:INT-1 if y ~= 1 t = t + M1(j,1); if ( M1(i,3) == M1(j+1,3) ) & ( j+1 > i) H = t-h; y = 1; end end end %Verificamos si el intervalo de tiempo H es mayor q el tiempo %de desconexion mas el tiempo de conexion %Calculamos los dos costos, si tengo suficiente tiempo %primero el costo con la unidad operando Tcd = TCa( (M1(i,3) - M1(i+1,3)) , 1 ) + TCd( (M1(i,3) - M1(i+1,3)) , 1); if H >= Tcd Dc = DEM(i+1,1); Dc1 = DEM(i+1,1); costo2 = 0; CIncre1 = 0; p = 0; for k = 1:n %Encontramos potenciaa para cada unidad sacando la unidad que no es necesaria if Dc > Muni(k,4) Xa1(k,1) = Muni(k,4); Dc = Dc - Muni(k,4); elseif Dc ~= 0 Xa1(k,1) = Dc; Dc = Dc - Dc; else Xa1(k,1) = 0; p = p + 1; if p == 1 Xa2 = ADaO(k,3) + ADaO(k,5); end end %Encontramos el costo F de cada unidad, ademas sacamos el costo por hora %sin la unidad Xa3(k,1) = 0; for y = 1:g+1 Xa3(k,1) = Xa3(k,1) + ( coef(k,y) * ( Xa1(k,1)^(y-1) ) ); 17 end if Xa1(k,1) ~= 0; Xa3(k,1) = Xa3(k,1) * costo(k,1); else Xa3(k,1) = 0; end costo2 = costo2 + Xa3(k,1); end %Encontramos el segundo costo y encontramos P para cada unidad con la %unidad trabajando C2 = ( costo2 * H ) + Xa2; r = 1; clear Pc1 for o = 1:n if (Xa1(o,1) == 0) & (r == 1) %Asignamos a la ultima unidad la potencia minima %ya que el costo promedio de produccion es el mas alto Pc1(o,1) = Muni(o,3); Xa4(o,1) = 0; for y = 1:g+1 Xa4(o,1) = Xa4(o,1) + ( coef(o,y) * ( Pc1(o,1)^(y-1) ) ); end Xa4(o,1) = Xa4(o,1) * costo(o,1); %Aqui tenemos el resto de la demanda a ser depachada MM = Dc1 - Pc1(o,1); r = 0; end end for k = 1:( length(Pc1) - 1 ) %Encontramos P para cada unidad sacando la unidad if MM > Muni(k,4) Pc1(k,1) = Muni(k,4); MM = MM - Muni(k,4); elseif MM ~= 0 Pc1(k,1) = MM; end %Encontramos F de cada unidad Xa4(k,1) = 0; for y = 1:g+1 Xa4(k,1) = Xa4(k,1) + ( coef(k,y) * ( Pc1(k,1)^(y-1) ) ); end Xa4(k,1) = Xa4(k,1) * costo(k,1); %Sacamos el costo por hora de las unidades operando CIncre1 = CIncre1 + Xa4(k,1); end %Determinamos el costo por hora con la unidad CIncre = CIncre1 + Xa4(length(Pc1),1); %Encontramos el primer costo C1 = ( CIncre * H ); %Si tenemos suficiente tiempo y si no me conviene desconectar %la unidad if C1 < C2 PUfinal(i+1,:) = M1(i,:); else PUfinal(i+1,:) = M1(i+1,:); end else PUfinal(i+1,:) = M1(i,:) end elseif M1(i+1,3) > M1(i,3) for s =1:i if M1(i+1,3) == M1(s,3) PUfinal(i+1,:) = PUfinal(s,:); end end else PUfinal(i+1,:) = PUfinal(i,:); end end PUfinal(3,:) = M1(3,:); PUfinal(4,:) = M1(4,:); PUfinal(1,:) = M1(1,:); PUfinal(INT,:) = M1(INT,:); disp(' ***PROGRAMACION FINAL DE UNIDADES PARA DEMANDA EN LOS INTERVALOS DE TIEMPO*** disp(' Intervalo Demanda Combinacion Min. MW Max. MW ') disp(' (Horas) (MW) comb comb') disp(PUfinal ') 18 DESPACHO ECONÓMICO METODO LAMBDA ITERATIVO CON PÉRDIDAS Algoritmo de potencias de entrada de los generadores (lambda sin pérdidas) function[P]=Lambda(n,k,F,Lim,PD,L) format short g %Ingresando parametros de los Generadores L(2,1)=(L(1,1)*(1.1))+0.001; a=1; e=PD; %CALCULO DEL COSTO INCREMENTAL for i=1:n for j=1:k CI(i,j)=F(i,j+1)*j; end end while e>0.00000001 | e<-0.00000001 e=PD; %CALCULO DE LAS RAICES CIord=fliplr(CI); for i=1:n CIord(i,k)=CIord(i,k)-L(a,1); end for i=1:n R(i,:)=roots(CIord(i,:)); end % Calculo de las Potencia for i=1:n for j=1:k-1 if k==2 P(i,1)=R(i,j); end if k==3 if R(i,j)>=0 P(i,1)=R(i,j); end end end end for i=1:n e=e-P(i,1); end d(a,1)=e; a=a+1; if a>2 z=L(a-1,1)-L(a-2,1); y=d(a-2,1)-d(a-1,1); u=(z/y)*d(a-1,1); L(a,1)=u+L(a-1,1); end end b1=0; c1=0; b(1,1)=0; c(1,1)=0; for i=1:n if P(i,1)<Lim(i,1) b(i,1)=i; end end for i=1:n if P(i,1)>Lim(i,2) c(i,1)=i; end end [b1,b2]=size(b); [c1,c2]=size(c); if (b1+c1)>0 e=PD; a=1; 19 Lnuevo(1,1)=L(a,1); Lnuevo(2,1)=(L(1,1)*1.1)+0.001; while e>0.00000001 | e<-0.00000001 e=PD; %CALCULO DE LAS RAICES CIord=fliplr(CI); for i=1:n for j=1:b1 for p=1:c1 if i~=b(j,1) & i~=c(p,1) CIord(i,k)=CIord(i,k)-Lnuevo(a,1); R(i,:)=roots(CIord(i,:)); for m=1:k-1 if k==2 P(i,1)=R(i,m); end if k==3 if R(i,m)>=0 P(i,1)=R(i,m); end end end end if i==b(j,1) P(i,1)=Lim(i,1); end if i==c(p,1) P(i,1)=Lim(i,2); end end end end for i=1:n e=e-P(i,1); end D(a,1)=e; a=a+1; if a>2 Z=Lnuevo(a-1,1)-Lnuevo(a-2,1); Y=D(a-2,1)-D(a-1,1); U=(Z/Y)*D(a-1,1); Lnuevo(a,1)=U+Lnuevo(a-1,1); end end end end Algoritmo de potencias de cálculo de pérdidas totales function [PL]=losses(Lines,Loads,Gen,V,NL,Nb,Nc,Ng,slack,Bs) Aux=diag(Bs(1:Ng,1:Ng)); Bs(:,:)=0; Bs=Bs(1:Ng,1:Ng); for k=1:Ng Bs(k,k)=Aux(k,1); end generacion=Gen(:,3); PL=generacion'* Bs*generacion; end Algoritmo de cálculo de coeficientes b de perdidas function [Real_T_alfa]=coefb(Lines,Loads,Gen,V,NL,Nb,Nc,Ng,slack) %% Calculo de la Ybus Ybus=zeros(Nb,Nb); %Crea una matriz de ceros de NbxNb for k=1:NL sen=Lines(k,1); %guarda el nodo en que se encuntra conectado la linea rece=Lines(k,2);%guarda el nodo en que se encuntra conectado la linea Z=Lines(k,3)+j*Lines(k,4); %Obtiene la impedancia de cada elemento de la matriz lines juntando la resistencia con la reactancia Y=(1/Z);%Saca el inverso de la matriz de impedancias Ybus(sen,rece)=Ybus(sen,rece)-Y;%Multiplica por un signo (-) todos loselementos de la matriz fuera de la diagonal Ybus(rece,sen)=Ybus(rece,sen)-Y; Y=Y+j*Lines(k,5);%Agrega la admitancia en derivacion a la nueva matriz Y 20 Ybus(sen,sen)= Ybus(sen,sen)+Y; Ybus(rece,rece)= Ybus(rece,rece)+Y;%Obtiene la Ybus del sistema end %% Calculo de Zbus Zbus=inv(Ybus); %Calcula la matriz de impedancias Rbus=real(Zbus);%Calculo de la matriz de la parte real de las impedancias de Zbus Xbus=imag(Zbus);%Calculo de la matriz de la parte imaginaria de las impedancias de Zbus %% Calculo de corrientes de cargas R=V(:,1);%LLena un vector R con los voltajes nodales TH=V(:,2)*pi/180;%Convierte el angulo de grados a radianes [Vre,Vim] = pol2cart(TH,R);% Covierte de polar a rectangular Vaux=Vre+j*Vim;%Los valores rectangulares se guardan en este vector for k=1:Nc sen=Loads(k,1);%pregunta por el nodo en que se encuentran las cargas Ic(k,1)=(Loads(k,2)-j*Loads(k,3))/conj(Vaux(sen));%Dependiendo del nodo se calculan las corrientes de carga end %% calculo de la ID ID=ones(1,Nc)*Ic;%Crea un vector fila de 1xNc y lo multiplica por el vector columna Ic para calcular las corrientes totales de carga %% Calculo de las fracciones de carga D=Ic*(1/ID);% %% calculo de las tk dz=0; for k=1:Nc sen=Loads(k,1);%pregunta por el nodo en que se encuentran las cargas dz=dz+D(k)*Zbus(slack,sen);%Sumatoria de los valores del denominador operacion racional de las tk end t=zeros(Ng,1); for k=1:Ng sen=Gen(k,1); t(k,1)=Zbus(slack,sen)/dz;%Calculo de las tk tomando como numerador el elemento 1(slack) y el nodo al que se encuentra conectado la fuente end %% Calculo de la C de transformacion C=zeros(Nb,Ng+1); %Crea una matriz de ceros de NbxNg+1 orderG=zeros(Nb,1); %Crea un vector fila de Nbx1 for k=1:Ng sen=Gen(k,1); %pregunta por el nodo en que se encuentran conectados los generadores C(sen,k)=1; % Coloca un 1 en el elemento (sen,k) orderG(sen)=k; end [uno,r]=max(eq(Gen(:,1),slack)); %%%%%Modificacion orderL=zeros(Nb,1); for k=1:Nc sen=Loads(k,1); %pregunta por el nodo en que se encuentran las cargasorderL(sen)=k; for m=1:Ng %sen2=Gen(m,1) C(sen,m)=-D(k,1)*t(m,1); end C(sen,Ng+1)=C(sen,r);%Llena los elementos de la matriz de tranformacion C end %% calculos de s (fracciones de potencia real en funcion de la potencia reactiva) for k=1:Ng s(k,1)=Gen(k,4)/Gen(k,3); end %% Calculo de las alfas alfa=zeros(Ng,1); %Crea un vector fila de Ngx1 for k=1:Ng sen=Gen(k,1); %Pregunta por el nodo en que se encuentran conectados los generadores alfa(k,1)=(1-j*s(k,1))/conj(Vaux(sen,1)); %Crea un vector de kx1 con los valores de los coeficientes alfa end In_0=-Vaux(slack,1)/Zbus(slack,slack); %Calcula el valor de la corriente de carga nula M_alfa=zeros(Ng+1,Ng+1); %Crea una matriz de Ng+1xNg+1 for k=1:Ng %sen=Gen(k,1) M_alfa(k,k)=alfa(k,1); %Llena una matriz de kxk con los valores de las alfa correspondientes end M_alfa(end,end)=In_0; %% Calculo de la matriz hermitiana T alfa T_alfa=M_alfa*C'*Rbus*conj(C)*conj(M_alfa); Real_T_alfa=real(T_alfa); %Matriz de coeficientes de perdidas B's end 21 Algoritmo de despacho económico lambda iterativo con pérdidas clear; clc; %% CALCULO DEL DESPACHO ECONOMICO DE CARGAS CONSIDERANDO PERDIDAS % Datos de costos NL=3; Nb=4; Nc=1; ng=3; slack=1; PD=150; co=[ 180 140 200 6.3 6.8 7.0 0.009 0.007 0.008 Lines=[ 1 4 2 4 0.08 3 4 0.06 0.02 0.24 0.18 0.06 0 0 ]; V=[ 1 0.99417 0.99745 0.97966 0 0.10783 0.07132 -0.02565 ]; tol=1e-6; lamda=0.0; Loads=[ 4 1.5 0 ]; 0 ]; n=ng; k=2; F=co; Lim=[ 10 100 10 300 10 350 ]; L(1,1)=lamda; [P]=Lambda(n,k,F,Lim,PD,L); for i=1:n Gen(i,1)=i; Gen(i,2)=i; Gen(i,k+1)=P(i,1); Gen(i,k+2)=0; end GEN=Gen; coeficientes=coefb(Lines,Loads,Gen,V,NL,Nb,Nc,ng,slack); Bs=coeficientes/100; delta_Pg=1000; while abs(delta_Pg)>=tol Pg(1,1)=0; % Potencias generadas para el delta P sumPg=0; for k=1:ng Pg(k,1)=(lamda-co(k,2))/(2*(co(k,3)+lamda*Bs(k,k))); sumPg=sumPg+Pg(k,1); end Gen(:,3)=Pg; perdidas=losses(Lines,Loads,Gen,V,NL,Nb,Nc,ng,slack,Bs); % Delta P delta_Pg=PD+perdidas-sumPg; %denominador del delta lamda c=0; for k=1:ng c=c+((co(k,3)+Bs(k,k)*co(k,2))/(2*(co(k,3)+lamda*Bs(k,k))^2)); end % Delta lamda delta_lamda=delta_Pg/c; % Nuevo lamda lamda=lamda+delta_lamda; end b1=0; c1=0; for i=1:n 22 if Pg(i,1)<Lim(i,1) b1=b1+1; end end for i=1:n if Pg(i,1)>Lim(i,2) c1=c1+1; end end if (b1+c1)>0 e=PD; a=1; coeficientes=coefb(Lines,Loads,GEN,V,NL,Nb,Nc,ng,slack); Bs=coeficientes/100; delta_Pg=1000; while abs(delta_Pg)>=tol Pg(1,1)=0; % Potencias generadas para el delta P sumPg=0; for k=1:ng Pg(k,1)=(lamda-co(k,2))/(2*(co(k,3)+lamda*Bs(k,k))); if Pg(k,1)<Lim(k,1) Pg(k,1)=Lim(k,i); end if Pg(k,1)>Lim(k,2) Pg(k,1)=Lim(k,2); end sumPg=sumPg+Pg(k,1); end GEN(:,3)=Pg; perdidas=losses(Lines,Loads,GEN,V,NL,Nb,Nc,ng,slack,Bs); % Delta P delta_Pg=PD+perdidas-sumPg; %denominador del delta lamda c=0; for k=1:ng c=c+((co(k,3)+Bs(k,k)*co(k,2))/(2*(co(k,3)+lamda*Bs(k,k))^2)); end % Delta lamda delta_lamda=delta_Pg/c; % Nuevo lamda lamda=lamda+delta_lamda; end end for i=1:ng Fc=0; for j=1:ng Fc=Fc+(co(i,j)*(Pg(i,1))^(j-1)); end Fcosto(1,i)=Fc; end FTOTAL=0; for i=1:n FTOTAL=FTOTAL+Fcosto(1,i); end disp(' ------------------------') disp('| EL VALOR DE LAMBDA ES |') disp(' ------------------------') disp(lamda) disp(' -----------------------------') disp('| EL VALOR DE LAS PERDIDAS ES |') disp(' -----------------------------') disp(perdidas) disp(' ------------------------------------------') disp('| P1 | P2 | P3 |') disp(' ------------------------------------------') disp(Pg') disp(' ------------------------------------------') disp('| F1 | F2 | F3 |') disp(' -----------------------------------------') disp(Fcosto) disp(' -----------------------------') disp('| EL COSTO TOTAL [$/h] ES |') disp(' -----------------------------') disp(FTOTAL) 23 8. RESULTADOS SELECCIÓN DE UNIDADES POR EL MÉTODO DE LA LISTA PRIORITARIA Tabla # 8 Operación Económica en los Sistemas de Potencias Costo promedio de producción y potencias de las unidades térmicas Unidad $/MBtu MWmín MWmáx 1 9.48 100 400 2 9.79 150 600 3 11.19 50 200 Tabla # 9 Operación Económica en los Sistemas de Potencias Programación de las unidades Combinación Mín. MW de la combinación 100 250 300 2 2+1 2+1+3 Máx. MW de la combinación 400 1000 1200 Tabla # 10 Operación Económica en los Sistemas de Potencias Unidades seleccionadas para los diferentes intervalos de tiempo Horas Carga (MW) Combinación 06h:00-12h:00 12h:00-18h:00 18h:00-20h:00 20h:00-24h:00 24h:00-06h:00 1100 700 200 700 1100 2+1+3 2+1 2 2+1 2+1+3 Mín. MW de la combinación 300 250 100 250 300 Máx. MW de la combinación 1200 1000 400 1000 1200 Resultados Matlab FIGURA # 5 Operación Económica en los Sistemas de Potencias Características, programación y selección de unidades térmicas 24 DESPACHO ECONÓMICO METODO LAMBDA ITERATIVO CON PÉRDIDAS Simulado en Power World FIGURA # 6 Operación Económica en los Sistemas de Potencias Tabla de resultados de flujo de potencia en Power World Simulado en Matlab FIGURA # 7 Operación Económica en los Sistemas de Potencias Resultados de Despacho Económico en Matlab COORDINACIÓN HIDROTÉRMICA Resultado Tabla # 11 Operación Económica en los Sistemas de Potencias Potencias de salida de unidades térmicas e hidráulica PH1 0 PS1 1000 PH2 600 PS2 1900 PH3 100 PS3 1900 25 Resultado Matlab FIGURA # 9 Operación Económica en los Sistemas de Potencias Potencias de salida de unidades térmicas e hidráulica 9. ANÁLISIS DE RESULTADOS Al momento de hacer el procedimiento por matlab con un simulador como power world, quedan pequeñas variaciones en los resultados debido a que para nuestro análisis se asumió que los coeficientes Bo y Boo de la matriz de perdidas eran despreciables. 10. CONCLUSIONES Y RECOMENDACIONES Conclusiones La selecciones de unidades es de gran importancia al optimizar costos de producción, en sistemas donde existe mercado eléctrico este es un gran punto de partida para poder valorar los precios con los cuales se saldrá al mercado. Los coeficientes B son determinados a partir de los resultado de un flujo de potencia convergente por medio de un a transformación invariante en potencia que se base en la parte real (Rbarra) de la Zbarra del sistema. Los coeficientes B no son constantes, varían de acuerdo a los estados de las cargas conectadas al sistema. Al momento de hacer el procedimiento por matlab con un simulador como power world, quedan pequeñas variaciones en los resultados debido a que para nuestro análisis se asumió que los coeficientes Bo y Boo de la matriz de perdidas eran despreciables. Al hacer los algoritmos en matlab de las diferentes funciones, al momento de hacer algún cálculo, matlab resuelve el problema de una manera muy rápida y validera. Al crear subfunciones en matlab en el despacho económico con pérdidas, se hace el algoritmo principal de una manera e que pida datos a las subfunciones para que asi pueda resolverse mas rápido. 26 Recomendaciones Realizar una función para realizar un mejor despacho entre las unidades. Tener en cuenta la capacidad de la herramienta informática para saber con que velocidad se obtendrá la respuesta en ambos métodos. Si las unidades tuvieran funciones de costo similares no habría una diferencia muy sustancial en los resultados obtenidos con uno u otro método. 27