Вы находитесь на странице: 1из 93

UNIVERSIDAD DE CHILE

FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS


DEPARTAMENTO DE INGENIERÍA ELÉCTRICA

DISEÑO DE BASE DE DATOS PARA CREACIÓN Y


MANEJO DE ARCHIVOS ESTÁNDAR DE SISTEMAS
ELÉCTRICOS. DESARROLLO DE CASOS PRÁCTICOS.

Memoria para optar al Título de Ingeniero Civil Electricista

FELIPE ANTONIO CARVAJAL ZULETA

PROFESOR GUÍA:
LUIS SANTIAGO VARGAS DÍAZ

MIEMBROS DE LA COMISIÓN:
OSCAR EDUARDO MOYA ARAVENA
JUAN PABLO TOLEDO TORRES

SANTIAGO DE CHILE
2008
RESUMEN

En la actualidad, existe la tendencia de las herramientas computacionales

de avanzar y de desarrollarse, haciéndose cada vez más completas, más

amigables, y más rápidas. Estas tecnologías son usadas por distintas

compañías para crear variados programas para el estudio de sistemas

eléctricos, que quieren llevar a cabo estos estudios bajo su propio punto de

vista o necesidades particulares. Muchas veces nos encontramos con casos en

los que varios de estos programas se pueden comunicar entre sí, pudiendo

obtener, mediante ambos, los mismos resultados, en las variables eléctricas y

obtener gráficos o diagramas en conjunto que otorguen mayor confiabilidad a

un estudio de sistemas. Muchas veces, también nos encontramos con

programas que son muy útiles, pero que no tienen correspondencia, o no son

compatibles entre sí, con softwares estándares, o que simplemente no se tiene

acceso a la licencia que deja utilizar aquella habilidad. En el caso particular de

este estudio, aparece una combinación de estos casos, en los que por una

parte se tiene dos softwares capaces de comunicarse entre si, y además un

tercer software, más completo que los anteriores que no posee esta

comunicación. El trabajo realizado consiste en crear una herramienta que sea

capaz de unir a estos 3 programas, y que sea capaz de crear una Base de

Datos que contenga la información necesaria para realizar estudios de flujo de

potencia, análisis de secuencia y flujos dinámicos en cualquiera de estos.


 
Se utilizaran los programas Power Factory – Digsilent, Power World y

PSS/E, y la base de datos será administrada en Microsoft Excel.


 
AGRADECIMIENTOS

Son muchos a quienes a lo largo del tiempo han dejado una huella en
mí. Experiencias de las que puedo recordar nombre y descubrir que a lo largo
del camino todo es motivo de alegría y gratitud. De creer en la vida y en todos
los que me ayudaron a terminar esta etapa de mi vida.

Agradezco a mis padres que me enseñaron con su infinito amor a ser


mas humano, sencillo y sensible, a conseguir lo que en algún momento pareció
casi imposible: a cambiar, crecer y madurar. Me enseñaron valores y
perseverancia para no rendirme en el camino, aunque a veces tomara tiempo
terminar.

A mis hermanos con los que compartí los momentos de mi niñez y


juventud, a ser el hermano chico y mayor después, mis momentos de juegos y
de apoyo.

A mis familiares, abuelita, tíos, tías, primos que a lo largo de los años me
han hecho sentir parte de una familia grande y cariñosa, sin obligación.

A mis amigos que con el correr de los años han seguido estando ahí a mi
lado, con los que me reencontrado, a los que he visto crecer y formar familias, y
me han demostrado que no es necesario olvidar para seguir adelante.

A mi novia que con su constante apoyo, amor, cariño y paciencia, en el


ámbito personal, con su ejemplo y dedicación en el trabajo, me dieron el
impulso necesario para concretar los últimos pasos de esta titulación.

Finalmente quisiera agradecer a mi profesor guía, ya que no solo me


apoyo en el transcurso de esta etapa , sino también lleno de dudas las cuales
lograron hacer que este trabajo finalizara de manera correcta y satisfactoria.
Además quisiera agradecerle por el echo de que sin querer me hizo formar
parte de un equipo en el que no solo encontrare jefes y compañeros de trabajo,
sino también amigos y personas admirables que no solo perduran en mi
memoria como los que me ayudaron es este pequeño paso final en mi titilación ,
sino tan bien por la admiración que lograron producir en mi no solo por sus
capacidades laborares sino también sus valores logrando así darme cuenta que
no erré el camino, que esto es lo que me hace feliz ser.


 
Contenido
RESUMEN ......................................................................................................................2 
AGRADACIMIENTOS .....................................................................................................4 
TABLA DE ILUSTRACIONES ........................................................................................7 
CAPÍTULO 1. ..................................................................................................................8 
INTRODUCCIÓN.............................................................................................................8 
1.1  Generalidades ................................................................................................... 8 
1.2  Objetivos ........................................................................................................... 9 
1.2.1  Objetivos Generales.......................................................................................... 9 
1.2.2  Objetivos Específicos ........................................................................................ 9 
1.3  Estructura del Trabajo ....................................................................................... 9 
CAPÍTULO 2. ................................................................................................................11 
ASPECTOS GENERALES ...........................................................................................11 
2.1  Resumen ......................................................................................................... 11 
2.2  Introducción .................................................................................................... 11 
2.3  Herramientas Usadas Para el Análisis de Sistemas de Potencia ................... 12 
2.4  Métodos Para Realizar el Cálculo de Flujo de Potencia ............................ 16 
2.4.1  Método de Gauss – Seidel. ............................................................................. 20 
2.4.2  Método de Newton – Raphson. ....................................................................... 21 
2.4.3  Método Desacoplado Rápido. ......................................................................... 22 
2.5  Ejemplos de Programas en el Mercado. ......................................................... 24 
2.5.1  Power - World Simulator (3): ........................................................................... 24 
2.5.2  SimPowerSystem (4): ....................................................................................... 25 
2.5.3  PSS/E (5): ........................................................................................................... 25 
2.5.4  RTDS Simulator (6): .......................................................................................... 26 
2.5.5  ETAP (7): ............................................................................................................ 27 
2.5.6  Power Factory (Digsilent) (8): .......................................................................... 27 
2.5.7  EDSA: .................................................................................................................. 28 
2.5.8  ABB Advise GridView (10): .............................................................................. 29 
CAPÍTULO 3. ................................................................................................................30 
DATOS PARA DISTINTOS TIPOS DE ANÁLISIS DE SISTEMAS ELÉCTRICOS. ....30 


 
3.1  Resumen ......................................................................................................... 30 
3.2  Introducción .................................................................................................... 30 
3.3  Datos para el Flujo de Potencia ...................................................................... 31 
3.4  Datos de Secuencia ........................................................................................ 33 
3.5  Datos para Análisis Dinámicos ....................................................................... 34 
3.6  Uso de Power Factory – Digsilent y Power System Simulator for
Engineering (PSS/E) .................................................................................................. 35 
3.7  Archivos Creados para la Base de Datos ....................................................... 35 
CAPÍTULO 4. ................................................................................................................47 
BASE DE DATOS PARA CREAR ARCHIVOS GENERALES DE SISTEMAS
ELÉCTRICOS. ..............................................................................................................47 
4.1  Resumen ......................................................................................................... 47 
4.2  Introducción .................................................................................................... 47 
4.3  Planteamiento del Problema ........................................................................... 47 
4.4  Datos de Entrada de Base de Datos............................................................... 48 
4.5  Creación del Diseño ........................................................................................ 50 
CAPÍTULO 5. ................................................................................................................52 
CASOS PRÁCTICOS DE ANÁLISIS ............................................................................52 
5.1  Resumen ......................................................................................................... 52 
5.2  Introducción .................................................................................................... 52 
5.3  Casos de Estudio ............................................................................................ 53 
CAPÍTULO 6. ................................................................................................................62 
CONCLUSIONES .........................................................................................................62 
Bibliografía ...................................................................................................................64 
ANEXOS .......................................................................................................................66 
1. Código Script ......................................................................................................... 66 
2. Datos de Reguladores de Voltaje .......................................................................... 86 
3. Datos de Reguladores de Turbina ......................................................................... 89 
4. Datos de Estabilizadores de Potencia. .................................................................. 92 


 
TABLA DE ILUSTRACIONES

Figura 1, Evolución de las herramientas computacionales utilizadas en estudios de


sistemas eléctricos (3) ................................................................................................... 13
Figura 2, Modelo General de una Barra (3). ................................................................. 16
Figura 3, Tabla de Script Visto en Notepad .................................................................. 51
Figura 4, Tabla de Script Visto en Excel ....................................................................... 51
Figura 5, Casos a Estudiar ........................................................................................... 54
Figura 6, Datos del Sistema Extraídos Manualmente, Caso Base + Línea Crucero -
Encuentro ...................................................................................................................... 55
Figura 7, Datos del Sistema Extraídos con el Script, Caso Base + Línea Crucero -
Encuentro ...................................................................................................................... 56
Figura 8, Creación de formato raw 26 .......................................................................... 57
Figura 9, Vista de PowerWorld ..................................................................................... 58
Figura 10, Datos Ingresados al Power World ............................................................... 59
Figura 11, Comparación de Barras entre Power world y Digsilent ............................... 60
Figura 12, Comparación de Generación enre Power World y digsilent ........................ 60
Figura 13, Comparación de Líneas entre Power World y Digsilent .............................. 61 

   


 
CAPÍTULO 1.

INTRODUCCIÓN

1.1 Generalidades

En Chile, el uso de la computación en los estudios de operación y

contingencia son empleados por la gran mayoría de las empresas eléctricas,

principalmente en los departamentos encargados de estudios, departamentos

técnicos y comerciales. También son utilizados por los organismos de

coordinación de la operación de sistemas, Centro de Despacho Económico de

Carga (CDEC), y por los organismos gubernamentales encargados de la

regulación legal de la operación del sistema eléctrico, CNE, SEC.

Dichas herramientas computacionales son utilizadas también para realizar

distintas investigaciones, como por ejemplo, estudios específicos de operación,

o también pueden ser utilizados por los departamentos de ingeniería eléctrica

de las universidades, en donde se realiza uso docente e investigativo.

En este trabajo se mencionará brevemente la evolución de programas

computacionales para el uso en cálculos o estudios de sistemas eléctricos de

potencia, junto con los distintos métodos de modelación utilizados. Luego se

mostrará una metodología para crear una base de datos, con toda la

información necesaria para hacer un análisis de sistema, con la finalidad de

crear archivos utilizables simultáneamente por los programas computacionales

Digsilent, PSS/E y Power World.


 
1.2 Objetivos

1.2.1 Objetivos Generales

El objetivo general de este trabajo es la creación de una base de datos

que sea capaz de reunir toda la información necesaria de un sistema eléctrico

de potencia para lograr realizar estudios varios.

1.2.2 Objetivos Específicos

  Los objetivos específicos corresponden a la creación de una base de

datos que contenga la información necesaria para realizar cálculos de flujo de

potencia, que contenga los datos de secuencia de la red y que contenga la

información necesaria para realizar análisis dinámicos de un sistema eléctrico

de potencia. Se utilizará Microsoft Excel para la el manejo de la base de datos,

y éste deberá generar archivos compatibles con los softwares Digsilent, PSS/E

y Power World, programas computacionales facilitados por las empresas

Edelnor – Electroandina, las cuales entregan toda la información e

infraestructura para realizar este trabajo.

1.3 Estructura del Trabajo

Esta memoria consta de seis capítulos, el primero de ellos consta de una

introducción a la utilización de software computacional para el estudio de

sistemas eléctricos en Chile. En este capítulo se muestran, también, los

objetivos generales y específicos del trabajo.


 
En el capítulo dos, se exponen brevemente los distintos métodos de

modelación de los sistemas eléctricos y sus métodos de solución. Luego se

muestra la necesidad de hacer estudios y análisis de un sistema eléctrico, ya

sea el efecto de fallas, mantenimientos, cambios estructurales, etc. Y de lo

importante que es tener datos confiables, actualizados y legibles de cualquier

sistema eléctrico de potencia.

En el capítulo tres se hace una descripción detallada de los datos que

son recopilados, ya sea para el estudio de flujos de potencia, como para hacer

un análisis dinámico del sistema o un estudio de fallas. Luego se exponen los

softwares utilizados y la forma en como éstos son manejados.

En el capítulo 4 se muestran la base de datos creada, con todas sus

características. Se describe el diseño elegido, la forma en como se revela la

información y la forma en como es seleccionada para ser utilizada por cada uno

de los programas computacionales utilizados.

En el capítulo 5 se explican distintos casos prácticos reales en donde se

utilizó el método descrito en este trabajo. Exponiendo los resultados obtenidos,

y comparando los resultados entre sí.

En el capítulo 6 se muestran las conclusiones de este trabajo. Al final de

este documento se hace referencia a los antecedentes bibliográficos, y a los

anexos, donde se muestra un detalle de los antecedentes utilizados.

10 
 
CAPÍTULO 2.

ASPECTOS GENERALES

2.1 Resumen

En este capítulo se comentará de la evolución que ha tenido el desarrollo

de softwares computacionales, la metodología utilizada para el estudio y

algunos ejemplos de programas computacionales que existen en el mercado.

2.2 Introducción

En los años cincuenta y sesenta, era común encontrar en los laboratorios

de las universidades modelos estáticos de los sistemas eléctricos, utilizando

modelos simplificados de los generadores y reduciendo los elementos del

sistema utilizando componentes RLC (1). En los años 70 estos métodos fueron

reemplazados con el uso de computadores, los cuales eliminaron este tedioso

trabajo, pero introdujeron nuevos problemas típicos de éstos, por ejemplo,

problemas de accesibilidad, requerimientos mínimos de sistema, problemas de

aprendizaje de los sistemas operativos, costos propios de los computadores, y

grandes gastos de tiempo en el cálculo mientras más complejas eran las redes

eléctricas (2).

En el presente, el rápido progreso de la tecnología de los computadores

(hardware y software) a hecho que el problema del análisis de sistemas sea

realizado por un simple PC. Las técnicas ya se han desarrollado para

aprovechar al máximo las tecnologías, las cuales permiten al usuario gastar


11 
 
más tiempo en el análisis de los aspectos propios del sistema eléctrico en sí, en

vez de usar tiempo en aprender programación, o en aprender un nuevo sistema

operativo (2).

En Chile, el uso de simulaciones para realizar cálculo de flujo de potencia

es usado intensamente para determinar la factibilidad y los niveles de seguridad

necesarios de operación técnica económica proyectada.

Este desarrollo es llevado a cabo por programas computacionales, los

cuales deben realizar modelos de los sistemas eléctricos existentes, y deben

ser capaces de realizar el cálculo de flujo de potencia sin importar la extensión

o el tamaño de la red; además los resultados obtenidos deben ser claros y

fáciles de interpretar, ya que éstos serán son los que se utilizarán para la toma

de decisiones (3).

2.3 Herramientas Usadas Para el Análisis de Sistemas de Potencia

A continuación se muestra un esquema que resume la evolución de las

herramientas utilizadas en el estudio de los sistemas eléctricos de potencia.

12 
 
Figura 1, Evolución de las herramientas computacionales utilizadas en estudios de sistemas eléctricos (3)

Para hacer análisis de sistemas de potencia se necesita que los

softwares involucrados cumplan con ciertos requerimientos y métodos básicos.

Estos requerimientos básicos son el análisis de flujo de carga, análisis de

corto circuito, análisis de motores, regulación de voltaje, estudio de sistemas

tipo DC, y análisis de dispositivos varios que se encuentren en el sistema (4).

Detrás de cada estudio matemático es importante obtener resultados rápidos y

confiables. Los métodos que se utilizan generalmente son Gauss-Seidel,

Newton-Raphson, y el Fast-Decoupled o desacoplado rápido (5). Combinando

los algoritmos de Gauss-Seidel y Newton-Raphson se puede llegar a tener un

gran grado de convergencia. Muchos estudios demuestran que Newton-

13 
 
Raphson es más adecuado para sistemas de distribución, mientras que el de

desacoplado rápido es más apropiado para los sistemas de transmisión (6).

Para hacer un análisis del sistema se definen condiciones iniciales y se

utilizan distintas técnicas para simular el diseño y comportamiento del modelo.

Alguno de los métodos de análisis son (7):

• Análisis en régimen permanente: Se asume voltajes y corrientes

sinusoidales y componentes lineales. Es usado para realizar flujos

de potencia, perfiles de voltaje, pérdidas (activas y reactivas),

compensaciones de reactivos, y posiciones de los tap de los

transformadores.

• Análisis de perturbaciones: Es usado para análisis en sistemas

eléctricos en condiciones anormales, tales como cortocircuitos, y

análisis de armónicos.

• Análisis Dinámico: Es usado para verificar que el sistema eléctrico

no se inestabilice, o que no colapse durante disturbios mayores en

la red, y también es usado para determinar los límites

operacionales del sistema eléctrico de potencia.

• Análisis Transiente: Simula sistemas reales, incluyendo modelos

no lineales, con impedancias des balanceadas y parámetros

dependientes de la frecuencia.

14 
 
Cuando se quiso añadir a los cálculos las restricciones económicas

relativas al costo de producción de una unidad adicional de electricidad, se

realizaron estudios, a partir de los años sesenta, para agregar estas

restricciones, y se llego a la formulación de un flujo de potencia óptimo (OPF),

la cual ha sido generalizada para representar cualquier tipo de restricción, como

la de minimizar pérdidas óhmicas del sistema, la minimización del costo de

compensación de reactivos para el control de variaciones de tensión (8).

Los programas computacionales, además de tener las herramientas de

análisis anteriormente descritas, tienen que contar con una interfaz gráfica

(graphical user interface o GUI) para interactuar con el usuario. Alguna de las

características para hacer amigables dichos programas incluyen la posibilidad

de arrastrar (drag and drop) elementos, diseño de instalaciones, poder editar en

pantalla las instalaciones, el uso de distintas vistas y las características de

reportes de los eventos, que utilice distintos colores para cada tipo de

información, etc. Además el resultado debe ser independiente de la máquina

donde se realice el estudio.

Otra característica importante es que incluya la capacidad de

importar/exportar los datos, la capacidad de hacer/deshacer y la de tener una

buena librería de ayuda (9).

15 
 
2.4 Métodos Para Realizar el Cálculo de Flujo de Potencia

“Flujo de potencia es calcular con precisión las tensiones de estado

estacionario en todas las barras de toda una red, y a partir de ese cálculo, los

flujos de potencia real y reactiva en cada una de las líneas y transformadores,

bajo la suposición de generación y carga conocidas. Su función básica radica

en importantes detalles: modelar controles tales como derivaciones móviles de

transformadores y potencia de salida reactiva del generador” (10).

Para el estudio de flujos de potencia, una barra cualquiera de un sistema

eléctrico, que se encuentra dentro de una red eléctrica, y que está conectada a

tierra mediante una admitancia, puede ser modelada de la siguiente manera:

Figura 2, Modelo General de una Barra (1).

Si se aplica la ley de corrientes de Kirchoff a la barra, se puede calcular

la corriente inyectada a la barra y los voltajes en otras barras del sistema

conectadas mediante líneas modeladas como admitancias a la barra en estudio:

16 
 
· · 0 .1  

En donde representa la matriz admitancia entre la barra en estudio i y

la barra j, y | | , es el voltaje en la barra j del sistema.

La ecuación anterior puede ser escrita en términos de los elementos de

la matriz de admitancia nodal, la cual resume la información de la topología de

la red del sistema bajo estudio. La forma que toma la matriz de admitancia

nodal del sistema está dada por:

• Elementos de la diagonal (ec. 2) | | ∑

• Elementos fuera de la diagonal (ec.3)

Con la definición de la matriz de admitancia nodal y considerando que

