implementación en digsilent de algortimos geneticos

6
“XVIII International Congress of Electronic, Electrical and Systems Engineering” Id: ABC-000 Página 1 de 6 ResumenEl presente trabajo consta de la implementación de algoritmos genéticos aplicados a la solución de flujo de potencia, en DIgSILENT PowerFactory. Esta implementación se hizo mediante el módulo de Lenguaje de Programación de DIgSILENT (DIgSILENT Program Language). Para tal objetivo se utilizó la base de datos que proporciona dicho programa, y su posterior uso en el desarrollo de las ecuaciones de flujo de potencia relacionadas a los algoritmos genéticos, ejecutándolo en el sistema de 9 barras del IEEE. De esta manera, se puede hallar el flujo de potencia con algoritmos genéticos en cualquier sistema diseñado en esta plataforma y con los mismos elementos presentes en el sistema de 9 barras IEEE. ÍndicesAlgoritmos genéticos (Genetic Algorithms), DIgSILENT, Flujo de potencia (Load Flow), Análisis Computacional de Sistemas de Potencia (Power Systems Analisys Computing). I. NOMENCLATURA AG Algoritmos Genéticos. SEP Sistema Eléctrico de Potencia. DPL Lenguaje de Programación de DIgSILENT (DigSilent Program Language). P.U. Por Unidad (Per Unit). II. INTRODUCCIÓN STE trabajo desarrolla la implementación de los AG para la solución de flujo de potencia en DPL. La Referencia [1], nos muestra este método alternativo de solución a flujos de potencia y además nos da las bases necesarias para la implementación de dicho algoritmo. Este trabajo propone adaptar los AG a la plataforma DPL, mejorando su aplicación a un sistema que contenga los elementos presentes en el sistema 9 barras IEEE. Se agradece el apoyo de la Facultad de Ingeniería Eléctrica y Electrónica por brindarnos el uso del programa DIgSILENT, con serial number 14.0:40192855 para la versión 14.0 build 511.Así también agradecemos el apoyo económico del Power & Energy Society de la REIEE UNI. A. Ataupillco Maldonado , Lima ,Perú ([email protected]) J. L. Cabrera Chirre , Lima, Perú ([email protected]) N. Haro Lopez, Lima, Perú ( [email protected]) S. E. Trujillo Arana, Lima, Perú ( [email protected]) III. DESARROLLO A. Antecedentes Los AG representan un método de solución de búsqueda y optimización que simula los procesos que intervienen en la evolución biológica de las especies; mediante el cual se pueden resolver determinados problemas, tal es el caso de la solución de flujo de potencia de un SEP. La Referencia [2] nos muestra un ejemplo de codificación de AG en MATLAB, del cual nos valemos para la elección de determinados comandos presentes en el DPL. Para la descripción de un SEP, DIgSILENT nos provee de información detallada de cada elemento, en su entorno gráfico. B. Tópicos de programación en DPL Para poder llevar a cabo la elaboración de un código de programación en DPL, se debe tener conocimientos básicos de dicha plataforma, por lo que este trabajo de investigación se basó en la ayuda (help) que brinda el propio programa [3]. 1) Declaración de variables La plataforma de programación DPL, tiene la característica de declarar previamente cada una de las variables a utilizar. Es por tal motivo que es necesario precisar los diferentes tipos de variables que usaremos en este trabajo. a) Variable set Este tipo de variable define a aquellas que representará un listado de objetos, por ejemplo, todas las barras del sistema. b) Variable object Define a cada uno de los elementos listados en la variable set, por ejemplo, la barra 1 y sus características. c) Variable string Define a las variables que almacenan cadenas de caracteres. d) Variable double Se utiliza para definir variables numéricas que contengan una determinada cantidad de decimales. e) Variable int Se utiliza para definir variables que almacenen números enteros. Implementación en DIgSILENT PowerFactory de Algoritmos Genéticos para la Solución de Flujo de Potencia A. Ataupillco M., J. L. Cabrera C. Student IEEE, N. H. López Student IEEE, S. E. Trujillo A. ,Student IEEE E

