Análisis de Sistemas de Potencia
Nicolas Alejandro Moyano García - 20152007007
Andrés Steven Morales Rodríguez - 20151007083
En el siguiente documento se mostrará el código implementado en cada uno de los casos mostrados en el
documento 1-GARVER, se hablará de la información de cada código y su implementación:
Implementación Matlab:
CÁLCULO DE MATRIZ YBUS:
clc;
clear; Se crea el número de las líneas, y se escribe la impedancia de esta (parte
resistiva y reactancia inductiva), a su vez es establece el parámetro para
% Datos [K M Rkm Xmk Yshunt/2]
Lineas =[1 2 10 0 0; líneas medias para ingresar el valor del efecto capacitivo capacitiva que se
2 3 20 0 0]; presenta en este tipo de líneas
Se establece el número de nodos del sistema de potencia, a
%T:0---->SLACK, 1---->PV,2----->pq su vez se selecciona la naturaleza de cada uno de los nodos,
% nodos [K T Pgk Qgk Pdk Qdk V0 BK]
Nodos = [1 0 0 0 0 0 100 0; es decir; Slack se le asigna el 0, PV el 1 y PQ el 2, estos se
2 2 0 0 20 0 100 0; le ingresan en la columna T. A su vez se ingresa los datos
3 2 0 0 40 0 100 0]; correspondientes a cada nodo según el tipo,
%Sb=100; %Mva
%Vb=230; %Kv
Si el sistema posee valores base se habilitan estas líneas de código, esto con la finalidad
%Nodos(:,3:6)=Nodos(:,3:6)/Sb; de convertir los valores de la columna 3 a la 6 a valores en p.u.
% matriz de admitancias
NL= size(Lineas,1); Se utiliza el comando Y=size(NN,NN) para crear una matriz de ceros con
NN= size(Nodos,1); el tamaño de la matriz de admitancias (en función del número de nodos
Y = zeros(NN,NN);
for j=1:NL que tiene el sistema). Se usa un ciclo for en donde se extrae la información
K= Lineas(j,1); de las líneas (resistencia, reactancia inductiva y efecto capacitivo).
m=Lineas(j,2);
Zkm= Lineas(j,3) + i*Lineas(j,4); Para los términos que están fuera de la diagonal se usa las propiedades de
Ys=i*Lineas(j,5);
Y(K,m)=-1/Zkm; simetría en los apartados de Y(k,m) y Y(m,k) se les agrega el valor
Y(m,K)=-1/Zkm; negativo y la admitancia de estos.
Y(K,K)=Y(K,K)+1/Zkm + Ys;
Y(m,m)=Y(m,m) + 1/Zkm + Ys; Para la diagonal Y(k,k) y Y(m,m) , para calcular todo el efecto de las
end
for K=1:NN líneas en la matriz Ybus y para terminar se agregan los efectos de
Y(K,K)=Y(K,K) +i*Nodos(K,end); compensación del sistema de (Yshunt) con el ultimo for.
end
GAUSS SEIDEL:
Se define la tolerancia para la solución del ejercicio, a su vez se establece el número
e=1e-3;
itemax=1000; máximo de iteraciones.
V0=Nodos(:,7);Vt=V0; Antes de iniciar con el ciclo for, se estable los voltajes iniciales que se encuentran en la
columna 7 de la matriz nodos y esto se realiza con la finalidad de ir actualizando dicho
for t=1:itemax
valor por cada iteración que se realice hasta cumplir la tolerancia establecida.
En este punto se establece qué tipo
for K=1:NN de nodo se va analizar, como se
if Nodos (K,2)== 0 había mencionado si
Vt(K)=Nodos(K,7);
elseif Nodos (K,2)== 1 Nodos(k,2)=0, es decir si es un
Sdk=Nodos(K,5)+i*Nodos(K,6); nodo Slack (no va a cambiar).
Qgk= -imag(conj(Sdk)+conj(Vt(K))*Y(K,:)*Vt); Si Nodos(k,2)=1, es decir un nodo
Sgk= Nodos(K,3)+i*Qgk;
Sk= Sgk-Sdk; PV, por lo tanto se calcula la
Vpv=(1/Y(K,K))*((conj(Sk)/conj(Vt(K)))-Y(K,:)*Vt+Y(K,K)*Vt(K)); potencia demandada y se define el
Va=angle(Vpv);
cálculo de la potencia reactiva.
Teniendo estos valores se calcula S 1
del nodo, y se establece la fórmula
de Gauss Seidel.
Vt(K)=abs(Vt(K))*exp(i*Va);
else Si Nodos(k,2)=2, es decir, si es un
Sdk=Nodos(K,5)+i*Nodos(K,6); nodo PQ, se calcula el valor de Sk
Sgk=Nodos(K,3)+i*Nodos(K,4);
Sk= Sgk-Sdk;
(potencia generada – Potencia
Vt(K)=(1/Y(K,K))*((conj(Sk)/conj(Vt(K)))-Y(K,:)*Vt+Y(K,K)*Vt(K)); demandada), y se utiliza el cálculo
end del voltaje por medio de la fórmula
end
de Gauss Seidel
if max(abs(abs(Vt)-abs(V0))) <=e Se mira si se llegó al error deseado
for K = 1:NN
fprintf('El voltaje en el nodo %d es: V%d = %f<%f\n',K,K,abs(Vt(K)),angle(Vt(K))*180/pi);
end
break
else
V0=Vt;
End
clc Borrar información de Command
clear
format short
Window y Workspace.
%Valores del sistema
V1=(input('Voltaje nodo Slack[kV]:'))*1000;
V2=V1; Ingreso de
V3=V1;
I1=(input('Corriente nodo PV[A]:')); datos del
I2=-(input('Corriente nodo PQ[A]:')); sistema
%Valores base
Vb=(input('Voltaje base [kV]:'))*(1000);
Ib=(input('Corriente base [A]:'));
Zb=Vb/Ib;
%Valores de admitancias
R12=(input('Y12 parte real:'))*Zb; %parte real
I12=(input('Y12 parte imaginaria:'))*Zb; %parte imaginaria
Ingreso de
R13=(input('Y13 parte real:'))*Zb; %parte real
I13=(input('Y13 parte imaginaria:'))*Zb; %parte imaginaria datos del
R23=(input('Y23 parte real:'))*Zb; %parte real sistema
I23=(input('Y23 parte imaginaria:'))*Zb; %parte imaginaria
n=(input('Número de iteraciones:'))-1;
z12=R12+I12*1i;
z13=R13+I13*1i;
z23=R23+I23*1i;
%Declaración matriz Ybus Cálculo de matriz Ybus en pu y Ybus
Y11=(z12)+(z13); real
Y12=-(z12);
Y13=-(z13);
Y21=Y12;
Y22=z12+z23;
Y23=-(z23);
Y31=Y13;
2
Y32=Y23;
Y33=z23+z13;
Ybuspu=[Y11 Y12 Y13; Cálculo de matriz Ybus en pu y Ybus
Y21 Y22 Y23;
Y31 Y32 Y33]; real
Ybus=Ybuspu*(1/Zb);
V1pun=(V1)/Vb;
V2pun=(V2)/Vb;
V3pun=(V3)/Vb;
I1pun=I1/Ib;
I2pun=I2/Ib; Determinación de valores en pu de
V1punv=(V1)/Vb; corrientes y voltajes
V2puv=(V2)/Vb;
V3puv=(V3)/Vb;
I1puv=I1/Ib;
I2puv=I2/Ib;
%iteraciones
for k=1:n+1
V1pun=(1/Y11)*(I1pun-(Y12*V2pun+Y13*V3pun));
V2pun=(1/Y22)*(I2pun-(Y21*V1pun+Y23*V3pun)); Ciclo de
end iteraciones
for k=1:n
V1puv=(1/Y11)*(I1puv-(Y12*V2puv+Y13*V3puv));
V2puv=(1/Y22)*(I2puv-(Y21*V1puv+Y23*V3puv));
end
%Valores de la iteaciones
V1pun; %Valor V1 en pu en la n iteración
h1r=real(V1pun);
h1i=imag(V1pun);
h1m=((h1r^2)+(h1i^2))^(1/2); Conversión de números
h1teta=(angle(V1pun))*180/pi; rectangulares a polares
V2pun; %Valor V2 en pu en la n iteración
h2r=real(V2pun);
h2i=imag(V2pun);
h2m=((h2r^2)+(h2i^2))^(1/2);
h2teta=(angle(V2pun))*180/pi;
V1puv; %Valor V1 en pu en la n-1 iteración
V2puv; %Valor V2 en pu en la n-1 iteración
%Calculo error
ErrorV1=abs(V1pun-V1puv); Se calcula el error ente la iteración
ErrorV2=abs(V2pun-V2puv); n e iteración n-1
%Matriz Voltajes
Vn=[(V1pun*V1);(V2pun*V2);V3];
V1r=Vn(1,1);
g1r=real(V1r);
g1i=imag(V1r); Se arma la matriz de tensiones, a
g1m=((g1r^2)+(g1i^2))^(1/2);
g1teta=(angle(V1r))*180/pi; su vez se hace la conversión de
rectangular a polar
3
V2r=Vn(2,1);
g2r=real(V2r);
g2i=imag(V2r);
g2m=((g2r^2)+(g2i^2))^(1/2);
g2teta=(angle(V2r))*180/pi;
V3r=Vn(3,1);
%Calculo corrientes
In=Ybus*Vn;
I1r=In(1,1);
f1r=real(I1r);
f1i=imag(I1r);
f1m=((f1r^2)+(f1i^2))^(1/2);
f1teta=(angle(I1r))*180/pi; Se multiplica la matriz Ybus con la
I2r=In(2,1); matriz de tensiones para calcular
f2r=real(I2r); las corrientes
f2i=imag(I2r);
f2m=((f2r^2)+(f2i^2))^(1/2);
f2teta=(angle(I2r))*180/pi;
I3r=In(3,1);
f3r=real(I3r);
f3i=imag(I3r);
f3m=((f3r^2)+(f3i^2))^(1/2);
f3teta=(angle(I3r))*180/pi;
%Flujos de potencia
%%_________________________________________________________________________________
______
S12=(V1r)*conj((V1r-V2r)*(Ybus(1,2)));
T12r=real(S12);
T12i=imag(S12);
T12m=((T12r^2)+(T12i^2))^(1/2);
T12teta=(angle(S12))*180/pi;
S21=(V2r)*conj((V2r-V1r)*(Ybus(2,1)));
T21r=real(S21);
T21i=imag(S21);
T21m=((T21r^2)+(T21i^2))^(1/2);
T21teta=(angle(S21))*180/pi;
S13=(V1r)*conj((V1r-V3r)*(Ybus(1,3)));
T13r=real(S13);
T13i=imag(S13); Cálculo de flujo de potencia y
T13m=((T13r^2)+(T13i^2))^(1/2); conversión de rectangular a polar
T13teta=(angle(S13))*180/pi;
S31=(V3r)*conj((V3r-V1r)*(Ybus(3,1)));
T31r=real(S31);
T31i=imag(S31);
T31m=((T31r^2)+(T31i^2))^(1/2);
T31teta=(angle(S31))*180/pi;
S23=(V2r)*conj((V2r-V3r)*(Ybus(2,3)));
T23r=real(S23);
T23i=imag(S23);
T23m=((T23r^2)+(T23i^2))^(1/2);
T23teta=(angle(S23))*180/pi;
S32=(V3r)*conj((V3r-V2r)*(Ybus(3,2))); Cálculo de flujo de potencia y
T32r=real(S32); conversión de rectangular a polar
T32i=imag(S32);
T32m=((T32r^2)+(T32i^2))^(1/2);
T32teta=(angle(S32))*180/pi;
4
%Pérdidas del sistema
Sp12=S12+S21;
O12r=real(Sp12);
O12i=imag(Sp12);
O12m=((O12r^2)+(O12i^2))^(1/2); Pérdidas den las barras y
O12teta=(angle(Sp12))*180/pi; conversión de rectangular a polar
Sp13=S13+S31;
O13r=real(Sp13);
O13i=imag(Sp13);
O13m=((O13r^2)+(O13i^2))^(1/2);
O13teta=(angle(Sp13))*180/pi;
Sp23=S23+S32;
O23r=real(Sp23);
O23i=imag(Sp23);
O23m=((O23r^2)+(O23i^2))^(1/2);
O23teta=(angle(Sp23))*180/pi;
%%COMPROBCIÓN DE LAS ITERACIONES OBTENIDAS
%%cálculo de tensiones de las lineas
VL12=V1r-V2r;
U12r=real(VL12);
U12i=imag(VL12);
U12m=((U12r^2)+(U12i^2))^(1/2);
U12teta=(angle(VL12))*180/pi;
VL23=V2r-V3r;
U23r=real(VL23);
U23i=imag(VL23);
U23m=((U23r^2)+(U23i^2))^(1/2);
U23teta=(angle(VL23))*180/pi;
VL31=V3r-V1r;
U31r=real(VL31);
U31i=imag(VL31); Usando L.V.K se calculan las
U31m=((U31r^2)+(U31i^2))^(1/2); corrientes de las ramas, a su vez se
U31teta=(angle(VL31))*180/pi; realiza la conversión de
%%cálculo de corrientes de las lineas
IL12=VL12*Ybus(1,2);
rectangular a polar
B12r=real(IL12);
B12i=imag(IL12);
B12m=((B12r^2)+(B12i^2))^(1/2);
B12teta=(angle(IL12))*180/pi;
IL23=VL23*Ybus(2,3);
B23r=real(IL23);
B23i=imag(IL23);
B23m=((B23r^2)+(B23i^2))^(1/2);
B23teta=(angle(IL23))*180/pi;
IL31=VL31*Ybus(3,1);
B31r=real(IL31);B31i=imag(IL31);
B31m=((B31r^2)+(B31i^2))^(1/2);
B31teta=(angle(IL31))*180/pi;
%%Cálculo de corrientes en los nodos
IN3=IL23-IL31;
N3r=real(IN3); Usando L.V.K se calculan las
N3i=imag(IN3);
N3m=((N3r^2)+(N3i^2))^(1/2);
corrientes de los nodos, a su vez se
N3teta=(angle(IN3))*180/pi; realiza la conversión de
IN2=IL12-IL23; rectangular a polar
N2r=real(IN2);
5
N2i=imag(IN2);
N2m=((N2r^2)+(N2i^2))^(1/2);
N2teta=angle(IN2)*180/pi; Usando L.V.K se calculan las
IN1=IL31-IL12; corrientes de los nodos, a su vez se
N1r=real(IN1); realiza la conversión de
N1i=imag(IN1);
N1m=((N1r^2)+(N1i^2))^(1/2);
rectangular a polar
N1teta=angle(IN1)*180/pi;
%%Cálculo de potencias en las lineas
SL12=VL12*(conj(IL12));
PL12=real(SL12);
QL12=imag(SL12);
N12m=((PL12^2)+(QL12^2))^(1/2);
N12teta=angle(SL12)*180/pi; Cálculo de las potencias en cada
SL23=VL23*(conj(IL23)); uno de las ramas y conversión de
PL23=real(SL23); rectangular a polar
QL23=imag(SL23);
N23m=((PL23^2)+(QL23^2))^(1/2);
N23teta=angle(SL23)*180/pi;
SL31=VL31*(conj(IL31));
PL31=real(SL31);
QL31=imag(SL31);
N31m=((PL31^2)+(QL31^2))^(1/2);
N31teta=angle(SL31)*180/pi;
end
Newton Raphson y Newton Raphson desacoplado
Para el caso de Newton se opto por exportar la información del sistema desde un Excel llamado Newton como se
muestra a continuación:
6
7
8
Sin esta sección es Newton
Normal, cuando esta activa es
Newton Raphson desacoplado
9
10
11
Flujo de carga DC
12
13
MATPOWER
Para la comprobación para los métodos de Newton, Newton desacoplado y flujo de carga DC se utilizó la
herramienta llamada MATPOWER, esto es un paquete de archivos gratuitos y de código abierto en lenguaje Matlab
para resolver problemas de simulación y optimización del sistema de energía de estado estable, tales como:
• Flujo de energía (PF)
• Flujo de energía continua (CPF)
• Flujo de energía óptimo
Está pensado como una herramienta de simulación para investigadores y educadores que es fácil de usar y modificar.
MATPOWER está diseñado para ofrecer el mejor rendimiento posible mientras mantiene el código simple.
La funcionalidad principal de MATPOWER es resolver problemas de potencia y potencia óptima. Esto implica tres
aspectos fundamentales los cuales son:
1. Preparar los datos de entrada a todos los parámetros relevantes del sistema de alimentación.
2. Invocar la función para ejecutar la simulación.
3. Visualizar y acceder a los resultados que se imprimen en la pantalla y/o se guardan en estructuras de datos
de salida.
Los datos de entrada del archivo caso# que se va a simular se especifican en un conjunto de matrices de datos
empaquetadas como campos de una estructura de Matlab, denominada estructura de “MATPOWER Case" y se
indican convencionalmente mediante la variable mpc. Esta estructura suele ser en un “case file”.
Para entender la dinámica a la hora de usar esta herramienta se mostrará a continuación la metodología que se
debe seguir para uno de los casos predeterminados de MATPOWER, el cual será el case4gs.m.
14
Fig. 1. Área de trabajo de MATPOWER case4gs.m
Ya con la estructura definida en el case4gs.m debemos preparar la entrada de todos los ejercicios propuestos para
la presente actividad. Como primer paso definiremos todos los datos de la matriz “bus data” (observar figura 1),
para esto nos apoyaremos en el manual de MATPOWER y extraemos la tabla “Table B-1: Bus Data ([Link])”
(Observar figura 2) que nos indicará que datos ingresar en cada una de las columnas, se debe prestar mucha atención
en lo que indica cada columna dado a que algunos datos los solicita en valores reales y otros en por unidad.
15
Fig. 2. Tabla de datos a ingresar para la tabla de nodos ([Link]) del manual de MATPOWER.
Como se observa en la figura 2 nos definen las características de los datos que se solicitan en cada una de las
columnas de la matriz bus data mostrada en la figura 1, como el número de nodos, tipo de nodo, potencia activa
generada, potencia reactiva generada, potencia activa demandada, potencia reactiva demandada, voltajes y ángulos.
Luego de esto se prepararán los datos de la matriz “generator data” apoyados en la tabla “Table B-2: Generator
Data ([Link])” (observar figura 3), donde solo se ingresará la información de los nodos PV y Slack.
Fig. 3. Tabla de datos a ingresar para la tabla de generación ([Link])
16
Finalmente tenemos la matriz “Branch data” donde se sigue la misma metodología de las otras dos matrices donde
por medio de la información brindada por la tabla “Table B-3: Branch Data ([Link])” (observar figura 4) los
datos que ingresaremos en ella son los correspondientes a las impedancias que generan las pérdidas en las líneas.
Fig. 4. Tabla de datos a ingresar para la tabla de ramas ([Link])
La función runpf de MATPOWER ofrece el análisis por el método de newton Raphson por defecto para ver el
informe del análisis de flujo realizado simplemente se ejecuta en la ventana de comandos runpf(nombre del caso):
17
Fig. 5. Informe arrojado por el método de Newton Raphson en MATPOWER.
Como se observa en la figura 5 se ven en cual iteración convergió el sistema de potencia, se ve los valores de
tensión en cada una de las barras, el flujo de potencia y las pérdidas totales del sistema.
Para el análisis de flujo de carga en DC simplemente cambiamos la función a rundcpf y se establece en la ventana
de comandos de forma similar, rundcpf(nombre del caso).
18
Fig. 6. Informe generado por el método de flujo de carga en DC en MATPOWER.
Para obtener el análisis por newton Raphson desacoplado seguiremos los comandos que se presentarán a
continuación
>>mpot=mpoption('[Link]','FDXB','verbose',3)
>>runpf(nombre del caso,mpot)
19
Fig. 7. Informe generado por el método de Newton Raphson desacoplado en MATPOWER.
20
Fig. 8. Informe generado pro Gauss-Seidel
Gauss-Seidel analizado en Matlab por Matpower se implementa el código en la ventana de comandos presentada a
continuación.
>>mpot=mpoption('[Link]','GS','verbose',3)
>>runpf(nombre del caso,mpot)
Dado a que Matpower maneja la misma tolerancia independientemente los casos es evidente el gran número de
iteraciones que se realizan método de Gauss Seidel es mucho mayor que el de los otros métodos por lo cuál resulta
más eficiente implementar otros métodos.
Las instrucciones anteriormente descritas fueron las que se utilizaron para el desarrollo de esta actividad teniendo
claro la magnitud de la herramienta MATPOWER y las múltiples funciones que nos puede ofrecer para hacer
análisis de flujos de potencia.
21
GAMS
GAMS que por sus siglas significa “General Algebraic Modeling System” es un software de alto nivel para el
modelado de sistema para la optimización matemática que para este caso nos servirá para el análisis de flujo de
potencia con y sin perdidas teniendo en cuenta todos los costos por MWh, construcción de cada una de las líneas
nuevas para caso B y C e implementación únicamente para el caso C de baterías donde se presentará los casos de
generación de estas y carga de las mismas por lo cual nos generará uno por uno los escenarios que se presentarán
en el análisis del documento “Battery energy storage systems in transmission network expansion planning” .
Como ya se había hablado anteriormente se presentaron 3 casos los cuales se explicarán brevemente a continuación.
Como caso A en el cuál se presenta el Sistema GARVER sin tomar en cuenta el nodo 6 por lo cual GAMS realiza
el proceso de optimización sin la creación de nuevas líneas ni la implementación de baterías, en este como en los
siguientes casos se presenta demandas iniciales como las presentadas en el documento sin perder de vista cada uno
de los seis distintos coeficientes de demanda de los escenarios propuestos para el análisis del proyecto.
Fig. 9. Simulación digsilent para la representación del caso A
Para este caso inicialmente en GAMS solo se toman en cuenta los nodos del uno al cinco y para cada uno de estos
existe una carga relacionada que está variará posteriormente con las especificaciones de demanda de cada caso.
Como objetivo del presente documento se realizará una breve explicación de los datos de interés para el análisis del
flujo de potencia y optimización que se obtienen del desarrollo de GAMS.
22
En la Fig. 10 se presentarán los
parámetros iniciales que se
asignarán para realizar las
posteriores representaciones del
sistema donde en sets tenemos las
variables y cantidad de estas que
definen cada uno de los conjuntos
que representan en las
condiciones iniciales del sistema.
En MAP2 asociamos cada uno de
los nodos con sus respectivas
cargas las cuales irán variando en
cada uno de los casos de acuerdo
a su coeficiente de demanda.
Fig. 10. Parámetros iniciales en GAMS
Finalmente tenemos MAP Asocia cada uno de los nodos que tienen generación con los generadores pertenecientes
a los mismos no sobra indicar que para el nodo uno tenemos un generador de 150MW en el nodo tres tenemos tres
generadores de 120 MW, estos variaran de acuerdo al escenario indicado.
Para la tabla GDATOS representada en la
Fig 11 se asignan los datos de cada uno
de las diez generaciones implicadas en el
sistema GARVER donde se establecen
los límites de potencia máxima para cada
uno de los generadores y el costo en
E/MWh correspondiente, como se verá
en el desarrollo del ejercicio.
Observaremos que no necesariamente
participaran cada una de las unidades de
generación y así mismo estas no
funcionarán necesariamente a la totalidad
de su capacidad.
Fig. 11. Asignación datos en matriz GDATOS
Para la tabla LDATOS se asignarán cada uno de los datos necesarios en el modelamiento de las líneas de todas las
líneas que se podrán construir en el sistema, el programa solicitará no los valores de reactancia y resistencia si no
los de susceptancia y admitancia correspondientemente, así misma el mismo solicitará información acerca de
cuáles líneas están o no conectadas y el costo relacionado por cada una de ellas. Finalmente se solicitará ingresar
la cargabilidad relacionada a cada línea la cual dada a como se presenta el modelo GARVER.
23
Fig. 12. Tabla de datos de modelamiento de líneas
La demanda máxima se establece dividiendo por 5 la demanda
de cada una de las 5 cargas generales . Se establece la demanda
mínima y máxima y el costo marginal por cada MWh.
La tabla DDATOS representa la demanda máxima relacionada
para cada uno de los bloques y genera un costo correspondiente
a cada uno de estos, cada uno de los datos relacionados a la Fig
14 están vinculados al caso base del sistema GARVER.
Fig. 13. Variables GAMS
Fig. 14. Demanda para caso base GAMS
24
Para Variables representada en la Fig 13 se generan los informes objetivo que se serán presentados al momento de
correr el código en GAMS, los cuales usaremos para el momento de realizar los análisis en ellos tomaremos los
flujos de carga con y sin perdidas, la generación por cada nodo y también se verificarán cada una de las líneas
construidas.
Fig. 15. Parámetros
En la Fig 15 encontramos los parámetros de demanda de los que se estaba haciendo referencia anteriormente los
cuales parten del caso base y se multiplican desde un coeficiente de 1 hasta el de máxima demanda que será el de
3.33, se añaden adicionalmente las variables de peso por escenario donde todos se toman de igual forma por lo cual
para cada escenario es igual a uno sobre la cantidad de escenarios.
Adicionalmente el desarrollo en GAMS también ofrece muchos más datos de interés, pero dado al alcance del
trabajo se omitirán en la explicación del presente documento, para tener en cuenta este código muestra todas las
ecuaciones involucradas en el informe como los costos, potencia máxima, potencia mínima, balance de potencia,
máximo flujo de potencia y demás datos.
Anteriormente se presento brevemente el desarrollo de lo código en GAMS para el caso A, la dinámica en el resto
de los casos, aunque se describirá a grandes rasgos los casos analizados donde tenemos expansión de líneas para el
caso B y la adición de baterías del caso C.
REPRESENTACIÓN DATOS GAMS
Como se vino realizando previamente se demostrará la dinámica para el caso A del trabajo para el sistema GARVER
en tanto a la representación de los resultados del código que se explico brevemente. Del sistema en GAMS se
extrajeron los datos correspondientes a flujo con y sin perdidas, la construcción de nuevas líneas , la implementación
de baterías y las generaciones nodales correspondientes a cada escenario generado por cada coeficiente de demanda.
En el archivo con extensión .Ist tendremos la compilación de
todos los datos que ofrece GAMS con el código que se corrió en
este, dentro de SolVAR encontramos nuestro datos de interés
para esta entrega. Los datos que se resaltan en la Fig 16 que a
partir de estos obtenemos los flujos con y sin perdidas, líneas
construidas, potencia generada, carga y para el caso de las
baterías en esta misma lista encontraremos la participación o no
de baterías y la carga o descarga de las mismas.
Fig. 16. Archivo con extensión Ist
25
Fig. 17. Resumen con algunos datos obtenidos de GAMS
En la Fig 17 se observan algunas de las tablas y pocos datos que se obtienen del informe de resultados de estos
donde obtenemos magnitudes relacionadas a lo anteriormente mencionadas y que estos se observarán a profundidad
en cada una de las tablas del documento principal que ilustra los datos relacionados a todo lo visto con flujos de
carga y demás datos que se analizarán en este.
26