y | | son números complejos, la ec. 1 puede ser escrita

como:

· · .4  

El conjugado de la potencia compleja de la barra en estudio, que resume

el balance total de la potencia compleja inyectada y retirada en la barra, se

expresa como:

· .5

17 
 
Con la ecuación 4 y 5, se obtienen las relaciones de potencia activa y

reactiva totales de la barra en estudio, en función de la matriz de admitancia y

los voltajes de los voltajes del sistema, estas son:

• Potencia Activa: (ec.6)

| | · cos

• Potencia Reactiva: (ec.7)

| | · sen

Es por esto que para cada barra del sistema, su estado para efectos del

estudio de flujos de potencia queda completamente determinado al conocer el

valor del módulo del voltaje y su ángulo, los valores de la potencia activa y

reactiva (1).

De estas variables, se elijen dos de ellas para calcular las otras dos, y así

determinar el estado completo de la barra. Es por esto que dependiendo de las

características de la barra, se consideran las variables dependientes o

independientes. De acuerdo a esto, las barras se pueden clasificar de la

siguiente manera:

• Barra PV

o Se refiere a aquellas barras que cuentan con uno o más

generadores conectados directamente a ellas. Al tener esta

configuración, se considera como conocidos las variables de la


18 
 
potencia activa y el voltaje (P y V), y como incógnitas el valor del

ángulo del voltaje y la potencia reactiva neta de la barra.

• Barra PQ

o Se refiere a aquellas barras que cuentan con una o más cargas

conectadas directamente a ellas, las cuales tienen consumos de

potencia activa y reactiva conocidas (P y Q). Es por esto que para

este tipo de barras las incógnitas pasan a ser el módulo y el

ángulo del voltaje en la barra. Si en algún momento se

sobrepasan los límites máximos o mínimos de las potencias, estos

valores se fijan, y la clasificación de la barra cambia para las

siguientes iteraciones del flujo de potencia.

• Barra libre (Barra Slack)

o De todas las barras PV del sistema, una de ellas se elige como

barra libre o barra slack, a la cual se le asigna como conocido (y

de manera arbitraria) el valor del voltaje en módulo y ángulo, la

que constituye la referencia para los demás voltajes en las demás

barras del sistema. Esta barra inyecta (o absorbe) la potencia

activa y reactiva necesaria para igualar la generación total del

sistema con la demanda total de los consumos y las pérdidas de

las líneas, las que no son conocidas a priori.

19 
 
Con esta clasificación, y dado que la relación entre las potencias y el

voltaje en una barra no es lineal (ec. 5, 6 y 7), para resolver el problema de flujo

de carga es necesario emplear métodos numéricos iterativos para encontrar la

solución del problema mediante un proceso de convergencia.

Como se mencionó en el punto anterior, estos métodos son:

2.4.1 Método de Gauss – Seidel.

Este método calcula el voltaje en módulo y ángulo de una barra, en

función de los voltajes en todas las barras obtenidos en una iteración anterior

del modelo.

De las ecuaciones 1 y 5, se obtiene una expresión para el voltaje de la

barra genérica i, que es calculado en forma iterativa.

∑ ·
.8

Se considera que el método converge si el módulo de la diferencia del

voltaje entre dos iteraciones sucesivas para todas las barras, excepto para la

barra libre, es menor a una tolerancia definida, por ejemplo =0,01.

Para mejorar la convergencia del método se puede calcular el voltaje en

las barras i en la iteración k+1, utilizando los voltajes en la barra j, calculados

dentro de la misma iteración k+1 (método con variables actualizadas). También

20 
 
se puede emplear un factor ( [1,3; 1,7]) para acelerar la convergencia al

disminuir el número de iteraciones para la tolerancia definida (método con factor

de aceleración)

.9

En general el método de Gauss Seidel no exhibe buenas características

de convergencias en sistemas eléctricos de tamaño real. Generalmente

necesita una cantidad mayor de iteraciones que las utilizadas por otros métodos

para el cálculo de flujos de potencia.

2.4.2 Método de Newton – Raphson.

Este método constituye el método numérico iterativo base para las

aplicaciones computacionales que calculan flujos de potencia.

Este método consiste en expandir en serie de Taylor las ecuaciones 6 y 7

en torno a un punto inicial despreciando los términos de segundo orden de la

serie. De esta forma se deduce un sistema de ecuaciones lineales que

relacionan las potencias con el módulo y ángulo del voltaje, que puede ser

escrita como:

Δ | | ∆
· . 10
Δ ∆| |
| |

Considerando el error entre dos sucesiones sucesivas ángulo y módulo

de voltaje como:

21 
 

. 11
∆| |

Este método concluye cuando el módulo del error de potencia activa y

reactiva para la siguiente iteración es menor a una tolerancia definida para

todas las barras del sistema incluidas en el método, por ejemplo ∆

0.001 ∆ 0.001.

La matriz de derivadas parciales de la ecuación 10 es conocida como

matriz jacobiana del sistema. Si un sistema tiene n barras, de las cuales g son

PV, entonces la matriz es cuadrada de dimensiones 2n-2-g.

El número de iteraciones para obtener la solución es independiente al

tamaño del sistema. Además el error del módulo de potencia converge en forma

cuadrática a cero; mientras que el método de Gauss Seidel lo hace en forma

lineal. El contra que tiene este método es que generalmente se hacen más

cálculos numéricos por iteración.

2.4.3 Método Desacoplado Rápido.

Cuando el sistema eléctrico tiene un gran número de barras, el método

de Newton Raphson usa demasiados recursos de cómputo y memoria del

computador en donde se están haciendo los cálculos, ya que se esta

calculando, almacenando y factorizando en cada iteración la matriz jacobiana

del sistema. El método Desacoplado Rápido (2), es una variante que introduce

aproximaciones deducidas de la topología de la red y las condiciones de

22 
 
operación normales del sistema. Este método genera una matriz jacobiana,

pero no necesita actualizar sus valores en cada aproximación, lo que reduce la

cantidad de cálculos necesarios.

Las simplificaciones son aplicables si el sistema eléctrico cumple con:

• En las líneas de transmisión, el siguiente coeficiente tiene que

ser un valor elevado, siendo X la reactancia serie, y R la

resistencia de la línea.

• En una condición de operación normal del sistema la diferencia

entre el ángulo de voltajes en barras adyacentes es pequeña.

• En una condición de operación normal del sistema el módulo del

voltaje en todas las barras del sistema es aproximadamente 1 en

p.u.

Con estas consideraciones se pueden deducir las siguientes relaciones:

cos 0 0 0 . 12
| |

De estas relaciones se puede demostrar que el sistema de ecuaciones

definido por la ecuación 10 se desacopla dando lugar a dos ecuaciones

matriciales independientes que describen la otra versión del método

desacoplado rápido. La primera relaciona la variación de potencia activa con la

variación en los ángulos de los voltajes, mientras que la segunda relaciona la

variación de la potencia reactiva con la variación en los módulos de ls voltajes:

23 
 
∆ · ∆
. 13
∆ · ∆| |

En donde los elementos de las matrices quedan definidos por:

. 14


. 15

Si los supuestos descritos para la validez del método no se cumplen para

un sistema eléctrico de potencia, esta versión presenta problemas de

convergencia, los cuales pueden ser mejorados si se introducen mejoras al

método.

2.5 Ejemplos de Programas en el Mercado.

2.5.1 Power - World Simulator (3):

Power - World es una herramienta robusta para encontrar soluciones en

el cálculo de flujo de potencia, es capaz de resolver eficientemente sistemas

eléctricos con más de 60.000 barras. Básicamente, este programa esta

diseñado para simular la operación de sistemas de alta tensión. El software es

24 
 
extremadamente amigable y de gran interactividad, incluye diagramas

unilineales con flujos de carga animados, contornos con distintos colores.

2.5.2 SimPowerSystem (4):

Modela y simula sistemas eléctricos de potencia con el ambiente

Simulink/Matlab. Tiene una gran capacidad para modelar la generación, la

transmisión, y la distribución de sistemas eléctricos de potencia, especialmente

cuando el diseño se asocia a sistemas de control. Contiene más de 130 bloques

de componentes y dispositivos comúnmente utilizados en redes eléctricas,

basadas en conocidas ecuaciones electro-magnéticas y electro-mecánicas.

Están distribuidos en seis librerías, donde se incluyen fuentes, elementos,

máquinas, electrónica, control, medidores, y componentes de tres fases. El

programa puede ser usado para propósito general y se pueden agregar

módulos creados por el usuario.

2.5.3 PSS/E (5):

PSS/E (Power System Simulator for Engineering) es un programa

integral para simular, analizar y optimizar el rendimiento del sistema de energía.

Utiliza los más avanzados métodos probados para realizar estudios de flujo de

potencia, análisis de fallas en desequilibrio, y simulaciones dinámicas. El

módulo integrado PSS/E OPF proporciona una solución de flujo óptimo de

energía el cual optimiza automáticamente un sistema dependiendo de las metas

25 
 
especificadas por el usuario, cumpliendo al mismo tiempo las limitaciones de

flujo de potencia. PSS/E proporciona la máxima flexibilidad para el análisis de

sistemas de potencia para proyectistas y diseñadores modelando una amplia

variedad de componentes que permite a los usuarios aplicar sus propios

criterios de análisis. Además consta de una moderna interfaz gráfico con menús

y ventanas desplegables. Su modelado eficiente permite manejar redes de

cualquier tipo y reducirlas a tamaño práctico. PSS/E también cuenta con

programas complementarios como MUST (Managing and Utilizing System

Transmission), TPLAN, PSS/ADEPT (Power System Simulator/Advances

Engineering Productivity Tool), PSS/Engines, ODMS (Operational Database

Management System), PSS/O (Power System Simulator for Operations),