Upload: reieee-uni

Post on 22-Mar-2016

245 views

Category:

Documents


10 download

DESCRIPTION

Paper 2: Implementación en DIgSILENT PowerFactory de Algoritmos Genéticos para la Solución de Flujo de Potencia A. Ataupillco M., J. L. Cabrera C. Student IEEE, N. H. López Student IEEE, S. E. Trujillo A. ,Student IEEE

TRANSCRIPT

Page 1: Implementación en DigSILENT de Algortimos Geneticos

“XVIII International Congress of Electronic, Electrical and Systems Engineering”

Id: ABC-000 Página 1 de 6

Resumen—El presente trabajo consta de la implementación de

algoritmos genéticos aplicados a la solución de flujo de potencia,

en DIgSILENT PowerFactory. Esta implementación se hizo mediante el módulo de Lenguaje

de Programación de DIgSILENT (DIgSILENT Program

Language). Para tal objetivo se utilizó la base de datos que

proporciona dicho programa, y su posterior uso en el desarrollo

de las ecuaciones de flujo de potencia relacionadas a los

algoritmos genéticos, ejecutándolo en el sistema de 9 barras del

IEEE.

De esta manera, se puede hallar el flujo de potencia con

algoritmos genéticos en cualquier sistema diseñado en esta

plataforma y con los mismos elementos presentes en el sistema de

9 barras IEEE.

Índices—Algoritmos genéticos (Genetic Algorithms),

DIgSILENT, Flujo de potencia (Load Flow), Análisis

Computacional de Sistemas de Potencia (Power Systems Analisys

Computing).

I. NOMENCLATURA

AG – Algoritmos Genéticos.

SEP – Sistema Eléctrico de Potencia.

DPL – Lenguaje de Programación de DIgSILENT

(DigSilent Program Language).

P.U. – Por Unidad (Per Unit).

II. INTRODUCCIÓN

STE trabajo desarrolla la implementación de los AG para

la solución de flujo de potencia en DPL.

La Referencia [1], nos muestra este método alternativo

de solución a flujos de potencia y además nos da las bases

necesarias para la implementación de dicho algoritmo. Este

trabajo propone adaptar los AG a la plataforma DPL,

mejorando su aplicación a un sistema que contenga los

elementos presentes en el sistema 9 barras IEEE.

Se agradece el apoyo de la Facultad de Ingeniería Eléctrica y Electrónica por

brindarnos el uso del programa DIgSILENT, con serial number

14.0:40192855 para la versión 14.0 build 511.Así también agradecemos el

apoyo económico del Power & Energy Society de la REIEE – UNI.

A. Ataupillco Maldonado , Lima ,Perú ([email protected])

J. L. Cabrera Chirre , Lima, Perú ([email protected])

N. Haro Lopez, Lima, Perú ([email protected])

S. E. Trujillo Arana, Lima, Perú ([email protected])

III. DESARROLLO

A. Antecedentes

Los AG representan un método de solución de búsqueda y

optimización que simula los procesos que intervienen en la evolución biológica de las especies; mediante el cual se

pueden resolver determinados problemas, tal es el caso de la

solución de flujo de potencia de un SEP.

La Referencia [2] nos muestra un ejemplo de codificación

de AG en MATLAB, del cual nos valemos para la elección de

determinados comandos presentes en el DPL.

Para la descripción de un SEP, DIgSILENT nos provee de

información detallada de cada elemento, en su entorno gráfico.

B. Tópicos de programación en DPL

Para poder llevar a cabo la elaboración de un código de

programación en DPL, se debe tener conocimientos básicos

de dicha plataforma, por lo que este trabajo de investigación

se basó en la ayuda (help) que brinda el propio programa

[3].

1) Declaración de variables

La plataforma de programación DPL, tiene la característica de declarar previamente cada una de las variables a utilizar. Es

por tal motivo que es necesario precisar los diferentes tipos de

variables que usaremos en este trabajo.

a) Variable set

Este tipo de variable define a aquellas que representará un

listado de objetos, por ejemplo, todas las barras del sistema.

b) Variable object

Define a cada uno de los elementos listados en la variable

set, por ejemplo, la barra 1 y sus características.

c) Variable string

Define a las variables que almacenan cadenas de caracteres.

d) Variable double

Se utiliza para definir variables numéricas que contengan

una determinada cantidad de decimales.

e) Variable int

Se utiliza para definir variables que almacenen números

enteros.

Implementación en DIgSILENT PowerFactory

de Algoritmos Genéticos para la Solución de

Flujo de Potencia A. Ataupillco M., J. L. Cabrera C. Student IEEE, N. H. López Student IEEE, S. E. Trujillo A. ,Student IEEE

E

Page 2: Implementación en DigSILENT de Algortimos Geneticos

“XVIII International Congress of Electronic, Electrical and Systems Engineering”

Id: ABC-000 Página 2 de 6

2) Extensiones de elementos del sistema

a) ElmTerm

Corresponde al objeto barra del SEP.

b) ElmTr2

Corresponde al objeto transformador de dos devanados del

SEP.

c) ElmSym

Corresponde al objeto máquina síncrona que se encuentra

en el SEP.

d) ElmLne

Corresponde al objeto línea de transmisión del SEP.

e) ElmLod

Corresponde al objeto carga ubicado en el SEP.

3) Métodos para la obtención de datos

a) Métodos para variables tipo set:

El método AllRelevant(), devuelve el conjunto de

objetos como barras, líneas, transformadores,

generadores o cargas, para posteriormente poder

almacenar dicho conjunto en una variable tipo set.

SortToName(0) es el método que ordena los objetos

dentro de un set según su nombre.

Count() es el método que retorna el número de

objetos.

First() es el método que retorna el primer objeto.

Next() es el método que retorna el siguiente objeto.

b) Métodos para las variables tipo object

GetNode() es el método que retorna los nodos conectados al objeto.

objeto:loc_name es el método que retorna el nombre

del objeto.

objeto:vtarget es el método que retorna el valor del

voltaje nominal.

objeto:plini es el método que retorna el valor de la

potencia activa de la carga.

objeto:qlini es el método que retorna el valor de la

potencia reactiva de la carga.

objeto:pgini es el método que retorna el valor de la

potencia activa generada.

objeto:qgini es el método que retorna el valor de la

potencia reactiva generada.

objeto:bustp es el método que retorna el voltaje en

P.U. en los bornes del generador.

objeto:dline es el método que retorna la longitud de

la línea.

objeto:R1 es el método que retorna la resistencia por

kilómetro de la línea.

objeto:X1 es el método que retorna la reactancia por kilómetro de la línea.

objeto:uline es el método que retorna el voltaje

nominal de la línea.

objeto:bline es el método que retorna la susceptancia

por kilómetro de la línea.

objeto:strn es el método que retorna la potencia

nominal del transformador.

objeto:uktr es el método que retorna la reactancia del

transformador.

C. Administración de datos

1) Creación de una matriz en DPL

En DPL, administrar datos en matrices es una gran ventaja.

Las matrices que se deseen usar en un Comando DPL (DPL

Comand) deben crearse dentro del mismo, esto es posible entrando en el Contenido (Contents) del Comando DPL y

creando un objeto de la forma *.IntMat como se muestra en la

Fig. 1.

Fig. 1. Ventana de creación de una matriz en DPL.

2) Métodos para matrices en DPL

En DPL, el manejo de las matrices es muy diferente al uso

general.

a) Método Init

Mediante este método se le asigna las dimensiones que

tendrá la matriz, así también asignándole valores igual a cero

para todos sus elementos.

Los valores que requiere este método son las dimensiones