LMPsim (Location Marginal Pricing Simulator, PSS/Viper (Power System

Simulator for Visual Power EngineeRing).

2.5.4 RTDS Simulator (6):

RTDS Technologies Inc. puede hacer análisis de sistemas eléctricos de

potencia para tecnologías de estudio de simulaciones en tiempo real, para

sistemas con HVAC (high voltaje alternating current) y HVDC (high voltaje direct

current). El simulador RTDS tiene una interfaz gráfica, RSCAD, el cual puede

ser usado para configurar simulaciones, controlar y modificar los parámetros de

un sistema de potencia durante una simulación, adquiriendo datos, y analizando

26 
 
resultados. Básicamente el simulador RTDS tiene dos elementos principales, la

interfaz gráfica (RSCAD) y una librería de módulos y compiladores.

2.5.5 ETAP (7):

Etap of Operational Technology, Inc. es para diseñar, simular, y analizar

generación, transmisión, distribución y sistemas de potencia industriales. El

programa ETAP tiene varios módulos, como el del estudio de sistemas

eléctricos de potencia, simulaciones en tiempo real, monitoreo avanzado,

optimización de sistemas de control, cambio automático de carga, análisis de

costo por uso de energía, y coordinación de dispositivos. ETAP tiene una familia

de programas que integran una herramienta de análisis usada para diseñar,

mantener, y operar sistemas eléctricos de potencia, y lo hacen en un ambiente

totalmente gráfico. Además cuenta con herramientas complementarias, como

ETAP PSMS (Power System Management System) para el manejo de centrales

eléctricas, ETAP STAR para protecciones y aparatos de coordinación, y ETAP

PanelSystem.

2.5.6 Power Factory (Digsilent) (8):

El software Digsilent PowerFactory es una herramienta para realizar

análisis de sistemas eléctricos de potencia, el cual combina el modelamiento de

sistemas confiables y flexibles con distintos tipos de algoritmos para encontrar

soluciones dependiendo de lo que se necesite, además hace uso de una base

27 
 
de datos orientada al objeto (Object-Oriented). El usuario puede desarrollar

modelos detallados de un sistema de potencia, utilizando una única base de

datos, con un amplio rango de datos, datos de un sistema balanceado, de un

sistema des balanceado, datos de frecuencia, de tiempo, y sistemas con

características estocásticas. El programa soporta estudios para sistemas con un

máximo de 100, 250 e infinitas barras, dependiendo del tipo de licencia que se

adquiera. PowerFactory también realiza análisis de confiabilidad, proyección de

demanda, análisis de contingencias, modelamiento de elementos de electrónica

de potencia, y tiene una interface para SCADA/GIS. Además es compatible con

otro tipo de programas como PSS/E & PSS/U

2.5.7 EDSA:

EDSA es una compañía que no solo hace herramientas para el análisis

de sistemas de potencia, también realiza softwares de seguridad nacional,

energía nuclear, propulsión eléctrica, y programas de control avanzado en

sistemas eléctricos de potencia (9). El programa EDSA’s Technical 2000 es una

herramienta eléctrica estándar para el diseño en la industria, la cual ayuda a los

profesionales a modelar, simular, gestionar, y manejar los diseños eléctricos de

distribución y transmisión. El programa Technical 2000 utiliza distintos tipos de

algoritmos, utilizando programación orientada a objetos, para que los ingenieros

sean capaces de estudiar sistemas balanceados, des balanceados, con tres

fases, monofásicos, flujo de cargas, y estudiar casi todas las configuraciones

28 
 
que existen en una red eléctrica. El programa contiene distintos módulos que

hacen posible estudiar y diseñar cualquier tipo de sistema eléctrico (T & D,

parques eólicos, redes AC/DC), analizando sistemas de potencia desde

distintas perspectivas (sistemas balanceados, PQ, confiabilidad de sistemas,

análisis dinámico, etc.), importando/exportando datos, y siendo compatible cien

porciento con Auto CAD. Otras características están disponibles, dependiendo

del tipo de licencia que se adquiera.

2.5.8 ABB Advise GridView (10):

ABB Advise GridView es una herramienta que simula el mercado

energético, contiene herramientas de análisis y diseño, usadas para la toma de

decisiones en asuntos del mercado industrial eléctrico. GridView, utiliza

metodologías avanzadas para el estudio de generación, transmisión, cargas,

combustible, y mercado económico, integrando todo en un programa que

entrega indicadores económicos de los distintos lugares, medidas de utilización

en el sistema de transmisión, medidas de estabilidad en el sistema de potencia,

e índices de comportamiento del mercado. Produce despachos económicos que

respetan las leyes de flujo de potencia y requerimientos en los sistemas de

transmisión.

29 
 
CAPÍTULO 3.

DATOS PARA DISTINTOS TIPOS DE ANÁLISIS DE SISTEMAS

ELÉCTRICOS.

3.1 Resumen

En este capítulo se detallan los tipos de archivos necesarios para los

diferentes análisis que se realizan en los sistemas eléctricos de potencia.

3.2 Introducción

Se necesita desarrollar una base de datos que sea capaz de crear

archivos utilizables por programas destinados al análisis de sistemas eléctricos

de potencia (SEP).

En primera instancia se necesitan los parámetros eléctricos del SEP para

poder hacer un flujo de potencia y poder estudiar la estabilidad estática del

sistema.

Los parámetros de secuencia son necesarios para el análisis de fallas

que pueden ocurrir en el sistema, como por ejemplo las fallas monofásicas,

bifásicas o trifásicas, ocasionadas por ejemplo, por un cortocircuito en alguna

línea del sistema.

El último conjunto de datos son los datos necesarios para realizar un

estudio de comportamiento dinámico del sistema.

30 
 
3.3 Datos para el Flujo de Potencia

Se refiere, en general, a los parámetros eléctricos mínimos de los

dispositivos de un sistema eléctrico (cargas, líneas, generadores, etc.). Estos

parámetros son necesarios para realizar estudios en sistemas en condiciones

normales de operación, y que no presentan variaciones en el tiempo

(estacionarios). Además constituyen los datos necesarios para los softwares

utilizados.

Los parámetros necesarios, por elemento, son:

• Terminales y Barras: De donde se obtiene el voltaje nominal de la barra.

• Cargas: Se necesita la barra donde está conectada la barra,

especificando si la carga está o no fuera de servicio. Además se

necesitan los siguientes datos:

o Potencia Activa en [MW].

o Potencia Reactiva en [MVar].

o Potencia en [MVA].

o Corriente en [kA].

o Factor de Potencia.

• Generadores: Se necesita saber en que barra está conectado el

generador, y especificar si el generador está o no en servicio. Además se

necesitan los siguientes parámetros:

o Potencia Activa [MW].

o Potencia Reactiva [MVar].

31 
 
o Limite superior e inferior de la Potencia Real y Reactiva.

o Potencia total en [MVA].

• Líneas: Se necesitan las barras donde está conectada, el largo de ésta y

especificar si la línea se encuentra o no en servicio. Además se

necesitan los siguientes datos:

o R, X y B (resistencia, reactancia y susceptancia) de la línea en

[p.u].

o Capacidad de la línea en [MVA].

• Transformadores de dos y tres enrollados: Se necesita saber entre que

barras está conectado el transformador, y saber si está en servicio o no.

Los demás datos que se necesitan son:

o Relación de resistencia y reactancia entre enrollados (R1-2 y X1-

2) en [p.u]

o La potencia nominal del transformador expresada en [MVA].

o Relación entre voltaje nominal y voltaje base de los enrollados.

• Shunts / Reactores: Para los Shunts / Reactores se necesita saber la

barra donde están conectados y los siguientes datos:

o Límite superior e inferior de voltaje en [p.u].

o Total de admitancia del elemento shunt entregada [MVar] con

respecto a la unidad de voltaje.

o Numero de pasos necesarios para llegar al total de admitancia.

o Incremento de admitancia por cada número de pasos.

32 
 
• Etc.

3.4 Datos de Secuencia

Los datos de secuencia (positiva, negativa y cero) son necesaria para

realizar un análisis de fallas en sistemas balanceado/des balanceados.

Los datos mínimos necesarios para crear esta base de datos son:

• Datos de Secuencia de los generadores:

o Para cada uno de los casos se necesita la barra donde esta

conectado el generador, su resistencia y reactancia (cero, positiva

y negativa, para cada caso) en [p.u].

• Datos de secuencia de cargas tipo Shunt:

o Este dato se utiliza para cargas de tipo shunt, se necesita la barra

donde esta conectada la carga, y los valores de secuencia de

resistencias y reactancias de cada elemento, expresadas en [p.u].

• Datos de secuencias de las líneas de transmisión:

o Se necesitan las barras donde esta conectada la línea, con los

datos de resistencia, reactancia y susceptancia de secuencias de

cada una.

• Puesta a tierra de cada elemento del sistema:

o Se necesitan las barras donde están conectados los elementos,

por ejemplo en el caso de los transformadores se especifica el tipo

de conexión que cada uno tiene, por ejemplo el lado de alta esta

33 
 
en conexión delta y el lado de baja en configuración estrella con

neutro conectado a tierra.

• Datos de secuencia de los elementos Shunt:

o Se necesita la barra donde esta conectado el elemento, y el

incremento de la admitancia de secuencia cero para cada paso en

[p.u].

• Etc.

3.5 Datos para Análisis Dinámicos

Estos datos son necesarios para poder modelar cada una de las

máquinas generadoras, cargas, protecciones, y así poder realizar un estudio

dinámico del sistema.

Los datos necesarios para este análisis son:

• Modelo General de cada generador.

• Modelo de los Reguladores de Voltaje de cada generador.

• Modelo de los Reguladores de Turbina de cada generador.

• Estabilizadores de Potencia de cada generador.

• Modelo de Cargas.

• Modelo de protecciones.

• Etc.

Cada uno de estos puntos será mostrado en detalle en anexos.

34 
 
3.6 Uso de Power Factory – Digsilent y Power System Simulator

for Engineering (PSS/E)

La recopilación de información para realizar la base de datos se obtuvo

desde la página oficial del CDEC – SING. Estos datos están ingresados en los

archivos utilizados por el software Power Factory – Digsilent en formato

exportado .dz, los cuales fueron extraídos a Microsoft Excel para luego generar

archivos “.raw” (sin formato) utilizables por los softwares PSS/E y Power World.

El traspaso desde Digsilent a estos programas debe ser en ambas direcciones

(lectura / escritura).

Para realizar el traspaso desde los archivos Digsilent (.dz) a Excel (.xls),

se utilizó un script escrito en lenguaje DPL (Digsilent Programming Lenguage).

Este proceso llevo los datos a formato .txt. Luego se abren estos archivos con

Excel y se generan los archivos “raw” utilizando macros (Visual Basic).

Estos archivos “raw” pueden ser leídos por Digsilent, PSS/E y Power

World, lo que facilita el análisis de cualquier variación que se quiera estudiar

mediante estos softwares.

3.7 Archivos Creados para la Base de Datos

Para hacer el traspaso desde Digsilent a un archivo formato .txt se crea

un script hecho en lenguaje DPL, lenguaje muy parecido a C++. La información

para utilizar este lenguaje de programación se encuentra en el manual del

Digsilent.

35 
 
El Script genera tres archivos, el primero utilizado para el cálculo del flujo

de potencia, el segundo contiene los datos de secuencia, y el tercero tiene los

datos para cálculos dinámicos del sistema.

El algoritmo del script, es el siguiente:

Set: Con este comando se definen las variables que contendrán un listado de

parámetros, por ejemplo, todas las barras del sistema.

object : Se definen las variables que contiene cada uno de los elementos

listados en el comando Set, por ejemplo, la barra Encuentro 220 con

todos los datos que contiene (nombre, voltaje, etc).

string: Se usa para definir las variables alfabéticas que se encuentran en los

objetos, como por ejemplo, el nombre de la barra.

double: Se utiliza para definir variables numéricas que se encuentran en los

objetos, como por ejemplo el voltaje de una barra.

int: Se utiliza para definir variables de tipo entero, se utilizan generalmente para

hacer comparaciones (1 verdadero, 0 falso).

fopen: Se utiliza para crear un archivo de texto. En este caso se generan tres

archivos estos son raw.txt, seq.txt y dyr.txt. El primero contiene los datos

para el cálculo de flujo de potencia, el segundo contiene los datos de

secuencia del sistema, y el tercero contiene los datos para el cálculo

dinámico.

36 
 
Luego de definir los tipos de variables a utilizar, se comienza a extraer datos

desde Digsilent:

while (exista una red){

• Se eligen cada una de las barras y terminales de todas las redes

existentes en el sistema y se escribe en este formato:

o Name Station: Nombre de la barra.

o Grid: Nombre de la red en la que se encuentra.

o Nom.L-L Volt.kV: Voltaje nominal de la barra en [kV].

o Ul. Magnitude kV: Voltaje real de la barra en [kV].

o u. Magnitude p.u: Voltaje real de la barra en [pu].

o U. Angle deg: Ángulo del voltaje en la barra, en [deg].

while (exista una red){

• Se eligen cada una de las cargas de todas las redes existentes en el

sistema y se escribe en este formato:

o Name: Nombre de la carga.

o Grid: Nombre de la red en la que se encuentra.

o Type TypLod,TypLodind: Tipo de carga.

o Terminal Busbar: Barra donde está conectada la carga.

o Out of Service: Muestra si la carga se encuentra en servicio.

o Act.Pow. MW: Potencia Activa de la carga en [MW].

37 
 
o React.Pow. Mvar: Potencia reactiva de la carga en [MVar]

o App.Pow. MVA: Potencia aparente de la carga en [MVA].

o I kA: Corriente de la carga en [kA].

o Pow.Fact.: Factor de potencia de la carga.

while (exista una red){

• Se eligen cada una de los generadores de todas las redes existentes

en el sistema y se escribe en este formato:

o Nombre: Nombre del generador.

o Grid: Nombre de la red en la que se encuentra el generador.

o Terminal Busbar: Barra donde está conectada el generador.

o Active Power MW: Potencia Activa del generador en [MW].

o Reactive Power Mvar: Potencia reactiva del generador en [MVar].

o Qmax Mvar: Limite superior de Potencia Reactiva en [MVar].

o Qmin Mvar: Limite inferior de Potencia Reactiva en [MVar].

o Nominal Apparent Power: Potencia nominal del generador en

[MVA].

o xd" sat p.u: Reactancia de saturación.

o Out of Service: Muestra si el generador se encuentra en servicio.

o Pmax MW: Máximo valor de Potencia Activa del generador.

o Pmin MW: Valor mínimo de Potencia activa del generador.

38 
 
while (exista una red){

• Se eligen cada una de las líneas de todas las redes existentes en el

sistema y se escribe en este formato:

o Nombre: Nombre de la línea.

o Grid: Nombre de la red en la que se encuentra la línea.

o Terminal i: Barra i donde esta conectada la línea.

o Terminal j: Barra j donde esta conectada la línea.

o R [pu]: Parámetro R (resistencia) de la línea, en ohm/km.

o X [pu]: Parámetro X (reactancia) de la línea, en ohm/km.

o B [pu]: Parámetro B (susceptancia) de la línea, en ohm/km.

o RateA; RateB; RateC: se refiere a la expresión √3·V ·I , en

[MVA].

o Out of Service: Muestra si la línea se encuentra en servicio.

o Len [KM]: representa el largo de la línea, en [km].

while (exista una red){

• Se eligen cada una de los transformadores de dos y tres enrollados

de todas las redes existentes en el sistema y se escribe en este formato:

o Nombre: Nombre del transformador.

o Grid: Nombre de la red en la que se encuentra el transformador.

o Terminal i: Barra i donde esta conectado el transformador.

o Terminal j: Barra j donde esta conectado el transformador.

39 
 
o R1-2 [pu]: Parámetro R (resistencia), de secuencia positiva en

[pu].

o X1-2 [pu]: Parámetro X (reactancia), de secuencia positiva en [pu].

o Rated Power [MVA]; Rated Power [MVA]; Rated Power [MVA]:

Potencia nominal del transformador, en [MVA].

o WINDV1 [pu]: Relación entre el voltaje de alta del transformador y

el voltaje nominal, en [pu].

o Out of Service: Muestra si el transformador se encuentra en

servicio.

while (exista una red){

• Se eligen cada una de los elementos Shunt de todas las redes

existentes en el sistema y se escribe en este formato:

o Name Nombre del elemento shunt.

o Grid: Nombre de la red en la que se encuentra el elemento shunt.

o Terminal BusBar: Barra donde está conectada el elemento shunt.

o Upper Voltage Limit [pu]: Límite superior de voltaje en [pu].

o Lower Voltage Limit [pu]: Límite inferior de voltaje en [pu].

o Binit: Admitancia total.

o Ni: Numero de pasos.

o Bi: Valor de la admitancia por numero de pasos.

40 
 
Con esto se termina la recopilación de datos para el cálculo de flujo de

potencia, ahora se comienza a escribir el archivo que contiene los datos de

secuencia.

while (exista una red) {

• Se eligen los datos de impedancia de secuencia positiva de los

generadores de todas las redes existentes en el sistema y se escribe en

este formato:

o Terminal Bus Bar: Barra donde está conectado el generador.

o Name: Nombre del Generador.

o ZRPOS [pu]: Resistencia de secuencia positiva del generador.

o ZXPOS [pu]: Reactancia de secuencia positiva del generador.

while (exista una red) {

• Se eligen los datos de impedancia de secuencia negativa de los

generadores de todas las redes existentes en el sistema y se escribe en

este formato:

o Terminal Bus Bar: Barra donde está conectado el generador.

o Name: Nombre del Generador.

o ZRNEG [pu]: Resistencia de secuencia negativa del generador.

o ZXNEG [pu]: Reactancia de secuencia negativa del generador.

41 
 
while (exista una red) {

• Se eligen los datos de impedancia de secuencia cero de los

generadores de todas las redes existentes en el sistema y se escribe en

este formato:

o Terminal Bus Bar: Barra donde está conectado el generador.

o Name: Nombre del Generador.

o RZERO [pu]: Resistencia de secuencia cero del generador.

o XZERO [pu]: Reactancia de secuencia cero del generador.

while (exista una red) {

• Se eligen los datos de impedancia de secuencia negativa de las cargas

de tipo shunt de todas las redes existentes en el sistema y se escribe en

este formato:

o Terminal Bus Bar: Barra donde está conectada la carga.

o Name: Nombre de la carga.

o GNEG [pu]: Componente activa de secuencia negativa de la

carga.

o BNEG [pu]: Componente reactiva de secuencia negativa de la

carga.

while (exista una red) {

42 
 
• Se eligen los datos de impedancia de secuencia cero de las cargas de

tipo shunt de todas las redes existentes en el sistema y se escribe en

este formato:

o Terminal Bus Bar: Barra donde está conectada la carga.

o Name: Nombre de la carga.

o GZERO [pu]: Componente activa de secuencia cero de la carga.

o BZERO [pu]: Componente reactiva de secuencia cero de la carga.

while (exista una red) {

• Se eligen los datos de secuencia cero de las líneas de todas las redes

existentes en el sistema y se escribe en este formato:

o Name: Nombre de la línea.

o Terminal i Bus bar: Barra i donde esta conectada la línea.

o Terminal j Bus Bar: Barra j donde esta conectada la línea.

o RLINZ: Resistencia de secuencia cero de la línea en [pu].

o XLINZ: Reactancia de secuencia cero de la línea en [pu].

o BCHZ: Susceptancia de secuencia cero de la línea en [pu].

while (exista una red) {

• Se eligen los datos de método de puesta a tierra de los

transformadores de dos y tres enrollados de todas las redes existentes

en el sistema y se escribe en este formato:

43 
 
o Name: Nombre del generador.

o Terminal i Bus bar: Barra i donde está conectado el transformador

(lado de alta tensión).

o Terminal j Bus Bar: Barra j donde está conectado el transformador

(lado de baja tensión).

o Grounding Code I: Método de conexión de lado i del transformador

(D, Y o YN).

o Grounding Code J: Método de conexión de lado j del

transformador (D, Y o YN).

Con esto finaliza la recopilación de datos de secuencia del sistema, y comienza

la recopilación de datos para el análisis dinámico.

while (exista una red) {

• Se eligen los datos del modelo general de cada generador de todas las

redes existentes en el sistema y se escribe en este formato:

o Nombre: Nombre del Generador.

o Terminal Bus Bar: Barra en donde está conectado el generador.

o H [s]: Constante de tiempo de inercia.

o Damp [pu]: Dumping mecánico.

o rstr [pu]: Resistencia de estator.

o xl [pu]: Reactancia de fuga.

o xrl [pu]: Reactancia de estator.

44 
 
o Rotor Type: Tipo de rotor (polos salientes, tipo jaula de ardilla)

o xd [pu]: Reactancia síncrona longitudinal.

o xq [pu]: Reactancia síncrona transversal.

o Td0´ [s], Tq0´ [s]: Constantes de tiempo transitorios.

o xd´ [pu]: Reactancia transiente longitudinal.

o xq´ [pu]: Reactancia transiente transversal.

o Td0´´ [s], Tq0´´ [s]: Constantes de tiempo subtransitorios.

o xd´´ [pu]: Reactancia subtransiente longitudinal.

o xq´´ [pu]: Reactancia subtransiente transversal.

o Main Flux Saturation: Saturación de flujo principal.

o 1.0 [pu], 1.2 [pu]: Parámetros de saturación

while (exista una red) {

• Se eligen los datos de los reguladores de tensión de cada generador

de todas las redes existentes en el sistema. Existen distinta información

para distintos tipos de generadores, estos datos se detallan en los

anexos.

while (exista una red) {

• Se eligen los datos de los reguladores de turbina de cada generador de

todas las redes existentes en el sistema. Existen distinta información

45 
 
para distintos tipos de generadores, estos datos se detallan en los

anexos.

while (exista una red) {

• Se eligen los datos de los estabilizadores de potencia de cada

generador de todas las redes existentes en el sistema. Existen distinta

información para distintos tipos de generadores, estos datos se detallan

en los anexos.

46 
 
CAPÍTULO 4.

BASE DE DATOS PARA CREAR ARCHIVOS GENERALES DE

SISTEMAS ELÉCTRICOS.

4.1 Resumen

En este capítulo se mostrará el origen y el manejo de los datos

recopilados para el análisis y cálculo de los sistemas eléctricos.

4.2 Introducción

En el capítulo anterior se describe en detalle el algoritmo del script

realizado en Digsilent. En esta oportunidad se hablará del origen de dichos

datos, la forma en que son manejados, y el producto final, que se refiere a los

archivos generados para ser utilizados por los softwares disponibles (Digsilent,

PSS/E y Power World).

4.3 Planteamiento del Problema

Como es de conocimiento general, cada elemento de un sistema

eléctrico contiene parámetros físicos, técnicos y eléctricos que son necesarios

para realizar análisis de estabilidad. Esta extensa información es manejada de

forma particular por cada uno de los softwares del mercado, es decir, cada

programa tiene sus propias librerías, herramientas, entornos gráficos y forma en

47 
 
como ingresar datos, siendo la de algunos más gráfica y didáctica, y en otros

siendo más criptica y detallada para manejar.

Es por esto que surge la necesidad de crear una base de datos que trate

a cada elemento del sistema de forma general y sencilla. Para esto se elige una

herramienta ampliamente conocida en el mercado, Microsoft Excel, de uso

frecuente como planilla de cálculo.

Para esto se crea una herramienta capaz de exportar datos directamente

desde Digsilent (donde se tienen los datos actualizados del sistema), y crear

archivos de texto, en formato legible directamente por Excel, los cuales serán

exportados en formato .raw, formato compatible con todos los softwares

utilizados.

4.4 Datos de Entrada de Base de Datos

Los datos requeridos por los programas Power World, PSS/E y Digsilent,

son distintos (en cantidad) ya que cada uno de estos programas maneja la

información de manera distinta, siendo unos más completos que otros.

El análisis más básico lo entrega Power World, que solamente está

capacitado para realizar estudios de flujos de potencia, aún así este programa

tiene una interfaz bastante sencilla y didáctica, lo que lo hace un programa muy

usado para ilustrar gráficamente el comportamiento del sistema.

El programa PSS/E, además de realizar análisis de flujos de potencia, es

capaz de hacer estudios dinámicos de fallas. Es por esto que requiere una

48 
 
mayor cantidad de datos de los que necesita Power World, precisando un

archivo raw mayor. El problema es que es un programa poco amigable, y su

utilización se limita a usuarios avanzados.

PSS/E también es capaz de realizar análisis dinámicos de sistema, pero

su implementación es más complicada que en Digsilent, aún así estos análisis

se desarrollan, y los resultados del PSS/E serán comparados con los resultados

entregados por Digsilent.

Digsilent es el programa más completo de los tres software presentados,

es bastante gráfico y didáctico para su utilización, haciéndolo, a primera vista,

fácil de ocupar. Aún así trabajar con Digsilent es complicado, ya que, por

ejemplo, la cantidad de datos requeridos para hacer un simple flujo de potencia

es abrumadora, con lo que se escapa de la definición de “programa fácil de

ocupar”. Digsilent realiza, entre otras cosas, flujos de potencia, análisis de fallas

y estudios dinámicos de SEP. Aunque PSS/E también realiza análisis

dinámicos, es en Digsilent donde se puede ajustar (con la posibilidad de

hacerlo gráficamente) con mayor precisión las máquinas generadoras del

sistema, consiguiendo hacer modelos personalizados (en especial de los

sistemas de control).

Este programa es el que se está utilizando hoy en el mercado chileno y

es en donde se encuentran gran parte de los datos necesarios. Los CDEC’s

ponen a disposición los archivos del SING y SIC en Digsilent, en donde se

encuentran los antecedentes necesarios, pero al tratar de visualizar los datos,

49 
 
estos se encuentran en lenguaje críptico (formato .dz), y es por esto que es

necesario crear una forma (script) para llevar la información desde Digsilent a

PSS/E y Power world, u otro software.

4.5 Creación del Diseño

El traspaso de información desde Digsilent a Excel puede ser directa,

simplemente “copiando y pegando”, el problema con este método es que existe

mucha información innecesaria, o redundante. Además, para el caso de análisis

dinámico, los datos tendrían que hacerse uno por uno, por cada generador. Es

por esto que se hace uso del script, para hacer el traspaso de información en

poco tiempo y sólo con la información necesaria.

Cada inicio de toma de datos comienza con el siguiente formato:

“0 tab una pequeña descripción de la información que viene”

“nombre de la información que se mostrará separada por tabs”

“nombre de la variable que contiene la información en Digsilent”

En la Figura  3 se muestra une extracto del archivo generado, donde se

ve claramente el uso de “tabs” para cambiar de tipo de información, y en el

encabezado de tres líneas especificado anteriormente.

50 
 
Figura 3, Tabla de Script Visto en Notepad

Este archivo generado se abre con Excel, lo que se ve en la siguiente

figura:

Figura 4, Tabla de Script Visto en Excel 

Este formato se repite para cada tipo de dato, y para cada archivo, esto

se hace para facilitar la creación de una macro de Excel.

Cuando Excel genera los archivos raw, estos están en formato raw tipo

26, que es el formato que lee Power World, PSS/E y Digsilent.

51 
 
CAPÍTULO 5.

CASOS PRÁCTICOS DE ANÁLISIS

5.1 Resumen

En este capítulo se analizarán estudios reales en el sistema. Entre estos

estudios, se pueden considerar la inclusión de generadores, líneas y cargas al

sistema, y comparación de los resultados obtenidos con los softwares.

5.2 Introducción

Utilizando Digsilent se estudiaran 2 casos reales, el primero consiste en

incluir nuevas centrales generadoras, utilizando una demanda esperada a futuro

para realizar estudios.

Con estas centrales en funcionamiento se estudiarán los efectos

sistémicos, la necesidad de incluir nuevas líneas, con lo cual estos análisis se

extenderán a los efectos en el sistema de transmisión. Esto llevará al segundo

caso a estudiar, la inclusión de nuevas líneas de transmisión.

Los análisis en general consisten en hacer flujos de potencias y análisis

estáticos de fallas, analizando variables principales. Se analizan los efectos en

el sistema, antes y después de la central, se realizan comparaciones con cada

uno de los softwares computacionales, mediante la base de datos creada.

52 
 
5.3 Casos de Estudio

Para realizar los distintos casos de estudio, hay que tener en cuenta que

los cambios que se realizarán son la inclusión de:

• 2 unidades generadoras en Mejillones (SING) (300 MW).

• Otra nueva posible central generadora en mejillones con capacidad

aproximada de 600 MW que tendrá posible conexión con las barras del

SING Chacaya, Gas Atacama, Laberinto y Encuentro/Crucero.

• Nuevas líneas entre Chacaya – Gas Atacama y Norgener – Tocopilla, y

cuando se necesite, una línea nueva entre Crucero – Encuentro.

• Cuando sea necesario, y para equilibrar el sistema cuando la generación

exceda la demanda, se incluirán cargas posibles en barras Laberinto,

Escondida y Encuentro.

• Al entrar las unidades generadoras de mejillones, se analizará la

necesidad del resto de las unidades del área.

• Cuando ingrese al sistema la nueva central generadora en mejillones (de

aprox. 600 MW), se analizará el efecto de sacar de servicio la central

Salta.

53 
 
Con estos datos se crea el siguiente cuadro:

MEJ1‐ MEJ2  Central 600 MW L Chacaya‐GasAtacama


0  0  0 
0  0  1 
0  1  0 
0  1  1  se agregan  cargas 
1  0  0 
1  0  1  se agregan  cargas 
1  1  0  se agregan  cargas 
1  1  1  se agregan  cargas 
Figura 5, Casos a Estudiar 

Los 8 casos mostrados en el cuadro anterior son los que se estudiarán

con los 3 programas. Además se agregan 4 casos más:

• El caso base (sistema sin cambios).

• Una línea adicional Norgener – Tocopilla

• Una línea adicional Crucero – Encuentro

• Un caso que incluye la central de 600 MW + unidades en

Mejillones + la línea Norgener – Tocopilla + la línea Crucero –

Encuentro.

Con todos estos casos ya definidos, se calculan los flujos de potencia en

Digsilent, extrayendo manualmente solamente los datos de voltaje en las

barras, el nivel de carga de las líneas y la potencia suministrada por los

generadores para posterior comparación.

En la Figura 6 se muestran los datos de nivel de voltaje que existe en las

barras para el caso base (izquierda) y el de la línea adicional Crucero –

Encuentro (uno de los 12 casos mencionados anteriormente). Cuando se

54 
 
realiza el caso base, existen barras que se encuentran por debajo de 0.95 en

p.u, las cuales se marcan en amarillo pues no se toman en cuenta para el

análisis (Esto porque el problema de este bajo voltaje no es el tópico en

estudio). Luego se muestran en rojo aquellas barras que tienen directa relación

con los cambios hechos y que modificaron y luego se marca en color verde

aquellas barras no están relacionadas de manera directa eléctricamente con el

sector de análisis realizado.

Caso Base Línea Crucero Encuentro


u,
Nombre En la carpeta u, Magnitud Nombre En la carpeta Magnitud

p.u. p.u.
rw AG Salta- Pozo Almonte Cerro Colorado Línea crucero
Terminal(1) Andes 0.9496783 12 Encuentro 0.8695532
Linea crucero
Andes 345 SING 0.9496636 Laberinto Oeste 13.2 Encuentro 0.886408
Linea crucero
Andes Reactor Shunt 345 SING 0.9496636 Lagunas Norte 23 Encuentro 0.9005405
Linea crucero
Calama Santa Margarita 23 SING 0.9486859 Parinacota 13.8 Encuentro 0.9183257
Linea crucero
Tocopilla 5 E SING 0.9443493 SS/AA CTM1 4.16 Encuentro 0.9389611
Pozo Almonte Cerro Colorado Linea crucero
12 SING 0.9422563 Andes 345 Encuentro 0.943405
Linea crucero
SS/AA CTM1 4.16 SING 0.9374819 Andes Reactor Shunt 345 Encuentro 0.943405

Lagunas Norte 23 SING 0.9222045 Terminal(1) rw AG Salta-Andes 0.9434178


Linea crucero
Parinacota 13.8 SING 0.9188048 Tocopilla 5 E Encuentro 0.944683
Linea crucero
Laberinto Oeste 13.2 SING 0.9155864 Calama Santa Margarita 23 Encuentro 0.9549839
Linea crucero
Mantos Blancos 6.3 SING 0.9521913 Pozo Almonte 13.8 AT2 Encuentro 0.8966071
Linea crucero
Pozo Almonte 13.8 AT2 SING 0.9531089 Pozo Almonte 13.8 AT5 Encuentro 0.9126411
Linea crucero
Radomiro Tomic 220 SING 0.9549096 Radomiro Tomic 23 Encuentro 0.9217408
Linea crucero
Chacaya CTM1 13.8 SING 0.9553594 Pozo Almonte 24 Encuentro 0.922722
Linea crucero
Capricornio 23 SING 0.9557767 Pozo Almonte Pampino 24 Encuentro 0.9227982
Linea crucero
Tocopilla 13.8 SING 0.9566233 Arica 13.2 Encuentro 0.8780781
Pozo Almonte Cerro Colorado Linea crucero
Esmeralda 13.8 SING 0.9613217 110 Encuentro 0.9066734
Linea crucero
Chuquicamata GIS 13.8 SING 0.9627828 Arica Chapiquiña 3 Encuentro 0.911808
Linea crucero
CD Iquique MSIQ 6.6 SING 0.963075 CD Iquique MSIQ 6.6 Encuentro 0.9128188
Linea crucero
El Abra 220 SING 0.9638432 CD Arica 13.8 Encuentro 0.9168857
Figura 6, Datos del Sistema Extraídos Manualmente, Caso Base + Línea Crucero ‐ Encuentro 

55 
 
El mismo análisis fue hecho para cada uno de los casos, es decir, se

analizó el voltaje por barras, y adicionalmente se analizó el nivel de carga en las

líneas y se verificó la potencia entregada por cada generador.

Luego se procede a realizar las mismas comparaciones, pero ahora

adquiriendo los datos con la ayuda del script hecho para extraer datos del

Digsilent. Los datos fueron llevados a un archivo .txt, que maneja mediante

base de datos en Excel, cuyos resultados se muestran en la Figura 7, donde se

observa que los datos extraídos por el script difieren en el 6° decimal, lo que no

afecta prácticamente en nada en términos de cálculo de flujos.

Caso Base Linea Crucero Encuentro


u, u,
Nombre En la Carpeta Magnitud Nombre En la carpeta Magnitud

p.u p.u.
rw AG Salta- Pozo Almonte Cerro Colorado Linea crucero
Terminal(1) Andes 0.949678 12 Encuentro 0.869553
Linea crucero
Andes 345 SING 0.949664 Laberinto Oeste 13.2 Encuentro 0.886408
Linea crucero
Andes Reactor Shunt 345 SING 0.949664 Lagunas Norte 23 Encuentro 0.90054
Linea crucero
Calama Santa Margarita 23 SING 0.948686 Parinacota 13.8 Encuentro 0.918326
Linea crucero
Tocopilla 5 E SING 0.944349 SS/AA CTM1 4.16 Encuentro 0.938961
Pozo Almonte Cerro Colorado Linea crucero
12 SING 0.942256 Andes 345 Encuentro 0.943405
Linea crucero
SS/AA CTM1 4.16 SING 0.937482 Andes Reactor Shunt 345 Encuentro 0.943405

Lagunas Norte 23 SING 0.922205 Terminal(1) rw AG Salta-Andes 0.943418


Linea crucero
Parinacota 13.8 SING 0.918805 Tocopilla 5 E Encuentro 0.944683
Linea crucero
Laberinto Oeste 13.2 SING 0.915586 Calama Santa Margarita 23 Encuentro 0.954984
Linea crucero
Mantos Blancos 6.3 SING 0.952191 Pozo Almonte 13.8 AT2 Encuentro 0.896607
Linea crucero
Pozo Almonte 13.8 AT2 SING 0.953109 Pozo Almonte 13.8 AT5 Encuentro 0.912641
Linea crucero
Radomiro Tomic 220 SING 0.95491 Radomiro Tomic 23 Encuentro 0.921741
Linea crucero
Chacaya CTM1 13.8 SING 0.955359 Pozo Almonte 24 Encuentro 0.922722
Linea crucero
Capricornio 23 SING 0.955777 Pozo Almonte Pampino 24 Encuentro 0.922798
Linea crucero
Tocopilla 13.8 SING 0.956623 Arica 13.2 Encuentro 0.878078
Pozo Almonte Cerro Colorado Linea crucero
Esmeralda 13.8 SING 0.961322 110 Encuentro 0.906673
Linea crucero
Chuquicamata GIS 13.8 SING 0.962783 Arica Chapiquiña 3 Encuentro 0.911808
Linea crucero
CD Iquique MSIQ 6.6 SING 0.963075 CD Iquique MSIQ 6.6 Encuentro 0.912819
Linea crucero
El Abra 220 SING 0.963843 CD Arica 13.8 Encuentro 0.916886
Figura 7, Datos del Sistema Extraídos con el Script, Caso Base + Línea Crucero ‐ Encuentro 

56 
 
Se repite este proceso para los 12 casos, para barras, generadores y

líneas.

Ahora se procede a crear el archivo .raw que será leído por los

programas PowerWorld y PSS/E. Este archivo es creado para la versión raw 26,

e incluye todos los datos necesarios para hacer estudios de flujos de potencia.

Un extracto de esta etapa se muestra en la siguiente figura:

0 Barras 0 100
Nom.L-L Ul. Magnitude Magnitude Angle
Name Station Grid Volt.kV kV p.u deg SING
m:phi nu
loc_name fold_id e:uknom m:Ul m:u u m 2007
-
Alto Norte 11.08 1 '1 ' 13.8 1 0 0 1 1
B1 13.8 #1 SING 13.8 13.8464 1.00336 26 1 1 1 1.00336 -11.0826 1
-
Alto Norte 11.08 2 '2 ' 13.8 1 0 0 1 1
B2 13.8 #1 SING 13.8 13.8464 1.00336 26 1 2 1 1.00336 -11.0826 1
-
Alto Norte 10.47 3 '3 ' 13.8 1 0 0 1 1
B1 13.8 #2 SING 13.8 13.7587 0.997005 34 1 3 1 0.997005 -10.4734 1
-
Alto Norte 10.47 4 '4 ' 13.8 1 0 0 1 1
B2 13.8 #2 SING 13.8 13.7587 0.997005 34 1 4 1 0.997005 -10.4734 1
-
Antofagasta Antofagast 9.539 5 '5 ' 13.8 1 0 0 1 1
13.8 A a 13.8 SING 13.8 13.7251 0.994572 45 1 5 1 0.994572 -9.53945 1
-
Antofagasta Antofagast 9.539 6 '6 ' 13.8 1 0 0 1 1
13.8 B a 13.8 SING 13.8 13.7251 0.994572 45 1 6 1 0.994572 -9.53945 1
-
25.04 7 '7 ' 23 1 0 0 1 1
B1 Calama 23 SING 23 22.4503 0.976101 54 1 7 1 0.976101 -25.0454 1
-
25.04 8 '8 ' 23 1 0 0 1 1
B2 Calama 23 SING 23 22.4503 0.976101 54 1 8 1 0.976101 -25.0454 1
Chacaya 27.10 9 '9 ' 220 1 0 0 1 1
Chacaya 1 220 SING 220 220.66 1.003 68 1 9 1 1.003 27.1068 1
Figura 8, Creación de formato raw 26 

En las últimas dos columnas se muestra el texto que finalmente irá en el

archivo raw. Luego el archivo se abre con PowerWorld, como se ve en la Figura 

9, y en donde se muestra que se han leído cada uno de los datos

satisfactoriamente.

57 
 
Figura 9, Vista de PowerWorld

En la Figura 10 se muestran algunos datos ya ingresados en el programa.

Hay que agregar que además de los datos que se ingresan desde la base de

datos del Digsilent, hay que agregar la información de los switchs e

interruptores, que se modelan como líneas de distancia e impedancia cero, esto

se hace porque pueden existir elementos en servicio, pero que el switch que los

conecta al sistema, esta desconectado.

58 
 
Figura 10, Datos Ingresados al Power World

Ahora es cuando se ejecuta el cálculo de flujo de potencia, y se exportan

los resultados a Excel para hacer una tabla comparativa.

En la figura 11 se muestra el resultado que entrega Digsilent después de

hacer un cálculo de flujo de potencia, y el que entrega Power World para uno de

los casos estudiados. En la última columna se muestra la diferencia que existe

entre ambos resultados, en donde se aprecia que esta diferencia nunca es

mayor al 3%, mostrando así la efectividad del programa. En la figura 12 y 13, se

muestran las comparaciones de generación y flujos por las líneas.

59 
 
Linea Crucero Encuentro Linea Crucero Encuentro
Nombre En la carpeta u, Magnitud Nombre En la carpeta u, Magnitu %
p.u. p.u.
Pozo Almonte Cerro Colorado Linea crucero Encu 0.869553 Pozo Almonte Cerro Colorado 1Linea crucero En 0.869553 0
Laberinto Oeste 13.2 Linea crucero Encu 0.886408 Laberinto Oeste 13.2 Linea crucero En 0.886408 0
Lagunas Norte 23 Linea crucero Encu 0.900541 Lagunas Norte 23 Linea crucero En 0.891535 0.01
Parinacota 13.8 Linea crucero Encu 0.918326 Parinacota 13.8 Linea crucero En 0.899959 0.02
SS/AA CTM1 4.16 Linea crucero Encu 0.938961 SS/AA CTM1 4.16 Linea crucero En 0.95774 -0.02
Andes 345 Linea crucero Encu 0.943405 Andes 345 Linea crucero En 0.933971 0.01
Andes Reactor Shunt 345 Linea crucero Encu 0.943405 Andes Reactor Shunt 345 Linea crucero En 0.952839 -0.01
Terminal(1) rw AG Salta-Andes 0.943418 Terminal(1) rw AG Salta-And 0.952852 -0.01
Tocopilla 5 E Linea crucero Encu 0.944683 Tocopilla 5 E Linea crucero En 0.944683 0
Calama Santa Margarita 23 Linea crucero Encu 0.954984 Calama Santa Margarita 23 Linea crucero En 0.983633 -0.03
Pozo Almonte 13.8 AT2 Linea crucero Encu 0.896607 Pozo Almonte 13.8 AT2 Linea crucero En 0.923505 -0.03
Pozo Almonte 13.8 AT5 Linea crucero Encu 0.912641 Pozo Almonte 13.8 AT5 Linea crucero En 0.885262 0.03
Radomiro Tomic 23 Linea crucero Encu 0.921741 Radomiro Tomic 23 Linea crucero En 0.921741 0
Pozo Almonte 24 Linea crucero Encu 0.922722 Pozo Almonte 24 Linea crucero En 0.904268 0.02
Pozo Almonte Pampino 24 Linea crucero Encu 0.922798 Pozo Almonte Pampino 24 Linea crucero En 0.895114 0.03
Arica 13.2 Linea crucero Encu 0.878078 Arica 13.2 Linea crucero En 0.886859 -0.01
Pozo Almonte Cerro Colorado Linea crucero Encu 0.906673 Pozo Almonte Cerro Colorado 1Linea crucero En 0.897607 0.01
Arica Chapiquiña 3 Linea crucero Encu 0.911808 Arica Chapiquiña 3 Linea crucero En 0.920926 -0.01
CD Iquique MSIQ 6.6 Linea crucero Encu 0.912819 CD Iquique MSIQ 6.6 Linea crucero En 0.903691 0.01
CD Arica 13.8 Linea crucero Encu 0.916886 CD Arica 13.8 Linea crucero En 0.898548 0.02
La Cascada 66 Linea crucero Encu 0.919984 La Cascada 66 Linea crucero En 0.910784 0.01
CD Arica 66 Linea crucero Encu 0.928724 CD Arica 66 Linea crucero En 0.91015 0.02
ED Tap-off Quiani ED CD Arica-Arica 0.928769 ED Tap-off Quiani ED CD Arica-Aric 0.938057 -0.01
Arica 66 Linea crucero Encu 0.928799 Arica 66 Linea crucero En 0.919511 0.01
Terminal(1) rw ED Chapiquiña- 0.929439 Terminal(1) rw ED Chapiquiñ 0.938733 -0.01
Arica Cerro Chuño 13.8 Linea crucero Encu 0.929503 Arica Cerro Chuño 13.8 Linea crucero En 0.948093 -0.02
Iquique Cavancha 4.16 Linea crucero Encu 0.930458 Iquique Cavancha 4.16 Linea crucero En 0.958371 -0.03
B1 Escondida Laguna 0.930679 B1 Escondida Lagun 0.912065 0.02
B2 Escondida Laguna 0.930679 B2 Escondida Lagun 0.902759 0.03
B2.0 Escondida Laguna 0.930679 B2.0 Escondida Lagun 0.949292 -0.02
Arica El Aguila Quiborax Linea crucero Encu 0.938645 Arica El Aguila Quiborax Linea crucero En 0.910486 0.03
Laberinto Minsal 110 Linea crucero Encu 0.939412 Laberinto Minsal 110 Linea crucero En 0.911229 0.03
Laberinto Minsal 23 Linea crucero Encu 0.939588 Laberinto Minsal 23 Linea crucero En 0.920796 0.02
Terminal rw ED Chapiquiña- 0.942091 Terminal rw ED Chapiquiñ 0.942091 0
B1 Escondida B2 69 0.947401 B1 Escondida B2 69 0.947401 0
B2 Escondida B2 69 0.947401 B2 Escondida B2 69 0.947401 0
Escondida El Peñon 6.6 Linea crucero Encu 0.947717 Escondida El Peñon 6.6 Linea crucero En 0.966671 -0.02
Pozo Almonte Tamarugal 66 Linea crucero Encu 0.948033 Pozo Almonte Tamarugal 66 Linea crucero En 0.919592 0.03
Figura 11, Comparación de Barras entre Power world y Digsilent 

Linea Encuentro Crucero Linea Encuentro Crucero


Nombre Potencia Activa Nombre Potencia Activa
MW MW
rw EA U16 265.8 rw EA U16 265.8 0
rw AG Salta TG11 177 rw AG Salta TG11 177 0
xrw ED CTM1 150 xrw ED CTM1 150 0
rw NG NTO2 126.5 rw NG NTO2 126.5 0
rw NG NTO1 125.3451 rw NG NTO1 124.091649 ‐0.01010101
rw GA TV2C 124.2 rw GA TV2C 124.2 0
xrw EA U14 115.8 xrw EA U14 115.8 0
rw GA TG2B 102.3 rw GA TG2B 102.3 0
rw GA TG2A 101.6 rw GA TG2A 101.6 0
rw AG Salta TV10 97 rw AG Salta TV10 97 0
rw ED CTM3-TG 97 rw ED CTM3-TG 97 0
xrw EA U15 84.6 xrw EA U15 84.6 0
rw ED CTM3-TV 63.7 rw ED CTM3-TV 63.7 0
Quebrada Blanca UGs 34 Quebrada Blanca UGs 34 0
Chuquicamata UGs 1-3 24 Chuquicamata UGs 1-3 24 0
CHAP1-2 8.4 CHAP1-2 8.4 0
CAVA 0.5 CAVA 0.5 0
Figura 12, Comparación de Generación enre Power World y digsilent

60 
 
Linea Encuentro Crucero Linea Encuentro Crucero
Nombre Nivel de Carga Nombre Nivel de Carga
% %
xrw GA Zaldívar-Escond 128.0879 xrw GA Zaldívar-Escondida B 125.526142 ‐0.020408163
zrw ED Pozo Almonte-Pa 121.1255 zrw ED Pozo Almonte-Pampino 123.54801 0.019607843
zrw ED Pozo Almonte-La 113.5839 zrw ED Pozo Almonte-La Casca 111.312222 ‐0.020408163
xrw GA Domeyko-Lagun 107.6583 xrw GA Domeyko-Laguna Seca 109.811466 0.019607843
rw GA Encuentro-Collah 105.5036 rw GA Encuentro-Collahuasi 106.558636 0.00990099

Figura 13, Comparación de Líneas entre Power World y Digsilent

En el caso de los generadores, la máquina reguladora es NT01, en la

que se ve que la diferencia es del 1%, error aceptable para el análisis de

sistema.

Estas pruebas se hacen también con PSS/E, obteniendo resultados de

diferencias menores de 3%, al igual que Power World. Se debe mencionar que

el traspaso de información entre Power World y PSS/E es directo, ya que estos

programas sí son completamente compatibles.

En cada una de las pruebas hechas, la diferencia entre los programas

Power World – PSS/E y Digsilent nunca supera el 3%, dejando claro que el

programa no es exacto, pero que sí trabaja con un bajo índice de error, creando

cálculos y estudios confiables.

 
61 
 
CAPÍTULO 6.

CONCLUSIONES

El constante desarrollo y crecimiento del sector eléctrico Chileno e

Internacional, inducido por el crecimiento constante de la población, impulsa la

necesidad de contar con herramientas de análisis para la toma de decisiones

técnicas-económicas por parte de los agentes participantes en un mercado

eléctrico competitivo. Dichos agentes, tendrán que considerar la mayor cantidad

de escenarios posibles para poder tomar la mejor decisión, es por esto que las

herramientas de análisis deben ser esencialmente, rápidas y eficaces.

Hoy en día, el uso del programa computacional Power Factory – Digsilent

en el mercado Chileno, ha logrado que las distintas empresas, manejen más

adecuadamente sus bases de datos, invirtiendo principalmente tiempo. En el

presente trabajo se muestra la manera de ayudar a hacer esto mucho más

rápido, logrando utilizar Digsilent no sólo más eficazmente, si no que

complementando su uso compatibilizándolo con otros softwares utilizados

anteriormente por las empresas Edelnor y ElectroAndina (Power World o

PSS/E) para hacer análisis rápidos y eficaces.

El uso de una base de datos en Excel, es la mejor técnica para realizar

este trabajo, ya que la información necesaria de cada uno de los elementos

eléctricos, que es esencial para hacer estudios en los sistemas eléctricos de

potencia, se maneja eficazmente. Estos datos no cambian, independiente del

software utilizado, manteniendo intacta la esencia del sistema eléctrico.

62 
 
Para probar la efectividad de esta base de datos se comprueban los

resultados obtenidos realizando pruebas sin hacer uso de la base de datos,

para luego hacer los mismos estudios, pero ahora haciendo uso de la

herramienta descrita, los resultados obtenidos son básicamente idénticos, y el

tiempo involucrado fue considerablemente menor en el caso de uso del script,

además al hacer uso de Microsoft Excel, los resultados se hacen más claros y

fáciles de chequear.

Con esto se concluye que la implementación de la herramienta

computacional descrita y explicada a lo largo de este trabajo, es un aporte para

el análisis de sistemas eléctricos de potencia, ya que no solo otorga un

instrumento técnico - económico, si no que también acorta los tiempos de

análisis, y entrega respuestas claras y precisas.

Aún así, la constante aparición de nuevas versiones de programa, hace

que este tipo de aplicación necesite evolucionar al mismo ritmo, ya que siempre

existirán cambios necesarios para que la base de datos funcione

correctamente. Además, hay que resaltar que en este trabajo se tomaron en

cuenta solamente 3 programas, y en el mercado hay una gran cantidad de

estos, por lo que el número de combinaciones es enorme, solamente hay que

tener en cuenta la forma en que los distintos softwares manipulan los datos.

Queda de manifiesto que para el desarrollo de aplicaciones futuras, el campo es

inmenso.

63 
 
Bibliografía 

1. Montalván., R. Fuentes. HERRAMIENTAS DE VISUALIZACIÓN DE ESTUDIOS DE FLUJOS DE 
POTENCIA PARA EL APOYOA LA TOMA DE DECISIONES EN SISTEMAS ELÉCTRICOS. Universidad 
de Chile. Santiago : s.n., 2005. Trabajo de Título. 

2. Fast Decoupled Power Flow. B. Slott, O. Alsac. Junio de 1974, IEEE Trans. Power Apparatus 
and System. 

3. Corporation, Power World. [En línea] 
http://www.powerworld.com/features/featurefaq.asp. 

4. The MathWorks, Inc. [En línea] http://www.mathworks.com/products/simpower/. 

5. SIEMENS. [En línea] http://pssadept.com/pti/PTI‐spanish/software/psse/index‐spanish.cfm. 

6. Technologies Inc, RTDS. [En línea] http://www.rtds.com/. 

7. Etap, Enterprise Solution for Electrical Power System. [En línea] http://www.etap.com/. 

8. GmbH, DIgSILENT. [En línea] http://www.digsilent.com/Software/PowerFactory_Features/. 

9. D. T. Risy, and R. H. Staunton. Evaluation of Distribution Analysis Software for DER 
Applications. s.l. : ORNL/TM‐2001/215, Sep. 30, 2002. 

10. Inc., ABB. [En línea] 
http://www.abb.com/Industries/seitp408/05c32a23cb9548e7c1257013003bddb2.aspx. 

11. A power system analysis package for students, using computer graphics. Wachal RW, 
Tarnawecky MZ, Swift GW. IEEE Trans PAS 1984; PAS‐103(2):445‐8. 

12. COPERITE ‐ computer‐aided tool for power engineering research, instruction, training and 
education. Chowdhury BH, Clark DE. IEEE Trans Power Syst 1992;7(4):1565‐70. 

13. J. D. Glover, M. Sarma. Power System Analysis and Design. 2nd edition. s.l. : PWS Publishing 
Company. pág. 253. 

14. N. N. Bengiamin, and F. H. Holcomb. PC‐Based Power System Software: Comparing 
Functions and Features. s.l. : IEEE Trans. Computer Applications in Power, Jan. 1992. págs. 35‐
40. Vol. no. 1. 

15. Modeling Requirements to Study Interactions of DG and Distribution Systems. Kojovic, 
Ljubomir. 2002, IEEE‐PES Sumer Meeting. 

64 
 
16. Power System Analysis Software Tools. Lokendra Bam, Ward Jewell. 2005, IEEE. 

17. Pérez, J. E. Flujos de Potencia Optimo con Programación Secuencial. Universidad de Chile. 
Santiago : s.n., 2001. Tésis de Magíster. 

18. International, Electrocon. CAPE, El software de ingeniería de protección. [En línea] 
http://www.electrocon.com/cape/pf_sp.htm. 

19. Saadat, H. Power System Analysis. New York : McGraw‐Hill, 1999. 

65 
 
ANEXOS

1. Código Script
El siguiente código es el script que se hizo en este trabajo. Esta en formato DPL
(Digsilent Programming Lenguage).
!-----------------------------------------------------------------------
set Elm,Elm2,Elm3,SBar,Conn,ref,Grids,barras,terminales,prueba;
object pMaq,pStac,pBar,bar1,pGrd,pElm,pElm2,pElm3,pTyp,term,bus,bus1,bus2,bus3,
bus4, bus5,bus6,bus7,bus8,bus9;
string ICONTP,ICONT,TapSide,iZoneBus,IREG,IREGP,s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,
s11, s12,s13,s14,s15,s16,s17,s18,s19,s20,s21,s22,s23,s24,s25,s26,s27,s28,s29,s30,
s31,s32,s33,s34,s35,s36,token;
double ZBASE,S_hm,S_hl,S_ml,ISC_hm,ISC_hl,ISC_ml,Req_hm,Req_hl,Req_ml,
Xeq_hm,Xeq_hl,Xeq_ml,Zeq_hm,Zeq_hl,Zeq_ml,RMPCT,rPS,rPT,rST,xPS,xPT,
xST,PG,QG,QT,QB,MBASE,PT,PB,VS,cntrl,ii,aa,bb,cc,dd,ee,ff,MVA,r,r2,r3,x,x2,x3,D1,
D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14,D15,D16,D17,D18,D19,D20,
D21,D22,D23,D24,D25,D26,D27,H,unom,unom2,unom3,min_hm,min_hl,min_ml;
int CC,i,j,cont,Tmod,comp,comp2,tok_pos,tok_pos2,numero,k,sPa,c,c2,z,d,comp3,
comp4,comp5;
fopen('C:\Raw.txt','w',0);
Grids = AllRelevant('*.ElmNet');
pGrd = Grids.First();
fprintf(0,'0\tCase Identification Data');
fprintf(0,'IC\tSBASE');
fprintf(0,'0\t100');
!Flujo.Execute();
fprintf(0,'0\tBarras');
fprintf(0,'Name\tStation\tGrid\tNom.L-L Volt.kV\tUl. Magnitude kV\tu. Magnitude p.u\t U.
Angle deg');
fprintf(0,'loc_name\tfold_id\t \te:uknom\tm:Ul\tm:u\tm:phiu');
while (pGrd) { Elm = pGrd.GetContents('*.StaBar',1);
pElm = Elm.First();
while (pElm) { i=pElm.IsRelevant();
if (i=1) { bus1 = pElm.GetParent();
D1 = pElm:m:phiu; !Ángulo Efectivo [º]
D2 = pElm:m:u; !Voltaje Efectivo [p.u.]
D3 = pElm:m:Ul; !Voltaje Efectivo en [kV]
D4 = pElm:uknom; !Voltaje Nominal [kV]
s4 = pElm:loc_name; !Nombre Elemento
s1 = bus1:loc_name; !Nombre Parent
s2 = pGrd:loc_name; !Nombre Grid
fprintf(0,'%s\t%s\t%s\t%.8f\t%g\t%g\t%g',s4,s1,s2,D4,D3,D2,D1);}
pElm = Elm.Next(); }
pGrd = Grids.Next();}
fprintf(0,'0\tTerminales');
fprintf(0,'Name\tParent\tGrid\tNom.L-L Volt.kV\tUl. Magnitude kV\tu. Magnitude p.u\t U.
Angle deg\tOut of Service');

66 
 
fprintf(0,'loc_name\tFold_id\t \te:uknom\tm:Ul\tm:u\tm:phiu\toutserv');
pGrd = Grids.First();
while (pGrd) {Elm = pGrd.GetContents('*.ElmTerm',1);
Elm.SortToVar(0,'outserv');
pElm = Elm.First();
while (pElm) { j=pElm.IsRelevant();
if (j=1) {bus1 = pElm.GetParent();
if (i=0) i=1;
else i=0;
s4 = pElm:loc_name; !Nombre Elemento
s2 = bus1:loc_name; !Nombre Parent
s1 = pGrd:loc_name; !Nombre Grid
i = pElm:outserv; !Estado ON/OFF
if (.not.i) {D1 = pElm:m:phiu; !Ángulo [º]
D2 = pElm:m:u; !Voltaje PSS [p.u.]
D3 = pElm:m:Ul; !Voltaje Efectivo en [kV]
D4 = pElm:uknom; !Voltaje Nominal [kV]
fprintf(0,'%s\t%s\t%s\t%.8f\t%g\t%g\t%g\t%i',s4,s2,s1,D4,D3,D2,D1,i);}
else fprintf(0,'%s\t%s\t%s\t%.8f\t0\t0\t0\t%i',s4,s2,s1,D4,i);}
pElm = Elm.Next(); }
pGrd = Grids.Next();}
fprintf(0,'0\tCargas');
fprintf(0,'Name\tGrid\tType TypLod,TypLodind\tConexion\tTerminal Busbar\tOut of
Service\tAct.Pow. MW\tReact.Pow. Mvar\tApp.Pow. MVA\tI kA\tPow.Fact.');
fprintf(0,'loc_name\t\ttyp_id\tParent\tbus1_bar\toutserv\tplini\tqlini\tslini\tilini\tcoslini');
pGrd = Grids.First();
while (pGrd) {Elm = pGrd.GetContents('*.ElmLod*',1);
Elm.SortToVar(0,'loc_name');
pElm = Elm.First();
while (pElm) {j=pElm.IsRelevant();
if (j=1) { pTyp=pElm:typ_id;
i=pElm:outserv; !Estado ON/OFF
bus1 = pElm.GetNode(0,0);
bus2 = bus1.GetParent();
s4 = pElm:loc_name; !Nombre Elemento
s1 = pGrd:loc_name; !Nombre Grid
s2 = pTyp:loc_name; !Nombre Tipo
s3 = bus1:loc_name; !Nombre Barra
D1=pElm:plini; !P [MW]
D2=pElm:qlini; !Q [MVar]
D3=pElm:slini; !S [MVA]
D4=pElm:ilini; !I [kA]
D5=pElm:coslini; !fp
s5 = sprintf('%s\t%s\t%s\t%s\t%s',s4,s1,s2,bus2:loc_name,s3);
if (i=1){fprintf(0,'%s\t0\t%f\t%f\t%f\t%f\t%f',s5,D1,D2,D3,D4,D5); }
else{fprintf(0,'%s\t1\t%f\t%f\t%f\t%f\t%f',s5,D1,D2,D3,D4,D5); }}
pElm = Elm.Next();}
pGrd = Grids.Next();}
67 
 
fprintf(0,'0\tGeneradores');
fprintf(0,'Nombre\tGrid\tConexion\tTerminal Busbar\tPG [MW]\tQG [Mvar]\tQT
[Mvar]\tQB [Mvar]\tMBASE [MVA]\tXDSS [p.u]\tService\tPT [MW]\tPB [MW]\tVS
[p.u.]\tIREG Parent\tIREG\tSlack\tRMPCT[%%]');
pGrd = Grids.First();
while (pGrd) {Elm = pGrd.GetContents('*.ElmSym',1);
Elm.SortToVar(0,'outserv');
pElm = Elm.First();
while (pElm) {
j=pElm.IsRelevant();
if (j=1) { i = pElm:outserv;
if (i=1) i=0;
else i=1;
bus1 = pElm.GetNode(0,0);
bus2 = bus1.GetParent(); !Folder Barra i
pTyp=pElm:typ_id;
pStac=pElm:c_pstac; !External Station Controller
s4 = pElm:loc_name; !Nombre Elemento
s1 = pGrd:loc_name; !Nombre Grid
s3 = bus1:loc_name; !Nombre Barra i
s7 = bus2:loc_name; !Nombre Folder Barra
PT=pElm:P_max*pElm:ngnum; !MW max
PB=pElm:P_min; !MW min
MBASE = pTyp:sgn; !MVA Base Generador
if (i=1) { PG=pElm:m:P:bus1; !MW despachados
QG=pElm:m:Q:bus1; !MVar despachados = MVar max = MVar min
if (pStac=NULL) { VS=1; !Voltaje deseado [p.u.]
IREGP=bus2:loc_name; !Nombre Parent Barra a Regular.
IREG=bus1:loc_name; !Nombre Barra a Regular.
RMPCT=100; !Aporte de Reactivos [%] }
else { pBar=pStac:rembar; !IREG
bar1=pBar.GetParent(); !IREG Parent
VS=pStac:usetp; !Voltaje a Regular [p.u.]
IREG=pBar:loc_name; !Nombre Parent Barra a Regular.
IREGP=bar1:loc_name; !Nombre Barra a Regular.
pStac.GetSize('psym',Tmod);
cont = 0;
while (cont<=Tmod) {
pStac.GetVal(pMaq,'psym',cont);
s30=pMaq:loc_name;
if (s30=s4) pStac.GetVal(RMPCT,'cvqq',cont); !Aporte de Reactivos [%]
cont=cont+1; }}
s5=sprintf('%s\t%s\t%s\t%s\t%.3f\t%.3f\t%.3f\t%.3f\t%.3f',s4,s1,s7,s3,PG,QG,QG,QG,M
BASE);
s6=sprintf('%.4f\t%i\t%.3f\t%.3f\t%.3f\t%s\t%s',pTyp:xdss,i,PT,PB,VS,IREGP,IREG);
fprintf(0,'%s\t%s\t%i\t%i',s5,s6,pElm:ip_ctrl,RMPCT);}
else { if (pStac=NULL) { VS=1; !Voltaje deseado [p.u.]
IREGP=bus2:loc_name; !Nombre Parent Barra a Regular.
68 
 
IREG=bus1:loc_name; !Nombre Barra a Regular.
RMPCT=100; !Aporte de Reactivos [%]}
else {pBar=pStac:rembar; !IREG
bar1=pBar.GetParent(); !IREG parent
VS=pStac:usetp; !Voltaje a Regular [p.u.]
IREG=pBar:loc_name; !Nombre Parent Barra a Regular.
IREGP=bar1:loc_name; !Nombre Barra a Regular.
pStac.GetSize('psym',Tmod);
cont = 0;
while (cont<=Tmod) {
pStac.GetVal(pMaq,'psym',cont);
s30=pMaq:loc_name;
if (s30=s4) pStac.GetVal(RMPCT,'cvqq',cont); !Aporte de Reactivos [%]
cont=cont+1; }}
s1=sprintf('%s\t%s\t%s\t%s\t0\t0\t0\t0\t%.3f',s4,s1,s7,s3,MBASE);
s2=sprintf('%.4f\t%i\t%.3f\t%.3f\t%.3f\t%s\t%s',pTyp:xdss,i,PT,PB,VS,IREGP,IREG);
fprintf(0,'%s\t%s\t%i\t%i',s1,s2,pElm:ip_ctrl,RMPCT); }}
pElm = Elm.Next(); }
pGrd = Grids.Next();!-----------------------------------------------------------------LINEAS
pGrd = Grids.First();
fprintf(0,'0\tLineas');
fprintf(0,'Nombre\tGrid L1\tConexion i\tTerminal i\tGrid L2\tConexion j\tTerminal j\tR
[pu]\tX [pu\tB [pu]\tRateA\tRateB\tRateC\tOut of Service\tLen [KM]');
fprintf(0,'loc_name\t\tParent1\tbus1_bar\t\tParent2\tbus2_bar\tR1/dline/MVA\tX1/dline/M
VA\tbline*10^-6*MVA\tMVA\tMVA\tMVA\toutserv\tdline');
while (pGrd) {Elm = pGrd.GetContents('*.ElmLneroute',1);
pElm = Elm.First();
while (pElm) { pTyp = pElm.GetParent();
prueba.Add(pTyp);
pElm = Elm.Next(); }
pGrd = Grids.Next();}
pGrd = Grids.First();
while (pGrd) { Elm = pGrd.GetContents('*.ElmLneroute',1);
pElm = Elm.First();
while (pElm) { j=pElm.IsRelevant();
if (j=1) { bus4 = pElm.GetParent();
i = pElm:outserv;
pTyp = pElm:typ_id;
bus = pElm:bus1;
bus1 = pElm.GetNode(0,0);
bus2 = pElm.GetNode(1,0);
unom = bus.Unom();
MVA=sqrt(3)*unom*pElm:Inom; !MVA Rating para la linea.
D1 = sqr(1000*unom)/100000000; !Impedancia Base.
D2 = pTyp:rline*pElm:dline/D1; !R linea en base común [p.u.].
D3 = pTyp:xline*pElm:dline/D1; !X linea en base común [p.u.].
s4 = pElm:loc_name; !Nombre del Elemento.
s1 = pGrd:loc_name; !Nombre de la Grid.
69 
 
s2 = bus1:loc_name; !Nombre de la Barra i.
s3 = bus2:loc_name; !Nombre de la Barra j.
D4 = pow(10,-6)*pTyp:bline*D1*pElm:dline; !B en PSS.
bus3 = bus1.GetParent();
bus4 = bus2.GetParent();
bus5 = bus3.GetParent();
bus6 = bus4.GetParent();
s7 = bus3:loc_name; !Nombre Parent Barra i.
s8 = bus4:loc_name; !Nombre Parent Barra j.
if (i=0) {s5=sprintf('%f\t%f\t%f\t%.3f\t%.3f\t%.3f',D2,D3,D4,MVA,MVA,MVA);
s6=sprintf('1\t%.2f',pElm:dline);
s9 =sprintf('%s\t%s\t%s\t%s\t%s\t%s\t%s',s4,bus5:loc_name,s7,s2,bus6:loc_name,s8,
s3);
fprintf(0,'%s\t%s\t%s',s9,s5,s6); }
else{s5=sprintf('%.4f\t%.4f\t%.4f\t%.3f\t%.3f\t%.3f',D2,D3,D4,MVA,MVA,MVA);
s6=sprintf('0\t%.2f',pElm:dline);
fprintf(0,'%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s',s4,s1,s7,s8,s2,s3,s5,s6);}}
pElm = Elm.Next();}
pGrd = Grids.Next();}
pGrd = Grids.First();
while (pGrd) { Elm = pGrd.GetContents('*.ElmLne',1);
pElm = Elm.First();
while (pElm) {j=pElm.IsRelevant();
if (j=1) { bus4 = pElm.GetParent();
i = pElm:outserv;
c = prueba.IsIn(pElm);
if(.not.c) { bus = pElm:bus1;
bus1 = pElm.GetNode(0,0);
bus2 = pElm.GetNode(1,0);
unom = bus.Unom(); !Voltaje nominal en Barra.
MVA=sqrt(3)*unom*pElm:Inom; !MVA rating para la linea.
D1 = sqr(1000*unom)/100000000; !Impedancia Base [p.u.].
D2 = pElm:R1/D1; !R linea en base común.
D3 = pElm:X1/D1; !X linea en base común.
s4 = pElm:loc_name; !Nombre Elemento
s1 = pGrd:loc_name; !Nombre Grid
s2 = bus1:loc_name; !Nombre Barra i
s3 = bus2:loc_name; !Nombre Barra j
bus3 = bus1.GetParent();
bus4 = bus2.GetParent();
bus5 = bus3.GetParent();
bus6 = bus4.GetParent();
s7 = bus3:loc_name; !Nombre Parent Barra i
s8 = bus4:loc_name; !Nombre Parent Barra j
if (pTyp) { D4 = pTyp:bline*pow(10,-6)*D1*pElm:dline; !B en PSS
if (i=0) {s5=sprintf('%.4f\t%.4f\t%.4f\t%.3f\t%.3f\t%.3f',D2,D3,D4,MVA,MVA,MVA);
s6=sprintf('1\t%.2f',pElm:dline);
s9=sprintf('%s\t%s\t%s\t%s\t%s\t%s\t%s',s4,bus5:loc_name,s7,s2,bus6:loc_name,s8,s3);

70 
 
fprintf(0,'%s\t%s\t%s',s9,s5,s6);}
else{s5=sprintf('%.4f\t%.4f\t%.4f\t%.3f\t%.3f\t%.3f',D2,D3,D4,MVA,MVA,MVA);
s6=sprintf('0\t%.2f',pElm:dline);
s9 =sprintf('%s\t%s\t%s\t%s\t%s\t%s\t%s',s4,bus5:loc_name,s7,s2,bus6:loc_name,s8, s3);
fprintf(0,'%s\t%s\t%s',s9,s5,s6); }}
else{s5=sprintf('%.4f\t%.4f\t0\t%.3f\t%.3f\t%.3f',D2,D3,MVA,MVA,MVA);
s6=sprintf('1\t%.2f',pElm:dline);
s9 =sprintf('%s\t%s\t%s\t%s\t%s\t%s\t%s',s4,bus5:loc_name,s7,s2,bus6:loc_name,s8, s3);
fprintf(0,'%s\t%s\t%s',s9,s5,s6); }}}
pElm = Elm.Next();}
pGrd = Grids.Next();}
pGrd = Grids.First();
fprintf(0,'0\tTrafos 2');
fprintf(0,'Nombre\tGrid T1\tConexion i\tTerminal i\tGrid T2\tConexion j\tTerminal j\tR1-2
[pu]\tX1-2 [pu]\tRated Power [MVA]\tRated Power [MVA]\tRated Power [MVA]\tWINDV1
[pu]\tAngle\tOut of Service\tTap Side');
fprintf(0,'loc_name\t\tParent 1\tbus1_bar\t\tParent
2\tbus2_bar\tuktrr/strn\tuktr/strn\tSnom\tSnom\tSnom\tutrn_h/unom\tphitr\toutserv');
pGrd = Grids.First();
while (pGrd) { Elm = pGrd.GetContents('*.ElmTr2',1);
pElm = Elm.First();
while (pElm) {j=pElm.IsRelevant();
if (j=1) { i=pElm:outserv; !Estado del Trafo (ON/OFF)
if (i=1) i=0;
else i=1;
pTyp=pElm:typ_id;
x=pTyp:uktr/pTyp:strn; !X1-2
r=pTyp:uktrr/pTyp:strn; !R1-2
bus1 = pElm.GetNode(0,0); !Barra i
bus2 = pElm.GetNode(1,0); !Barra j
unom = bus1.Unom(); !Voltaje barra lado alta base propia
unom2 = bus2.Unom(); !Voltaje barra lado alta base propia
if (pElm:t:tap_side=0) { s30=sprintf('HV');
if (pTyp:nt2ag<6) D1=pTyp:utrn_h/unom+(pTyp:dutap/100);
else D1=pTyp:utrn_h/unom-(pTyp:dutap/100);}
else{s30=sprintf('LV');
if (pTyp:nt2ag<6) D1=pTyp:utrn_l/unom2+(pTyp:dutap/100);
else D1=pTyp:utrn_l/unom2-(pTyp:dutap/100); }
D2 = pTyp:nt2ag*30; !Ángulos segun conexión
s4 = pElm:loc_name; !Nombre Trafo
s1 = pGrd:loc_name; !Nombre Grid
s2 = bus1:loc_name; !Nombre Barra i
s3 = bus2:loc_name; !Nombre Barra j
bus3 = bus1.GetParent();
bus4 = bus2.GetParent();
bus5 = bus3.GetParent();
bus6 = bus4.GetParent();

71 
 
s5=sprintf('%.4f\t%.4f\t%.3f\t%.3f\t%.3f\t%g\t%f',r,x,pElm:Snom,pElm:Snom,pElm:Snom
,D1,D2);
s6=sprintf('%i',i);
s7=sprintf('%s\t%s\t%s\t%s\t%s\t%s',s4,bus5:loc_name,bus3:loc_name,s2,bus6:loc_na
me,bus4:loc_name);
fprintf(0,'%s\t%s\t%s\t%s\t%s',s7,s3,s5,s6,s30); }
pElm = Elm.Next();}
pGrd = Grids.Next();}
fprintf(0,'0\tTrafos 3');
fprintf(0,'Nombre\tGrid T1\tConexion i\tTerminal i\tGrid T2\tConexion j\tTerminal j\tR1-2
[pu]\tX1-2 [pu]\tRated Power [MVA]\tRated Power [MVA]\tRated Power [MVA]\tWINDV1
[pu]\tAngle\tOut of Service');
fprintf(0,'loc_name\t\tParent 1\tbus1_bar\t\tParent
2\tbus2_bar\tuktrr/strn\tuktr/strn\tSnom\tSnom\tSnom\tutrn_h/unom\tphitr\toutserv');
pGrd = Grids.First();
while (pGrd) {Elm = pGrd.GetContents('*.ElmTr3',1);
Elm.SortToVar(0,'loc_name');
pElm = Elm.First();
while (pElm) {j=pElm.IsRelevant();
if (j=1) { i = pElm:outserv;
if (i=1) i=0;
else i=1;
pTyp = pElm:typ_id;
min_hm=min(pTyp:strn3_h,pTyp:strn3_m); !Mínimo entre Alta y Media
min_hl=min(pTyp:strn3_h,pTyp:strn3_l); !Mínimo entre Alta y Baja
min_ml=min(pTyp:strn3_l,pTyp:strn3_m); !Mínimo entre Baja y Media
x=pTyp:uktr3_h/min_hm; !X1-2
x2=pTyp:uktr3_m/min_ml; !X2-3
x3=pTyp:uktr3_l/min_hl; !X3-1
r=pTyp:uktrr3_h/min_hm; !R1-2
r2=pTyp:uktrr3_m/min_ml; !R2-3
r3=pTyp:uktrr3_l/min_hl; !R3-1
bus1 = pElm.GetNode(0,0); !Barra Alta
bus2 = pElm.GetNode(1,0); !Barra Media
bus3 = pElm.GetNode(2,0); !Barra Baja
unom = bus1.Unom(); !Voltaje Alta
unom2 = bus2.Unom(); !Voltaje Media
unom3 = bus3.Unom(); !Voltaje Baja
if (pElm:t3ldc=0) {if (pTyp:nt3ag_h<6) D1=pTyp:utrn3_h/unom +(pElm:n3tap_h/100);
else D1=pTyp:utrn3_h/unom -(pElm:n3tap_h/100);
if (pTyp:nt3ag_m<6) D2=pTyp:utrn3_m/unom2+(pElm:n3tap_m/100);
else D2=pTyp:utrn3_m/unom2-(pElm:n3tap_m/100);
if (pTyp:nt3ag_l<6) D3=pTyp:utrn3_h/unom +(pElm:n3tap_h/100);
else D3=pTyp:utrn3_h/unom-(pElm:n3tap_h/100); }
else{if (pElm:t3ldc=1) {if (pTyp:nt3ag_h<6) D1=pTyp:utrn3_m/unom2
+(pElm:n3tap_m/100); !WINDV1/RATIO (PSS)
else D1=pTyp:utrn3_m/unom2 -(pElm:n3tap_m/100);
if (pTyp:nt3ag_m<6) D2=pTyp:utrn3_h/unom+(pElm:n3tap_h/100);
72 
 
else D2=pTyp:utrn3_h/unom-(pElm:n3tap_h/100);
if (pTyp:nt3ag_l<6) D3=pTyp:utrn3_m/unom2 +(pElm:n3tap_m/100);
else D3=pTyp:utrn3_m/unom2 -(pElm:n3tap_m/100); }
else {if (pElm:t3ldc=2) {if (pTyp:nt3ag_h<6) D1=pTyp:utrn3_h/unom
+(pElm:n3tap_h/100);
else D1=pTyp:utrn3_h/unom -(pElm:n3tap_h/100);
if (pTyp:nt3ag_m<6) D2=pTyp:utrn3_l/unom3+(pElm:n3tap_l/100);
else D2=pTyp:utrn3_l/unom3-(pElm:n3tap_l/100);
if (pTyp:nt3ag_l<6) D3=pTyp:utrn3_l/unom3 +(pElm:n3tap_l/100);
else D3=pTyp:utrn3_l/unom3 -(pElm:n3tap_l/100); !WINDV3/RATIO (PSS) }}}
D4 = pTyp:nt3ag_h*30; !Ángulo Alta
D5 = pTyp:nt3ag_m*30; !Ángulo Media
D6 = pTyp:nt3ag_l*30; !Ángulo Baja
s4 = pElm:loc_name; !Nombre Trafo
s1 = pGrd:loc_name; !Nombre Grid
s2 = bus1:loc_name; !Nombre Barra i
s3 = bus2:loc_name; !Nombre Barra j
s7 = bus3:loc_name; !Nombre Barra k
bus4 = bus1.GetParent();
bus5 = bus2.GetParent();
bus6 = bus3.GetParent();
bus7 = bus4.GetParent();
bus8 = bus5.GetParent();
bus9 = bus6.GetParent();
s5=sprintf('%f\t%f\t%.3f\t%.3f\t%.3f\t%g\t%f',r,x,pTyp:strn3_h,pTyp:strn3_h,pTyp:strn3_
h,D1,D4);
s6=sprintf('%i',i);
s8=sprintf('%s\t%s\t%s\t%s\t%s\t%s',s4,bus7:loc_name,bus4:loc_name,s2,bus8:loc_na
me,bus5:loc_name);
fprintf(0,'%s\t%s\t%s\t%s',s8,s3,s5,s6);! Trafo i-j
s5=sprintf('%f\t%f\t%.3f\t%.3f\t%.3f\t%g\t%f',r2,x2,pTyp:strn3_m,pTyp:strn3_m,pTyp:str
n3_m,D2,D5);
s6=sprintf('%i',i);
s8=sprintf('%s\t%s\t%s\t%s\t%s\t%s',s4,bus8:loc_name,bus5:loc_name,s3,bus9:loc_na
me,bus6:loc_name);
fprintf(0,'%s\t%s\t%s\t%s',s8,s7,s5,s6);! Trafo j-k
s5=sprintf('%f\t%f\t%.3f\t%.3f\t%.3f\t%g\t%f',r3,x3,pTyp:strn3_l,pTyp:strn3_l,pTyp:strn3
_l,D3,D6);
s6=sprintf('%i',i);
s8=sprintf('%s\t%s\t%s\t%s\t%s\t%s',s4,bus7:loc_name,bus4:loc_name,s2,bus9:loc_na
me,bus6:loc_name);
fprintf(0,'%s\t%s\t%s\t%s',s8,s7,s5,s6);! Trafo i-k }
pElm = Elm.Next(); }
pGrd = Grids.Next();}
pGrd = Grids.First();
fprintf(0,'0\tTrafos 2 & 3');
fprintf(0,'Nombre\tGrid T1\tConexion i\tTerminal i\tGrid T2\tConexion j\tTerminal
j\tRMA\tRMI\tVMA\tVMI\tSTEP\tTABLE\tCNTRL\tCR\tCX');
73 
 
while (pGrd) {Elm = pGrd.GetContents('*.ElmTr2',1);
pElm = Elm.First();
while (pElm) {j=pElm.IsRelevant();
if (j=1){ i = pElm:outserv;
if (i=0) { i=1;
pTyp = pElm:typ_id;
if (pElm:t:tap_side=0) {aa=pTyp:utrn_h/unom+(pTyp:dutap/100);
bb=pTyp:utrn_h/unom-(pTyp:dutap/100);
cc = pElm:n:u:bushv;
dd = pElm:n:u:bushm;}
else{aa=pTyp:utrn_l/unom2+(pTyp:dutap/100);
bb=pTyp:utrn_l/unom2-(pTyp:dutap/100);
cc = pElm:n:u:bushv;
dd = pElm:n:u:bushm; }
ee=pTyp:dutap/100; !STEP Tap PSS
cntrl=0; !CNTRL
ff=0; !TABLE
bus1 = pElm.GetNode(0,0);
bus2 = pElm.GetNode(1,0);
s1 = pGrd:loc_name; !Nombre Grid
s2 = bus1:loc_name; !Nombre Barra i
s3 = bus2:loc_name; !Nombre Barra j
s4 = pElm:loc_name; !Nombre Trafo
bus3 = bus1.GetParent();
bus4 = bus2.GetParent();
bus5 = bus3.GetParent();
bus6 = bus4.GetParent();
s6=sprintf('%.4f\t%.4f\t%.4f\t%.4f\t%.5f\t%.4f',aa,bb,cc,dd,ee,ff);
s9=sprintf('%s\t%d\t%d\t%d',s6,cntrl,ff,ff);
s7=sprintf('%s\t%s\t%s\t%s\t%s\t%s',s4,bus5:loc_name,bus3:loc_name,s2,bus6:loc_na
me,bus4:loc_name);
fprintf(0,'%s\t%s\t%s',s7,s3,s9); }
else i=0; }
pElm = Elm.Next();}
pGrd = Grids.Next();}
pGrd = Grids.First();
while (pGrd) {cntrl=0;
ff=0;
Elm = pGrd.GetContents('*.ElmTr3',1);
pElm = Elm.First();
while (pElm) {j=pElm.IsRelevant();
if (j=1) { i = pElm:outserv;
if (i=0) {i=1;
pTyp = pElm:typ_id;
bus1 = pElm.GetNode(0,0);
bus2 = pElm.GetNode(1,0);
bus3 = pElm.GetNode(2,0);
bus4 = bus1.GetParent();
74 
 
bus5 = bus2.GetParent();
bus6 = bus3.GetParent();
bus7 = bus4.GetParent();
bus8 = bus5.GetParent();
bus9 = bus6.GetParent();
unom = bus1.Unom(); !Voltaje Alta
unom2 = bus2.Unom(); !Voltaje Media
unom3 = bus3.Unom(); !Voltaje Baja
s1 = pGrd:loc_name; !Nombre Grid
s2 = bus1:loc_name; !Nombre Terminal i
s3 = bus2:loc_name; !Nombre Terminal j
s7 = bus3:loc_name; !Nombre Terminal k
s4 = pElm:loc_name; !Nombre Trafo
if (pTyp:nt3ag_h<6) { aa=pTyp:utrn3_h/unom +(pElm:n3tap_h/100);
bb=pTyp:utrn3_h/unom -(pElm:n3tap_h/100);}
else if (pTyp:nt3ag_m<6) {aa=pTyp:utrn3_m/unom2+(pElm:n3tap_m/100);
bb=pTyp:utrn3_m/unom2-(pElm:n3tap_m/100); !WINDV2/RATIO (PSS) }
cc=pElm:n:u:bushv; !VMA PSS
dd=pElm:n:u:bushv; !VMI PSS
ee=pTyp:du3tp_h/100; !STEP Tap PSS
s5=sprintf('%.4f',r);
s6=sprintf('%.4f\t%.4f\t%.4f\t%.4f\t%.5f\t%.4f',aa,bb,cc,dd,ee,ff);
s9=sprintf('%s\t%d\t%d\t%d',s6,cntrl,ff,ff);
s8=sprintf('%s\t%s\t%s\t%s\t%s\t%s',s4,bus7:loc_name,bus4:loc_name,s2,bus8:loc_na
me,bus5:loc_name);
fprintf(0,'%s\t%s\t%s',s8,s3,s9);
if (pTyp:nt3ag_h<6) { aa=pTyp:utrn3_h/unom +(pElm:n3tap_h/100);
bb=pTyp:utrn3_h/unom -(pElm:n3tap_h/100); }
else if (pTyp:nt3ag_l<6) {aa=pTyp:utrn3_l/unom3+(pElm:n3tap_l/100);
bb=pTyp:utrn3_l/unom3-(pElm:n3tap_l/100); !WINDV2/RATIO (PSS) }
cc=pElm:n:u:busmv; !VMA PSS
dd=pElm:n:u:busmv; !VMI PSS
ee=pTyp:du3tp_m/100; !STEP Tap PSS
s5=sprintf('%.4f',r2);
s6=sprintf('%.4f\t%.4f\t%.4f\t%.4f\t%.5f\t%.4f',aa,bb,cc,dd,ee,ff);
s9=sprintf('%s\t%d\t%d\t%d',s6,cntrl,ff,ff);
s8=sprintf('%s\t%s\t%s\t%s\t%s\t%s',s4,bus8:loc_name,bus5:loc_name,s3,bus9:loc_na
me,bus6:loc_name);
fprintf(0,'%s\t%s\t%s',s8,s7,s9);
if (pTyp:nt3ag_m<6) {aa=pTyp:utrn3_m/unom2 +(pElm:n3tap_m/100);
bb=pTyp:utrn3_m/unom2 -(pElm:n3tap_m/100); }
else if (pTyp:nt3ag_l<6) {aa=pTyp:utrn3_l/unom3+(pElm:n3tap_l/100);
bb=pTyp:utrn3_l/unom3-(pElm:n3tap_l/100); !WINDV2/RATIO (PSS) }
cc=pElm:n:u:buslv; !VMA PSS
dd=pElm:n:u:buslv; !VMI PSS
ee=pTyp:du3tp_l/100; !STEP Tap PSS
s5=sprintf('%.4f',r3);
s6=sprintf('%.4f\t%.4f\t%.4f\t%.4f\t%.5f\t%.4f',aa,bb,cc,dd,ee,ff);
75 
 
s9=sprintf('%s\t%d\t%d\t%d',s6,cntrl,ff,ff);
s8=sprintf('%s\t%s\t%s\t%s\t%s\t%s',s4,bus7:loc_name,bus4:loc_name,s2,bus9:loc_na
me,bus6:loc_name);
fprintf(0,'%s\t%s\t%s',s8,s7,s9);}
else i=0; }
pElm = Elm.Next(); }
pGrd = Grids.Next();}
fprintf(0,'0\tShunts');
fprintf(0,'Name\tGrid\tConexion\tTerminal BusBar\tUpper Voltage Limit [pu]\tLower
Voltage Limit [pu]\tBinit\tNi\tBi');
fprintf(0,'loc_name\t\tParent\tbus1_bar\tusetp_mx\tusetp_mn\tncapa(qcapn-
qrean)\tncapx\Qmax/ncapx');
pGrd = Grids.First();
while (pGrd) {Elm = pGrd.GetContents('*.ElmShnt',1);
pElm = Elm.First();
while (pElm) { j=pElm.IsRelevant();
if (j=1) { bus1 = pElm.GetNode(0,0);
bus2 = bus1.GetParent();
D1=pElm:n:u:bus1; !VSWHI PSS
D2=pElm:n:u:bus1; !VSWLO PSS
D3=pElm:ncapa*(pElm:qrean-pElm:qcapn); !BINIT en PSS/Power World
D4=pElm:ncapx; !N1 en PSS
D5=pElm:Qmax/pElm:ncapx; !B1 en PSS
s4=pElm:loc_name; !Nombre Elemento
s1=pGrd:loc_name; !Nombre Grid
s2=bus1:loc_name; !Nombre Barra i
s3=bus2:loc_name; !Nombre Barra j
s5=sprintf('%g\t%g\t%g\t%i',D1,D2,D3,D4);
if (pElm:qcapn > 0) {s6=sprintf('%g',D5);
fprintf(0,'%s\t%s\t%s\t%s\t%s\t%s',s4,s1,s3,s2,s5,s6); }
else {s7=sprintf('-%g',D5);
fprintf(0,'%s\t%s\t%s\t%s\t%s\t%s',s4,s1,s3,s2,s5,s7); }}
pElm = Elm.Next();}
pGrd = Grids.Next(); }
pGrd = Grids.First();
fprintf(0,'0\tSwitchs Abiertos');
fprintf(0,'Nombre\tGrid\tParent\tElemento conectado1\tGrid2\tParent2\tElemento
Conectado2\tTipo de elemento\tEstado');
fprintf(0,'loc_name\t\tFold_id1\tbus1\t\tFold_id2\tbus2\tGetClass\ton_off');
while (pGrd) { Elm = pGrd.GetContents('*.ElmCoup',1);
Elm.SortToVar(0,'on_off','loc_name');
pElm = Elm.First();
while (pElm) {c=pElm.IsRelevant();
if (c=1) {bus1 = pElm.GetNode(0,0);
bus2 = pElm.GetNode(1,0);
bus3 = bus1.GetParent();
bus4 = bus3.GetParent();
bus5 = bus2.GetParent();
76 
 
bus6 = bus5.GetParent();
s1 = pElm:loc_name;
s2 = bus1:loc_name;
s3 = bus2:loc_name;
s4 = bus3:loc_name;
s5 = bus4:loc_name;
s6 = bus5:loc_name;
s7 = bus6:loc_name;
s8 = pGrd:loc_name;
i = pElm:on_off;
fprintf(0,'%s\t%s\t%s\t%s\t%s\t%s\t%s\t0\t%i',s1,s5,s4,s2,s7,s6,s3,i);}
pElm = Elm.Next(); }
pGrd = Grids.Next(); }
pGrd = Grids.First();
while (pGrd) {Elm = pGrd.GetContents('*.StaSwitch',1);
Elm.SortToVar(0,'on_off','loc_name');
pElm = Elm.First();
while (pElm) { c=pElm.IsRelevant();
if (c=1) {Elm2 = pElm.GetConnectedElms(1,1,1);
d = Elm2.Count();
bus1 = pElm.GetParent();
bus2 = bus1.GetParent();
bus5 = Elm2.First();
cont = 0;
while(bus5) {s1 = pElm:loc_name;
s2 = bus2:loc_name;
s4 = bus5.GetClass();
s8 = pGrd:loc_name;
s9 = bus5:loc_name;
bus9 =bus5.GetParent();
bus8 = bus9.GetParent();
s10 = '';
i = pElm:on_off;
j = pElm:iUse;
if (d=2) {if (cont = 0) {if (j = 6) {bus4 = bus2.GetParent();
s3 = bus4:loc_name;
s5 = sprintf('%s\t%s\t%s\t%s',s1,s8,bus9:loc_name,s9);
cont = 1; }
else{ bus4 = bus2.GetParent();
s3 = bus4:loc_name;
s5 = sprintf('%s\t%s\t%s\t%s',s1,s8,bus9:loc_name,s9);
cont = 1;}}
else {if (j = 6) {s1 = bus9:loc_name;
s6 = sprintf('%s\t%s\t%s\t%i',s1,s9,s4,i);
cont = 0; }
else{ bus3 = bus1:obj_id;
bus4 = bus3.GetParent();
bus9 = bus4.GetParent();
77 
 
s1 = bus3:loc_name;
s2 = bus4:loc_name;
s3 = bus9:loc_name;
if (bus3) s6= sprintf('%s\t%s\t%s\t%i',s2,s1,s4,i);
else s6 = sprintf('%s\t%s\t%s\t%s\t%i',s8,s10,s10,i);
cont = 0;}
fprintf(0,'%s\t%s\t%s',s5,bus8:loc_name,s6);} }
else fprintf(0,'%s\t%s\t%s\t%s\t0\t0\t0\t0\t0',s1,s8,bus9:loc_name,s9);
bus5 = Elm2.Next();} }
pElm = Elm.Next();}
pGrd = Grids.Next();}
fclose(0);
fopen('C:\seq.txt','w',1);
pGrd = Grids.First();
fprintf(1,'0\tPositive Sequence Generator Impedance Data');
fprintf(1,'Terminal Bus Bar\tName\tZRPOS [pu]\tZXPOS [pu]');
fprintf(1,'bus1_bar\tloc_name\trstr\txdss');
Elm=pGrd.GetContents('*.ElmSym',1);
pElm=Elm.First();
while (pElm) { j=pElm.IsRelevant();
if (j=1) {s4 = pElm:loc_name; !Nombre Elemento
pTyp = pElm:typ_id;
bus1 = pElm.GetNode(0,0);
if (pTyp) {s1 = bus1:loc_name; !Nombre Barra i
fprintf(1,'%s\t%s\t%.5f\t%.5f',s1,s4,pTyp:rstr,pTyp:xdss); }
else {fprintf(1,'%s',s4);
s1 = bus1:loc_name; !Nombre Barra i
fprintf(1,'%s\t%s\t###\t###',s1,s4); }}
pElm = Elm.Next();}
fprintf(1,'0\tNegative Sequence Generator Impedance Data');
fprintf(1,'Terminal Bus Bar\tName\tZRNEG [pu]\tZXNEG [pu]');
fprintf(1,'bus1_bar\tloc_name\tr2sy\tx2sy');
pGrd = Grids.First();
Elm = pGrd.GetContents('*.ElmSym',1);
pElm = Elm.First();
while (pElm) {j=pElm.IsRelevant();
if (j=1) {pTyp = pElm:typ_id;
bus1 = pElm.GetNode(0,0);
s4 = pElm:loc_name; !Nombre Elemento
s1 = bus1:loc_name; !Nombre Barra i
if (pTyp) fprintf(1,'%s\t%s\t%.5f\t%.5f',s1,s4,pTyp:r2sy,pTyp:x2sy);
else fprintf(1,'%s\t\t###\t###%s',s1,s4); }
pElm = Elm.Next();}
fprintf(1,'0\tZero Sequence Generator Impedance Data');
fprintf(1,'Terminal Bus Bar\tName\tRZERO [pu]\tXZERO[pu]');
fprintf(1,'bus1_bar\tloc_name\tr0sy\tx0sy');
pGrd = Grids.First();
Elm = pGrd.GetContents('*.ElmSym',1);
78 
 
pElm = Elm.First();
while (pElm) {j=pElm.IsRelevant();
if (j=1) {pTyp = pElm:typ_id;
bus1 = pElm.GetNode(0,0);
s4 = pElm:loc_name;
s1 = bus1:loc_name;
if (pTyp) fprintf(1,'%s\t%s\t%.5f\t%.5f',s1,s4,pTyp:r0sy,pTyp:x0sy);
else fprintf(1,'%s\t%s\t###\t###',s1,s4); }
pElm = Elm.Next();}
fprintf(1,'0\tNegative Sequence Shunt Load Data');
fprintf(1,'0\tZero Sequence Shunt Load Data');
fprintf(1,'0\tZero Sequence Branch Data');
fprintf(1,'Name\tTerminal i Bus bar\tTerminal j Bus Bar\tRLINZ\tXLINZ\tBCHZ');
fprintf(1,'loc_name\tbus1_bar\tbus2_bar\t(R0/dline)/(unom^2/MVA)\t(X0/dline)/(unom^2/
MVA)\t(bline0)/(unom^2/MVA)');
pGrd = Grids.First();
Elm = pGrd.GetContents('*.ElmLne');
pElm = Elm.First();
while (pElm) { j=pElm.IsRelevant();
if (j=1) {pTyp = pElm:typ_id;
bus = pElm:bus1;
unom = bus.Unom();
bus1 = pElm.GetNode(0,0);
bus2 = pElm.GetNode(1,0);
s4 = pElm:loc_name;
s1 = bus1:loc_name;
s2 = bus2:loc_name;
if (pTyp) {D1 = sqr(unom*1000)/100000000;
D2 = pElm:R0/D1;
D3 = pElm:X0/D1;
D4 = pTyp:bline0/D1;
fprintf(1,'%s\t%s\t%s\t%.5f\t%.5f\t%.5f',s1,s2,s4,D2,D3,D4); }
else {fprintf(1,'%s\t%s\t%s\t%.5f\t%.5f\t0',s1,s2,s4,D2,D3);} }
pElm = Elm.Next();}
fprintf(1,'0\tZero Sequence Mutual Impedance Data');
fprintf(1,'0\tTransformer 2 Grounding Code Data');
fprintf(1,'Name\tTerminal i Bus bar\tTerminal j Bus Bar\tGrounding Code I\tGrounding
Code J');
fprintf(1,'loc_name\tbus1_bar\tbus2_bar\ttr2cn:h\ttr2cn_l');
pGrd = Grids.First();
Elm = pGrd.GetContents('*.ElmTr2');
pElm = Elm.First();
while (pElm) { c=pElm.IsRelevant();
if (c=1) {pTyp = pElm:typ_id;
r=pTyp:ur0tr/pTyp:strn; !R seq cero
x=pTyp:uk0tr/pTyp:strn; !x seq cero
s1 = pTyp:tr2cn_h; !tipo de conexion en alta
s2 = pTyp:tr2cn_l; !tipo de conexion en baja
79 
 
bus1 = pElm.GetNode(0,0); !conexion i
bus2 = pElm.GetNode(1,0); !conexion j
s4 = pElm:loc_name; !Nombre Trafo
s5 = bus1:loc_name; !nombre barra i
s6 = bus2:loc_name; !Nombre Barra j
i=strcmp(s1,'Y',2);
j=strcmp(s2,'Y',2);
if(i=0 .or. i=1) {if (j=0 .or. j=1) fprintf(1,'%s\t%s\t%s\t1\t1',s4,s5,s6);
else fprintf(1,'%s\t%s\t%s\t1\t0',s4,s5,s6); }
else{if (j=0 .or. j=1) fprintf(1,'%s\t%s\t%s\t0\t1',s4,s5,s6);
else fprintf(1,'%s\t%s\t%s\t0\t0',s4,s5,s6); }}
pElm = Elm.Next(); }
fprintf(1,'0\tTransformer 3 Grounding Code Data');
fprintf(1,'Name\tTerminal i Bus bar\tTerminal j Bus Bar\tGrounding Code I\tGrounding
Code J');
fprintf(1,'loc_name\tbus1_bar\tbus2_bar\ttr2cn:h\ttr2cn_l');
pGrd = Grids.First();
while (pGrd) {Elm = pGrd.GetContents('*.ElmTr3',1);
pElm = Elm.First();
while (pElm) {pTyp = pElm:typ_id;
s1 = pTyp:tr3cn_h;
s5 = pTyp:tr3cn_m;
s6 = pTyp:tr3cn_l;
i=strcmp(s1,'Y',2);
j=strcmp(s5,'Y',2);
k=strcmp(s6,'y',2);
bus1 = pElm.GetNode(0,0); !barra alta tension
bus2 = pElm.GetNode(1,0); !barra media
bus3 = pElm.GetNode(2,0); !barra baja
s4 = pElm:loc_name;
s2 = bus1:loc_name;
s3 = bus2:loc_name;
s7 = bus3:loc_name;
if(i=0 .or. i=1) {if (j=0 .or. j=1) fprintf(1,'%s\t%s\t%s\t1\t1',s2,s3,s4);
else fprintf(1,'%s\t%s\t%s\t1\t0',s2,s3,s4); }
else{if (j=0 .or. j=1) fprintf(1,'%s\t%s\t%s\t0\t1',s2,s3,s4);
else fprintf(1,'%s\t%s\t%s\t0\t0',s2,s3,s4); }
if(j=0 .or. j=1) {if (k=0 .or. k=1) fprintf(1,'%s\t%s\t%s\t1\t1',s3,s7,s4);
else fprintf(1,'%s\t%s\t%s\t1\t0',s3,s7,s4); }
else{if (k=0 .or. k=1) fprintf(1,'%s\t%s\t%s\t0\t1',s3,s7,s4);
else fprintf(1,'%s\t%s\t%s\t0\t0',s3,s7,s4); }
if(i=0 .or. i=1) {if (k=0 .or. k=1) fprintf(1,'%s\t%s\t%s\t1\t1',s2,s7,s4);
else fprintf(1,'%s\t%s\t%s\t1\t0',s2,s7,s4); }
else{if (k=0 .or. k=1) fprintf(1,'%s\t%s\t%s\t0\t1',s2,s7,s4);
else fprintf(1,'%s\t%s\t%s\t0\t0',s2,s7,s4); }
pElm = Elm.Next();}
pGrd = Grids.Next();}
fprintf(1,'0\tZero Sequence Switched Shunt Data');
80 
 
fclose(1);
fopen('C:\DYR.txt','w',2);
fprintf(2,'0\tModelo Generadores');
fprintf(2,'Nombre\tTerminal Bus Bar\tH [s]\tDamp [pu]\trstr [pu]\txl [pu]\txrl [pu]\tRotor
Type\txd [pu]\txq [pu]\tTd0´ [s]\tTq0´ [s]\txd´ [pu]\txq´ [pu]\tTd0´´ [s]\tTq0´´ [s]\txd´´
[pu]\txq´´ [pu]\tMain Flux Saturation\t1.0 [pu]\t1.2 [pu]');
fprintf(2,'loc_name\tbus1_bar\th\tdpu\trstr\txl\txrl\titurbo\txd\txq\ttds0\ttqs0\txds\txqs\ttds
s0\ttqss0\txdss\txqss\tisat\tsg10\tsg12');
pGrd = Grids.First();
while (pGrd) { Elm = pGrd.GetContents('*.ElmSym',1);
Elm.SortToVar(1,'c_pmod');
pElm = Elm.First();
while (pElm) { c=pElm.IsRelevant();
if (c=1) { pTyp = pElm:typ_id;
bus1 = pElm.GetNode(0,0);
s4 = pElm:loc_name;
s3 = bus1:loc_name;
D1 = pTyp:h; !constante de tiempo de inercia
D2 = pTyp:dpu; !liberacion de carga mecanica
D3 = pTyp:rstr; !resistencia estator
D4 = pTyp:xl; !reactancia de fuga estator
D5 = pTyp:xrl; !reactancia de fuga rotor
D6 = pTyp:xd; !reactancia sincronica en eje directo
D7 = pTyp:xq; !reactancia sincronica en eje quadratura
D8 = pTyp:tds0; !constante de tiempo transiente eje directo
D9 = pTyp:tqs0; !constante de tiempo transiente eje cuadratura
D10 = pTyp:xds; !reactancia transiente eje directo
D11 = pTyp:xqs; !reactancia transiente eje cuadratura
D12 = pTyp:tdss0; !constante de tiempo subtransiente eje directo
D13 = pTyp:tqss0; !constante de tiempo subtransiente eje cuadratura
D14 = pTyp:xdss; !reactancia subtransiente eje directo
D15 = pTyp:xqss; !reactancia subtransiente eje cuadratura
D16 = pTyp:sg10; !parametro de stauracion 1.0
D17 = pTyp:sg12; !parametro de stauracion 1.2
i = pTyp:iturbo; !tipo de rotor (polos salientes o
j = pTyp:isat; !saturacion flujo principal
s5=sprintf('%s\t%s\t%g\t%g\t%g\t%g\t%g\t%i\t%g',s4,s3,D1,D2,D3,D4,D5,i,D6);
s6=sprintf('%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g',D7,D8,D9,D10,D11,D12,D13,D14,D
15);
fprintf(2,'%s\t%s\t%i\t%g\t%g',s5,s6,j,D16,D17); }
pElm = Elm.Next();}
pGrd = Grids.Next(); }
pGrd = Grids.First();
fprintf(2,'0\tModelo VCO Generadores');
pGrd = Grids.First();
while (pGrd) { Elm = pGrd.GetContents('*.ElmSym',1);
Elm.SortToVar(1,'c_pmod');
pElm = Elm.First();
81 
 
while (pElm) { pElm2 = pElm:c_pmod; !Modelo de Planta
if (pElm2) {pElm2.GetSize('pblk',Tmod);
cont = 0;
while (cont<Tmod) {pElm2.GetVal(pElm3,'pblk',cont);
s1 = pElm3:loc_name;
comp = strcmp(s1,'vco',3);
comp2 = strcmp(s1,'AVR',3);
token = ',';
if (comp = 0 .or. comp2 = 0) {pElm2.GetVal(term,'pelm',cont);
if (term) {pTyp = term:typ_id;
s2 = term:loc_name;
if (pTyp) {term.GetSize('params',sPa);
r = 0;
sPa+=1;
while (r<sPa) {c = 0;
s3 = pTyp:sParams;
s30 = pTyp:sUpLimPar;
s31 = pTyp:sLowLimPar;
s32 = '';
s33 = '';
while (c<=sPa) {term.GetVal(D1,'params',c);
s4 = strtok(s3,token,tok_pos,c+1);
i = strcmp(s4,'');
if (i=1) {s33 = sprintf('%s\t%g',s33,D1);
if (c=0) s32 = sprintf('%s',s4);
else s32 = sprintf('%s\t%s',s32,s4); }
else break;
c+=1; }
c2 = c;
c=0;
z = strcmp(s30,'');
d = strcmp(s31,'');
if (d) {while (c<sPa) {term.GetVal(D1,'params',c2);
s5 = strtok(s31,token,tok_pos,c+1);
i = strcmp(s5,'');
if (i=1) {s33 = sprintf('%s\t%g',s33,D1);
s32 = sprintf('%s\t%s',s32,s5); }
else break;
c2+=1;
c+=1; }}
c=0;
if (z) {while (c<sPa) {term.GetVal(D1,'params',c2);
s6 = strtok(s30,token,tok_pos,c+1);
i = strcmp(s6,'');
if (i=1) {s33 = sprintf('%s\t%g',s33,D1);
s32 = sprintf('%s\t%s',s32,s6); }
else break;
c2+=1;
82 
 
c+=1; }}
fprintf(2,'%s\t%s',term:loc_name,s32);
fprintf(2,'%s\%s',pElm:loc_name,s33);
break;
r+=1; }}
else{fprintf(2,'VCO_%s\ttvm\tvspp\ttspi\tur_mx\tur_mn\tterr\tvss\ttst\tefdmx\tefdmn\tkur\t
kui\tkir\tkii\tib_sl',pElm:loc_name);
s7 = sprintf('%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g',pElm:loc_name,term:tvm,
term:vspp,term:tspi,term:ur_mx,term:ur_mn,term:terr,term:vss,term:tst);
fprintf(2,'%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g',s7,term:efdmx,term:efdmn,term:kur,term:k
ui,term:kir,term:kii,term:ib_sl); }}
else {fprintf(2,'%s',pElm:loc_name);
fprintf(2,'Sin VCO'); }}
cont +=1; } }
else{fprintf(2,'Sin Modelo');
fprintf(2,'%s',pElm:loc_name); }
pElm = Elm.Next();}
pGrd = Grids.Next(); }
pGrd = Grids.First();
fprintf(2,'0\tModelo Regulador de Turbina');
while (pGrd) {Elm = pGrd.GetContents('*.ElmSym',1);
Elm.SortToVar(1,'c_pmod');
pElm = Elm.First();
while (pElm) {pElm2 = pElm:c_pmod;
if (pElm2) {pElm2.GetSize('pblk',Tmod);
cont = 0;
while (cont<Tmod) {
pElm2.GetVal(pElm3,'pblk',cont);
s1 = pElm3:loc_name;
comp = strcmp(s1,'pcu',3);
comp2 = strcmp(s1,'pmu',3);
comp3 = strcmp(s1,'pco',3);
comp4 = strcmp(s1,'GT',2);
comp5 = strcmp(s1,'ST',2);
token = ',';
if (comp=0 .or. comp2=0 .or. comp3=0 .or. comp4=0 .or. comp5=0) {
pElm2.GetVal(term,'pelm',cont);
if (term) {pTyp = term:typ_id;
s2 = term:loc_name;
if (pTyp) {term.GetSize('params',sPa);
r = 0;
while (r<sPa) {c = 0;
s3 = pTyp:sParams;
s30 = pTyp:sUpLimPar;
s31 = pTyp:sLowLimPar;
s32 = '';
s33 = '';
while (c<=sPa) {term.GetVal(D1,'params',c);
83 
 
s4 = strtok(s3,token,tok_pos,c);
i = strcmp(s4,'');
if (i) {j = strcmp(s32,'');
s33 = sprintf('%s\t%g',s33,D1);
if (.not.j) s32 = sprintf('%s',s4);
else s32 = sprintf('%s\t%s',s32,s4);}
c+=1; }
c=0;
z = strcmp(s30,'');
d = strcmp(s31,'');
if (d) {while (c<sPa) {s5 = strtok(s31,token,tok_pos,c);
i = strcmp(s5,'');
if (i) {s33 = sprintf('%s\t%g',s33,D1);
s32 = sprintf('%s\t%s',s32,s5); }
c+=1; }}
c=0;
if (z) {while (c<sPa) {s6 = strtok(s30,token,tok_pos,c);
i = strcmp(s6,'');
if (i) {s33 = sprintf('%s\t%g',s33,D1);
s32 = sprintf('%s\t%s',s32,s6); }
c+=1; }}
fprintf(2,'%s\t%s',term:loc_name,s32);
fprintf(2,'%s\%s',pElm:loc_name,s33);
break;
r+=1; }}
else{if (comp3 = 0) {d = term.VarExists('w_');
if (d) {fprintf(2,'PCO_%s\tw_ [pu]\tx_ [s]\ty_ [s]\tz_
[pu]\tetd\ttrate\ttdel\tpc_mx [pu]\tpc_mn [pu]\tecr\tk3 [pu]\ta_ [pu]\tb_ [s]\tc_ [pu]\ttauf
[s]\tkf [pu]\tk5 [pu]\tk4 [pu]\tt3 [pu]\tt4 [pu]\ttaut [s]\tt5[pu]\taf1 [pu]\tbf1 [pu]\tthetr [s]\tk6
[pu]',pElm:loc_name);
s7 = printf('%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g',pElm:loc_name,term:w_,term:x_,
term:y_,term:z_,term:etd,term:trate,term:tdel,term:pc_mx);
s8 = sprintf('%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g',s7,term:pc_mn,term:ecr,term:k3,
term:a_,term:b_,term:c_,term:tauf,term:kf);
s9 = sprintf('%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g',s8,term:k5,term:k4,term:t3,term:t4,
term:taut,term:t5,term:af1,term:bf1);
fprintf(2,'%s\t%g\t%g',s9,term:thetr,term:k6); }
else{d = term.VarExists('tp');
if (d) {fprintf(2,'PCO_%s\tdband [pu]\tbp [%%]\tbt [%%]\ttp [s]\ttd [s]\ttr
[s]\tty [s]\tty0 [s]\ttyc [s]\tyt_mx [pu]\tyt_mn [pu]',pElm:loc_name);
s7 = sprintf('%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g',pElm:loc_name,term:dband,
term:bp,term:bt,term:tp,term:td,term:tr,term:ty,term:tyo);
fprintf(2,'%s\t%g\t%g\t%g',s7,term:tyc,term:yt_mx,term:yt_mn); }
else{fprintf(2,'PCO_%s\tdband [pu]\tbp [%%]\tbt [%%]\ttf [s]\ttr [s]\tty [s]\tty0 [s]\ttyc
[s]\tyt_mx [pu]\tyt_mn [pu]',pElm:loc_name);
s7 = sprintf('%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g',pElm:loc_name,term:dband,term:bp,
term:bt,term:tf,term:tr,term:ty,term:tyo);
fprintf(2,'%s\t%g\t%g\t%g',s7,term:tyc,term:yt_mx,term:yt_mn); }}}
84 
 
if (comp2 = 0) {d = term.VarExists('tcd');
if (d) {fprintf(2,'PMU_%s\ttcd [s]\taf2 [pu]\tbf2 [pu]\tcf2 [pu]',pElm:loc_name);
fprintf(2,'%s\t%g\t%g\t%g\t%g',pElm:loc_name,term:tcd,term:af2,term:bf2,term:cf2); }
else{d = term.VarExists('tw');
if (d) {fprintf(2,'PMU_%s\ttw [s]',pElm:loc_name);
fprintf(2,'%s\t%g',pElm:loc_name,term:tw); }
else{fprintf(2,'PMU_%s\tthd [s]\ttmd [s]\ttnd [s]\talfhd [pu]\talfnd [pu]\ttisp
[s]',pElm:loc_name);
fprintf(2,'%s\t%g\t%g\t%g\t%g\t%g\t%g',pElm:loc_name,term:thd,term:tmd,term:tnd,ter
m:alfhd,term:alfnd,term:tisp); }}}}}
else {fprintf(2,'%s',pElm:loc_name);
fprintf(2,'Sin Regulador de Turbina'); }}
cont +=1; }}
else{fprintf(2,'Sin Modelo');
fprintf(2,'%s',pElm:loc_name); }
pElm = Elm.Next(); }
pGrd = Grids.Next();}
pGrd = Grids.First();
fprintf(2,'0\tModelo Estabilizadores de Potencia');
while (pGrd) {Elm = pGrd.GetContents('*.ElmSym',1);
Elm.SortToVar(1,'c_pmod');
pElm = Elm.First();
while (pElm) {pElm2 = pElm:c_pmod;
if (pElm2) {pElm2.GetSize('pblk',Tmod);
cont = 0;
while (cont<Tmod) {pElm2.GetVal(pElm3,'pblk',cont);
s1 = pElm3:loc_name;
comp = strcmp(s1,'pss',3);
comp2 = strcmp(s1,'PSS',3);
token = ',';
if (comp = 0 .or. comp2 = 0) {pElm2.GetVal(term,'pelm',cont);
if (term) {pTyp = term:typ_id;
s2 = term:loc_name;
if (pTyp) {term.GetSize('params',sPa);
r = 0;
while (r<sPa) {c = 0;
s3 = pTyp:sParams;
s30 = pTyp:sUpLimPar;
s31 = pTyp:sLowLimPar;
s32 = '';
s33 = '';
while (c<=sPa) {term.GetVal(D1,'params',c);
s4 = strtok(s3,token,tok_pos,c);
i = strcmp(s4,'');
if (i) {j = strcmp(s32,'');
s33 = sprintf('%s\t%g',s33,D1);
if (.not.j) s32 = sprintf('%s',s4);
else s32 = sprintf('%s\t%s',s32,s4); }
85 
 
c+=1; }
c=0;
z = strcmp(s30,'');
d = strcmp(s31,'');
if (d) {while (c<sPa) {s5 = strtok(s31,token,tok_pos,c);
i = strcmp(s5,'');
if (i) {s33 = sprintf('%s\t%g',s33,D1);
s32 = sprintf('%s\t%s',s32,s5); }
c+=1; }}
c=0;
if (z) {while (c<sPa) {s6 = strtok(s30,token,tok_pos,c);
i = strcmp(s6,'');
if (i) {s33 = sprintf('%s\t%g',s33,D1);
s32 = sprintf('%s\t%s',s32,s6); }
c+=1; }}
fprintf(2,'%s\t%s',term:loc_name,s32);
fprintf(2,'%s\%s',pElm:loc_name,s33);
break;
r+=1; }}
else{i = term.VarExists('tvm');
if (i) {fprintf(2,'VCO_%s\ttvm\tvspp\ttspi\tur_mx\tur_mn\tterr\tvss\ttst\tefdmx\tefdmn\tkur\t
kui\tkir\tkii',pElm:loc_name);
s7 = sprintf('%s\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g',pElm:loc_name,term:tvm,
term:vspp,term:tspi,term:ur_mx,term:ur_mn,term:terr,term:vss,term:tst);
fprintf(2,'%s\t%g\t%g\t%g\t%g\t%g\t%g',s7,term:efdmx,term:efdmn,term:kur,term:kui,ter
m:kir,term:kii); }
else fprintf(2,'Sin Tipo de PSS'); }}
else {fprintf(2,'%s',pElm:loc_name);
fprintf(2,'Sin Estabilizador de Potencia'); }}
cont +=1; } }
else{fprintf(2,'Sin Modelo');
fprintf(2,'%s',pElm:loc_name); }
pElm = Elm.Next();}
pGrd = Grids.Next(); }
fclose(2);
Se termina el script y se empieza el análisis en excel

2. Datos de Reguladores de Voltaje


 
Existen distintos grupos de datos para los reguladores de voltaje, dependiendo del
tipo de generador, estos datos son:
• Primer grupo de Datos:
o Tr [s]: Tiempo de retardo (Measurement Delay).
o Ae [p.u.]: Factor proporcional de saturación (Saturation Proportional
Factor).
o Be [p.u.]: Factor exponencial de saturación (Saturation Exponential
Factor).

86 
 
o Ke [p.u.]: Ganancia de excitación (Excitor Gain).
o Te [s]: Constante de tiempo de excitación (Excitor Time Constant).
o Kf [p.u.]: Ganancia de trayectoria de estabilización (Stabilisation Path
Gain)
o Tf1 [s]: Constante de tiempo del primer paso de la trayectoria de
estabilización (Stabilisation Path First Time Const).
o Tf2 [s]: Constante de tiempo del segundo paso de la trayectoria de
estabilización (Stabilisation Path Second Time Const).
o KA [p.u.]: Ganancia del regulador de voltaje (Voltage Controller Gain).
o TA [s]: Constante de tiempo del regulador de voltaje (Voltage Controller
Time Constant).
o Min [p.u.]: Voltaje mínimo de excitación (Excitation Minimum Voltage).
o Max [p.u.]: Voltaje máximo de excitación (Excitation Maximum Voltage).
• Segundo grupo de datos:
o Tr: Tiempo de retardo (Measurement Delay).
o Ke: Ganancia de excitación (Excitor Gain).
o Te: Constante de tiempo de excitación (Excitor Time Constant).
o Ka: Ganancia del regulador de voltaje (Voltage Controller Gain).
o Ta: Constante de tiempo del regulador de voltaje (Voltage Controller
Time Constant).
o Tb
o PSS/E_ScIngFctr
o Vrmin: Voltaje mínimo de excitación (Excitation Minimum Voltage).
o Vrmax: Voltaje máximo de excitación (Excitation Maximum Voltage).
• Tercer grupo de datos:
o Tr: Tiempo de retardo (Measurement Delay).
o Tc1, Tc2
o Tb1, Tb2
o Kr
o Ts
o Upmn, Upnmx
• Cuarto grupo de datos:
o Kd
o Ke: Ganancia de excitación (Excitor Gain).
o Kc
o Tr: Tiempo de retardo (Measurement Delay).
o Ae: Factor proporcional de saturación (Saturation Proportional Factor).
o Be: Factor exponencial de saturación (Saturation Exponential Factor).
o Te: Constante de tiempo de excitación (Excitor Time Constant).
o Kb
o Ka: Ganancia del regulador de voltaje (Voltage Controller Gain).
o Ta: Constante de tiempo del regulador de voltaje (Voltage Controller
Time Constant).
o Vlr_const
o Tc
o Tb
o Kf: Ganancia de trayectoria de estabilización (Stabilisation Path Gain)

87 
 
o Tf
o Kh
o Kl
o Vemin
o Vamin, Vamax
o Vrmin: Voltaje mínimo de excitación (Excitation Minimum Voltage).
o Vrmax: Voltaje máximo de excitación (Excitation Maximum Voltage).
• Quinto grupo de datos:
o prv6
o trv6
o grv1
o Trv1, Trv2
o prv1
o uex_min, uex_max
o Ke: Ganancia de excitación (Excitor Gain).
o Te: Constante de tiempo de excitación (Excitor Time Constant).
o Ae: Factor proporcional de saturación (Saturation Proportional Factor).
o Be: Factor exponencial de saturación (Saturation Exponential Factor).
• Sexto grupo de datos:
o Tb
o Ta: Constante de tiempo del regulador de voltaje (Voltage Controller
Time Constant).
o K
o Te: Constante de tiempo de excitación (Excitor Time Constant).
o Switch
o Emin, Emax
• Séptimo grupo de datos:
o Tr: Tiempo de retardo (Measurement Delay).
o Ka: Ganancia del regulador de voltaje (Voltage Controller Gain).
o Kq
o Te: Constante de tiempo de excitación (Excitor Time Constant).
o Ta: Constante de tiempo del regulador de voltaje (Voltage Controller
Time Constant).
o Upmn, Upmx
• Octavo grupo de datos:
o Vmks, Vmkd, Vmkt
o Kpe
o Kie
o rl_ki
o ql_ki
o qki
o qkp
o qmin_cnst
o iemax_cnst
o Switch
o Vcn
o Vqlmin, Vqlmax

88 
 
o Vrlmin, Vrlmax
o Vmmin, Vmmax
o Vcp

3. Datos de Reguladores de Turbina


 
  Existen distintos grupos de datos para los reguladores de turbina, dependiendo
del tipo de generador, estos datos son:
• Primer grupo de Datos:
o Ktc1, Ktc2
o TmpCSet
o KSatTC
o CnstTC
o Kigv0, Kigv1, Kigv2
o Kcch_f
o Tcch_f
o K_valve1, K_valve2
o Tcch_t
o Ttm
o Tpem
o Speed SP
o Kdroop
o Kpwr_ctrl
o Kspeed_ctrl
o Klsc
o Const_lsc
o dz1, dz2
o Ktp1, Ktp2
o TmpPSet
o CnstTP
o Tsrl
o Td1
o IGVmin, IGVmax
o Ymin_IGV, Ymax_IGV
o Valve_min, Valve_max
o Ymin_valve, Ymax_valve
o dz1_sat_mn, dz1_sat_mx
o SpdRtMin, SpdRtMax
• Segundo grupo de datos.
o Khp
o Kip
o Klp
o Tco
o Trh
o Thp
o Est
o T1: Compressor Derivative Time Constant

89 
 
o T2: Compressor Delay Time Constant
o MWb
o MVAb
o Kgov
o Db
o Lap
o Pmin, Pmax
o RCHmin, RCHmax
• Tercer grupo de datos:
o Prx
o Pcr
o Drp
o Dbd
o Tvirt1, Tvirt2
o Tisp
o Thp
o Tmd
o Tnd
o alfHp, alfMp
o db
o Tyo
o Tyc
o Ty
o Reserve
o Kp
o Ti: Power Gradient Limiter Time Constant
o Min, Max
o Tr: Rated Exhaust Temperature
o Ytmin, ytmax
o y_min, y_max
• Cuarto grupo de datos:
o Tt [s]: Turbine Time Delay
o v0 [p.u]: Turbine Factor
o bf [p.u]: Turbine Controller Droop
o Ti [s]: Power Gradient Limiter Time Constant
o Tv [s]: Measurement Delay
o T1 [s]: Compressor Derivative Time Constant
o T2 [s]: Compressor Delay Time Constant
o K [p.u]: Compressor Factor
o y_min [p.u]: Gradient Limiter Minimum Value
o GT_min [p.u]: Minimum Torque
o y_max [p.u]: Gradient Limiter Maximum Value
o GT_max [p.u]: Maximum Torque
o Dbd [p.u]: SpCntrl Dead Band
o Pres [p.u]: max. Primary Reserve
• Quinto grupo de datos:
o W [p.u]: Speed Controller Gain

90 
 
o X [s]: Speed Controller Der.Time Const.
o Z [p.u]: Speed Controller Is/Dr (0/1)
o Y [s]: Speed Controller Time Constant
o K3 [p.u]: Turbine Factor
o Ttr [s]: Transport Delay
o a [p.u]: Fuel System Prop. Characteristic
o b [s]: Fuel System Time Constant
o c [p.u]: Fuel System I/L Factor (0/1)
o Tf [s]: Fuel System Delay
o Kf [p.u]: Fuel System Feed Back Factor
o Ecr [s]: Fuel System Delay
o Tcd [s]: Turbine Time Delay
o af2 [p.u]: Turbine Characteristic, Constant
o bf2 [p.u]: Turbine Characteristic, Torque
o cf2 [p.u]: Turbine Characteristic, Speed
o K6 [p.u]: Compressor Factor
o Trate [MW]: Turbine Rated Power
o Kac [p.u]: Acc. Gain
o Tn [s]: Acc. Controller Diff. Constant
o Etd [s]: Temperature Controller Delay
o Tr [grd.C]: Rated Exhaust Temperature
o af1 [grd.C]: Temperature Factor 1 (Torque)
o bf1 [grd.C]: Temperature Factor 2 (Speed)
o Ta [grd.C]: Ambient Temperature
o K4 [p.u]: Radiation Shield Prop. Factor
o K5 [p.u]: Radiation Shield Integr. Factor
o T3 [s]: Radiation Shield Time Constant
o T4 [s]: Thermocouple Time Constant
o Tt [s]: Temperature Controller Time Constant
o T5 [p.u]: Temperature Controller Gain
o Min [p.u]: VCE Lower Limit
o Max [p.u]: VCE Upper Limit
o PRes [p.u]: Primary Reserve
o Dbd [p.u]: Speed Dead Band
• Sexto grupo de datos:
o K: Gain = 100/Drp [-]
o T: SpCntrl Time Constant [s]
o Dbd: SpCntrl Dead Band [p.u]
o y_min, y_max
• Séptimo grupo de datos:
o Tl
o Tw
o Rb
• Octavo grupo de datos:
o Prx
o Pcr
o Drp

91 
 
o Dbd
o Tvirt1, Tvirt2
o Tisp
o Thp
o Tmd
o Tnd
o alfHp, alfMp
o db
o Tyo
o Tyc
o Ty
o Reserve
o Kp
o Ti
o Min, Max
o Tr
o Ytmin, ytmax
o y_min, y_max

4. Datos de Estabilizadores de Potencia.


 
  Existen distintos grupos de datos para los reguladores de turbina, dependiendo
del tipo de generador, estos datos son:
• Primer grupo de datos:
o T1, T2, T3, T4, T5
o Kpv
o Tv
o Kpss
o Delta
o Vrmin, Vrmax
• Segundo grupo de datos:
o Tl1, Tl2, Tl3, Tl4
o TW1, TW2, TW3, TW4
o Ks1, Ks2, Ks3
o T7, T8, T9
o Ustmin, Ustmax
• Tercer grupo de datos:
o Kpelec
o Kfrec
o SF_frec, SF_pelec
o Tpss
o PSSmin, PSSmax
• Cuarto grupo de datos:
o T1, T2, T3, T4, T5, T6
o K1, K2, K3
Vrmin, Vrmax

92 
 
 

93