de la matriz, que supongamos, son Ncol y Nfil para columnas

y filas respectivamente.

Page 3: Implementación en DigSILENT de Algortimos Geneticos

“XVIII International Congress of Electronic, Electrical and Systems Engineering”

Id: ABC-000 Página 3 de 6

Entonces el modo de usar este método para una matriz M es

M.Init(Nfil,Ncol).

b) Método Set

Mediante este método se puede asignar un valor de tipo

double o int a un elemento de la matriz en DPL. La forma de

asignar un valor v al elemento de la primera columna y la

primera fila de la matriz M es M.Set(1,1,v), a manera de

ejemplo.

c) Método Get

Este método tiene como objetivo asignar a una variable,

previamente declarada, el valor correspondiente a un elemento

de una matriz. Usando el ejemplo anterior, su uso adecuado es

v = M.Get(1,1).

D. Impresión de datos

Para mostrar los resultados de un Comando DPL a un

usuario, se debe tener conocimiento básico de la función

printf, para la cual debe tenerse las siguientes consideraciones.

Sea d una variable del tipo double con un valor asignado,

así también, s una de tipo string con una cadena de caracteres asignada. La manera de imprimir estos valores es

printf(‘%s %f ’,s,d), donde los símbolos de porcentaje y la

letra que le sigue, indican las variables declaradas en la

función en su orden respectivo.

E. Datos previos

Los datos principales de los elementos que conforman el SEP a analizar, necesarios para la ejecución de los AG,

pueden ser obtenidos directamente del entorno gráfico del

DIgSILENT. Para administrar dichos datos se optó por el uso

de matrices, cuyo tratamiento se explica en la sección III-C.

1) Datos de la barra

En nuestro análisis se usará una matriz denominada pbarra,

en la cual cada fila representará a una barra del sistema, y cada

columna será una característica referida a cada barra. Estas

son: número de la barra, indicador del tipo de barra, voltaje

nominal en P.U., potencia activa generada, potencia reactiva generada, potencia activa de carga, potencia reactiva de carga,

en ese orden; cabe mencionar que los valores de dichas

potencias se llevaron a sus valores en P.U.

2) Datos de las conexiones

En nuestro análisis, las conexiones se entenderán por líneas

de transmisión y transformadores. Las características de estas

conexiones se implementarán en una matriz denominada

mconex, donde los datos almacenados en cada columna

corresponden al valor de resistencia, reactancia y susceptancia

para determinada conexión, indicada en cada fila. Estos valores de transformaron a P.U., así mismo la matriz mconex

presenta los números de las barras a las cuales enlaza cada

conexión.

3) Matriz de admitancia

La red de un SEP puede ser representada por medio de su

matriz de admitancia como se muestra en la Referencia [4].

Para su implementación en DPL, la forma más favorable es

descomponer a cada elemento de esta matriz en su módulo y

ángulo, dando origen a dos matrices que se encuentran

presentes en nuestro análisis: Ymag y Yang, respectivamente.

F. Implementación del AG en DPL

A continuación se muestra el método usado para la

implementación de AG en DPL, indicando cada función

dentro de este.

Fig. 2. Codificación en DPL de la función aptitud.

1) Generación de población

La Referencia [5] nos muestra que una característica

importante de la población inicial es su número, sin embargo,

se vio adecuado aumentar la cantidad de individuos de esta,

para que se obtenga una mayor variedad de posibles

soluciones en la misma; dicha cantidad corresponde al valor de 350, aunque puede ser mayor o menor, según la cantidad de

barras presentes en el sistema. Por otra parte, con la finalidad

de mejorar la eficiencia, es importante respetar las

especificaciones técnicas [6].

Page 4: Implementación en DigSILENT de Algortimos Geneticos

“XVIII International Congress of Electronic, Electrical and Systems Engineering”

Id: ABC-000 Página 4 de 6

2) Función Aptitud

La Referencia [7] nos muestra el algoritmo para

implementar esta función que consiste en medir cuan cerca de la solución se encuentra cada individuo.

Para ello se usó los métodos mencionados en la sección

III-B, con la diferencia que la administración de datos se

realizó mediante matrices. La Fig. 2. ilustra el código de DPL

usado en esta función.

3) Función Selección

La Referencia [8] muestra el algoritmo de esta función, sin

embargo, en este trabajo, no se usó la función probabilidad

debido a que no es necesario para reconocer al individuo de

mayor aptitud.

Basados en esto, dicha función se obtiene comparando las

aptitudes de estos.

4) Función Cruce

La Referencia [9] nos muestra una forma de cruce distinta a

la propuesta en este trabajo, pues en este se usa 7 hijos y 50

cruces. Además los genotipos de voltaje y ángulo de las barras

se cruzan de manera independiente uno del otro. Estos

cambios tienen un efecto positivo en la reducción del número

de generaciones necesarias para obtener la respuesta al

problema. En la Fig. 3. se puede apreciar parte del código de

DPL correspondiente al cruce de voltajes, así también en la

Fig. 4. para los ángulos.

Fig. 3. Código de DPL para el cruce para voltajes.

5) Función Mutación

La Referencia [10] nos muestra las características que debe

tener esta función en los AG en los SEP. La forma que se usó

para modificar los genes, para cada individuo de la población,

se muestra en la Fig. 5.

Sea Vincial el voltaje sin mutar y Vmut el voltaje mutado, la

formula que se usa es Vmut=(Vinicial+1)/2 . Así también sea

rand un numero generado con la función Random(), inicial

el ángulo inicial de cada barra y mut, el mutado. Entonces

la forma de mutación que se usó para los ángulos de las barras

es mut = ( inicial +pi()*(0.5-rand))/2.

Fig. 4. Código de DPL para el cruce para ángulos.

6) Función ajuste

La Referencia [11] nos muestra el procedimiento para la

implementación de esta función. Sin embargo, se debe tener

en cuenta las consideraciones de programación en DPL, tales

como el tratamiento de los elementos de las matrices, mencionados en la sección III-C. Así mismo para realizar las

operaciones del algoritmo en DPL, es necesario acomodar las

expresiones en su forma polar, para luego separarlo en su parte

real e imaginaria y trabajar con estos números.

Finalmente, teniendo los resultados de ambas partes, se

unen estas para formar un número complejo del cual su

módulo y argumento representaran a los valores de voltaje y

ángulo de barra respectivamente. El argumento se determinó

mediante la función atan(), tomando en cuenta las

consideraciones de reducción al primer cuadrante para obtener

el valor apropiado del ángulo; esto debido a que la función atan() sólo nos da valores presentes en el primer y cuarto

cuadrante, cuando no necesariamente se encuentren en estos.

7) Función aptitud hijos

Así como se explicó en el apartado III-F-2, se deberá medir

cuan cerca de la solución se encuentra cada uno de los nuevos

individuos. Su implementación en DPL es muy similar.

8) Función conmutar:

La Referencia [12] nos muestra el objetivo e

implementación de esta función, además de su influencia en la

obtención del resultado. Para este trabajo se eligió sustituir a los padres con menor

aptitud por los hijos con mayor aptitud, manteniendo la

cantidad de población constante. En la Fig. 6. se muestra el

código de DPL usado para poder realizar esta función.

9) Función optimizador

Mediante esta función se busca al individuo que presente la

tolerancia menor o igual a la tolerancia especificada por el

usuario.

Page 5: Implementación en DigSILENT de Algortimos Geneticos

“XVIII International Congress of Electronic, Electrical and Systems Engineering”

Id: ABC-000 Página 5 de 6

Fig. 5. Diagrama de flujo de la Función Mutación.

Fig. 7. Ejemplo de implementación de AG en DPL

Fig. 6. Código en DPL de la función conmutar.

SI

¿Es una barra PV?

Salida

NO

NO

SI

GENOTIPOS DEL HIJO

k>0.999

¿Es una

barra PQ?

Mutar V

Mutar

Mutar

SI

NO

Page 6: Implementación en DigSILENT de Algortimos Geneticos

“XVIII International Congress of Electronic, Electrical and Systems Engineering”

Id: ABC-000 Página 6 de 6

G. Aplicación en otro SEP

La Referencia [13] nos muestra los resultados del flujo de

potencia usando los AG en un sistema diferente al Sistema 9

Barras IEEE. Este mismo SEP se construyó en DIgSILENT

para comprobar la validez de este trabajo, obteniéndose los

mismos resultados mostrados en la Fig. 7.

Se concluye de tal forma que esta implementación es capaz

de ser aplicada en diversos problemas de SEP.

IV. AGRADECIMIENTOS

Se agradece el apoyo brindado por la REIEEE – UNI por

sus instalaciones para el desarrollo de la investigación. Así

también a L. M. Espinoza. R. en conceptos básicos de AG y

DPL.

V. REFERENCIAS

El presente artículo se basa en criterios y definiciones

previas, se mencionarán a continuación.

[1] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007.

[2] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007, pp. 83-92.

[3] DIgSILENT GmbH, “PowerFactory Manual”, 2010.

[4] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007, pp. 223-257

[5] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007, p. 29.

[6] Ministerio de energía y minas, Dirección general de electricidad,

“Código nacional de electricidad - Suministro”, 2001, p. 10.

[7] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007, pp. 48-50.

[8] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007, pp. 50-51.

[9] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007, pp. 51-53.

[10] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007, pp. 35-36.

[11] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007, pp. 54-55.

[12] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007, p. 56.

[13] J. F. Castro. G., “Algoritmos genéticos como solución al problema de

flujo de potencia,” Tesis de graduación, Escuela de ing. mecánica

eléctrica, Univ. De San Carlos de Guatemala, 2007, p. 62-72.

VI. BIOGRAFÍAS

Angeles Ataupillco Maldonado,

nació en Ayacucho, Perú, el 2 de

marzo de 1991.Estudio primaria y

secundaria en el centro educativo

Santa María. Representó a su país en

la XII Olimpiada Iberoamericana de

Física-Argentina 2007, para lo cual

recibió capacitaciones en la Facultad

de Ciencias de la UNMSM.

Actualmente es estudiante de pregrado

de la FIEE-UNI en la especialidad de

Ingeniería Eléctrica, y aporta en el área de investigación de la

REIEEE-UNI en el capítulo de Power & Energy

Society.([email protected] ).

Jorge Luis Cabrera Chirre (S’ 10),

nació en Lima, Perú, el 23 de marzo

de 1990. Se graduó en el colegio

Pitágoras. Es estudiante de pregrado

de ingeniería eléctrica en la FIEE-

UNI.

Actualmente es miembro del capítulo Power & Energy Society y desempeña

el cargo de Secretary Student Branch

para el periodo 2011-2012 de la

REIEEE – UNI. Aporta al área de

investigación del Power & Energy

Society.([email protected]).

Neymer Haro López (S’ 11), nació

en Pataz, La libertad, Peru el 8 de

noviembre de 1989. se graduo en el

colegio Jose Maria Arguedas del

mismo lugar. Estudiante de pregrado de ingeniería eléctrica en la FIEE –

UNI.

Actualmente es miembro del capítulo

Power & Energy Society y aporta en

el área de investigación de este

capítulo en la REIEEE – UNI.

([email protected]).

Sergio Efraín Trujillo Arana (S’ 11),

nació en Huánuco, Perú, el 15 de abril

de 1990 se graduó en el colegio Manuel Gonzales Villamil. Es

estudiante de pregrado de ingeniería

eléctrica en la FIEE – UNI.

Actualmente es miembro del capítulo

Power & Energy Society y aporta en el

área de investigación de este

capítulo en la REIEEE –

UNI.([email protected]).