Está en la página 1de 356

UNIVERSIDAD AUTÓNOMA JUAN MISAEL SARACHO

SECRETARÍA DE EDUCACIÓN CONTÍNUA


MAESTRÍA EN SISTEMAS ELÉCTRICOS DE
POTENCIA

TESIS DE MAESTRÍA
DESARROLLO DE UN PROGRAMA COMPUTACIONAL PARA
LA DETERMINACIÓN DE ESTADOS DE CARGA EN
TRANSFORMADORES DE POTENCIA BASADO EN MODELOS
DE CARGA Y CÁLCULOS APROXIMADOS PARA REDES DE
10 KV DE ELFEC BASADO EN DATOS EN TIEMPO REAL DEL
SCADA.

Por:
Christian Jesús Márquez Hurtado
Tesis de maestría, presentada a consideración de la Universidad Autónoma
Juan Misael Saracho, como requisito para optar el título de Master en
Sistemas Eléctricos de Potencia.

Tarija - Bolivia
2019
V°B°
______
Dr.-Ing. Jimmy Cesar Gonzales Arispe.
TUTOR

M.Sc. Lic. Mariam Casal Chali


SECRETARIO DE EDUCACION CONTINUA

M.Sc.Lic. Ruth Alarcón


DIRECTORA DE POSGRADO

APROBADA POR:
TRIBUNAL:
Dedicatoria.
A mis abuelos Hernán y Marina, por ser mi motivación al realizar este trabajo.
Agradecimiento.
A Dios, por darme la luz y guía espiritual para mi crecimiento tanto intelectual
como moral.
A mis padres Jesús y Lilya, por el amor que me brindan, sus sacrificios, y
paciencia.
A mi esposa Luz Marina, por brindarme su apoyo incondicional.
A mi hija Agustina, por darle sentido a mi existencia.
RESUMEN
Este trabajo de tesis presenta un programa computacional que valida la base
de datos de demandas del SCADA y la integra con un modelo simplificado de
redes de distribución, el cual permite determinar los estados de carga de los
transformadores de potencia de la red de 10 kV para cualquier condición de
la misma. El desarrollo de los validadores y algoritmos fueron realizados en
POSTGRES y la interfaz gráfica del usuario en JAVA. Todo el script se
encuentra en los anexos.
ABSTRACT
This thesis work presents a computer program that valid the SCADA demand
data and integers with a simplify distribution net model, which allows to
determinate the load state of the 10 kV net power Transformers for any
condition it presents. The validator and algorithm development were made on
POSTGRES and the user graphic interface in JAVA. The full script is on
annex.
ÍNDICE DE CONTENIDO.
RESUMEN ....................................................................................................... i
ABSTRACT ...................................................................................................... i
GLOSARIO ...................................................................................................... i
PALABRAS CLAVE ........................................................................................ iii
DEFINICIÓN DE TÉRMINOS. ..................................................................... iv
1. CAPÍTULO I INTRODUCCIÓN ................................................................ 1
1.1.1 ANTECEDENTES ....................................................................... 1
1.1.2 DESCRIPCIÓN DEL PROBLEMA............................................... 3
1.1.3 PLANTEAMIENTO DEL PROBLEMA. ........................................ 4
1.1.4 JUSTIFICACIÓN DEL PROBLEMA. ........................................... 4
1.1.5 DELIMITACIÓN DEL PROBLEMA. ............................................. 4
1.1.6 OBJETIVOS. ............................................................................... 5
1.1.6.2 OBJETIVOS ESPECÍFICOS. ................................................... 5
1.1.7 SISTEMA DE HIPÓTESIS. ......................................................... 6
1.1.8 FORMULACIÓN DE LA HIPÓTESIS. ......................................... 6
2. CAPÍTULO II MARCO TEÓRICO. ............................................................ 7
2.1 ANTECEDENTES DE LA INVESTIGACIÓN. ...................................... 7
2.2 BASES TEÓRICAS. ............................................................................ 8
2.2.1 CARACTERISTICAS DE LA CARGA.......................................... 8
2.2.2 CARACTERISTICAS DE LA RECOPILACION DE
INFORMACIÓN DE LA RED. ................................................................. 16
2.2.3 CARACTERÍSTICAS DE LAS REDES DE DISTRIBUCIÓN
URBANAS EN COCHABAMBA. ............................................................. 23
2.2.4 CARACTERÍSTICAS PRINCIPALES DEL TRANSFORMADOR
DE POTENCIA. ...................................................................................... 38
3. CAPÍTULO III MARCO METODOLÓGICO............................................. 55
3.1 ALCANCE DE LA INVESTIGACIÓN. ................................................ 55
3.2 ÁREA DE INVESTIGACIÓN. ............................................................ 55
3.3 TIPO DE INVESTIGACIÓN. .............................................................. 55
3.4 UNIVERSO Y MUESTRA. ................................................................ 55
3.5 MÉTODO. ......................................................................................... 55
3.6 MÉTODOS TEÓRICOS. ................................................................... 56
3.7 MÉTODOS EXPERIMENTALES. ..................................................... 56
3.8 MÉTODOS ESTADÍSTICOS. ............................................................ 56
3.9 DISEÑO DE LA INVESTIGACIÓN. ................................................... 56
3.10 TÉCNICAS E INSTRUMENTOS DE RECOLECCIÓN DE DATOS.
57
3.11 TÉCNICAS DE PROCESAMIENTO Y ANÁLISIS DE DATOS. .... 57
3.11.1 CLASIFICACIÓN ....................................................................... 57
3.11.2 TABULACIÓN. .......................................................................... 57
3.11.3 REGISTRO DE DATOS. ........................................................... 57
3.11.4 ANÁLISIS DE DATOS. .............................................................. 58
4. CAPÍTULO IV METODOLOGÍA DE ANÁLISIS Y APLICACIÓN. ........... 59
4.1 METODOLOGÍA PARA EL ANÁLISIS DE BASES DE DATOS
HISTORICAS DEL SCADA ....................................................................... 60
4.1.1 ADQUISICIÓN Y ORDEN DE LA DATA. .................................. 61
4.1.2 DESARROLLO DE UN VALIDADOR. ....................................... 65
4.1.3 DESARROLLO DE UN CONDICIONADOR DE DATOS DE
ENTRADA PARA EL MODELO SIMPLIFICADO. .................................. 74
4.2 MODELADO DE ELEMENTOS DE LA RED DE DISTRIBUCIÓN DE
10 KV DE ELFEC. ..................................................................................... 77
4.2.1 LIMITANTES TÉCNICAS PARA LAS REDES DE
DISTRIBUCIÓN EN CONSIDERACIÓN................................................. 85
4.2.1.1 ESTADOS DE CARGA EN ALIMENTADORES EN ESTADO
NORMAL. 85
4.2.1.2 CAÍDA DE TENSIÓN EN ALIMENTADORES EN ESTADO
NORMAL. 85
4.2.1.3 ESTADO DE CARGA EN ALIMENTADORES EN ESTADO DE
CONTINGENCIA. ................................................................................... 89
4.2.1.4 CAÍDA DE TENSIÓN EN ALIMENTADORES EN ESTADO DE
CONTINGENCIA. ................................................................................... 95
4.3 METODOLOGÍA PARA ANALIZAR LOS CICLOS DE CARGA DE
TRANSFORMADORES DE POTENCIA QUE ALIMENTAN LA RED DE
DISTRIBUCIÓN. ...................................................................................... 101
4.3.1 ESTADOS DE CARGA EN TRANSFORMADORES DE
POTENCIA Y PÉRDIDA DE VIDA ÚTIL. .............................................. 101
5. CAPÍTULO IV ANÁLISIS DE RESULTADOS. ...................................... 108
5.1 RESULTADOS DE LA OPERACIÓN EN ESTADO NORMAL. ....... 109
5.1.1 CONDICIONES DE LA SIMULACIÓN. ................................... 109
5.1.2 VALIDACIÓN DE LOS RESULTADOS PARA EL ESTADO
NORMAL. ............................................................................................. 116
5.2 RESULTADOS DE LA OPERACIÓN EN ESTADO DE
CONTINGENCIA. .................................................................................... 121
5.2.1 CONDICIONES DE LA SIMULACIÓN. ................................... 121
5.2.2 VALIDACIÓN DE LOS RESULTADOS PARA EL ESTADO DE
CONTINGENCIA. ................................................................................. 123
6. CONCLUSIONES. ................................................................................ 169
7. RECOMENDACIONES PARA TRABAJOS FUTUROS........................ 172
BIBLIOGRAFÍA ........................................................................................... 173
ANEXOS ..................................................................................................... 175
ANEXO 1 VALIDADOR ................................................................................... 1
ANEXO 2 CONDICIONADOR....................................................................... 19
ANEXO 3 MODELADO DE LA RED Y CALCULOS DE CAIDAS DE
TENSIÓN ...................................................................................................... 50
ANEXO 4 CONTINGENCIAS...................................................................... 118
ANEXO 5 MIMICO 10 KV ........................................................................... 122
ANEXO 6 TEMPERATURAS REGISTRADAS EN COCHABAMBA 2015-2016
123
ANEXO 7 .................................................................................................... 133
ANEXO 8 .................................................................................................... 138
ANEXO 9 .................................................................................................... 140
ANEXO 10 .................................................................................................. 142
ANEXO 11 .................................................................................................. 144
ANEXO 12 .................................................................................................. 148
ANEXO 13 .................................................................................................. 151
ANEXO 14 .................................................................................................. 156
ANEXO 15 .................................................................................................. 158
ANEXO 16 .................................................................................................. 161
ANEXO 17 .................................................................................................. 164
ANEXO 18 .................................................................................................. 168
GLOSARIO
𝑃: Potencia Real.
𝑄: Potencia Reactiva.
𝑆: Potencia Aparente.
𝐼: Corriente eficaz.
𝑉: Voltaje.
𝑅: Resistencia óhmica del conductor.
𝑋: Reactancia inductiva del conductor.
𝑟: Resistencia óhmica del conductor por unidad de
longitud.
𝑥: Reactancia inductiva del conductor por unidad de
longitud.
𝑐𝑜𝑠𝜑: Factor de potencia.
𝐿: Longitud del conductor.
∆𝑉: Caída de tensión.
𝐼0 : Corriente resultante de las sumas de las corrientes
de las ramificaciones en una longitud determinada.
𝑟𝑑𝑒𝑟𝑖𝑣𝑎𝑐 : Resistencia de la derivación.
𝑈𝑆 : Tensión de salida en la fuente (inicio del alimentador
𝑈𝑆 : Tensión al final del alimentador.
𝑃3∅ : Potencia trifásica.
𝑃1∅ : Potencia monofásica.
∆𝑈3∅ : Caída de tensión trifásica.
∆𝑈1∅ : Caída de tensión monofásica.
𝐷𝑒𝑞 : Distancia equivalente.
𝑅𝑀𝐺: Radio medio geométrico.
𝐹𝑐 : Factor de carga.
𝐸: Energía consumida en un periodo determinado.
𝑃𝑚𝑎𝑥 𝑡: Potencia máxima registrada en un periodo de tiempo.

i
𝐹𝑐𝑝 : Factor de pérdida.
𝐸𝑝 : Pérdida de energia.
𝑃𝑝 : Pérdida de potencia.
𝑃𝑝 𝑚𝑎𝑥 : Pérdida de potencia para el momento de demanda
máxima.
𝐼3∅ : Corriente trifásica.
𝑄𝐶𝑃 : Potencia trifásica del banco de capacitores.
%Vr ∶ Elevación de la tensión deseada en porcentaje.
𝑈𝑒 : Nivel de tensión regulado.
𝑈𝑟 : Nivel de tensión actual.
∆𝑉𝑇 : Caída de tensión en alimentadores compuestos
energizados desde un mismo punto.
∆𝑉𝑇 ´: Caída de tensión en alimentadores compuestos con
cargas idénticas energizados desde un mismo punto.
∆𝑉𝑇 ´´: Caída de tensión en alimentadores compuestos con
cargas iguales y longitudes iguales energizados
desde un mismo punto.
∆𝑉𝑇 ´´´: Caída de tensión en alimentadores compuestos con
cargas iguales, longitudes iguales considerando
cargas distribuidas y energizados desde un mismo
punto.
𝐹𝑐𝑜𝑖𝑛𝑐𝑖𝑑𝑒𝑛𝑐𝑖𝑎 : Factor de coincidencia de la carga de los diferentes
alimentadores en el transformador de potencia.
𝐷𝑀𝑎𝑥 𝑐𝑜𝑖𝑛𝑐𝑖𝑑𝑒𝑛𝑡𝑎𝑙 : Demanda máxima coincidental en una hora
determinada de los diferentes alimentadores.
𝐷𝑀𝑎𝑥 𝑝𝑜𝑟 𝑎𝑙𝑖𝑚𝑒𝑛𝑡𝑎𝑑𝑜𝑟 : Demanda máxima registrada del alimentador
𝜀: Distancia o radio de vecindad.
𝑚𝑖𝑛𝑝𝑡𝑠: Número mínimo de puntos.

ii
PALABRAS CLAVE

iii
DEFINICIÓN DE TÉRMINOS.
Subestación de potencia: Compuesta por el transformador de potencia,
transformadores de medición, equipos de protección y maniobra. De esta
salen los alimentadores.
Salidas de alimentadores: Son tramos de conductores subterráneos que
conectan eléctricamente a las redes de distribución y los transformadores de
distribución con la barra MT en la subestación de potencia.
Estado Normal: Configuración de la red MT definida por la empresa
distribuidora como óptima ante criterios de calidad y continuidad, se
considera esta configuración por largos periodos de tiempo.
Estado Contingencia: Configuración de la red MT definida por la empresa
distribuidora ante una eventualidad, debido a que debe responder ante una
falla esta configuración no siempre cumple con calidad y continuidad.
Sobrecarga: Demanda que supera los límites electromecánicos al que fue
diseñado un elemento, dependiendo del tiempo de la misma puede provocar
diversos daños.
Indicadores de calidad: Son definidos por la Autoridad de Control Social y
Electricidad
Calidad: Tensión máxima o mínima permisible, para sistemas urbanos +-
7,5% de la tensión de servicio.
Continuidad: Indicador de calidad referido al tiempo interrupciones y
restitución.

iv
1. CAPÍTULO I INTRODUCCIÓN

1.1.1 ANTECEDENTES
Un sistema de distribución se origina en una subestación, donde la potencia
eléctrica es convertida por un transformador de un nivel alto de tensión a un
nivel más bajo para poder distribuirlo a los usuarios. En el mercado boliviano
no existe un único nivel de tensión para realizar dicha distribución, las
tensiones nominales de operación fase-fase usualmente utilizadas por las
empresas distribuidoras son 6,6 kV; 6,9 kV; 10 kV; 12 kV; 24,9 kV y 34,5 kV.

A pesar de no existir un consenso en la utilización de una única tensión de


servicio en MT, si es frecuente en estas empresas que sus redes de
distribución sean de características radiales con recursos de transferencia.
En el caso de la ciudad de Cochabamba y dentro del área metropolitana se
cuentan con dos niveles de tensión de servicio, 24,9 kV y 10 kV. La red de
distribución primaria de 10 kV de Cochabamba se podría considerar de gran
importancia para la ELFEC, debido a que cuenta dentro de su área de
servicio la zona central de la ciudad, que es donde se encuentra la gran
mayoría de Entidades Estatales, Centros Hospitalarios, Bancos, industrias y
gran parte del Comercio de la ciudad. Esta red cuenta con tres
subestaciones, con un total de cinco transformadores de potencia 115/10 kV,
propiedad de la empresa ELFEC S.A., dichos transformadores cuentan con
cambiadores de taps bajo carga y con demandimetros vinculados a un
sistema SCADA que permite registrar las demandas cada quince minutos.

Si bien el monitoreo y análisis de flujos de carga fueron ampliamente


estudiados para las instalaciones de transmisión y subtransmisión por
muchos años, no es hasta la última década que se realzo la importancia de
monitorear y analizar las redes de distribución. Es así que el monitoreo de
estas redes de distribución urbanas, ha comenzado a ser más frecuente, con

1
la instalación de equipos de maniobra con lectura remota, y estas lecturas
también integradas un Sistema SCADA (Supervisory Control and Data
Adquisition). La capacidad de poder procesar el volumen de datos
almacenados en SCADA e integrarlo a un modelo de red que analice flujos
de carga en redes de distribución y transformadores de potencia, se ha
convertido en un inconveniente para realizar estudios de planificación,
operación y mantenimiento, principalmente debido a la corrupción o ausencia
de data. Desde el punto de vista de un planificador es necesario contar con
la mayor data disponible depurada para conocer los comportamientos
representativos por bloques de carga y estacionales, así definir las políticas
que puede optar para realizar la explotación óptima de las redes. Desde el
punto de vista de un operador contar con la data en tiempo real y conocer su
comportamiento, es fundamental para que las decisiones que tenga que
tomar no afecten la calidad al usuario, ni pongan en riesgo la vida de los
equipos. Desde el punto de vista de mantenimiento se requiere conocer el
efecto de la pérdida de vida útil de las instalaciones, para poder prever
pruebas en los equipos, definir mejor sus mantenimientos o reemplazos
antes de que estas presenten una falla.

A pesar de que algunos proveedores de software ante la necesidad de las


distribuidoras ponen en oferta servicios de lectura y validación de la data
almacenada, por otra parte otros segundos proveedores parten de la data
validada para realizar los análisis de redes, y posteriormente un tercero
analiza el sistema de potencia tomando como base los análisis de los
segundos; todo este tipo de integraciones por cada proveedor conlleva
costos elevados que en pocas ocasiones son factibles para una distribuidora
del mercado boliviano como es ELFEC. Es así que es muy importante poder
contar con un programa computacional que parta de la filosofía de emplear
software-libre y que sea capaz de integrar la validación/lectura de data del

2
SCADA, con el modelo de redes de distribución de 10 kV y reflejar su
impacto en los transformadores de potencia asociados a esas redes.

1.1.2 DESCRIPCIÓN DEL PROBLEMA.


Los centros de control y operación tienen la función de monitorear el estado
de carga de los transformadores de potencia y alimentadores respecto a la
configuración de las redes de distribución, así mismo mediante equipos de
medida y comunicación obtienen señales de tensiones en los equipos de
maniobra instalados en la red. Los datos que estos visualizados por estos
centros pueden estar incompletos o ser distorsionados por otras señales por
lo que se dificulta el monitoreo y operación, aun mas si trata de sobrellevar
una contingencia, ya que además de las complicaciones previamente
descritas hay que considerar también la configuración, la flexibilidad de la
red de distribución y el estado de carga del transformador de potencia, ya
que son unas grandes limitantes para poder realizar operaciones, de igual
manera Centro de Operaciones de ELFEC como tantos otros centros de
control y operación en Bolivia, no cuentan con validadores de datos de
demandas ni con simuladores de contingencias en condiciones de operación
real.

Una de las prácticas comunes en ELFEC y en las demás empresas de


distribución es destinar un pago anual por el uso de softwares de
relevamiento topológico y de simulación de flujos de carga, dichos softwares
no integran la base de datos SCADA con el modelo y tampoco validan las
restricciones en contingencias, de manera que el usuario debe verificar las
condiciones de manera manual y pasar de un software a otro, ya que no se
encuentra integrados.
Contemplando los aspectos anteriores, se puede elaborar un programa
computacional que determine los estados de carga de los transformadores

3
de potencia, para estado normal y contingencia, en las redes de 10 kV de la
empresa ELFEC que integre la base de datos del SCADA del 2016.

1.1.3 PLANTEAMIENTO DEL PROBLEMA.


¿Cómo se pueden determinar los estados de carga de los Transformadores
de Potencia, que alimentan redes de 10 kV, de tensión nominal,
considerando condiciones para estado normal y contingencia, en ELFEC, de
la ciudad de Cochabamba, del 2016 basado en datos en tiempo real del
SCADA?

1.1.4 JUSTIFICACIÓN DEL PROBLEMA.


Para poder hacer uso eficiente de la información almacenada del sistema
SCADA, se requiere inicialmente poder validar la data o completarla en el
caso de una ausencia, de manera que sirvan como fuente para representar
las condiciones de la red en estado normal y contingencia, de manera que
por primera vez pueda integrarse con un modelo de la red de distribución que
reproduzca los parámetros eléctricos esperados y sea capaz de determinar
los estados de carga en transformadores de potencia, siendo aplicable para
ELFEC mediante un programa computacional fundamentado en software
libre.

1.1.5 DELIMITACIÓN DEL PROBLEMA.


1.1.5.1 INSTITUCIONAL.
Deben tomarse en cuenta el área de concesión y las instalaciones de 10 kV
a cargo de la distribuidora de electricidad ELFEC.

1.1.5.2 ESPACIAL.
El área de concesión a considerarse es la ciudad de Cochabamba

1.1.5.3 TEMPORAL.

4
El periodo serán los años 2015-2016

1.1.5.4 LEGAL.
Ley de Electricidad N°1604 (Calidad y continuidad del servicio).

1.1.6 OBJETIVOS.
1.1.6.1 OBJETIVO GENERAL.
Desarrollar un programa de cómputo, que emplee datos del SCADA y
mediante el uso de simulaciones por cálculos aproximados de las redes de
10 kV de tensión nominal, sea capaz de determinar y predecir los estados de
carga de los Transformadores 115/10 kV a cargo de ELFEC, en la ciudad de
Cochabamba del 2016.

1.1.6.2 OBJETIVOS ESPECÍFICOS.


- Objetivo Específico N°1.-
Contar con una fuente de demandas fiable de la base de datos del SCADA
de ELFEC, para analizar distintos escenarios en la red MT.

- Objetivo Específico N°2.-


Elaborar un modelo simplificado de la red de distribución de 10 kV capaz de
reproducir los comportamientos propios de la misma en parámetros
eléctricos.

- Objetivo Específico N°3.-


Integrar el modelo simplificado con la base de datos del SCADA validada
permitiendo analizar la red de distribución para las condiciones de estado
normal y contingencia.

- Objetivo Específico N°4.-

5
Basado en la norma IEC 60076-7, determinar los límites de carga y
envejecimiento de los transformadores de potencia 115/10 kV de ELFEC,
para que permitan reflejar las variaciones de carga del modelo simplificado
de la red MT.

- Objetivo Específico N°5.-


Validar el software elaborado con el software oficial de ELFEC.

1.1.7 SISTEMA DE HIPÓTESIS.


Se define que se empleara la hipótesis de investigación.

1.1.8 FORMULACIÓN DE LA HIPÓTESIS.


Que:
Mediante el desarrollo de un programa computacional que integre datos del
SCADA en tiempo real con cálculos aproximados para la simulación de la red
de 10 kV en estado normal y contingencia, se podrán determinar los estados
de carga de los Transformadores de Potencia, en la ciudad de Cochabamba,
del 2016.

6
2. CAPÍTULO II MARCO TEÓRICO.
2.1 ANTECEDENTES DE LA INVESTIGACIÓN.
Dadas las características de la energía eléctrica, los sistemas eléctricos de
potencia requieren una coordinación operativa permanente entre la
generación, la transmisión y la distribución. Para ese cometido es que se
tienen instalados sistemas de monitoreo en subestaciones de potencia.

El monitoreo de sistemas eléctricos con SCADA data de 1920, y es utilizado


en la actualidad en las redes de alta y media tensión de ELFEC, no obstante
el criterio de monitoreo sigue siendo el mismo de esa década aunque los
métodos de validación de datos han progresado desde la llegada de las
técnicas de inteligencia artificial en los años 80. No obstante el enfoque fue
por lo general dado a los sistemas de generación y transmisión, debido a que
las redes de distribución en ese entonces eran de característica radial en su
mayoría.

El crecimiento poblacional e industrial trajo de vuelta el foco sobre las redes


de distribución, ya que ahora se trataban de cargas importantes que no
podían ser interrumpidas y que debían contar con calidad en el servicio. Es
así que 1988 se presenta el primer algoritmo de flujo de carga en redes de
distribución empleando el método iterativo de barrido progresivo-regresivo.

Es así que las técnicas convencionales evolucionaron para determinar los


flujos de carga en estado estable, actualmente la mayoría de los softwares
emplean el método de análisis numérico Newton-Raphson y son capaces de
determinar el comportamiento de la red. No obstante estos softwares no
validan ni se integran con la base de datos de demandas, siendo esta una
dificultad latente en las empresas de distribución y es una razón por la cual
dependen de la pericia del operador/planificador en situaciones donde se
requiere definir o explotar límites operativos de los transformadores de

7
potencia y la red de distribución sin afectar la calidad y continuidad de los
usuarios.

El modelado de redes de distribución por equivalentes de carga geométricos


es ampliamente utilizado, ya que permite reproducir el comportamiento de
redes de distribución en estado normal y en contingencia, con resultados
muy cercanos al comportamiento real. Así mismo existen normas
internacionales como las normas IEC 60354 e IEC 60076-7, que contemplan
el efecto de sobrecargar los transformadores de potencia sobre sus valores
nominales.

Por lo tanto en este trabajo se presenta un software capaz de validar la red la


base de datos de demandas del SCADA y la integra con un modelo
simplificado de redes de distribución, el cual permite determinar los estados
de carga de los transformadores de potencia de esta red para cualquier
condición (estado normal o contingencia) de la misma. De esta manera se
hace viable simular condiciones de contingencias tomando datos del SCADA
en tiempo real, convirtiéndose en una herramienta a la hora de tomar
decisiones.

2.2 BASES TEÓRICAS.


2.2.1 CARACTERISTICAS DE LA CARGA
Dentro de la obligaciones de una empresa distribuidora además de
precautelar la seguridad de sus trabajadores y equipos, está la de dar
servicio a sus usuarios con calidad y continuidad, razón por la cual debe
analizar el comportamiento de la carga que alimentan para prever las
medidas a tomarse en caso de una contingencia.

8
Para lo que se caracterizan desde distintos puntos de vista los tipos de carga
que se alimentan. La Figura 1 muestra los tipos de curvas de carga
caracterizadas por el tipo de consumidor

Figura 1. Curvas de carga caracterizadas por consumidor.


Fuente T. Short, Electric Power Distribution Handbook.

2.2.1.1 TIPO DE CONSUMIDORES SEGÚN LA ACTIVIDAD QUE


DESARROLLA.
2.2.1.1.1 RESIDENCIAL
Corresponde a los servicios eléctricos destinados a viviendas.

9
2.2.1.1.2 INDUSTRIAL.
Industrias manufactureras que transforman física y químicamente materiales
y componentes en productos nuevos, ya sea que el trabajo se efectúe con
máquinas o artesanal.

2.2.1.1.3 GENERAL
Todos los servicios que no sean residenciales ni industriales.

2.2.1.1.4 ALUMBRADO PUBLICO


Para consumos destinados a la iluminación y señalización publica en calles,
plazas, parques y donde el acceso público sea libre y general.

2.2.1.2 TIPO DE CONSUMIDORES SEGÚN EL GRADO DE


DEPENDENCIA
2.2.1.2.1 CONSUMIDORES CON PRIORIDAD A
Son aquellos consumidores a las que las interrupciones no programadas,
aunque sean instantáneas que ocasionan paralización total de sus
actividades principales o de su proceso de producción, con pérdidas de su
producto, riesgos serios contra la vida humana (Fábricas de cemento,
hospitales), para los que se recomienda las instalación de grupos
generadores de emergencia, y otros recursos.

2.2.1.2.2 CONSUMIDORES CON PRIORIDAD B


Son aquellos consumidores a los que las interrupciones no programadas,
aunque sean instantáneas ocasionan paralización de sus actividades
principales, o en su proceso de producción, perdidas del producto, en
cualquiera de estos casos con pérdidas financieras importantes, como ser
instituciones financieras- Bancos, cerámicas con hornos continuos, centros
de cómputos, se recomienda similares soluciones del consumidor A anterior.

10
2.2.1.2.3 CONSUMIDORES CON PRIORIDAD C
Son aquellos consumidores a los que una interrupción instantánea no les
afecta; sin embargo, la falta de energía prolongada sí representa daños
serios en sus procesos de producción o actividades principales como
Cerámicas de proceso discontinuo, procesadoras de productos lácteos y en
general todas las fábricas.

2.2.1.2.4 CONSUMIDORES CON PRIORIDAD D


Son todos los consumidores no considerados en las clasificaciones
anteriores, que soportan interrupciones por un determinado periodo de
tiempo en horas, generalmente consumidores domésticos o pequeños
comercios.

2.2.1.3 COMPORTAMIENTO DE LA CARGA


Aunque la carga que alimenta un transformador de potencia es diversa, esta
presenta un comportamiento típico, que presenta características cíclicas con
tendencias de crecimiento según los usuarios que la componen. El
comportamiento es usualmente parametrizado en una curva de carga que
sirve para identificar, operar y planificar acciones en la red.

2.2.1.3.1 DEMANDA MÁXIMA NO COINCIDENTAL.


Esta referida a la demanda máxima registrada en la curva de carga, es
independiente del bloque horario, varía su ocurrencia entre alimentadores y
transformadores de potencia
Esta demanda suele ser utilizada como criterio de análisis en MT.

2.2.1.3.2 DEMANDA MÁXIMA COINCIDENTAL.


Esta referida a la demanda máxima registrada de un grupo de alimentadores
o transformadores de potencia para a un solo registro horario, es decir la

11
suma de las demandas que se presentaron en un solo sistema agrupados de
manera que se identifique una hora de registro de coincidencia.
Esta demanda suele ser utilizada como criterio de análisis en AT. La Figura 2
muestra el comportamiento de la carga.

Figura 2. Comportamiento de la carga.


Fuente Ing. Raúl Saavedra Careaga, Presentación SISTEMA TARIFARIO DE
DISTRIBUCIÓN DE ENERGÍA ELÉCTRICA, DELAPAZ, Abril de 2016.

La variación de la curva de carga viene dada por el tipo de actividad de los


usuarios. Considerando que se les brinda suministro a estos usuarios por un
mismo alimentador pueden identificarse en función a este comportamiento el
estado de carga del alimentador y el transformador de potencia.
Es posible al mismo tiempo reconocer comportamientos típicos, es decir que
presentan similitud en su demanda y vienen asociados por el bloque horario.
- Bloque Bajo (comprendido desde las 00:00 hasta las 07:00).
- Bloque Medio (comprendido entre las 07:00 hasta las 18:00 y entre las
23:00 hasta las 24:00).
- Bloque Alto (comprendido desde las 18:00 hasta las 23:00).

12
Adicionalmente conociendo el comportamiento, se pueden definir los
siguientes factores de análisis.

2.2.1.3.3 DEMANDA MÁXIMA COINCIDENTAL.


Esta referida a la demanda máxima registrada de un grupo de alimentadores
o transformadores de potencia para a un solo registro horario, es decir la
suma de las demandas que se presentaron en un solo sistema agrupados de
manera que se identifique una hora de registro de coincidencia.
Esta demanda suele ser utilizada como criterio de análisis en AT.

2.2.1.3.4 CICLO DE LA CARGA.


La carga en sistemas de distribución presenta comportamientos cíclicos, es
decir que para un periodo de observación de una semana, se identifican
comportamientos similares en sub-periodos de 24 horas, por lo tanto el ciclo
de la carga se cumple cada 24 horas y luego se reinicia en el día siguiente.

2.2.1.3.5 FACTOR DE CARGA.


El factor de carga Fc a la relación entre el consumo durante un período de o
determinado de tiempo y el consumo que habría resultado de la utilización
permanente de la potencia máxima observada durante dicho período

𝐷𝑒𝑚𝑎𝑛𝑑𝑎𝑚𝑒𝑑𝑖𝑎 𝐸
𝐹𝑐 = = ≤1
𝐷𝑒𝑚𝑎𝑛𝑑𝑎𝑚𝑎𝑥𝑖𝑚𝑎 𝑃𝑚𝑎𝑥 𝑡
Ecuación 1 Factor de carga.
Dónde:
𝐸; Energía consumida en un periodo determinado de tiempo [Joule]
𝑃𝑚𝑎𝑥 𝑡; Potencia máxima registrada en un periodo de tiempo [W]

Para consideraciones respecto a la carga registrada para un escenario

13
hipotético se define la Figura 3.

Figura 3. Factor de carga.


Fuente Ing. Mario Zalles, Tecnología de Redes de Distribución de Energía Eléctrica,
2015.

2.2.1.3.6 FACTOR DE PÉRDIDA


Permitirá obtener el valor de energía de pérdida correspondiente al periodo
de tiempo que se esté considerando.
El cálculo del factor de pérdida, se efectúa a través de una relación empírica
de uso generalizado en los estudios de planificación de redes de distribución.
𝐹𝑝 = 0.7 ∗ (𝐹𝑐 )2 + 0.3 ∗ (𝐹𝑐 )
Ecuación 2 Factor de pérdida.

2.2.1.3.7 DEMANDA MÁXIMA


La demanda máxima representa para un instante o bloque horario dado, la
máxima coincidencia de cargas eléctricas operando al mismo tiempo. La

14
demanda máxima corresponde a un valor instantáneo en el tiempo.

2.2.1.3.8 ENERGÍA CONSUMIDA


Es la potencia de la carga servida para un tiempo determinado.

𝐸 = 𝑃∗𝑡
Ecuación 3 Energía consumida.
Es decir en kW/h.

2.2.1.3.9 PÉRDIDAS I2R


Son pérdidas de potencia debidas a la corriente que circula por el mismo
alimentador, esto es directamente proporcional a la disminución de los
niveles de tensión en redes de distribución.

𝑡 𝑡
𝐸 = ∫ 𝑃𝑝 (𝑡)𝑑𝑡 = ∫ 𝐼 2 (𝑡)𝑟 𝑑𝑡
0 0

Ecuación 4 Pérdidas de energía.

Dónde:
𝐸𝑝 ; Pérdida de energía [Joule]
𝑃𝑝 ; Pérdida de potencia [W]
𝐼; Corriente eficaz [A]
𝑟; Resistencia eléctrica [A]
𝑡; Tiempo [seg]

Es una práctica habitual la utilización del valor de corriente eficaz máxima


correspondiente al periodo de análisis, por ser éste un valor característico y
fácil de obtener de los alimentadores.

𝐸𝑝 = 𝑡 ∗ 𝑃𝑝 𝑚𝑎𝑥 ∗ 𝐹𝑐𝑝

15
Ecuación 5 Pérdidas de potencia.
Dónde:
𝑃𝑝 𝑚𝑎𝑥 ; Pérdidas de potencia para el momento de la demanda máxima [W]
𝐹𝑐𝑝 ; Factor de pérdidas

2.2.2 CARACTERISTICAS DE LA RECOPILACION DE INFORMACIÓN


DE LA RED.
El crecimiento y comportamiento de las cargas se ha convertido en un tema
de gran importancia en el mercado eléctrico a nivel mundial, siendo esta una
razón por la cual se ha implementado sistemas de monitoreo y
almacenamiento de datos para poder anticiparse a problemáticas y dar
solución inmediata a fallas en las redes.

De igual manera a esta tendencia global es una práctica frecuente en


empresas del mercado eléctrico boliviano el tener un monitoreo de sus
transformadores de potencia, alimentadores y otros equipos instalados en su
red. Esta información ya sea digital o analógica permite a los Centros de
Operación monitorear el comportamiento de la redes con actualizaciones en
lapsos de quince minutos, la información es recopilada en bases de datos
para su posterior análisis.

2.2.2.1 REGISTRO DE DATOS ALMACENAMIENTO Y


VISUALIZACIÓN DE PARAMETROS ELÉCTRICOS.
Los distintos equipos de medida, con lectura remota son vinculados con un
SCADA (Supervisory Control and Data Adquisition) a un servidor dedicado,
que procesa las señales y almacena los datos que recibe en una base de
datos, lo realiza de manera periódica, de esta manera se compone la Base
de Datos SCADA.
Aquellos datos de interés son:

16
- Las señales de tensión y corriente que son tomados de los CT´s y
PT’s de medición instalados en los armarios de las subestaciones,
tanto en el lado del primario del transformador de potencia como en la
salida de alimentadores.

- El estado de las Seccionadors/seccionadores/reconectadores, así


mismo los datos de tensión y corriente usualmente están disponibles.

Toda la información es almacenada en servidores que poseen una interfaz


de lectura y extracción de datos (usualmente plataformas ORACLE o SQL).
No obstante esta información almacenada puede verse corrompida por
diversos factores y pueden causar inconvenientes al momento de tomar
decisiones.

2.2.2.1.1 VALIDACIÓN DE DATOS.


Desde los puntos de vista de calidad, confiablidad y continuidad, contar con
un sistema de información fiable es fundamental para operar y planificar la
red.

Actualmente las empresas de distribución en el mercado eléctrico boliviano


no cuentan con una validación de datos de su Sistema SCADA, y se suelen
asumir valores ante la incoherencia o inexistencia de los mismos.

Así mismo para obtener datos de calidad, se debe validar la información


registrada. Si bien existen diversas metodologías para la validación de datos
en sistemas de potencia, su alcance es escasamente aplicado en sistemas
de distribución, razón por la cual se plantea en la presente tesis los
siguientes criterios de análisis de bases de datos SCADA aplicados a redes
de distribución.

17
2.2.2.1.1.1 LÓGICA DIFUSA.
El comportamiento de un sistema de distribución es difícil determinarlo bajo
un análisis determinístico o estocástico ya que puede conllevar a análisis
poco realistas, por lo que es preferente la utilización de datos y lógica difusa
ya que se basan en observaciones de la realidad y son aplicables programas
computacionales.

La lógica difusa es una técnica que emplea lo relativo de la observación


como posición referencia y permite trabajar con información con alto grado
de imprecisión, tomando dos valores aleatorios pero contextualizados y
referidos entre sí.

Esta lógica define la realidad en diferentes grados de verdad y maneja


patrones de razonamiento similares al del humano.

2.2.2.1.1.1.1 CONJUNTOS DIFUSOS


Un conjunto difuso es un conjunto que puede contener elementos de forma
parcial, donde la función de pertenencia puede asumir valores en un
intervalo. Si se toma por ejemplo el voltaje por unidad de un sistema, los
valores encontrados se definirán según la Figura 4.

Figura 4. Voltaje por unidad.

18
Fuente M. Laughton, IEEE Colloquium on Artificial Intelligence Techniques in Power
Systems, de Artificial intelligence techniques in power systems, 1997.

2.2.2.1.1.2 ORDEN Y CAMPOS REQUERIDOS EN LA BASE DE DATOS


Como se definió con anterioridad la red de distribución es muy cambiante de
igual manera los estados de carga de los transformadores, razón por la cual
deben asumirse algunos parámetros y configuraciones de red en los cuales
sus registros de demandas se definan como estado normal de la red, todos
aquellos valores registrados fuera del estado normal deben ser descartados
ya que implica que se trata de una transferencia de carga.

El formato de la base de datos de demandas a trabajar, está en función a los


datos disponibles y debe esquematizarse de tal manera que los datos estén
agrupados por registros de demandas por hora en una sola columna y
variando las filas de acuerdo a los días de registro.

2.2.2.1.1.2.1 ELIMINACIÓN DE CEROS Y VALORES REPETIDOS.


Tomando la base de datos preparada para una configuración determinada en
estado normal, se deben eliminar los registros de aquellos valores de
demandas que sean cero esto debido a que sin importar el bloque horario la
demanda registrada no puede ser cero, de igual manera los valores repetidos
podrían deberse a errores en la comunicación del SCADA.

Para definir la existencia de valores repetidos se realiza el cálculo de la


varianza para la serie de datos por demanda horaria (existen columnas con
todos los datos repetidos si la varianza es cero), no deben considerarse los
valores repetidos debido a la aleatoriedad de la carga.

2.2.2.1.1.3 PRUEBA DE NORMALIDAD.

19
Los datos de demandas para un estado considerado normal presentan una
distribución normal, no se ajustan de manera perfecta a la curva
estandarizada pero se aproximan a ella (Figura 5)

Figura 5. Curva normal.


Fuente J. L. Devore, Probabilidad y estadística para ingeniería y ciencias, de
Probabilidad y estadística para ingeniería y ciencias, México, D.F., Cengage
Learning Editores, 2008.

Como se expuso previamente, una de las pruebas para determinar el


comportamiento de un conjunto difuso es la prueba de normalidad, para ello
la prueba más aceptada es la prueba de Shapiro-Wilk, que consiste en
determinar a partir de una muestra de población, si esta tiene un
comportamiento normal. Para lo que se requiere calcular el valor de W, de
acuerdo a la siguiente ecuación.
(∑𝑛𝑖=1 𝑎𝑖 ∗ 𝑦𝑖 )2
𝑊= 𝑛
∑𝑖=1(𝑦𝑖 − 𝑦̅)2
Ecuación 6 Prueba de normalidad.
Dónde:
𝑦𝑖 ; es el número que ocupa la i-ésima posición en la muestra (con la
muestra ordenada de menor a mayor).
𝑦̅; es la media de la muestra.
𝑚𝑇 𝑉 −1
𝑎𝑖 = (𝑎1 , … , 𝑎𝑛 ) = 1
(𝑚𝑇 𝑉 −1 𝑚)2

20
𝑚 = (𝑚1 , … , 𝑚𝑛 )𝑇
Dónde:
𝑚; son los valores esperados los estadísticos de orden i-ésimos de las
variables aleatorias distribuidas aleatoriamente muestreadas de la
distribución normal estándar.
𝑉; es la matriz de covarianza de los estadísticos de orden i-ésimos.

Se tiene una hipótesis nula en la que la población está distribuida


normalmente. Calculando el valor de W (toma valores entre 0 y 1) y tomando
en cuenta el nivel de confianza 𝛼(usualmente del 5% o 0,05) se determina el
p-valor, si este es menor que 𝛼 se rechaza la hipótesis nula y si es mayor
que 𝛼 se aprueba la hipótesis nula.

Para las series de datos que cumplan con la prueba de normalidad se los
asumirá como válidos para análisis futuro. En el caso de series de datos que
no cumplen con la prueba de normalidad se debe aplicar un proceso de
eliminación de datos que causan el ruido.

2.2.2.1.1.3.1 DEPURACIÓN DE DATOS ATÍPICOS O RUIDO.


Si se determina la nulidad de la hipótesis, se debe proceder a eliminar un 5%
de la cantidad de datos que se encuentren en los extremos de la curva
estandarizada correspondiente a esa serie de datos de valores de demanda.
Para la serie de demandas en cuestión posterior a la eliminación de datos se
considera la aplicación del algoritmo BDSCAN.

El DBSCAN es un algoritmo de agrupamiento de datos propuesto en 1996,


es un método de detección de datos atípicos basado en densidad, su
objetivo es generar grupos que encuentran cerca de un punto inicial o
núcleo.

21
Toma en cuenta los siguientes criterios (ilustrados en la Figura 6):
-Densidad: Número de puntos en un radio específico (ε).

- Puntos “core”: Puntos interiores de un cluster (cuando tienen, al menos, un


número mínimo de puntos minPoints en su vecindario de radio epsilon).

- Puntos “border”: Tienen menos de minPoints puntos en su vecindario de


radio ε, estando en el vecindario de algún punto “core”.

- Ruido: Cualquier punto que no forma parte de un cluster (“core”) ni está en


su frontera (“border”).

Figura 6. Principio de agrupamiento BDSCAN.


Fuente http://yarpiz.com/255/ypml110-dbscan-clustering.

Si el elemento inicial contiene la cantidad mínima de elementos indicada se


marca como punto central, de lo contrario se marca como ruido.
Para ello requiere dos parámetros de entrada:
- La distancia o radio de vecindad (𝜀) de los elementos alrededor de un
punto inicial.

22
Para la base de datos de demandas se considera la precisión de la medida.
- El número mínimo de puntos (𝑚𝑖𝑛𝑝𝑡𝑠) para que una región se
considere densa.

Además es necesario definir la cantidad de iteraciones (duplicando el valor 𝜀)


y el ruido admisible para la serie de datos. De esta manera genera
automáticamente un número de grupos acorde con la distribución de los
datos.

En el caso de que el ruido posterior a las iteraciones determinadas


sobrepase el dato admisible se debe recortar un 5% de la cantidad de datos
que se encuentren en los extremos y volver a correr el BDSCAN hasta
obtener el porcentaje de ruido esperado.

2.2.2.1.2 INFORMACION REPRESENTATIVA.


Una vez validada la base de datos de demandas es posible la visualización
de información representativa del comportamiento de la red ante las
variaciones de carga, así mismo coadyuvar en análisis y toma de decisiones
correctas.

2.2.3 CARACTERÍSTICAS DE LAS REDES DE DISTRIBUCIÓN


URBANAS EN COCHABAMBA.

2.2.3.1 MODELOS SIMPLIFICADOS DE REDES MT Y CARGAS


PARA ANÁLISIS EN ESTADO NORMAL Y CONTINGENCIA.
Por lo general los alimentadores en un sistema de distribución tienen una
estructura radial, cuando se trata de redes urbanas estos alimentadores
tienen recursos de transferencia de carga con otros alimentadores vecinos ya

23
sean de la misma subestación o de otra con el mismo nivel de tensión de
servicio.

La red de Media Tensión y la carga que esta alimenta están limitadas por las
características constructivas propias de la red y por estándares de calidad,
estos límites de calidad en la operación en Bolivia están determinados por la
Autoridad de Electricidad, estos límites operativos repercuten en el estado de
carga del transformador de potencia.

Los límites constructivos a los que la empresa distribuidora desea llevar sus
instalaciones y los límites de calidad en la operación varían para condiciones
en estado normal y para contingencia. Debido a que se conocen estos límites
es posible modelar redes de distribución para que sean capaces de reflejar
las condiciones de operación deseadas integrándose con los datos
recopilados de manera remota.

2.2.3.2 MODELO DE REDES DE DISTRIBUCIÓN EN ESTADO


NORMAL.
2.2.3.2.1 ANÁLISIS DE CAPACIDAD DE LAS SALIDAS
SUBTERRÁNEAS.
Constructivamente una limitante en alimentadores de distribución es la salida
del mismo, es una práctica común el emplear conductor subterráneo. De
acuerdo al detalle constructivo de las salidas de los alimentadores se puede
definir la capacidad máxima de transporte de corriente/potencia.

La ampacidad se define de la siguiente manera:


𝐼 ′ = 𝐼𝐶𝐴𝑇𝐴𝐿𝑂𝐺𝑂 ∗ 𝐾𝑇 ∗ 𝐾𝑅 ∗ 𝐾𝐴 ∗ 𝐾𝑃
Ecuación 7 Caída de tensión porcentual expresión general

Dónde:

24
𝐼′; es la ampacidad del conductor para una determinada condición de
instalación. [A]
𝐼𝐶𝐴𝑇𝐴𝐿𝑂𝐺𝑂 ; es la capacidad nominal del conductor. [A]
𝐾𝑇 ; es el factor de corrección por temperatura.
𝐾𝑅 ; es el factor de corrección por resistividad térmica del terreno.
𝐾𝐴 ; es el factor de corrección por agrupamiento de conductores.
𝐾𝑃 ; es el factor de corrección por la profundidad al que fueron enterrados.

Los conductores empleados en redes de distribución subterránea en


Cochabamba son de material XLPE, para lo que se tiene los siguientes
factores de consideración para la determinación de su capacidad máxima de
transporte.
Para cables enterrados en terrenos a 20° C el factor de corrección sería de:
𝐾𝑇 = 1.04
La resistividad térmica asumida de 1.5K*m/W así que el factor de corrección
será:
𝐾𝑅 = 1
Se considera una sola terna enterrada.
𝐾𝐴 = 1.04
La profundidad promedio de los conductores es de 60 cm.
𝐾𝑃 = 1.06

2.2.3.2.2 ANÁLISIS DE CAÍDA DE TENSIÓN EN ESTADO NORMAL.


La caída de tensión ∆V generalmente es expresada en porciento de la
tensión de servicio, de acuerdo a la siguiente ecuación:

𝐼 ∗ √3 ∗ (𝑟 ∗ 𝑐𝑜𝑠𝜑 + 𝑥 ∗ 𝑠𝑒𝑛𝜑) ∗ 𝐿 ∗ 100


∆𝑉% = [%]
𝑉
Ecuación 8 Caída de tensión porcentual expresión general.

25
Dónde
∆𝑉%; Es la caída de tensión porcentual [%]
𝐼; Es la corriente que circula por el alimentador [A]
𝑟; Es la resistencia óhmica unitaria del conductor [Ω/km]
𝑥; Es la reactancia inductiva unitaria del conductor [Ω/km]
𝑉; Es la tensión de servicio Fase-Fase del alimentador [V]

Las redes de distribución se pueden representar como momentos eléctricos


sobre la troncal para el cálculo de la caída de tensión en el extremo de un
alimentador (Figura 7).
ai bi ci

0 a b c
n

ad bd cd
R1 R2 R3
Rn

Σia=ia-i+ia-d Σib= ib-i+ib-d Σic=ic-i+ic-d in


Figura 7. Representación gráfica de momentos eléctricos en un alimentador.
Fuente Elaboración propia

∆𝑉0−𝑛 = (𝑖𝑎 + 𝑖𝑏 + 𝑖𝑐 + ⋯ + 𝑖𝑛) ∗ 𝑟1 + (𝑖𝑏 + 𝑖𝑐 + ⋯ + 𝑖𝑛) ∗ 𝑟2 + (𝑖𝑐 + ⋯ + 𝑖𝑛) ∗


𝑟𝑐 + ⋯ + (𝑖𝑛) ∗ 𝑟𝑛
∆𝑉0−𝑛 = 𝑖𝑎 ∗ 𝑟1 + 𝑖𝑏 ∗ (𝑟1 + 𝑟2 ) + 𝑖𝑐 ∗ (𝑟1 + 𝑟2 + 𝑟3 ) + 𝑖𝑛 ∗ (𝑟1 + 𝑟2 + 𝑟3 + ⋯ + 𝑟𝑛 )
Para:
𝑟1 = 𝑅1 ; 𝑟1 + 𝑟2 = 𝑅2 ; 𝑟1 + 𝑟2 + 𝑟3 = 𝑅3 ; 𝑟1 + 𝑟2 + 𝑟3 + ⋯ + 𝑟𝑛 = 𝑅𝑛

26
∆𝑉0−𝑛 = 𝑖𝑎 ∗ 𝑅1 + 𝑖𝑏 ∗ 𝑅2 + 𝑖𝑐 ∗ 𝑅3 + ⋯ + 𝑖𝑛 ∗ 𝑅𝑛
𝑛

∆𝑉0−𝑛 = ∑(𝑖 ∗ 𝑅)
𝑖=𝐼

Ecuación 9 Momento Eléctrico.

De manera que las caídas de tensión en el extremo del alimentador son la


suma de los momentos de las corrientes de carga del alimentador con
respecto al punto de alimentación, por ende se define que el momento de
carga es el producto de una corriente por la resistencia a través de la cual
fluye.

Sin embargo el comportamiento de las redes de distribución puede asumirse


bajo condiciones simplificadas que facilitan el cálculo de caídas de tensión.
De tal manera se puede asumir como cargas uniformemente distribuidas en
el trocal y derivaciones como se muestra en la Figura 8.

0 n

x dx
L

Figura 8 Representación gráfica de cargas uniformemente distribuidas en un


alimentador.
Fuente Elaboración propia.

Dónde
𝑖; Es la densidad de carga [A/m]
𝐼 = 𝑖 ∗ 𝐿; Es la corriente total del alimentador [A]

27
𝐼(𝑥) = 𝑖 ∗ (𝐿 − 𝑥)
𝐼 𝑥
𝐼(𝑥) = 𝑖 ∗ 𝐿 − 𝑖 ∗ 𝑥 = 𝐼 − ∗ 𝑥 = 𝐼 ∗ (1 − )
𝐿 𝐿
𝑑𝑉 = 𝐼(𝑥) ∗ 𝑑𝑅 = 𝐼(𝑥) ∗ 𝑟 ∗ 𝑑𝑥
𝑛 𝐿 𝐿
𝑥
∆𝑉0−𝑛 = ∫ 𝑑𝑉 = 𝑉0 − 𝑉𝑛 = ∫ 𝐼(𝑥) ∗ 𝑟 ∗ 𝑑𝑥 = 𝑟 ∗ 𝐼 ∫ (1 − ) ∗ 𝑑𝑥
0 0 0 𝐿
𝐿
𝑥2 𝐿2
∆𝑉0−𝑛 = 𝑟 ∗ 𝐼 ∗ (𝑥 − )| = 𝑟 ∗ 𝐼 ∗ (𝐿 − )
2∗𝐿 0 2∗𝐿
𝑟∗𝐼∗𝐿
∆𝑉0−𝑛 =
2
Ecuación 10 Caída de tensión considerando cargas uniformemente
distribuidas.

Para geometrías de carga considerando distribuciones triangulares, se define


lo siguiente.

x dx

Figura 9. Alimentador con carga triangular tipo 1.


Fuente Elaboración propia.

28
L

x dx
Figura 10. Alimentador con carga triangular tipo 2.
Fuente Elaboración propia.

Dónde conceptualmente en el tipo 1 la mayor carga alimentada se encuentra


cerca de la cola del alimentador y en el tipo 2 la mayor distribución de carga
se encuentra cerca de la salida del alimentador, para ambos escenarios se
tiene:
𝑀𝑉𝐴(𝑥) = 𝐷(𝐿 ∗ 𝑎 − 𝑥 2 ∗ 𝑡𝑔 𝜃)
Ecuación 11 Centro de carga del alimentador en función de la distribución de
la demanda.
𝑊 =𝐷∗𝐿∗𝑎
Ecuación 12 Demanda del alimentador en función a su densidad de carga y
geometría.
|𝑉𝑆 | − |𝑉𝑅 |
𝐺= ∗ 100%
|𝑉𝑆 |
Ecuación 13 Coeficiente unitario de caída de tensión.
𝑀𝑉𝐴
𝐷; 𝐷𝑒𝑛𝑠𝑖𝑑𝑎𝑑 𝑑𝑒 𝑐𝑎𝑟𝑔𝑎 𝑒𝑛 𝑒𝑙 𝑎𝑟𝑒𝑎 𝑑𝑒 𝑖𝑛𝑓𝑙𝑢𝑒𝑛𝑐𝑖𝑎 𝑑𝑒𝑙 𝑎𝑙𝑖𝑚𝑒𝑛𝑡𝑎𝑑𝑜𝑟 [ ]
𝑘𝑚2
𝐿; 𝑙𝑜𝑛𝑔𝑖𝑡𝑢𝑑 𝑑𝑒𝑙 𝑎𝑙𝑖𝑚𝑒𝑛𝑡𝑎𝑑𝑜𝑟 [𝑘𝑚]
𝑎; 𝑎𝑛𝑐ℎ𝑜 𝑑𝑒𝑙 á𝑟𝑒𝑎 [𝑘𝑚]
𝑎
𝑡𝑔 𝜃 =
𝐿

29
𝑑𝑉 = 𝐺 ∗ 𝑀𝑉𝐴(𝑥) 𝑑𝑥 = 𝐺 ∗ 𝐷(𝐿 ∗ 𝑎 − 𝑥 2 ∗ 𝑡𝑔 𝜃)𝑑𝑥
𝐿 𝐿 𝐿
𝑎 2
𝑥2
∆𝑉 = ∫ 𝑑𝑉 = ∫ 𝐺 ∗ 𝐷 (𝐿 ∗ 𝑎 − 𝑥 ∗ ) 𝑑𝑥 = 𝐺 ∗ 𝐷 ∗ 𝑎 (𝐿 ∗ 𝑥 − )|
0 0 𝐿 3𝐿 0
2
∆𝑉 = ∗ 𝐺 ∗ 𝐷 ∗ 𝑎 ∗ 𝐿2
3
2
∆𝑉 = ∗ 𝐺 ∗ 𝑊 ∗ 𝐿
3
Ecuación 14 Expresión de Caída de tensión con carga triangular tipo 1.
1
∆𝑉 = ∗𝐺∗𝑊∗𝐿
3
Ecuación 15 Expresión de Caída de tensión con carga triangular tipo 2.

2.2.3.3 MODELO DE REDES DE DISTRIBUCIÓN EN


CONTINGENCIA.
2.2.3.3.1 ANALISIS DE ESTADO DE CARGA EN CONTINGENCIA.
El cálculo del estado de carga para alimentadores compuestos y energizados
desde un solo punto se define de la siguiente manera.

SE- SE-
L L
A B
1 2
Figura 11. Representación de alimentadores con recurso de traspaso de carga.
Fuente Elaboración propia.

Se traspasa el alimentador L2 (su carga) a L1 desde la SE-B a SE-A; las


pérdidas resultantes son:

Pérdidas como carga distribuida en L2 por la carga de L2.


𝐼2 2 𝐼2 2
𝑃𝑒𝑟𝑑𝑖𝑑𝑎𝑠 𝐿2 = ∗ (𝑟 ∗ 𝐿2 ) = ∗ 𝑅2
𝑓𝑎𝑠𝑒 3 3
Ecuación 16 Pérdidas de Potencia como carga distribuida en función de la
corriente del alimentador de la Subestación B.

30
Para pérdidas en L1 por corriente resultante de suma de la carga de L1
distribuida en L1 y la carga de L2 concentrada en L1

IL1

I(x)

Figura 12. Distribución de la corriente en el conductor, para una carga


uniformemente distribuida
Fuente Elaboración propia.

𝐼1 = 𝑖 ∗ 𝐿 − 𝑖 ∗ 𝑥 = 𝑖 ∗ (𝐿 − 𝑥)
Ecuación 17 Corriente en función de la distancia de la salida de la
subestación considerando cargas distribuidas.
Para
𝑥=0 𝐼1 = 𝑖 ∗ 𝐿
𝑥=𝐿 𝐼1 = 𝑖 ∗ (𝐿 − 𝐿) = 0
𝐼𝑇𝑥 = 𝐼1 ∟𝜃1 + 𝐼2 ∟𝜃2
Ecuación 18 Corriente vectorial resultante de la suma de los dos
alimentadores
2
𝑑𝑃𝑒𝑟𝑑 = (𝐼(2) ∟𝜃2 + 𝐼(1) ∟𝜃1 ) ∗ 𝑑𝑅
𝐼𝑇𝑥 2 = [(𝐼1 ∗ cos 𝜃1 + 𝐼2 ∗ cos 𝜃2 )2 + (𝐼1 ∗ sen 𝜃1 + 𝐼2 ∗ sen 𝜃2 )2
𝑑𝑃𝑒𝑟𝑑𝐿1 = [𝐼𝑇𝑥 ]2 𝑑𝑅
Dónde
𝑅 =𝑟∗𝑥

31
Ecuación 19 impedancia del alimentador en función a la distancia de la
subestación.

𝑑𝑅 = 𝑟 ∗ 𝑑𝑥
𝑥=𝐿1
𝑃𝑒𝑟𝑑 𝐿1 = ∫ [𝐼𝑇𝑥 ]2 𝑟 ∗ 𝑑𝑥
𝑓𝑎𝑠𝑒 𝑥=0

Ecuación 20 Pérdidas de potencia por fase en el alimentador de la


Subestación.
𝑥=𝐿1
𝑃𝑒𝑟𝑑 𝐿1 = 𝑟∫ [(𝐼1 2 ∗ cos2 𝜃1 + 2 ∗ 𝐼1 ∗ 𝐼2 ∗ cos 𝜃1
𝑓𝑎𝑠𝑒 𝑥=0

∗ cos 𝜃2 + 𝐼2 2 ∗ cos 2 𝜃2 ) + (𝐼1 2 ∗ sen2 𝜃1 + 2 ∗ 𝐼1 ∗ 𝐼2 ∗ sen 𝜃1


∗ sen 𝜃2 + 𝐼2 2 ∗ sen2 𝜃2 )] ∗ 𝑑𝑥
𝑥=𝐿1
𝑃𝑒𝑟𝑑 𝐿1 = 𝑟∫ [𝐼1 2 ∗ (sen2 𝜃1 + cos2 𝜃1 ) + 𝐼1 ∗ 𝐼2 ∗ (2 ∗ cos 𝜃1 ∗ cos 𝜃2 + 2
𝑓𝑎𝑠𝑒 𝑥=0

∗ sen 𝜃1 ∗ sen 𝜃2 ) + 𝐼2 2 ∗ (sen2 𝜃2 + cos 2 𝜃2 )] ∗ 𝑑𝑥


𝑥=𝐿1
𝑃𝑒𝑟𝑑 𝐿1 = 𝑟∫ [𝐼1 2 + 2 ∗ 𝐼1 ∗ 𝐼2 ∗ (cos 𝜃1 ∗ cos 𝜃2 + sen 𝜃1 ∗ sen 𝜃2 ) + 𝐼2 2 ]
𝑓𝑎𝑠𝑒 𝑥=0

∗ 𝑑𝑥
𝑥=𝐿1
𝑃𝑒𝑟𝑑 𝐿1 = 𝑟∫ [𝐼1 2 + 2 ∗ 𝐼1 ∗ 𝐼2 ∗ cos(𝜃1 − 𝜃2 ) + 𝐼2 2 ] ∗ 𝑑𝑥
𝑓𝑎𝑠𝑒 𝑥=0
𝑥=𝐿1 𝑥=𝐿1
𝑃𝑒𝑟𝑑 𝐿1 =𝑟∗∫ 𝐼1 2 ∗ 𝑑𝑥 + 2 ∗ 𝑟 ∗ ∫ 𝐼1 ∗ 𝐼2 ∗ cos(𝜃1 − 𝜃2 ) ∗ 𝑑𝑥 ∗ + 𝐼2 2
𝑓𝑎𝑠𝑒 𝑥=0 𝑥=0
𝑥=𝐿1
∗ 𝑟 ∗ |𝑥|𝑥=0
Dónde:
𝐼1 = 𝑖 ∗ (𝐿1 − 𝑥)
𝑥=𝐿1
𝑃𝑒𝑟𝑑 𝐿1 =𝑟∗∫ 𝑖 2 ∗ (𝐿1 − 𝑥)2 ∗ 𝑑𝑥 + 2 ∗ 𝐼2 ∗ 𝑟
𝑓𝑎𝑠𝑒 𝑥=0
𝑥=𝐿1
∗ cos (𝜃1 − 𝜃2 ) ∗ ∫ 𝑖 ∗ (𝐿1 − 𝑥) ∗ 𝑑𝑥 + 𝐼2 2 ∗ 𝑟 ∗ |𝑥|𝑥=0
𝑥=𝐿1
𝑥=0

32
𝑃𝑒𝑟𝑑 𝐿1 = 𝑟 ∗ 𝑖 2 ∗ ∫[𝐿1 2 − 2 ∗ 𝐿1 2 ∗ 𝑥 + 𝑥 2 ] ∗ 𝑑𝑥 + 2 ∗ 𝐼2 ∗ 𝑖 ∗ 𝑟
𝑓𝑎𝑠𝑒

∗ cos (𝜃1 − 𝜃2 ) ∗ ∫(𝐿1 − 𝑥) ∗ 𝑑𝑥 + 𝐼2 2 ∗ 𝑟 ∗ 𝐿1


𝑥=𝐿1 𝑥=𝐿1
2 2 𝑥=𝐿1 2
𝑥2 2
𝑥3
𝑃𝑒𝑟𝑑 𝐿1 =𝑟∗𝑖 ∗ 𝐿1 |𝑥|𝑥=0 − 2 ∗ 𝑖 ∗ 𝑟 ∗ 𝐿1 ∗ | | +𝑟∗𝑖 ∗| | +2
𝑓𝑎𝑠𝑒 2 𝑥=0 3 𝑥=0

∗ 𝐼2 ∗ 𝑖 ∗ (𝑟 ∗ 𝐿1 )
𝑥=𝐿1
𝑥=𝐿1
𝑥2
∗ cos (𝜃1 − 𝜃2 ) ∗ |𝑥|𝑥=0 − 2 ∗ 𝑖 ∗ 𝑟 ∗ 𝐼2 ∗ cos(𝜃1 − 𝜃2 ) ∗ | |
2 𝑥=0

+ 𝐼2 2 ∗ 𝑟 ∗ 𝐿1

2 2 2
𝐿1 2 2
𝐿1 3
𝑃𝑒𝑟𝑑 𝐿1 = 𝑟 ∗ 𝑖 ∗ 𝐿1 ∗ 𝐿1 − 2 ∗ 𝑖 ∗ 𝑟 ∗ 𝐿1 ∗ +𝑟∗𝑖 ∗ + 2 ∗ 𝐼2 ∗ 𝑖 ∗ 𝑅1
𝑓𝑎𝑠𝑒 2 3
𝐿1 2
∗ 𝐿1 ∗ cos(𝜃1 − 𝜃2 ) − 2 ∗ 𝑖 ∗ 𝑟 ∗ 𝐼2 ∗ ∗ cos(𝜃1 − 𝜃2 ) + 𝐼2 2 ∗ 𝑅1
2

(𝑟 ∗ 𝐿1 ) ∗ (𝑖 ∗ 𝐿1 )2
𝑃𝑒𝑟𝑑𝐿1/𝑓𝑎𝑠𝑒 = (𝑖 ∗ 𝐿1 )2 ∗ 𝑟 ∗ 𝐿1 − (𝑖 ∗ 𝐿1 )2 ∗ (𝐿1 ∗ 𝑟) + +2
3
∗ (𝑖 ∗ 𝐿1 ) ∗ 𝐼2 ∗ cos(𝜃1 − 𝜃2 ) − (𝑖 ∗ 𝐿1 ) ∗ 𝐼2 ∗ (𝑟 ∗ 𝐿1 ) ∗ cos(𝜃1 − 𝜃2 )
+ 𝐼2 2 ∗ 𝑅1
𝐼1 2 ∗ 𝑅1
𝑃𝑒𝑟𝑑𝐿1/𝑓𝑎𝑠𝑒 = 𝐼1 2 ∗ 𝑅1 − 𝐼1 2 ∗ 𝑅1 + + 2 ∗ 𝐼1 ∗ 𝐼2 ∗ 𝑅1
3
∗ cos(𝜃1 − 𝜃2 ) − 𝐼1 ∗ 𝐼2 ∗ 𝑅1 ∗ cos(𝜃1 − 𝜃2 ) + 𝐼2 2 ∗ 𝑅1

𝐼1 2 ∗ 𝑅1 𝐼2 2 ∗ 𝑅2
𝑃𝑒𝑟𝑑 𝐿1 𝐿2 =[ + 𝐼1 ∗ 𝐼2 ∗ 𝑅1 ∗ cos(𝜃1 − 𝜃2 ) + 𝐼2 2 ∗ 𝑅1 ] + [ ]
+
𝑓𝑎𝑠𝑒 𝑓𝑎𝑠𝑒 3 3
Ecuación 21 Pérdidas de potencia por fase para transferencias de carga
considerando cargas uniformemente distribuidas

33
𝑃é𝑟𝑑𝑖𝑑𝑎𝑠 𝑑𝑒 𝑝𝑜𝑡𝑒𝑛𝑐𝑖𝑎 𝑝𝑜𝑟 𝑓𝑎𝑠𝑒(𝑊𝑎𝑡𝑡𝑠) =
𝐼1 2 ∗ 𝑟 ∗ 𝐿1 𝐼2 2 ∗ 𝑟 ∗ 𝐿2
[ + 𝐼2 ∗ cos(𝜃2 − 𝜃1 ) ∗ 𝑟 ∗ 𝐼1 ∗ 𝐿1 + 𝐼2 2 ∗ 𝑟 ∗ 𝐿1 ] +
3 3

Carga Carga Perdida


distribuid puntual alimentador
a carga puntual

En el alimentador que toma


la carga
En el alimentador que
transfiere la carga

Para cargas puntuales tenemos lo siguiente:


𝑃𝑒𝑟𝑑𝑖𝑑𝑎𝑠 𝑑𝑒 𝑝𝑜𝑡𝑒𝑛𝑐𝑖𝑎 𝑝𝑜𝑟 𝑓𝑎𝑠𝑒(𝑊𝑎𝑡𝑡𝑠)
= [𝐿1 2 ∗ 𝑟 ∗ 𝐿1 + 𝐼2 ∗ cos(𝜃2 − 𝜃1 ) ∗ 𝑟 ∗ 𝐿1 ∗ 𝐼1 + 𝐼2 2 ∗ 𝑟 ∗ 𝐿1 ] + 𝐼2 2
∗ 𝑟 ∗ 𝐿2
Ecuación 22 Pérdidas de potencia por fase para transferencias de carga
considerando cargas puntuales

Si consideramos cargas distribuidas, mismas cargas, mismo factor de


potencia y mismas longitudes en los alimentadores, tenemos:
𝐼2 ∗ 𝑟 ∗ 𝐿 𝐼2 ∗ 𝑟 ∗ 𝐿
=[ + 𝐼 2 ∗ 𝑟 ∗ 𝐿 + 𝐼 2 ∗ 𝑟 ∗ 𝐿1 ] +
3 3
1 1
= 𝑟 ∗ 𝐿 ∗ 𝐼 2 ∗ {[ + 1 + 1] + }
3 3

34
2
= 𝑟 ∗ 𝐿 ∗ 𝐼 2 ∗ [ + 2]
3
8
= 𝑟 ∗ 𝐿 ∗ 𝐼 2 ∗ [ ] [𝑊𝑎𝑡𝑡𝑠]
3
𝑟 ∗ 𝐿 ∗ 𝐼 2 8 𝐾𝑖𝑙𝑜 𝑊𝑎𝑡𝑡𝑠
𝑃é𝑟𝑑𝑖𝑑𝑎𝑠 𝑑𝑒 𝑝𝑜𝑡𝑒𝑛𝑐𝑖𝑎 𝑝𝑜𝑟 𝑓𝑎𝑠𝑒 = ∗[ ][ ]
1000 3 𝑓𝑎𝑠𝑒
Ecuación 23 Pérdidas por fase para transferencias de carga para longitudes
y cargas distribuidas idénticas.

2.2.3.3.2 ANÁLISIS DE CAÍDA DE TENSIÓN EN CONTINGENCIA


El cálculo de caída de tensión para alimentadores compuestos y energizados
desde un solo punto se realiza de la siguiente manera

V1 I1 V2 V3 V1
I2
Z1 Z1
L1 L2
S/E S/E
‘‘A’’ ‘‘B’’

𝝙v1 𝝙v2

Figura 13. Caída de tensión en contingencias


Fuente Elaboración propia.

∆𝑉1 = 𝑍1 ∗ 𝐿1 ∗ 𝐼1
Ecuación 24 Caída de tensión en el alimentador de la Subestación A.

∆𝑉2 = 𝑍1 ∗ 𝐿2 ∗ 𝐼2
Ecuación 25 Caída de tensión en el alimentador de la Subestación B.

Para :
𝑜ℎ𝑚
𝑍1 = [ 𝑘𝑚 ] impedancia igual en ambos alimentadores debido a que se utilizan

las mismas secciones de conductor

35
Diferente longitud entre alimentadores L1 y L2
Si:
𝐼1 = 𝐼2 = 𝐼
Y los dos alimentadores solo difieren en la longitud, suponiendo
𝐿2 > 𝐿1
𝐿2
>1
𝐿1
∆𝑉2 𝑍1 ∗ 𝐿2 ∗ 𝐼2
= >1
∆𝑉1 𝑍1 ∗ 𝐿1 ∗ 𝐼1
∆𝑉2 𝐿2
= >1
∆𝑉1 𝐿1
∆𝑉2 > ∆𝑉1 por ser L2 un alimentador mas largo que L1
𝑉1 = ∆𝑉2 + 𝑉2
Ecuación 26 Tensión de salida del alimentador de la Subestación B.

𝑉1 = ∆𝑉1 + 𝑉3
Ecuación 27 Tensión de salida del alimentador de la Subestación A.

Suponiendo que se desconecta la S/E ‘‘B’’ y ambos alimentadores se


energizan desde la S/E ‘‘A’’, volviendose un alimentador compuesto
energizado desde un solo punto.

En el alimentador #2 (derecha): ∆𝑉2 = 𝑍1 ∗ 𝐿2 ∗ 𝐼2


En el alimentador #1 (izquierda): ∆𝑉1 + 𝑉3
Carga concentrada del alimentador #2 en el punto V3:
𝑉3 = 𝑍1 ∗ 𝐿1 ∗ 𝐼2
Ecuación 28 Tensión en el punto de interconexión visto desde la Subestación
A.
Considerando la longitud total del alimentador compuesto:

36
∆𝑉𝑇 = ∆𝑉1 + 𝑍1 ∗ 𝐿1 ∗ 𝐼2 + ∆𝑉2
∆𝑉𝑇 = ∆𝑉1 + 𝑉3 + ∆𝑉2
Ecuación 29 Caída de tensión en alimentadores compuestos energizados
desde un mismo punto

Si el análisis es para alimentadores con cargas identicas y longitudes


diferentes energizados desde un mismo punto tenemos:

𝐼1 = 𝐼2 = 𝐼
∆𝑉𝑇 ´ = ∆𝑉1 + 𝑍1 ∗ 𝐿1 ∗ 𝐼 + ∆𝑉2
∆𝑉𝑇 ´ = ∆𝑉1 + ∆𝑉1 + ∆𝑉2
∆𝑉𝑇 ´ = 2∆𝑉1 + ∆𝑉2
Ecuación 30 Caída de tensión en alimentadores compuestos con cargas
idénticas energizados desde un mismo punto.

Si el análisis es para alimentadores con cargas iguales y longitudes iguales


energizados desde un mismo punto:

∆𝑉𝑇 = ∆𝑉1 + ∆𝑉1 + 𝑍1 ∗ 𝐿1 ∗ 𝐼


∆𝑉𝑇 = ∆𝑉1 + ∆𝑉1 + ∆𝑉1
∆𝑉𝑇 ´´ = 3∆𝑉1
Ecuación 31 Caída de tensión en alimentadores compuestos con cargas
iguales y longitudes iguales, energizados desde un mismo punto
Si el análisis es para alimentadores con cargas iguales y longitudes iguales,
considerándolos también con cargas distribuidas:

∆𝑉1 = ∆𝑉2
∆𝑉𝑇 = ∆𝑉1 + 𝑍1 ∗ 𝐿1 ∗ 𝐼 + ∆𝑉1
𝐿1 𝐿1
∆𝑉𝑇 = 𝑍1 ∗ ∗ 𝐼 + 𝑍1 ∗ 𝐿1 ∗ 𝐼 + 𝑍1 ∗ ∗ 𝐼
2 2

37
∆𝑉𝑇 = ∆𝑉1 + 2∆𝑉1 + ∆𝑉1
∆𝑉𝑇 ´´´ = 4∆𝑉1
Ecuación 32 Caída de tensión en alimentadores compuestos con cargas
iguales, longitudes iguales, considerando cargas distribuidas y energizados
desde un mismo punto

2.2.4 CARACTERÍSTICAS PRINCIPALES DEL TRANSFORMADOR DE


POTENCIA.
El transformador de potencia es una maquina eléctrica estática de corriente
alterna, cuya función principal es cambiar la magnitud de un potencial y de la
corriente de entrada en uno distinto en su salida por inducción
electromagnética, transmitiendo la potencia sin variar la frecuencia.
Debido a su importancia, se diseñan y fabrican de acuerdo a normas
internacionales que garantizan su explotación dentro de márgenes definidos.

2.2.4.1 DESCRIPCIÓN DE ELEMENTOS DEL TRANSFORMADOR


DE POTENCIA.
Los elementos principales a considerar de acuerdo a su función en el
transformador de potencia se detallan a continuación.

2.2.4.1.1 PARTE ACTIVA.


Son los elementos que participan directamente en la trasformación de la
energía, estos se encuentran dentro del tanque principal.

2.2.4.1.1.1 NÚCLEO.
Es el circuito electromagnético que transfiere la energía entre circuitos,
mediante la concentración del flujo activo dentro de un circuito determinado.
La permeabilidad del núcleo no permite que casi ninguna línea de campo
escape de él.

38
2.2.4.1.1.2 BOBINAS.
Son el circuito eléctrico que generan el campo magnético, se encuentran
dispuestos alrededor del núcleo en disposición cilíndrica y componen
devanados. Las espiras en los devanados se encuentran eléctricamente
aisladas con papel aislante en el caso de transformadores de potencia.

El intercambio térmico entre estos es mediante el aceite que fluye de manera


radial y axial.

2.2.4.1.2 PARTE PASIVA.


Son los elementos que rodean al núcleo y las bobinas.

2.2.4.1.2.1 TANQUE PRINCIPAL.


Es el circuito electromagnético que transfiere la energía entre circuitos,
mediante la concentración del flujo activo dentro de un circuito determinado.

La concentración en el núcleo no permite que casi ninguna línea de campo


escape de él.

2.2.4.1.2.2 AISLAMIENTO SOLIDO.


Es producto fabricado en base a celulosa como el cartón prensado y el
papel, estos como se detalló previamente fungen como aislantes de las
bobinas. Se lo considera como el eslabón más débil de un transformador, ya
que la vida del transformador está directamente ligada al estado de su papel.

2.2.4.1.2.3 ACEITE DIELÉCTRICO.


Es producto de aceite mineral altamente refinado y está compuesto por
hidrocarburos.

39
Es el refrigerante y forma parte del aislante del transformador, este a la vez
protege el aislamiento solido de la humedad y el aire. Los análisis
cromatográficos realizados a este aceite permiten determinar el estado del
transformador.
Este aceite sufre deterioro debido al uso, principalmente a los siguientes
factores:
- Absorción de humedad del aire.

- Ingreso de partículas extrañas.

- Exposición a altas temperaturas por tiempos prolongados.

- Gradientes eléctricos.

2.2.4.1.3 FENÓMENOS TÉRMICOS EN EL TRANSFORMADOR.


Los fenómenos térmicos debido al incremento de la temperatura involucran
directamente un efecto en el aceite. Es así que el aceite juega un rol
importante dentro del transformador, ya que se comporta como el refrigerante
del mismo y este se ve afectado directamente en sus propiedades
dieléctricas ante el aumento de temperatura debido al incremento de carga
que conlleva a un incremento de temperatura.

Estos desde el punto de vista de la transferencia de calor y las propiedades


del aceite se detallan en los apartados 2.2.4.1.3.1, 2.2.4.1.3.2 y 2.2.4.1.3.3.

2.2.4.1.3.1 CONVECCIÓN NATURAL Y FORZADA.


La convección natural se produce cuando el aceite frio se calienta debido al
incremento de carga y sube de manera natural hasta el tope, en ese

40
momento intercambia calor con la temperatura ambiente, de manera que se
enfría y retorna al fondo del tanque donde el ciclo se reinicia.

La convección forzada presenta un ciclo similar a la convección natural con


la diferencia que el aceite es bombeado, permitiendo que el ciclo sea más
rápido y se puedan realizar transferencias de calor mayores que con
convección natural. La implementación de un equipo que bombee el aceite
reduce la confiabilidad de los transformadores, razón por la cual en el
mercado eléctrico boliviano no es frecuente emplear transformadores con
bombeo del aceite.

2.2.4.1.3.2 CONDUCCIÓN.
Los fenómenos de conducción se encuentran se encuentran entre las
bobinas, el papel y el aceite.

2.2.4.1.3.3 RADIACIÓN.
Estos fenómenos se producen al momento en el que el aceite está circulando
por los radiadores, y el calor se transfiere al exterior por radiación al
ambiente exterior.

2.2.4.1.4 SISTEMA DE REFRIGERACIÓN DEL TRANSFORMADOR DE


POTENCIA.
El control de la temperatura se constituye en un aspecto importante al
momento de definir la capacidad del transformador, constructivamente según
su refrigeración los transformadores de potencia se clasifican de la siguiente
manera:

41
Figura 14. Transformadores según el Sistema de refrigeración.
Fuente Luiz Yamazaki, Principales aspectos para especificar transformadores de
potencia, Chile, Jornadas Técnicas-ABB Chile

Dónde:
- ONAN (Oil Natural circulation Air Natural circulation): En este sistema
el aceite y el aire circulan de forma natural.

- ONAF (Oil Natural circulation Air Forced circulation): En este sistema


el aceite circula de forma natural y el aire circula de forma forzada mediante
el uso de ventiladores.
- OFAF (Oil Forced circulation Air Forced circulation): En este sistema el
aceite circula de forma forzada por la acción de bomba y el aire también
circula de forma forzada mediante el uso de ventiladores.

- ODAF (Oil force circulation Directed Air Forced circulation): En este


sistema el aceite circula de forma forzada dirigida a los radiadores y los
canales en su interior, el aire circula de forma forzada mediante el uso de
ventiladores.

2.2.4.2 CARGABILIDAD DE UN TRANSFORMADOR DE POTENCIA


Y VIDA ÚTIL BASADO EN LA NORMAS IEC 60354 E IEC 60076-7.

42
Los límites de cargabilidad de un transformador de potencia, están definidos
por las consideraciones constructivas referentes al sistema de refrigeración.

Es así que las limitantes térmicas son traducidas a parámetros eléctricos


que permiten definir la potencia nominal (rated power) del transformador para
cada uno de los sistemas de refrigeración con los que cuente, este dato se lo
garantiza el fabricante en base a la especificación técnica al momento de
solicitar el transformador y se encuentra identificado en la placa del mismo.

Estos límites de cargabilidad, son analizados por la norma IEC 60076-7 y


analiza condiciones de contingencia alcanzar y la capacidad de alcanzar
valores superiores a los nominales garantizados por el fabricante, siempre
que se consideren estas sobrecargas como temporales. Así es posible definir
el impacto de las en la reducción de la vida útil del transformador.

2.2.4.2.1 CICLOS DE CARGA NORMALIZADOS.


Los regímenes de carga definidos en la norma IEC 60076-7 permiten
identificar y clasificar los eventos que provoquen el aumento de la carga por
encima del valor nominal.

2.2.4.2.1.1 CICLO DE CARGA NORMAL.


Aplica para la operación en estado normal, esta operación puede incluir
pircos pero es compensada en los horarios valle, de manera que el
envejecimiento es reducido.

2.2.4.2.1.2 SOBRECARGA DE EMERGENCIA DE LARGA DURACIÓN.


Aplica para la operación en contingencia, donde la operación se ve
comprometida por la ausencia de un elemento y el reemplazo o reparación
del mismo, las sobrecargas se producen a lo largo del periodo en el que el
elemento se encuentra indisponible.

43
2.2.4.2.1.3 SOBRECARGA DE EMERGENCIA DE CORTA DURACIÓN.
Aplica para la operación en contingencia, para periodos cortos inferiores a
media hora donde la ausencia de un elemento produzca incrementos
mayores de carga en el transformador que los de larga duración.

2.2.4.2.2 RIESGOS DEL AUMENTO DE LA TEMPERATURA.


Debido a que la vida útil del transformador está asociada a la serie de
eventos a los que este expuesto durante su vida, para la presente tesis se
abordara aquellos riesgos asociados al estado de carga en contingencia.

Estos riesgos son analizados en la Norma IEC 60354 y se detallan a


continuación.

2.2.4.2.2.1 RIESGOS A CORTO PLAZO.


Los riesgos a corto plazo son los siguientes:
- Riesgo de la rigidez dieléctrica por la formación de burbujas en el
papel, debido al incremento súbito de la temperatura (140°C y 160°C) del
punto caliente. Las burbujas pueden formarse también en las superficies de
partes metálicas grandes causadas por las pérdidas de flujo o por la súper
saturación del aceite
- Formación de gases cuando el aislamiento alcanza los 140°C.

- Reducción de la capacidad de soportar un cortocircuito debido al


deterioro parcial de las propiedades mecánicas.

2.2.4.2.2.2 RIESGOS A LARGO PLAZO.


Los riesgos a largo plazo son los siguientes:

44
- Riesgo de la rigidez dieléctrica por la formación de burbujas en el
papel, debido al incremento súbito de la temperatura (140°C y 160°C) del
punto caliente.

- Incremento de la resistencia de contacto del cambiador de tomas.

- Envejecimiento acelerado del aislamiento, implicando deterioro mayor


de las propiedades mecánicas debido a la exposición a altas temperaturas.

2.2.4.2.3 LIMITES DE CARGA Y TEMPERATURA.


La norma IEC 60076-7 permite definir los límites de carga y temperatura en
los transformadores de potencia inmersos en aceite y es aplicable para el
análisis de transformadores medianos de potencia trifásicos máxima de 100
MVA como se muestra en la Tabla 1.

Tabla 1. Límites de corriente y temperatura aplicables para sobrecargas


más allá de los valores nominales.
Transformadores de
Tipos de carga
potencia medianos
Ciclo normal de carga
Corriente (p.u.) 1,5
Temperatura del punto caliente del devanado y las
partes metálicas en contacto con la celulosa del material 120
aislante (°C)
Temperatura de otras partes metálicas en contacto con
140
material aislante (°C)
Temperatura del tope del aceite (°C) 105
Sobrecarga de emergencia de larga duración
Corriente (p.u.) 1,5

Temperatura del punto caliente del devanado y las


140
partes metálicas en contacto con la celulosa del material

45
aislante (°C)

Temperatura de otras partes metálicas en contacto con


160
material aislante (°C)
Temperatura del tope del aceite (°C) 115
Sobrecarga de emergencia de corta duración
Corriente (p.u.) 1,8
Temperatura del punto caliente del devanado y las
partes metálicas en contacto con la celulosa del material 160
aislante (°C)
Temperatura de otras partes metálicas en contacto con
180
material aislante (°C)
Temperatura del tope del aceite (°C) 115
Fuente: IEC 60076-7, 2005.

2.2.4.2.4 DETERMINACIÓN DE TEMPERATURAS Y REDUCCIÓN DE


LA VIDA ÚTIIL.
2.2.4.2.4.1 SIMBOLOGÍA Y ABREVIACIONES.
La Tabla 2 presenta la simbología y las abreviaciones empleadas para el
cálculo de las temperaturas.

Tabla 2. Simbología y abreviaciones.


Simbología Significado Unidades
°C Capacidad Térmica Ws/K
c Calor específico Ws/(kg*K)
DP Grado de polimerización
Gradiente de temperatura del punto caliente al tope
Hgr
del aceite
Amplitud de la variación anual de la temperatura
A °K
ambiente diaria más representativa
Amplitud de la variación diaria de la temperatura
B °K
ambiente
DX El día más caliente del año

46
H Factor del punto caliente
K Factor de carga
L Envejecimiento relativo para un periodo de tiempo horas
R Relación de pérdidas con carga a pérdidas sin carga
TX Hora más caliente del día
V Envejecimiento relativo nominal
t Tiempo variable min
ϴa Temperatura ambiente °C
ϴh Temperatura del punto caliente °C
Temperatura del tope del aceite a la carga
ϴo °C
considerada
Ƭo Constante de tiempo promedio del aceite min
ƬW Constante del devanado min
Diferencia de temperatura entre el tope del aceite y el
𝝙ϴhi °K
punto caliente al inicio
Diferencia de temperatura entre el tope del aceite y el
𝝙ϴhr °K
punto caliente a carga nominal
Aumento de temperatura en el tope del aceite a la
𝝙ϴo °K
carga considerada
Aumento de temperatura en el tope del aceite al
𝝙ϴoi °K
inicio
Aumento de temperatura en el tope del aceite en
𝝙ϴor °K
estado estacionario a pérdidas nominales
Exponente de la potencia de las pérdidas totales vs
x
el aumento de la temperatura del aceite
Exponente de potencia de corriente vs el aumento de
y
la temperatura de los devanados
Fuente: IEC 60076-7, 2005.

2.2.4.2.4.2 INCREMENTO DE LA TEMPERATURA DEL PUNTO


CALIENTE EN ESTADO ESTACIONARIO.
El diagrama térmico es asumido según la Figura 15, de modo las asunciones
simplificadas son las siguientes:

47
- La temperatura al interior del tanque incrementa linealmente del fondo
al tope, sin importar el tipo de refrigeración.

- Como una primera aproximación, el aumento de temperatura del


conductor en cualquier posición del devanado es asumido para incrementar
linealmente, paralelo al incremento de temperatura del aceite con una
diferencia constante gr entre dos líneas rectas.

- El incremento de temperatura del punto caliente es mayor que el


incremento de la temperatura del conductor al tope del devanado, porque la
tolerancia tiene que realizarse por el incremento de pérdidas, para
diferencias en el flujo de aceite local y para posible papel adicional en el
conductor. Para tomar en cuenta estas no linealidades, la diferencia en
temperatura entre el punto caliente y el tope del aceite en el tanque es igual
a H x gr, que es 𝝙ϴhr = H x gr.

48
Figura 15. Diagrama térmico
Fuente: IEC 60076-7, 2005.

Dónde:
A; es la temperatura del tope del aceite derivada como el promedio de la
temperatura en los conductos exteriores al tanque y la temperatura del
interior del tanque.
B; es la temperatura del aceite combinado en el tanque en la parte
superior del devanado.
C; es la temperatura del aceite en medio del tanque.
D; es la temperatura del devanado en su parte inferior.
E; es el fondo del tanque.
Hgr; es la diferencia de temperatura entre el punto caliente y el tope del
aceite.
P; es la temperatura del punto caliente.
Q; es la temperatura del devanado determinada por medición de
resistencia.

Eje X; temperatura
Eje Y; posiciones relativas

Punto calculado Punto medio

2.2.4.2.4.3 INCREMENTO DE LA TEMPERATURA DEL PUNTO


CALIENTE A TEMPERATURA AMBIENTE Y CARGAS VARIABLES.
La norma contempla dos formas alternativas de definir la temperatura del
punto caliente en función del tiempo, para variaciones de carga y
temperatura ambiente:

- Solución de ecuaciones exponenciales, adecuado para una variación


de carga de acuerdo a una función escalón. Este método es particularmente

49
adecuado para la determinación de los parámetros de transferencia de calor
por pruebas realizadas por fabricantes.

o Cada uno de los escalones de incremento de carga es seguido por un


escalón de decremento de carga.

o En caso de N escalones de incremento de carga sucesivos (N≥2),


cada uno de los de los primeros escalones (N-1) tienen que ser lo
suficientemente largos para que el la diferencia de temperatura entre el punto
caliente y el tope del aceite 𝝙ϴh alcance el estado de equilibrio. La misma
condiciones es válida en caso de N sucesivos escalones de decremento de
carga (N≥2).

- Solución de ecuaciones diferenciales, adecuado para variaciones


arbitrarias en el tiempo del factor de carga K y temperatura ambiente variable
en el tiempo ϴa. Este método es particularmente aplicable para monitoreo en
línea, especialmente este no tiene ninguna restricción sobre el perfil de
carga. Para que sea aplicable se requiere contar con registros de carga en
intervalos de tiempo menores a la mitad de ƬW, de manera que no aplica
para el análisis de esta tesis.

2.2.4.2.4.3.1 RESOLUCIÓN DE ECUACIONES EXPONENCIALES.


2.2.4.2.4.3.1.1 CÁLCULO DE LA TEMPERATURA AMBIENTE.
Para definir la temperatura ambiente la norma IEC 60354 emplea una
aproximación por una función sinusoidal doble, según la Ecuación 33.

2𝜋 2𝜋
𝜃𝑎 = 𝜃𝑎𝑦 + 𝐴 ∗ 𝑐𝑜𝑠 ∗ ∗ (𝑑í𝑎 − 𝐷𝑋 ) + (𝐵 ∗ 𝑐𝑜𝑠 ∗ ∗ (ℎ𝑜𝑟𝑎 − 𝑇𝑋))
365 24

Ecuación 33 Caída de tensión porcentual expresión general

50
Dónde:
𝜃𝑎𝑦 ; es la temperatura ambiente promedio anual en °C.
A; es la amplitud de la variación anual de la temperatura ambiente
promedio diaria en °K.
B; es la amplitud de la variación diaria para el cálculo de la tasa de
envejecimiento en °K.
DX; es el día más caliente del año.
TX; es la hora más caliente del día.
día; es el número del día.
hora; es la hora del día.
P; es la temperatura del punto caliente.
Q; es la temperatura del devanado determinada por medición de
resistencia.

2.2.4.2.4.3.1.2 CÁLCULO DE LA TEMPERATURA DEL PUNTO


CALIENTE.
La temperatura del punto caliente es igual a la suma de la temperatura
ambiente, el incremente de la temperatura del tope del aceite en el tanque y
la diferencia de temperatura entre el punto caliente y la temperatura del tope
del aceite en el tanque.

El incremento de temperatura a un nivel correspondiente al factor de carga K


se define en la Ecuación 34.
𝑋
1 + 𝑅 ∗ 𝐾2
𝜃ℎ (𝑡) = 𝜃𝑎 + ∆𝜃𝑂𝑖 + {∆𝜃𝑂𝑟 ∗ [ ] − ∆𝜃𝑂𝑖 } ∗ ℱ1 (𝑡) + ∆𝜃ℎ𝑖 + {Hg 𝑟 ∗ K 𝑌 − ∆𝜃ℎ𝑖 } ∗ ℱ2 (𝑡)
1+𝑅

Ecuación 34 Caída de tensión porcentual expresión general

Correspondientemente, el decremento de temperatura a un nivel


correspondiente al factor de carga K se define en la Ecuación 35.

51
𝑋 𝑋
1 + 𝑅 ∗ 𝐾2 1 + 𝑅 ∗ 𝐾2
𝜃ℎ (𝑡) = 𝜃𝑎 + ∆𝜃𝑂𝑖 ∗ [ ] + {∆𝜃𝑂𝑖 − ∆𝜃𝑂𝑟 ∗ [ ] } ∗ ℱ3 (𝑡) + ∆𝜃ℎ𝑖 + Hg 𝑟 ∗ K 𝑌
1+𝑅 1+𝑅

Ecuación 35 Caída de tensión porcentual expresión general

La función ℱ1 describe el incremento relativo de la temperatura del tope del


aceite de acuerdo al valor unitario en estado estacionario.
−𝑡
( )
ℱ1 (𝑡) = (1 − 𝑒 𝑘11 ∗Ƭo )

Ecuación 36 Caída de tensión porcentual expresión general

La función ℱ2 describe el incremento relativo de la diferencia de temperatura


entre el punto caliente del tope del aceite d de acuerdo al valor unitario en
estado estacionario. Esto modela el hecho que toma tiempo antes de que la
circulación del aceite haya adaptado su velocidad a la correspondiente al
incremento de carga.

−𝑡
−𝑡 ( Ƭo )
( )
ℱ2 (𝑡) = 𝑘21 (1 − 𝑒 𝑘22∗Ƭw ) − (𝑘21 − 1) ∗ 1 − 𝑒 𝑘22

( )
Ecuación 37 Caída de tensión porcentual expresión general

La función ℱ3 describe el decremento relativo de la temperatura del tope del


aceite de acuerdo al valor unitario en estado estacionario.
−𝑡
( )
ℱ3 (𝑡) = 𝑒 𝑘11 ∗Ƭo

Ecuación 38 Caída de tensión porcentual expresión general

Las constantes recomendadas por la norma se detallan en la Tabla 3

52
Tabla 3. Características térmicas recomendadas.
Transformadores de potencia
Características Térmicas medianos y grandes Unidades
ONAF
Exponente del aceite X 0,8
Exponente del devanado Y 1,3
Constante K11 0,5
Constante K21 2
Constante K22 2
Constante de tiempo del
150 min
aceite To
Constante de tiempo del
7 min
devanado Tw
Fuente: IEC 60076-7, 2005.

2.2.4.2.4.3.1.3 CÁLCULO DE LA PÉRDIDA DE VIDA ÚTIL.


Definidos los parámetros térmicos que impactan en el aislante sólido, es
posible calcular su envejecimiento y por consiguiente la pérdida de vida útil
del mismo debido a la exposición a altas temperaturas.

El modelo de envejecimiento térmico parte del modelo Arrhenius-Dakin, que


contempla las propiedades del material, para definir la duración de la vida y
las constantes propias del mismo.

Tomando en cuenta los materiales empleados en el aislante solido se


definen la Ecuación 39 y la Ecuación 40 para definir las tasas de
envejecimiento relativo.

(𝜃ℎ −98)
[ ]
𝑉=2 6

Ecuación 39. Tasa de envejecimiento relativo para el papel Kraft.

53
15000 15000
[ − ]
𝑉=𝑒 110+273 𝜃ℎ +273

Ecuación 40. Tasa de envejecimiento relativo para el papel térmicamente


mejorado.
Dónde:
𝜃ℎ ; es la temperatura del punto caliente en °C.

Considerando los intervalos calculados de tasa de envejecimiento relativo, es


posible calcular perdida de vida total para en un determinado periodo, y se
define en la Ecuación 41.

𝑡2 𝑁

𝐿 = ∫ 𝑉 𝑑𝑡 ≈ ∑ 𝑉𝑛 ∗ 𝑡𝑛
𝑡1 𝑛=1

Ecuación 41. Pérdida de vida sobre un cierto periodo de tiempo.

Dónde:
𝐿; es la pérdida de vida del aislamiento.
𝑉𝑛 ; es la tasa de envejecimiento relativo del aislamiento durante un
intervalo n.
𝑡𝑛 ; es el intervalo de tiempo n
𝑛; es el número de cada intervalo de tiempo.
𝑁; es el número total de intervalos en el periodo considerado.

54
3. CAPÍTULO III MARCO METODOLÓGICO.
3.1 ALCANCE DE LA INVESTIGACIÓN.
La investigación del presente trabajo pretende desarrollar un programa
computacional capaz de validar e integrar la base de datos del SCADA con
un modelo simplificado de red para poder simular por cálculos aproximados
cualquier condición en la red de 10 kV de Cochabamba, de manera que
permita determinar de fidedignamente el estado de carga de los
transformadores de potencia.
Debido a la información de demandas disponibles, es aplicable para el año
2016.

3.2 ÁREA DE INVESTIGACIÓN.


Software de simulación de flujos de potencia y determinación de sobrecargas
en transformadores de potencia 115/10 kV existentes en la red de ELFEC.

3.3 TIPO DE INVESTIGACIÓN.


Investigación científica de caso.

3.4 UNIVERSO Y MUESTRA.


- Universo: Los transformadores de potencia 115/10kV y redes de
distribución.

- Muestra: Los transformadores de potencia 115/10kV, las redes de


distribución de 10 kV a cargo de ELFEC en la ciudad de Cochabamba.

3.5 MÉTODO.
Se utilizara el método Hipotético deductivo porque es necesario para definir
modelos matemáticos simplificados a partir de ecuaciones eléctricas
generales y así poder determinar los parámetros eléctricos buscados.

55
3.6 MÉTODOS TEÓRICOS.
- El análisis será una metodología que permitirá validar las demandas
de la base de datos del SCADA e integrar a los modelos matemáticos de la
red de 10 kV existente, para definir los estados de carga en los
transformadores de potencia.

- La síntesis será una metodología aplicable para el desarrollo de


conclusiones.

3.7 MÉTODOS EXPERIMENTALES.


Se hará uso de softwares libres que permitan procesar bases de datos y
modelar redes de distribución.

3.8 MÉTODOS ESTADÍSTICOS.


Se hará uso de algoritmos de agrupamiento de datos ampliamente difundidos
en el medio científico, para validar la base de datos de demandas.

3.9 DISEÑO DE LA INVESTIGACIÓN.


Se determinaron emplear la investigación cuantitativa, ya que los resultados
del programa propuesto deben ser contrastados con el software de
simulación oficial. Para lo cual se definieron los siguientes pasos:
- Validar los datos recopilados.

- Caracterizar la red de 10 kV.

- Obtener modelos matemáticos simplificados aplicables al cálculo de la


caída de tensión y pérdidas para traspasos de carga.

- Integrar el modelo simplificado con la base de datos del SCADA


validada.

56
- Determinar estados de carga en los transformadores de potencia
según se plantee la condición.

- Determinar la pérdida de vida útil del papel en el transformador en


base a los estados de carga.

- Contrastar valores obtenidos con los flujos de potencia del software


oficial de ELFEC.

3.10 TÉCNICAS E INSTRUMENTOS DE RECOLECCIÓN DE DATOS.


La investigación del presente trabajo empleara la ficha Bibliográfica y
Documental.

3.11 TÉCNICAS DE PROCESAMIENTO Y ANÁLISIS DE DATOS.


3.11.1 CLASIFICACIÓN
Las bases de datos de demandas y las características eléctricas de las
instalaciones serán clasificadas como datos cuantitativos.

Las demandas se las clasifica como continuas y las posiciones de los


equipos de maniobra como discretas.

3.11.2 TABULACIÓN.
Los datos clasificados son tabulados en una sola tabla que los contenga que
contenga caracteres coincidentes para su posterior análisis.

Las demandas de todos los alimentadores son agrupadas en función de la


demanda horaria.

3.11.3 REGISTRO DE DATOS.

57
Se almacenan los datos en una base digital de manera que puedan ser
leídos posteriormente por lenguaje computacionales.

3.11.4 ANÁLISIS DE DATOS.


Se emplea POSTGRES (pgADMIN3) para validar de la base de datos de
demanda y la formulación de algoritmos para los modelos de red
simplificados, JAVA (NetBeans IDE) es el lenguaje empleado para la interfaz
gráfica de los resultados del modelo.

58
4. CAPÍTULO IV METODOLOGÍA DE ANÁLISIS Y APLICACIÓN.
Contar con data confiable, tener la capacidad de extraer la misma de manera
sencilla, poder visualizar el comportamiento de la red y prever el impacto en
los transformadores de potencia, permitirá conocer las limitaciones técnicas
de la red de 10 kV de Cochabamba, de manera que se puedan realizar
análisis multipropósitos. Ante la necesidad se plantea las siguientes
metodologías integradas de la Figura 16.

BASES DE
DATOS RED MT DE 10 TRANSFORMADORES DE
SCADA EN KV POTENCIA 115/10 KV
BRUTO

MODELADO
METODOLOGÍA METODOLOGÍA DE
DE ANÁLISIS DE
DE ANÁLISIS DE
TRANSFORMADORES
BD SCADA ELEMENTOS DE POTENCIA
DE LA RED

SELECCIÓN
DE
ESCENARIO

LIMITACIONES
TÉCNICAS DE LA
RED DE 10 KV

Figura 16. Metodologia general que plantea la presente tesis.


Fuente Elaboración propia.

59
4.1 METODOLOGÍA PARA EL ANÁLISIS DE BASES DE DATOS
HISTORICAS DEL SCADA
La siguiente metodología plantea afrontar la tarea de ordenar, revisar,
comparar y consolidar la data en bruto adquirida de los registros SCADA de
demandas. Persiguiendo el objetivo de obtener una data valida, se tiene que
contar con los siguientes desarrollos:
- Adquisición y orden de la Data.

- Desarrollo de un validador.

- Desarrollo de un condicionador.

Estos desarrollos son aplicables para condiciones de operación en estado


normal, es así que para un procesamiento metódico se requiere conocer si el
registro pertenece a estado normal o contingencia, esto se puede realizar
cruzando la información del estado de los elementos de maniobra con los
registros horarios, sin embargo para la fecha de extracción de la data ELFEC
no cuenta con esta información, razón por la cual se discrimina manualmente
los segmentos de data que no se comporten como estado normal y se
procede a eliminar esa data, el detalle de la tarea se encuentra en el Anexo
1. No obstante a futuro el SCADA de ELFEC debería contar con esta
discriminación que facilita los procesos analíticos de la red.

La Figura 17 ejemplifica un evento de contingencia en la red de distribución,


este evento si bien es registrado por le SCADA, no es posible identificarlo en
un manejo de bases de datos ya que no se encuentran relacionados los
estados de los elementos de maniobra con los registros horarios.

60
Figura 17. Evento de contingencia identificado en el alimentador A-1
Fuente Elaboración propia.

4.1.1 ADQUISICIÓN Y ORDEN DE LA DATA.


La adquisición de la data del servidor de ELFEC es mediante una
exportación nativa creada por el proveedor del SCADA, en este caso
SURVALENT. Esta data extraída esta en formato CSV y contempla los
campos por alimentador según la Figura 18.

61
Figura 18. Exportación BD SCADA en bruto.
Fuente Elaboración propia.

Para el procesamiento de esta data se propone una estructura de bases de


datos, que agrupe los parámetros eléctricos por alimentador según su
registro horario, este ordenamiento se expone en la Figuras 19, 20, 21 y 22.

62
Figura 19. Estructura de BD para el análisis de demanda activa.
Fuente Elaboración propia.

Figura 20. Estructura de BD para el análisis de demanda reactiva.


Fuente Elaboración propia.

63
Figura 21. Estructura de BD para el análisis de tensión de salida de los
alimentadores.
Fuente Elaboración propia.

Figura 22. Estructura de BD para el análisis de demanda en transformadores


de potencia.
Fuente Elaboración propia.

Descripción de la estructura:

64
- succes_date: Es el registro horario en el cual fue
registrado el evento en el SCADA

- mw_codigo alimentador: Es la demanda registrada en el SCADA en


Mega Watt, perteneciente al alimentador descrito para el registro
horario respectivo.

- mvar_codigo alimentador: Es la demanda registrada en el SCADA en


Mega Var, perteneciente al alimentador descrito para el registro
horario respectivo.

- kv_codigo alimentador: Es la tensión registrada en el SCADA para


la salida del alimentador en Kilo Volt, perteneciente al alimentador
descrito para el registro horario respectivo.

- mw_codigo transformador de potencia: Es la demanda registrada en


el SCADA en Mega Watt, perteneciente al transformador de potencia
descrito para el registro horario respectivo.

- mvar_codigo transformador de potencia: Es la demanda


registrada en el SCADA en Mega Var, perteneciente al transformador
de potencia descrito para el registro horario respectivo.

4.1.2 DESARROLLO DE UN VALIDADOR.


Una vez definida, consolidada y ordenada la base de datos en bruto de
demandas, se requiere que esta información esté validada como un paso de
la metodología. El validador que se plantea, toma en cuenta la estructura de
la base de datos para gestionar consultas a la misma, estas consultas o
pruebas tienen las siguientes características:
- Etapas de depuración lógica.

65
- Etapas de depuración estadística.

- Clusters.

Como resultado de este validador se debería contar con la data limpia para
en una siguiente etapa llamarla desde el condicionador para solicitar el
escenario a analizar.
La Figura 23 ilustra e flujo de trabajo del validador en su conjunto

66
Figura 23. Flujograma validación de base de datos de demandas.
Fuente Elaboración propia.

67
4.1.2.1 ELIMINACIÓN DE VALORES CERO.
Es la primera afectación a la base de datos e implica encontrar y eliminar los
valores que sean cero. La Figura 24 muestra la identificación de un
segmento con información cero que será eliminada.

La descripción de la prueba es la siguiente:


- Realizar una consulta para un segmento horario y un alimentador,
buscando si existen valores cero.

- Como resultado nos entrega si los valores cero existentes y estos son
eliminados.

- Repetir para todos los registros horarios disponibles y para todos los
alimentadores.

Para este segmento el script se encuentra en el Anexo 1.

La identificación de los valores cero deben ser descartados debido a que


estos pueden afectar las siguientes pruebas de la data, de manera que estos
registros son eliminados.

68
Figura 24. Identificación de valores cero para un registro de demanda.
Fuente Elaboración propia.

4.1.2.2 REGISTROS REPETIDOS EN EL MISMO DÍA.


Lo que se busca con la varianza es identificar si existe dispersión de la
variable para la serie de datos, es decir buscarse que no existan valores
repetidos en un registro diario. La Figura 25 muestra la identificación de un
segmento con información repetida que será eliminada.

La descripción de la prueba es la siguiente:


- Realizar una consulta para un segmento horario y un alimentador,
buscando si existen repetidos para todos los registros de un mismo
día.

- Como resultado nos entrega si el día analizado cuenta con todos los
registros repetidos, si esto sucede estos son eliminados.

- Repetir para todos los días y para todos los alimentadores.

Para este segmento el script se encuentra en el Anexo 1.

69
La identificación de los valores repetidos por un periodo de 1 día significan
errores en el registro considerando los ciclos de carga urbano, estos días
deben ser eliminados que estos pueden afectar las siguientes pruebas de la
data, de manera que estos registros son eliminados.

Figura 25. Identificacion de valores repetidos para un registro de demanda.


Fuente Elaboración propia.

4.1.2.3 PRUEBA DE NORMALIDAD DE LA DATA.


La prueba de normalidad busca identificar si segmentos de la base de datos
de demandas tienen un comportamiento por fuera de un rango de
confiabilidad, esta búsqueda se realiza por segmento horario. Esta prueba
identifica registros que se encuentren muy por fuera de la distribución
normal, para ello el algoritmo requiere la mediana del segmento de datos
analizados y comparar posteriormente los registros con la mediana en base a
la confiabilidad.

Para el análisis específico de la data se tomó un intervalo de confianza del


30%.

70
La descripción de la prueba es la siguiente:
- Ejecutar el cálculo mediana para un segmento horario y un
alimentador.

- Ejecutar la prueba de normalidad para un segmento horario y un


alimentador, tomando en cuenta el intervalo de confianza y el valor de
la mediana.

- Como resultado la prueba de normalidad nos entrega los valores que


se encuentran por fuera del intervalo de confianza, corregidos por el
valor de la mediana.

- Repetir para todos los registros horarios disponibles y para todos los
alimentadores.

Para este segmento el script se encuentra en el Anexo 1.

4.1.2.4 ANÁLISIS DBSCAN DE LA DATA.


El análisis planteado busca identificar si segmentos de la base de datos de
demandas aún cuenta con datos atípicos, esta búsqueda se realiza por
segmento horario. Este método tiene la propiedad de encontrar agrupaciones
en base a tendencias solicitadas, para ello el algoritmo a adaptar se llama
DBSCAN y para su ejecución requiere dos parámetros, Ɛ y minPoints.

Para Ɛ se define el valor de la precisión de la medida de demanda de


potencia de 0,01.

La cantidad de puntos mínimos se asumen con la siguiente ecuación.

71
𝑀𝐼𝑁𝑃𝑇𝑆 = 5 ∗ 288 ∗ 5 ∗ 0.5 = 7200
Ecuación 42. Cálculo Minpoints

Lo establecido en la ecuación 42 hace referencia a:


- La frecuencia de las lecturas, que es de 5 minutos.

- La cantidad de intervalos de tiempo lecturados en un día, que es de


288 lecturas al día.

- El ciclo de carga identificado por el sistema experto es máximo y


periódico por 5 días.

- Un factor de ajuste definido por el sistema experto que prevea la


coherencia de la información y ajuste de valores requeridos para
conformar el Cluster, que es de 0.5.

La siguiente define el procedimiento que emplea el BDSCAN para formar


grupos tomando la base de datos de demandas.

72
Figura 26. Flujograma del proceso lógico que realiza el DBSCAN adaptado.
Fuente Elaboración propia.

73
La descripción de la prueba es la siguiente:
- Ejecutar el DBSCAN para un segmento horario y un alimentador,
tomando en cuenta el radio (ε) y la densidad (minPoints).

- Como resultado nos entrega si se pudo formar un cluster, si ese es el


caso entonces toda la información que no esté dentro del cluster es
reemplazada por la mediana, en su defecto si no se formó un cluster
entonces deberá duplicar el radio (ε) y correr la prueba nuevamente.

- Los valores que se consideran ruido se los reemplaza por la mediana


previamente calculada.

- Repetir para todos los registros horarios disponibles y para todos los
alimentadores.

Para este segmento el script se encuentra en el Anexo 1.

4.1.3 DESARROLLO DE UN CONDICIONADOR DE DATOS DE


ENTRADA PARA EL MODELO SIMPLIFICADO.

Definida la metodología de validación, es posible explotar la información


almacenada y aplicarla a modelos técnicos. Para extraer esta información
representativa, se requieren establecer criterios de extracción de información,
los propuestos son los siguientes:
- La denominada configuración inicial, implica la selección de bloques
horarios.
o Bloque Alto.

o Bloque Medio.

74
o Bloque Bajo.

o Todos los bloques.

o Lectura de eventos.

o Ingreso de datos.
 Conociendo la estructura de la base de datos, es factible adaptar la
que el SCADA almacene y reproducir las pruebas previamente planteadas,
obteniendo un validador que permite analizar la data nueva en ´´tiempo
real´´, solamente limitado por la capacidad del equipo de realizar las pruebas.

Figura 27. Opciones de configuración inicial del Condicionador.


Fuente Elaboración propia.
.

- En base a la configuración seleccionada se pueden ejecutar las


siguiente acciones:
o Extracción de Máxima No Coincidental por alimentador.

o Extracción de Máxima Coincidental del Sistema.

o Extracción de Máxima Coincidental por Transformador.

75
Figura 28. Opciones de acciones a analizar del Condicionador.
Fuente Elaboración propia.

Todos los datos seleccionados previamente, son datos usualmente


requeridos para estudios técnicos, para esta tesis se orientan a los peores
escenarios que podrían ocurrir ya que se desea visualizar las limitantes de la
red y transformadores de potencia. Para este condicionador el script se
encuentra en el Anexo 2.

La integración una vez extraída la data requerida, esta es llamada por el


mímico, parametrizando en estos escenarios los siguientes criterios para el
estado normal:
- Estado de carga en transformadores de potencia.

76
Figura 29. Visor en el mímico del estado de carga del transformador de
potencia.
Fuente Elaboración propia.

- Estado de carga en salida de alimentadores y tensión de salida.

Figura 30. Visor del mímico para parámetros eléctricos en alimentadores.


Fuente Elaboración propia.

4.2 MODELADO DE ELEMENTOS DE LA RED DE DISTRIBUCIÓN DE


10 KV DE ELFEC.
La red de urbana de 10 kV a cargo de ELFEC, se encuentra definida
geograficamentes dentro del polígono azul,k según se muestra en la de la
Figura 31.

77
Figura 31. Área de cobertura de la red urbana de 10 kV de Cochabamba.
Fuente Elaboración propia.

Los alimementadores que componen esta red, nacen de tres subestaciones


de potencia con un total de 5 transformadores de potencia 115/10 kV.
La Figura 32 muestra la ubicación de las subestaciones y el trazado de los
alimentadores de la red.

78
Figura 32. Disposcion de alimentadores y subestaciones de la red urbana de 10
kV de Cochabamba.
Fuente Elaboración propia.

La característica de las redes de distribución urbanas de 10 kV propiedad de


ELFEC son de carácter radial con interconexiones, constructivamente
hablando cuentan con salidas subterráneas con cable XLPE 350 mm2 de
cobre y las troncales están construidas con conductor aéreo ACSR 336,4.

79
Analizando datos de ampacidad de estos conductores de acuerdo al Anexo
3, se resume lo siguiente:
- XLPE 350 mm2; capacidad de corriente 525 [A]. multiplicando por unos
factores de corrección para conductores en tubos, como ser la temperatura,
resistividad térmica, agrupamiento, y profundidad según catalogo se tiene:
o Para cables enterrados en terrenos a 20° C el factor de corrección
sería de 𝐾𝑇 = 1,04.

o La resistividad térmica será de 1.5K*m/W así que el factor de


corrección será 𝐾𝑅 = 1.

o Considerando el factor de corrección para una distancia entre


conductores de 40cm 𝐾𝐴 = 0,87.

o Considerando la profundidad de la segunda terna a 60 cm del suelo


con un factor 𝐾𝑃 = 1,06.

De manera que se tiene una corriente máxima de


𝐼 ′ = 𝐼𝐶𝐴𝑇𝐴𝐿𝑂𝐺𝑂 ∗ 𝐾𝑇 ∗ 𝐾𝑅 ∗ 𝐾𝐴 ∗ 𝐾𝑃 = 503 [𝐴]

- ACSR 336,4; capacidad de corriente 471 [A].

Se evidencia que la limitante en corriente está dada por el conductor aéreo.

Para analizar de manera simplificadas las redes de distribución es necesario


contar con un mímico, este deberá contener identificadas las troncales,
puntos de interconexión o puntos de maniobra de interés, con referencias de
calles para una fácil identificación.

80
Para poder sintetizar los alimentadores es necesario mapear en un mímico
los puntos de interconexión y los tramos intermedios de importancia.
Los elementos de interconexión mapeados son 52 (N/A) y estos deben estar
referidos a los dos alimentadores en estado normal, para lo que en total
serian 104 datos de tensión en puntos de interconexión, los elementos
referidos son los siguientes:
- A-830 - C-5X - C-0Z
- A-1L - C-5X - C-0X
- A-191 - C-3F - L-325XX
- A-190 - C-4X - C-0Z
- L-5X - C-3F - C-0X
- A-830 - C-4X - L-325XX
- A-1L - A-8X - C-8X
- A-191 - A-8X - L-2X
- A-190 - C-1X - C-8X
- L-5X - C-3X - L-2X
- L-3X - C-1X - C-9X
- L-3X - C-3X - C-9X
- A-4X - C-5L - L-3B
- A-4X - C-5L - L-3B
- A-9X - C-513 - L-4X
- A-5X - C-513 - L-4X
- A-9X - C-7G
- A-5X - C-7G

Los elementos de maniobra intermedios permiten dividir la carga y seccionar


tramos que requieren aislarse para algún trabajo requerido, estos elementos
mapeados son 30 (N/C), los elementos referidos son los siguientes:
- A-1A - A-4I
- A-2R - A-5R

81
- A-720 - C-020 HJ
- A-9R - C-3D
- A-990 - C-3R
- A-603 - C-3L
- A-835 - C-6Q
- A-8R - C-8C
- C-1R - C-916
- C-1T - C-9R
- C-5A - L-2R
- C-5E - L-3R
- C-7I - L-4R
- A-3E - L-5R
- C-020 AA - L-545

La interfaz planteada de manera simplificada se trabaja desde la base de


datos cambiando el estado de operación de los elementos de maniobra, la
Figura 33 representa la estructura de base de datos a emplearse.

Figura 33. Elementos de maniobra para análisis de contingencia.


Fuente Elaboración propia.

82
Para analizar de manera simplificadas las redes de distribución es necesario
contar con un mímico, este deberá contener identificadas las troncales,
puntos de interconexión o puntos de maniobra de interés, con referencias de
calles para fácil orientación y denotando todos los elementos de maniobra
previamente mencionados, la Figura 34 representa el mímico a emplearse
(Anexo 5).

83
Figura 34. Mimico de la red de distribución de 10 kV de Cochabamba.
Fuente Elaboración propia.

84
Donde se tiene identificadas las subestaciones, transformadores de potencia,
alimentadores y los recursos de maniobra e interconexión.

4.2.1 LIMITANTES TÉCNICAS PARA LAS REDES DE DISTRIBUCIÓN EN


CONSIDERACIÓN.
Definido el mímico, se requiere definir las características de caída de tensión
para los puntos de interconexión y las limitantes de carga. De manera que
puedan reproducir los eventos de la red y sirvan para identificar las limitantes
de la red.

4.2.1.1 ESTADOS DE CARGA EN ALIMENTADORES EN ESTADO


NORMAL.
Definido que la limitante se encuentra en la ampacidad del conductor aéreo,
el estado de carga se define de la siguiente manera:
𝑃 = 𝐼 ∗ √3 ∗ 𝑉 ∗ 𝑐𝑜𝑠𝜌
𝑃 = 471 ∗ √3 ∗ 10,25 ∗ 1

𝑃 = 8,36 𝑀𝑉𝐴

Es así que las demandas registradas se compararan con el valor


previamente definido. Este cálculo se va a realizar para todos los
alimentadores.

4.2.1.2 CAÍDA DE TENSIÓN EN ALIMENTADORES EN ESTADO


NORMAL.
La caída de tensión en estado normal para los análisis simplificados y
establecida la metodologia de cálculo procedemos al calculo de la caida de
tensión utilizando el metodo de cargas distribuidas, ya que este seria el
metodo que mejor se ajusta a los datos proporcionados:

85
Como caso de analisis utilizaremos los datos del alimentador C-3
Determinamos la corriente que cirulara en hora pico, tomando el valor de la
demando 6,163 MW con un factor de potencia de 0.974.
𝑃
𝐼=
√3 ∗ 𝑉 ∗ 𝑐𝑜𝑠𝜌
6163
𝐼𝐶−3 =
√3 ∗ 10.2 ∗ 0.974

𝐼𝐶−3 = 358.15 𝐴
Determinamos el senp
𝑐𝑜𝑠𝜌 = 0.974
𝜌 = 13.09
𝑠𝑒𝑛𝜌 = 0.226

Determinamos los otros parametros que seran los mismos para todos los
alimentadores ya que se manejan los mismos calibres y solo la longitud y la
corriente seran las variables.

La Resistencia del conductor Aereo y Subterraneo la obtenemos de tablas de


catalogo, para los calibres normalizados de ACSR 336 y XLPE 350.
𝑜ℎ𝑚
𝑟𝑎𝑒𝑟𝑒𝑜 = 0.204 [ ]
𝑘𝑚
𝑜ℎ𝑚
𝑟𝑠𝑢𝑏𝑡𝑒𝑟𝑟𝑎𝑛𝑒𝑜 = 0.084 [ ]
𝑘𝑚

La Reactancia para conductores aereos se calcula tomando como estructura


base el VC-1(unidad constructiva- NT 011), para determinar la separacion de
conductores en esta estructura con una cruceta de 2.44m.
𝑜ℎ𝑚
𝑥𝑎𝑒𝑟𝑒𝑜 = 0.412 [ ]
𝑘𝑚

86
La Reactancia para conductores subterraneos la sacamos de tablas de
catálogo.
𝑜ℎ𝑚
𝑥𝑠𝑢𝑏𝑡𝑒𝑟𝑟𝑎𝑛𝑒𝑜 = 0.189 [ ]
𝑘𝑚

Con los parametros previamente calculados realizamos el calculo de caída


de tensión para cargas distribuidas en el punto de interconexión A-5X.

∆𝑉
[(𝑟𝑎𝑒𝑟𝑒𝑜 ∗ 𝑐𝑜𝑠𝜌 + 𝑥𝑎𝑒𝑟𝑒𝑜 ∗ 𝑠𝑒𝑛𝜌) ∗ 𝑙𝑜𝑛𝑔𝑖𝑡𝑢𝑑𝑎𝑒𝑟𝑒𝑜 + (𝑟𝑠𝑢𝑏𝑡𝑒𝑟𝑟𝑎𝑛𝑒𝑜 ∗ 𝑐𝑜𝑠𝜌 + 𝑥𝑠𝑢𝑏𝑡𝑒𝑟𝑟𝑎𝑛𝑒𝑜 ∗ 𝑠𝑒𝑛𝜌) ∗ 𝑙𝑜𝑛𝑔𝑖𝑡𝑢𝑑𝑠𝑢𝑏𝑡𝑒𝑟𝑟𝑎𝑛𝑒𝑜 ] ∗ 𝐼 ∗ √3
=
2

∆𝑉
[(0.208 ∗ 0.974 + 0.412 ∗ 0.226) ∗ 4.7 + (0.084 ∗ 0.974 + 0.189 ∗ 0.226) ∗ 0.6] ∗ 358.15 ∗ √3
=
2

∆𝑉 = 451.9 𝑉

Determinamos el voltaje FF en la cola del alimentador


𝑉𝐹𝐹 = 10200 − ∆𝑉
𝑉𝐹𝐹 = 10200 − 451.9
𝑉𝐹𝐹 = 9748.1 𝑉

Anticipando el apartado de validación se muestra el valor calculado para este


escenario con el software oficial. Para ver el detalle de otros alimentadores
ver el apartado 5.3. La siguiente Figura muestra la caída de tensión
calculada en la cola del alimentador C-3 en la posición abierta del
seccionador A-5X.

87
Figura 35. Resultado de la operación en estado normal alimentador C-3.
Fuente WINDMIL MILSOFT.

La comparación de los resultados de tensión en cola del alimentador C-3


entre el modelo simplificado y el análisis realizado por el software oficial se
muestra en la siguiente tabla.

88
Tabla 4. Comparación de resultado del modelo simplificado en estado
normal alimentador C-3 con el resultado del software oficial.
Tensión F-F en el
Demanda analizada
elemento de maniobra
Tipo de Análisis [MW]
N/A [kV]
C-3 Seccionador A-5X
Software Oficial 6,162 9,784
Modelo Simplificado 6,163 9,748

Fuente: Elaboración propia.

El error porcentual de tensiones entre el modelo simplificado y el análisis


realizado por el software oficial se muestra en la siguiente tabla.

Tabla 5. Error porcentual entre el modelo simplificado en estado normal


alimentador C-3 con el resultado del software oficial.
Tensión Modelo Tensión Software
Simplificado F-F oficial F-F en el
Error
en el elemento de elemento de
porcentual [%]
maniobra N/A [kV] maniobra N/A [kV]
Seccionador A-5X Seccionador A-5X
9,748 9,784 0,37

Fuente: Elaboración propia.

El bajo error porcentual evidencia la capacidad del modelo en estado normal.

La metodología de cálculo se aplica a los demás alimentadores, el scritp se


encuentra en el Anexo 3.

4.2.1.3 ESTADO DE CARGA EN ALIMENTADORES EN ESTADO DE

89
CONTINGENCIA.
Aplicando lo propuesto en el apartado 2.2.3.1 se calcula la caída de tensión
para contingencia en el alimentador L-1, una falla cerca de la subestación T-
390, lo que lo dejaría sin suministro y podría utilizar el recurso que tiene con
el alimentador C-9 (punto de maniobra C-9X).

Las demandas en estado normal para ambos alimentadores son los


siguientes:
- El alimentador C-3 con una demanda de 6,163 MW, con un factor de
potencia de 0,974.

- El alimentador A-5 con una demanda de 3,675 MW, con un factor de


potencia de 0,955.

Determinamos la corriente que cirulara en hora pico por los alimentadores A-


5 en estado normal.

𝑃 3675
𝐼𝐴−5 = = = 218 [𝐴]
√3 ∗ 𝑉 ∗ 𝑐𝑜𝑠𝜌 √3 ∗ 10.2 ∗ 0.955

90
Figura 36. Resultado de la operación en estado normal alimentador C-3 y A-5.
Fuente WINDMIL MILSOFT.

De esa manera el alimentador A-5 tendría q tomar toda la carga del


alimentador C-3. Para lo que se hace uso de la ecuación Pérdidas de
potencia por fase para transferencias de carga considerando cargas
uniformemente distribuidas, determinamos lo siguiente:

𝑃é𝑟𝑑𝑖𝑑𝑎𝑠 𝑑𝑒 𝑝𝑜𝑡𝑒𝑛𝑐𝑖𝑎 𝑝𝑜𝑟 𝑓𝑎𝑠𝑒(𝑊𝑎𝑡𝑡𝑠) =


𝐼1 2 ∗ 𝑟 ∗ 𝐿1 2 𝐼2 2 ∗ 𝑟 ∗ 𝐿2
[ )
+ 𝐼2 ∗ cos(𝜃2 − 𝜃1 ∗ 𝑟 ∗ 𝐼1 ∗ 𝐿1 + 𝐼2 ∗ 𝑟 ∗ 𝐿1 ] +
3 3

Aplicando lo anteriormente propuesto se calculó una transferencia de carga


del alimentador C-3 al A-5.
Usando los datos de las potencias de los alimentadores A-5 y C-3.
Determinamos primeramente el triángulo de potencias para realizar la suma
vectorial.

91
Datos A-5

I=216.8 A
Cosp=0.955
S=3849 Senp=0.297
KVA Q=1143
KVAR
P=3675
KWATT

C-3

S=6328 I=356.3 A
KVA Q=1436 Cosp=0.974
KVAR Senp=0.227

P=6163
KWATTS

Sumando las potencias obtenemos la potencia en el alimentador

S=10170 KVA
A
Q=2579
KVAR

P=9838KWATTS

Para la contingencia tenemos:

𝑃𝑒𝑟𝑑𝑖𝑑𝑎𝑠 𝑑𝑒 𝑝𝑜𝑡𝑒𝑛𝑐𝑖𝑎 𝑝𝑜𝑟 𝑓𝑎𝑠𝑒(𝑊𝑎𝑡𝑡𝑠)


(218)2 ∗ (0.208) ∗ 4.9
=[ + 358.3 ∗ cos(cos −1 0.974 − cos−1 0.955)
3
(358)2 ∗ 0.208 ∗ 5.3
∗ 0.208 ∗ 218 ∗ 4.9 + (358)2 ∗ 0.208 ∗ 4.9] +
3

92
= 2700656[𝑊𝑎𝑡𝑡𝑠]
= 270.656 [𝐾𝑖𝑙𝑜 𝑊𝑎𝑡𝑡𝑠]

Al tratarse de un sistema trifásico multiplicamos por tres:


= 273.199 ∗ 3
= 0.819[𝑀𝑒𝑔𝑎 𝑊𝑎𝑡𝑡𝑠]

Es necesario realizar el cálculo de las pérdidas de potencia reactivas, para


eso se reemplaza la ecuación previamente utilizada de la siguiente manera:

𝑃𝑒𝑟𝑑𝑖𝑑𝑎𝑠 𝑑𝑒 𝑝𝑜𝑡𝑒𝑛𝑐𝑖𝑎 𝑟𝑒𝑎𝑐𝑡𝑖𝑣𝑎 𝑝𝑜𝑟 𝑓𝑎𝑠𝑒(𝑉𝑎𝑟)


𝐼1 2 ∗ 𝑥 ∗ 𝐿1
=[ + 𝐼2 ∗ sen(𝜃2 − 𝜃1 ) ∗ 𝑥 ∗ 𝐿1 ∗ 𝐼1 + 𝐼2 2 ∗ 𝑥 ∗ 𝐿1 ]
3
𝐼2 2 ∗ 𝑥 ∗ 𝐿2
+
3

(218)2 ∗ (0.412) ∗ 4.9


=[ + 358 ∗ sen(sen−1 0.227 − sen−1 0.297) ∗ 0.412 ∗ 218
3
(358)2 ∗ 0.412 ∗ 5.3
∗ 4.9 + (358)2 ∗ 0.412 ∗ 4.9] +
3

= 372583 [𝑉𝑎𝑟]
= 372.583[𝐾𝑖𝑙𝑜 𝑉𝑎𝑟]
Al tratarse de un sistema trifásico multiplicamos por tres:
= 372.583 ∗ 3
= 1.117[𝑀𝑒𝑔𝑎 𝑉𝑎𝑟]
Sumando las pérdidas al triangulo de potencias tenemos:

93
Q=2.579+1.117
MVAR

P=9.838+0.819 MWATTS

I=672 A
Cosp=0.948
Senp=0.327

Comparando con los resultados de la simulación (Figura 37)

Figura 37. Resultado de la operación en estado de contingencia alimentador C-


A-5 toma toda la carga de C-3.
Fuente WINDMIL MILSOFT.

94
El error porcentual de tensiones entre el modelo simplificado y el análisis
realizado por el software oficial se muestra en la siguiente tabla.

Tabla 6. Error porcentual entre el modelo simplificado en estado


contingencia alimentadores A-5 y C-3 con el resultado del software
oficial.
Demanda Salida Demanda Salida
Modelo Modelo Software Error
ALIMENTADOR
Simplificado [MVA] [MVA] porcentual [%]
Alimentador A-5 Alimentador A-5
A-5 toma C-3 11,28 11,52 2,08

Fuente: Elaboración propia.

El bajo error porcentual evidencia la capacidad del modelo en estado de


contingencia.

La metodología de cálculo se aplica a los demás alimentadores, el scritp se


encuentra en el Anexo 3.

4.2.1.4 CAÍDA DE TENSIÓN EN ALIMENTADORES EN ESTADO DE


CONTINGENCIA.
Aplicando lo propuesto en el apartado 2.2.3.2 se calcula la caída de tensión
para contingencia en el alimentador L-1, una falla cerca de la subestación T-
390, lo que lo dejaría sin suministro y podría utilizar el recurso que tiene con
el alimentador C-9 (punto de maniobra C-9X).

Las demandas en estado normal para ambos alimentadores son los


siguientes:
- El alimentador C-9 con una demanda de 5,838 MW, con un factor de
potencia de 0,965.

95
- El alimentador L-1 con una demanda de 1,598 MW, con un factor de
potencia de 0,995.

Determinamos la corriente que cirulara en hora pico por los alimentadores C-


9 y L-1 en estado normal.

𝑃 5838
𝐼𝐶−9 = = = 343 [𝐴]
√3 ∗ 𝑉 ∗ 𝑐𝑜𝑠𝜌 √3 ∗ 10.2 ∗ 0.964

𝑃 1598
𝐼𝐿−1 = = = 91 [𝐴]
√3 ∗ 𝑉 ∗ 𝑐𝑜𝑠𝜌 √3 ∗ 10.2 ∗ 0.995

De esa manera el alimentador C-9 tendría q tomar toda la carga del


alimentador L-1. Para lo que se hace uso de la ecuación caída de tensión en
alimentadores compuestos energizados desde un mismo punto,
determinamos lo siguiente:

∆𝑉𝑇 = ∆𝑉1 + 𝑉3 + ∆𝑉2

En el alimentador #2 usando carga distribuida (El que cede carga L-1):


∆𝑉2
(((0.208 ∗ 0.965) + (0.412 ∗ 0.26)) ∗ 2.2) + (((0.084 ∗ 0.965) + (0.189 ∗ 0.26)) ∗ 0)) ∗ (91) ∗ √3
=
2

∆𝑉2 = 25 [𝑉𝑜𝑙𝑡𝑠]

En el alimentador #1 (El que toma carga C-9): ∆𝑉1 + 𝑉3


Carga concentrada del alimentador #2 en el punto V3: 𝑉3 = 𝑍1 ∗ 𝐿1 ∗ 𝐼2

96
𝑉3 = (((0.208 ∗ 0.974) + (0.412 ∗ 0.23)) ∗ 4.43) + (((0.084 ∗ 0.9774) + (0.189
∗ 0.23)) ∗ 0.2)) ∗ (91) ∗ √3

𝑉3 = 102[𝑉𝑜𝑙𝑡𝑠]

En el alimentador #2 usando carga triangular (C-9):

∆𝑉1
(((0.208 ∗ 0.965) + (0.412 ∗ 0.26)) ∗ 4.43) + (((0.084 ∗ 0.965) + (0.189 ∗ 0.26)) ∗ 0.2)) ∗ (343) ∗ 2 ∗ √3
=
3

∆𝑉1 = 318[𝑉𝑜𝑙𝑡𝑠]

Ahora reemplazamos en la siguiente ecuacion:

∆𝑉𝑇 = ∆𝑉1 + 𝑉3 + ∆𝑉2


∆𝑉𝑇 = 318 + 102 + 25
∆𝑉𝑇 = 445 [𝑉𝑜𝑙𝑡𝑠]

Si sabiendo que la tensión de salida es de 10,2 kV permanente, entonces


restamos para saber la caida en cola de linea:

𝐶𝑎𝑖𝑑𝑎 𝑑𝑒 𝑡𝑒𝑛𝑠𝑖𝑜𝑛𝐶𝑂𝐿𝐴 𝐷𝐸 𝐿𝐼𝑁𝐸𝐴 = 𝑇𝑒𝑛𝑠𝑖𝑜𝑛 𝑑𝑒 𝑠𝑎𝑙𝑖𝑑𝑎 − ∆𝑉𝑇


𝐶𝑎𝑖𝑑𝑎 𝑑𝑒 𝑡𝑒𝑛𝑠𝑖𝑜𝑛𝐶𝑂𝐿𝐴 𝐷𝐸 𝐿𝐼𝑁𝐸𝐴 = 10200 − 445
𝐶𝑎𝑖𝑑𝑎 𝑑𝑒 𝑡𝑒𝑛𝑠𝑖𝑜𝑛𝐶𝑂𝐿𝐴 𝐷𝐸 𝐿𝐼𝑁𝐸𝐴 = 9755[𝑉𝑜𝑙𝑡𝑠]

Anticipando el apartado de validación se muestra el valor calculado para este


escenario con el software oficial. Para ver el detalle de otros alimentadores
ver el apartado 5.3. La siguiente Figura muestra la caída de tensión

97
calculada en la cola del alimentador C-3 en la posición abierta del
seccionador A-5X.

Figura 38. Resultado de la operación en estado normal alimentador C-9 y L-1


Fuente WINDMIL MILSOFT.

La comparación de los resultados de tensión en cola del alimentador C-3


entre el modelo simplificado y el análisis realizado por el software oficial se
muestra en la siguiente tabla.

98
Tabla 7. Comparación de resultado del modelo simplificado en estado
normal alimentadores C-9 y L-1 con el resultado del software oficial.
Tensión F-F en el
Demanda analizada
elemento de maniobra
Tipo de Análisis [MW]
N/A [kV]
C-9 Y L-1 Seccionador C-9X
Software Oficial C-9 5,836 9,814
Modelo Simplificado
5,838 9,88
C-9
Software Oficial L-1 1,598 10,167
Modelo Simplificado
1,598 10,17
L-1

Fuente: Elaboración propia.

El error porcentual de tensiones entre el modelo simplificado y el análisis


realizado por el software oficial se muestra en la siguiente tabla.

Tabla 8. Error porcentual entre el modelo simplificado en estado normal


alimentadores C-9 y L-1 con el resultado del software oficial.
Tensión Modelo Tensión Software
Simplificado F-F oficial F-F en el
Error
Alimentador en el elemento de elemento de
porcentual [%]
maniobra N/A [kV] maniobra N/A [kV]
Seccionador C-9X Seccionador C-9X
C-9 9,88 9,814 0,67
L-1 10,17 10,167 0,03

Fuente: Elaboración propia.

El bajo error porcentual evidencia la capacidad del modelo en estado normal.

99
Figura 39. Resultado de la operación en estado de contingencia alimentador C-
9 toma toda la carga de L-1.
Fuente WINDMIL MILSOFT.

El error porcentual de tensiones entre el modelo simplificado y el análisis


realizado por el software oficial se muestra en la siguiente tabla.

100
Tabla 9. Error porcentual entre el modelo simplificado en estado normal
alimentadores C-9 y L-1 con el resultado del software oficial.
Tensión Modelo Tensión Software
Simplificado F-F oficial F-F en el
Error
Alimentador en el elemento de elemento de
porcentual [%]
maniobra N/A [kV] maniobra N/A [kV]
Seccionador C-9X Seccionador C-9X
C-9 toma L-1 9,6 9,755 1,61

Fuente: Elaboración propia.

El bajo error porcentual evidencia la capacidad del modelo en estado de


contingencia.

La metodología de cálculo se aplica a los demás alimentadores, el scritp se


encuentra en el Anexo 4.

4.3 METODOLOGÍA PARA ANALIZAR LOS CICLOS DE CARGA DE


TRANSFORMADORES DE POTENCIA QUE ALIMENTAN LA RED DE
DISTRIBUCIÓN.
La lectura de eventos permite obtener datos de demandas coincidentales y
visualizar los ciclos de carga en cada uno de los transformadores de
potencia. Con esta data ya es posible estimar los efectos en los
transformadores, tanto para estado normal como para contingencia, ya sea
estimar el efecto de estos ciclos de carga sobre el alimentador durante los
eventos ya registrados, como también para estimar posibles actuaciones en
la red MT que conllevarían sobrecargas y aceleración de la perdida de vida
útil en los transformadores de potencia.

4.3.1 ESTADOS DE CARGA EN TRANSFORMADORES DE POTENCIA Y


PÉRDIDA DE VIDA ÚTIL.

101
Los estados de carga en transformadores de potencian están ligados
directamente a los alimentadores a los que estos alimenten para el periodo
de análisis, si bien el estado de carga en un escenario de operación real se
define con la demanda coincidental de sus alimentadores, también se
consideran los análisis para demandas definidas por el condicionador.

Así mismo es necesario conocer las pérdidas en los transformadores de


potencia, ya que las características de los transformadores de potencia de la
red 115/10 kV de ELFEC ante la ausencia de un modelado de pérdidas en el
modelo de WINDMIL o en el modelo de operaciones PowerFactory del
CNDC, se asume lo siguiente:
- Las pérdidas totales para los 5 transformadores de potencia serán del
0,7% de su potencia nominal, de acuerdo a la Figura 39.

Figura 40. Pérdidas totales máximas en el dimensionamiento de un


transformador de potencia.
Fuente Especificación Técnica, ABB Brasil, PG Division, Transformadores.

102
De manera que la carga evaluada para cada transformador de potencia
obedecerá el script del Anexo 3 para estado normal y el script del Anexo 4
para estado de contingencia.

Si bien dentro los ajustes de protección del transformador cuentan con relees
de temperatura y sobrecarga, para esta tesis se van a despreciar sus
acciones ya que se busca poder calcular la pérdida de vida útil relacionada al
estado de carga. Es así que para el cálculo, se toman las siguientes
consideraciones ambientales requeridas (Anexo 6):
- Temperatura Ambiente Media Anual °C =18,66.

- Temperatura Ambiente Máxima Absoluta °C=35,3.

- Temperatura Ambiente Mínima Absoluta °C=4.

- Temperatura Ambiente Media de Máximas del mes más Caluroso °C


(Enero)=25.

- Temperatura Ambiente Media Diaria del mes más Caluroso °C


(Enero)=20,69.

- Día más caluroso del Año=31.

- Hora más calurosa del día=14.

El cálculo debe tanto para estado normal como para contingencia se realiza
según lo establecido en el apartado 2.2.4.2.4.3

De manera que los cálculos a aplicar son los siguientes

103
- Cálculo de la temperatura ambiente corregida para cada registro
horario y fecha respectiva.
2𝜋 2𝜋
𝜃𝑎 = 𝜃𝑎𝑦 + 𝐴 ∗ 𝑐𝑜𝑠 ∗ ∗ (𝑑í𝑎 − 𝐷𝑋 ) + (𝐵 ∗ 𝑐𝑜𝑠 ∗ ∗ (ℎ𝑜𝑟𝑎 − 𝑇𝑋))
365 24

- Cálculo de la temperatura del punto caliente.


𝑋
1 + 𝑅 ∗ 𝐾2
𝜃ℎ (𝑡) = 𝜃𝑎 + ∆𝜃𝑂𝑖 + {∆𝜃𝑂𝑟 ∗ [ ] − ∆𝜃𝑂𝑖 } ∗ ℱ1 (𝑡) + ∆𝜃ℎ𝑖 + {Hg 𝑟 ∗ K 𝑌 − ∆𝜃ℎ𝑖 } ∗ ℱ2 (𝑡)
1+𝑅
𝑋 𝑋
1 + 𝑅 ∗ 𝐾2 1 + 𝑅 ∗ 𝐾2
𝜃ℎ (𝑡) = 𝜃𝑎 + ∆𝜃𝑂𝑖 ∗ [ ] + {∆𝜃𝑂𝑖 − ∆𝜃𝑂𝑟 ∗ [ ] } ∗ ℱ3 (𝑡) + ∆𝜃ℎ𝑖 + Hg 𝑟 ∗ K 𝑌
1+𝑅 1+𝑅
−𝑡
( )
ℱ1 (𝑡) = (1 − 𝑒 𝑘11 ∗Ƭo )

−𝑡
−𝑡 ( Ƭo )
( )
ℱ2 (𝑡) = 𝑘21 (1 − 𝑒 𝑘22∗Ƭw ) − (𝑘21 − 1) ∗ 1 − 𝑒 𝑘22

( )
−𝑡
( )
ℱ3 (𝑡) = 𝑒 𝑘11∗Ƭo

- Cálculo de la pérdida de vida útil


o Emplear el cálculo tasa de envejecimiento relativa para el papel Kraft.
(𝜃ℎ −98)
[ ]
𝑉=2 6

𝑡2 𝑁

𝐿 = ∫ 𝑉 𝑑𝑡 ≈ ∑ 𝑉𝑛 ∗ 𝑡𝑛
𝑡1 𝑛=1

Ejemplificando el cálculo con estos parámetros ambientales, se extrae data


de la base de datos validada del transformador T-390 para la identificación
de pérdida de vida útil y temperatura del punto caliente.

104
El resultado de la estimación del punto caliente para un ciclo de carga normal
se muestra en la Figura 40.

Figura 41. Pérdidas temperatura del punto caliente y temperatura del tope del
aceite para un ciclo de carga normal del transformador T-390.
Fuente Elaboración propia.

El resultado de la estimación del punto caliente para dos ciclos de carga


normal se muestra en la Figura 41.

Figura 42. Pérdidas temperatura del punto caliente y temperatura del tope del
aceite para dos ciclos de carga normal del transformador T-390.
Fuente Elaboración propia.

105
El resultado de la estimación del punto caliente para siete ciclos de carga
normal se muestra en la Figura 42.

Figura 43. Pérdidas temperatura del punto caliente y temperatura del tope del
aceite para siete ciclos de carga normal del transformador T-390.
Fuente Elaboración propia.

Los valores estimados del punto caliente permiten encontrar la pérdida de


vida útil. El resultado de la estimación de la pérdida de vida útil para siete
ciclos de carga normal se muestra en la Figura 43.

Figura 44. Pérdidas de vida acumulada para siete ciclo de carga normal del
transformador T-390.
Fuente Elaboración propia.

106
.
Debido a que se tratan de escenarios en estado normal la pérdida de vida útil
es baja.
Es evidente que a mayor sea la cantidad de ciclos analizados, será más
difícil poder estudiar la gráfica resultante es así que para estos escenarios
mayores a siete ciclos de carga, se deberá ejecutar el Script del Anexo 4.

107
5. CAPÍTULO IV ANÁLISIS DE RESULTADOS.
Los resultados de procesamiento de la base datos conllevaron los siguientes
tiempos:
- Eliminación de registros cero: 25 min.

- Eliminación de registros repetidos: 125 min.

- Prueba de normalidad y ajustes de la data: 3600 min.

- Prueba DBSCAN y ajustes de la data: 2880 min.

Si bien los tiempos acumulados son relativamente extensos, hay que


considerar que este procedimiento solo se lo realizara una única vez con la
data, es decir no se requiere volver a correr el validador para analizar un
escenario propuesto por el condicionador, a no ser que se trate de data
nueva masiva.

La capacidad del programa computacional es amplia, de manera que


analizar todos los escenarios no es algo práctico de plasmar en un solo texto.

Por lo tanto se considerará para el análisis de la operación en estado normal


las condiciones de Demanda Máxima No Coincidental, Demanda Máxima
Coincidental del Sistema, Demanda Máxima Coincidental por Subestación
(para la data almacenada), para posteriormente validar estos resultados con
el software oficial.

Para el análisis de la operación en estado de contingencia, se plantearan la


salida de los cinco transformadores desenergizándolos uno por uno, ya que
esto representaría un escenario N-1 aplicable, permitiendo conocer el
comportamiento de la red de media tensión de 10 kV y la carga máxima de

108
los transformadores de potencia. Para el análisis de las contingencias se
empleo la demanda máxima no coincidental (para la data almacenada). De
igual manera que en para el análisis en estado normal se deben validar estos
resultados con el software oficial.

Como se evidencio anteriormente la pérdida de vida útil durante ciclos de


carga normal es poco atractivo para la demostración de la capacidad del
programa, por lo que en este escenario planteado, se estimará la pérdida de
vida útil de los transformadores de potencia empleando la demanda máxima
registrada en la contingencia y aplicando lo descrito en la norma IEC 60076-
7, 2005 para una Sobrecarga de emergencia de corta duración (1,8 p.u.).

5.1 RESULTADOS DE LA OPERACIÓN EN ESTADO NORMAL.


5.1.1 CONDICIONES DE LA SIMULACIÓN.
Empleando el Condicionador, se define lo siguiente:
- Seleccionar en configuración el análisis de la data para todos los
bloques horarios.

Figura 45. Selección de bloques horarios en la simulación.


Fuente Elaboración propia.

109
- En Acciones ejecutar la minería de datos para (Figura 46):
o Demanda Máxima No Coincidental.

o Demanda Máxima Coincidental Del Sistema.

o Demanda Máxima Coincidental por Subestación.

Figura 46. Selección de opciones de minería de datos en la simulació.


Fuente Elaboración propia.

- En Acciones ejecutar reporte para cada escenario.

5.1.1.1 REPORTES DE REDES MT Y TRANSFORMADORES.


Para el análisis de la Demanda Máxima No Coincidental, la Figura 47
muestra el resultado en el mímico.

110
Figura 47. Simulación resultante en el mímico, posterior a la configuración de los tres bloques horarios y la demanda
máxima no coincidental.
Fuente Elaboración propia.

111
En el mímico son identificables los estados de carga en transformadores de
potencia, en alimentadores y las caídas de tensión en elementos de
maniobra, si esta data desea ser analizada por fuera, es posible generar un
reporte en formato .txt se muestra en la Figura 48.

Para ver la validación de resultados ir al apartado 5.3

Figura 48. Reporte resultante en formato txt., posterior a la configuración de


los tres bloques horarios y la demanda máxima no coincidental.
Fuente Elaboración propia.

Para el análisis de la Demanda Máxima Coincidental del Sistema, la Figura


49 muestra el resultado en el mímico.

112
Figura 49. Simulación resultante en el mímico, posterior a la configuración de los tres bloques horarios y la demanda
máxima coincidental del sistema.
Fuente Elaboración propia.

113
En el mímico son identificables los estados de carga en transformadores de
potencia, en alimentadores y las caídas de tensión en elementos de
maniobra, si esta data desea ser analizada por fuera, es posible generar un
reporte en formato .txt se muestra en la Figura 50.

Figura 50. Reporte resultante en formato txt., posterior a la configuración de


los tres bloques horarios y la demanda máxima coincidental del sistema.
Fuente Elaboración propia.
.

Para el análisis de la Demanda Máxima Coincidental por Subestación, la


Figura 51 muestra el resultado en el mímico.

114
Figura 51. Simulación resultante en el mímico, posterior a la configuración de los tres bloques horarios y la demanda
máxima coincidental por subestación.
Fuente Elaboración propia.

115
En el mímico son identificables los estados de carga en transformadores de
potencia, en alimentadores y las caídas de tensión en elementos de
maniobra, si esta data desea ser analizada por fuera, es posible generar un
reporte en formato .txt se muestra en la Figura 52.

Figura 52. Reporte resultante en formato txt., posterior a la configuración de


los tres bloques horarios y la demanda máxima coincidental por subestación.
Fuente Elaboración propia.

Para ver la validación de resultados ir al apartado 5.3

5.1.2 VALIDACIÓN DE LOS RESULTADOS PARA EL ESTADO NORMAL.


La siguiente tabla resume las validaciones en estado normal para la
demanda máxima no coincidental de los alimentadores de 10 kV.

116
Tabla 9. Error porcentual entre el modelo simplificado en estado normal alimentadores con el resultado del
software oficial.
Tensión Modelo Tensión Software
Tensión Elemento De Error
Demanda Demanda Simplificado F-F en oficial F-F en el
Alimentador de Salida Interconexión porcentual
[Mw] [Mvar] el elemento de elemento de
[Kv] Seccionador N/A [%]
maniobra N/A [kV] maniobra N/A [kV]
A-1 3.760 1.290 10.125 A-830-A-1 10.00 9.94 0.60%
A-1 3.760 1.290 10.125 A-1L-A-1 9.91 9.87 0.43%
A-1 3.760 1.290 10.125 A-191-A-1 9.90 9.87 0.33%
A-1 3.760 1.290 10.125 A-190-A-1 9.90 9.87 0.33%
A-1 3.760 1.290 10.125 L-5X-A-1 9.89 9.87 0.23%
A-8 3.205 0.706 10.125 A-830-A-8 9.99 10.04 0.52%
A-8 3.205 0.706 10.125 A-1L-A-8 9.90 9.97 0.72%
L-3 2.580 0.505 10.125 A-191-L-3 10.02 9.98 0.42%
A-8 3.205 0.706 10.125 A-190-A-8 9.84 9.95 1.09%
L-5 3.360 0.884 10.125 L-5X-L-5 9.86 9.88 0.20%
A-2 3.580 1.180 10.125 L-3X-A-2 10.08 9.99 0.89%
L-3 2.580 0.505 10.125 L-3X-L-3 9.91 9.98 0.67%
A-4 3.816 1.124 10.125 A-4X-A-4 10.04 9.93 1.14%
C-6 2.440 1.520 10.125 A-4X-C-6 10.08 9.99 0.86%
A-5 3.930 1.070 10.125 A-9X-A-5 9.89 9.88 0.09%
A-5 3.930 1.070 10.125 A-5X-A-5 9.89 9.85 0.42%

117
A-9 3.840 0.800 10.125 A-9X-A-9 9.67 9.66 0.13%
C-3 5.500 1.250 10.125 A-5X-C-3 9.72 9.75 0.29%
A-7 1.840 0.471 10.125 C-5X-A-7 10.10 10.05 0.54%
Continuación Tabla 9..

C-5 3.930 1.290 10.125 C-5X-C-5 9.98 9.95 0.26%


A-6 1.410 0.000 10.125 C-3F-A-6 10.07 10.16 0.85%
A-6 1.410 0.000 10.125 C-4X-A-6 10.07 10.16 0.87%
C-3 5.500 1.250 10.125 C-3F-C-3 9.93 9.85 0.77%
C-4 2.590 0.492 10.125 C-4X-C-4 9.99 10.03 0.35%
A-8 3.205 0.706 10.125 A-8X-A-8 9.87 9.97 1.03%
L-4 3.760 0.280 10.125 A-8X-L-4 9.98 10.03 0.45%
C-1 3.700 0.322 10.125 C-1X-C-1 10.10 10.10 0.00%
C-1 3.700 0.322 10.125 C-3X-C-1 9.93 9.93 0.02%
C-4 2.590 0.492 10.125 C-1X-C-4 10.10 10.08 0.23%
C-3 5.500 1.250 10.125 C-3X-C-3 9.96 9.87 0.96%
C-4 2.590 0.492 10.125 C-5L-C-4 10.05 10.06 0.08%
C-5 3.930 1.290 10.125 C-5L-C-5 10.01 9.98 0.32%
C-6 2.440 1.520 10.125 C-513-C-6 10.08 10.04 0.36%
C-5 3.930 1.290 10.125 C-513-C-5 9.98 9.96 0.17%
C-7 1.472 0.452 10.125 C-7G-C-7 10.11 10.07 0.43%
C-0 2.080 0.356 10.125 C-7G-C-0 9.96 10.00 0.37%

118
C-0 2.080 0.356 10.125 C-0Z-C-0 9.99 10.01 0.23%
C-0 2.080 0.356 10.125 C-0X-C-0 9.98 10.03 0.47%
C-0 2.080 0.356 10.125 L-325XX-C-0 9.96 10.01 0.53%
L-3 2.580 0.505 10.125 C-0Z-L-3 10.02 9.99 0.35%
L-2 6.260 2.170 10.125 C-0X-L-2 9.91 9.94 0.30%
L-3 2.580 0.505 10.125 L-325XX-L-3 10.03 9.99 0.38%
C-8 2.210 0.000 10.125 C-8X-C-8 10.06 10.03 0.31%
Continuación Tabla 9.

C-8 2.210 0.000 10.125 L-2X-C-8 10.05 10.03 0.23%


L-1 5.300 0.463 10.125 C-8X-L-1 10.02 10.00 0.16%
L-2 6.260 2.170 10.125 L-2X-L-2 9.93 9.94 0.14%
L-1 5.300 0.463 10.125 C-9X-L-1 10.02 9.98 0.40%
C-9 4.457 1.422 10.125 C-9X-C-9 9.79 9.80 0.10%
L-3 2.580 0.505 10.125 L-3B-L-3 10.08 10.05 0.30%
L-5 3.360 0.884 10.125 L-3B-L-5 9.98 9.92 0.58%
L-4 3.760 0.280 10.125 L-4X-L-4 10.01 10.02 0.08%
L-5 3.360 0.884 10.125 L-4X-L-5 9.97 9.91 0.61%
Fuente: Elaboración propia.

119
Los resultados expuestos previamente denotan un error porcentual del
1,14% para el cálculo de la caída de tensión en análisis para estado normal,
con un diferencia de 110 [V] entre el Modelo Simplificado y el resultado del
Software oficial (las impresiones de las capturas del software oficial están en
el Anexo 7).

En función a la validación realizada, se puede concluir anticipadamente que


el modelo planteado para estado normal, representa fielmente el
comportamiento de los 22 alimentadores de la red de media tensión urbana
de 10 kV de ELFEC.

De igual manera se analizó el estado de carga en transformadores de


potencia, es así que la siguiente tabla resume las validaciones en estado
normal para la demanda máxima no coincidental los estados de carga en
transformadores de potencia 115/10 kV.

Tabla 10. Error porcentual entre el modelo simplificado en estado


normal de transformadores de potencia con el resultado del software
oficial.
Demanda modelo
Transformador de Demanda Software Error porcentual
simplificado
Potencia oficial [MVA] [%]
[MVA]
T-190 17.38 17.31 0.40%
T-191 12.03 11.96 0.51%
T-290 21.69 21.62 0.31%
T-291 4.69 4.65 0.80%
T-390 21.79 21.71 0.37%
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual del 0,8%


para el cálculo de demanda en análisis para estado normal, con un diferencia

120
de 40 [KVA] entre el Modelo Simplificado y el resultado del Software oficial
(las impresiones de las capturas del software oficial están en el Anexo 8).

En función a la validación realizada, se puede concluir anticipadamente que


el modelo planteado para estado normal, representa fielmente el
comportamiento de 5 transformadores de potencia 115/10 kV de ELFEC.

5.2 RESULTADOS DE LA OPERACIÓN EN ESTADO DE


CONTINGENCIA.
5.2.1 CONDICIONES DE LA SIMULACIÓN.
Debido a la aleatoridad de las contingencias, se adopta para esta tesis el
análisis de las contingencias mas severas para el sistema, un análisis N-1
para cada transformador de potencia 115/10 kV. Las operaciones palnteadas
son referenciales para el estudio ya que se desea demostrar el impacto de la
perdida de vida útil por sobrecarga y las limitantes de la red de media tensión
de 10 kV

Para los análisis de los siguientes escenarios de contingencia, se emplean la


data de la demanda máxima no coincidental y la metodología de calculo
detallada en los apartados 4.2.1.3 y 4.2.1.4 de la presente tesis, esto esta
reflejado en el script de análisis del Anexo 4:

- Indisponibilidad T-291.
- Indisponibilidad T-290.
- Indisponibilidad T-390.
- Indisponibilidad T-191.
- Indisponibilidad T-190.

121
La selección de los puntos de maniobra se los realiza desde la base de datos
según lo mostrado en la Figura 33. Elementos de maniobra para análisis de
contingencia.

5.2.1.1 REPORTES DE REDES MT Y TRANSFORMADORES.


Para visualizar y analizar la data por fuera se genera un genera un reporte en
formato .txt se muestra en la Figura 53, que contiene los siguientes campos

Figura 53. Reporte resultante en formato txt., posterior a una contingencia


planteada por el usuario.
Fuente Elaboración propia.

Descripción de los campos del reporte de contingencia:


- succes_date: Es el registro horario y fecha en el cual fue
registrado el evento en el SCADA

- mva_codigo alimentador: Es la demanda calculada resultante en


Mega Volt Ampere, perteneciente al alimentador que sufrio cambios
debido a la contingencia.

122
- kv_cola alimentador:Es la tensión calculada en Kilo Volt, perteneciente
a la cola del alimentador tomo carga debido a una contingencia.

- mva_codigo transformador de potencia:Es la demanda registrada en


el SCADA en Mega Volt Ampere, perteneciente al transformador de
potencia descrito para el registro horario respectivo.

- temp aceite_codigo transformador de potencia:Es la temperatura del


tope del aceit en °C, perteneciente al transformador de potencia
descrito para el registro horario respectivo.

- temp pto caliente_codigo transformador de potencia: Es la temperatura


del punto caliente en °C, perteneciente al transformador de potencia
descrito para el registro horario respectivo.

- perdida vida util_codigo transformador de potencia: Es la perdida de


vida útil acumulada en días, perteneciente al transformador de
potencia descrito para el registro horario respectivo.

5.2.2 VALIDACIÓN DE LOS RESULTADOS PARA EL ESTADO DE


CONTINGENCIA.
Este apartado resume las validaciones en estado normal para la demanda
máxima no coincidental, según las condiciones descritas en el apartado 5.2.1

5.2.2.1 INDISPONIBILIDAD DEL TRANSFORMADOR DE POTENCIA


T-291 (N-1).
Las siguientes operciones son realizadas debido a la indisponibilidad de la
unidad T-291 en la subestación Alalay.

o Apertura interruptor A-8

123
o Apertura interruptor A-6
o Cierre Seccionador A-830, A-1 toma toda la carga de A-8
o Cierre Seccionador C-3F, C-3 toma toda la carga de A-6

Las siguiente tabla resume los resultados de la contingencia planteada bajo


el modelo simplificado de redes de media tensión y compara los resultados
de este modelo con los resultados del software oficial (Anexo 9).

Tabla 11. Error porcentual entre el modelo simplificado de redes de


media tensión en estado contingencia en alimentadores N-1
Transformador T-291.
Tensión Tensión
Modelo Software
Demanda Demanda
Error Simplificado oficial F-F Error
Modelo Software
Alimentador porcentual F-F en la en la cola porcentual
Simplificado Oficial
[%] cola del del [%]
[MVA] [MVA]
alimentador alimentador
[kV] [kV]
C-3 7.389 7.114 3.9% 9.87 9.83 0.41%
A-1 7.543 7.394 2.0% 9.71 9.73 1.29%
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual máximo


del 3,9% para el cálculo de la demanda en análisis de contingencias, con un
diferencia de 275 [KVA] entre el Modelo Simplificado y el resultado del
Software oficial; asimismo para el cálculo de caídas de tensión se tiene un
error porcentual máximo del 1,29% para el cálculo de la caída de tensión en
análisis de contingencias, con un diferencia de 130 [V] entre el Modelo
Simplificado y el resultado del Software oficial.

124
Las siguiente tabla resume los resultados de la contingencia planteada bajo
el modelo simplificado de transformadores de potencia y compara los
resultados de este modelo con los resultados del software oficial (Anexo 10).

Tabla 12. Error porcentual entre el modelo simplificado de


transformadores de potencia en estado contingencia en alimentadores
N-1 Transformador T-291.
Demanda
Demanda Error
Transformador de modelo
Software oficial porcentual
Potencia simplificado
[MVA] [%]
[MVA]
T-190 19.05 18.77 1.47%
T-191 12.03 11.96 0.51%
T-290 25.28 25.05 0.93%
T-291 - - N/A
T-390 21.79 21.71 0.37%
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual máximo


del 1,47% para el cálculo de la demanda en análisis de contingencias, con un
diferencia de 280 [KVA] entre el Modelo Simplificado y el resultado del
Software oficial.

Las siguientes tablas consideran la demanda calculada del modelo


simplificado para transformadores de potencia y asume que esta demanda
será constante por un periodo de tres horas (desde las 18 hasta las 21), de
manera que pueda apreciarse el envejecimiento de los transformadores por
las sobrecargas resultantes de la indisponibilidad del transformador T-291.

125
Tabla 13. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-190, por la
indisponibilidad del Transformador T-291.
Demanda
Temperatura Temperatura Pérdida de
Hora del modelo
del tope del del punto vida útil
dia [hrs] simplificado
aceite [°C] caliente[°C] [días]
[MVA]
18.00 19.05 74.98 90.43 0.00
18.08 19.05 74.90 90.35 0.00
18.17 19.05 74.81 90.26 0.00
18.25 19.05 74.73 90.18 0.01
18.33 19.05 74.64 90.09 0.01
18.42 19.05 74.56 90.01 0.01
18.50 19.05 74.47 89.92 0.01
18.58 19.05 74.38 89.84 0.01
18.67 19.05 74.30 89.75 0.01
18.75 19.05 74.21 89.66 0.01
18.83 19.05 74.12 89.57 0.02
18.92 19.05 74.03 89.48 0.02
19.00 19.05 73.94 89.39 0.02
19.08 19.05 73.85 89.30 0.02
19.17 19.05 73.75 89.21 0.02
19.25 19.05 73.66 89.11 0.02
19.33 19.05 73.57 89.02 0.02
19.42 19.05 73.48 88.93 0.02
19.50 19.05 73.38 88.84 0.03
19.58 19.05 73.29 88.74 0.03
19.67 19.05 73.20 88.65 0.03
19.75 19.05 73.10 88.56 0.03
19.83 19.05 73.01 88.46 0.03
19.92 19.05 72.92 88.37 0.03
20.00 19.05 72.82 88.27 0.03
20.08 19.05 72.73 88.18 0.03

126
20.17 19.05 72.63 88.09 0.03
20.25 19.05 72.54 87.99 0.04
20.33 19.05 72.45 87.90 0.04
20.42 19.05 72.35 87.80 0.04
20.50 19.05 72.26 87.71 0.04
20.58 19.05 72.17 87.62 0.04
20.67 19.05 72.07 87.52 0.04
20.75 19.05 71.98 87.43 0.04
20.83 19.05 71.89 87.34 0.04
20.92 19.05 71.80 87.25 0.04
21.00 19.05 71.71 87.16 0.04
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-190, prevén que


la máxima temperatura del punto caliente será de 90,43°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,04 dias.

Tabla 14. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-191, por la
indisponibilidad del Transformador T-291.
Demanda
Temperatura Temperatura Pérdida
Hora del modelo
del tope del del punto de vida
dia [hrs] simplificado
aceite [°C] caliente[°C] útil [días]
[MVA]
18.00 12.03 85.38 106.30 0.01
18.08 12.03 85.30 106.22 0.02
18.17 12.03 85.22 106.14 0.03
18.25 12.03 85.14 106.05 0.04
18.33 12.03 85.05 105.97 0.04
18.42 12.03 84.96 105.88 0.05
18.50 12.03 84.88 105.80 0.06

127
18.58 12.03 84.79 105.71 0.07
18.67 12.03 84.70 105.62 0.08
18.75 12.03 84.61 105.53 0.09
18.83 12.03 84.53 105.44 0.09
18.92 12.03 84.44 105.35 0.10
19.00 12.03 84.34 105.26 0.11
19.08 12.03 84.25 105.17 0.12
19.17 12.03 84.16 105.08 0.13
19.25 12.03 84.07 104.99 0.13
19.33 12.03 83.98 104.90 0.14
19.42 12.03 83.88 104.80 0.15
19.50 12.03 83.79 104.71 0.16
19.58 12.03 83.70 104.62 0.17
19.67 12.03 83.60 104.52 0.17
19.75 12.03 83.51 104.43 0.18
19.83 12.03 83.42 104.34 0.19
19.92 12.03 83.32 104.24 0.19
20.00 12.03 83.23 104.15 0.20
20.08 12.03 83.14 104.05 0.21
20.17 12.03 83.04 103.96 0.22
20.25 12.03 82.95 103.87 0.22
20.33 12.03 82.85 103.77 0.23
20.42 12.03 82.76 103.68 0.24
20.50 12.03 82.67 103.59 0.24
20.58 12.03 82.57 103.49 0.25
20.67 12.03 82.48 103.40 0.25
20.75 12.03 82.39 103.31 0.26
20.83 12.03 82.30 103.22 0.27
20.92 12.03 82.20 103.12 0.27
21.00 12.03 82.11 103.03 0.28
Fuente: Elaboración propia.

128
Los resultados de la contingencia sobre el transformador T-191, prevén que
la máxima temperatura del punto caliente será de 106,3°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,28 dias.

Tabla 15. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-290, por la
indisponibilidad del Transformador T-291.
Demanda
Temperatura Temperatura Pérdida de
Hora del modelo
del tope del del punto vida útil
dia [hrs] simplificado
aceite [°C] caliente[°C] [días]
[MVA]
18.00 25.28 87.94 110.27 0.01
18.08 25.28 87.86 110.18 0.03
18.17 25.28 87.78 110.10 0.04
18.25 25.28 87.70 110.02 0.06
18.33 25.28 87.61 109.93 0.07
18.42 25.28 87.53 109.85 0.08
18.50 25.28 87.44 109.76 0.10
18.58 25.28 87.35 109.67 0.11
18.67 25.28 87.26 109.58 0.12
18.75 25.28 87.17 109.50 0.14
18.83 25.28 87.09 109.41 0.15
18.92 25.28 87.00 109.32 0.16
19.00 25.28 86.90 109.23 0.18
19.08 25.28 86.81 109.13 0.19
19.17 25.28 86.72 109.04 0.20
19.25 25.28 86.63 108.95 0.21
19.33 25.28 86.54 108.86 0.23
19.42 25.28 86.45 108.77 0.24
19.50 25.28 86.35 108.67 0.25
19.58 25.28 86.26 108.58 0.26

129
19.67 25.28 86.17 108.49 0.27
19.75 25.28 86.07 108.39 0.28
19.83 25.28 85.98 108.30 0.30
19.92 25.28 85.88 108.20 0.31
20.00 25.28 85.79 108.11 0.32
20.08 25.28 85.70 108.02 0.33
20.17 25.28 85.60 107.92 0.34
20.25 25.28 85.51 107.83 0.35
20.33 25.28 85.41 107.73 0.36
20.42 25.28 85.32 107.64 0.37
20.50 25.28 85.23 107.55 0.38
20.58 25.28 85.13 107.45 0.39
20.67 25.28 85.04 107.36 0.40
20.75 25.28 84.95 107.27 0.41
20.83 25.28 84.86 107.18 0.42
20.92 25.28 84.77 107.09 0.43
21.00 25.28 84.67 106.99 0.44
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-290, prevén que


la máxima temperatura del punto caliente será de 110,27°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,44 dias.

Tabla 16. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-390, por la
indisponibilidad del Transformador T-291.
Demanda
Hora Temperatura Temperatura Pérdida de
modelo
del dia del tope del del punto vida útil
simplificado
[hrs] aceite [°C] caliente[°C] [días]
[MVA]
18.00 21.79 80.68 99.08 0.00

130
18.08 21.79 80.60 99.00 0.01
18.17 21.79 80.52 98.92 0.01
18.25 21.79 80.43 98.83 0.02
18.33 21.79 80.35 98.75 0.02
18.42 21.79 80.26 98.66 0.02
18.50 21.79 80.17 98.57 0.03
18.58 21.79 80.09 98.49 0.03
18.67 21.79 80.00 98.40 0.03
18.75 21.79 79.91 98.31 0.04
18.83 21.79 79.82 98.22 0.04
18.92 21.79 79.73 98.13 0.04
19.00 21.79 79.64 98.04 0.05
19.08 21.79 79.55 97.95 0.05
19.17 21.79 79.46 97.86 0.06
19.25 21.79 79.37 97.77 0.06
19.33 21.79 79.27 97.67 0.06
19.42 21.79 79.18 97.58 0.07
19.50 21.79 79.09 97.49 0.07
19.58 21.79 78.99 97.39 0.07
19.67 21.79 78.90 97.30 0.07
19.75 21.79 78.81 97.21 0.08
19.83 21.79 78.71 97.11 0.08
19.92 21.79 78.62 97.02 0.08
20.00 21.79 78.52 96.93 0.09
20.08 21.79 78.43 96.83 0.09
20.17 21.79 78.34 96.74 0.09
20.25 21.79 78.24 96.64 0.10
20.33 21.79 78.15 96.55 0.10
20.42 21.79 78.06 96.46 0.10
20.50 21.79 77.96 96.36 0.11
20.58 21.79 77.87 96.27 0.11
20.67 21.79 77.78 96.18 0.11
20.75 21.79 77.68 96.08 0.11

131
20.83 21.79 77.59 95.99 0.12
20.92 21.79 77.50 95.90 0.12
21.00 21.79 77.41 95.81 0.12
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-390, prevén que


la máxima temperatura del punto caliente será de 99,08°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,12 dias.

5.2.2.2 INDISPONIBILIDAD DEL TRANSFORMADOR DE POTENCIA


T-290 (N-1).
Las siguientes operciones son realizadas debido a la indisponibilidad de la
unidad T-290 en la subestación Alalay.

o Apertura interruptor A-1


o Apertura interruptor A-2
o Apertura interruptor A-7
o Apertura interruptor A-4
o Cierre INT. TRANSF Alalay
o Apertura interruptor A-5R
o Cierre Seccionador L-5X, L-5 toma toda la carga de A-1
o Cierre Seccionador L-3X, L-3 toma toda la carga de A-2
o Cierre Seccionador A-5X, C-3 toma parte de la carga de A-5
o Cierre Seccionador A-4X, C-6 toma toda la carga de A-4
o Cierre Seccionador C-5X, C-5 toma toda la carga de A-7

Las siguiente tabla resume los resultados de la contingencia planteada bajo


el modelo simplificado y compara los resultados de este modelo con los
resultados del software oficial (Anexo 11).

132
Tabla 17. Error porcentual entre el modelo simplificado en estado
contingencia en alimentadores N-1 Transformador T-290.
Tensión Tensión
Demanda Demanda Modelo Software
Error Error
Modelo Software Simplificado F-F oficial F-F en
Alimentador porcentual porcentual
Simplificado Oficial en la cola del la cola del
[%] [%]
[MVA] [MVA] alimentador alimentador
[kV] [kV]
C-5 6.033 6.137 1.7% 9.82 9.92 1.01%
C-6 6.791 6.937 2.10% 9.77 9.79 0.19%
L-3 6.719 6.669 0.7% 9.68 9.54 1.49%
L-5 8.026 7.927 1.25% 9.41 9.21 2.12%
C-3 8.623 8.413 2.49% 9.38 9.25 1.36%
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual máximo


del 2,49% para el cálculo de la demanda en análisis de contingencias, con un
diferencia de 210 [KVA] entre el Modelo Simplificado y el resultado del
Software oficial; asimismo para el cálculo de caídas de tensión se tiene un
error porcentual máximo del 2,12% para el cálculo de la caída de tensión en
análisis de contingencias, con un diferencia de 200 [V] entre el Modelo
Simplificado y el resultado del Software oficial.

Las siguiente tabla resume los resultados de la contingencia planteada bajo


el modelo simplificado de transformadores de potencia y compara los
resultados de este modelo con los resultados del software oficial (Anexo 12).

Tabla 18. Error porcentual entre el modelo simplificado de


transformadores de potencia en estado contingencia en alimentadores
N-1 Transformador T-290.

133
Demanda
Demanda Error
Transformador de modelo
Software oficial porcentual
Potencia simplificado
[MVA] [%]
[MVA]
T-190 23.99 24.20 0.87%
T-191 14.06 13.96 0.74%
T-290 - - N/A
T-291 10.32 10.16 1.58%
T-390 30.40 30.13 0.91%
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual máximo


del 1,58% para el cálculo de la demanda en análisis de contingencias, con un
diferencia de 160 [KVA] entre el Modelo Simplificado y el resultado del
Software oficial.

Las siguientes tablas consideran la demanda calculada del modelo


simplificado para transformadores de potencia y asume que esta demanda
será constante por un periodo de tres horas (desde las 18 hasta las 21), de
manera que pueda apreciarse el envejecimiento de los transformadores por
las sobrecargas resultantes de la indisponibilidad del transformador T-291.

Tabla 19. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-190, por la
indisponibilidad del Transformador T-290.

134
Demanda Pérdida
Temperatura Temperatura
Hora del modelo de vida
del tope del del punto
dia [hrs] simplificado útil
aceite [°C] caliente[°C]
[MVA] [días]
18.00 23.99 85.26 106.11 0.01
18.08 23.99 85.18 106.03 0.02
18.17 23.99 85.09 105.95 0.03
18.25 23.99 85.01 105.86 0.03
18.33 23.99 84.93 105.78 0.04
18.42 23.99 84.84 105.69 0.05
18.50 23.99 84.75 105.61 0.06
18.58 23.99 84.67 105.52 0.07
18.67 23.99 84.58 105.43 0.08
18.75 23.99 84.49 105.34 0.08
18.83 23.99 84.40 105.25 0.09
18.92 23.99 84.31 105.16 0.10
19.00 23.99 84.22 105.07 0.11
19.08 23.99 84.13 104.98 0.12
19.17 23.99 84.04 104.89 0.12
19.25 23.99 83.95 104.80 0.13
19.33 23.99 83.85 104.70 0.14
19.42 23.99 83.76 104.61 0.15
19.50 23.99 83.67 104.52 0.15
19.58 23.99 83.57 104.43 0.16
19.67 23.99 83.48 104.33 0.17
19.75 23.99 83.39 104.24 0.18
19.83 23.99 83.29 104.14 0.18
19.92 23.99 83.20 104.05 0.19
20.00 23.99 83.10 103.96 0.20
20.08 23.99 83.01 103.86 0.20
20.17 23.99 82.92 103.77 0.21
20.25 23.99 82.82 103.67 0.22
20.33 23.99 82.73 103.58 0.22
20.42 23.99 82.63 103.49 0.23

135
20.50 23.99 82.54 103.39 0.24
20.58 23.99 82.45 103.30 0.24
20.67 23.99 82.36 103.21 0.25
20.75 23.99 82.26 103.11 0.26
20.83 23.99 82.17 103.02 0.26
20.92 23.99 82.08 102.93 0.27
21.00 23.99 81.99 102.84 0.27

Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-190, prevén que


la máxima temperatura del punto caliente será de 106,11°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,27 dias.

Tabla 20. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-191, por la
indisponibilidad del Transformador T-290.

Demanda
Hora Temperatura Temperatura Pérdida de
modelo
del dia del tope del del punto vida útil
simplificado
[hrs] aceite [°C] caliente[°C] [días]
[MVA]
18.00 14.06 93.86 119.49 0.04
18.08 14.06 93.77 119.41 0.08
18.17 14.06 93.69 119.33 0.12
18.25 14.06 93.61 119.24 0.16
18.33 14.06 93.52 119.16 0.20
18.42 14.06 93.44 119.07 0.24
18.50 14.06 93.35 118.99 0.28
18.58 14.06 93.26 118.90 0.32
18.67 14.06 93.18 118.81 0.36

136
18.75 14.06 93.09 118.72 0.40
18.83 14.06 93.00 118.63 0.44
18.92 14.06 92.91 118.54 0.47
19.00 14.06 92.82 118.45 0.51
19.08 14.06 92.73 118.36 0.55
19.17 14.06 92.63 118.27 0.58
19.25 14.06 92.54 118.18 0.62
19.33 14.06 92.45 118.08 0.65
19.42 14.06 92.36 117.99 0.69
19.50 14.06 92.26 117.90 0.72
19.58 14.06 92.17 117.81 0.76
19.67 14.06 92.08 117.71 0.79
19.75 14.06 91.98 117.62 0.82
19.83 14.06 91.89 117.52 0.86
19.92 14.06 91.80 117.43 0.89
20.00 14.06 91.70 117.34 0.92
20.08 14.06 91.61 117.24 0.95
20.17 14.06 91.51 117.15 0.99
20.25 14.06 91.42 117.05 1.02
20.33 14.06 91.33 116.96 1.05
20.42 14.06 91.23 116.87 1.08
20.50 14.06 91.14 116.77 1.11
20.58 14.06 91.05 116.68 1.14
20.67 14.06 90.95 116.59 1.17
20.75 14.06 90.86 116.50 1.20
20.83 14.06 90.77 116.40 1.23
20.92 14.06 90.68 116.31 1.26
21.00 14.06 90.59 116.22 1.29
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-191, prevén que


la máxima temperatura del punto caliente será de 119,49°C y la perdida de

137
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 1,29 dias.

Tabla 21. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-291, por la
indisponibilidad del Transformador T-290.
Demanda
Hora Temperatura Temperatura Pérdida de
modelo
del dia del tope del del punto vida útil
simplificado
[hrs] aceite [°C] caliente[°C] [días]
[MVA]
18.00 10.32 89.03 111.95 0.02
18.08 10.32 88.94 111.86 0.03
18.17 10.32 88.86 111.78 0.05
18.25 10.32 88.78 111.70 0.07
18.33 10.32 88.69 111.61 0.09
18.42 10.32 88.61 111.53 0.10
18.50 10.32 88.52 111.44 0.12
18.58 10.32 88.43 111.35 0.13
18.67 10.32 88.35 111.27 0.15
18.75 10.32 88.26 111.18 0.17
18.83 10.32 88.17 111.09 0.18
18.92 10.32 88.08 111.00 0.20
19.00 10.32 87.99 110.91 0.21
19.08 10.32 87.90 110.82 0.23
19.17 10.32 87.80 110.72 0.24
19.25 10.32 87.71 110.63 0.26
19.33 10.32 87.62 110.54 0.27
19.42 10.32 87.53 110.45 0.29
19.50 10.32 87.43 110.35 0.30
19.58 10.32 87.34 110.26 0.32
19.67 10.32 87.25 110.17 0.33
19.75 10.32 87.15 110.07 0.34
19.83 10.32 87.06 109.98 0.36

138
19.92 10.32 86.97 109.89 0.37
20.00 10.32 86.87 109.79 0.39
20.08 10.32 86.78 109.70 0.40
20.17 10.32 86.68 109.60 0.41
20.25 10.32 86.59 109.51 0.43
20.33 10.32 86.50 109.42 0.44
20.42 10.32 86.40 109.32 0.45
20.50 10.32 86.31 109.23 0.46
20.58 10.32 86.22 109.14 0.48
20.67 10.32 86.12 109.04 0.49
20.75 10.32 86.03 108.95 0.50
20.83 10.32 85.94 108.86 0.51
20.92 10.32 85.85 108.77 0.53
21.00 10.32 85.76 108.68 0.54
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-291, prevén que


la máxima temperatura del punto caliente será de 111,95°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,54 dias.

Tabla 22. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-390, por la
indisponibilidad del Transformador T-290.
Demanda
Temperatura Temperatura Pérdida
Hora del modelo
del tope del del punto de vida
dia [hrs] simplificado
aceite [°C] caliente[°C] útil [días]
[MVA]
18.00 30.40 98.60 126.97 0.10
18.08 30.40 98.52 126.89 0.20
18.17 30.40 98.44 126.81 0.29
18.25 30.40 98.35 126.72 0.39

139
18.33 30.40 98.27 126.64 0.48
18.42 30.40 98.18 126.55 0.58
18.50 30.40 98.10 126.47 0.67
18.58 30.40 98.01 126.38 0.76
18.67 30.40 97.92 126.29 0.85
18.75 30.40 97.83 126.20 0.94
18.83 30.40 97.74 126.11 1.03
18.92 30.40 97.65 126.02 1.12
19.00 30.40 97.56 125.93 1.21
19.08 30.40 97.47 125.84 1.30
19.17 30.40 97.38 125.75 1.38
19.25 30.40 97.29 125.66 1.47
19.33 30.40 97.20 125.57 1.55
19.42 30.40 97.10 125.47 1.63
19.50 30.40 97.01 125.38 1.72
19.58 30.40 96.92 125.29 1.80
19.67 30.40 96.82 125.19 1.88
19.75 30.40 96.73 125.10 1.96
19.83 30.40 96.64 125.00 2.04
19.92 30.40 96.54 124.91 2.11
20.00 30.40 96.45 124.82 2.19
20.08 30.40 96.35 124.72 2.27
20.17 30.40 96.26 124.63 2.34
20.25 30.40 96.17 124.53 2.42
20.33 30.40 96.07 124.44 2.49
20.42 30.40 95.98 124.35 2.56
20.50 30.40 95.89 124.25 2.63
20.58 30.40 95.79 124.16 2.71
20.67 30.40 95.70 124.07 2.78
20.75 30.40 95.61 123.98 2.85
20.83 30.40 95.52 123.88 2.92
20.92 30.40 95.42 123.79 2.98
21.00 30.40 95.33 123.70 3.05
Fuente: Elaboración propia.

140
Los resultados de la contingencia sobre el transformador T-390, prevén que
la máxima temperatura del punto caliente será de 126,97°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 3,05 dias.

5.2.2.3 INDISPONIBILIDAD DEL TRANSFORMADOR DE POTENCIA


T-390 (N-1).
Las siguientes operciones son realizadas debido a la indisponibilidad de la
unidad T-390 en la subestación Cala Cala.

o Apertura interruptor L-1


o Apertura interruptor L-2
o Apertura interruptor L-3
o Apertura interruptor L-4
o Apertura interruptor L-5
o Cierre Seccionador L-5X, A-1 toma toda la carga de L-5
o Cierre Seccionador A-8X, A-8 toma toda la carga de L-4
o Cierre Seccionador L-325XX, C-0 toma parte de la carga de L-3
o Cierre Seccionador L-2X, C-8 toma toda la carga de L-2
o Cierre Seccionador C-9X, C-9 toma toda la carga de L-1

Las siguiente tabla resume los resultados de la contingencia planteada bajo


el modelo simplificado y compara los resultados de este modelo con los
resultados del software oficial (Anexo 13).

Tabla 23. Error porcentual entre el modelo simplificado en estado


contingencia en alimentadores N-1 Transformador T-390.

141
Tensión Tensión
Demanda Demanda Modelo Software
Error Error
Modelo Software Simplificado F-F oficial F-F en
Alimentador porcentual porcentual
Simplificado Oficial en la cola del la cola del
[%] [%]
[MVA] [MVA] alimentador alimentador
[kV] [kV]
A-1 7.923 7.782 1.8% 9.48 9.41 0.74%
A-8 7.693 7.444 3.3% 9.51 9.37 1.55%
C-0 4.903 4.817 1.8% 9.85 9.89 0.40%
C-8 9.571 9.327 2.6% 9.41 9.27 1.46%
C-9 10.970 10.762 1.9% 9.28 9.11 1.92%
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual máximo


del 3,3% para el cálculo de la demanda en análisis de contingencias, con un
diferencia de 249 [KVA] entre el Modelo Simplificado y el resultado del
Software oficial; asimismo para el cálculo de caídas de tensión se tiene un
error porcentual máximo del 1,55% para el cálculo de la caída de tensión en
análisis de contingencias, con un diferencia de 145 [V] entre el Modelo
Simplificado y el resultado del Software oficial.

Las siguiente tabla resume los resultados de la contingencia planteada bajo


el modelo simplificado de transformadores de potencia y compara los
resultados de este modelo con los resultados del software oficial (Anexo 14).

142
Tabla 24. Error porcentual entre el modelo simplificado de
transformadores de potencia en estado contingencia en alimentadores
N-1 Transformador T-390.
Demanda
Demanda Error
Transformador de modelo
Software oficial porcentual
Potencia simplificado
[MVA] [%]
[MVA]
T-190 32.80 33.32 1.55%
T-191 12.03 11.97 0.48%
T-290 25.66 25.42 0.94%
T-291 9.12 8.80 3.61%
T-390 - - N/A
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual máximo


del 3,61% para el cálculo de la demanda en análisis de contingencias, con un
diferencia de 320 [KVA] entre el Modelo Simplificado y el resultado del
Software oficial.

Las siguientes tablas consideran la demanda calculada del modelo


simplificado para transformadores de potencia y asume que esta demanda
será constante por un periodo de tres horas (desde las 18 hasta las 21), de
manera que pueda apreciarse el envejecimiento de los transformadores por
las sobrecargas resultantes de la indisponibilidad del transformador T-390.

143
Tabla 25. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-190, por la
indisponibilidad del Transformador T-390.
Demanda Pérdida
Temperatura Temperatura
Hora del modelo de vida
del tope del del punto
dia [hrs] simplificado útil
aceite [°C] caliente[°C]
[MVA] [días]
18.00 32.80 103.60 134.91 0.25

18.08 32.80 103.52 134.83 0.49

18.17 32.80 103.44 134.75 0.73

18.25 32.80 103.35 134.67 0.97

18.33 32.80 103.27 134.58 1.21

18.42 32.80 103.18 134.49 1.45

18.50 32.80 103.09 134.41 1.68

18.58 32.80 103.01 134.32 1.91

18.67 32.80 102.92 134.23 2.14

18.75 32.80 102.83 134.14 2.36

18.83 32.80 102.74 134.06 2.59

18.92 32.80 102.65 133.97 2.81

19.00 32.80 102.56 133.87 3.03

19.08 32.80 102.47 133.78 3.25

19.17 32.80 102.38 133.69 3.46

19.25 32.80 102.29 133.60 3.67

19.33 32.80 102.19 133.51 3.88

19.42 32.80 102.10 133.41 4.09

19.50 32.80 102.01 133.32 4.30

19.58 32.80 101.91 133.23 4.50

19.67 32.80 101.82 133.13 4.70

19.75 32.80 101.73 133.04 4.90

19.83 32.80 101.63 132.95 5.10

19.92 32.80 101.54 132.85 5.29

144
20.00 32.80 101.45 132.76 5.48

20.08 32.80 101.35 132.67 5.67

20.17 32.80 101.26 132.57 5.86

20.25 32.80 101.16 132.48 6.05

20.33 32.80 101.07 132.38 6.23

20.42 32.80 100.98 132.29 6.41

20.50 32.80 100.88 132.20 6.59

20.58 32.80 100.79 132.10 6.77

20.67 32.80 100.70 132.01 6.95

20.75 32.80 100.60 131.92 7.12

20.83 32.80 100.51 131.83 7.30

20.92 32.80 100.42 131.73 7.47

21.00 32.80 100.33 131.64 7.64


Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-190, prevén que


la máxima temperatura del punto caliente será de 134,91°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 7,64 dias.

Tabla 26. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-191, por la
indisponibilidad del Transformador T-390.
Demanda Pérdida
Temperatura Temperatura
Hora del modelo de vida
del tope del del punto
dia [hrs] simplificado útil
aceite [°C] caliente[°C]
[MVA] [días]
18.00 12.03 85.40 106.34 0.01
18.08 12.03 85.32 106.25 0.02
18.17 12.03 85.24 106.17 0.03
18.25 12.03 85.16 106.09 0.04

145
18.33 12.03 85.07 106.00 0.04
18.42 12.03 84.99 105.92 0.05
18.50 12.03 84.90 105.83 0.06
18.58 12.03 84.81 105.74 0.07
18.67 12.03 84.72 105.65 0.08
18.75 12.03 84.64 105.57 0.09
18.83 12.03 84.55 105.48 0.10
18.92 12.03 84.46 105.39 0.10
19.00 12.03 84.37 105.30 0.11
19.08 12.03 84.27 105.21 0.12
19.17 12.03 84.18 105.11 0.13
19.25 12.03 84.09 105.02 0.14
19.33 12.03 84.00 104.93 0.14
19.42 12.03 83.91 104.84 0.15
19.50 12.03 83.81 104.74 0.16
19.58 12.03 83.72 104.65 0.17
19.67 12.03 83.63 104.56 0.17
19.75 12.03 83.53 104.46 0.18
19.83 12.03 83.44 104.37 0.19
19.92 12.03 83.34 104.27 0.19
20.00 12.03 83.25 104.18 0.20
20.08 12.03 83.16 104.09 0.21
20.17 12.03 83.06 103.99 0.22
20.25 12.03 82.97 103.90 0.22
20.33 12.03 82.87 103.81 0.23
20.42 12.03 82.78 103.71 0.24
20.50 12.03 82.69 103.62 0.24
20.58 12.03 82.59 103.52 0.25
20.67 12.03 82.50 103.43 0.26
20.75 12.03 82.41 103.34 0.26
20.83 12.03 82.32 103.25 0.27
20.92 12.03 82.23 103.16 0.28
21.00 12.03 82.13 103.07 0.28
Fuente: Elaboración propia.

146
Los resultados de la contingencia sobre el transformador T-191, prevén que
la máxima temperatura del punto caliente será de 106,34°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,28 dias.

Tabla 27. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-290, por la
indisponibilidad del Transformador T-390.
Demanda Pérdida
Temperatura Temperatura
Hora del modelo de vida
del tope del del punto
dia [hrs] simplificado útil
aceite [°C] caliente[°C]
[MVA] [días]
18.00 25.66 88.74 111.49 0.02
18.08 25.66 88.65 111.41 0.03
18.17 25.66 88.57 111.33 0.05
18.25 25.66 88.49 111.24 0.07
18.33 25.66 88.40 111.16 0.08
18.42 25.66 88.32 111.07 0.10
18.50 25.66 88.23 110.99 0.11
18.58 25.66 88.14 110.90 0.13
18.67 25.66 88.05 110.81 0.14
18.75 25.66 87.97 110.72 0.16
18.83 25.66 87.88 110.63 0.17
18.92 25.66 87.79 110.54 0.19
19.00 25.66 87.70 110.45 0.20
19.08 25.66 87.60 110.36 0.22
19.17 25.66 87.51 110.27 0.23
19.25 25.66 87.42 110.18 0.25
19.33 25.66 87.33 110.09 0.26
19.42 25.66 87.24 109.99 0.27
19.50 25.66 87.14 109.90 0.29
19.58 25.66 87.05 109.81 0.30

147
19.67 25.66 86.96 109.71 0.31
19.75 25.66 86.86 109.62 0.33
19.83 25.66 86.77 109.53 0.34
19.92 25.66 86.67 109.43 0.35
20.00 25.66 86.58 109.34 0.37
20.08 25.66 86.49 109.24 0.38
20.17 25.66 86.39 109.15 0.39
20.25 25.66 86.30 109.06 0.40
20.33 25.66 86.20 108.96 0.42
20.42 25.66 86.11 108.87 0.43
20.50 25.66 86.02 108.78 0.44
20.58 25.66 85.92 108.68 0.45
20.67 25.66 85.83 108.59 0.46
20.75 25.66 85.74 108.50 0.48
20.83 25.66 85.65 108.41 0.49
20.92 25.66 85.56 108.31 0.50
21.00 25.66 85.46 108.22 0.51
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-290, prevén que


la máxima temperatura del punto caliente será de 111,49°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,51 dias.

Tabla 28. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-291, por la
indisponibilidad del Transformador T-390.
Demanda Pérdida
Temperatura Temperatura
Hora del modelo de vida
del tope del del punto
dia [hrs] simplificado útil
aceite [°C] caliente[°C]
[MVA] [días]
18.00 9.12 82.78 102.30 0.01

148
18.08 9.12 82.70 102.22 0.01
18.17 9.12 82.62 102.13 0.02
18.25 9.12 82.53 102.05 0.02
18.33 9.12 82.45 101.97 0.03
18.42 9.12 82.36 101.88 0.03
18.50 9.12 82.28 101.79 0.04
18.58 9.12 82.19 101.71 0.04
18.67 9.12 82.10 101.62 0.05
18.75 9.12 82.01 101.53 0.05
18.83 9.12 81.92 101.44 0.06
18.92 9.12 81.83 101.35 0.06
19.00 9.12 81.74 101.26 0.07
19.08 9.12 81.65 101.17 0.07
19.17 9.12 81.56 101.08 0.08
19.25 9.12 81.47 100.99 0.08
19.33 9.12 81.38 100.89 0.09
19.42 9.12 81.28 100.80 0.09
19.50 9.12 81.19 100.71 0.10
19.58 9.12 81.10 100.61 0.10
19.67 9.12 81.00 100.52 0.11
19.75 9.12 80.91 100.43 0.11
19.83 9.12 80.82 100.33 0.12
19.92 9.12 80.72 100.24 0.12
20.00 9.12 80.63 100.14 0.13
20.08 9.12 80.53 100.05 0.13
20.17 9.12 80.44 99.96 0.14
20.25 9.12 80.35 99.86 0.14
20.33 9.12 80.25 99.77 0.14
20.42 9.12 80.16 99.68 0.15
20.50 9.12 80.06 99.58 0.15
20.58 9.12 79.97 99.49 0.16
20.67 9.12 79.88 99.40 0.16
20.75 9.12 79.79 99.30 0.16

149
20.83 9.12 79.69 99.21 0.17
20.92 9.12 79.60 99.12 0.17
21.00 9.12 79.51 99.03 0.18
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-390, prevén que


la máxima temperatura del punto caliente será de 102,3°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,18 dias.

5.2.2.4 INDISPONIBILIDAD DEL TRANSFORMADOR DE POTENCIA


T-191 (N-1).
Las siguientes operciones son realizadas debido a la indisponibilidad de la
unidad T-191 en la subestación Central.

o Apertura interruptor C-1


o Apertura interruptor C-4
o Apertura interruptor C-5
o Apertura interruptor C-7
o Cierre Seccionador C-5X, A-7 toma toda la carga de C-5
o Cierre Seccionador C-4X, A-6 toma toda la carga de C-4
o Cierre Seccionador C-3X, C-3 toma parte de la carga de C-1
o Cierre Seccionador C-7G, C-0 toma toda la carga de C-7

Las siguiente tabla resume los resultados de la contingencia planteada bajo


el modelo simplificado y compara los resultados de este modelo con los
resultados del software oficial (Anexo 15).

150
Tabla 29. Error porcentual entre el modelo simplificado en estado
contingencia en alimentadores N-1 Transformador T-191.
Tensión Tensión
Demanda Demanda Modelo Software
Error Error
Modelo Software Simplificado F-F oficial F-F en
Alimentador porcentual porcentual
Simplificado Oficial en la cola del la cola del
[%] [%]
[MVA] [MVA] alimentador alimentador
[kV] [kV]
A-6 4.030 4.123 2.3% 9.92 9.85 0.71%
A-7 6.259 6.167 1.5% 9.81 9.87 0.65%
C-0 3.726 3.718 0.2% 9.95 9.84 1.08%
C-3 9.741 9.623 1.2% 9.64 9.59 0.56%
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual máximo


del 2,3% para el cálculo de la demanda en análisis de contingencias, con un
diferencia de 93 [KVA] entre el Modelo Simplificado y el resultado del
Software oficial; asimismo para el cálculo de caídas de tensión se tiene un
error porcentual máximo del 1,08% para el cálculo de la caída de tensión en
análisis de contingencias, con un diferencia de 110 [V] entre el Modelo
Simplificado y el resultado del Software oficial.

Las siguiente tabla resume los resultados de la contingencia planteada bajo


el modelo simplificado de transformadores de potencia y compara los
resultados de este modelo con los resultados del software oficial (Anexo 16).

151
Tabla 30. Error porcentual entre el modelo simplificado de
transformadores de potencia en estado contingencia en alimentadores
N-1 Transformador T-191.
Demanda
Demanda Error
Transformador de modelo
Software oficial porcentual
Potencia simplificado
[MVA] [%]
[MVA]
T-190 22.83 22.91 0.33%
T-191 - - N/A
T-290 26.07 25.88 0.72%
T-291 7.49 7.33 2.18%
T-390 21.79 21.70 0.41%
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual máximo


del 2,18% para el cálculo de la demanda en análisis de contingencias, con un
diferencia de 160 [KVA] entre el Modelo Simplificado y el resultado del
Software oficial.

Las siguientes tablas consideran la demanda calculada del modelo


simplificado para transformadores de potencia y asume que esta demanda
será constante por un periodo de tres horas (desde las 18 hasta las 21), de
manera que pueda apreciarse el envejecimiento de los transformadores por
las sobrecargas resultantes de la indisponibilidad del transformador T-191.

152
Tabla 31. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-190, por la
indisponibilidad del Transformador T-191.
Demanda
Hora Temperatura Temperatura Pérdida de
modelo
del dia del tope del del punto vida útil
simplificado
[hrs] aceite [°C] caliente[°C] [días]
[MVA]
18.00 22.83 82.84 102.40 0.01
18.08 22.83 82.76 102.31 0.01
18.17 22.83 82.68 102.23 0.02
18.25 22.83 82.60 102.15 0.02
18.33 22.83 82.51 102.06 0.03
18.42 22.83 82.43 101.98 0.03
18.50 22.83 82.34 101.89 0.04
18.58 22.83 82.25 101.80 0.04
18.67 22.83 82.16 101.71 0.05
18.75 22.83 82.08 101.63 0.06
18.83 22.83 81.99 101.54 0.06
18.92 22.83 81.90 101.45 0.07
19.00 22.83 81.81 101.36 0.07
19.08 22.83 81.71 101.26 0.08
19.17 22.83 81.62 101.17 0.08
19.25 22.83 81.53 101.08 0.09
19.33 22.83 81.44 100.99 0.09
19.42 22.83 81.35 100.90 0.10
19.50 22.83 81.25 100.80 0.10
19.58 22.83 81.16 100.71 0.11
19.67 22.83 81.07 100.62 0.11
19.75 22.83 80.97 100.52 0.11
19.83 22.83 80.88 100.43 0.12
19.92 22.83 80.78 100.33 0.12
20.00 22.83 80.69 100.24 0.13
20.08 22.83 80.60 100.15 0.13

153
20.17 22.83 80.50 100.05 0.14
20.25 22.83 80.41 99.96 0.14
20.33 22.83 80.31 99.86 0.15
20.42 22.83 80.22 99.77 0.15
20.50 22.83 80.13 99.68 0.15
20.58 22.83 80.03 99.58 0.16
20.67 22.83 79.94 99.49 0.16
20.75 22.83 79.85 99.40 0.17
20.83 22.83 79.76 99.31 0.17
20.92 22.83 79.67 99.22 0.17
21.00 22.83 79.57 99.12 0.18
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-190, prevén que


la máxima temperatura del punto caliente será de 102,4°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,18 dias.

Tabla 32. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-290, por la
indisponibilidad del Transformador T-191.
Demanda
Hora Temperatura Temperatura Pérdida de
modelo
del dia del tope del del punto vida útil
simplificado
[hrs] aceite [°C] caliente[°C] [días]
[MVA]
18.00 26.07 89.59 112.82 0.02
18.08 26.07 89.51 112.74 0.04
18.17 26.07 89.42 112.66 0.06
18.25 26.07 89.34 112.57 0.08
18.33 26.07 89.26 112.49 0.09
18.42 26.07 89.17 112.40 0.11
18.50 26.07 89.08 112.32 0.13

154
18.58 26.07 89.00 112.23 0.15
18.67 26.07 88.91 112.14 0.17
18.75 26.07 88.82 112.05 0.18
18.83 26.07 88.73 111.96 0.20
18.92 26.07 88.64 111.87 0.22
19.00 26.07 88.55 111.78 0.24
19.08 26.07 88.46 111.69 0.25
19.17 26.07 88.37 111.60 0.27
19.25 26.07 88.27 111.51 0.29
19.33 26.07 88.18 111.41 0.30
19.42 26.07 88.09 111.32 0.32
19.50 26.07 88.00 111.23 0.33
19.58 26.07 87.90 111.14 0.35
19.67 26.07 87.81 111.04 0.37
19.75 26.07 87.72 110.95 0.38
19.83 26.07 87.62 110.85 0.40
19.92 26.07 87.53 110.76 0.41
20.00 26.07 87.43 110.67 0.43
20.08 26.07 87.34 110.57 0.44
20.17 26.07 87.25 110.48 0.46
20.25 26.07 87.15 110.38 0.47
20.33 26.07 87.06 110.29 0.49
20.42 26.07 86.96 110.20 0.50
20.50 26.07 86.87 110.10 0.51
20.58 26.07 86.78 110.01 0.53
20.67 26.07 86.69 109.92 0.54
20.75 26.07 86.59 109.83 0.56
20.83 26.07 86.50 109.73 0.57
20.92 26.07 86.41 109.64 0.58
21.00 26.07 86.32 109.55 0.59
Fuente: Elaboración propia.

155
Los resultados de la contingencia sobre el transformador T-190, prevén que
la máxima temperatura del punto caliente será de 112,82°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,59 dias.

Tabla 33. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-291, por la
indisponibilidad del Transformador T-191.
Demanda
Hora Temperatura Temperatura Pérdida de
modelo
del dia del tope del del punto vida útil
simplificado
[hrs] aceite [°C] caliente[°C] [días]
[MVA]
18.00 7.49 74.30 89.41 0.00
18.08 7.49 74.22 89.33 0.00
18.17 7.49 74.14 89.25 0.00
18.25 7.49 74.05 89.16 0.01
18.33 7.49 73.97 89.08 0.01
18.42 7.49 73.88 88.99 0.01
18.50 7.49 73.80 88.90 0.01
18.58 7.49 73.71 88.82 0.01
18.67 7.49 73.62 88.73 0.01
18.75 7.49 73.53 88.64 0.01
18.83 7.49 73.44 88.55 0.01
18.92 7.49 73.35 88.46 0.01
19.00 7.49 73.26 88.37 0.02
19.08 7.49 73.17 88.28 0.02
19.17 7.49 73.08 88.19 0.02
19.25 7.49 72.99 88.10 0.02
19.33 7.49 72.89 88.00 0.02
19.42 7.49 72.80 87.91 0.02
19.50 7.49 72.71 87.82 0.02
19.58 7.49 72.61 87.72 0.02

156
19.67 7.49 72.52 87.63 0.02
19.75 7.49 72.43 87.54 0.03
19.83 7.49 72.33 87.44 0.03
19.92 7.49 72.24 87.35 0.03
20.00 7.49 72.15 87.26 0.03
20.08 7.49 72.05 87.16 0.03
20.17 7.49 71.96 87.07 0.03
20.25 7.49 71.86 86.97 0.03
20.33 7.49 71.77 86.88 0.03
20.42 7.49 71.68 86.79 0.03
20.50 7.49 71.58 86.69 0.03
20.58 7.49 71.49 86.60 0.04
20.67 7.49 71.40 86.51 0.04
20.75 7.49 71.30 86.41 0.04
20.83 7.49 71.21 86.32 0.04
20.92 7.49 71.12 86.23 0.04
21.00 7.49 71.03 86.14 0.04
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-291, prevén que


la máxima temperatura del punto caliente será de 89,41°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,04 dias.

Tabla 34. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-390, por la
indisponibilidad del Transformador T-191.
Demanda
Hora Temperatura Temperatura Pérdida de
modelo
del dia del tope del del punto vida útil
simplificado
[hrs] aceite [°C] caliente[°C] [días]
[MVA]
18.00 21.79 80.68 99.08 0.00

157
18.08 21.79 80.60 99.00 0.01
18.17 21.79 80.52 98.92 0.01
18.25 21.79 80.43 98.83 0.02
18.33 21.79 80.35 98.75 0.02
18.42 21.79 80.26 98.66 0.02
18.50 21.79 80.17 98.57 0.03
18.58 21.79 80.09 98.49 0.03
18.67 21.79 80.00 98.40 0.03
18.75 21.79 79.91 98.31 0.04
18.83 21.79 79.82 98.22 0.04
18.92 21.79 79.73 98.13 0.04
19.00 21.79 79.64 98.04 0.05
19.08 21.79 79.55 97.95 0.05
19.17 21.79 79.46 97.86 0.06
19.25 21.79 79.37 97.77 0.06
19.33 21.79 79.27 97.67 0.06
19.42 21.79 79.18 97.58 0.07
19.50 21.79 79.09 97.49 0.07
19.58 21.79 78.99 97.39 0.07
19.67 21.79 78.90 97.30 0.07
19.75 21.79 78.81 97.21 0.08
19.83 21.79 78.71 97.11 0.08
19.92 21.79 78.62 97.02 0.08
20.00 21.79 78.52 96.93 0.09
20.08 21.79 78.43 96.83 0.09
20.17 21.79 78.34 96.74 0.09
20.25 21.79 78.24 96.64 0.10
20.33 21.79 78.15 96.55 0.10
20.42 21.79 78.06 96.46 0.10
20.50 21.79 77.96 96.36 0.11
20.58 21.79 77.87 96.27 0.11
20.67 21.79 77.78 96.18 0.11
20.75 21.79 77.68 96.08 0.11

158
20.83 21.79 77.59 95.99 0.12
20.92 21.79 77.50 95.90 0.12
21.00 21.79 77.41 95.81 0.12
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-291, prevén que


la máxima temperatura del punto caliente será de 99,08°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,12 dias.

5.2.2.5 INDISPONIBILIDAD DEL TRANSFORMADOR DE POTENCIA


T-190 (N-1).
Las siguientes operciones son realizadas debido a la indisponibilidad de la
unidad T-190 en la subestación Central.

o Apertura interruptor C-0


o Apertura interruptor C-3
o Apertura interruptor C-6
o Apertura interruptor C-8
o Apertura interruptor C-9
o Cierre Seccionador A-4X, A-4 toma toda la carga de C-6
o Cierre Seccionador C-3X, C-1 toma toda la carga de C-3
o Cierre Seccionador C-7G, C-0 toma parte de la carga de C-7
o Cierre Seccionador L-2X, L-2 toma toda la carga de C-8
o Cierre Seccionador C-9X, L-1 toma toda la carga de C-9

Las siguiente tabla resume los resultados de la contingencia planteada bajo


el modelo simplificado y compara los resultados de este modelo con los
resultados del software oficial (Anexo 17).

159
Tabla 35. Error porcentual entre el modelo simplificado en estado
contingencia en alimentadores N-1 Transformador T-190.
Tensión Tensión
Demanda Demanda Modelo Software
Error Error
Modelo Software Simplificado F-F oficial F-F en
Alimentador porcentual porcentual
Simplificado Oficial en la cola del la cola del
[%] [%]
[MVA] [MVA] alimentador alimentador
[kV] [kV]
A-4 7.056 6.994 0.9% 9.70 9.68 0.20%
C-1 10.230 10.003 2.3% 9.00 9.16 1.78%
C-7 3.785 3.666 3.2% 10.00 10.02 0.17%
L-1 10.431 10.235 1.9% 9.42 9.44 0.27%
L-2 8.930 8.875 0.6% 9.82 9.83 0.05%
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual máximo


del 1,9% para el cálculo de la demanda en análisis de contingencias, con un
diferencia de 196 [KVA] entre el Modelo Simplificado y el resultado del
Software oficial; asimismo para el cálculo de caídas de tensión se tiene un
error porcentual máximo del 1,78% para el cálculo de la caída de tensión en
análisis de contingencias, con un diferencia de 163 [V] entre el Modelo
Simplificado y el resultado del Software oficial.

Las siguiente tabla resume los resultados de la contingencia planteada bajo


el modelo simplificado de transformadores de potencia y compara los
resultados de este modelo con los resultados del software oficial (Anexo 18).

160
Tabla 36. Error porcentual entre el modelo simplificado de
transformadores de potencia en estado contingencia en alimentadores
N-1 Transformador T-190.
Demanda
Demanda Error
Transformador de modelo
Software oficial porcentual
Potencia simplificado
[MVA] [%]
[MVA]
T-190 - - N/A
T-191 20.67 20.43 1.20%
T-290 24.73 24.58 0.59%
T-291 4.69 4.65 0.80%
T-390 29.22 28.95 0.93%
Fuente: Elaboración propia.

Los resultados expuestos previamente denotan un error porcentual máximo


del 0,93% para el cálculo de la demanda en análisis de contingencias, con un
diferencia de 270 [KVA] entre el Modelo Simplificado y el resultado del
Software oficial.

Las siguientes tablas consideran la demanda calculada del modelo


simplificado para transformadores de potencia y asume que esta demanda
será constante por un periodo de tres horas (desde las 18 hasta las 21), de
manera que pueda apreciarse el envejecimiento de los transformadores por
las sobrecargas resultantes de la indisponibilidad del transformador T-190.

161
Tabla 37. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-191, por la
indisponibilidad del Transformador T-190.
Demanda
Temperatura Temperatura Pérdida de
Hora del dia modelo
del tope del del punto vida útil
[hrs] simplificado
aceite [°C] caliente[°C] [días]
[MVA]
18.00 20.67 121.38 163.69 6.86
18.08 20.67 121.30 163.61 13.65
18.17 20.67 121.22 163.52 20.38
18.25 20.67 121.13 163.44 27.05
18.33 20.67 121.05 163.35 33.65
18.42 20.67 120.96 163.27 40.18
18.50 20.67 120.88 163.18 46.65
18.58 20.67 120.79 163.09 53.06
18.67 20.67 120.70 163.01 59.40
18.75 20.67 120.61 162.92 65.67
18.83 20.67 120.52 162.83 71.88
18.92 20.67 120.43 162.74 78.03
19.00 20.67 120.34 162.65 84.11
19.08 20.67 120.25 162.56 90.13
19.17 20.67 120.16 162.47 96.09
19.25 20.67 120.07 162.37 101.98
19.33 20.67 119.98 162.28 107.81
19.42 20.67 119.88 162.19 113.58
19.50 20.67 119.79 162.10 119.29
19.58 20.67 119.70 162.00 124.93
19.67 20.67 119.60 161.91 130.52
19.75 20.67 119.51 161.81 136.04
19.83 20.67 119.42 161.72 141.50
19.92 20.67 119.32 161.63 146.91
20.00 20.67 119.23 161.53 152.26
20.08 20.67 119.13 161.44 157.55

162
20.17 20.67 119.04 161.34 162.78
20.25 20.67 118.95 161.25 167.96
20.33 20.67 118.85 161.16 173.08
20.42 20.67 118.76 161.06 178.14
20.50 20.67 118.67 160.97 183.15
20.58 20.67 118.57 160.88 188.11
20.67 20.67 118.48 160.78 193.01
20.75 20.67 118.39 160.69 197.87
20.83 20.67 118.30 160.60 202.67
20.92 20.67 118.20 160.51 207.42
21.00 20.67 118.11 160.42 212.12
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-191, prevén que


la máxima temperatura del punto caliente será de 163,69°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 212,12 dias. Este estado refleja el efecto de la sobrecarga con
estados de carga porximos a los 1,6 p.u.

Tabla 38. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-290, por la
indisponibilidad del Transformador T-190.

Demanda
Temperatura Temperatura Pérdida de
Hora del dia modelo
del tope del del punto vida útil
[hrs] simplificado
aceite [°C] caliente[°C] [días]
[MVA]
18.00 26.07 86.80 108.49 0.01
18.08 26.07 86.72 108.41 0.02
18.17 26.07 86.63 108.33 0.03
18.25 26.07 86.55 108.24 0.05
18.33 26.07 86.47 108.16 0.06

163
18.42 26.07 86.38 108.07 0.07
18.50 26.07 86.29 107.99 0.08
18.58 26.07 86.21 107.90 0.09
18.67 26.07 86.12 107.81 0.10
18.75 26.07 86.03 107.72 0.11
18.83 26.07 85.94 107.63 0.12
18.92 26.07 85.85 107.54 0.13
19.00 26.07 85.76 107.45 0.14
19.08 26.07 85.67 107.36 0.15
19.17 26.07 85.58 107.27 0.16
19.25 26.07 85.49 107.18 0.17
19.33 26.07 85.39 107.08 0.18
19.42 26.07 85.30 106.99 0.19
19.50 26.07 85.21 106.90 0.20
19.58 26.07 85.11 106.81 0.21
19.67 26.07 85.02 106.71 0.22
19.75 26.07 84.93 106.62 0.23
19.83 26.07 84.83 106.52 0.24
19.92 26.07 84.74 106.43 0.25
20.00 26.07 84.64 106.34 0.26
20.08 26.07 84.55 106.24 0.27
20.17 26.07 84.46 106.15 0.28
20.25 26.07 84.36 106.05 0.29
20.33 26.07 84.27 105.96 0.29
20.42 26.07 84.18 105.87 0.30
20.50 26.07 84.08 105.77 0.31
20.58 26.07 83.99 105.68 0.32
20.67 26.07 83.90 105.59 0.33
20.75 26.07 83.80 105.50 0.34
20.83 26.07 83.71 105.40 0.34
20.92 26.07 83.62 105.31 0.35
21.00 26.07 83.53 105.22 0.36
Fuente: Elaboración propia.

164
Los resultados de la contingencia sobre el transformador T-290, prevén que
la máxima temperatura del punto caliente será de 108,49°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,36 dias.

Tabla 39. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-291, por la
indisponibilidad del Transformador T-190.
Demanda
Temperatura Temperatura Pérdida de
Hora del dia modelo
del tope del del punto vida útil
[hrs] simplificado
aceite [°C] caliente[°C] [días]
[MVA]
18.00 4.69 59.73 67.96 0.00
18.08 4.69 59.65 67.87 0.00
18.17 4.69 59.57 67.79 0.00
18.25 4.69 59.49 67.71 0.00
18.33 4.69 59.40 67.62 0.00
18.42 4.69 59.31 67.54 0.00
18.50 4.69 59.23 67.45 0.00
18.58 4.69 59.14 67.36 0.00
18.67 4.69 59.05 67.27 0.00
18.75 4.69 58.96 67.19 0.00
18.83 4.69 58.88 67.10 0.00
18.92 4.69 58.79 67.01 0.00
19.00 4.69 58.69 66.92 0.00
19.08 4.69 58.60 66.83 0.00
19.17 4.69 58.51 66.73 0.00
19.25 4.69 58.42 66.64 0.00
19.33 4.69 58.33 66.55 0.00
19.42 4.69 58.23 66.46 0.00
19.50 4.69 58.14 66.36 0.00
19.58 4.69 58.05 66.27 0.00

165
19.67 4.69 57.95 66.18 0.00
19.75 4.69 57.86 66.08 0.00
19.83 4.69 57.77 65.99 0.00
19.92 4.69 57.67 65.89 0.00
20.00 4.69 57.58 65.80 0.00
20.08 4.69 57.49 65.71 0.00
20.17 4.69 57.39 65.61 0.00
20.25 4.69 57.30 65.52 0.00
20.33 4.69 57.20 65.42 0.00
20.42 4.69 57.11 65.33 0.00
20.50 4.69 57.02 65.24 0.00
20.58 4.69 56.92 65.14 0.00
20.67 4.69 56.83 65.05 0.00
20.75 4.69 56.74 64.96 0.00
20.83 4.69 56.65 64.87 0.00
20.92 4.69 56.55 64.78 0.00
21.00 4.69 56.46 64.69 0.00
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-291, prevén que


la máxima temperatura del punto caliente será de 67,96°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 0,00 dias

166
Tabla 40. Temperatura del tope del aceite, Temperatura del punto
caliente y Pérdida de vida útil del Transformador T-390, por la
indisponibilidad del Transformador T-190.
Demanda
Temperatura Temperatura Pérdida de
Hora del dia modelo
del tope del del punto vida útil
[hrs] simplificado
aceite [°C] caliente[°C] [días]
[MVA]
18.00 29.22 96.15 123.09 0.06
18.08 29.22 96.06 123.01 0.13
18.17 29.22 95.98 122.93 0.19
18.25 29.22 95.90 122.84 0.25
18.33 29.22 95.81 122.76 0.31
18.42 29.22 95.73 122.67 0.37
18.50 29.22 95.64 122.59 0.43
18.58 29.22 95.55 122.50 0.49
18.67 29.22 95.47 122.41 0.55
18.75 29.22 95.38 122.32 0.60
18.83 29.22 95.29 122.23 0.66
18.92 29.22 95.20 122.14 0.72
19.00 29.22 95.11 122.05 0.77
19.08 29.22 95.02 121.96 0.83
19.17 29.22 94.92 121.87 0.88
19.25 29.22 94.83 121.78 0.94
19.33 29.22 94.74 121.69 0.99
19.42 29.22 94.65 121.59 1.04
19.50 29.22 94.55 121.50 1.10
19.58 29.22 94.46 121.41 1.15
19.67 29.22 94.37 121.31 1.20
19.75 29.22 94.27 121.22 1.25
19.83 29.22 94.18 121.13 1.30
19.92 29.22 94.09 121.03 1.35
20.00 29.22 93.99 120.94 1.40
20.08 29.22 93.90 120.84 1.45

167
20.17 29.22 93.80 120.75 1.50
20.25 29.22 93.71 120.66 1.54
20.33 29.22 93.62 120.56 1.59
20.42 29.22 93.52 120.47 1.64
20.50 29.22 93.43 120.37 1.68
20.58 29.22 93.34 120.28 1.73
20.67 29.22 93.24 120.19 1.77
20.75 29.22 93.15 120.10 1.82
20.83 29.22 93.06 120.00 1.86
20.92 29.22 92.97 119.91 1.91
21.00 29.22 92.88 119.82 1.95
Fuente: Elaboración propia.

Los resultados de la contingencia sobre el transformador T-390, prevén que


la máxima temperatura del punto caliente será de 123,09°C y la perdida de
vida útil por la tres horas expuestas al estado de carga por la contingencia
será de 1,95 dias

168
6. CONCLUSIONES.
Los métodos de validación propuestos, permitieron obtener una fuente de
data fiable que fue ampliamente explotada para las aplicaciones técnicas del
programa. El Validador propuesto, es extrapolable para nueva data y
adaptable para almacenar mas parámetros dentro de su estructura de base
de datos.

El desarrollo del Condicionador permitió extraer información importante de la


base de datos en cortos tiempos de procesamiento. Así mismo el análisis de
redes de media tensión de 10 kV, mediante el empleo de modelos
simplificados, redujo la cantidad de ecuaciones y tiempo de cálculo
requerido.

La integración fue eficazmente realizada entre el modelo de redes de media


tensión de 10 kV simplificado con la base de datos validada, de manera que
mediante el Condicionador se pudo seleccionar y analizar satisfactoriamente
en los diferentes bloques horarios los siguientes escenarios de análisis:

o Demanda Máxima No Coincidental.

o Demanda Máxima Coincidental Del Sistema.

o Demanda Máxima Coincidental por Subestación.

o Lectura de eventos

El modelo de redes de media tensión simplificado, es aplicable, fehaciente y


capaz de reproducir los comportamiento de la red para estado normal y

169
contingencia con un error de cálculo bajo y admisible. Las validaciones
dieron un error de cálculo máximo en redes de distribución de 10 kV de:

o Menores al 1,09% para estado normal.

o Menores al 3,9% para el cálculo de demanda para estado de


contingencia.

o Menores al 2,12% para el cálculo de caída de tensión para estado de


contingencia.

El modelado del pérdidas en transformadores permitio definir el estado de


carga en cada transformador de potencia resultante de las selecciones del
condicionador. Las validaciones dieron un error de cálculo máximo en
transformadores de potencia 115/10 kV de:

o Menores al 0,80% para estado normal.

o Menores al 3,61% para estado de contingencia.

La aplicación en el programa de la norma IEC 60076-7 sobre el resultado de


estados de carga en transformadores de potencia, permitio prever la
temperatura del tope del aceite, la temperatura del punto caliente y la pérdida
de vida útli para las condiciones N-1 planteadas. De manera que se pudo
determinar por primera vez la perdida de vida útil resultado de una
contingencia antes de que esta ocurra y cuantificar el impacto de la misma.

Es así que el programa desarrollado, valida información del SCADA y esta


preparado para recibir información nueva ya sea de manera masiva o en
segmentos de tiempo real, involucra un condicionador para facilitar las

170
tareas de análisis a un solo click ,así mismo maneja errores de cálculo para
estado normal y contingencia muy bajos, convirtiéndolo en una fuente de
consulta con alto nivel de confiablidad y gran capacidad de implementación
para los requerimientos técnicos de ELFEC.

171
7. RECOMENDACIONES PARA TRABAJOS FUTUROS.
El Validador desarrollado esta basado en el sistema experto, por lo que se
recomienda complementar los análisis de validación incluyendo inteligencia
artificial, de manera que se pueda obtener un estimador de estado completo.

Desarrollar una interfaz de modelado de redes de media tensión para el


ingreso de mas alimentadores.

La implementación y manejo de el programa desarrollado en esta tesis


puede ser implementado, como parte de un DMS de redes de 10 kV y
transformadores de potencia 115/10 kV de ELFEC y deberá ser operado por
plantel técnico capacitado que conozca la topología de redes y el estado de
los transformadores de potencia.

172
BIBLIOGRAFÍA
[1] J. L. Devore, “Probabilidad y estadística para ingeniería y ciencias”,
México, D.F., Cengage Learning Editores, 2008.
[2] D. J. Sheskin, “Handbook of parametric and nonparametric statistical
procedures”,Boca Raton, FL, Chapman & Hall/CRC, 2007.
M. Laughton, “IEEE Colloquium on Artificial Intelligence Techniques in Power
Systems”, 1997.
[3] J. Han, M. Kamber y J. Pei, Data Mining Concepts and Techniques,
Waltham, MA, USA: Elsevier Inc., 2012.
[4] Cípoli, J.(1993), ELECTROBRAS. “INGENIERIA DE DISTRIBUCION”,
edit. QUALITYMARK, Brasil.
[5] Armengol B.(1998), “SISTEMAS ELECTRICOS DE DISTRIBUCION”,
Pre.- Edición, Oruro.
[6] T.A. Short, “ELECTRIC POWER DISTRIBUTION, HANDBOOK”, edit
CRC, Estados Unidos de América.
[7] Espinoza y Lara(1990), “SISTEMAS DE DISTRIBUCION
ELECTRICOS”, edit. Talleres de Programas Educativos S.A. de C.V.,
México.
[8] Central Station Engineers of the Westinghouse Electric
Corporation(1999), “ELECTRICAL TRANSMISION AND DISTRIBUCION
REFERENCE BOOK”, Pennsylvania.
[9] Espinoza y Lara(1992), “PLANEACION DE SISTEMAS DE
DISTRIBUCION”; Texto UNAM, México DF.
[10] Fink y Beaty(1995), “MANUAL DE INGENIERIA ELECTRICA”; edit.
Mc. Graw–Hill; México.
[11] Viqueira, J.(1970); “REDES ELECTRICAS”,edit. Representaciones y
Servicios de Ingeniería S.A.; Tomo – I.
[12] King y Halfter, “UNDERGROUND POWER CABLES”, edit.
LONGMAN; London and N. York.

173
[13] NRECA, “UNDERGROUND DISTRIBUTION SYSTEM DESIGN AND
INSTALLATION GUIDE ”.
[14] CENTELSA, “CATALOGO CABLES DE ALUMINIO DESNUDO”.
[15] PRYSMIAN (2011), “CABLES Y ACCESORIOS PARA MEDIA
TENSIÓN”.
[16] ABB Management Services Ltd. (2006). Service Handbook for
Transformers. ABB Ltd., Zurich, Switzerland.
[17] Ing. Germán Rocha.(2010), “SUBESTACIONES ELECTRICAS”, Pre.-
Edición, Cochabamba.
[18] IEC 354 “International Standard, loading guide for oil-inmersed power
transformers, second edition”, September 1991.
[19] IEC Standards 60076-01 “International Standard power transformers,
General”, 2011.
[21] IEC Standards 60076-02 “International Standard power transformers,
Temperature-rise”, 2010.
[22] IEC Standards 60076-07 “International Standard power transformers,
loading guide for oil-inmersed power transformers”, 2009
[23] IEC Standards 60076-07 “International Standard power transformers,
Aplication Guide”, 2009
[24] ENRIQUEZ HARPER,0 “El ABC de las máquinas eléctricas y
transformadores”, Limusa, Noriega editores, México 1994.
[25] Dr José Carlos Mendes, ABB costumer day, “Transformador de
potencia en Alta Tensión, Especificación Técina y Diseño-Desempeño
General y Valor Global”, Quito, Ecuador Febrero 2017.
[26] Luiz Yamazaki, Jornadas Técnicas ABB, “Principales aspectos para
especificar transformadores de potencia”, Chile Abril 2017.

174
ANEXOS
ANEXO 1 VALIDADOR FOR _result IN
SELECT time_feeder_id, time_success, feeder,
average, median
--MEDIANA --
FROM time_feeder
-- Function: public._final_median(numeric[])
LOOP
IF _result.feeder = 'mw_a1' THEN
-- DROP FUNCTION public._final_median(numeric[]);
raise notice 'Alimentador: A1 MW';
for _dato in
CREATE OR REPLACE FUNCTION
SELECT success_date,
public._final_median(numeric[])
mw_a1, data_id
RETURNS numeric AS
FROM data
$BODY$
WHERE
SELECT AVG(val)
to_char(success_date, 'HH24:MI') = _result.time_success
FROM (
loop
SELECT val
IF ((_dato.mw_a1 > (_result.average + (_result.average *
FROM unnest($1) val
_error_percentage))) OR (_dato.mw_a1 <
ORDER BY 1
(_result.average - (_result.average *
LIMIT 2 - MOD(array_upper($1, 1), 2)
_error_percentage)))) THEN
OFFSET CEIL(array_upper($1, 1) / 2.0) - 1
UPDATE data
) sub;
SET mw_a1 = _result.median WHERE data_id =
$BODY$
_dato.data_id;
LANGUAGE sql IMMUTABLE
END IF;
COST 100;
end loop;
ALTER FUNCTION public._final_median(numeric[])
raise notice 'HORA :
OWNER TO postgres;
%',_result.time_success;
END IF;
IF _result.feeder = 'mw_a2' THEN
--NORMALIZAR DEMANDAS MW --
raise notice 'Alimentador: A2 MW';
-- Function: public.normalize_data(numeric)
for _dato in
SELECT success_date,
-- DROP FUNCTION public.normalize_data(numeric);
mw_a2, data_id
FROM data
CREATE OR REPLACE FUNCTION
WHERE
public.normalize_data(numeric)
to_char(success_date, 'HH24:MI') = _result.time_success
RETURNS SETOF boolean AS
loop
$BODY$
IF ((_dato.mw_a2 >
DECLARE
(_result.average + (_result.average *
_error_percentage alias for $1;
_error_percentage))) OR (_dato.mw_a2 <
(_result.average - (_result.average *
_dato record;
_error_percentage)))) THEN
_result record;
BEGIN

A1
UPDATE data (_result.average - (_result.average *
SET mw_a2 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mw_a5 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mw_a4' THEN %',_result.time_success;
raise notice 'Alimentador: A4 MW'; END IF;
for _dato in IF _result.feeder = 'mw_a6' THEN
SELECT success_date, raise notice 'Alimentador: A6 MW';
mw_a4, data_id for _dato in
FROM data SELECT success_date,
WHERE mw_a6, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mw_a4 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mw_a4 < IF ((_dato.mw_a6 >
(_result.average - (_result.average * (_result.average + (_result.average *
_error_percentage)))) THEN _error_percentage))) OR (_dato.mw_a6 <
UPDATE data (_result.average - (_result.average *
SET mw_a4 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mw_a6 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mw_a5' THEN %',_result.time_success;
raise notice 'Alimentador: A5 MW'; END IF;
for _dato in IF _result.feeder = 'mw_a7' THEN
SELECT success_date, raise notice 'Alimentador: A7 MW';
mw_a5, data_id for _dato in
FROM data SELECT success_date,
WHERE mw_a7, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mw_a5 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mw_a5 <

A2
IF ((_dato.mw_a7 > WHERE
(_result.average + (_result.average * to_char(success_date, 'HH24:MI') = _result.time_success
_error_percentage))) OR (_dato.mw_a7 < loop
(_result.average - (_result.average * IF ((_dato.mw_a9 >
_error_percentage)))) THEN (_result.average + (_result.average *
UPDATE data _error_percentage))) OR (_dato.mw_a9 <
SET mw_a7 = _result.median WHERE data_id = (_result.average - (_result.average *
_dato.data_id; _error_percentage)))) THEN
END IF; UPDATE data
end loop; SET mw_a9 = _result.median WHERE data_id =
raise notice 'HORA : _dato.data_id;
%',_result.time_success; END IF;
END IF; end loop;
IF _result.feeder = 'mw_a8' THEN raise notice 'HORA :
raise notice 'Alimentador: A8 MW'; %',_result.time_success;
for _dato in END IF;
SELECT success_date, IF _result.feeder = 'mw_l1' THEN
mw_a8, data_id raise notice 'Alimentador: L1 MW';
FROM data for _dato in
WHERE SELECT success_date,
to_char(success_date, 'HH24:MI') = _result.time_success mw_l1, data_id
loop FROM data
IF ((_dato.mw_a8 > WHERE
(_result.average + (_result.average * to_char(success_date, 'HH24:MI') = _result.time_success
_error_percentage))) OR (_dato.mw_a8 < loop
(_result.average - (_result.average * IF ((_dato.mw_l1 >
_error_percentage)))) THEN (_result.average + (_result.average *
UPDATE data _error_percentage))) OR (_dato.mw_l1 < (_result.average
SET mw_a8 = _result.median WHERE data_id = - (_result.average * _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mw_l1 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mw_a9' THEN %',_result.time_success;
raise notice 'Alimentador: A9 MW'; END IF;
for _dato in IF _result.feeder = 'mw_l2' THEN
SELECT success_date, raise notice 'Alimentador: L2 MW';
mw_a9, data_id for _dato in
FROM data SELECT success_date,
mw_l2, data_id

A3
FROM data FROM data
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.mw_l2 > IF ((_dato.mw_l4 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.mw_l2 < (_result.average _error_percentage))) OR (_dato.mw_l4 < (_result.average
- (_result.average * _error_percentage)))) THEN - (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET mw_l2 = _result.median WHERE data_id = SET mw_l4 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'mw_l3' THEN IF _result.feeder = 'mw_l5' THEN
raise notice 'Alimentador: L3 MW'; raise notice 'Alimentador: L1 MW';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
mw_l3, data_id mw_l5, data_id
FROM data FROM data
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.mw_l3 > IF ((_dato.mw_l5 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.mw_l3 < (_result.average _error_percentage))) OR (_dato.mw_l5 < (_result.average
- (_result.average * _error_percentage)))) THEN - (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET mw_l3 = _result.median WHERE data_id = SET mw_l5 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'mw_l4' THEN IF _result.feeder = 'mw_c0' THEN
raise notice 'Alimentador: L4 MW'; raise notice 'Alimentador: C0 MW';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
mw_l4, data_id mw_c0, data_id

A4
FROM data SELECT success_date,
WHERE mw_c3, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mw_c0 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mw_c0 < IF ((_dato.mw_c3 >
(_result.average - (_result.average * (_result.average + (_result.average *
_error_percentage)))) THEN _error_percentage))) OR (_dato.mw_c3 <
UPDATE data (_result.average - (_result.average *
SET mw_c0 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mw_c3 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mw_c1' THEN %',_result.time_success;
raise notice 'Alimentador: C1 MW'; END IF;
for _dato in IF _result.feeder = 'mw_c4' THEN
SELECT success_date, raise notice 'Alimentador: C4 MW';
mw_c1, data_id for _dato in
FROM data SELECT success_date,
WHERE mw_c4, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mw_c1 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mw_c1 < IF ((_dato.mw_c4 >
(_result.average - (_result.average * (_result.average + (_result.average *
_error_percentage)))) THEN _error_percentage))) OR (_dato.mw_c4 <
UPDATE data (_result.average - (_result.average *
SET mw_c1 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mw_c4 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mw_c3' THEN %',_result.time_success;
raise notice 'Alimentador: C3 MW'; END IF;
for _dato in IF _result.feeder = 'mw_c5' THEN

A5
raise notice 'Alimentador: C5 MW'; END IF;
for _dato in IF _result.feeder = 'mw_c7' THEN
SELECT success_date, raise notice 'Alimentador: C7 MW';
mw_c5, data_id for _dato in
FROM data SELECT success_date,
WHERE mw_c7, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mw_c5 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mw_c5 < IF ((_dato.mw_c7 >
(_result.average - (_result.average * (_result.average + (_result.average *
_error_percentage)))) THEN _error_percentage))) OR (_dato.mw_c7 <
UPDATE data (_result.average - (_result.average *
SET mw_c5 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mw_c7 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mw_c6' THEN %',_result.time_success;
raise notice 'Alimentador: C6 MW'; END IF;
for _dato in IF _result.feeder = 'mw_c8' THEN
SELECT success_date, raise notice 'Alimentador: C8 MW';
mw_c6, data_id for _dato in
FROM data SELECT success_date,
WHERE mw_c8, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mw_c6 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mw_c6 < IF ((_dato.mw_c8 >
(_result.average - (_result.average * (_result.average + (_result.average *
_error_percentage)))) THEN _error_percentage))) OR (_dato.mw_c8 <
UPDATE data (_result.average - (_result.average *
SET mw_c6 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mw_c8 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;

A6
raise notice 'HORA : UPDATE data
%',_result.time_success; SET mvar_a1 = _result.median WHERE data_id =
END IF; _dato.data_id;
IF _result.feeder = 'mw_c9' THEN END IF;
raise notice 'Alimentador: C9 MW'; end loop;
for _dato in raise notice 'HORA :
SELECT success_date, %',_result.time_success;
mw_c9, data_id END IF;
FROM data IF _result.feeder = 'mvar_a2' THEN
WHERE raise notice 'Alimentador: A2 mvar';
to_char(success_date, 'HH24:MI') = _result.time_success for _dato in
loop SELECT success_date,
IF ((_dato.mw_c9 > mvar_a2, data_id
(_result.average + (_result.average * FROM data
_error_percentage))) OR (_dato.mw_c9 < WHERE
(_result.average - (_result.average * to_char(success_date, 'HH24:MI') = _result.time_success
_error_percentage)))) THEN loop
UPDATE data IF ((_dato.mvar_a2 >
SET mw_c9 = _result.median WHERE data_id = (_result.average + (_result.average *
_dato.data_id; _error_percentage))) OR (_dato.mvar_a2 <
END IF; (_result.average - (_result.average *
end loop; _error_percentage)))) THEN
raise notice 'HORA : UPDATE data
%',_result.time_success; SET mw_a2 = _result.median WHERE data_id =
END IF; _dato.data_id;
--NORMALIZAR DEMANDA MVAR -- END IF;
IF _result.feeder = 'mvar_a1' THEN end loop;
raise notice 'Alimentador: A1 mvar'; raise notice 'HORA :
for _dato in %',_result.time_success;
SELECT success_date, END IF;
mvar_a1, data_id IF _result.feeder = 'mvar_a4' THEN
FROM data raise notice 'Alimentador: A4 mvar';
WHERE for _dato in
to_char(success_date, 'HH24:MI') = _result.time_success SELECT success_date,
loop mvar_a4, data_id
IF ((_dato.mvar_a1 > FROM data
(_result.average + (_result.average * WHERE
_error_percentage))) OR (_dato.mvar_a1 < to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average - (_result.average * loop
_error_percentage)))) THEN IF ((_dato.mvar_a4 >
(_result.average + (_result.average *
_error_percentage))) OR (_dato.mvar_a4 <

A7
(_result.average - (_result.average * IF ((_dato.mvar_a6 >
_error_percentage)))) THEN (_result.average + (_result.average *
UPDATE data _error_percentage))) OR (_dato.mvar_a6 <
SET mvar_a4 = _result.median WHERE data_id = (_result.average - (_result.average *
_dato.data_id; _error_percentage)))) THEN
END IF; UPDATE data
end loop; SET mvar_a6 = _result.median WHERE data_id =
raise notice 'HORA : _dato.data_id;
%',_result.time_success; END IF;
END IF; end loop;
IF _result.feeder = 'mvar_a5' THEN raise notice 'HORA :
raise notice 'Alimentador: A5 mvar'; %',_result.time_success;
for _dato in END IF;
SELECT success_date, IF _result.feeder = 'mvar_a7' THEN
mvar_a5, data_id raise notice 'Alimentador: A7 mvar';
FROM data for _dato in
WHERE SELECT success_date,
to_char(success_date, 'HH24:MI') = _result.time_success mvar_a7, data_id
loop FROM data
IF ((_dato.mvar_a5 > WHERE
(_result.average + (_result.average * to_char(success_date, 'HH24:MI') = _result.time_success
_error_percentage))) OR (_dato.mvar_a5 < loop
(_result.average - (_result.average * IF ((_dato.mvar_a7 >
_error_percentage)))) THEN (_result.average + (_result.average *
UPDATE data _error_percentage))) OR (_dato.mvar_a7 <
SET mvar_a5 = _result.median WHERE data_id = (_result.average - (_result.average *
_dato.data_id; _error_percentage)))) THEN
END IF; UPDATE data
end loop; SET mvar_a7 = _result.median WHERE data_id =
raise notice 'HORA : _dato.data_id;
%',_result.time_success; END IF;
END IF; end loop;
IF _result.feeder = 'mvar_a6' THEN raise notice 'HORA :
raise notice 'Alimentador: A6 mvar'; %',_result.time_success;
for _dato in END IF;
SELECT success_date, IF _result.feeder = 'mvar_a8' THEN
mvar_a6, data_id raise notice 'Alimentador: A8 mvar';
FROM data for _dato in
WHERE SELECT success_date,
to_char(success_date, 'HH24:MI') = _result.time_success mvar_a8, data_id
loop FROM data

A8
WHERE SELECT success_date,
to_char(success_date, 'HH24:MI') = _result.time_success mvar_l1, data_id
loop FROM data
IF ((_dato.mvar_a8 > WHERE
(_result.average + (_result.average * to_char(success_date, 'HH24:MI') = _result.time_success
_error_percentage))) OR (_dato.mvar_a8 < loop
(_result.average - (_result.average * IF ((_dato.mvar_l1 >
_error_percentage)))) THEN (_result.average + (_result.average *
UPDATE data _error_percentage))) OR (_dato.mvar_l1 <
SET mvar_a8 = _result.median WHERE data_id = (_result.average - (_result.average *
_dato.data_id; _error_percentage)))) THEN
END IF; UPDATE data
end loop; SET mvar_l1 = _result.median WHERE data_id =
raise notice 'HORA : _dato.data_id;
%',_result.time_success; END IF;
END IF; end loop;
IF _result.feeder = 'mvar_a9' THEN raise notice 'HORA :
raise notice 'Alimentador: A9 mvar'; %',_result.time_success;
for _dato in END IF;
SELECT success_date, IF _result.feeder = 'mvar_l2' THEN
mvar_a9, data_id raise notice 'Alimentador: L2 mvar';
FROM data for _dato in
WHERE SELECT success_date,
to_char(success_date, 'HH24:MI') = _result.time_success mvar_l2, data_id
loop FROM data
IF ((_dato.mvar_a9 > WHERE
(_result.average + (_result.average * to_char(success_date, 'HH24:MI') = _result.time_success
_error_percentage))) OR (_dato.mvar_a9 < loop
(_result.average - (_result.average * IF ((_dato.mvar_l2 >
_error_percentage)))) THEN (_result.average + (_result.average *
UPDATE data _error_percentage))) OR (_dato.mvar_l2 <
SET mvar_a9 = _result.median WHERE data_id = (_result.average - (_result.average *
_dato.data_id; _error_percentage)))) THEN
END IF; UPDATE data
end loop; SET mvar_l2 = _result.median WHERE data_id =
raise notice 'HORA : _dato.data_id;
%',_result.time_success; END IF;
END IF; end loop;
IF _result.feeder = 'mvar_l1' THEN raise notice 'HORA :
raise notice 'Alimentador: L1 mvar'; %',_result.time_success;
for _dato in END IF;
IF _result.feeder = 'mvar_l3' THEN

A9
raise notice 'Alimentador: L3 mvar'; END IF;
for _dato in IF _result.feeder = 'mvar_l5' THEN
SELECT success_date, raise notice 'Alimentador: L5 mvar';
mvar_l3, data_id for _dato in
FROM data SELECT success_date,
WHERE mvar_l5, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mvar_l3 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mvar_l3 < IF ((_dato.mvar_l5 >
(_result.average - (_result.average * (_result.average + (_result.average *
_error_percentage)))) THEN _error_percentage))) OR (_dato.mvar_l5 <
UPDATE data (_result.average - (_result.average *
SET mvar_l3 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mvar_l5 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mvar_l4' THEN %',_result.time_success;
raise notice 'Alimentador: L4 mvar'; END IF;
for _dato in IF _result.feeder = 'mvar_c0' THEN
SELECT success_date, raise notice 'Alimentador: C0 mvar';
mvar_l4, data_id for _dato in
FROM data SELECT success_date,
WHERE mvar_c0, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mvar_l4 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mvar_l4 < IF ((_dato.mvar_c0 >
(_result.average - (_result.average * (_result.average + (_result.average *
_error_percentage)))) THEN _error_percentage))) OR (_dato.mvar_c0 <
UPDATE data (_result.average - (_result.average *
SET mvar_l4 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mvar_c0 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;

A10
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mvar_c1' THEN %',_result.time_success;
raise notice 'Alimentador: C1 mvar'; END IF;
for _dato in IF _result.feeder = 'mvar_c4' THEN
SELECT success_date, raise notice 'Alimentador: C4 mvar';
mvar_c1, data_id for _dato in
FROM data SELECT success_date,
WHERE mvar_c4, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mvar_c1 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mvar_c1 < IF ((_dato.mvar_c4 >
(_result.average - (_result.average * (_result.average + (_result.average *
_error_percentage)))) THEN _error_percentage))) OR (_dato.mvar_c4 <
UPDATE data (_result.average - (_result.average *
SET mvar_c1 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mvar_c4 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mvar_c3' THEN %',_result.time_success;
raise notice 'Alimentador: C3 mvar'; END IF;
for _dato in IF _result.feeder = 'mvar_c5' THEN
SELECT success_date, raise notice 'Alimentador: C5 mvar';
mvar_c3, data_id for _dato in
FROM data SELECT success_date,
WHERE mvar_c5, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mvar_c3 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mvar_c3 < IF ((_dato.mvar_c5 >
(_result.average - (_result.average * (_result.average + (_result.average *
_error_percentage)))) THEN _error_percentage))) OR (_dato.mvar_c5 <
UPDATE data (_result.average - (_result.average *
SET mvar_c3 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id;

A11
UPDATE data (_result.average - (_result.average *
SET mvar_c5 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mvar_c7 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mvar_c6' THEN %',_result.time_success;
raise notice 'Alimentador: C6 mvar'; END IF;
for _dato in IF _result.feeder = 'mvar_c8' THEN
SELECT success_date, raise notice 'Alimentador: C8 mvar';
mvar_c6, data_id for _dato in
FROM data SELECT success_date,
WHERE mvar_c8, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mvar_c6 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mvar_c6 < IF ((_dato.mvar_c8 >
(_result.average - (_result.average * (_result.average + (_result.average *
_error_percentage)))) THEN _error_percentage))) OR (_dato.mvar_c8 <
UPDATE data (_result.average - (_result.average *
SET mvar_c6 = _result.median WHERE data_id = _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET mvar_c8 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
IF _result.feeder = 'mvar_c7' THEN %',_result.time_success;
raise notice 'Alimentador: C7 mvar'; END IF;
for _dato in IF _result.feeder = 'mvar_c9' THEN
SELECT success_date, raise notice 'Alimentador: C9 mvar';
mvar_c7, data_id for _dato in
FROM data SELECT success_date,
WHERE mvar_c9, data_id
to_char(success_date, 'HH24:MI') = _result.time_success FROM data
loop WHERE
IF ((_dato.mvar_c7 > to_char(success_date, 'HH24:MI') = _result.time_success
(_result.average + (_result.average * loop
_error_percentage))) OR (_dato.mvar_c7 <

A12
IF ((_dato.mvar_c9 > WHERE
(_result.average + (_result.average * to_char(success_date, 'HH24:MI') = _result.time_success
_error_percentage))) OR (_dato.mvar_c9 < loop
(_result.average - (_result.average * IF ((_dato.kv_a2 >
_error_percentage)))) THEN (_result.average + (_result.average *
UPDATE data _error_percentage))) OR (_dato.kv_a2 < (_result.average
SET mvar_c9 = _result.median WHERE data_id = - (_result.average * _error_percentage)))) THEN
_dato.data_id; UPDATE data
END IF; SET kv_a2 = _result.median WHERE data_id =
end loop; _dato.data_id;
raise notice 'HORA : END IF;
%',_result.time_success; end loop;
END IF; raise notice 'HORA :
--NORMALIZAR TENSION SALIDA-- %',_result.time_success;
END IF;
IF _result.feeder = 'kv_a1' THEN IF _result.feeder = 'kv_a4' THEN
raise notice 'Alimentador: A1 kv'; raise notice 'Alimentador: A4 kv';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
kv_a1, data_id kv_a4, data_id
FROM data FROM data
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
Loop loop
IF ((_dato.kv_a1 > (_result.average + (_result.average * IF ((_dato.kv_a4 >
_error_percentage))) OR (_dato.kv_a1 < (_result.average (_result.average + (_result.average *
- (_result.average * _error_percentage)))) THEN _error_percentage))) OR (_dato.kv_a4 < (_result.average
UPDATE data - (_result.average * _error_percentage)))) THEN
SET kv_a1 = _result.median WHERE data_id = UPDATE data
_dato.data_id; SET kv_a4 = _result.median WHERE data_id =
END IF; _dato.data_id;
end loop; END IF;
raise notice 'HORA : end loop;
%',_result.time_success; raise notice 'HORA :
END IF; %',_result.time_success;
IF _result.feeder = 'kv_a2' THEN END IF;
raise notice 'Alimentador: A2 kv'; IF _result.feeder = 'kv_a5' THEN
for _dato in raise notice 'Alimentador: A5 kv';
SELECT success_date, for _dato in
kv_a2, data_id SELECT success_date,
FROM data kv_a5, data_id
FROM data

A13
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.kv_a5 > IF ((_dato.kv_a7 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.kv_a5 < (_result.average _error_percentage))) OR (_dato.kv_a7 < (_result.average
- (_result.average * _error_percentage)))) THEN - (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET kv_a5 = _result.median WHERE data_id = SET kv_a7 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'kv_a6' THEN IF _result.feeder = 'kv_a8' THEN
raise notice 'Alimentador: A6 kv'; raise notice 'Alimentador: A8 kv';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
kv_a6, data_id kv_a8, data_id
FROM data FROM data
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.kv_a6 > IF ((_dato.kv_a8 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.kv_a6 < (_result.average _error_percentage))) OR (_dato.kv_a8 < (_result.average
- (_result.average * _error_percentage)))) THEN - (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET kv_a6 = _result.median WHERE data_id = SET kv_a8 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'kv_a7' THEN IF _result.feeder = 'kv_a9' THEN
raise notice 'Alimentador: A7 kv'; raise notice 'Alimentador: A9 kv';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
kv_a7, data_id kv_a9, data_id
FROM data FROM data

A14
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.kv_a9 > IF ((_dato.kv_l2 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.kv_a9 < (_result.average _error_percentage))) OR (_dato.kv_l2 < (_result.average -
- (_result.average * _error_percentage)))) THEN (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET kv_a9 = _result.median WHERE data_id = SET kv_l2 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'kv_l1' THEN IF _result.feeder = 'kv_l3' THEN
raise notice 'Alimentador: L1 kv'; raise notice 'Alimentador: L3 MW';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
kv_l1, data_id kv_l3, data_id
FROM data FROM data
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.kv_l1 > IF ((_dato.kv_l3 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.kv_l1 < (_result.average - _error_percentage))) OR (_dato.kv_l3 < (_result.average -
(_result.average * _error_percentage)))) THEN (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET kv_l1 = _result.median WHERE data_id = SET kv_l3 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'kv_l2' THEN IF _result.feeder = 'kv_l4' THEN
raise notice 'Alimentador: L2 kv'; raise notice 'Alimentador: L4 kv';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
kv_l2, data_id kv_l4, data_id
FROM data FROM data

A15
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.kv_l4 > IF ((_dato.kv_c0 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.kv_l4 < (_result.average - _error_percentage))) OR (_dato.kv_c0 < (_result.average -
(_result.average * _error_percentage)))) THEN (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET kv_l4 = _result.median WHERE data_id = SET kv_c0 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'kv_l5' THEN IF _result.feeder = 'kv_c1' THEN
raise notice 'Alimentador: L1 kv'; raise notice 'Alimentador: C1 kv';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
kv_l5, data_id kv_c1, data_id
FROM data FROM data
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.kv_l5 > IF ((_dato.kv_c1 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.kv_l5 < (_result.average - _error_percentage))) OR (_dato.kv_c1 < (_result.average -
(_result.average * _error_percentage)))) THEN (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET kv_l5 = _result.median WHERE data_id = SET kv_c1 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'kv_c0' THEN IF _result.feeder = 'kv_c3' THEN
raise notice 'Alimentador: C0 kv'; raise notice 'Alimentador: C3 kv';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
kv_c0, data_id kv_c3, data_id
FROM data FROM data

A16
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.kv_c3 > IF ((_dato.kv_c5 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.kv_c3 < (_result.average - _error_percentage))) OR (_dato.kv_c5 < (_result.average -
(_result.average * _error_percentage)))) THEN (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET kv_c3 = _result.median WHERE data_id = SET kv_c5 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'kv_c4' THEN IF _result.feeder = 'kv_c6' THEN
raise notice 'Alimentador: C4 kv'; raise notice 'Alimentador: C6 kv';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
kv_c4, data_id kv_c6, data_id
FROM data FROM data
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.kv_c4 > IF ((_dato.kv_c6 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.kv_c4 < (_result.average - _error_percentage))) OR (_dato.kv_c6 < (_result.average -
(_result.average * _error_percentage)))) THEN (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET kv_c4 = _result.median WHERE data_id = SET kv_c6 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'kv_c5' THEN IF _result.feeder = 'kv_c7' THEN
raise notice 'Alimentador: C5 kv'; raise notice 'Alimentador: C7 kv';
for _dato in for _dato in
SELECT success_date, SELECT success_date,
kv_c5, data_id kv_c7, data_id
FROM data FROM data

A17
WHERE WHERE
to_char(success_date, 'HH24:MI') = _result.time_success to_char(success_date, 'HH24:MI') = _result.time_success
loop loop
IF ((_dato.kv_c7 > IF ((_dato.kv_c9 >
(_result.average + (_result.average * (_result.average + (_result.average *
_error_percentage))) OR (_dato.kv_c7 < (_result.average - _error_percentage))) OR (_dato.kv_c9 < (_result.average -
(_result.average * _error_percentage)))) THEN (_result.average * _error_percentage)))) THEN
UPDATE data UPDATE data
SET kv_c7 = _result.median WHERE data_id = SET kv_c9 = _result.median WHERE data_id =
_dato.data_id; _dato.data_id;
END IF; END IF;
end loop; end loop;
raise notice 'HORA : raise notice 'HORA :
%',_result.time_success; %',_result.time_success;
END IF; END IF;
IF _result.feeder = 'kv_c8' THEN END LOOP;
raise notice 'Alimentador: C8 kv'; return next TRUE;
for _dato in END;$BODY$
SELECT success_date, LANGUAGE plpgsql VOLATILE
kv_c8, data_id COST 100
FROM data ROWS 1000;
WHERE ALTER FUNCTION public.normalize_data(numeric)
to_char(success_date, 'HH24:MI') = _result.time_success OWNER TO postgres;
loop
IF ((_dato.kv_c8 >
(_result.average + (_result.average *
_error_percentage))) OR (_dato.kv_c8 < (_result.average -
(_result.average * _error_percentage)))) THEN
UPDATE data
SET kv_c8 = _result.median WHERE data_id =
_dato.data_id;
END IF;
end loop;
raise notice 'HORA :
%',_result.time_success;
END IF;
IF _result.feeder = 'kv_c9' THEN
raise notice 'Alimentador: C9 kv';
for _dato in
SELECT success_date,
kv_c9, data_id
FROM data

A18
ANEXO 2 CONDICIONADOR .getConnection(getConnection(),
"postgres", "123");
stmt = c.createStatement();
--CONEXIÓN DE LA BASE DE DATOS--
import java.sql.Connection;
ResultSet rs = stmt.executeQuery(SQL);
import java.sql.DriverManager;
List<Map<String, Object>> result = new
import java.sql.ResultSet;
ArrayList<>();
import java.sql.ResultSetMetaData;
result = convertResultSetToList(rs);
import java.sql.SQLException;
rs.close();
import java.sql.Statement;
stmt.close();
import java.util.ArrayList;
c.close();
import java.util.HashMap;
return result;
import java.util.List;
} catch (Exception e) {
import java.util.Map;
e.printStackTrace();
System.err.println(e.getClass().getName() + ": " +
public class PostgreSQLJDBC {
e.getMessage());
System.exit(0);
public static List<Map<String, Object>>
return new ArrayList<>();
convertResultSetToList(ResultSet rs) throws SQLException
}
{
}
ResultSetMetaData md = rs.getMetaData();
int columns = md.getColumnCount();
public static boolean executeQueryNoResult(String
List<Map<String, Object>> list = new ArrayList<>();
SQL) {
while (rs.next()) {
Connection c = null;
Map<String, Object> row = new HashMap<String,
Statement stmt = null;
Object>(columns);
try {
for (int i = 1; i <= columns; ++i) {
Class.forName("org.postgresql.Driver");
row.put(md.getColumnName(i), rs.getObject(i));
c = DriverManager
}
.getConnection(getConnection(),
list.add(row);
"postgres", "123");
}
stmt = c.createStatement();
System.out.println(SQL);
return list;
int result = stmt.executeUpdate(SQL);
}
stmt.close();
c.close();
public static List<Map<String, Object>>
return true;
executeQuery(String SQL) {
} catch (Exception e) {
Connection c = null;
e.printStackTrace();
Statement stmt = null;
System.err.println(e.getClass().getName() + ": " +
try {
e.getMessage());
Class.forName("org.postgresql.Driver");
System.exit(0);
c = DriverManager
return false;

A19
}
}

public static String getConnection() {


String database = "sdata2";
String address = "localhost:5432";
return "jdbc:postgresql://" + address + "/" +
database;
}
}

A20
}
--METODO QUE OBTIENE LOS DATOS DE
CONFIGURACIONES DE LOS BLOQUES HORARIOS-- /**
* * Evento que lanza la ventana de salida del sistema
* @return *
*/ * @param event
public String getBlockSQL() { */
PostgreSQLJDBC dao = new PostgreSQLJDBC(); @FXML
String Query = ""; void exitAction(ActionEvent event) {
boolean sw = false; Alert alert = new Alert(AlertType.CONFIRMATION);
main_result = dao.executeQuery("SELECT * FROM alert.setContentText("Esta seguro que desea salir de
block_config;"); la aplicación?");
if (main_result.size() > 0) { alert.setHeaderText(null);
Map<String, Object> map = main_result.get(0); Optional<ButtonType> result = alert.showAndWait();
if if (result.get() == ButtonType.OK) {
(Boolean.parseBoolean(map.get("bajo").toString())) { Platform.exit();
Query += "to_char(success_date, 'HH24:MI') } else {
between '00:00' AND '08:00' "; alert.close();
sw = true; }
} }
if
(Boolean.parseBoolean(map.get("medio").toString())) { --EVENTO QUE MANEJA LAS PETICIONES PARA EL
if (sw) { MAXIMO COINCIDENTAL DEL SISTEMA--
Query += "OR ";
} * @param event
Query += "to_char(success_date, 'HH24:MI') */
between '08:00' AND '16:00'"; @FXML
sw = true; void getMaximoCoincidental(ActionEvent event) {
} PostgreSQLJDBC dao = new PostgreSQLJDBC();
if main_result = dao.executeQuery("SELECT
(Boolean.parseBoolean(map.get("alto").toString())) { data.mw_a1,\n"
if (sw) { + " data.mw_a2,\n"
Query += "OR "; + " data.mw_a4,\n"
} + " data.mw_a5,\n"
Query += "to_char(success_date, 'HH24:MI') + " data.mw_a6,\n"
between '16:00' AND '24:00'"; + " data.mw_a7,\n"
sw = true; + " data.mw_a8,\n"
} + " data.mw_a9,\n"
} + " data.mw_l1,\n"
System.out.println(Query); + " data.mw_l2,\n"
return Query; + " data.mw_l3,\n"
} + " data.mw_l4,\n"

A21
+ " data.mw_l5,\n" + " data.kv_l2,\n"
+ " data.mw_c0,\n" + " data.kv_l3,\n"
+ " data.mw_c1,\n" + " data.kv_l4,\n"
+ " data.mw_c3,\n" + " data.kv_l5,\n"
+ " data.mw_c4,\n" + " data.kv_c0,\n"
+ " data.mw_c5,\n" + " data.kv_c1,\n"
+ " data.mw_c6,\n" + " data.kv_c3,\n"
+ " data.mw_c7,\n" + " data.kv_c4,\n"
+ " data.mw_c8,\n" + " data.kv_c5,\n"
+ " data.mw_c9,\n" + " data.kv_c6,\n"
+ " data.mvar_a1,\n" + " data.kv_c7,\n"
+ " data.mvar_a2,\n" + " data.kv_c8,\n"
+ " data.mvar_a4,\n" + " data.kv_c9,\n"
+ " data.mvar_a5,\n" +" sqrt((data.mw_a1 ^ 2::double precision) +
+ " data.mvar_a6,\n" (data.mvar_a1 ^ 2::double precision)) / 8.31::double
+ " data.mvar_a7,\n" precision * 100::double precision AS a1_percent,\n"
+ " data.mvar_a8,\n" +" sqrt((data.mw_a2 ^ 2::double precision) +
+ " data.mvar_a9,\n" (data.mvar_a2 ^ 2::double precision)) / 8.31::double
+ " data.mvar_l1,\n" precision * 100::double precision AS a2_percent,\n"

+ " data.mvar_l2,\n" +" sqrt((data.mw_a4 ^ 2::double precision) +


+ " data.mvar_l3,\n" (data.mvar_a4 ^ 2::double precision)) / 8.31::double

+ " data.mvar_l4,\n" precision * 100::double precision AS a4_percent,\n"

+ " data.mvar_l5,\n" +" sqrt((data.mw_a5 ^ 2::double precision) +

+ " data.mvar_c0,\n" (data.mvar_a5 ^ 2::double precision)) / 8.31::double

+ " data.mvar_c1,\n" precision * 100::double precision AS a5_percent,\n"

+ " data.mvar_c3,\n" +" sqrt((data.mw_a6 ^ 2::double precision) +

+ " data.mvar_c4,\n" (data.mvar_a6 ^ 2::double precision)) / 8.31::double

+ " data.mvar_c5,\n" precision * 100::double precision AS a6_percent,\n"

+ " data.mvar_c6,\n" +" sqrt((data.mw_a7 ^ 2::double precision) +

+ " data.mvar_c7,\n" (data.mvar_a7 ^ 2::double precision)) / 8.31::double

+ " data.mvar_c8,\n" precision * 100::double precision AS a7_percent,\n"

+ " data.mvar_c9,\n" +" sqrt((data.mw_a8 ^ 2::double precision) +

+ " data.kv_a1,\n" (data.mvar_a8 ^ 2::double precision)) / 8.31::double


precision * 100::double precision AS a8_percent,\n"
+ " data.kv_a2,\n"
+" sqrt((data.mw_a9 ^ 2::double precision) +
+ " data.kv_a4,\n"
(data.mvar_a9 ^ 2::double precision)) / 8.31::double
+ " data.kv_a5,\n"
precision * 100::double precision AS a9_percent,\n"
+ " data.kv_a6,\n"
+" sqrt((data.mw_l1 ^ 2::double precision) +
+ " data.kv_a7,\n"
(data.mvar_l1 ^ 2::double precision)) / 8.31::double
+ " data.kv_a8,\n"
precision * 100::double precision AS l1_percent,\n"
+ " data.kv_a9,\n"
+ " data.kv_l1,\n"

A22
+" sqrt((data.mw_l2 ^ 2::double precision) + ((data.mvar_a1 + data.mvar_a2 + data.mvar_a4 +
(data.mvar_l2 ^ 2::double precision)) / 8.31::double data.mvar_a5 + data.mvar_a7 + data.mvar_a9) ^
precision * 100::double precision AS l2_percent,\n" 2::double precision)) AS t290_mva,\n"
+" sqrt((data.mw_l3 ^ 2::double precision) + +" sqrt((((data.mw_a6 + data.mw_a8 + 0.07) *
(data.mvar_l3 ^ 2::double precision)) / 8.31::double 1.00::double precision) ^ 2::double precision) +
precision * 100::double precision AS l3_percent,\n" ((data.mvar_a6 + data.mvar_a8) ^ 2::double precision))
+" sqrt((data.mw_l4 ^ 2::double precision) + AS t291_mva,\n"
(data.mvar_l4 ^ 2::double precision)) / 8.31::double + " sqrt((((data.mw_c0 + data.mw_c3 +
precision * 100::double precision AS l4_percent,\n" data.mw_c6 + data.mw_c8 + data.mw_c9 + 0.175) *
+" sqrt((data.mw_l5 ^ 2::double precision) + 1.00::double precision) ^ 2::double precision) +
(data.mvar_l5 ^ 2::double precision)) / 8.31::double ((data.mvar_c0 + data.mvar_c3 + data.mvar_c6 +
precision * 100::double precision AS l5_percent,\n" data.mvar_c8 + data.mvar_c9) ^ 2::double precision)) AS
+" sqrt((data.mw_c0 ^ 2::double precision) + t190_mva,\n"
(data.mvar_c0 ^ 2::double precision)) / 8.31::double + " sqrt((((data.mw_c1 + data.mw_c4 +
precision * 100::double precision AS c0_percent,\n" data.mw_c5 + data.mw_c7 + 0.175) * 1.00::double
+" sqrt((data.mw_c1 ^ 2::double precision) + precision) ^ 2::double precision) + ((data.mvar_c1 +
(data.mvar_c1 ^ 2::double precision)) / 8.31::double data.mvar_c4 + data.mvar_c5 + data.mvar_c7) ^
precision * 100::double precision AS c1_percent,\n" 2::double precision)) AS t191_mva,\n"
+" sqrt((data.mw_c3 ^ 2::double precision) + + " sqrt((((data.mw_l1 + data.mw_l2 +
(data.mvar_c3 ^ 2::double precision)) / 8.31::double data.mw_l3 + data.mw_l4 + data.mw_l5 + 0.175) *
precision * 100::double precision AS c3_percent,\n" 1.00::double precision) ^ 2::double precision) +
+" sqrt((data.mw_c4 ^ 2::double precision) + ((data.mvar_l1 + data.mvar_l2 + data.mvar_l3 +
(data.mvar_c4 ^ 2::double precision)) / 8.31::double data.mvar_l4 + data.mvar_l5) ^ 2::double precision)) AS
precision * 100::double precision AS c4_percent,\n" t390_mva,\n"
+" sqrt((data.mw_c5 ^ 2::double precision) + + " sqrt((((data.mw_a1 + data.mw_a2 +
(data.mvar_c5 ^ 2::double precision)) / 8.31::double data.mw_a4 + data.mw_a5 + data.mw_a7 + data.mw_a9
precision * 100::double precision AS c5_percent,\n" + 0.175) * 1.00::double precision) ^ 2::double precision) +
+" sqrt((data.mw_c6 ^ 2::double precision) + ((data.mvar_a1 + data.mvar_a2 + data.mvar_a4 +
(data.mvar_c6 ^ 2::double precision)) / 8.31::double data.mvar_a5 + data.mvar_a7 + data.mvar_a9) ^
precision * 100::double precision AS c6_percent,\n" 2::double precision)) / 25::double precision * 100::double

+" sqrt((data.mw_c7 ^ 2::double precision) + precision AS t290_percent,\n"

(data.mvar_c7 ^ 2::double precision)) / 8.31::double +" sqrt((((data.mw_a6 + data.mw_a8 + 0.07) *


precision * 100::double precision AS c7_percent,\n" 1.00::double precision) ^ 2::double precision) +

+" sqrt((data.mw_c8 ^ 2::double precision) + ((data.mvar_a6 + data.mvar_a8) ^ 2::double precision)) /

(data.mvar_c8 ^ 2::double precision)) / 8.31::double 10::double precision * 100::double precision AS

precision * 100::double precision AS c8_percent,\n" t291_percent,\n"

+" sqrt((data.mw_c9 ^ 2::double precision) + + " sqrt((((data.mw_c0 + data.mw_c3 +

(data.mvar_c9 ^ 2::double precision)) / 8.31::double data.mw_c6 + data.mw_c8 + data.mw_c9 + 0.175) *


precision * 100::double precision AS c9_percent,\n" 1.00::double precision) ^ 2::double precision) +

+ " sqrt((((data.mw_a1 + data.mw_a2 + ((data.mvar_c0 + data.mvar_c3 + data.mvar_c6 +

data.mw_a4 + data.mw_a5 + data.mw_a7 + data.mw_a9 data.mvar_c8 + data.mvar_c9) ^ 2::double precision)) *

+ 0.175) * 1.00::double precision) ^ 2::double precision) +

A23
100::double precision / 25::double precision AS +"
t190_percent,\n" lb_a_190_a_8(mw_a8::numeric,mvar_a8::num
+ " sqrt((((data.mw_c1 + data.mw_c4 + eric,kv_a8::numeric),\n"
data.mw_c5 + data.mw_c7 + 0.175) * 1.00::double +"
precision) ^ 2::double precision) + ((data.mvar_c1 + lb_a_191_a_1(mw_a1::numeric,mvar_a1::num
data.mvar_c4 + data.mvar_c5 + data.mvar_c7) ^ eric,kv_a1::numeric),\n"
2::double precision)) / 12.5::double precision * +"
100::double precision AS t191_percent,\n" lb_a_191_l_3(mw_l3::numeric,mvar_l3::nume
+ " sqrt((((data.mw_l1 + data.mw_l2 + ric,kv_l3::numeric),\n"
data.mw_l3 + data.mw_l4 + data.mw_l5 + 0.175) * +"
1.00::double precision) ^ 2::double precision) + lb_a_1l_a_1(mw_a1::numeric,mvar_a1::numer
((data.mvar_l1 + data.mvar_l2 + data.mvar_l3 + ic,kv_a1::numeric),\n"
data.mvar_l4 + data.mvar_l5) ^ 2::double precision)) / +"
25::double precision * 100::double precision AS lb_a_1l_a_8(mw_a8::numeric,mvar_a8::numer
t390_percent,\n" ic,kv_a8::numeric),\n"
+ " data.success_date AS date_a1,\n" +"
+ " data.success_date AS date_a2,\n" lb_a_4x_a_4(mw_a4::numeric,mvar_a4::nume
+ " data.success_date AS date_a4,\n" ric,kv_a4::numeric),\n"
+ " data.success_date AS date_a5,\n" +"
+ " data.success_date AS date_a6,\n" lb_a_4x_c_6(mw_c6::numeric,mvar_c6::nume
+ " data.success_date AS date_a7,\n" ric,kv_c6::numeric),\n"
+ " data.success_date AS date_a8,\n" +"
+ " data.success_date AS date_a9,\n" lb_a_5x_a_5(mw_a5::numeric,mvar_a5::nume
+ " data.success_date AS date_l1,\n" ric,kv_a5::numeric),\n"
+ " data.success_date AS date_l2,\n" +"
+ " data.success_date AS date_l3,\n" lb_a_5x_c_3(mw_c3::numeric,mvar_c3::nume

+ " data.success_date AS date_l4,\n" ric,kv_c3::numeric),\n"

+ " data.success_date AS date_l5,\n" +"

+ " data.success_date AS date_c0,\n" lb_a_830_a_1(mw_a1::numeric,mvar_a1::num

+ " data.success_date AS date_c1,\n" eric,kv_a1::numeric),\n"

+ " data.success_date AS date_c3,\n" +"

+ " data.success_date AS date_c4,\n" lb_a_830_a_8(mw_a8::numeric,mvar_a8::num

+ " data.success_date AS date_c5,\n" eric,kv_a8::numeric),\n"

+ " data.success_date AS date_c6,\n" +"

+ " data.success_date AS date_c7,\n" lb_a_8x_a_8(mw_a8::numeric,mvar_a8::nume

+ " data.success_date AS date_c8,\n" ric,kv_a8::numeric),\n"

+ " data.success_date AS date_c9,\n" +"

+" ------------Puntos de interconexión----- lb_a_8x_l_4(mw_l4::numeric,mvar_l4::numeri

---------------------\n" c,kv_l4::numeric),\n"

+ " +"

lb_a_190_a_1(mw_a1::numeric,mvar_a1::numeric,kv_a1: lb_a_9x_a_5(mw_a5::numeric,mvar_a5::nume

:numeric),\n" ric,kv_a5::numeric),\n"

A24
+" +"
lb_a_9x_a_9(mw_a9::numeric,mvar_a9::nume lb_c_513_c_6(mw_c6::numeric,mvar_c6::num
ric,kv_a9::numeric),\n" eric,kv_c6::numeric),\n"
+" +"
lb_c_0x_c_0(mw_c0::numeric,mvar_c0::numer lb_c_5l_c_4(mw_c4::numeric,mvar_c4::numeri
ic,kv_c0::numeric),\n" c,kv_c4::numeric),\n"
+" +"
lb_c_0x_l_2(mw_l2::numeric,mvar_l2::numeri lb_c_5l_c_5(mw_c5::numeric,mvar_c5::numeri
c,kv_l2::numeric),\n" c,kv_c5::numeric),\n"
+" +"
lb_c_0z_c_0(mw_c0::numeric,mvar_c0::numer lb_c_5x_a_7(mw_a7::numeric,mvar_a7::nume
ic,kv_c0::numeric),\n" ric,kv_a7::numeric),\n"
+" +"
lb_c_0z_l_3(mw_l3::numeric,mvar_l3::numeric lb_c_5x_c_5(mw_c5::numeric,mvar_c5::numer
,kv_l3::numeric),\n" ic,kv_c5::numeric),\n"
+" +"
lb_c_1x_c_1(mw_c1::numeric,mvar_c1::numer lb_c_7g_c_0(mw_c0::numeric,mvar_c0::numer
ic,kv_c1::numeric),\n" ic,kv_c0::numeric),\n"
+" +"
lb_c_1x_c_4(mw_c4::numeric,mvar_c4::numer lb_c_7g_c_7(mw_c7::numeric,mvar_c7::numer
ic,kv_c4::numeric),\n" ic,kv_c7::numeric),\n"
+" +"
lb_c_3f_a_6(mw_a6::numeric,mvar_a6::numer lb_c_8x_c_8(mw_c8::numeric,mvar_c8::numer
ic,kv_a6::numeric),\n" ic,kv_c8::numeric),\n"
+" +"
lb_c_3f_c_3(mw_c3::numeric,mvar_c3::numer lb_c_8x_l_1(mw_l1::numeric,mvar_l1::numeri
ic,kv_c3::numeric),\n" c,kv_l1::numeric),\n"
+" +"
lb_c_3x_c_1(mw_c1::numeric,mvar_c1::numer lb_c_9x_c_9(mw_c9::numeric,mvar_c9::numer
ic,kv_c1::numeric),\n" ic,kv_c9::numeric),\n"
+" +"
lb_c_3x_c_3(mw_c3::numeric,mvar_c3::numer lb_c_9x_l_1(mw_l1::numeric,mvar_l1::numeri
ic,kv_c3::numeric),\n" c,kv_l1::numeric),\n"
+" +"
lb_c_4x_a_6(mw_a6::numeric,mvar_a6::nume lb_l_2x_c_8(mw_c8::numeric,mvar_c8::numeri
ric,kv_a6::numeric),\n" c,kv_c8::numeric),\n"
+" +"
lb_c_4x_c_4(mw_c4::numeric,mvar_c4::numer lb_l_2x_l_2(mw_l2::numeric,mvar_l2::numeric
ic,kv_c4::numeric),\n" ,kv_l2::numeric),\n"
+" +"
lb_c_513_c_5(mw_c5::numeric,mvar_c5::num lb_l_325xx_c_0(mw_c0::numeric,mvar_c0::nu
eric,kv_c5::numeric),\n" meric,kv_c0::numeric),\n"

A25
+" _a_5_mvar(mvar_a5::numeric),ylw_a_5r_a_5_kv(mw_a5:
lb_l_325xx_l_3(mw_l3::numeric,mvar_l3::num :numeric,mvar_a5::numeric,kv_a5::numeric),\n"
eric,kv_l3::numeric),\n" +"
+" ylw_a_720_a_7_kv(mw_a7::numeric,mvar_a7:
lb_l_3b_l_3(mw_l3::numeric,mvar_l3::numeric :numeric,kv_a7::numeric),\n"
,kv_l3::numeric),\n" +"
+" ylw_a_9r_a_9_mw(mw_a9::numeric),ylw_a_9r
lb_l_3b_l_5(mw_l5::numeric,mvar_l5::numeric _a_9_mvar(mvar_a9::numeric),ylw_a_9r_a_9_kv(mw_a9:
,kv_l5::numeric),\n" :numeric,mvar_a9::numeric,kv_a9::numeric),\n"
+" +"
lb_l_3x_a_2(mw_a2::numeric,mvar_a2::numer ylw_a_990_a_9_mw(mw_a9::numeric),ylw_a_
ic,kv_a2::numeric),\n" 990_a_9_mvar(mvar_a9::numeric),ylw_a_990_a_9_kv(m
+" w_a9::numeric,mvar_a9::numeric,kv_a9::numeric),\n"
lb_l_3x_l_3(mw_a1::numeric,mvar_a1::numeri +"
c,kv_a1::numeric),\n" ylw_a_603_a_6_kv(mw_a6::numeric,mvar_a6:
+" :numeric,kv_a6::numeric),\n"
lb_l_4x_l_4(mw_l4::numeric,mvar_l4::numeric +"
,kv_l4::numeric),\n" ylw_a_835_a_8_mw(mw_a8::numeric),ylw_a_
+" 835_a_8_mvar(mvar_a8::numeric),ylw_a_835_a_8_kv(m
lb_l_4x_l_5(mw_l5::numeric,mvar_l5::numeric w_a8::numeric,mvar_a8::numeric,kv_a8::numeric),\n"
,kv_l5::numeric),\n" +"
+" ylw_a_8r_a_8_mw(mw_a8::numeric),ylw_a_8r
lb_l_5x_a_1(mw_a1::numeric,mvar_a1::numer _a_8_mvar(mvar_a8::numeric),ylw_a_8r_a_8_kv(mw_a8:
ic,kv_a1::numeric),\n" :numeric,mvar_a8::numeric,kv_a8::numeric),\n"
+" +"
lb_l_5x_l_5(mw_l5::numeric,mvar_l5::numeric ylw_c_1r_c_1_mw(mw_c1::numeric),ylw_c_1r
,kv_l5::numeric),\n" _c_1_mvar(mvar_c1::numeric),ylw_c_1r_c_1_kv(mw_c1::
+" -----------tramos numeric,mvar_c1::numeric,kv_c1::numeric),\n"
intermedios---------------\n" +"
+" ylw_c_1t_c_1_mw(mw_c1::numeric),ylw_c_1t
ylw_a_1a_a_1_kv(mw_a1::numeric,mvar_a1:: _c_1_mvar(mvar_c1::numeric),ylw_c_1t_c_1_kv(mw_c1::
numeric,kv_a1::numeric),\n" numeric,mvar_c1::numeric,kv_c1::numeric),\n"
+" +"
ylw_a_2r_a_2_mw(mw_a2::numeric),ylw_a_2r ylw_c_5a_c_5_mw(mw_c5::numeric),ylw_c_5
_a_2_mvar(mvar_a2::numeric),ylw_a_2r_a_2_kv(mw_a2: a_c_5_mvar(mvar_c5::numeric),ylw_c_5a_c_5_kv(mw_c5
:numeric,mvar_a2::numeric,kv_a2::numeric),\n" ::numeric,mvar_c5::numeric,kv_c5::numeric),\n"
+" +"
ylw_a_4i_a_4_mw(mw_a4::numeric),ylw_a_4i ylw_c_5e_c_5_kv(mw_c5::numeric,mvar_c5::n
_a_4_mvar(mvar_a4::numeric),ylw_a_4i_a_4_kv(mw_a4: umeric,kv_c5::numeric),\n"
:numeric,mvar_a4::numeric,kv_a4::numeric),\n" +"
+" ylw_c_7i_c_7_mw(mw_c7::numeric),ylw_c_7i
ylw_a_5r_a_5_mw(mw_a5::numeric),ylw_a_5r

A26
_c_7_mvar(mvar_c7::numeric),ylw_c_7i_c_7_kv(mw_c7:: +"
numeric,mvar_c7::numeric,kv_c7::numeric),\n" ylw_l_2r_l_2_mw(mw_l2::numeric),ylw_l_2r_l
+" _2_mvar(mvar_l2::numeric),ylw_l_2r_l_2_kv(mw_l2::nu
ylw_a_3e_c_7_kv(mw_c7::numeric,mvar_c7::n meric,mvar_l2::numeric,kv_l2::numeric),\n"
umeric,kv_c7::numeric),\n" +"
+" ylw_l_3r_l_3_mw(mw_l3::numeric),ylw_l_3r_l
ylw_c_020aa_c_0_mw(mw_c0::numeric),ylw_ _3_mvar(mvar_l3::numeric),ylw_l_3r_l_3_kv(mw_l3::nu
c_020aa_c_0_mvar(mvar_c0::numeric),ylw_c_020aa_c_0 meric,mvar_l3::numeric,kv_l3::numeric),\n"
_kv(mw_c0::numeric,mvar_c0::numeric,kv_c0::numeric),\ +"
n" ylw_l_4r_l_4_mw(mw_l4::numeric),ylw_l_4r_l
+" _4_mvar(mvar_l4::numeric),ylw_l_4r_l_4_kv(mw_l4::nu
ylw_c_020hj_c_0_kv(mw_c0::numeric,mvar_c meric,mvar_l4::numeric,kv_l4::numeric),\n"
0::numeric,kv_c0::numeric),\n" +"
+" ylw_l_5r_l_5_mw(mw_l5::numeric),ylw_l_5r_l
ylw_c_3d_c_3_mw(mw_c3::numeric),ylw_c_3 _5_mvar(mvar_l5::numeric),ylw_l_5r_l_5_kv(mw_l5::nu
d_c_3_mvar(mvar_c3::numeric),ylw_c_3d_c_3_kv(mw_c meric,mvar_l5::numeric,kv_l5::numeric),\n"
3::numeric,mvar_c3::numeric,kv_c3::numeric),\n" +"
+" ylw_l_545_l_5_mw(mw_l5::numeric),ylw_l_54
ylw_c_3r_c_3_mw(mw_c3::numeric),ylw_c_3r 5_l_5_mvar(mvar_l5::numeric),ylw_l_545_l_5_kv(mw_l5:
_c_3_mvar(mvar_c3::numeric),ylw_c_3r_c_3_kv(mw_c3:: :numeric,mvar_l5::numeric,kv_l5::numeric)"
numeric,mvar_c3::numeric,kv_c3::numeric),\n" + " FROM data\n"
+" + " WHERE data.success_date = (( SELECT
ylw_c_3l_c_3_mw(mw_c3::numeric),ylw_c_3l data_transformer.success_date\n"
_c_3_mvar(mvar_c3::numeric),ylw_c_3l_c_3_kv(mw_c3:: +" FROM data_transformer\n"
numeric,mvar_c3::numeric,kv_c3::numeric),\n" +" WHERE data_transformer.mw_total =
+" (SELECT max(data_transformer.mw_total) AS max\n"
ylw_c_6q_c_6_mw(mw_c6::numeric),ylw_c_6 +" FROM (SELECT *\n"
q_c_6_mvar(mvar_c6::numeric),ylw_c_6q_c_6_kv(mw_c + " FROM data_transformer\n"
6::numeric,mvar_c6::numeric,kv_c6::numeric),\n" + " WHERE " + getBlockSQL() + ")
+" data_transformer )));");
ylw_c_8c_c_8_mw(mw_c8::numeric),ylw_c_8c action_name = "maximo_coincidental_sistema";
_c_8_mvar(mvar_c8::numeric),ylw_c_8c_c_8_kv(mw_c8:: tableL.setItems(getObservableListL(main_result));
numeric,mvar_c8::numeric,kv_c8::numeric),\n"
+" table_TL.setItems(getObservableListTransfoermerL(main_
ylw_c_916_c_9_mw(mw_c9::numeric),ylw_c_ result));
916_c_9_mvar(mvar_c9::numeric),ylw_c_916_c_9_kv(m tableA.setItems(getObservableListA(main_result));
w_c9::numeric,mvar_c9::numeric,kv_c9::numeric),\n"
+" table_TA.setItems(getObservableListTransfoermerA(main
ylw_c_9r_c_9_mw(mw_c9::numeric),ylw_c_9r _result));
_c_9_mvar(mvar_c9::numeric),ylw_c_9r_c_9_kv(mw_c9:: tableC.setItems(getObservableListC(main_result));
numeric,mvar_c9::numeric,kv_c9::numeric),\n"

A27
+ " data.mvar_a2,\n"
table_TC.setItems(getObservableListTransfoermerC(main + " data.mvar_a4,\n"
_result)); + " data.mvar_a5,\n"
if (main_result.size() > 0) { + " data.mvar_a6,\n"
this.setOrangeLabels(main_result.get(0)); + " data.mvar_a7,\n"
this.setYellowLabels(main_result.get(0)); + " data.mvar_a8,\n"
} + " data.mvar_a9,\n"
System.out.println(main_result); + " data.mvar_l1,\n"
} + " data.mvar_l2,\n"
+ " data.mvar_l3,\n"
--EVENTO QUE MANEJA LAS PETICIONES PARA EL + " data.mvar_l4,\n"
MAXIMO NO COINCIDENTAL-- + " data.mvar_l5,\n"
+ " data.mvar_c0,\n"
* @param event + " data.mvar_c1,\n"
*/ + " data.mvar_c3,\n"
@FXML + " data.mvar_c4,\n"
void getMaximoNoCoincidental(ActionEvent event) { + " data.mvar_c5,\n"
PostgreSQLJDBC dao = new PostgreSQLJDBC(); + " data.mvar_c6,\n"
main_result = dao.executeQuery("SELECT + " data.mvar_c7,\n"
data.mw_a1,\n" + " data.mvar_c8,\n"
+ " data.mw_a2,\n" + " data.mvar_c9,\n"
+ " data.mw_a4,\n" + " data.kv_a1,\n"
+ " data.mw_a5,\n" + " data.kv_a2,\n"
+ " data.mw_a6,\n" + " data.kv_a4,\n"
+ " data.mw_a7,\n" + " data.kv_a5,\n"
+ " data.mw_a8,\n" + " data.kv_a6,\n"
+ " data.mw_a9,\n" + " data.kv_a7,\n"
+ " data.mw_l1,\n" + " data.kv_a8,\n"
+ " data.mw_l2,\n" + " data.kv_a9,\n"
+ " data.mw_l3,\n" + " data.kv_l1,\n"
+ " data.mw_l4,\n" + " data.kv_l2,\n"
+ " data.mw_l5,\n" + " data.kv_l3,\n"
+ " data.mw_c0,\n" + " data.kv_l4,\n"
+ " data.mw_c1,\n" + " data.kv_l5,\n"
+ " data.mw_c3,\n" + " data.kv_c0,\n"
+ " data.mw_c4,\n" + " data.kv_c1,\n"
+ " data.mw_c5,\n" + " data.kv_c3,\n"
+ " data.mw_c6,\n" + " data.kv_c4,\n"
+ " data.mw_c7,\n" + " data.kv_c5,\n"
+ " data.mw_c8,\n" + " data.kv_c6,\n"
+ " data.mw_c9,\n" + " data.kv_c7,\n"
+ " data.mvar_a1,\n"

A28
+ " data.kv_c8,\n" +" sqrt((data.mw_c0 ^ 2::double precision) +
+ " data.kv_c9,\n" (data.mvar_c0 ^ 2::double precision)) / 8.31::double
+" sqrt((data.mw_a1 ^ 2::double precision) + precision * 100::double precision AS c0_percent,\n"
(data.mvar_a1 ^ 2::double precision)) / 8.31::double +" sqrt((data.mw_c1 ^ 2::double precision) +
precision * 100::double precision AS a1_percent,\n" (data.mvar_c1 ^ 2::double precision)) / 8.31::double
+" sqrt((data.mw_a2 ^ 2::double precision) + precision * 100::double precision AS c1_percent,\n"
(data.mvar_a2 ^ 2::double precision)) / 8.31::double +" sqrt((data.mw_c3 ^ 2::double precision) +
precision * 100::double precision AS a2_percent,\n" (data.mvar_c3 ^ 2::double precision)) / 8.31::double
+" sqrt((data.mw_a4 ^ 2::double precision) + precision * 100::double precision AS c3_percent,\n"
(data.mvar_a4 ^ 2::double precision)) / 8.31::double +" sqrt((data.mw_c4 ^ 2::double precision) +
precision * 100::double precision AS a4_percent,\n" (data.mvar_c4 ^ 2::double precision)) / 8.31::double
+" sqrt((data.mw_a5 ^ 2::double precision) + precision * 100::double precision AS c4_percent,\n"
(data.mvar_a5 ^ 2::double precision)) / 8.31::double +" sqrt((data.mw_c5 ^ 2::double precision) +
precision * 100::double precision AS a5_percent,\n" (data.mvar_c5 ^ 2::double precision)) / 8.31::double
+" sqrt((data.mw_a6 ^ 2::double precision) + precision * 100::double precision AS c5_percent,\n"
(data.mvar_a6 ^ 2::double precision)) / 8.31::double +" sqrt((data.mw_c6 ^ 2::double precision) +
precision * 100::double precision AS a6_percent,\n" (data.mvar_c6 ^ 2::double precision)) / 8.31::double
+" sqrt((data.mw_a7 ^ 2::double precision) + precision * 100::double precision AS c6_percent,\n"
(data.mvar_a7 ^ 2::double precision)) / 8.31::double +" sqrt((data.mw_c7 ^ 2::double precision) +
precision * 100::double precision AS a7_percent,\n" (data.mvar_c7 ^ 2::double precision)) / 8.31::double
+" sqrt((data.mw_a8 ^ 2::double precision) + precision * 100::double precision AS c7_percent,\n"
(data.mvar_a8 ^ 2::double precision)) / 8.31::double +" sqrt((data.mw_c8 ^ 2::double precision) +
precision * 100::double precision AS a8_percent,\n" (data.mvar_c8 ^ 2::double precision)) / 8.31::double
+" sqrt((data.mw_a9 ^ 2::double precision) + precision * 100::double precision AS c8_percent,\n"
(data.mvar_a9 ^ 2::double precision)) / 8.31::double +" sqrt((data.mw_c9 ^ 2::double precision) +
precision * 100::double precision AS a9_percent,\n" (data.mvar_c9 ^ 2::double precision)) / 8.31::double
+" sqrt((data.mw_l1 ^ 2::double precision) + precision * 100::double precision AS c9_percent,\n"
(data.mvar_l1 ^ 2::double precision)) / 8.31::double + " sqrt((((data.mw_a1 + data.mw_a2 +
precision * 100::double precision AS l1_percent,\n" data.mw_a4 + data.mw_a5 + data.mw_a7 + data.mw_a9
+" sqrt((data.mw_l2 ^ 2::double precision) + + 0.175) * 1::double precision) ^ 2::double precision) +
(data.mvar_l2 ^ 2::double precision)) / 8.31::double ((data.mvar_a1 + data.mvar_a2 + data.mvar_a4 +
precision * 100::double precision AS l2_percent,\n" data.mvar_a5 + data.mvar_a7 + data.mvar_a9) ^
+" sqrt((data.mw_l3 ^ 2::double precision) + 2::double precision)) AS t290_mva,\n"
(data.mvar_l3 ^ 2::double precision)) / 8.31::double +" sqrt((((data.mw_a6 + data.mw_a8 + 0.07) *
precision * 100::double precision AS l3_percent,\n" 1.00::double precision) ^ 2::double precision) +
+" sqrt((data.mw_l4 ^ 2::double precision) + ((data.mvar_a6 + data.mvar_a8) ^ 2::double precision))
(data.mvar_l4 ^ 2::double precision)) / 8.31::double AS t291_mva,\n"
precision * 100::double precision AS l4_percent,\n" + " sqrt((((data.mw_c0 + data.mw_c3 +
+" sqrt((data.mw_l5 ^ 2::double precision) + data.mw_c6 + data.mw_c8 + data.mw_c9 + 0.175) *
(data.mvar_l5 ^ 2::double precision)) / 8.31::double 1.00::double precision) ^ 2::double precision) +
precision * 100::double precision AS l5_percent,\n" ((data.mvar_c0 + data.mvar_c3 + data.mvar_c6 +

A29
data.mvar_c8 + data.mvar_c9) ^ 2::double precision)) AS data.mvar_l4 + data.mvar_l5) ^ 2::double precision)) /
t190_mva,\n" 25::double precision * 100::double precision AS
+ " sqrt((((data.mw_c1 + data.mw_c4 + t390_percent,\n"
data.mw_c5 + data.mw_c7 + 0.175) * 1.00::double + " data.date_a1,\n"
precision) ^ 2::double precision) + ((data.mvar_c1 + + " data.date_a2,\n"
data.mvar_c4 + data.mvar_c5 + data.mvar_c7) ^ + " data.date_a4,\n"
2::double precision)) AS t191_mva,\n" + " data.date_a5,\n"
+ " sqrt((((data.mw_l1 + data.mw_l2 + + " data.date_a6,\n"
data.mw_l3 + data.mw_l4 + data.mw_l5 + 0.175) * + " data.date_a7,\n"
1.00::double precision) ^ 2::double precision) + + " data.date_a8,\n"
((data.mvar_l1 + data.mvar_l2 + data.mvar_l3 + + " data.date_a9,\n"
data.mvar_l4 + data.mvar_l5) ^ 2::double precision)) AS + " data.date_l1,\n"
t390_mva,\n" + " data.date_l2,\n"
+ " sqrt((((data.mw_a1 + data.mw_a2 + + " data.date_l3,\n"
data.mw_a4 + data.mw_a5 + data.mw_a7 + data.mw_a9 + " data.date_l4,\n"
+ 0.175) * 1.00::double precision) ^ 2::double precision) + + " data.date_l5,\n"
((data.mvar_a1 + data.mvar_a2 + data.mvar_a4 + + " data.date_c0,\n"
data.mvar_a5 + data.mvar_a7 + data.mvar_a9) ^ + " data.date_c1,\n"
2::double precision)) / 25::double precision * 100::double + " data.date_c3,\n"
precision AS t290_percent,\n"
+ " data.date_c4,\n"
+" sqrt((((data.mw_a6 + data.mw_a8 + 0.07) *
+ " data.date_c5,\n"
1.00::double precision) ^ 2::double precision) +
+ " data.date_c6,\n"
((data.mvar_a6 + data.mvar_a8) ^ 2::double precision)) /
+ " data.date_c7,\n"
10::double precision * 100::double precision AS
+ " data.date_c8,\n"
t291_percent,\n"
+ " data.date_c9,\n"
+ " sqrt((((data.mw_c0 + data.mw_c3 +
+" ------------Puntos de interconexión-----
data.mw_c6 + data.mw_c8 + data.mw_c9 + 0.175) *
---------------------\n"
1.00::double precision) ^ 2::double precision) +
+ "
((data.mvar_c0 + data.mvar_c3 + data.mvar_c6 +
lb_a_190_a_1(mw_a1::numeric,mvar_a1::numeric,kv_a1:
data.mvar_c8 + data.mvar_c9) ^ 2::double precision)) *
:numeric),\n"
100::double precision / 25::double precision AS
+"
t190_percent,\n"
lb_a_190_a_8(mw_a8::numeric,mvar_a8::num
+ " sqrt((((data.mw_c1 + data.mw_c4 +
eric,kv_a8::numeric),\n"
data.mw_c5 + data.mw_c7 + 0.175) * 1.00::double
+"
precision) ^ 2::double precision) + ((data.mvar_c1 +
lb_a_191_a_1(mw_a1::numeric,mvar_a1::num
data.mvar_c4 + data.mvar_c5 + data.mvar_c7) ^
eric,kv_a1::numeric),\n"
2::double precision)) / 12.5::double precision *
+"
100::double precision AS t191_percent,\n"
lb_a_191_l_3(mw_l3::numeric,mvar_l3::nume
+ " sqrt((((data.mw_l1 + data.mw_l2 +
ric,kv_l3::numeric),\n"
data.mw_l3 + data.mw_l4 + data.mw_l5 + 0.175) *
+"
1.00::double precision) ^ 2::double precision) +
lb_a_1l_a_1(mw_a1::numeric,mvar_a1::numer
((data.mvar_l1 + data.mvar_l2 + data.mvar_l3 +
ic,kv_a1::numeric),\n"

A30
+" +"
lb_a_1l_a_8(mw_a8::numeric,mvar_a8::numer lb_c_0z_l_3(mw_l3::numeric,mvar_l3::numeric
ic,kv_a8::numeric),\n" ,kv_l3::numeric),\n"
+" +"
lb_a_4x_a_4(mw_a4::numeric,mvar_a4::nume lb_c_1x_c_1(mw_c1::numeric,mvar_c1::numer
ric,kv_a4::numeric),\n" ic,kv_c1::numeric),\n"
+" +"
lb_a_4x_c_6(mw_c6::numeric,mvar_c6::nume lb_c_1x_c_4(mw_c4::numeric,mvar_c4::numer
ric,kv_c6::numeric),\n" ic,kv_c4::numeric),\n"
+" +"
lb_a_5x_a_5(mw_a5::numeric,mvar_a5::nume lb_c_3f_a_6(mw_a6::numeric,mvar_a6::numer
ric,kv_a5::numeric),\n" ic,kv_a6::numeric),\n"
+" +"
lb_a_5x_c_3(mw_c3::numeric,mvar_c3::nume lb_c_3f_c_3(mw_c3::numeric,mvar_c3::numer
ric,kv_c3::numeric),\n" ic,kv_c3::numeric),\n"
+" +"
lb_a_830_a_1(mw_a1::numeric,mvar_a1::num lb_c_3x_c_1(mw_c1::numeric,mvar_c1::numer
eric,kv_a1::numeric),\n" ic,kv_c1::numeric),\n"
+" +"
lb_a_830_a_8(mw_a8::numeric,mvar_a8::num lb_c_3x_c_3(mw_c3::numeric,mvar_c3::numer
eric,kv_a8::numeric),\n" ic,kv_c3::numeric),\n"
+" +"
lb_a_8x_a_8(mw_a8::numeric,mvar_a8::nume lb_c_4x_a_6(mw_a6::numeric,mvar_a6::nume
ric,kv_a8::numeric),\n" ric,kv_a6::numeric),\n"
+" +"
lb_a_8x_l_4(mw_l4::numeric,mvar_l4::numeri lb_c_4x_c_4(mw_c4::numeric,mvar_c4::numer
c,kv_l4::numeric),\n" ic,kv_c4::numeric),\n"
+" +"
lb_a_9x_a_5(mw_a5::numeric,mvar_a5::nume lb_c_513_c_5(mw_c5::numeric,mvar_c5::num
ric,kv_a5::numeric),\n" eric,kv_c5::numeric),\n"
+" +"
lb_a_9x_a_9(mw_a9::numeric,mvar_a9::nume lb_c_513_c_6(mw_c6::numeric,mvar_c6::num
ric,kv_a9::numeric),\n" eric,kv_c6::numeric),\n"
+" +"
lb_c_0x_c_0(mw_c0::numeric,mvar_c0::numer lb_c_5l_c_4(mw_c4::numeric,mvar_c4::numeri
ic,kv_c0::numeric),\n" c,kv_c4::numeric),\n"
+" +"
lb_c_0x_l_2(mw_l2::numeric,mvar_l2::numeri lb_c_5l_c_5(mw_c5::numeric,mvar_c5::numeri
c,kv_l2::numeric),\n" c,kv_c5::numeric),\n"
+" +"
lb_c_0z_c_0(mw_c0::numeric,mvar_c0::numer lb_c_5x_a_7(mw_a7::numeric,mvar_a7::nume
ic,kv_c0::numeric),\n" ric,kv_a7::numeric),\n"

A31
+" +"
lb_c_5x_c_5(mw_c5::numeric,mvar_c5::numer lb_l_3x_l_3(mw_a1::numeric,mvar_a1::numeri
ic,kv_c5::numeric),\n" c,kv_a1::numeric),\n"
+" +"
lb_c_7g_c_0(mw_c0::numeric,mvar_c0::numer lb_l_4x_l_4(mw_l4::numeric,mvar_l4::numeric
ic,kv_c0::numeric),\n" ,kv_l4::numeric),\n"
+" +"
lb_c_7g_c_7(mw_c7::numeric,mvar_c7::numer lb_l_4x_l_5(mw_l5::numeric,mvar_l5::numeric
ic,kv_c7::numeric),\n" ,kv_l5::numeric),\n"
+" +"
lb_c_8x_c_8(mw_c8::numeric,mvar_c8::numer lb_l_5x_a_1(mw_a1::numeric,mvar_a1::numer
ic,kv_c8::numeric),\n" ic,kv_a1::numeric),\n"
+" +"
lb_c_8x_l_1(mw_l1::numeric,mvar_l1::numeri lb_l_5x_l_5(mw_l5::numeric,mvar_l5::numeric
c,kv_l1::numeric),\n" ,kv_l5::numeric),\n"
+" +" -----------tramos
lb_c_9x_c_9(mw_c9::numeric,mvar_c9::numer intermedios---------------\n"
ic,kv_c9::numeric),\n" +"
+" ylw_a_1a_a_1_kv(mw_a1::numeric,mvar_a1::
lb_c_9x_l_1(mw_l1::numeric,mvar_l1::numeri numeric,kv_a1::numeric),\n"
c,kv_l1::numeric),\n" +"
+" ylw_a_2r_a_2_mw(mw_a2::numeric),ylw_a_2r
lb_l_2x_c_8(mw_c8::numeric,mvar_c8::numeri _a_2_mvar(mvar_a2::numeric),ylw_a_2r_a_2_kv(mw_a2:
c,kv_c8::numeric),\n" :numeric,mvar_a2::numeric,kv_a2::numeric),\n"
+" +"
lb_l_2x_l_2(mw_l2::numeric,mvar_l2::numeric ylw_a_4i_a_4_mw(mw_a4::numeric),ylw_a_4i
,kv_l2::numeric),\n" _a_4_mvar(mvar_a4::numeric),ylw_a_4i_a_4_kv(mw_a4:
+" :numeric,mvar_a4::numeric,kv_a4::numeric),\n"
lb_l_325xx_c_0(mw_c0::numeric,mvar_c0::nu +"
meric,kv_c0::numeric),\n" ylw_a_5r_a_5_mw(mw_a5::numeric),ylw_a_5r
+" _a_5_mvar(mvar_a5::numeric),ylw_a_5r_a_5_kv(mw_a5:
lb_l_325xx_l_3(mw_l3::numeric,mvar_l3::num :numeric,mvar_a5::numeric,kv_a5::numeric),\n"
eric,kv_l3::numeric),\n" +"
+" ylw_a_720_a_7_kv(mw_a7::numeric,mvar_a7:
lb_l_3b_l_3(mw_l3::numeric,mvar_l3::numeric :numeric,kv_a7::numeric),\n"
,kv_l3::numeric),\n" +"
+" ylw_a_9r_a_9_mw(mw_a9::numeric),ylw_a_9r
lb_l_3b_l_5(mw_l5::numeric,mvar_l5::numeric _a_9_mvar(mvar_a9::numeric),ylw_a_9r_a_9_kv(mw_a9:
,kv_l5::numeric),\n" :numeric,mvar_a9::numeric,kv_a9::numeric),\n"
+" +"
lb_l_3x_a_2(mw_a2::numeric,mvar_a2::numer ylw_a_990_a_9_mw(mw_a9::numeric),ylw_a_
ic,kv_a2::numeric),\n"

A32
990_a_9_mvar(mvar_a9::numeric),ylw_a_990_a_9_kv(m +"
w_a9::numeric,mvar_a9::numeric,kv_a9::numeric),\n" ylw_c_020hj_c_0_kv(mw_c0::numeric,mvar_c
+" 0::numeric,kv_c0::numeric),\n"
ylw_a_603_a_6_kv(mw_a6::numeric,mvar_a6: +"
:numeric,kv_a6::numeric),\n" ylw_c_3d_c_3_mw(mw_c3::numeric),ylw_c_3
+" d_c_3_mvar(mvar_c3::numeric),ylw_c_3d_c_3_kv(mw_c
ylw_a_835_a_8_mw(mw_a8::numeric),ylw_a_ 3::numeric,mvar_c3::numeric,kv_c3::numeric),\n"
835_a_8_mvar(mvar_a8::numeric),ylw_a_835_a_8_kv(m +"
w_a8::numeric,mvar_a8::numeric,kv_a8::numeric),\n" ylw_c_3r_c_3_mw(mw_c3::numeric),ylw_c_3r
+" _c_3_mvar(mvar_c3::numeric),ylw_c_3r_c_3_kv(mw_c3::
ylw_a_8r_a_8_mw(mw_a8::numeric),ylw_a_8r numeric,mvar_c3::numeric,kv_c3::numeric),\n"
_a_8_mvar(mvar_a8::numeric),ylw_a_8r_a_8_kv(mw_a8: +"
:numeric,mvar_a8::numeric,kv_a8::numeric),\n" ylw_c_3l_c_3_mw(mw_c3::numeric),ylw_c_3l
+" _c_3_mvar(mvar_c3::numeric),ylw_c_3l_c_3_kv(mw_c3::
ylw_c_1r_c_1_mw(mw_c1::numeric),ylw_c_1r numeric,mvar_c3::numeric,kv_c3::numeric),\n"
_c_1_mvar(mvar_c1::numeric),ylw_c_1r_c_1_kv(mw_c1:: +"
numeric,mvar_c1::numeric,kv_c1::numeric),\n" ylw_c_6q_c_6_mw(mw_c6::numeric),ylw_c_6
+" q_c_6_mvar(mvar_c6::numeric),ylw_c_6q_c_6_kv(mw_c
ylw_c_1t_c_1_mw(mw_c1::numeric),ylw_c_1t 6::numeric,mvar_c6::numeric,kv_c6::numeric),\n"
_c_1_mvar(mvar_c1::numeric),ylw_c_1t_c_1_kv(mw_c1:: +"
numeric,mvar_c1::numeric,kv_c1::numeric),\n" ylw_c_8c_c_8_mw(mw_c8::numeric),ylw_c_8c
+" _c_8_mvar(mvar_c8::numeric),ylw_c_8c_c_8_kv(mw_c8::
ylw_c_5a_c_5_mw(mw_c5::numeric),ylw_c_5 numeric,mvar_c8::numeric,kv_c8::numeric),\n"
a_c_5_mvar(mvar_c5::numeric),ylw_c_5a_c_5_kv(mw_c5 +"
::numeric,mvar_c5::numeric,kv_c5::numeric),\n" ylw_c_916_c_9_mw(mw_c9::numeric),ylw_c_
+" 916_c_9_mvar(mvar_c9::numeric),ylw_c_916_c_9_kv(m
ylw_c_5e_c_5_kv(mw_c5::numeric,mvar_c5::n w_c9::numeric,mvar_c9::numeric,kv_c9::numeric),\n"
umeric,kv_c5::numeric),\n" +"
+" ylw_c_9r_c_9_mw(mw_c9::numeric),ylw_c_9r
ylw_c_7i_c_7_mw(mw_c7::numeric),ylw_c_7i _c_9_mvar(mvar_c9::numeric),ylw_c_9r_c_9_kv(mw_c9::
_c_7_mvar(mvar_c7::numeric),ylw_c_7i_c_7_kv(mw_c7:: numeric,mvar_c9::numeric,kv_c9::numeric),\n"
numeric,mvar_c7::numeric,kv_c7::numeric),\n" +"
+" ylw_l_2r_l_2_mw(mw_l2::numeric),ylw_l_2r_l
ylw_a_3e_c_7_kv(mw_c7::numeric,mvar_c7::n _2_mvar(mvar_l2::numeric),ylw_l_2r_l_2_kv(mw_l2::nu
umeric,kv_c7::numeric),\n" meric,mvar_l2::numeric,kv_l2::numeric),\n"
+" +"
ylw_c_020aa_c_0_mw(mw_c0::numeric),ylw_ ylw_l_3r_l_3_mw(mw_l3::numeric),ylw_l_3r_l
c_020aa_c_0_mvar(mvar_c0::numeric),ylw_c_020aa_c_0 _3_mvar(mvar_l3::numeric),ylw_l_3r_l_3_kv(mw_l3::nu
_kv(mw_c0::numeric,mvar_c0::numeric,kv_c0::numeric),\ meric,mvar_l3::numeric,kv_l3::numeric),\n"
n" +"
ylw_l_4r_l_4_mw(mw_l4::numeric),ylw_l_4r_l

A33
_4_mvar(mvar_l4::numeric),ylw_l_4r_l_4_kv(mw_l4::nu +" l3.kv_l3,\n"
meric,mvar_l4::numeric,kv_l4::numeric),\n" +" l4.mw_l4,\n"
+" +" l4.mvar_l4,\n"
ylw_l_5r_l_5_mw(mw_l5::numeric),ylw_l_5r_l +" l4.kv_l4,\n"
_5_mvar(mvar_l5::numeric),ylw_l_5r_l_5_kv(mw_l5::nu +" l5.mw_l5,\n"
meric,mvar_l5::numeric,kv_l5::numeric),\n" +" l5.mvar_l5,\n"
+" +" l5.kv_l5,\n"
ylw_l_545_l_5_mw(mw_l5::numeric),ylw_l_54 +" c0.mw_c0,\n"
5_l_5_mvar(mvar_l5::numeric),ylw_l_545_l_5_kv(mw_l5: +" c0.mvar_c0,\n"
:numeric,mvar_l5::numeric,kv_l5::numeric)" +" c0.kv_c0,\n"
+ " FROM ( SELECT a1.mw_a1,\n" +" c1.mw_c1,\n"
+" a1.mvar_a1,\n" +" c1.mvar_c1,\n"
+" a1.kv_a1,\n" +" c1.kv_c1,\n"
+" a2.mw_a2,\n" +" c3.mw_c3,\n"
+" a2.mvar_a2,\n" +" c3.mvar_c3,\n"
+" a2.kv_a2,\n" +" c3.kv_c3,\n"
+" a4.mw_a4,\n" +" c4.mw_c4,\n"
+" a4.mvar_a4,\n" +" c4.mvar_c4,\n"
+" a4.kv_a4,\n" +" c4.kv_c4,\n"
+" a5.mw_a5,\n" +" c5.mw_c5,\n"
+" a5.mvar_a5,\n" +" c5.mvar_c5,\n"
+" a5.kv_a5,\n" +" c5.kv_c5,\n"
+" a6.mw_a6,\n" +" c6.mw_c6,\n"
+" a6.mvar_a6,\n" +" c6.mvar_c6,\n"
+" a6.kv_a6,\n" +" c6.kv_c6,\n"
+" a7.mw_a7,\n" +" c7.mw_c7,\n"
+" a7.mvar_a7,\n" +" c7.mvar_c7,\n"
+" a7.kv_a7,\n" +" c7.kv_c7,\n"
+" a8.mw_a8,\n" +" c8.mw_c8,\n"
+" a8.mvar_a8,\n" +" c8.mvar_c8,\n"
+" a8.kv_a8,\n" +" c8.kv_c8,\n"
+" a9.mw_a9,\n" +" c9.mw_c9,\n"
+" a9.mvar_a9,\n" +" c9.mvar_c9,\n"
+" a9.kv_a9,\n" +" c9.kv_c9,\n"
+" l1.mw_l1,\n" +" a1.date_a1,\n"
+" l1.mvar_l1,\n" +" a2.date_a2,\n"
+" l1.kv_l1,\n" +" a4.date_a4,\n"
+" l2.mw_l2,\n" +" a5.date_a5,\n"
+" l2.mvar_l2,\n" +" a6.date_a6,\n"
+" l2.kv_l2,\n" +" a7.date_a7,\n"
+" l3.mw_l3,\n" +" a8.date_a8,\n"
+" l3.mvar_l3,\n"

A34
+" a9.date_a9,\n" +" WHERE data_1.mw_a4 = (( SELECT
+" l1.date_l1,\n" max(data.mw_a4) AS max\n"
+" l2.date_l2,\n" +" FROM (SELECT mw_a4 FROM
+" l3.date_l3,\n" data WHERE " + getBlockSQL() + ") data))) a4,\n"
+" l4.date_l4,\n" +" ( SELECT data_1.mw_a5,\n"
+" l5.date_l5,\n" +" data_1.mvar_a5,\n"
+" c0.date_c0,\n" +" data_1.kv_a5,\n"
+" c1.date_c1,\n" + " data_1.success_date AS
+" c3.date_c3,\n" date_a5\n"
+" c4.date_c4,\n" +" FROM data data_1\n"
+" c5.date_c5,\n" +" WHERE data_1.mw_a5 = (SELECT
+" c6.date_c6,\n" max(data.mw_a5) AS max\n"

+" c7.date_c7,\n" +" FROM (SELECT mw_a5 FROM


+" c8.date_c8,\n" data WHERE " + getBlockSQL() + ") data)) a5,\n"

+" c9.date_c9\n" +" ( SELECT data_1.mw_a6,\n"

+" FROM ( SELECT data_1.mw_a1,\n" +" data_1.mvar_a6,\n"

+" data_1.mvar_a1,\n" +" data_1.kv_a6,\n"

+" data_1.kv_a1,\n" + " data_1.success_date AS

+ " data_1.success_date AS date_a6\n"

date_a1\n" +" FROM data data_1\n"

+" FROM data data_1\n" +" WHERE data_1.mw_a6 = (SELECT

+" WHERE data_1.mw_a1 = (SELECT max(data.mw_a6) AS max\n"

max(data.mw_a1) AS max\n" +" FROM (SELECT mw_a6 FROM

+" FROM (SELECT mw_a1 FROM data WHERE " + getBlockSQL() + ") data)) a6,\n"

data WHERE " + getBlockSQL() + ") data)) a1,\n" +" ( SELECT data_1.mw_a7,\n"

+" ( SELECT data_1.mw_a2,\n" +" data_1.mvar_a7,\n"

+" data_1.mvar_a2,\n" +" data_1.kv_a7,\n"

+" data_1.kv_a2,\n" + " data_1.success_date AS

+ " data_1.success_date AS date_a7\n"

date_a2\n" +" FROM data data_1\n"

+" FROM data data_1\n" +" WHERE data_1.mw_a7 = (SELECT

+" WHERE data_1.mw_a2 = (SELECT max(data.mw_a7) AS max\n"

max(data.mw_a2) AS max\n" +" FROM (SELECT mw_a7 FROM

+" FROM (SELECT mw_a2 FROM data WHERE " + getBlockSQL() + ") data)) a7,\n"

data WHERE " + getBlockSQL() + ") data)) a2,\n" +" ( SELECT data_1.mw_a8,\n"

+" ( SELECT data_1.mw_a4,\n" +" data_1.mvar_a8,\n"

+" data_1.mvar_a4,\n" +" data_1.kv_a8,\n"

+" data_1.kv_a4,\n" + " data_1.success_date AS

+ " data_1.success_date AS date_a8\n"

date_a4\n" +" FROM data data_1\n"

+" FROM data data_1\n" +" WHERE data_1.mw_a8 = (SELECT


max(data.mw_a8) AS max\n"

A35
+" FROM (SELECT mw_a8 FROM +" data_1.success_date AS date_l4\n"
data WHERE " + getBlockSQL() + ") data)) a8,\n" +" FROM data data_1\n"
+" ( SELECT data_1.mw_a9,\n" +" WHERE data_1.mw_l4 = (SELECT
+" data_1.mvar_a9,\n" max(data.mw_l4) AS max\n"
+" data_1.kv_a9,\n" +" FROM (SELECT mw_l4 FROM
+ " data_1.success_date AS data WHERE " + getBlockSQL() + ") data)) l4,\n"
date_a9\n" +" ( SELECT data_1.mw_l5,\n"
+" FROM data data_1\n" +" data_1.mvar_l5,\n"
+" WHERE data_1.mw_a9 = (SELECT +" data_1.kv_l5,\n"
max(data.mw_a9) AS max\n" +" data_1.success_date AS date_l5\n"
+" FROM (SELECT mw_a9 FROM +" FROM data data_1\n"
data WHERE " + getBlockSQL() + ") data)) a9,\n" +" WHERE data_1.mw_l5 = (SELECT
+" ( SELECT data_1.mw_l1,\n" max(data.mw_l5) AS max\n"
+" data_1.mvar_l1,\n" +" FROM (SELECT mw_l5 FROM
+" data_1.kv_l1,\n" data WHERE " + getBlockSQL() + ") data)) l5,\n"
+" data_1.success_date AS date_l1\n" +" ( SELECT data_1.mw_c0,\n"
+" FROM data data_1\n" +" data_1.mvar_c0,\n"
+" WHERE data_1.mw_l1 = (SELECT +" data_1.kv_c0,\n"
max(data.mw_l1) AS max\n" + " data_1.success_date AS
+" FROM (SELECT mw_l1 FROM date_c0\n"
data WHERE " + getBlockSQL() + ") data)) l1,\n" +" FROM data data_1\n"
+" ( SELECT data_1.mw_l2,\n" +" WHERE data_1.mw_c0 = (SELECT
+" data_1.mvar_l2,\n" max(data.mw_c0) AS max\n"
+" data_1.kv_l2,\n" +" FROM (SELECT mw_c0 FROM
+" data_1.success_date AS date_l2\n" data WHERE " + getBlockSQL() + ") data)) c0,\n"
+" FROM data data_1\n" +" ( SELECT data_1.mw_c1,\n"
+" WHERE data_1.mw_l2 = (SELECT +" data_1.mvar_c1,\n"
max(data.mw_l2) AS max\n" +" data_1.kv_c1,\n"
+" FROM (SELECT mw_l2 FROM + " data_1.success_date AS
data WHERE " + getBlockSQL() + ") data)) l2,\n" date_c1\n"
+" ( SELECT data_1.mw_l3,\n" +" FROM data data_1\n"
+" data_1.mvar_l3,\n" +" WHERE data_1.mw_c1 = (SELECT
+" data_1.kv_l3,\n" max(data.mw_c1) AS max\n"
+" data_1.success_date AS date_l3\n" +" FROM (SELECT mw_c1 FROM
+" FROM data data_1\n" data WHERE " + getBlockSQL() + ") data)) c1,\n"
+" WHERE data_1.mw_l3 = ( SELECT +" ( SELECT data_1.mw_c3,\n"
max(data.mw_l3) AS max\n" +" data_1.mvar_c3,\n"
+" FROM (SELECT mw_l3 FROM +" data_1.kv_c3,\n"
data WHERE " + getBlockSQL() + ") data)) l3,\n" + " data_1.success_date AS
+" ( SELECT data_1.mw_l4,\n" date_c3\n"
+" data_1.mvar_l4,\n" +" FROM data data_1\n"
+" data_1.kv_l4,\n"

A36
+" WHERE data_1.mw_c3 = (SELECT +" FROM (SELECT mw_c7 FROM
max(data.mw_c3) AS max\n" data WHERE " + getBlockSQL() + ") data)) c7,\n"
+" FROM (SELECT mw_c3 FROM +" ( SELECT data_1.mw_c8,\n"
data WHERE " + getBlockSQL() + ") data)) c3,\n" +" data_1.mvar_c8,\n"
+" ( SELECT data_1.mw_c4,\n" +" data_1.kv_c8,\n"
+" data_1.mvar_c4,\n" + " data_1.success_date AS
+" data_1.kv_c4,\n" date_c8\n"
+ " data_1.success_date AS +" FROM data data_1\n"
date_c4\n" +" WHERE data_1.mw_c8 = (SELECT
+" FROM data data_1\n" max(data.mw_c8) AS max\n"
+" WHERE data_1.mw_c4 = (SELECT +" FROM (SELECT mw_c8 FROM
max(data.mw_c4) AS max\n" data WHERE " + getBlockSQL() + ") data)) c8,\n"
+" FROM (SELECT mw_c4 FROM +" ( SELECT data_1.mw_c9,\n"
data WHERE " + getBlockSQL() + ") data)) c4,\n" +" data_1.mvar_c9,\n"
+" ( SELECT data_1.mw_c5,\n" +" data_1.kv_c9,\n"
+" data_1.mvar_c5,\n" + " data_1.success_date AS
+" data_1.kv_c5,\n" date_c9\n"
+ " data_1.success_date AS +" FROM data data_1\n"
date_c5\n" +" WHERE data_1.mw_c9 = (SELECT
+" FROM data data_1\n" max(data.mw_c9) AS max\n"
+" WHERE data_1.mw_c5 = (SELECT +" FROM (SELECT mw_c9 FROM
max(data.mw_c5) AS max\n" data WHERE " + getBlockSQL() + ") data)) c9\n"
+" FROM (SELECT mw_c5 FROM +" LIMIT 1) data;");
data WHERE " + getBlockSQL() + ") data)) c5,\n" action_name = "maximo_no_coincidental";
+" ( SELECT data_1.mw_c6,\n" tableL.setItems(getObservableListL(main_result));
+" data_1.mvar_c6,\n"
+" data_1.kv_c6,\n" table_TL.setItems(getObservableListTransfoermerL(main_
+ " data_1.success_date AS result));
date_c6\n" tableA.setItems(getObservableListA(main_result));
+" FROM data data_1\n"
+" WHERE data_1.mw_c6 = (SELECT table_TA.setItems(getObservableListTransfoermerA(main
max(data.mw_c6) AS max\n" _result));
+" FROM (SELECT mw_c6 FROM tableC.setItems(getObservableListC(main_result));
data WHERE " + getBlockSQL() + ") data)) c6,\n"
+" ( SELECT data_1.mw_c7,\n" table_TC.setItems(getObservableListTransfoermerC(main
+" data_1.mvar_c7,\n" _result));
+" data_1.kv_c7,\n" if (main_result.size() > 0) {
+ " data_1.success_date AS this.setOrangeLabels(main_result.get(0));
date_c7\n" this.setYellowLabels(main_result.get(0));
+" FROM data data_1\n" }
+" WHERE data_1.mw_c7 = (SELECT System.out.println(main_result);
max(data.mw_c7) AS max\n" }

A37
+ " data.mvar_a8,\n"
--EVENTO QUE MANEJA LAS PETICIONES PARA EL + " data.mvar_a9,\n"
MAXIMO COINCIDENTAL POR SUBESTACIÓN-- + " data.mvar_l1,\n"
* + " data.mvar_l2,\n"
* @param event + " data.mvar_l3,\n"
*/ + " data.mvar_l4,\n"
@FXML + " data.mvar_l5,\n"
void getMaximoCoincidentalSubestacional(ActionEvent + " data.mvar_c0,\n"
event) { + " data.mvar_c1,\n"
//Instanciamos la clase PostgreSQLJDBC para obtener + " data.mvar_c3,\n"
la conexion a la base de datos + " data.mvar_c4,\n"
PostgreSQLJDBC dao = new PostgreSQLJDBC(); + " data.mvar_c5,\n"
//Realizamos + " data.mvar_c6,\n"
main_result = dao.executeQuery("SELECT + " data.mvar_c7,\n"
data.mw_a1,\n" + " data.mvar_c8,\n"
+ " data.mw_a2,\n" + " data.mvar_c9,\n"
+ " data.mw_a4,\n" + " data.kv_a1,\n"
+ " data.mw_a5,\n" + " data.kv_a2,\n"
+ " data.mw_a6,\n" + " data.kv_a4,\n"
+ " data.mw_a7,\n" + " data.kv_a5,\n"
+ " data.mw_a8,\n" + " data.kv_a6,\n"
+ " data.mw_a9,\n" + " data.kv_a7,\n"
+ " data.mw_l1,\n" + " data.kv_a8,\n"
+ " data.mw_l2,\n" + " data.kv_a9,\n"
+ " data.mw_l3,\n" + " data.kv_l1,\n"
+ " data.mw_l4,\n" + " data.kv_l2,\n"
+ " data.mw_l5,\n" + " data.kv_l3,\n"
+ " data.mw_c0,\n" + " data.kv_l4,\n"
+ " data.mw_c1,\n" + " data.kv_l5,\n"
+ " data.mw_c3,\n" + " data.kv_c0,\n"
+ " data.mw_c4,\n" + " data.kv_c1,\n"
+ " data.mw_c5,\n" + " data.kv_c3,\n"
+ " data.mw_c6,\n" + " data.kv_c4,\n"
+ " data.mw_c7,\n" + " data.kv_c5,\n"
+ " data.mw_c8,\n" + " data.kv_c6,\n"
+ " data.mw_c9,\n" + " data.kv_c7,\n"
+ " data.mvar_a1,\n" + " data.kv_c8,\n"
+ " data.mvar_a2,\n" + " data.kv_c9,\n"
+ " data.mvar_a4,\n" +" sqrt((data.mw_a1 ^ 2::double precision) +
+ " data.mvar_a5,\n" (data.mvar_a1 ^ 2::double precision)) / 8.31::double
+ " data.mvar_a6,\n" precision * 100::double precision AS a1_percent,\n"
+ " data.mvar_a7,\n"

A38
+" sqrt((data.mw_a2 ^ 2::double precision) + +" sqrt((data.mw_c3 ^ 2::double precision) +
(data.mvar_a2 ^ 2::double precision)) / 8.31::double (data.mvar_c3 ^ 2::double precision)) / 8.31::double
precision * 100::double precision AS a2_percent,\n" precision * 100::double precision AS c3_percent,\n"
+" sqrt((data.mw_a4 ^ 2::double precision) + +" sqrt((data.mw_c4 ^ 2::double precision) +
(data.mvar_a4 ^ 2::double precision)) / 8.31::double (data.mvar_c4 ^ 2::double precision)) / 8.31::double
precision * 100::double precision AS a4_percent,\n" precision * 100::double precision AS c4_percent,\n"
+" sqrt((data.mw_a5 ^ 2::double precision) + +" sqrt((data.mw_c5 ^ 2::double precision) +
(data.mvar_a5 ^ 2::double precision)) / 8.31::double (data.mvar_c5 ^ 2::double precision)) / 8.31::double
precision * 100::double precision AS a5_percent,\n" precision * 100::double precision AS c5_percent,\n"
+" sqrt((data.mw_a6 ^ 2::double precision) + +" sqrt((data.mw_c6 ^ 2::double precision) +
(data.mvar_a6 ^ 2::double precision)) / 8.31::double (data.mvar_c6 ^ 2::double precision)) / 8.31::double
precision * 100::double precision AS a6_percent,\n" precision * 100::double precision AS c6_percent,\n"
+" sqrt((data.mw_a7 ^ 2::double precision) + +" sqrt((data.mw_c7 ^ 2::double precision) +
(data.mvar_a7 ^ 2::double precision)) / 8.31::double (data.mvar_c7 ^ 2::double precision)) / 8.31::double
precision * 100::double precision AS a7_percent,\n" precision * 100::double precision AS c7_percent,\n"
+" sqrt((data.mw_a8 ^ 2::double precision) + +" sqrt((data.mw_c8 ^ 2::double precision) +
(data.mvar_a8 ^ 2::double precision)) / 8.31::double (data.mvar_c8 ^ 2::double precision)) / 8.31::double
precision * 100::double precision AS a8_percent,\n" precision * 100::double precision AS c8_percent,\n"
+" sqrt((data.mw_a9 ^ 2::double precision) + +" sqrt((data.mw_c9 ^ 2::double precision) +
(data.mvar_a9 ^ 2::double precision)) / 8.31::double (data.mvar_c9 ^ 2::double precision)) / 8.31::double
precision * 100::double precision AS a9_percent,\n" precision * 100::double precision AS c9_percent,\n"
+" sqrt((data.mw_l1 ^ 2::double precision) + + " sqrt((((data.mw_a1 + data.mw_a2 +
(data.mvar_l1 ^ 2::double precision)) / 8.31::double data.mw_a4 + data.mw_a5 + data.mw_a7 + data.mw_a9
precision * 100::double precision AS l1_percent,\n" + 0.175) * 1.00::double precision) ^ 2::double precision) +
+" sqrt((data.mw_l2 ^ 2::double precision) + ((data.mvar_a1 + data.mvar_a2 + data.mvar_a4 +
(data.mvar_l2 ^ 2::double precision)) / 8.31::double data.mvar_a5 + data.mvar_a7 + data.mvar_a9) ^
precision * 100::double precision AS l2_percent,\n" 2::double precision)) AS t290_mva,\n"
+" sqrt((data.mw_l3 ^ 2::double precision) + +" sqrt((((data.mw_a6 + data.mw_a8 + 0.07) *
(data.mvar_l3 ^ 2::double precision)) / 8.31::double 1.00::double precision) ^ 2::double precision) +
precision * 100::double precision AS l3_percent,\n" ((data.mvar_a6 + data.mvar_a8) ^ 2::double precision))
+" sqrt((data.mw_l4 ^ 2::double precision) + AS t291_mva,\n"
(data.mvar_l4 ^ 2::double precision)) / 8.31::double + " sqrt((((data.mw_c0 + data.mw_c3 +
precision * 100::double precision AS l4_percent,\n" data.mw_c6 + data.mw_c8 + data.mw_c9 + 0.175) *
+" sqrt((data.mw_l5 ^ 2::double precision) + 1.00::double precision) ^ 2::double precision) +
(data.mvar_l5 ^ 2::double precision)) / 8.31::double ((data.mvar_c0 + data.mvar_c3 + data.mvar_c6 +
precision * 100::double precision AS l5_percent,\n" data.mvar_c8 + data.mvar_c9) ^ 2::double precision)) AS
+" sqrt((data.mw_c0 ^ 2::double precision) + t190_mva,\n"
(data.mvar_c0 ^ 2::double precision)) / 8.31::double + " sqrt((((data.mw_c1 + data.mw_c4 +
precision * 100::double precision AS c0_percent,\n" data.mw_c5 + data.mw_c7 + 0.175) * 1.00::double
+" sqrt((data.mw_c1 ^ 2::double precision) + precision) ^ 2::double precision) + ((data.mvar_c1 +
(data.mvar_c1 ^ 2::double precision)) / 8.31::double data.mvar_c4 + data.mvar_c5 + data.mvar_c7) ^
precision * 100::double precision AS c1_percent,\n" 2::double precision)) AS t191_mva,\n"

A39
+ " sqrt((((data.mw_l1 + data.mw_l2 + + " data.success_date_t291 AS date_a6,\n"
data.mw_l3 + data.mw_l4 + data.mw_l5 + 0.175) * + " data.success_date_t290 AS date_a7,\n"
1.00::double precision) ^ 2::double precision) + + " data.success_date_t291 AS date_a8,\n"
((data.mvar_l1 + data.mvar_l2 + data.mvar_l3 + + " data.success_date_t290 AS date_a9,\n"
data.mvar_l4 + data.mvar_l5) ^ 2::double precision)) AS + " data.success_date_t390 AS date_l1,\n"
t390_mva,\n" + " data.success_date_t390 AS date_l2,\n"
+ " sqrt((((data.mw_a1 + data.mw_a2 + + " data.success_date_t390 AS date_l3,\n"
data.mw_a4 + data.mw_a5 + data.mw_a7 + data.mw_a9 + " data.success_date_t390 AS date_l4,\n"
+ 0.175) * 1.00::double precision) ^ 2::double precision) + + " data.success_date_t390 AS date_l5,\n"
((data.mvar_a1 + data.mvar_a2 + data.mvar_a4 + + " data.success_date_t190 AS date_c0,\n"
data.mvar_a5 + data.mvar_a7 + data.mvar_a9) ^ + " data.success_date_t191 AS date_c1,\n"
2::double precision)) / 25::double precision * 100::double + " data.success_date_t190 AS date_c3,\n"
precision AS t290_percent,\n" + " data.success_date_t191 AS date_c4,\n"
+" sqrt((((data.mw_a6 + data.mw_a8 + 0.07) * + " data.success_date_t191 AS date_c5,\n"
1.00::double precision) ^ 2::double precision) + + " data.success_date_t190 AS date_c6,\n"
((data.mvar_a6 + data.mvar_a8) ^ 2::double precision)) / + " data.success_date_t191 AS date_c7,\n"
10::double precision * 100::double precision AS
+ " data.success_date_t190 AS date_c8,\n"
t291_percent,\n"
+ " data.success_date_t190 AS date_c9,\n"
+ " sqrt((((data.mw_c0 + data.mw_c3 +
+" ------------Puntos de interconexión-----
data.mw_c6 + data.mw_c8 + data.mw_c9 + 0.175) *
---------------------\n"
1.00::double precision) ^ 2::double precision) +
+ "
((data.mvar_c0 + data.mvar_c3 + data.mvar_c6 +
lb_a_190_a_1(mw_a1::numeric,mvar_a1::numeric,kv_a1:
data.mvar_c8 + data.mvar_c9) ^ 2::double precision)) *
:numeric),\n"
100::double precision / 25::double precision AS
+"
t190_percent,\n"
lb_a_190_a_8(mw_a8::numeric,mvar_a8::num
+ " sqrt((((data.mw_c1 + data.mw_c4 +
eric,kv_a8::numeric),\n"
data.mw_c5 + data.mw_c7 + 0.175) * 1.00::double
+"
precision) ^ 2::double precision) + ((data.mvar_c1 +
lb_a_191_a_1(mw_a1::numeric,mvar_a1::num
data.mvar_c4 + data.mvar_c5 + data.mvar_c7) ^
eric,kv_a1::numeric),\n"
2::double precision)) / 12.5::double precision *
+"
100::double precision AS t191_percent,\n"
lb_a_191_l_3(mw_l3::numeric,mvar_l3::nume
+ " sqrt((((data.mw_l1 + data.mw_l2 +
ric,kv_l3::numeric),\n"
data.mw_l3 + data.mw_l4 + data.mw_l5 + 0.175) *
+"
1.00::double precision) ^ 2::double precision) +
lb_a_1l_a_1(mw_a1::numeric,mvar_a1::numer
((data.mvar_l1 + data.mvar_l2 + data.mvar_l3 +
ic,kv_a1::numeric),\n"
data.mvar_l4 + data.mvar_l5) ^ 2::double precision)) /
+"
25::double precision * 100::double precision AS
lb_a_1l_a_8(mw_a8::numeric,mvar_a8::numer
t390_percent,\n"
ic,kv_a8::numeric),\n"
+ " data.success_date_t290 AS date_a1,\n"
+"
+ " data.success_date_t290 AS date_a2,\n"
lb_a_4x_a_4(mw_a4::numeric,mvar_a4::nume
+ " data.success_date_t290 AS date_a4,\n"
ric,kv_a4::numeric),\n"
+ " data.success_date_t290 AS date_a5,\n"

A40
+" +"
lb_a_4x_c_6(mw_c6::numeric,mvar_c6::nume lb_c_1x_c_4(mw_c4::numeric,mvar_c4::numer
ric,kv_c6::numeric),\n" ic,kv_c4::numeric),\n"
+" +"
lb_a_5x_a_5(mw_a5::numeric,mvar_a5::nume lb_c_3f_a_6(mw_a6::numeric,mvar_a6::numer
ric,kv_a5::numeric),\n" ic,kv_a6::numeric),\n"
+" +"
lb_a_5x_c_3(mw_c3::numeric,mvar_c3::nume lb_c_3f_c_3(mw_c3::numeric,mvar_c3::numer
ric,kv_c3::numeric),\n" ic,kv_c3::numeric),\n"
+" +"
lb_a_830_a_1(mw_a1::numeric,mvar_a1::num lb_c_3x_c_1(mw_c1::numeric,mvar_c1::numer
eric,kv_a1::numeric),\n" ic,kv_c1::numeric),\n"
+" +"
lb_a_830_a_8(mw_a8::numeric,mvar_a8::num lb_c_3x_c_3(mw_c3::numeric,mvar_c3::numer
eric,kv_a8::numeric),\n" ic,kv_c3::numeric),\n"
+" +"
lb_a_8x_a_8(mw_a8::numeric,mvar_a8::nume lb_c_4x_a_6(mw_a6::numeric,mvar_a6::nume
ric,kv_a8::numeric),\n" ric,kv_a6::numeric),\n"
+" +"
lb_a_8x_l_4(mw_l4::numeric,mvar_l4::numeri lb_c_4x_c_4(mw_c4::numeric,mvar_c4::numer
c,kv_l4::numeric),\n" ic,kv_c4::numeric),\n"
+" +"
lb_a_9x_a_5(mw_a5::numeric,mvar_a5::nume lb_c_513_c_5(mw_c5::numeric,mvar_c5::num
ric,kv_a5::numeric),\n" eric,kv_c5::numeric),\n"
+" +"
lb_a_9x_a_9(mw_a9::numeric,mvar_a9::nume lb_c_513_c_6(mw_c6::numeric,mvar_c6::num
ric,kv_a9::numeric),\n" eric,kv_c6::numeric),\n"
+" +"
lb_c_0x_c_0(mw_c0::numeric,mvar_c0::numer lb_c_5l_c_4(mw_c4::numeric,mvar_c4::numeri
ic,kv_c0::numeric),\n" c,kv_c4::numeric),\n"
+" +"
lb_c_0x_l_2(mw_l2::numeric,mvar_l2::numeri lb_c_5l_c_5(mw_c5::numeric,mvar_c5::numeri
c,kv_l2::numeric),\n" c,kv_c5::numeric),\n"
+" +"
lb_c_0z_c_0(mw_c0::numeric,mvar_c0::numer lb_c_5x_a_7(mw_a7::numeric,mvar_a7::nume
ic,kv_c0::numeric),\n" ric,kv_a7::numeric),\n"
+" +"
lb_c_0z_l_3(mw_l3::numeric,mvar_l3::numeric lb_c_5x_c_5(mw_c5::numeric,mvar_c5::numer
,kv_l3::numeric),\n" ic,kv_c5::numeric),\n"
+" +"
lb_c_1x_c_1(mw_c1::numeric,mvar_c1::numer lb_c_7g_c_0(mw_c0::numeric,mvar_c0::numer
ic,kv_c1::numeric),\n" ic,kv_c0::numeric),\n"

A41
+" +"
lb_c_7g_c_7(mw_c7::numeric,mvar_c7::numer lb_l_4x_l_5(mw_l5::numeric,mvar_l5::numeric
ic,kv_c7::numeric),\n" ,kv_l5::numeric),\n"
+" +"
lb_c_8x_c_8(mw_c8::numeric,mvar_c8::numer lb_l_5x_a_1(mw_a1::numeric,mvar_a1::numer
ic,kv_c8::numeric),\n" ic,kv_a1::numeric),\n"
+" +"
lb_c_8x_l_1(mw_l1::numeric,mvar_l1::numeri lb_l_5x_l_5(mw_l5::numeric,mvar_l5::numeric
c,kv_l1::numeric),\n" ,kv_l5::numeric),\n"
+" +" -----------tramos
lb_c_9x_c_9(mw_c9::numeric,mvar_c9::numer intermedios---------------\n"
ic,kv_c9::numeric),\n" +"
+" ylw_a_1a_a_1_kv(mw_a1::numeric,mvar_a1::
lb_c_9x_l_1(mw_l1::numeric,mvar_l1::numeri numeric,kv_a1::numeric),\n"
c,kv_l1::numeric),\n" +"
+" ylw_a_2r_a_2_mw(mw_a2::numeric),ylw_a_2r
lb_l_2x_c_8(mw_c8::numeric,mvar_c8::numeri _a_2_mvar(mvar_a2::numeric),ylw_a_2r_a_2_kv(mw_a2:
c,kv_c8::numeric),\n" :numeric,mvar_a2::numeric,kv_a2::numeric),\n"
+" +"
lb_l_2x_l_2(mw_l2::numeric,mvar_l2::numeric ylw_a_4i_a_4_mw(mw_a4::numeric),ylw_a_4i
,kv_l2::numeric),\n" _a_4_mvar(mvar_a4::numeric),ylw_a_4i_a_4_kv(mw_a4:
+" :numeric,mvar_a4::numeric,kv_a4::numeric),\n"
lb_l_325xx_c_0(mw_c0::numeric,mvar_c0::nu +"
meric,kv_c0::numeric),\n" ylw_a_5r_a_5_mw(mw_a5::numeric),ylw_a_5r
+" _a_5_mvar(mvar_a5::numeric),ylw_a_5r_a_5_kv(mw_a5:
lb_l_325xx_l_3(mw_l3::numeric,mvar_l3::num :numeric,mvar_a5::numeric,kv_a5::numeric),\n"
eric,kv_l3::numeric),\n" +"
+" ylw_a_720_a_7_kv(mw_a7::numeric,mvar_a7:
lb_l_3b_l_3(mw_l3::numeric,mvar_l3::numeric :numeric,kv_a7::numeric),\n"
,kv_l3::numeric),\n" +"
+" ylw_a_9r_a_9_mw(mw_a9::numeric),ylw_a_9r
lb_l_3b_l_5(mw_l5::numeric,mvar_l5::numeric _a_9_mvar(mvar_a9::numeric),ylw_a_9r_a_9_kv(mw_a9:
,kv_l5::numeric),\n" :numeric,mvar_a9::numeric,kv_a9::numeric),\n"
+" +"
lb_l_3x_a_2(mw_a2::numeric,mvar_a2::numer ylw_a_990_a_9_mw(mw_a9::numeric),ylw_a_
ic,kv_a2::numeric),\n" 990_a_9_mvar(mvar_a9::numeric),ylw_a_990_a_9_kv(m
+" w_a9::numeric,mvar_a9::numeric,kv_a9::numeric),\n"
lb_l_3x_l_3(mw_a1::numeric,mvar_a1::numeri +"
c,kv_a1::numeric),\n" ylw_a_603_a_6_kv(mw_a6::numeric,mvar_a6:
+" :numeric,kv_a6::numeric),\n"
lb_l_4x_l_4(mw_l4::numeric,mvar_l4::numeric +"
,kv_l4::numeric),\n" ylw_a_835_a_8_mw(mw_a8::numeric),ylw_a_

A42
835_a_8_mvar(mvar_a8::numeric),ylw_a_835_a_8_kv(m _c_3_mvar(mvar_c3::numeric),ylw_c_3r_c_3_kv(mw_c3::
w_a8::numeric,mvar_a8::numeric,kv_a8::numeric),\n" numeric,mvar_c3::numeric,kv_c3::numeric),\n"
+" +"
ylw_a_8r_a_8_mw(mw_a8::numeric),ylw_a_8r ylw_c_3l_c_3_mw(mw_c3::numeric),ylw_c_3l
_a_8_mvar(mvar_a8::numeric),ylw_a_8r_a_8_kv(mw_a8: _c_3_mvar(mvar_c3::numeric),ylw_c_3l_c_3_kv(mw_c3::
:numeric,mvar_a8::numeric,kv_a8::numeric),\n" numeric,mvar_c3::numeric,kv_c3::numeric),\n"
+" +"
ylw_c_1r_c_1_mw(mw_c1::numeric),ylw_c_1r ylw_c_6q_c_6_mw(mw_c6::numeric),ylw_c_6
_c_1_mvar(mvar_c1::numeric),ylw_c_1r_c_1_kv(mw_c1:: q_c_6_mvar(mvar_c6::numeric),ylw_c_6q_c_6_kv(mw_c
numeric,mvar_c1::numeric,kv_c1::numeric),\n" 6::numeric,mvar_c6::numeric,kv_c6::numeric),\n"
+" +"
ylw_c_1t_c_1_mw(mw_c1::numeric),ylw_c_1t ylw_c_8c_c_8_mw(mw_c8::numeric),ylw_c_8c
_c_1_mvar(mvar_c1::numeric),ylw_c_1t_c_1_kv(mw_c1:: _c_8_mvar(mvar_c8::numeric),ylw_c_8c_c_8_kv(mw_c8::
numeric,mvar_c1::numeric,kv_c1::numeric),\n" numeric,mvar_c8::numeric,kv_c8::numeric),\n"
+" +"
ylw_c_5a_c_5_mw(mw_c5::numeric),ylw_c_5 ylw_c_916_c_9_mw(mw_c9::numeric),ylw_c_
a_c_5_mvar(mvar_c5::numeric),ylw_c_5a_c_5_kv(mw_c5 916_c_9_mvar(mvar_c9::numeric),ylw_c_916_c_9_kv(m
::numeric,mvar_c5::numeric,kv_c5::numeric),\n" w_c9::numeric,mvar_c9::numeric,kv_c9::numeric),\n"
+" +"
ylw_c_5e_c_5_kv(mw_c5::numeric,mvar_c5::n ylw_c_9r_c_9_mw(mw_c9::numeric),ylw_c_9r
umeric,kv_c5::numeric),\n" _c_9_mvar(mvar_c9::numeric),ylw_c_9r_c_9_kv(mw_c9::
+" numeric,mvar_c9::numeric,kv_c9::numeric),\n"
ylw_c_7i_c_7_mw(mw_c7::numeric),ylw_c_7i +"
_c_7_mvar(mvar_c7::numeric),ylw_c_7i_c_7_kv(mw_c7:: ylw_l_2r_l_2_mw(mw_l2::numeric),ylw_l_2r_l
numeric,mvar_c7::numeric,kv_c7::numeric),\n" _2_mvar(mvar_l2::numeric),ylw_l_2r_l_2_kv(mw_l2::nu
+" meric,mvar_l2::numeric,kv_l2::numeric),\n"
ylw_a_3e_c_7_kv(mw_c7::numeric,mvar_c7::n +"
umeric,kv_c7::numeric),\n" ylw_l_3r_l_3_mw(mw_l3::numeric),ylw_l_3r_l
+" _3_mvar(mvar_l3::numeric),ylw_l_3r_l_3_kv(mw_l3::nu
ylw_c_020aa_c_0_mw(mw_c0::numeric),ylw_ meric,mvar_l3::numeric,kv_l3::numeric),\n"
c_020aa_c_0_mvar(mvar_c0::numeric),ylw_c_020aa_c_0 +"
_kv(mw_c0::numeric,mvar_c0::numeric,kv_c0::numeric),\ ylw_l_4r_l_4_mw(mw_l4::numeric),ylw_l_4r_l
n" _4_mvar(mvar_l4::numeric),ylw_l_4r_l_4_kv(mw_l4::nu
+" meric,mvar_l4::numeric,kv_l4::numeric),\n"
ylw_c_020hj_c_0_kv(mw_c0::numeric,mvar_c +"
0::numeric,kv_c0::numeric),\n" ylw_l_5r_l_5_mw(mw_l5::numeric),ylw_l_5r_l
+" _5_mvar(mvar_l5::numeric),ylw_l_5r_l_5_kv(mw_l5::nu
ylw_c_3d_c_3_mw(mw_c3::numeric),ylw_c_3 meric,mvar_l5::numeric,kv_l5::numeric),\n"
d_c_3_mvar(mvar_c3::numeric),ylw_c_3d_c_3_kv(mw_c +"
3::numeric,mvar_c3::numeric,kv_c3::numeric),\n" ylw_l_545_l_5_mw(mw_l5::numeric),ylw_l_54
+" 5_l_5_mvar(mvar_l5::numeric),ylw_l_545_l_5_kv(mw_l5:
ylw_c_3r_c_3_mw(mw_c3::numeric),ylw_c_3r :numeric,mvar_l5::numeric,kv_l5::numeric)"

A43
+ " FROM ( SELECT s.mw_a1,\n" +" w.mvar_c7,\n"
+" s.mw_a2,\n" +" v.mvar_c8,\n"
+" s.mw_a4,\n" +" v.mvar_c9,\n"
+" s.mw_a5,\n" +" s.kv_a1,\n"
+" u.mw_a6,\n" +" s.kv_a2,\n"
+" s.mw_a7,\n" +" s.kv_a4,\n"
+" u.mw_a8,\n" +" s.kv_a5,\n"
+" s.mw_a9,\n" +" u.kv_a6,\n"
+" t.mw_l1,\n" +" s.kv_a7,\n"
+" t.mw_l2,\n" +" u.kv_a8,\n"
+" t.mw_l3,\n" +" s.kv_a9,\n"
+" t.mw_l4,\n" +" t.kv_l1,\n"
+" t.mw_l5,\n" +" t.kv_l2,\n"
+" v.mw_c0,\n" +" t.kv_l3,\n"
+" w.mw_c1,\n" +" t.kv_l4,\n"
+" v.mw_c3,\n" +" t.kv_l5,\n"
+" w.mw_c4,\n" +" v.kv_c0,\n"
+" w.mw_c5,\n" +" w.kv_c1,\n"
+" v.mw_c6,\n" +" v.kv_c3,\n"
+" w.mw_c7,\n" +" w.kv_c4,\n"
+" v.mw_c8,\n" +" w.kv_c5,\n"
+" v.mw_c9,\n" +" v.kv_c6,\n"
+" s.mvar_a1,\n" +" w.kv_c7,\n"
+" s.mvar_a2,\n" +" v.kv_c8,\n"
+" s.mvar_a4,\n" +" v.kv_c9,\n"
+" s.mvar_a5,\n" +" s.success_date_t290,\n"
+" u.mvar_a6,\n" +" u.success_date_t291,\n"
+" s.mvar_a7,\n" +" v.success_date_t190,\n"
+" u.mvar_a8,\n" +" w.success_date_t191,\n"
+" s.mvar_a9,\n" +" t.success_date_t390\n"
+" t.mvar_l1,\n" +" FROM ( SELECT data_1.mw_l1,\n"
+" t.mvar_l2,\n" +" data_1.mw_l2,\n"
+" t.mvar_l3,\n" +" data_1.mw_l3,\n"
+" t.mvar_l4,\n" +" data_1.mw_l4,\n"
+" t.mvar_l5,\n" +" data_1.mw_l5,\n"
+" v.mvar_c0,\n" +" data_1.mvar_l1,\n"
+" w.mvar_c1,\n" +" data_1.mvar_l2,\n"
+" v.mvar_c3,\n" +" data_1.mvar_l3,\n"
+" w.mvar_c4,\n" +" data_1.mvar_l4,\n"
+" w.mvar_c5,\n" +" data_1.mvar_l5,\n"
+" v.mvar_c6,\n" +" data_1.kv_l1,\n"

A44
+" data_1.kv_l2,\n" + " WHERE
+" data_1.kv_l3,\n" data_transformer.mw_t290 = (SELECT
+" data_1.kv_l4,\n" max(data_transformer.mw_t290) AS max\n"
+" data_1.kv_l5,\n" +" FROM (SELECT * FROM
+ " data_1.success_date AS data_transformer WHERE " + getBlockSQL() + ")
success_date_t390\n" data_transformer)LIMIT 1)) s,\n"
+" FROM data data_1\n" +" ( SELECT data_1.mw_a6,\n"
+" WHERE data_1.success_date = +" data_1.mw_a8,\n"
(SELECT data_transformer.success_date\n" +" data_1.mvar_a6,\n"
+" FROM data_transformer\n" +" data_1.mvar_a8,\n"
+ " WHERE +" data_1.kv_a6,\n"
data_transformer.mw_t390 = ( SELECT +" data_1.kv_a8,\n"
max(data_transformer.mw_t390) AS max\n" + " data_1.success_date AS
+" FROM (SELECT * FROM success_date_t291\n"
data_transformer WHERE " + getBlockSQL() + ") +" FROM data data_1\n"
data_transformer ) LIMIT 1)) t,\n" +" WHERE data_1.success_date =
+" ( SELECT data_1.mw_a1,\n" (SELECT data_transformer.success_date\n"
+" data_1.mw_a2,\n" +" FROM data_transformer\n"
+" data_1.mw_a7,\n" + " WHERE
+" data_1.mw_a4,\n" data_transformer.mw_t291 = (SELECT
+" data_1.mw_a5,\n" max(data_transformer.mw_t291) AS max\n"
+" data_1.mw_a9,\n" +" FROM (SELECT * FROM
+" data_1.mvar_a1,\n" data_transformer WHERE " + getBlockSQL() + ")
+" data_1.mvar_a2,\n" data_transformer) LIMIT 1)) u,\n"

+" data_1.mvar_a7,\n" +" ( SELECT data_1.mw_c9,\n"

+" data_1.mvar_a4,\n" +" data_1.mw_c8,\n"

+" data_1.mvar_a5,\n" +" data_1.mw_c0,\n"


+" data_1.mvar_a9,\n" +" data_1.mw_c3,\n"

+" data_1.kv_a1,\n" +" data_1.mw_c6,\n"

+" data_1.kv_a2,\n" +" data_1.mvar_c9,\n"

+" data_1.kv_a7,\n" +" data_1.mvar_c8,\n"

+" data_1.kv_a4,\n" +" data_1.mvar_c0,\n"

+" data_1.kv_a5,\n" +" data_1.mvar_c3,\n"

+" data_1.kv_a9,\n" +" data_1.mvar_c6,\n"

+ " data_1.success_date AS +" data_1.kv_c9,\n"


success_date_t290\n" +" data_1.kv_c8,\n"
+" FROM data data_1\n" +" data_1.kv_c0,\n"
+" WHERE data_1.success_date = +" data_1.kv_c3,\n"
(SELECT data_transformer.success_date\n" +" data_1.kv_c6,\n"
+" FROM data_transformer\n" + " data_1.success_date AS
success_date_t190\n"
+" FROM data data_1\n"

A45
+" WHERE data_1.success_date =
(SELECT data_transformer.success_date\n" table_TA.setItems(getObservableListTransfoermerA(main
+" FROM data_transformer\n" _result));
+ " WHERE tableC.setItems(getObservableListC(main_result));
data_transformer.mw_t190 = (SELECT
max(data_transformer.mw_t190) AS max\n" table_TC.setItems(getObservableListTransfoermerC(main
+" FROM (SELECT * FROM _result));
data_transformer WHERE " + getBlockSQL() + ") if (main_result.size() > 0) {
data_transformer) LIMIT 1)) v,\n" this.setOrangeLabels(main_result.get(0));
+" ( SELECT data_1.mw_c5,\n" this.setYellowLabels(main_result.get(0));
+" data_1.mw_c4,\n" }
+" data_1.mw_c7,\n" System.out.println(main_result);
+" data_1.mw_c1,\n" }
+" data_1.mvar_c5,\n"
+" data_1.mvar_c4,\n" --EVENTO QUE GENERA EL REPORTE DEL SISTEMA--
+" data_1.mvar_c7,\n" * @param event
+" data_1.mvar_c1,\n" */
+" data_1.kv_c5,\n" @FXML
+" data_1.kv_c4,\n" void generateReport(ActionEvent event) {
+" data_1.kv_c7,\n" if (main_result.size() > 0) {
+" data_1.kv_c1,\n" writeReport();
+ " data_1.success_date AS } else {
success_date_t191\n" Alert alert = new Alert(AlertType.INFORMATION);
+" FROM data data_1\n" alert.setTitle("Sin acciones de sistema");
+" WHERE data_1.success_date = (( alert.setHeaderText(null);
SELECT data_transformer.success_date\n" alert.setContentText("Primero debe generar una
+" FROM data_transformer\n" acción en el sistema");
+ " WHERE alert.showAndWait();
data_transformer.mw_t191 = (SELECT }
max(data_transformer.mw_t191) AS max\n" }
+" FROM (SELECT * FROM
data_transformer WHERE " + getBlockSQL() + ") --METODO QUE ESCRIBE ESCRIBE LOS DATOS DEL
data_transformer) LIMIT 1))) w) data;"); REPORTE--
*/
action_name = "maximo_coincidental_subestacion"; public void writeReport() {
tableL.setItems(getObservableListL(main_result)); String FileName = "report_" + action_name + "_" +
Long.toString(System.currentTimeMillis()) + ".txt";
table_TL.setItems(getObservableListTransfoermerL(main_ try (BufferedWriter bw = new BufferedWriter(new
result)); FileWriter(FileName, true))) {
tableA.setItems(getObservableListA(main_result));

bw.write("MW;MW;MW;MW;MW;MW;MW;MW;MW;M
W;MW;MW;MW;MW;MW;MW;MW;MW;MW;MW;MW;

A46
MW;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR;MV 8;A-8;A-8;A-8;A-8;C-1;C-1;C-1;C-1;C-1;C-1;C-5;C-5;C-5;C-
AR;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR 5;C-7;C-7;C-7;C-7;C-0;C-0;C-0;C-0;C-3;C-3;C-3;C-3;C-3;C-
;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR;KV;KV;KV;KV;K 3;C-3;C-3;C-3;C-6;C-6;C-6;C-8;C-8;C-8;C-9;C-9;C-9;C-9;C-
V;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV 9;C-9;L-2;L-2;L-2;L-3;L-3;L-3;L-4;L-4;L-4;L-5;L-5;L-5;L-5;L-
;MVA;% DE CARGA;MVA;% DE CARGA;MVAR;% DE 5;L-5");
CARGA;MVA;% DE CARGA;MVA;% DE CARGA;FECHA Y Map<String, Object> map = main_result.get(0);
HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y bw.newLine();
HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y bw.write(map.get("mw_a1") + ";" +
HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y map.get("mw_a2") + ";" + map.get("mw_a4") + ";" +
HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y map.get("mw_a5") + ";" + map.get("mw_a6") + ";" +
HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y map.get("mw_a7") + ";" + map.get("mw_a8") + ";" +
HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y map.get("mw_a9") + ";"
HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y + map.get("mw_l1") + ";" + map.get("mw_l2")
HORA;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;K + ";" + map.get("mw_l3") + ";" + map.get("mw_l4") + ";" +
V;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV map.get("mw_l5") + ";"
;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV; + map.get("mw_c0") + ";" +
KV;KV;KV;MW;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV;K map.get("mw_c1") + ";" + map.get("mw_c3") + ";" +
V;MW;MVAR;KV;MW;MVAR;KV;KV;MW;MVAR;KV;MW;M map.get("mw_c4") + ";" + map.get("mw_c5") + ";" +
VAR;KV;MW;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV;KV; map.get("mw_c6") + ";" + map.get("mw_c7") + ";" +
MW;MVAR;KV;KV;MW;MVAR;KV;KV;MW;MVAR;KV;MW; map.get("mw_c8") + ";" + map.get("mw_c9") + ";"
MVAR;KV;MW;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV;M + map.get("mvar_a1") + ";" +
W;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV map.get("mvar_a2") + ";" + map.get("mvar_a4") + ";" +
;MW;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV"); map.get("mvar_a5") + ";" + map.get("mvar_a6") + ";" +
bw.newLine(); map.get("mvar_a7") + ";" + map.get("mvar_a8") + ";" +
bw.write("A-1;A-2;A-4;A-5;A-6;A-7;A-8;A-9;L-1;L- map.get("mvar_a9") + ";"
2;L-3;L-4;L-5;C-0;C-1;C-3;C-4;C-5;C-6;C-7;C-8;C-9;A-1;A- + map.get("mvar_l1") + ";" +
2;A-4;A-5;A-6;A-7;A-8;A-9;L-1;L-2;L-3;L-4;L-5;C-0;C-1;C- map.get("mvar_l2") + ";" + map.get("mvar_l3") + ";" +
3;C-4;C-5;C-6;C-7;C-8;C-9;A-1;A-2;A-4;A-5;A-6;A-7;A-8;A- map.get("mvar_l4") + ";" + map.get("mvar_l5") + ";"
9;L-1;L-2;L-3;L-4;L-5;C-0;C-1;C-3;C-4;C-5;C-6;C-7;C-8;C-9;T- + map.get("mvar_c0") + ";" +
290;T-290;T-291;T-291;T-191;T-191;T-190;T-190;T-390;T- map.get("mvar_c1") + ";" + map.get("mvar_c3") + ";" +
390;A-1;A-2;A-4;A-5;A-6;A-7;A-8;A-9;L-1;L-2;L-3;L-4;L-5;C- map.get("mvar_c4") + ";" + map.get("mvar_c5") + ";" +
0;C-1;C-3;C-4;C-5;C-6;C-7;C-8;C-9;A-830-A-1;A-1L-A-1;A- map.get("mvar_c6") + ";" + map.get("mvar_c7") + ";" +
191-A-1;A-190-A-1;L-5X-A-1;A-830-A-8;A-1L-A-8;A-191-L- map.get("mvar_c8") + ";" + map.get("mvar_c9") + ";"
3;A-190-A-8;L-5X-L-5;L-3X-A-2;L-3X-L-3;A-4X-A-4;A-4X-C- + map.get("kv_a1") + ";" + map.get("kv_a2") +
6;A-9X-A-5;A-5X-A-5;A-9X-A-9;A-5X-C-3;C-5X-A-7;C-5X-C- ";" + map.get("kv_a4") + ";" + map.get("kv_a5") + ";" +
5;C-3F-A-6;C-4X-A-6;C-3F-C-3;C-4X-C-4;A-8X-A-8;A-8X-L- map.get("kv_a6") + ";" + map.get("kv_a7") + ";" +
4;C-1X-C-1;C-3X-C-1;C-1X-C-4;C-3X-C-3;C-5L-C-4;C-5L-C- map.get("kv_a8") + ";" + map.get("kv_a9") + ";"
5;C-513-C-6;C-513-C-5;C-7G-C-7;C-7G-C-0;C-0Z-C-0;C-0X- + map.get("kv_l1") + ";" + map.get("kv_l2") +
C-0;L-325XX-C-0;C-0Z-L-3;C-0X-L-2;L-325XX-L-3;C-8X-C- ";" + map.get("kv_l3") + ";" + map.get("kv_l4") + ";" +
8;L-2X-C-8;C-8X-L-1;L-2X-L-2;C-9X-L-1;C-9X-C-9;L-3B-L-3;L- map.get("kv_l5") + ";"
3B-L-5;L-4X-L-4;L-4X-L-5;A-1A;A-2R;A-2R;A-2R;A-4I;A-4I;A- + map.get("kv_c0") + ";" + map.get("kv_c1") +
4I;A-5R;A-5R;A-5R;A-7;A-9;A-9;A-9;A-9;A-9;A-9;A-6;A-8;A- ";" + map.get("kv_c3") + ";" + map.get("kv_c4") + ";" +

A47
map.get("kv_c5") + ";" + map.get("kv_c6") + ";" + map.get("lb_a_8x_l_4") + ";" + map.get("lb_c_1x_c_1") +
map.get("kv_c7") + ";" + map.get("kv_c8") + ";" + ";"
map.get("kv_c9") + ";" + map.get("lb_c_3x_c_1") + ";" +
+ map.get("t290_mva") + ";" + map.get("lb_c_1x_c_4") + ";" + map.get("lb_c_3x_c_3") +
map.get("t290_percent") + ";" + map.get("t291_mva") + ";" + map.get("lb_c_5l_c_4") + ";" +
";" + map.get("t291_percent") + ";" + map.get("lb_c_5l_c_5") + ";" + map.get("lb_c_513_c_6")
map.get("t191_mva") + ";" + map.get("t191_percent") + + ";" + map.get("lb_c_513_c_5") + ";" +
";" + map.get("t190_mva") + ";" + map.get("lb_c_7g_c_7") + ";" + map.get("lb_c_7g_c_0") +
map.get("t190_percent") + ";" + map.get("t390_mva") + ";"
";" + map.get("t390_percent") + ";" + map.get("lb_c_0z_c_0") + ";" +
+ map.get("date_a1") + ";" + map.get("lb_c_0x_c_0") + ";" +
map.get("date_a2") + ";" + map.get("date_a4") + ";" + map.get("lb_l_325xx_c_0") + ";" + map.get("lb_c_0z_l_3")
map.get("date_a5") + ";" + map.get("date_a6") + ";" + + ";" + map.get("lb_c_0x_l_2") + ";" +
map.get("date_a7") + ";" + map.get("date_a8") + ";" + map.get("lb_l_325xx_l_3") + ";" +
map.get("date_a9") + ";" map.get("lb_c_8x_c_8") + ";" + map.get("lb_l_2x_c_8") +
+ map.get("date_l1") + ";" + ";" + map.get("lb_c_8x_l_1") + ";"
map.get("date_l2") + ";" + map.get("date_l3") + ";" + + map.get("lb_l_2x_l_2") + ";" +
map.get("date_l4") + ";" + map.get("date_l5") + ";" map.get("lb_c_9x_l_1") + ";" + map.get("lb_c_9x_c_9") +
+ map.get("date_c0") + ";" + ";" + map.get("lb_l_3b_l_3") + ";" +
map.get("date_c1") + ";" + map.get("date_c3") + ";" + map.get("lb_l_3b_l_5") + ";" + map.get("lb_l_4x_l_4") +
map.get("date_c4") + ";" + map.get("date_c5") + ";" + ";" + map.get("lb_l_4x_l_5") + ";"
map.get("date_c6") + ";" + map.get("date_c7") + ";" + + map.get("ylw_a_1a_a_1_kv") + ";"
map.get("date_c8") + ";" + map.get("date_c9") + ";" + map.get("ylw_a_2r_a_2_mw") + ";" +
+ map.get("lb_a_830_a_1") + ";" + map.get("ylw_a_2r_a_2_mvar") + ";" +
map.get("lb_a_1l_a_1") + ";" + map.get("lb_a_191_a_1") map.get("ylw_a_2r_a_2_kv") + ";"
+ ";" + map.get("lb_a_190_a_1") + ";" + + map.get("ylw_a_4i_a_4_mw") + ";" +
map.get("lb_l_5x_a_1") + ";" + map.get("lb_a_830_a_8") map.get("ylw_a_4i_a_4_mvar") + ";" +
+ ";" + map.get("lb_a_1l_a_8") + ";" + map.get("ylw_a_4i_a_4_kv") + ";"
map.get("lb_a_191_l_3") + ";" + + map.get("ylw_a_5r_a_5_mw") + ";" +
map.get("lb_a_190_a_8") + ";" map.get("ylw_a_5r_a_5_mvar") + ";" +
+ map.get("lb_l_5x_l_5") + ";" + map.get("ylw_a_5r_a_5_kv") + ";"
map.get("lb_l_3x_a_2") + ";" + map.get("lb_l_3x_l_3") + + map.get("ylw_a_720_a_7_kv") + ";"
";" + map.get("lb_a_4x_a_4") + ";" + + map.get("ylw_a_9r_a_9_mw") + ";" +
map.get("lb_a_4x_c_6") + ";" + map.get("lb_a_9x_a_5") + map.get("ylw_a_9r_a_9_mvar") + ";" +
";" + map.get("lb_a_5x_a_5") + ";" + map.get("ylw_a_9r_a_9_kv") + ";"
map.get("lb_a_9x_a_9") + ";" + map.get("lb_a_5x_c_3") + + map.get("ylw_a_990_a_9_mw") + ";" +
";" map.get("ylw_a_990_a_9_mvar") + ";" +
+ map.get("lb_c_5x_a_7") + ";" + map.get("ylw_a_990_a_9_kv") + ";"
map.get("lb_c_5x_c_5") + ";" + map.get("lb_c_3f_a_6") + + map.get("ylw_a_603_a_6_kv") + ";"
";" + map.get("lb_c_4x_a_6") + ";" + + map.get("ylw_a_835_a_8_mw") + ";" +
map.get("lb_c_3f_c_3") + ";" + map.get("lb_c_4x_c_4") + map.get("ylw_a_835_a_8_mvar") + ";" +
";" + map.get("lb_a_8x_a_8") + ";" + map.get("ylw_a_835_a_8_kv") + ";"

A48
+ map.get("ylw_a_8r_a_8_mw") + ";" + + map.get("ylw_l_2r_l_2_mw") + ";" +
map.get("ylw_a_8r_a_8_mvar") + ";" + map.get("ylw_l_2r_l_2_mvar") + ";" +
map.get("ylw_a_8r_a_8_kv") + ";" map.get("ylw_l_2r_l_2_kv") + ";"
+ map.get("ylw_c_1r_c_1_mw") + ";" + + map.get("ylw_l_3r_l_3_mw") + ";" +
map.get("ylw_c_1r_c_1_mvar") + ";" + map.get("ylw_l_3r_l_3_mvar") + ";" +
map.get("ylw_c_1r_c_1_kv") + ";" map.get("ylw_l_3r_l_3_kv") + ";"
+ map.get("ylw_c_1t_c_1_mw") + ";" + + map.get("ylw_l_4r_l_4_mw") + ";" +
map.get("ylw_c_1t_c_1_mvar") + ";" + map.get("ylw_l_4r_l_4_mvar") + ";" +
map.get("ylw_c_1t_c_1_kv") + ";" map.get("ylw_l_4r_l_4_kv") + ";"
+ map.get("ylw_c_5a_c_5_mw") + ";" + + map.get("ylw_l_5r_l_5_mw") + ";" +
map.get("ylw_c_5a_c_5_mvar") + ";" + map.get("ylw_l_5r_l_5_mvar") + ";" +
map.get("ylw_c_5a_c_5_kv") + ";" map.get("ylw_l_5r_l_5_kv") + ";"
+ map.get("ylw_c_5e_c_5_kv") + ";" + map.get("ylw_l_545_l_5_mw") + ";" +
+ map.get("ylw_c_7i_c_7_mw") + ";" + map.get("ylw_l_545_l_5_mvar") + ";" +
map.get("ylw_c_7i_c_7_mvar") + ";" + map.get("ylw_l_545_l_5_kv")
map.get("ylw_c_7i_c_7_kv") + ";" );
+ map.get("ylw_a_3e_c_7_kv") + ";" bw.close();
+ map.get("ylw_c_020aa_c_0_mw") + ";" + File file = new File(FileName);
map.get("ylw_c_020aa_c_0_mvar") + ";" + Desktop desktop = Desktop.getDesktop();
map.get("ylw_c_020aa_c_0_kv") + ";" desktop.open(file);
+ map.get("ylw_c_020hj_c_0_kv") + ";" } catch (IOException e) {
+ map.get("ylw_c_3d_c_3_mw") + ";" + e.printStackTrace();
map.get("ylw_c_3d_c_3_mvar") + ";" + }
map.get("ylw_c_3d_c_3_kv") + ";" }
+ map.get("ylw_c_3r_c_3_mw") + ";" +
map.get("ylw_c_3r_c_3_mvar") + ";" +
map.get("ylw_c_3r_c_3_kv") + ";"
+ map.get("ylw_c_3l_c_3_mw") + ";" +
map.get("ylw_c_3l_c_3_mvar") + ";" +
map.get("ylw_c_3l_c_3_kv") + ";"
+ map.get("ylw_c_6q_c_6_mw") + ";" +
map.get("ylw_c_6q_c_6_mvar") + ";" +
map.get("ylw_c_6q_c_6_kv") + ";"
+ map.get("ylw_c_8c_c_8_mw") + ";" +
map.get("ylw_c_8c_c_8_mvar") + ";" +
map.get("ylw_c_8c_c_8_kv") + ";"
+ map.get("ylw_c_916_c_9_mw") + ";" +
map.get("ylw_c_916_c_9_mvar") + ";" +
map.get("ylw_c_916_c_9_kv") + ";"
+ map.get("ylw_c_9r_c_9_mw") + ";" +
map.get("ylw_c_9r_c_9_mvar") + ";" +
map.get("ylw_c_9r_c_9_kv") + ";"

A49
ANEXO 3 MODELADO DE LA -- Function: public.lb_a_190_a_8(numeric, numeric,
numeric)
RED Y CALCULOS DE CAIDAS
DE TENSIÓN -- DROP FUNCTION public.lb_a_190_a_8(numeric,
numeric, numeric);

--ELEMENTOS DE MANIOBRA N/A—


CREATE OR REPLACE FUNCTION public.lb_a_190_a_8(

-- Function: public.lb_a_190_a_1(numeric, numeric, numeric,

numeric) numeric,
numeric)

-- DROP FUNCTION public.lb_a_190_a_1(numeric, RETURNS numeric AS

numeric, numeric); $BODY$


DECLARE

CREATE OR REPLACE FUNCTION public.lb_a_190_a_1( _mw alias for $1;

numeric, _mvar alias for $2;

numeric, _kv alias for $3;

numeric) BEGIN

RETURNS numeric AS RETURN ROUND((SELECT _kv-

$BODY$ ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C

DECLARE OS(ATAN(_mvar/_mw))))))*4.095)+(((0.084*COS(ATAN(_

_mw alias for $1; mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))

_mvar alias for $2; )))*0.014))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(


3))*1000)*2*sqrt(3))/(3*1000))*4.5/4.11))::numeric,2);
_kv alias for $3;
EXCEPTION when others then
BEGIN
RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RAISE INFO 'Error State:%', SQLSTATE;

OS(ATAN(_mvar/_mw))))))*3.481)+(((0.084*COS(ATAN(_ return 0;

mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) END;$BODY$

)))*0.159))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( LANGUAGE plpgsql VOLATILE

3))*1000)*sqrt(3))/(2*1000))*3.58/3.64))::numeric,2); COST 100;

EXCEPTION when others then ALTER FUNCTION public.lb_a_190_a_8(numeric, numeric,

RAISE INFO 'Error Name:%',SQLERRM; numeric)

RAISE INFO 'Error State:%', SQLSTATE; OWNER TO postgres;

return 0;
END;$BODY$ -- Function: public.lb_a_191_a_1(numeric, numeric,

LANGUAGE plpgsql VOLATILE numeric)

COST 100;
ALTER FUNCTION public.lb_a_190_a_1(numeric, numeric, -- DROP FUNCTION public.lb_a_191_a_1(numeric,

numeric) numeric, numeric);

OWNER TO postgres;
CREATE OR REPLACE FUNCTION public.lb_a_191_a_1(
numeric,

A50
numeric, _mw alias for $1;
numeric) _mvar alias for $2;
RETURNS numeric AS _kv alias for $3;
$BODY$ BEGIN
DECLARE RETURN ROUND((SELECT _kv-
_mw alias for $1; ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
_mvar alias for $2; OS(ATAN(_mvar/_mw))))))*3.218)+(((0.084*COS(ATAN(_
_kv alias for $3; mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
BEGIN )))*0.117))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
3))*1000)*sqrt(3))/(2*1000))*2.97/3.33))::numeric,2);
EXCEPTION when others then

RETURN ROUND((SELECT _kv- RAISE INFO 'Error Name:%',SQLERRM;

((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RAISE INFO 'Error State:%', SQLSTATE;


OS(ATAN(_mvar/_mw))))))*3.481)+(((0.084*COS(ATAN(_ return 0;
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) END;$BODY$
)))*0.159))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( LANGUAGE plpgsql VOLATILE
3))*1000)*sqrt(3))/(2*1000))*3.59/3.64)) COST 100;
::numeric,2); ALTER FUNCTION public.lb_a_191_l_3(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_a_1l_a_1(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_a_1l_a_1(numeric, numeric,
ALTER FUNCTION public.lb_a_191_a_1(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_a_1l_a_1(
numeric,
-- Function: public.lb_a_191_l_3(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_a_191_l_3(numeric, $BODY$
numeric, numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_a_191_l_3( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric)
RETURNS numeric AS
$BODY$ RETURN ROUND((SELECT _kv-
DECLARE ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C

A51
OS(ATAN(_mvar/_mw))))))*3.481)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.159))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*3.42/3.64))::numeric,2); ALTER FUNCTION public.lb_a_1l_a_8(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_a_4x_a_4(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_a_4x_a_4(numeric, numeric,
ALTER FUNCTION public.lb_a_1l_a_1(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_a_4x_a_4(
numeric,
-- Function: public.lb_a_1l_a_8(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_a_1l_a_8(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_a_1l_a_8( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*0.13)+(((0.084*COS(ATAN(_m
DECLARE var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
_mw alias for $1; )*2.195))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)
_mvar alias for $2; )*1000)*2*sqrt(3))/(3*1000))*2.19/2.33))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*4.095)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.014))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*2*sqrt(3))/(3*1000))*3.6/4.11))::numeric,2); ALTER FUNCTION public.lb_a_4x_a_4(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0;

A52
-- Function: public.lb_a_4x_c_6(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_a_4x_c_6(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_a_4x_c_6( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*4.794)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.074))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(3*1000))*5.72/4.87))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*0)+(((0.084*COS(ATAN(_mvar END;$BODY$
/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))))*2 LANGUAGE plpgsql VOLATILE
.1))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))*100 COST 100;
0)*sqrt(3))/(2*1000))*2.01/2.1))::numeric,2); ALTER FUNCTION public.lb_a_5x_a_5(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_a_5x_c_3(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_a_5x_c_3(numeric, numeric,
ALTER FUNCTION public.lb_a_4x_c_6(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_a_5x_c_3(
numeric,
-- Function: public.lb_a_5x_a_5(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_a_5x_a_5(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_a_5x_a_5( _mvar alias for $2;
numeric, _kv alias for $3;

A53
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*4.702)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.552))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*5.25/5.25))::numeric,2); ALTER FUNCTION public.lb_a_830_a_1(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_a_830_a_8(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_a_830_a_8(numeric,
ALTER FUNCTION public.lb_a_5x_c_3(numeric, numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_a_830_a_8(
numeric,
-- Function: public.lb_a_830_a_1(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_a_830_a_1(numeric, $BODY$
numeric, numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_a_830_a_1( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*4.095)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.014))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*2*sqrt(3))/(3*1000))*2.22/4.11))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*3.481)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.159))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*2.04/3.64))::numeric,2); ALTER FUNCTION public.lb_a_830_a_8(numeric, numeric,
EXCEPTION when others then numeric)

A54
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_a_8x_l_4(
numeric,
-- Function: public.lb_a_8x_a_8(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_a_8x_a_8(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_a_8x_a_8( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*4.975)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.036))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(3*1000))*5.01/5.01))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*4.095)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.014))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*2*sqrt(3))/(3*1000))*4.11/4.11))::numeric,2); ALTER FUNCTION public.lb_a_8x_l_4(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_a_9x_a_5(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_a_9x_a_5(numeric, numeric,
ALTER FUNCTION public.lb_a_8x_a_8(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_a_9x_a_5(
numeric,
-- Function: public.lb_a_8x_l_4(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_a_8x_l_4(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;

A55
_mvar alias for $2; )))*0))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))*1
_kv alias for $3; 000)*2*sqrt(3))/(3*1000))*6.07/6.97))::numeric,2);
BEGIN EXCEPTION when others then
RETURN ROUND((SELECT _kv- RAISE INFO 'Error Name:%',SQLERRM;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RAISE INFO 'Error State:%', SQLSTATE;
OS(ATAN(_mvar/_mw))))))*4.794)+(((0.084*COS(ATAN(_ return 0;
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) END;$BODY$
)))*0.074))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( LANGUAGE plpgsql VOLATILE
3))*1000)*sqrt(3))/(3*1000))*5.74/4.87))::numeric,2); COST 100;
EXCEPTION when others then ALTER FUNCTION public.lb_a_9x_a_9(numeric, numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric)
RAISE INFO 'Error State:%', SQLSTATE; OWNER TO postgres;
return 0;
END;$BODY$ -- Function: public.lb_c_0x_c_0(numeric, numeric,
LANGUAGE plpgsql VOLATILE numeric)
COST 100;
ALTER FUNCTION public.lb_a_9x_a_5(numeric, numeric, -- DROP FUNCTION public.lb_c_0x_c_0(numeric, numeric,
numeric) numeric);
OWNER TO postgres;
CREATE OR REPLACE FUNCTION public.lb_c_0x_c_0(
-- Function: public.lb_a_9x_a_9(numeric, numeric, numeric,
numeric) numeric,
numeric)
-- DROP FUNCTION public.lb_a_9x_a_9(numeric, numeric, RETURNS numeric AS
numeric); $BODY$
DECLARE
CREATE OR REPLACE FUNCTION public.lb_a_9x_a_9( _mw alias for $1;
numeric, _mvar alias for $2;
numeric, _kv alias for $3;
numeric) BEGIN
RETURNS numeric AS RETURN ROUND((SELECT _kv+((-
$BODY$ ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
DECLARE OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m
_mw alias for $1; var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
_mvar alias for $2; )*0.5))*((_mw/(((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)))
_kv alias for $3; *1000)*1*sqrt(3))/(1*1000))*1)-
BEGIN ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
RETURN ROUND((SELECT _kv- OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
OS(ATAN(_mvar/_mw))))))*6.969)+(((0.084*COS(ATAN(_ )*0))*(((_mw*0.67)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) t(3)))*1000)*1*sqrt(3))/(1*1000))*1)-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C

A56
OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m )*0.015))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) )*1000)*sqrt(3))/(2*1000))*1.99/1.99))::numeric,2);
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr EXCEPTION when others then
t(3)))*1000)*1*sqrt(3))/(1*1000))*1)- RAISE INFO 'Error Name:%',SQLERRM;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RAISE INFO 'Error State:%', SQLSTATE;
OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m return 0;
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) END;$BODY$
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr LANGUAGE plpgsql VOLATILE
t(3)))*1000)*1*sqrt(3))/(1*1000))*1))*2.5/2.8))::numeric, COST 100;
2); ALTER FUNCTION public.lb_c_0x_l_2(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_c_0z_c_0(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_c_0z_c_0(numeric, numeric,
ALTER FUNCTION public.lb_c_0x_c_0(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_c_0z_c_0(
numeric,
-- Function: public.lb_c_0x_l_2(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_c_0x_l_2(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_c_0x_l_2( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv+((-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m
DECLARE var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
_mw alias for $1; )*0.5))*((_mw/(((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)))
_mvar alias for $2; *1000)*1*sqrt(3))/(1*1000))*1)-
_kv alias for $3; ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
BEGIN OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m
RETURN ROUND((SELECT _kv- var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C )*0))*(((_mw*0.67)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr
OS(ATAN(_mvar/_mw))))))*1.98)+(((0.084*COS(ATAN(_m t(3)))*1000)*1*sqrt(3))/(1*1000))*1)-
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C

A57
OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m )))*0.117))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) 3))*1000)*sqrt(3))/(2*1000))*3.01/3.33))::numeric,2);
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr EXCEPTION when others then
t(3)))*1000)*1*sqrt(3))/(1*1000))*1)- RAISE INFO 'Error Name:%',SQLERRM;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RAISE INFO 'Error State:%', SQLSTATE;
OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m return 0;
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) END;$BODY$
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr LANGUAGE plpgsql VOLATILE
t(3)))*1000)*1*sqrt(3))/(1*1000))*1))*2.25/2.8))::numeri COST 100;
c,2); ALTER FUNCTION public.lb_c_0z_l_3(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_c_1x_c_1(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_c_1x_c_1(numeric, numeric,
ALTER FUNCTION public.lb_c_0z_c_0(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_c_1x_c_1(
numeric,
-- Function: public.lb_c_0z_l_3(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_c_0z_l_3(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_c_0z_l_3( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*4.227)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.535))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(2*1000))*0.62/4.76))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*3.218)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE

A58
COST 100; -- DROP FUNCTION public.lb_c_3f_a_6(numeric, numeric,
ALTER FUNCTION public.lb_c_1x_c_1(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_c_3f_a_6(
numeric,
-- Function: public.lb_c_1x_c_4(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_c_1x_c_4(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_c_1x_c_4( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*3.054)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.029))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*2*sqrt(3))/(3*1000))*3.08/3.08))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*2.624)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.11))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3) COST 100;
)*1000)*2*sqrt(3))/(3*1000))*0.49/2.73))::numeric,2); ALTER FUNCTION public.lb_c_3f_a_6(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_c_3f_c_3(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_c_3f_c_3(numeric, numeric,
ALTER FUNCTION public.lb_c_1x_c_4(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_c_3f_c_3(
numeric,
-- Function: public.lb_c_3f_a_6(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS

A59
$BODY$ OS(ATAN(_mvar/_mw))))))*4.227)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.535))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(2*1000))*4.59/4.76))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*4.702)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.552))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*2.55/5.25))::numeric,2); ALTER FUNCTION public.lb_c_3x_c_1(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_c_3x_c_3(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_c_3x_c_3(numeric, numeric,
ALTER FUNCTION public.lb_c_3f_c_3(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_c_3x_c_3(
numeric,
-- Function: public.lb_c_3x_c_1(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_c_3x_c_1(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_c_3x_c_1( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*4.702)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.552))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(2*1000))*2.2/5.25))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;

A60
END;$BODY$ -- Function: public.lb_c_4x_c_4(numeric, numeric,
LANGUAGE plpgsql VOLATILE numeric)
COST 100;
ALTER FUNCTION public.lb_c_3x_c_3(numeric, numeric, -- DROP FUNCTION public.lb_c_4x_c_4(numeric, numeric,
numeric) numeric);
OWNER TO postgres;
CREATE OR REPLACE FUNCTION public.lb_c_4x_c_4(
-- Function: public.lb_c_4x_a_6(numeric, numeric, numeric,
numeric) numeric,
numeric)
-- DROP FUNCTION public.lb_c_4x_a_6(numeric, numeric, RETURNS numeric AS
numeric); $BODY$
DECLARE
CREATE OR REPLACE FUNCTION public.lb_c_4x_a_6( _mw alias for $1;
numeric, _mvar alias for $2;
numeric, _kv alias for $3;
numeric) BEGIN
RETURNS numeric AS RETURN ROUND((SELECT _kv-
$BODY$ ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
DECLARE OS(ATAN(_mvar/_mw))))))*2.624)+(((0.084*COS(ATAN(_
_mw alias for $1; mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mvar alias for $2; )))*0.11))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)
_kv alias for $3; )*1000)*2*sqrt(3))/(3*1000))*2.73/2.73))::numeric,2);

BEGIN EXCEPTION when others then

RETURN ROUND((SELECT _kv- RAISE INFO 'Error Name:%',SQLERRM;


((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RAISE INFO 'Error State:%', SQLSTATE;
OS(ATAN(_mvar/_mw))))))*3.054)+(((0.084*COS(ATAN(_ return 0;
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) END;$BODY$
)))*0.0))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)) LANGUAGE plpgsql VOLATILE
*1000)*2*sqrt(3))/(3*1000))*2.78/3.08))::numeric,2); COST 100;
EXCEPTION when others then ALTER FUNCTION public.lb_c_4x_c_4(numeric, numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric)
RAISE INFO 'Error State:%', SQLSTATE; OWNER TO postgres;
return 0;
END;$BODY$ -- Function: public.lb_c_513_c_5(numeric, numeric,
LANGUAGE plpgsql VOLATILE numeric)
COST 100;
ALTER FUNCTION public.lb_c_4x_a_6(numeric, numeric, -- DROP FUNCTION public.lb_c_513_c_5(numeric,
numeric) numeric, numeric);
OWNER TO postgres;
CREATE OR REPLACE FUNCTION public.lb_c_513_c_5(
numeric,

A61
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*0)+(((0.084*COS(ATAN(_mvar
DECLARE /_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))))*2
_mw alias for $1; .1))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))*100
_mvar alias for $2; 0)*sqrt(3))/(2*1000))*1.71/2.1))::numeric,2);

_kv alias for $3; EXCEPTION when others then

BEGIN RAISE INFO 'Error Name:%',SQLERRM;

RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;

((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*1.429)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.578))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*2*sqrt(3))/(3*1000))*2.1/2.1))::numeric,2); ALTER FUNCTION public.lb_c_513_c_6(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_c_5l_c_4(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_c_5l_c_4(numeric, numeric,
ALTER FUNCTION public.lb_c_513_c_5(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_c_5l_c_4(
numeric,
-- Function: public.lb_c_513_c_6(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_c_513_c_6(numeric, $BODY$
numeric, numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_c_513_c_6( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*2.624)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.11))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)

_mvar alias for $2; )*1000)*2*sqrt(3))/(3*1000))*1.48/2.73))::numeric,2);

_kv alias for $3; EXCEPTION when others then

A62
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_c_5x_a_7(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_c_5x_a_7(numeric, numeric,
ALTER FUNCTION public.lb_c_5l_c_4(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_c_5x_a_7(
numeric,
-- Function: public.lb_c_5l_c_5(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_c_5l_c_5(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_c_5l_c_5( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*0.345)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*1.32))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)
_mvar alias for $2; )*2*1000)*sqrt(3))/(3*1000))*1.41/1.67))::numeric,2);

_kv alias for $3; EXCEPTION when others then


BEGIN RAISE INFO 'Error Name:%',SQLERRM;

RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;


((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*1.429)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.578))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*2*sqrt(3))/(3*1000))*1.59/2.1))::numeric,2); ALTER FUNCTION public.lb_c_5x_a_7(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_c_5x_c_5(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_c_5x_c_5(numeric, numeric,
ALTER FUNCTION public.lb_c_5l_c_5(numeric, numeric, numeric);
numeric)

A63
CREATE OR REPLACE FUNCTION public.lb_c_5x_c_5( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv+((-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m
DECLARE var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
_mw alias for $1; )*0.5))*((_mw/(((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)))
_mvar alias for $2; *1000)*1*sqrt(3))/(1*1000))*1)-

_kv alias for $3; ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C

BEGIN OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m

RETURN ROUND((SELECT _kv- var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))

((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C )*0))*(((_mw*0.67)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr

OS(ATAN(_mvar/_mw))))))*1.429)+(((0.084*COS(ATAN(_ t(3)))*1000)*1*sqrt(3))/(1*1000))*1)-

mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C

)))*0.578))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m

3))*1000)*2*sqrt(3))/(3*1000))*2.06/2.1))::numeric,2); var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))

EXCEPTION when others then )*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr

RAISE INFO 'Error Name:%',SQLERRM; t(3)))*1000)*1*sqrt(3))/(1*1000))*1)-

RAISE INFO 'Error State:%', SQLSTATE; ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C

return 0; OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m

END;$BODY$ var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr
LANGUAGE plpgsql VOLATILE
t(3)))*1000)*1*sqrt(3))/(1*1000))*1))*2.8/2.8))::numeric,
COST 100;
2);
ALTER FUNCTION public.lb_c_5x_c_5(numeric, numeric,
EXCEPTION when others then
numeric)
RAISE INFO 'Error Name:%',SQLERRM;
OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- Function: public.lb_c_7g_c_0(numeric, numeric,
END;$BODY$
numeric)
LANGUAGE plpgsql VOLATILE
COST 100;
-- DROP FUNCTION public.lb_c_7g_c_0(numeric, numeric,
numeric); ALTER FUNCTION public.lb_c_7g_c_0(numeric, numeric,
numeric)
OWNER TO postgres;
CREATE OR REPLACE FUNCTION public.lb_c_7g_c_0(
numeric,
-- Function: public.lb_c_7g_c_7(numeric, numeric,
numeric,
numeric)
numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_c_7g_c_7(numeric, numeric,
$BODY$
numeric);
DECLARE
_mw alias for $1;

A64
CREATE OR REPLACE FUNCTION public.lb_c_7g_c_7( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*3.308)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.194))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(2*1000))*3.15/3.5))::numeric,2);

_kv alias for $3; EXCEPTION when others then

BEGIN RAISE INFO 'Error Name:%',SQLERRM;

RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;

((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*0)+(((0.084*COS(ATAN(_mvar END;$BODY$
/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))))*4 LANGUAGE plpgsql VOLATILE
.206))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))*1 COST 100;
000)*sqrt(3))/(2*1000))*1.18/4.21))::numeric,2); ALTER FUNCTION public.lb_c_8x_c_8(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_c_8x_l_1(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_c_8x_l_1(numeric, numeric,
ALTER FUNCTION public.lb_c_7g_c_7(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_c_8x_l_1(
numeric,
-- Function: public.lb_c_8x_c_8(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_c_8x_c_8(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_c_8x_c_8( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*2.239)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1;

A65
)))*0.022))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*1.73/2.26))::numeric,2); ALTER FUNCTION public.lb_c_9x_c_9(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_c_9x_l_1(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_c_9x_l_1(numeric, numeric,
ALTER FUNCTION public.lb_c_8x_l_1(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_c_9x_l_1(
numeric,
-- Function: public.lb_c_9x_c_9(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_c_9x_c_9(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_c_9x_c_9( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*2.239)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.022))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(2*1000))*1.73/2.26))::numeric,2);

_kv alias for $3; EXCEPTION when others then


BEGIN RAISE INFO 'Error Name:%',SQLERRM;

RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;


((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*4.429)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.197))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*4.63/4.63))::numeric,2); ALTER FUNCTION public.lb_c_9x_l_1(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_l_2x_c_8(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE

A66
-- DROP FUNCTION public.lb_l_2x_c_8(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_l_2x_c_8( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*1.98)+(((0.084*COS(ATAN(_m
DECLARE var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
_mw alias for $1; )*0.015))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)
_mvar alias for $2; )*1000)*sqrt(3))/(2*1000))*1.8/1.99))::numeric,2);

_kv alias for $3; EXCEPTION when others then

BEGIN RAISE INFO 'Error Name:%',SQLERRM;

RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;


((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*3.308)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.194))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*3.5/3.5))::numeric,2); ALTER FUNCTION public.lb_l_2x_l_2(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_l_325xx_c_0(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_l_325xx_c_0(numeric,
ALTER FUNCTION public.lb_l_2x_c_8(numeric, numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_l_325xx_c_0(
numeric,
-- Function: public.lb_l_2x_l_2(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_l_2x_l_2(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_l_2x_l_2( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv+((-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C

A67
OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m $BODY$
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) DECLARE
)*0.5))*((_mw/(((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))) _mw alias for $1;
*1000)*1*sqrt(3))/(1*1000))*1)- _mvar alias for $2;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C _kv alias for $3;
OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m BEGIN
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) RETURN ROUND((SELECT _kv-
)*0))*(((_mw*0.67)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
t(3)))*1000)*1*sqrt(3))/(1*1000))*1)- OS(ATAN(_mvar/_mw))))))*3.218)+(((0.084*COS(ATAN(_
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m )))*0.117))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) 3))*1000)*sqrt(3))/(2*1000))*2.57/3.33))::numeric,2);
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr EXCEPTION when others then
t(3)))*1000)*1*sqrt(3))/(1*1000))*1)- RAISE INFO 'Error Name:%',SQLERRM;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RAISE INFO 'Error State:%', SQLSTATE;
OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m return 0;
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) END;$BODY$
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr LANGUAGE plpgsql VOLATILE
t(3)))*1000)*1*sqrt(3))/(1*1000))*1))*2.71/2.8))::numeri COST 100;
c,2);
ALTER FUNCTION public.lb_l_325xx_l_3(numeric,
EXCEPTION when others then numeric, numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- Function: public.lb_l_3b_l_3(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_l_3b_l_3(numeric, numeric,
ALTER FUNCTION public.lb_l_325xx_c_0(numeric, numeric);
numeric, numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_l_3b_l_3(
numeric,
-- Function: public.lb_l_325xx_l_3(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_l_325xx_l_3(numeric, $BODY$
numeric, numeric);
DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_l_325xx_l_3(
_mvar alias for $2;
numeric,
_kv alias for $3;
numeric,
BEGIN
numeric)
RETURN ROUND((SELECT _kv-
RETURNS numeric AS
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C

A68
OS(ATAN(_mvar/_mw))))))*3.218)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.117))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*1.25/3.33))::numeric,2); ALTER FUNCTION public.lb_l_3b_l_5(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_l_3x_a_2(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_l_3x_a_2(numeric, numeric,
ALTER FUNCTION public.lb_l_3b_l_3(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_l_3x_a_2(
numeric,
-- Function: public.lb_l_3b_l_5(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_l_3b_l_5(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_l_3b_l_5( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS (((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*1.941)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.155))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(2*1000)))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*4.975)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.036))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*2.19/3.88))::numeric,2); ALTER FUNCTION public.lb_l_3x_a_2(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0;

A69
-- Function: public.lb_l_3x_l_3(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_l_3x_l_3(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_l_3x_l_3( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*4.975)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.036))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(3*1000))*3.9/5.01))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*3.218)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.117))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*3.33/3.33))::numeric,2); ALTER FUNCTION public.lb_l_4x_l_4(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_l_4x_l_5(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_l_4x_l_5(numeric, numeric,
ALTER FUNCTION public.lb_l_3x_l_3(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_l_4x_l_5(
numeric,
-- Function: public.lb_l_4x_l_4(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_l_4x_l_4(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_l_4x_l_4( _mvar alias for $2;
numeric, _kv alias for $3;

A70
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*4.975)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.036))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000))*2.36/3.88))::numeric,2); ALTER FUNCTION public.lb_l_5x_a_1(numeric, numeric,
EXCEPTION when others then numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.lb_l_5x_l_5(numeric, numeric,
END;$BODY$ numeric)
LANGUAGE plpgsql VOLATILE
COST 100; -- DROP FUNCTION public.lb_l_5x_l_5(numeric, numeric,
ALTER FUNCTION public.lb_l_4x_l_5(numeric, numeric, numeric);
numeric)
OWNER TO postgres; CREATE OR REPLACE FUNCTION public.lb_l_5x_l_5(
numeric,
-- Function: public.lb_l_5x_a_1(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.lb_l_5x_a_1(numeric, numeric, $BODY$
numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.lb_l_5x_a_1( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*4.975)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.036))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(2*1000))*3.88/3.88))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
(((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*3.481)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.159))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( COST 100;
3))*1000)*sqrt(3))/(2*1000)))::numeric,2); ALTER FUNCTION public.lb_l_5x_l_5(numeric, numeric,
EXCEPTION when others then numeric)

A71
OWNER TO postgres;

A72
--ELEMENTOS DE MANIOBRA N/C— CREATE OR REPLACE FUNCTION public.ylw_a_2r_a_2_kv(
numeric,
-- Function: public.ylw_a_1a_a_1_kv(numeric, numeric, numeric,
numeric) numeric)
RETURNS numeric AS
-- DROP FUNCTION public.ylw_a_1a_a_1_kv(numeric, $BODY$
numeric, numeric); DECLARE
_mw alias for $1;
CREATE OR REPLACE FUNCTION public.ylw_a_1a_a_1_kv( _mvar alias for $2;
numeric, _kv alias for $3;
numeric, BEGIN
numeric) RETURN ROUND((SELECT _kv-
RETURNS numeric AS ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
$BODY$ OS(ATAN(_mvar/_mw))))))*1.941)+(((0.084*COS(ATAN(_
DECLARE mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_mw alias for $1; )))*0.155))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
_mvar alias for $2; 3))*1000)*sqrt(3))/(2*1000))*1.04/2.1))::numeric,2);
_kv alias for $3; EXCEPTION when others then
BEGIN RAISE INFO 'Error Name:%',SQLERRM;
RETURN ROUND((SELECT _kv- RAISE INFO 'Error State:%', SQLSTATE;
(((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C return 0;
OS(ATAN(_mvar/_mw))))))*3.481)+(((0.084*COS(ATAN(_ END;$BODY$
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) LANGUAGE plpgsql VOLATILE
)))*0.159))*((_mw/((COS(ATAN(_mvar/_mw)))*0.87*_kv* COST 100;
sqrt(3))*1000)*sqrt(3))/(2*1000)))::numeric,2); ALTER FUNCTION public.ylw_a_2r_a_2_kv(numeric,
EXCEPTION when others then numeric, numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE; -- Function: public.ylw_a_2r_a_2_mvar(numeric)
return 0;
END;$BODY$ -- DROP FUNCTION public.ylw_a_2r_a_2_mvar(numeric);
LANGUAGE plpgsql VOLATILE
COST 100; CREATE OR REPLACE FUNCTION
ALTER FUNCTION public.ylw_a_1a_a_1_kv(numeric, public.ylw_a_2r_a_2_mvar(numeric)
numeric, numeric) RETURNS numeric AS
OWNER TO postgres; $BODY$
DECLARE
-- Function: public.ylw_a_2r_a_2_kv(numeric, numeric, --_mw alias for $1;
numeric) _mvar alias for $1;
--_kv alias for $3;
-- DROP FUNCTION public.ylw_a_2r_a_2_kv(numeric, BEGIN
numeric, numeric); RETURN (SELECT
ROUND(_mvar*(0.38)::numeric,2));

A73
EXCEPTION when others then numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric)
RAISE INFO 'Error State:%', SQLSTATE; RETURNS numeric AS
return 0; $BODY$
END;$BODY$ DECLARE
LANGUAGE plpgsql VOLATILE _mw alias for $1;
COST 100; _mvar alias for $2;
ALTER FUNCTION public.ylw_a_2r_a_2_mvar(numeric) _kv alias for $3;
OWNER TO postgres; BEGIN
-- Function: public.ylw_a_2r_a_2_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_a_2r_a_2_mw(numeric); OS(ATAN(_mvar/_mw))))))*0)+(((0.084*COS(ATAN(_mvar
/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))))*4
CREATE OR REPLACE FUNCTION .206))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))*1
public.ylw_a_2r_a_2_mw(numeric) 000)*sqrt(3))/(2*1000))*4.05/4.21))::numeric,2);

RETURNS numeric AS EXCEPTION when others then


$BODY$ RAISE INFO 'Error Name:%',SQLERRM;

DECLARE RAISE INFO 'Error State:%', SQLSTATE;

_mw alias for $1; return 0;


--_mvar alias for $2; END;$BODY$

--_kv alias for $3; LANGUAGE plpgsql VOLATILE


BEGIN COST 100;

RETURN (SELECT ALTER FUNCTION public.ylw_a_3e_c_7_kv(numeric,


ROUND(_mw*(0.48)::numeric,2)); numeric, numeric)
EXCEPTION when others then OWNER TO postgres;

RAISE INFO 'Error Name:%',SQLERRM;


RAISE INFO 'Error State:%', SQLSTATE; -- Function: public.ylw_a_4i_a_4_kv(numeric, numeric,
return 0; numeric)

END;$BODY$
LANGUAGE plpgsql VOLATILE -- DROP FUNCTION public.ylw_a_4i_a_4_kv(numeric,

COST 100; numeric, numeric);

ALTER FUNCTION public.ylw_a_2r_a_2_mw(numeric)


OWNER TO postgres; CREATE OR REPLACE FUNCTION public.ylw_a_4i_a_4_kv(
numeric,

-- Function: public.ylw_a_3e_c_7_kv(numeric, numeric, numeric,

numeric) numeric)
RETURNS numeric AS

-- DROP FUNCTION public.ylw_a_3e_c_7_kv(numeric, $BODY$

numeric, numeric); DECLARE


_mw alias for $1;

CREATE OR REPLACE FUNCTION public.ylw_a_3e_c_7_kv( _mvar alias for $2;


numeric, _kv alias for $3;

A74
BEGIN
RETURN ROUND((SELECT _kv- -- Function: public.ylw_a_4i_a_4_mw(numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*0.13)+(((0.084*COS(ATAN(_m -- DROP FUNCTION public.ylw_a_4i_a_4_mw(numeric);
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
)*2.195))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3) CREATE OR REPLACE FUNCTION
)*1000)*2*sqrt(3))/(3*1000))*1.5/2.33))::numeric,2); public.ylw_a_4i_a_4_mw(numeric)
EXCEPTION when others then RETURNS numeric AS
RAISE INFO 'Error Name:%',SQLERRM; $BODY$
RAISE INFO 'Error State:%', SQLSTATE; DECLARE
return 0; _mw alias for $1;
END;$BODY$ --_mvar alias for $2;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_a_4i_a_4_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mw*(0.98)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_a_4i_a_4_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_a_4i_a_4_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_a_4i_a_4_mvar(numeric) ALTER FUNCTION public.ylw_a_4i_a_4_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_a_5r_a_5_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_a_5r_a_5_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.99)::numeric,2)); CREATE OR REPLACE FUNCTION public.ylw_a_5r_a_5_kv(
EXCEPTION when others then numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric)
return 0; RETURNS numeric AS
END;$BODY$ $BODY$
LANGUAGE plpgsql VOLATILE DECLARE
COST 100; _mw alias for $1;
ALTER FUNCTION public.ylw_a_4i_a_4_mvar(numeric) _mvar alias for $2;
OWNER TO postgres; _kv alias for $3;

A75
BEGIN
RETURN ROUND((SELECT _kv- -- Function: public.ylw_a_5r_a_5_mw(numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*4.794)+(((0.084*COS(ATAN(_ -- DROP FUNCTION public.ylw_a_5r_a_5_mw(numeric);
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
)))*0.074))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( CREATE OR REPLACE FUNCTION
3))*1000)*1*sqrt(3))/(3*1000))*2.83/4.87))::numeric,2); public.ylw_a_5r_a_5_mw(numeric)
EXCEPTION when others then RETURNS numeric AS
RAISE INFO 'Error Name:%',SQLERRM; $BODY$
RAISE INFO 'Error State:%', SQLSTATE; DECLARE
return 0; _mw alias for $1;
END;$BODY$ --_mvar alias for $2;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_a_5r_a_5_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mw*(0.58)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_a_5r_a_5_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_a_5r_a_5_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_a_5r_a_5_mvar(numeric) ALTER FUNCTION public.ylw_a_5r_a_5_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_a_603_a_6_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_a_603_a_6_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.72)::numeric,2)); CREATE OR REPLACE FUNCTION
EXCEPTION when others then public.ylw_a_603_a_6_kv(
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric,
return 0; numeric)
END;$BODY$ RETURNS numeric AS
LANGUAGE plpgsql VOLATILE $BODY$
COST 100; DECLARE
ALTER FUNCTION public.ylw_a_5r_a_5_mvar(numeric) _mw alias for $1;
OWNER TO postgres; _mvar alias for $2;

A76
_kv alias for $3; )*1.32))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))
BEGIN *2*1000)*sqrt(3))/(3*1000))*1.67/1.67))::numeric,2);
RETURN ROUND((SELECT _kv- EXCEPTION when others then
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RAISE INFO 'Error Name:%',SQLERRM;
OS(ATAN(_mvar/_mw))))))*3.054)+(((0.084*COS(ATAN(_ RAISE INFO 'Error State:%', SQLSTATE;
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) return 0;
)))*0.029))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( END;$BODY$
3))*1000)*2*sqrt(3))/(3*1000))*1.12/3.08))::numeric,2); LANGUAGE plpgsql VOLATILE
EXCEPTION when others then COST 100;
RAISE INFO 'Error Name:%',SQLERRM; ALTER FUNCTION public.ylw_a_720_a_7_kv(numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric, numeric)
return 0; OWNER TO postgres;
END;$BODY$
LANGUAGE plpgsql VOLATILE -- Function: public.ylw_a_835_a_8_kv(numeric, numeric,
COST 100; numeric)
ALTER FUNCTION public.ylw_a_603_a_6_kv(numeric,
numeric, numeric) -- DROP FUNCTION public.ylw_a_835_a_8_kv(numeric,
OWNER TO postgres; numeric, numeric);

-- Function: public.ylw_a_720_a_7_kv(numeric, numeric, CREATE OR REPLACE FUNCTION


numeric) public.ylw_a_835_a_8_kv(
numeric,
-- DROP FUNCTION public.ylw_a_720_a_7_kv(numeric, numeric,
numeric, numeric); numeric)
RETURNS numeric AS
CREATE OR REPLACE FUNCTION $BODY$
public.ylw_a_720_a_7_kv( DECLARE
numeric, _mw alias for $1;
numeric, _mvar alias for $2;
numeric) _kv alias for $3;
RETURNS numeric AS BEGIN
$BODY$ RETURN ROUND((SELECT _kv-
DECLARE ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
_mw alias for $1; OS(ATAN(_mvar/_mw))))))*4.095)+(((0.084*COS(ATAN(_
_mvar alias for $2; mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
_kv alias for $3; )))*0.014))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
BEGIN 3))*1000)*2*sqrt(3))/(3*1000))*2.59/4.11))::numeric,2);
RETURN ROUND((SELECT _kv- EXCEPTION when others then
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RAISE INFO 'Error Name:%',SQLERRM;
OS(ATAN(_mvar/_kv))))))*0.345)+(((0.084*COS(ATAN(_m RAISE INFO 'Error State:%', SQLSTATE;
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) return 0;
END;$BODY$

A77
LANGUAGE plpgsql VOLATILE --_mvar alias for $2;
COST 100; --_kv alias for $3;
ALTER FUNCTION public.ylw_a_835_a_8_kv(numeric, BEGIN
numeric, numeric) RETURN (SELECT
OWNER TO postgres; ROUND(_mw*(0.31)::numeric,2));
EXCEPTION when others then
-- Function: public.ylw_a_835_a_8_mvar(numeric) RAISE INFO 'Error Name:%',SQLERRM;
RAISE INFO 'Error State:%', SQLSTATE;
-- DROP FUNCTION return 0;
public.ylw_a_835_a_8_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_a_835_a_8_mvar(numeric) ALTER FUNCTION public.ylw_a_835_a_8_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_a_8r_a_8_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_a_8r_a_8_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.41)::numeric,2)); CREATE OR REPLACE FUNCTION public.ylw_a_8r_a_8_kv(
EXCEPTION when others then numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric)
return 0; RETURNS numeric AS
END;$BODY$ $BODY$
LANGUAGE plpgsql VOLATILE DECLARE
COST 100; _mw alias for $1;
ALTER FUNCTION public.ylw_a_835_a_8_mvar(numeric) _mvar alias for $2;
OWNER TO postgres; _kv alias for $3;
BEGIN
-- Function: public.ylw_a_835_a_8_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_a_835_a_8_mw(numeric); OS(ATAN(_mvar/_mw))))))*4.095)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
CREATE OR REPLACE FUNCTION )))*0.014))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
public.ylw_a_835_a_8_mw(numeric) 3))*1000)*2*sqrt(3))/(3*1000))*2.69/4.11))::numeric,2);
RETURNS numeric AS EXCEPTION when others then
$BODY$ RAISE INFO 'Error Name:%',SQLERRM;
DECLARE RAISE INFO 'Error State:%', SQLSTATE;
_mw alias for $1; return 0;

A78
END;$BODY$ --_mvar alias for $2;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_a_8r_a_8_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mw*(0.51)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_a_8r_a_8_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_a_8r_a_8_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_a_8r_a_8_mvar(numeric) ALTER FUNCTION public.ylw_a_8r_a_8_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_a_990_a_9_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_a_990_a_9_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.51)::numeric,2)); CREATE OR REPLACE FUNCTION
EXCEPTION when others then public.ylw_a_990_a_9_kv(
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric,
return 0; numeric)
END;$BODY$ RETURNS numeric AS
LANGUAGE plpgsql VOLATILE $BODY$
COST 100; DECLARE
ALTER FUNCTION public.ylw_a_8r_a_8_mvar(numeric) _mw alias for $1;
OWNER TO postgres; _mvar alias for $2;
_kv alias for $3;
-- Function: public.ylw_a_8r_a_8_mw(numeric) BEGIN
RETURN ROUND((SELECT _kv-
-- DROP FUNCTION public.ylw_a_8r_a_8_mw(numeric); ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*6.969)+(((0.084*COS(ATAN(_
CREATE OR REPLACE FUNCTION mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
public.ylw_a_8r_a_8_mw(numeric) )))*0))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))*1
RETURNS numeric AS 000)*2*sqrt(3))/(3*1000))*5.33/6.97))::numeric,2);

$BODY$ EXCEPTION when others then

DECLARE RAISE INFO 'Error Name:%',SQLERRM;

_mw alias for $1; RAISE INFO 'Error State:%', SQLSTATE;

A79
return 0; DECLARE
END;$BODY$ _mw alias for $1;
LANGUAGE plpgsql VOLATILE --_mvar alias for $2;
COST 100; --_kv alias for $3;
ALTER FUNCTION public.ylw_a_990_a_9_kv(numeric, BEGIN
numeric, numeric) RETURN (SELECT
OWNER TO postgres; ROUND(_mw*(0.29)::numeric,2));
EXCEPTION when others then
-- Function: public.ylw_a_990_a_9_mvar(numeric) RAISE INFO 'Error Name:%',SQLERRM;
RAISE INFO 'Error State:%', SQLSTATE;
-- DROP FUNCTION return 0;
public.ylw_a_990_a_9_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_a_990_a_9_mvar(numeric) ALTER FUNCTION public.ylw_a_990_a_9_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_a_9r_a_9_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_a_9r_a_9_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.1)::numeric,2)); CREATE OR REPLACE FUNCTION public.ylw_a_9r_a_9_kv(
EXCEPTION when others then numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric)
return 0; RETURNS numeric AS
END;$BODY$ $BODY$
LANGUAGE plpgsql VOLATILE DECLARE
COST 100; _mw alias for $1;
ALTER FUNCTION public.ylw_a_990_a_9_mvar(numeric) _mvar alias for $2;
OWNER TO postgres; _kv alias for $3;
BEGIN
-- Function: public.ylw_a_990_a_9_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_a_990_a_9_mw(numeric); OS(ATAN(_mvar/_mw))))))*6.969)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
CREATE OR REPLACE FUNCTION )))*0))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))*1
public.ylw_a_990_a_9_mw(numeric) 000)*2*sqrt(3))/(3*1000))*4.49/6.97))::numeric,2);
RETURNS numeric AS EXCEPTION when others then
$BODY$ RAISE INFO 'Error Name:%',SQLERRM;

A80
RAISE INFO 'Error State:%', SQLSTATE; DECLARE
return 0; _mw alias for $1;
END;$BODY$ --_mvar alias for $2;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_a_9r_a_9_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mw*(0.76)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_a_9r_a_9_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_a_9r_a_9_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_a_9r_a_9_mvar(numeric) ALTER FUNCTION public.ylw_a_9r_a_9_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_c_020aa_c_0_kv(numeric,
--_mw alias for $1; numeric, numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_c_020aa_c_0_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.61)::numeric,2)); CREATE OR REPLACE FUNCTION
EXCEPTION when others then public.ylw_c_020aa_c_0_kv(
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric,
return 0; numeric)
END;$BODY$ RETURNS numeric AS
LANGUAGE plpgsql VOLATILE $BODY$
COST 100; DECLARE
ALTER FUNCTION public.ylw_a_9r_a_9_mvar(numeric) _mw alias for $1;
OWNER TO postgres; _mvar alias for $2;
_kv alias for $3;
-- Function: public.ylw_a_9r_a_9_mw(numeric) BEGIN
RETURN ROUND((SELECT _kv+((-
-- DROP FUNCTION public.ylw_a_9r_a_9_mw(numeric); ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m
CREATE OR REPLACE FUNCTION var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
public.ylw_a_9r_a_9_mw(numeric) )*0.5))*((_mw/(((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3)))

RETURNS numeric AS *1000)*1*sqrt(3))/(1*1000))*1)-

$BODY$ ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C

A81
OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m EXCEPTION when others then
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) RAISE INFO 'Error Name:%',SQLERRM;
)*0))*(((_mw*0.67)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr RAISE INFO 'Error State:%', SQLSTATE;
t(3)))*1000)*1*sqrt(3))/(1*1000))*1)- return 0;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C END;$BODY$
OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m LANGUAGE plpgsql VOLATILE
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) COST 100;
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr ALTER FUNCTION
t(3)))*1000)*1*sqrt(3))/(1*1000))*1)- public.ylw_c_020aa_c_0_mvar(numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C OWNER TO postgres;
OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) -- Function: public.ylw_c_020aa_c_0_mw(numeric)
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr
t(3)))*1000)*1*sqrt(3))/(1*1000))*1))*1.84/2.8))::numeri -- DROP FUNCTION
c,2); public.ylw_c_020aa_c_0_mw(numeric);
EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM; CREATE OR REPLACE FUNCTION
RAISE INFO 'Error State:%', SQLSTATE; public.ylw_c_020aa_c_0_mw(numeric)
return 0; RETURNS numeric AS
END;$BODY$ $BODY$
LANGUAGE plpgsql VOLATILE DECLARE
COST 100; _mw alias for $1;
ALTER FUNCTION public.ylw_c_020aa_c_0_kv(numeric, --_mvar alias for $2;
numeric, numeric) --_kv alias for $3;
OWNER TO postgres; BEGIN
RETURN (SELECT
-- Function: public.ylw_c_020aa_c_0_mvar(numeric) ROUND(_mw*(0.61)::numeric,2));
EXCEPTION when others then
-- DROP FUNCTION RAISE INFO 'Error Name:%',SQLERRM;
public.ylw_c_020aa_c_0_mvar(numeric); RAISE INFO 'Error State:%', SQLSTATE;
return 0;
CREATE OR REPLACE FUNCTION END;$BODY$
public.ylw_c_020aa_c_0_mvar(numeric) LANGUAGE plpgsql VOLATILE
RETURNS numeric AS COST 100;
$BODY$ ALTER FUNCTION public.ylw_c_020aa_c_0_mw(numeric)
DECLARE OWNER TO postgres;
--_mw alias for $1;
_mvar alias for $1;
-- Function: public.ylw_c_020hj_c_0_kv(numeric,
--_kv alias for $3; numeric, numeric)
BEGIN
RETURN (SELECT -- DROP FUNCTION public.ylw_c_020hj_c_0_kv(numeric,
ROUND(_mvar*(0.91)::numeric,2)); numeric, numeric);

A82
ALTER FUNCTION public.ylw_c_020hj_c_0_kv(numeric,
CREATE OR REPLACE FUNCTION numeric, numeric)
public.ylw_c_020hj_c_0_kv( OWNER TO postgres;
numeric,
numeric, -- Function: public.ylw_c_1r_c_1_kv(numeric, numeric,
numeric) numeric)
RETURNS numeric AS
$BODY$ -- DROP FUNCTION public.ylw_c_1r_c_1_kv(numeric,
DECLARE numeric, numeric);
_mw alias for $1;
_mvar alias for $2; CREATE OR REPLACE FUNCTION public.ylw_c_1r_c_1_kv(
_kv alias for $3; numeric,
BEGIN numeric,
RETURN ROUND((SELECT _kv+((- numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RETURNS numeric AS
OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m $BODY$
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) DECLARE
)*0.5))*((_mw/(((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))) _mw alias for $1;
*1000)*1*sqrt(3))/(1*1000))*1)- _mvar alias for $2;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C _kv alias for $3;
OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m BEGIN
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) RETURN ROUND((SELECT _kv-
)*0))*(((_mw*0.67)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr ((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
t(3)))*1000)*1*sqrt(3))/(1*1000))*1)- OS(ATAN(_mvar/_mw))))))*4.227)+(((0.084*COS(ATAN(_
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
OS(ATAN(_mvar/_mw))))))*1.21)+(((0.084*COS(ATAN(_m )))*0.535))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) 3))*1000)*sqrt(3))/(2*1000))*2.42/4.76))::numeric,2);
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr EXCEPTION when others then
t(3)))*1000)*1*sqrt(3))/(1*1000))*1)- RAISE INFO 'Error Name:%',SQLERRM;
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C RAISE INFO 'Error State:%', SQLSTATE;
OS(ATAN(_mvar/_mw))))))*1.09)+(((0.084*COS(ATAN(_m return 0;
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))) END;$BODY$
)*0))*(((_mw*0.33)/(((COS(ATAN(_mvar/_mw)))*_kv*sqr LANGUAGE plpgsql VOLATILE
t(3)))*1000)*1*sqrt(3))/(1*1000))*1))*2.45/2.8))::numeri COST 100;
c,2);
ALTER FUNCTION public.ylw_c_1r_c_1_kv(numeric,
EXCEPTION when others then numeric, numeric)
RAISE INFO 'Error Name:%',SQLERRM; OWNER TO postgres;
RAISE INFO 'Error State:%', SQLSTATE;
return 0; -- Function: public.ylw_c_1r_c_1_mvar(numeric)
END;$BODY$
LANGUAGE plpgsql VOLATILE -- DROP FUNCTION public.ylw_c_1r_c_1_mvar(numeric);
COST 100;

A83
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_1r_c_1_mvar(numeric) ALTER FUNCTION public.ylw_c_1r_c_1_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_c_1t_c_1_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_c_1t_c_1_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.49)::numeric,2)); CREATE OR REPLACE FUNCTION public.ylw_c_1t_c_1_kv(
EXCEPTION when others then numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric)
return 0; RETURNS numeric AS
END;$BODY$ $BODY$
LANGUAGE plpgsql VOLATILE DECLARE
COST 100; _mw alias for $1;
ALTER FUNCTION public.ylw_c_1r_c_1_mvar(numeric) _mvar alias for $2;
OWNER TO postgres; _kv alias for $3;
BEGIN
-- Function: public.ylw_c_1r_c_1_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_c_1r_c_1_mw(numeric); OS(ATAN(_mvar/_mw))))))*4.227)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
CREATE OR REPLACE FUNCTION )))*0.535))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
public.ylw_c_1r_c_1_mw(numeric) 3))*1000)*sqrt(3))/(2*1000))*3.46/4.76))::numeric,2);

RETURNS numeric AS EXCEPTION when others then


$BODY$ RAISE INFO 'Error Name:%',SQLERRM;

DECLARE RAISE INFO 'Error State:%', SQLSTATE;


_mw alias for $1; return 0;

--_mvar alias for $2; END;$BODY$

--_kv alias for $3; LANGUAGE plpgsql VOLATILE

BEGIN COST 100;

RETURN (SELECT ALTER FUNCTION public.ylw_c_1t_c_1_kv(numeric,


ROUND(_mw*(0.54)::numeric,2)); numeric, numeric)

EXCEPTION when others then OWNER TO postgres;

RAISE INFO 'Error Name:%',SQLERRM;


RAISE INFO 'Error State:%', SQLSTATE; -- Function: public.ylw_c_1t_c_1_mvar(numeric)

return 0;
END;$BODY$ -- DROP FUNCTION public.ylw_c_1t_c_1_mvar(numeric);
LANGUAGE plpgsql VOLATILE

A84
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_1t_c_1_mvar(numeric) ALTER FUNCTION public.ylw_c_1t_c_1_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_c_3d_c_3_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_c_3d_c_3_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.33)::numeric,2)); CREATE OR REPLACE FUNCTION public.ylw_c_3d_c_3_kv(
EXCEPTION when others then numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric)
return 0; RETURNS numeric AS
END;$BODY$ $BODY$
LANGUAGE plpgsql VOLATILE DECLARE
COST 100; _mw alias for $1;
ALTER FUNCTION public.ylw_c_1t_c_1_mvar(numeric) _mvar alias for $2;
OWNER TO postgres; _kv alias for $3;
BEGIN
-- Function: public.ylw_c_1t_c_1_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_c_1t_c_1_mw(numeric); OS(ATAN(_mvar/_mw))))))*4.702)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
CREATE OR REPLACE FUNCTION )))*0.552))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
public.ylw_c_1t_c_1_mw(numeric) 3))*1000)*sqrt(3))/(2*1000))*2.26/5.25))::numeric,2);

RETURNS numeric AS EXCEPTION when others then


$BODY$ RAISE INFO 'Error Name:%',SQLERRM;

DECLARE RAISE INFO 'Error State:%', SQLSTATE;


_mw alias for $1; return 0;

--_mvar alias for $2; END;$BODY$

--_kv alias for $3; LANGUAGE plpgsql VOLATILE

BEGIN COST 100;

RETURN (SELECT ALTER FUNCTION public.ylw_c_3d_c_3_kv(numeric,


ROUND(_mw*(0.24)::numeric,2)); numeric, numeric)

EXCEPTION when others then OWNER TO postgres;

RAISE INFO 'Error Name:%',SQLERRM;


RAISE INFO 'Error State:%', SQLSTATE; -- Function: public.ylw_c_3d_c_3_mvar(numeric)

return 0;
END;$BODY$ -- DROP FUNCTION public.ylw_c_3d_c_3_mvar(numeric);
LANGUAGE plpgsql VOLATILE

A85
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_3d_c_3_mvar(numeric) ALTER FUNCTION public.ylw_c_3d_c_3_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_c_3l_c_3_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_c_3l_c_3_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.48)::numeric,2)); CREATE OR REPLACE FUNCTION public.ylw_c_3l_c_3_kv(
EXCEPTION when others then numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric)
return 0; RETURNS numeric AS
END;$BODY$ $BODY$
LANGUAGE plpgsql VOLATILE DECLARE
COST 100; _mw alias for $1;
ALTER FUNCTION public.ylw_c_3d_c_3_mvar(numeric) _mvar alias for $2;
OWNER TO postgres; _kv alias for $3;
BEGIN
-- Function: public.ylw_c_3d_c_3_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_c_3d_c_3_mw(numeric); OS(ATAN(_mvar/_mw))))))*4.702)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
CREATE OR REPLACE FUNCTION )))*0.552))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
public.ylw_c_3d_c_3_mw(numeric) 3))*1000)*sqrt(3))/(2*1000))*4.04/5.25))::numeric,2);

RETURNS numeric AS EXCEPTION when others then


$BODY$ RAISE INFO 'Error Name:%',SQLERRM;

DECLARE RAISE INFO 'Error State:%', SQLSTATE;


_mw alias for $1; return 0;

--_mvar alias for $2; END;$BODY$

--_kv alias for $3; LANGUAGE plpgsql VOLATILE

BEGIN COST 100;

RETURN (SELECT ALTER FUNCTION public.ylw_c_3l_c_3_kv(numeric,


ROUND(_mw*(0.65)::numeric,2)); numeric, numeric)

EXCEPTION when others then OWNER TO postgres;

RAISE INFO 'Error Name:%',SQLERRM;


RAISE INFO 'Error State:%', SQLSTATE; -- Function: public.ylw_c_3l_c_3_mvar(numeric)

return 0;
END;$BODY$ -- DROP FUNCTION public.ylw_c_3l_c_3_mvar(numeric);
LANGUAGE plpgsql VOLATILE

A86
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_3l_c_3_mvar(numeric) ALTER FUNCTION public.ylw_c_3l_c_3_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_c_3r_c_3_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_c_3r_c_3_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.13)::numeric,2)); CREATE OR REPLACE FUNCTION public.ylw_c_3r_c_3_kv(
EXCEPTION when others then numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric)
return 0; RETURNS numeric AS
END;$BODY$ $BODY$
LANGUAGE plpgsql VOLATILE DECLARE
COST 100; _mw alias for $1;
ALTER FUNCTION public.ylw_c_3l_c_3_mvar(numeric) _mvar alias for $2;
OWNER TO postgres; _kv alias for $3;
BEGIN
-- Function: public.ylw_c_3l_c_3_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_c_3l_c_3_mw(numeric); OS(ATAN(_mvar/_mw))))))*4.702)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
CREATE OR REPLACE FUNCTION )))*0.552))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
public.ylw_c_3l_c_3_mw(numeric) 3))*1000)*sqrt(3))/(2*1000))*2.82/5.25))::numeric,2);

RETURNS numeric AS EXCEPTION when others then


$BODY$ RAISE INFO 'Error Name:%',SQLERRM;

DECLARE RAISE INFO 'Error State:%', SQLSTATE;


_mw alias for $1; return 0;

--_mvar alias for $2; END;$BODY$

--_kv alias for $3; LANGUAGE plpgsql VOLATILE

BEGIN COST 100;

RETURN (SELECT ALTER FUNCTION public.ylw_c_3r_c_3_kv(numeric,


ROUND(_mw*(0.26)::numeric,2)); numeric, numeric)

EXCEPTION when others then OWNER TO postgres;

RAISE INFO 'Error Name:%',SQLERRM;


RAISE INFO 'Error State:%', SQLSTATE; -- Function: public.ylw_c_3r_c_3_mvar(numeric)

return 0;
END;$BODY$ -- DROP FUNCTION public.ylw_c_3r_c_3_mvar(numeric);
LANGUAGE plpgsql VOLATILE

A87
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_3r_c_3_mvar(numeric) ALTER FUNCTION public.ylw_c_3r_c_3_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_c_5a_c_5_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_c_5a_c_5_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.5)::numeric,2)); CREATE OR REPLACE FUNCTION public.ylw_c_5a_c_5_kv(
EXCEPTION when others then numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric)
return 0; RETURNS numeric AS
END;$BODY$ $BODY$
LANGUAGE plpgsql VOLATILE DECLARE
COST 100; _mw alias for $1;
ALTER FUNCTION public.ylw_c_3r_c_3_mvar(numeric) _mvar alias for $2;
OWNER TO postgres; _kv alias for $3;
BEGIN
-- Function: public.ylw_c_3r_c_3_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_c_3r_c_3_mw(numeric); OS(ATAN(_mvar/_mw))))))*1.429)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
CREATE OR REPLACE FUNCTION )))*0.578))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
public.ylw_c_3r_c_3_mw(numeric) 3))*1000)*2*sqrt(3))/(3*1000))*0.61/2.1))::numeric,2);

RETURNS numeric AS EXCEPTION when others then


$BODY$ RAISE INFO 'Error Name:%',SQLERRM;

DECLARE RAISE INFO 'Error State:%', SQLSTATE;


_mw alias for $1; return 0;

--_mvar alias for $2; END;$BODY$

--_kv alias for $3; LANGUAGE plpgsql VOLATILE

BEGIN COST 100;

RETURN (SELECT ALTER FUNCTION public.ylw_c_5a_c_5_kv(numeric,


ROUND(_mw*(0.53)::numeric,2)); numeric, numeric)

EXCEPTION when others then OWNER TO postgres;

RAISE INFO 'Error Name:%',SQLERRM;


RAISE INFO 'Error State:%', SQLSTATE; -- Function: public.ylw_c_5a_c_5_mvar(numeric)

return 0;
END;$BODY$ -- DROP FUNCTION public.ylw_c_5a_c_5_mvar(numeric);
LANGUAGE plpgsql VOLATILE

A88
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_5a_c_5_mvar(numeric) ALTER FUNCTION public.ylw_c_5a_c_5_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_c_5e_c_5_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;
--_kv alias for $3; -- DROP FUNCTION public.ylw_c_5e_c_5_kv(numeric,
BEGIN numeric, numeric);
RETURN (SELECT
ROUND(_mvar*(0.99)::numeric,2)); CREATE OR REPLACE FUNCTION public.ylw_c_5e_c_5_kv(
EXCEPTION when others then numeric,
RAISE INFO 'Error Name:%',SQLERRM; numeric,
RAISE INFO 'Error State:%', SQLSTATE; numeric)
return 0; RETURNS numeric AS
END;$BODY$ $BODY$
LANGUAGE plpgsql VOLATILE DECLARE
COST 100; _mw alias for $1;
ALTER FUNCTION public.ylw_c_5a_c_5_mvar(numeric) _mvar alias for $2;
OWNER TO postgres; _kv alias for $3;
BEGIN
-- Function: public.ylw_c_5a_c_5_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_c_5a_c_5_mw(numeric); OS(ATAN(_mvar/_mw))))))*1.429)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
CREATE OR REPLACE FUNCTION )))*0.578))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
public.ylw_c_5a_c_5_mw(numeric) 3))*1000)*2*sqrt(3))/(3*1000))*1.49/2.1))::numeric,2);

RETURNS numeric AS EXCEPTION when others then


$BODY$ RAISE INFO 'Error Name:%',SQLERRM;

DECLARE RAISE INFO 'Error State:%', SQLSTATE;


_mw alias for $1; return 0;

--_mvar alias for $2; END;$BODY$

--_kv alias for $3; LANGUAGE plpgsql VOLATILE

BEGIN COST 100;

RETURN (SELECT ALTER FUNCTION public.ylw_c_5e_c_5_kv(numeric,


ROUND(_mw*(0.9)::numeric,2)); numeric, numeric)

EXCEPTION when others then OWNER TO postgres;

RAISE INFO 'Error Name:%',SQLERRM;


RAISE INFO 'Error State:%', SQLSTATE; -- Function: public.ylw_c_6q_c_6_kv(numeric, numeric,

return 0; numeric)

END;$BODY$
LANGUAGE plpgsql VOLATILE

A89
-- DROP FUNCTION public.ylw_c_6q_c_6_kv(numeric, --_kv alias for $3;
numeric, numeric); BEGIN
RETURN (SELECT
CREATE OR REPLACE FUNCTION public.ylw_c_6q_c_6_kv( ROUND(_mvar*(0.53)::numeric,2));
numeric, EXCEPTION when others then
numeric, RAISE INFO 'Error Name:%',SQLERRM;
numeric) RAISE INFO 'Error State:%', SQLSTATE;
RETURNS numeric AS return 0;
$BODY$ END;$BODY$
DECLARE LANGUAGE plpgsql VOLATILE
_mw alias for $1; COST 100;
_mvar alias for $2; ALTER FUNCTION public.ylw_c_6q_c_6_mvar(numeric)
_kv alias for $3; OWNER TO postgres;
BEGIN
RETURN ROUND((SELECT _kv- -- Function: public.ylw_c_6q_c_6_mw(numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*0)+(((0.084*COS(ATAN(_mvar -- DROP FUNCTION public.ylw_c_6q_c_6_mw(numeric);
/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))))*2
.1))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))*100 CREATE OR REPLACE FUNCTION
0)*sqrt(3))/(2*1000))*2.03/2.1))::numeric,2); public.ylw_c_6q_c_6_mw(numeric)
EXCEPTION when others then RETURNS numeric AS
RAISE INFO 'Error Name:%',SQLERRM; $BODY$
RAISE INFO 'Error State:%', SQLSTATE; DECLARE
return 0; _mw alias for $1;
END;$BODY$ --_mvar alias for $2;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_c_6q_c_6_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mw*(0.34)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_c_6q_c_6_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_c_6q_c_6_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_6q_c_6_mvar(numeric) ALTER FUNCTION public.ylw_c_6q_c_6_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_c_7i_c_7_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;

A90
-- DROP FUNCTION public.ylw_c_7i_c_7_kv(numeric, --_kv alias for $3;
numeric, numeric); BEGIN
RETURN (SELECT
CREATE OR REPLACE FUNCTION public.ylw_c_7i_c_7_kv( ROUND(_mvar*(0.67)::numeric,2));
numeric, EXCEPTION when others then
numeric, RAISE INFO 'Error Name:%',SQLERRM;
numeric) RAISE INFO 'Error State:%', SQLSTATE;
RETURNS numeric AS return 0;
$BODY$ END;$BODY$
DECLARE LANGUAGE plpgsql VOLATILE
_mw alias for $1; COST 100;
_mvar alias for $2; ALTER FUNCTION public.ylw_c_7i_c_7_mvar(numeric)
_kv alias for $3; OWNER TO postgres;
BEGIN
RETURN ROUND((SELECT _kv- -- Function: public.ylw_c_7i_c_7_mw(numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*0)+(((0.084*COS(ATAN(_mvar -- DROP FUNCTION public.ylw_c_7i_c_7_mw(numeric);
/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))))))*4
.206))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3))*1 CREATE OR REPLACE FUNCTION
000)*sqrt(3))/(2*1000))*1.041/4.21))::numeric,2); public.ylw_c_7i_c_7_mw(numeric)
EXCEPTION when others then RETURNS numeric AS
RAISE INFO 'Error Name:%',SQLERRM; $BODY$
RAISE INFO 'Error State:%', SQLSTATE; DECLARE
return 0; _mw alias for $1;
END;$BODY$ --_mvar alias for $2;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_c_7i_c_7_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mw*(0.84)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_c_7i_c_7_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_c_7i_c_7_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_7i_c_7_mvar(numeric) ALTER FUNCTION public.ylw_c_7i_c_7_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_c_8c_c_8_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;

A91
-- DROP FUNCTION public.ylw_c_8c_c_8_kv(numeric, --_kv alias for $3;
numeric, numeric); BEGIN
RETURN (SELECT
CREATE OR REPLACE FUNCTION public.ylw_c_8c_c_8_kv( ROUND(_mvar*(0.68)::numeric,2));
numeric, EXCEPTION when others then
numeric, RAISE INFO 'Error Name:%',SQLERRM;
numeric) RAISE INFO 'Error State:%', SQLSTATE;
RETURNS numeric AS return 0;
$BODY$ END;$BODY$
DECLARE LANGUAGE plpgsql VOLATILE
_mw alias for $1; COST 100;
_mvar alias for $2; ALTER FUNCTION public.ylw_c_8c_c_8_mvar(numeric)
_kv alias for $3; OWNER TO postgres;
BEGIN
RETURN ROUND((SELECT _kv- -- Function: public.ylw_c_8c_c_8_mw(numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*3.308)+(((0.084*COS(ATAN(_ -- DROP FUNCTION public.ylw_c_8c_c_8_mw(numeric);
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
)))*0.194))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( CREATE OR REPLACE FUNCTION
3))*1000)*sqrt(3))/(2*1000))*2.03/3.5))::numeric,2); public.ylw_c_8c_c_8_mw(numeric)
EXCEPTION when others then RETURNS numeric AS
RAISE INFO 'Error Name:%',SQLERRM; $BODY$
RAISE INFO 'Error State:%', SQLSTATE; DECLARE
return 0; _mw alias for $1;
END;$BODY$ --_mvar alias for $2;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_c_8c_c_8_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mw*(0.37)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_c_8c_c_8_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_c_8c_c_8_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_8c_c_8_mvar(numeric) ALTER FUNCTION public.ylw_c_8c_c_8_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE -- Function: public.ylw_c_916_c_9_kv(numeric, numeric,
--_mw alias for $1; numeric)
_mvar alias for $1;

A92
-- DROP FUNCTION public.ylw_c_916_c_9_kv(numeric, --_mw alias for $1;
numeric, numeric); _mvar alias for $1;
--_kv alias for $3;
CREATE OR REPLACE FUNCTION BEGIN
public.ylw_c_916_c_9_kv( RETURN (SELECT
numeric, ROUND(_mvar*(0.22)::numeric,2));
numeric, EXCEPTION when others then
numeric) RAISE INFO 'Error Name:%',SQLERRM;
RETURNS numeric AS RAISE INFO 'Error State:%', SQLSTATE;
$BODY$ return 0;
DECLARE END;$BODY$
_mw alias for $1; LANGUAGE plpgsql VOLATILE
_mvar alias for $2; COST 100;
_kv alias for $3; ALTER FUNCTION public.ylw_c_916_c_9_mvar(numeric)
BEGIN OWNER TO postgres;
RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C -- Function: public.ylw_c_916_c_9_mw(numeric)
OS(ATAN(_mvar/_mw))))))*4.429)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw))) -- DROP FUNCTION public.ylw_c_916_c_9_mw(numeric);
)))*0.197))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
3))*1000)*sqrt(3))/(2*1000))*2.22/4.63))::numeric,2); CREATE OR REPLACE FUNCTION
EXCEPTION when others then public.ylw_c_916_c_9_mw(numeric)
RAISE INFO 'Error Name:%',SQLERRM; RETURNS numeric AS
RAISE INFO 'Error State:%', SQLSTATE; $BODY$
return 0; DECLARE
END;$BODY$ _mw alias for $1;
LANGUAGE plpgsql VOLATILE --_mvar alias for $2;
COST 100; --_kv alias for $3;
ALTER FUNCTION public.ylw_c_916_c_9_kv(numeric, BEGIN
numeric, numeric) RETURN (SELECT
OWNER TO postgres; ROUND(_mw*(0.12)::numeric,2));
EXCEPTION when others then
-- Function: public.ylw_c_916_c_9_mvar(numeric) RAISE INFO 'Error Name:%',SQLERRM;
RAISE INFO 'Error State:%', SQLSTATE;
-- DROP FUNCTION return 0;
public.ylw_c_916_c_9_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_916_c_9_mvar(numeric) ALTER FUNCTION public.ylw_c_916_c_9_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$
DECLARE

A93
-- Function: public.ylw_c_9r_c_9_kv(numeric, numeric, DECLARE
numeric) --_mw alias for $1;
_mvar alias for $1;
-- DROP FUNCTION public.ylw_c_9r_c_9_kv(numeric, --_kv alias for $3;
numeric, numeric); BEGIN
RETURN (SELECT
CREATE OR REPLACE FUNCTION public.ylw_c_9r_c_9_kv( ROUND(_mvar*(0.14)::numeric,2));
numeric, EXCEPTION when others then
numeric, RAISE INFO 'Error Name:%',SQLERRM;
numeric) RAISE INFO 'Error State:%', SQLSTATE;
RETURNS numeric AS return 0;
$BODY$ END;$BODY$
DECLARE LANGUAGE plpgsql VOLATILE
_mw alias for $1; COST 100;
_mvar alias for $2; ALTER FUNCTION public.ylw_c_9r_c_9_mvar(numeric)
_kv alias for $3; OWNER TO postgres;
BEGIN
RETURN ROUND((SELECT _kv- -- Function: public.ylw_c_9r_c_9_mw(numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*4.429)+(((0.084*COS(ATAN(_ -- DROP FUNCTION public.ylw_c_9r_c_9_mw(numeric);
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
)))*0.197))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( CREATE OR REPLACE FUNCTION
3))*1000)*sqrt(3))/(2*1000))*3.58/4.63))::numeric,2); public.ylw_c_9r_c_9_mw(numeric)
EXCEPTION when others then RETURNS numeric AS
RAISE INFO 'Error Name:%',SQLERRM; $BODY$
RAISE INFO 'Error State:%', SQLSTATE; DECLARE
return 0; _mw alias for $1;
END;$BODY$ --_mvar alias for $2;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_c_9r_c_9_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mw*(0.21)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_c_9r_c_9_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_c_9r_c_9_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_c_9r_c_9_mvar(numeric) ALTER FUNCTION public.ylw_c_9r_c_9_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$

A94
-- Function: public.ylw_l_2r_l_2_kv(numeric, numeric, DECLARE
numeric) --_mw alias for $1;
_mvar alias for $1;
-- DROP FUNCTION public.ylw_l_2r_l_2_kv(numeric, --_kv alias for $3;
numeric, numeric); BEGIN
RETURN (SELECT
CREATE OR REPLACE FUNCTION public.ylw_l_2r_l_2_kv( ROUND(_mvar*(0.33)::numeric,2));
numeric, EXCEPTION when others then
numeric, RAISE INFO 'Error Name:%',SQLERRM;
numeric) RAISE INFO 'Error State:%', SQLSTATE;
RETURNS numeric AS return 0;
$BODY$ END;$BODY$
DECLARE LANGUAGE plpgsql VOLATILE
_mw alias for $1; COST 100;
_mvar alias for $2; ALTER FUNCTION public.ylw_l_2r_l_2_mvar(numeric)
_kv alias for $3; OWNER TO postgres;
BEGIN
RETURN ROUND((SELECT _kv- -- Function: public.ylw_l_2r_l_2_mw(numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*1.98)+(((0.084*COS(ATAN(_m -- DROP FUNCTION public.ylw_l_2r_l_2_mw(numeric);
var/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))))
)*0.015))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(3) CREATE OR REPLACE FUNCTION
)*1000)*sqrt(3))/(2*1000))*1.62/1.99))::numeric,2); public.ylw_l_2r_l_2_mw(numeric)
EXCEPTION when others then RETURNS numeric AS
RAISE INFO 'Error Name:%',SQLERRM; $BODY$
RAISE INFO 'Error State:%', SQLSTATE; DECLARE
return 0; _mw alias for $1;
END;$BODY$ --_mvar alias for $2;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_l_2r_l_2_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mw*(0.58)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_l_2r_l_2_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_l_2r_l_2_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_l_2r_l_2_mvar(numeric) ALTER FUNCTION public.ylw_l_2r_l_2_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$

A95
-- Function: public.ylw_l_3r_l_3_kv(numeric, numeric, DECLARE
numeric) --_mw alias for $1;
_mvar alias for $1;
-- DROP FUNCTION public.ylw_l_3r_l_3_kv(numeric, --_kv alias for $3;
numeric, numeric); BEGIN
RETURN (SELECT
CREATE OR REPLACE FUNCTION public.ylw_l_3r_l_3_kv( ROUND(_mvar*(0.73)::numeric,2));
numeric, EXCEPTION when others then
numeric, RAISE INFO 'Error Name:%',SQLERRM;
numeric) RAISE INFO 'Error State:%', SQLSTATE;
RETURNS numeric AS return 0;
$BODY$ END;$BODY$
DECLARE LANGUAGE plpgsql VOLATILE
_mw alias for $1; COST 100;
_mvar alias for $2; ALTER FUNCTION public.ylw_l_3r_l_3_mvar(numeric)
_kv alias for $3; OWNER TO postgres;
BEGIN .
RETURN ROUND((SELECT _kv- -- Function: public.ylw_l_3r_l_3_mw(numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*3.218)+(((0.084*COS(ATAN(_ -- DROP FUNCTION public.ylw_l_3r_l_3_mw(numeric);
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
)))*0.117))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( CREATE OR REPLACE FUNCTION
3))*1000)*sqrt(3))/(2*1000))*1.81/3.33))::numeric,2); public.ylw_l_3r_l_3_mw(numeric)
EXCEPTION when others then RETURNS numeric AS
RAISE INFO 'Error Name:%',SQLERRM; $BODY$
RAISE INFO 'Error State:%', SQLSTATE; DECLARE
return 0; _mw alias for $1;
END;$BODY$ --_mvar alias for $2;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_l_3r_l_3_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mw*(0.78)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_l_3r_l_3_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_l_3r_l_3_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_l_3r_l_3_mvar(numeric) ALTER FUNCTION public.ylw_l_3r_l_3_mw(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$

A96
-- Function: public.ylw_l_4r_l_4_kv(numeric, numeric, DECLARE
numeric) --_mw alias for $1;
_mvar alias for $1;
-- DROP FUNCTION public.ylw_l_4r_l_4_kv(numeric, --_kv alias for $3;
numeric, numeric); BEGIN
RETURN (SELECT
CREATE OR REPLACE FUNCTION public.ylw_l_4r_l_4_kv( ROUND(_mvar*(0.26)::numeric,2));
numeric, EXCEPTION when others then
numeric, RAISE INFO 'Error Name:%',SQLERRM;
numeric) RAISE INFO 'Error State:%', SQLSTATE;
RETURNS numeric AS return 0;
$BODY$ END;$BODY$
DECLARE LANGUAGE plpgsql VOLATILE
_mw alias for $1; COST 100;
_mvar alias for $2; ALTER FUNCTION public.ylw_l_4r_l_4_mvar(numeric)
_kv alias for $3; OWNER TO postgres;
BEGIN
RETURN ROUND((SELECT _kv- -- Function: public.ylw_l_4r_l_4_mvar(numeric)
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
OS(ATAN(_mvar/_mw))))))*4.975)+(((0.084*COS(ATAN(_ -- DROP FUNCTION public.ylw_l_4r_l_4_mvar(numeric);
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
)))*0.036))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt( CREATE OR REPLACE FUNCTION
3))*1000)*sqrt(3))/(3*1000))*1.87/5.01))::numeric,2); public.ylw_l_4r_l_4_mvar(numeric)
EXCEPTION when others then RETURNS numeric AS
RAISE INFO 'Error Name:%',SQLERRM; $BODY$
RAISE INFO 'Error State:%', SQLSTATE; DECLARE
return 0; --_mw alias for $1;
END;$BODY$ _mvar alias for $1;
LANGUAGE plpgsql VOLATILE --_kv alias for $3;
COST 100; BEGIN
ALTER FUNCTION public.ylw_l_4r_l_4_kv(numeric, RETURN (SELECT
numeric, numeric) ROUND(_mvar*(0.26)::numeric,2));
OWNER TO postgres; EXCEPTION when others then
RAISE INFO 'Error Name:%',SQLERRM;
-- Function: public.ylw_l_4r_l_4_mvar(numeric) RAISE INFO 'Error State:%', SQLSTATE;
return 0;
-- DROP FUNCTION public.ylw_l_4r_l_4_mvar(numeric); END;$BODY$
LANGUAGE plpgsql VOLATILE
CREATE OR REPLACE FUNCTION COST 100;
public.ylw_l_4r_l_4_mvar(numeric) ALTER FUNCTION public.ylw_l_4r_l_4_mvar(numeric)
RETURNS numeric AS OWNER TO postgres;
$BODY$

A97
-- Function: public.ylw_l_4r_l_4_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_l_4r_l_4_mw(numeric); OS(ATAN(_mvar/_mw))))))*4.975)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
CREATE OR REPLACE FUNCTION )))*0.036))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
public.ylw_l_4r_l_4_mw(numeric) 3))*1000)*sqrt(3))/(2*1000))*2.98/3.88))::numeric,2);

RETURNS numeric AS EXCEPTION when others then


$BODY$ RAISE INFO 'Error Name:%',SQLERRM;

DECLARE RAISE INFO 'Error State:%', SQLSTATE;

_mw alias for $1; return 0;

--_mvar alias for $2; END;$BODY$

--_kv alias for $3; LANGUAGE plpgsql VOLATILE

BEGIN COST 100;

RETURN (SELECT ALTER FUNCTION public.ylw_l_545_l_5_kv(numeric,


ROUND(_mw*(0.48)::numeric,2)); numeric, numeric)
EXCEPTION when others then OWNER TO postgres;

RAISE INFO 'Error Name:%',SQLERRM;


RAISE INFO 'Error State:%', SQLSTATE; -- Function: public.ylw_l_545_l_5_mvar(numeric)

return 0;
END;$BODY$ -- DROP FUNCTION public.ylw_l_545_l_5_mvar(numeric);
LANGUAGE plpgsql VOLATILE
COST 100; CREATE OR REPLACE FUNCTION
ALTER FUNCTION public.ylw_l_4r_l_4_mw(numeric) public.ylw_l_545_l_5_mvar(numeric)

OWNER TO postgres; RETURNS numeric AS


$BODY$

-- Function: public.ylw_l_545_l_5_kv(numeric, numeric, DECLARE


numeric) --_mw alias for $1;
_mvar alias for $1;

-- DROP FUNCTION public.ylw_l_545_l_5_kv(numeric, --_kv alias for $3;


numeric, numeric); BEGIN
RETURN (SELECT
CREATE OR REPLACE FUNCTION public.ylw_l_545_l_5_kv( ROUND(_mvar*(0.57)::numeric,2));

numeric, EXCEPTION when others then

numeric, RAISE INFO 'Error Name:%',SQLERRM;

numeric) RAISE INFO 'Error State:%', SQLSTATE;

RETURNS numeric AS return 0;

$BODY$ END;$BODY$

DECLARE LANGUAGE plpgsql VOLATILE

_mw alias for $1; COST 100;

_mvar alias for $2; ALTER FUNCTION public.ylw_l_545_l_5_mvar(numeric)

_kv alias for $3; OWNER TO postgres;


BEGIN

A98
-- Function: public.ylw_l_545_l_5_mw(numeric) RETURN ROUND((SELECT _kv-
((((((0.208*COS(ATAN(_mvar/_mw)))+(0.412*SIN(ACOS(C
-- DROP FUNCTION public.ylw_l_545_l_5_mw(numeric); OS(ATAN(_mvar/_mw))))))*4.975)+(((0.084*COS(ATAN(_
mvar/_mw)))+(0.189*SIN(ACOS(COS(ATAN(_mvar/_mw)))
CREATE OR REPLACE FUNCTION )))*0.036))*((_mw/((COS(ATAN(_mvar/_mw)))*_kv*sqrt(
public.ylw_l_545_l_5_mw(numeric) 3))*1000)*sqrt(3))/(2*1000))*2.35/3.88))::numeric,2);

RETURNS numeric AS EXCEPTION when others then


$BODY$ RAISE INFO 'Error Name:%',SQLERRM;

DECLARE RAISE INFO 'Error State:%', SQLSTATE;

_mw alias for $1; return 0;

--_mvar alias for $2; END;$BODY$

--_kv alias for $3; LANGUAGE plpgsql VOLATILE

BEGIN COST 100;

RETURN (SELECT ALTER FUNCTION public.ylw_l_5r_l_5_kv(numeric,


ROUND(_mw*(0.33)::numeric,2)); numeric, numeric)
EXCEPTION when others then OWNER TO postgres;

RAISE INFO 'Error Name:%',SQLERRM;


RAISE INFO 'Error State:%', SQLSTATE; -- Function: public.ylw_l_5r_l_5_mvar(numeric)

return 0;
END;$BODY$ -- DROP FUNCTION public.ylw_l_5r_l_5_mvar(numeric);
LANGUAGE plpgsql VOLATILE
COST 100; CREATE OR REPLACE FUNCTION
ALTER FUNCTION public.ylw_l_545_l_5_mw(numeric) public.ylw_l_5r_l_5_mvar(numeric)

OWNER TO postgres; RETURNS numeric AS


$BODY$

-- Function: public.ylw_l_5r_l_5_kv(numeric, numeric, DECLARE


numeric) --_mw alias for $1;
_mvar alias for $1;

-- DROP FUNCTION public.ylw_l_5r_l_5_kv(numeric, --_kv alias for $3;


numeric, numeric); BEGIN
RETURN (SELECT
CREATE OR REPLACE FUNCTION public.ylw_l_5r_l_5_kv( ROUND(_mvar*(0.38)::numeric,2));

numeric, EXCEPTION when others then

numeric, RAISE INFO 'Error Name:%',SQLERRM;

numeric) RAISE INFO 'Error State:%', SQLSTATE;

RETURNS numeric AS return 0;

$BODY$ END;$BODY$

DECLARE LANGUAGE plpgsql VOLATILE

_mw alias for $1; COST 100;

_mvar alias for $2; ALTER FUNCTION public.ylw_l_5r_l_5_mvar(numeric)

_kv alias for $3; OWNER TO postgres;


BEGIN

A99
-- Function: public.ylw_l_5r_l_5_mw(numeric)
lb_c_0z_c_0.setText(values.get("lb_c_0z_c_0").toString())
-- DROP FUNCTION public.ylw_l_5r_l_5_mw(numeric); ;

CREATE OR REPLACE FUNCTION lb_c_0z_l_3.setText(values.get("lb_c_0z_l_3").toString());


public.ylw_l_5r_l_5_mw(numeric)
RETURNS numeric AS lb_l_325_c_0.setText(values.get("lb_l_325xx_c_0").toStri
$BODY$ ng());

DECLARE
_mw alias for $1; lb_l_325_l_3.setText(values.get("lb_l_325xx_l_3").toStrin

--_mvar alias for $2; g());

--_kv alias for $3;


BEGIN lb_l_3b_l_3.setText(values.get("lb_l_3b_l_3").toString());

RETURN (SELECT
ROUND(_mw*(0.74)::numeric,2)); lb_l_3b_l_5.setText(values.get("lb_l_3b_l_5").toString());

EXCEPTION when others then


RAISE INFO 'Error Name:%',SQLERRM; lb_l_4x_l_5.setText(values.get("lb_l_4x_l_5").toString());

RAISE INFO 'Error State:%', SQLSTATE;


return 0; lb_l_4x_l_4.setText(values.get("lb_l_4x_l_4").toString());

END;$BODY$
LANGUAGE plpgsql VOLATILE lb_a_8x_l_4.setText(values.get("lb_a_8x_l_4").toString());

COST 100;
ALTER FUNCTION public.ylw_l_5r_l_5_mw(numeric) lb_a_8x_a_8.setText(values.get("lb_a_8x_a_8").toString()

OWNER TO postgres; );

--METODO QUE ACTUALIZA EL VALOR DE LOS ELEMENTO lb_c_9x_c_1.setText(values.get("lb_c_9x_l_1").toString());

DE MANIOBRA N/A--
* @param values lb_c_9x_c_9.setText(values.get("lb_c_9x_c_9").toString())
;
* @return
*/
lb_c_8x_l_1.setText(values.get("lb_c_8x_l_1").toString());
public boolean setOrangeLabels(Map<String, Object>
values) {
lb_c_8x_c_8.setText(values.get("lb_c_8x_c_8").toString())
try {
;
// lb_l_2x.setText(values.get("lb_l_2x").toString());

lb_c_7g_c_0.setText(values.get("lb_c_7g_c_0").toString())
lb_l_2x_l_2.setText(values.get("lb_l_2x_l_2").toString());
;

lb_c_0x_l_2.setText(values.get("lb_c_0x_l_2").toString());
lb_c_7g_c_7.setText(values.get("lb_c_7g_c_7").toString())
;
lb_c_0x_c_0.setText(values.get("lb_c_0x_c_0").toString())
;
lb_l_5x_l_5.setText(values.get("lb_l_5x_l_5").toString());

A100
lb_a_191_a_1.setText(values.get("lb_a_191_a_1").toStrin lb_c_513_c_6.setText(values.get("lb_c_513_c_6").toStrin
g()); g());

lb_l_5x_a_1.setText(values.get("lb_l_5x_a_1").toString()); lb_c_513_c_5.setText(values.get("lb_c_513_c_5").toStrin
g());
lb_a_190_a_8.setText(values.get("lb_a_190_a_8").toStrin
g()); lb_c_3x_c_3.setText(values.get("lb_c_3x_c_3").toString())
;
lb_a_191_l_3.setText(values.get("lb_a_191_l_3").toString
()); lb_c_3x_c_1.setText(values.get("lb_c_3x_c_1").toString())
;
lb_a_190_a_1.setText(values.get("lb_a_190_a_1").toStrin
g()); lb_c_3f_c_3.setText(values.get("lb_c_3f_c_3").toString());

lb_a_l1_a_8.setText(values.get("lb_a_1l_a_8").toString()); lb_c_4x_c_4.setText(values.get("lb_c_4x_c_4").toString())
;
lb_a_l1_a_1.setText(values.get("lb_a_1l_a_1").toString());
lb_c_3f_a_6.setText(values.get("lb_c_3f_a_6").toString())
lb_l_3x_l_3.setText(values.get("lb_l_3x_l_3").toString()); ;

lb_l_3x_a_2.setText(values.get("lb_l_3x_a_2").toString()); lb_c_4x_a_6.setText(values.get("lb_c_4x_a_6").toString()
);
lb_a_4x_a_4.setText(values.get("lb_a_4x_a_4").toString()
); lb_c_5l_c_4.setText(values.get("lb_c_5l_c_4").toString());

lb_a_4x_c_6.setText(values.get("lb_a_4x_c_6").toString() lb_c_5l_c_5.setText(values.get("lb_c_5l_c_5").toString());
);
lb_c_5x_c_5.setText(values.get("lb_c_5x_c_5").toString())
lb_a_830_a_1.setText(values.get("lb_a_830_a_1").toStrin ;
g());
lb_c_5x_a_7.setText(values.get("lb_c_5x_a_7").toString()
lb_a_830_a_8.setText(values.get("lb_a_830_a_8").toStrin );
g());
lb_c_5x_a_5.setText(values.get("lb_c_5x_c_5").toString())
lb_c_1x_c_4.setText(values.get("lb_c_1x_c_4").toString()) ;
;
lb_c_5x_c_3.setText(values.get("lb_a_5x_c_3").toString())
lb_c_1x_c_1.setText(values.get("lb_c_1x_c_1").toString()) ;
;
lb_a_9x_a_9.setText(values.get("lb_a_9x_a_9").toString()
);

A101
lb_a_9x_a_5.setText(values.get("lb_a_9x_a_5").toString() ylw_l_3r_kv.setText(values.get("ylw_l_3r_l_3_kv").toStrin
); g());
return true;
} catch (Exception e) { ylw_l_545b_mw.setText(values.get("ylw_l_545_l_5_mw"
e.printStackTrace(); ).toString());
return false;
ylw_l_545b_mvar.setText(values.get("ylw_l_545_l_5_mv
--METODO QUE ACTUALIZA EL VALOR DE LOS ELEMENTO ar").toString());
DE MANIOBRA N/A--
* @param values ylw_l_545b_kv.setText(values.get("ylw_l_545_l_5_kv").to

* @return String());

*/
public boolean setYellowLabels(Map<String, Object> ylw_l_5r_mw.setText(values.get("ylw_l_5r_l_5_mw").toS

values) { tring());

try {
System.out.println("dsds"); ylw_l_5r_mvar.setText(values.get("ylw_l_5r_l_5_mvar").t
oString());

ylw_l_4r_mw.setText(values.get("ylw_l_4r_l_4_mw").toS
tring()); ylw_l_5r_kv.setText(values.get("ylw_l_5r_l_5_kv").toStrin
g());

ylw_l_4r_mvar.setText(values.get("ylw_l_4r_l_4_mvar").t
oString()); ylw_c_020_mw.setText(values.get("ylw_c_020aa_c_0_m
w").toString());

ylw_l_4r_kv.setText(values.get("ylw_l_4r_l_4_kv").toStrin
g()); ylw_c_020_mvar.setText(values.get("ylw_c_020aa_c_0_
mvar").toString());

ylw_l_2r_mw.setText(values.get("ylw_l_2r_l_2_mw").toS
tring()); ylw_c_020_kv.setText(values.get("ylw_c_020aa_c_0_kv")
.toString());

ylw_l_2r_mvar.setText(values.get("ylw_l_2r_l_2_mvar").t
oString()); ylw_c_916_mw.setText(values.get("ylw_c_916_c_9_mw"
).toString());

ylw_l_2r_kv.setText(values.get("ylw_l_2r_l_2_kv").toStrin
g()); ylw_c_916_mvar.setText(values.get("ylw_c_916_c_9_mv
ar").toString());

ylw_l_3r_mw.setText(values.get("ylw_l_3r_l_3_mw").toS
tring()); ylw_c_916_kv.setText(values.get("ylw_c_916_c_9_kv").to
String());

ylw_l_3r_mvar.setText(values.get("ylw_l_3r_l_3_mvar").t
oString()); ylw_c_9r_mw.setText(values.get("ylw_c_9r_c_9_mw").to
String());

A102
ylw_c_9r_mvar.setText(values.get("ylw_c_9r_c_9_mvar") ylw_a_1a_mw.setText(values.get("ylw_a_1a_a_1_kv").to
.toString()); String());

ylw_c_9r_kv.setText(values.get("ylw_c_9r_c_9_kv").toStr ylw_a_4i_mw.setText(values.get("ylw_a_4i_a_4_mw").to
ing()); String());

ylw_c_8c_mw.setText(values.get("ylw_c_8c_c_8_mw").to ylw_a_4i_mvar.setText(values.get("ylw_a_4i_a_4_mvar")
String()); .toString());

ylw_c_8c_mvar.setText(values.get("ylw_c_8c_c_8_mvar" ylw_a_4i_kv.setText(values.get("ylw_a_4i_a_4_kv").toStri
).toString()); ng());

ylw_c_8c_kv.setText(values.get("ylw_c_8c_c_8_kv").toStr ylw_a_720_mw.setText(values.get("ylw_a_720_a_7_kv").
ing()); toString());
//
ylw_c_020hj_mw.setText(values.get("ylw_c_020hj_mw"). ylw_a_3e_mw.setText(values.get("ylw_a_3e_c_7_kv").to
toString()); String());
//
ylw_c_020hj_mvar.setText(values.get("ylw_c_020hj_mva ylw_a_2r_mw.setText(values.get("ylw_a_2r_a_2_mw").t
r").toString()); oString());

ylw_c_020hj_kv.setText(values.get("ylw_c_020hj_c_0_kv ylw_a_2r_mvar.setText(values.get("ylw_a_2r_a_2_mvar"
").toString()); ).toString());

ylw_c_7i_mw.setText(values.get("ylw_c_7i_c_7_mw").to ylw_a_2r_kv.setText(values.get("ylw_a_2r_a_2_kv").toStr
String()); ing());

ylw_c_7i_mvar.setText(values.get("ylw_c_7i_c_7_mvar"). ylw_a_1r_mw.setText(values.get("ylw_c_1r_c_1_mw").to
toString()); String());

ylw_c_7i_kv.setText(values.get("ylw_c_7i_c_7_kv").toStri ylw_a_1r_mvar.setText(values.get("ylw_c_1r_c_1_mvar")
ng()); .toString());

ylw_c_6q_mw.setText(values.get("ylw_c_6q_c_6_mw").t ylw_a_1r_kv.setText(values.get("ylw_c_1r_c_1_kv").toStr
oString()); ing());

ylw_c_6q_mvar.setText(values.get("ylw_c_6q_c_6_mvar" ylw_a_1t_mw.setText(values.get("ylw_c_1t_c_1_mw").to
).toString()); String());

ylw_c_6q_kv.setText(values.get("ylw_c_6q_c_6_kv").toSt ylw_a_1t_mvar.setText(values.get("ylw_c_1t_c_1_mvar")
ring()); .toString());

A103
ylw_a_1t_kv.setText(values.get("ylw_c_1t_c_1_kv").toStr ylw_a_990_mw.setText(values.get("ylw_a_990_a_9_mw"
ing()); ).toString());

ylw_a_3d_mw.setText(values.get("ylw_c_3d_c_3_mw").t ylw_a_990_mvar.setText(values.get("ylw_a_990_a_9_mv
oString()); ar").toString());

ylw_a_3d_mvar.setText(values.get("ylw_c_3d_c_3_mvar" ylw_a_990_kv.setText(values.get("ylw_a_990_a_9_kv").t
).toString()); oString());
return true;
ylw_a_3d_kv.setText(values.get("ylw_c_3d_c_3_kv").toSt } catch (Exception e) {
ring()); e.printStackTrace();
return false;
ylw_a_3r_mw.setText(values.get("ylw_c_3r_c_3_mw").to }
String()); }

ylw_a_3r_mvar.setText(values.get("ylw_c_3r_c_3_mvar") --INTERFAZ VISUAL DATOS DE DEMANDAS EN CABECERA--


.toString()); --TABLA CALA CALA ALIMENTADORES--
* @param list
ylw_a_3r_kv.setText(values.get("ylw_c_3r_c_3_kv").toStr * @return
ing()); */
public ObservableList<MainData>
ylw_a_3l_mw.setText(values.get("ylw_c_3l_c_3_mw").to getObservableListL(List<Map<String, Object>> list) {
String()); ObservableList<MainData> listData =
FXCollections.observableArrayList();
ylw_a_3l_mvar.setText(values.get("ylw_c_3l_c_3_mvar"). for (Map<String, Object> map : list) {
toString()); listData.add(new MainData("L1",
map.get("mw_l1").toString(),
ylw_a_3l_kv.setText(values.get("ylw_c_3l_c_3_kv").toStri map.get("mvar_l1").toString(),
ng()); map.get("kv_l1").toString(),
map.get("l1_percent").toString()));
ylw_a_603_mw.setText(values.get("ylw_a_603_a_6_kv"). listData.add(new MainData("L2",
toString()); map.get("mw_l2").toString(),
map.get("mvar_l2").toString(),
ylw_a_5r_mw.setText(values.get("ylw_a_5r_a_5_mw").t map.get("kv_l2").toString(),
oString()); map.get("l2_percent").toString()));
listData.add(new MainData("L3",
ylw_a_5r_mvar.setText(values.get("ylw_a_5r_a_5_mvar" map.get("mw_l3").toString(),
).toString()); map.get("mvar_l3").toString(),
map.get("kv_l3").toString(),
ylw_a_5r_kv.setText(values.get("ylw_a_5r_a_5_kv").toStr map.get("l3_percent").toString()));
ing());

A104
listData.add(new MainData("L4", listData.add(new MainData("A1",
map.get("mw_l4").toString(), map.get("mw_a1").toString(),
map.get("mvar_l4").toString(), map.get("mvar_a1").toString(),
map.get("kv_l4").toString(), map.get("kv_a1").toString(),
map.get("l4_percent").toString())); map.get("a1_percent").toString()));
listData.add(new MainData("L5", listData.add(new MainData("A2",
map.get("mw_l5").toString(), map.get("mw_a2").toString(),
map.get("mvar_l5").toString(), map.get("mvar_a2").toString(),
map.get("kv_l5").toString(), map.get("kv_a2").toString(),
map.get("l5_percent").toString())); map.get("a2_percent").toString()));
} listData.add(new MainData("A4",
return listData; map.get("mw_a4").toString(),
} map.get("mvar_a4").toString(),
map.get("kv_a4").toString(),
--TABLA CALA CALA TRANSFORMADORES-- map.get("a4_percent").toString()));
* @param list listData.add(new MainData("A5",
* @return map.get("mw_a5").toString(),

*/ map.get("mvar_a5").toString(),

public ObservableList<Transformer> map.get("kv_a5").toString(),

getObservableListTransfoermerL(List<Map<String, map.get("a5_percent").toString()));

Object>> list) { listData.add(new MainData("A6",

ObservableList<Transformer> listData = map.get("mw_a6").toString(),

FXCollections.observableArrayList(); map.get("mvar_a6").toString(),

for (Map<String, Object> map : list) { map.get("kv_a6").toString(),

listData.add(new Transformer("T390", map.get("a6_percent").toString()));

map.get("t390_mva").toString(), listData.add(new MainData("A7",

map.get("t390_percent").toString())); map.get("mw_a7").toString(),

} map.get("mvar_a7").toString(),

return listData; map.get("kv_a7").toString(),

} map.get("a7_percent").toString()));
listData.add(new MainData("A8",

/** map.get("mw_a8").toString(),

--TABLA ALALAY ALIMENTADORES-- map.get("mvar_a8").toString(),


map.get("kv_a8").toString(),
* @param list
map.get("a8_percent").toString()));
* @return
listData.add(new MainData("A9",
*/
map.get("mw_a9").toString(),
public ObservableList<MainData>
map.get("mvar_a9").toString(),
getObservableListA(List<Map<String, Object>> list) {
map.get("kv_a9").toString(),
ObservableList<MainData> listData =
map.get("a9_percent").toString()));
FXCollections.observableArrayList();
}
for (Map<String, Object> map : list) {
return listData;

A105
} listData.add(new MainData("C3",
map.get("mw_c3").toString(),
--TABLA ALALAY TRANSFORMADORES-- map.get("mvar_c3").toString(),
* @param list map.get("kv_c3").toString(),
* @return map.get("c3_percent").toString()));

*/ listData.add(new MainData("C4",

public ObservableList<Transformer> map.get("mw_c4").toString(),

getObservableListTransfoermerA(List<Map<String, map.get("mvar_c4").toString(),
Object>> list) { map.get("kv_c4").toString(),

ObservableList<Transformer> listData = map.get("c4_percent").toString()));

FXCollections.observableArrayList(); listData.add(new MainData("C5",

for (Map<String, Object> map : list) { map.get("mw_c5").toString(),

listData.add(new Transformer("T290", map.get("mvar_c5").toString(),

map.get("t290_mva").toString(), map.get("kv_c5").toString(),

map.get("t290_percent").toString())); map.get("c5_percent").toString()));

listData.add(new Transformer("T291", listData.add(new MainData("C6",

map.get("t291_mva").toString(), map.get("mw_c6").toString(),

map.get("t291_percent").toString())); map.get("mvar_c6").toString(),

} map.get("kv_c6").toString(),

return listData; map.get("c6_percent").toString()));

} listData.add(new MainData("C7",
map.get("mw_c7").toString(),

--TABLA CENTRAL ALIMENTADORES-- map.get("mvar_c7").toString(),

* @param list map.get("kv_c7").toString(),

* @return map.get("c7_percent").toString()));

*/ listData.add(new MainData("C8",
map.get("mw_c8").toString(),
public ObservableList<MainData>
map.get("mvar_c8").toString(),
getObservableListC(List<Map<String, Object>> list) {
map.get("kv_c8").toString(),
ObservableList<MainData> listData =
map.get("c8_percent").toString()));
FXCollections.observableArrayList();
listData.add(new MainData("C9",
for (Map<String, Object> map : list) {
map.get("mw_c9").toString(),
listData.add(new MainData("C0",
map.get("mvar_c9").toString(),
map.get("mw_c0").toString(),
map.get("kv_c9").toString(),
map.get("mvar_c0").toString(),
map.get("c9_percent").toString()));
map.get("kv_c0").toString(),
}
map.get("c0_percent").toString()));
return listData;
listData.add(new MainData("C1",
}
map.get("mw_c1").toString(),
map.get("mvar_c1").toString(),
map.get("kv_c1").toString(), --TABLA CENTRAL TRANSFORMADORES--

map.get("c1_percent").toString())); * @param list


* @return

A106
*/ pane.add(endDatePicker, 1, 2);
public ObservableList<Transformer> Button saveButton = new Button("Generar");
getObservableListTransfoermerC(List<Map<String, Button viewButton = new Button("Ver");
Object>> list) { HBox hbox = new HBox(10);
ObservableList<Transformer> listData = hbox.setAlignment(Pos.BOTTOM_RIGHT);
FXCollections.observableArrayList(); //Agregamos los botones al panel
for (Map<String, Object> map : list) { hbox.getChildren().addAll(saveButton, viewButton);
listData.add(new Transformer("T190", pane.add(hbox, 1, 4);
map.get("t190_mva").toString(), root.getChildren().add(pane);
map.get("t190_percent").toString())); Scene scene = new Scene(root, 300, 300);
listData.add(new Transformer("T191", final Text taxMessage = new Text();
map.get("t191_mva").toString(), pane.add(taxMessage, 1, 5);
map.get("t191_percent").toString())); //Evento que lee cuando se hace click en el boton
} Generar
return listData; saveButton.setOnAction(new
} EventHandler<ActionEvent>() {
public void handle(ActionEvent t) {
--LECTURA DE EVENTOS-- //Si no se ingresa una fecha de ingreso muestra
public class EventReader extends Stage { una ventana de validación
if (startDatePicker.getValue() == null) {
public EventReader() { showAlert(Alert.AlertType.ERROR,
scene.getWindow(), "Form Error!", "Ingrese una fecha de
StackPane root = new StackPane(); inicio");
//Instanciamos el panel donde se agregaran los return;
elementos }
GridPane pane = new GridPane(); //Si no se ingresa una fecha final muestra una
pane.setAlignment(Pos.CENTER); ventana de validación
pane.setHgap(10); if (endDatePicker.getValue() == null) {
pane.setVgap(10); showAlert(Alert.AlertType.ERROR,
pane.setPadding(new Insets(25, 25, 25, 25)); scene.getWindow(), "Form Error!", "Ingrese una fecha
final");
Text sceneTitle = new Text("Lectura de eventos"); return;
sceneTitle.setFont(Font.font("Arial", }
FontWeight.NORMAL, 20)); // Recuperamos los valores de los picker de
pane.add(sceneTitle, 0, 0, 2, 1); fechas
//agregamos los labels LocalDate dateInit = startDatePicker.getValue();
pane.add(new Label("Desde:"), 0, 1); LocalDate dateEnd = startDatePicker.getValue();
DatePicker startDatePicker = new DatePicker(); PostgreSQLJDBC dao = new PostgreSQLJDBC();
//Agregamos el picker de fechas al panel //Ejecutamos el QUERY para obtener los datos
pane.add(startDatePicker, 1, 1); List<Map<String, Object>> main_result =
pane.add(new Label("Hasta:"), 0, 2); dao.executeQuery("SELECT data.mw_a1,\n"
DatePicker endDatePicker = new DatePicker(); + " data.mw_a2,\n"

A107
+ " data.mw_a4,\n" + " data.mvar_c9,\n"
+ " data.mw_a5,\n" + " data.kv_a1,\n"
+ " data.mw_a6,\n" + " data.kv_a2,\n"
+ " data.mw_a7,\n" + " data.kv_a4,\n"
+ " data.mw_a8,\n" + " data.kv_a5,\n"
+ " data.mw_a9,\n" + " data.kv_a6,\n"
+ " data.mw_l1,\n" + " data.kv_a7,\n"
+ " data.mw_l2,\n" + " data.kv_a8,\n"
+ " data.mw_l3,\n" + " data.kv_a9,\n"
+ " data.mw_l4,\n" + " data.kv_l1,\n"
+ " data.mw_l5,\n" + " data.kv_l2,\n"
+ " data.mw_c0,\n" + " data.kv_l3,\n"
+ " data.mw_c1,\n" + " data.kv_l4,\n"
+ " data.mw_c3,\n" + " data.kv_l5,\n"
+ " data.mw_c4,\n" + " data.kv_c0,\n"
+ " data.mw_c5,\n" + " data.kv_c1,\n"
+ " data.mw_c6,\n" + " data.kv_c3,\n"
+ " data.mw_c7,\n" + " data.kv_c4,\n"
+ " data.mw_c8,\n" + " data.kv_c5,\n"
+ " data.mw_c9,\n" + " data.kv_c6,\n"
+ " data.mvar_a1,\n" + " data.kv_c7,\n"
+ " data.mvar_a2,\n" + " data.kv_c8,\n"
+ " data.mvar_a4,\n" + " data.kv_c9,\n"
+ " data.mvar_a5,\n" + " sqrt((data.mw_a1 ^ 2::double
+ " data.mvar_a6,\n" precision) + (data.mvar_a1 ^ 2::double precision)) /
+ " data.mvar_a7,\n" 8.31::double precision * 100::double precision AS
+ " data.mvar_a8,\n" a1_percent,\n"
+ " data.mvar_a9,\n" + " sqrt((data.mw_a2 ^ 2::double
+ " data.mvar_l1,\n" precision) + (data.mvar_a2 ^ 2::double precision)) /
+ " data.mvar_l2,\n" 8.31::double precision * 100::double precision AS

+ " data.mvar_l3,\n" a2_percent,\n"

+ " data.mvar_l4,\n" + " sqrt((data.mw_a4 ^ 2::double

+ " data.mvar_l5,\n" precision) + (data.mvar_a4 ^ 2::double precision)) /

+ " data.mvar_c0,\n" 8.31::double precision * 100::double precision AS

+ " data.mvar_c1,\n" a4_percent,\n"

+ " data.mvar_c3,\n" + " sqrt((data.mw_a5 ^ 2::double

+ " data.mvar_c4,\n" precision) + (data.mvar_a5 ^ 2::double precision)) /

+ " data.mvar_c5,\n" 8.31::double precision * 100::double precision AS

+ " data.mvar_c6,\n" a5_percent,\n"

+ " data.mvar_c7,\n" + " sqrt((data.mw_a6 ^ 2::double

+ " data.mvar_c8,\n" precision) + (data.mvar_a6 ^ 2::double precision)) /

A108
8.31::double precision * 100::double precision AS + " sqrt((data.mw_c4 ^ 2::double
a6_percent,\n" precision) + (data.mvar_c4 ^ 2::double precision)) /
+ " sqrt((data.mw_a7 ^ 2::double 8.31::double precision * 100::double precision AS
precision) + (data.mvar_a7 ^ 2::double precision)) / c4_percent,\n"
8.31::double precision * 100::double precision AS + " sqrt((data.mw_c5 ^ 2::double
a7_percent,\n" precision) + (data.mvar_c5 ^ 2::double precision)) /
+ " sqrt((data.mw_a8 ^ 2::double 8.31::double precision * 100::double precision AS
precision) + (data.mvar_a8 ^ 2::double precision)) / c5_percent,\n"
8.31::double precision * 100::double precision AS + " sqrt((data.mw_c6 ^ 2::double
a8_percent,\n" precision) + (data.mvar_c6 ^ 2::double precision)) /
+ " sqrt((data.mw_a9 ^ 2::double 8.31::double precision * 100::double precision AS
precision) + (data.mvar_a9 ^ 2::double precision)) / c6_percent,\n"
8.31::double precision * 100::double precision AS + " sqrt((data.mw_c7 ^ 2::double
a9_percent,\n" precision) + (data.mvar_c7 ^ 2::double precision)) /
+ " sqrt((data.mw_l1 ^ 2::double precision) 8.31::double precision * 100::double precision AS
+ (data.mvar_l1 ^ 2::double precision)) / 8.31::double c7_percent,\n"
precision * 100::double precision AS l1_percent,\n" + " sqrt((data.mw_c8 ^ 2::double
+ " sqrt((data.mw_l2 ^ 2::double precision) precision) + (data.mvar_c8 ^ 2::double precision)) /
+ (data.mvar_l2 ^ 2::double precision)) / 8.31::double 8.31::double precision * 100::double precision AS
precision * 100::double precision AS l2_percent,\n" c8_percent,\n"
+ " sqrt((data.mw_l3 ^ 2::double precision) + " sqrt((data.mw_c9 ^ 2::double
+ (data.mvar_l3 ^ 2::double precision)) / 8.31::double precision) + (data.mvar_c9 ^ 2::double precision)) /
precision * 100::double precision AS l3_percent,\n" 8.31::double precision * 100::double precision AS
+ " sqrt((data.mw_l4 ^ 2::double precision) c9_percent,\n"
+ (data.mvar_l4 ^ 2::double precision)) / 8.31::double + " sqrt((((data.mw_a1 + data.mw_a2 +
precision * 100::double precision AS l4_percent,\n" data.mw_a4 + data.mw_a5 + data.mw_a7 + data.mw_a9)
+ " sqrt((data.mw_l5 ^ 2::double precision) * 1.005::double precision) ^ 2::double precision) +
+ (data.mvar_l5 ^ 2::double precision)) / 8.31::double ((data.mvar_a1 + data.mvar_a2 + data.mvar_a4 +
precision * 100::double precision AS l5_percent,\n" data.mvar_a5 + data.mvar_a7 + data.mvar_a9) ^
+ " sqrt((data.mw_c0 ^ 2::double 2::double precision)) AS t290_mva,\n"
precision) + (data.mvar_c0 ^ 2::double precision)) / + " sqrt((((data.mw_a6 + data.mw_a8) *
8.31::double precision * 100::double precision AS 1.005::double precision) ^ 2::double precision) +
c0_percent,\n" ((data.mvar_a6 + data.mvar_a8) ^ 2::double precision))
+ " sqrt((data.mw_c1 ^ 2::double AS t291_mva,\n"
precision) + (data.mvar_c1 ^ 2::double precision)) / + " sqrt((((data.mw_c0 + data.mw_c3 +
8.31::double precision * 100::double precision AS data.mw_c6 + data.mw_c8 + data.mw_c9) *
c1_percent,\n" 1.005::double precision) ^ 2::double precision) +
+ " sqrt((data.mw_c3 ^ 2::double ((data.mvar_c0 + data.mvar_c3 + data.mvar_c6 +
precision) + (data.mvar_c3 ^ 2::double precision)) / data.mvar_c8 + data.mvar_c9) ^ 2::double precision)) AS
8.31::double precision * 100::double precision AS t190_mva,\n"
c3_percent,\n" + " sqrt((((data.mw_c1 + data.mw_c4 +
data.mw_c5 + data.mw_c7) * 1.005::double precision) ^

A109
2::double precision) + ((data.mvar_c1 + data.mvar_c4 + + " data.success_date AS date_a5,\n"
data.mvar_c5 + data.mvar_c7) ^ 2::double precision)) AS + " data.success_date AS date_a6,\n"
t191_mva,\n" + " data.success_date AS date_a7,\n"
+ " sqrt((((data.mw_l1 + data.mw_l2 + + " data.success_date AS date_a8,\n"
data.mw_l3 + data.mw_l4 + data.mw_l5) * 1.005::double + " data.success_date AS date_a9,\n"
precision) ^ 2::double precision) + ((data.mvar_l1 + + " data.success_date AS date_l1,\n"
data.mvar_l2 + data.mvar_l3 + data.mvar_l4 + + " data.success_date AS date_l2,\n"
data.mvar_l5) ^ 2::double precision)) AS t390_mva,\n" + " data.success_date AS date_l3,\n"
+ " sqrt((((data.mw_a1 + data.mw_a2 + + " data.success_date AS date_l4,\n"
data.mw_a4 + data.mw_a5 + data.mw_a7 + data.mw_a9) + " data.success_date AS date_l5,\n"
* 1.005::double precision) ^ 2::double precision) + + " data.success_date AS date_c0,\n"
((data.mvar_a1 + data.mvar_a2 + data.mvar_a4 + + " data.success_date AS date_c1,\n"
data.mvar_a5 + data.mvar_a7 + data.mvar_a9) ^ + " data.success_date AS date_c3,\n"
2::double precision)) / 25::double precision * 100::double + " data.success_date AS date_c4,\n"
precision AS t290_percent,\n" + " data.success_date AS date_c5,\n"
+ " sqrt((((data.mw_a6 + data.mw_a8) * + " data.success_date AS date_c6,\n"
1.005::double precision) ^ 2::double precision) + + " data.success_date AS date_c7,\n"
((data.mvar_a6 + data.mvar_a8) ^ 2::double precision)) /
+ " data.success_date AS date_c8,\n"
10::double precision * 100::double precision AS
+ " data.success_date AS date_c9,\n"
t291_percent,\n"
+" ------------Puntos de
+ " sqrt((((data.mw_c0 + data.mw_c3 +
interconexión--------------------------\n"
data.mw_c6 + data.mw_c8 + data.mw_c9) *
+"
1.005::double precision) ^ 2::double precision) +
lb_a_190_a_1(mw_a1::numeric,mvar_a1::numeric,kv_a1:
((data.mvar_c0 + data.mvar_c3 + data.mvar_c6 +
:numeric),\n"
data.mvar_c8 + data.mvar_c9) ^ 2::double precision)) *
+"
100::double precision / 25::double precision AS
lb_a_190_a_8(mw_a8::numeric,mvar_a8::num
t190_percent,\n"
eric,kv_a8::numeric),\n"
+ " sqrt((((data.mw_c1 + data.mw_c4 +
+"
data.mw_c5 + data.mw_c7) * 1.005::double precision) ^
lb_a_191_a_1(mw_a1::numeric,mvar_a1::num
2::double precision) + ((data.mvar_c1 + data.mvar_c4 +
eric,kv_a1::numeric),\n"
data.mvar_c5 + data.mvar_c7) ^ 2::double precision)) /
+"
12.5::double precision * 100::double precision AS
lb_a_191_l_3(mw_l3::numeric,mvar_l3::nume
t191_percent,\n"
ric,kv_l3::numeric),\n"
+ " sqrt((((data.mw_l1 + data.mw_l2 +
+"
data.mw_l3 + data.mw_l4 + data.mw_l5) * 1.005::double
lb_a_1l_a_1(mw_a1::numeric,mvar_a1::numer
precision) ^ 2::double precision) + ((data.mvar_l1 +
ic,kv_a1::numeric),\n"
data.mvar_l2 + data.mvar_l3 + data.mvar_l4 +
+"
data.mvar_l5) ^ 2::double precision)) / 25::double
lb_a_1l_a_8(mw_a8::numeric,mvar_a8::numer
precision * 100::double precision AS t390_percent,\n"
ic,kv_a8::numeric),\n"
+ " data.success_date AS date_a1,\n"
+"
+ " data.success_date AS date_a2,\n"
lb_a_4x_a_4(mw_a4::numeric,mvar_a4::nume
+ " data.success_date AS date_a4,\n"
ric,kv_a4::numeric),\n"

A110
+" +"
lb_a_4x_c_6(mw_c6::numeric,mvar_c6::nume lb_c_1x_c_4(mw_c4::numeric,mvar_c4::numer
ric,kv_c6::numeric),\n" ic,kv_c4::numeric),\n"
+" +"
lb_a_5x_a_5(mw_a5::numeric,mvar_a5::nume lb_c_3f_a_6(mw_a6::numeric,mvar_a6::numer
ric,kv_a5::numeric),\n" ic,kv_a6::numeric),\n"
+" +"
lb_a_5x_c_3(mw_c3::numeric,mvar_c3::nume lb_c_3f_c_3(mw_c3::numeric,mvar_c3::numer
ric,kv_c3::numeric),\n" ic,kv_c3::numeric),\n"
+" +"
lb_a_830_a_1(mw_a1::numeric,mvar_a1::num lb_c_3x_c_1(mw_c1::numeric,mvar_c1::numer
eric,kv_a1::numeric),\n" ic,kv_c1::numeric),\n"
+" +"
lb_a_830_a_8(mw_a8::numeric,mvar_a8::num lb_c_3x_c_3(mw_c3::numeric,mvar_c3::numer
eric,kv_a8::numeric),\n" ic,kv_c3::numeric),\n"
+" +"
lb_a_8x_a_8(mw_a8::numeric,mvar_a8::nume lb_c_4x_a_6(mw_a6::numeric,mvar_a6::nume
ric,kv_a8::numeric),\n" ric,kv_a6::numeric),\n"
+" +"
lb_a_8x_l_4(mw_l4::numeric,mvar_l4::numeri lb_c_4x_c_4(mw_c4::numeric,mvar_c4::numer
c,kv_l4::numeric),\n" ic,kv_c4::numeric),\n"
+" +"
lb_a_9x_a_5(mw_a5::numeric,mvar_a5::nume lb_c_513_c_5(mw_c5::numeric,mvar_c5::num
ric,kv_a5::numeric),\n" eric,kv_c5::numeric),\n"
+" +"
lb_a_9x_a_9(mw_a9::numeric,mvar_a9::nume lb_c_513_c_6(mw_c6::numeric,mvar_c6::num
ric,kv_a9::numeric),\n" eric,kv_c6::numeric),\n"
+" +"
lb_c_0x_c_0(mw_c0::numeric,mvar_c0::numer lb_c_5l_c_4(mw_c4::numeric,mvar_c4::numeri
ic,kv_c0::numeric),\n" c,kv_c4::numeric),\n"
+" +"
lb_c_0x_l_2(mw_l2::numeric,mvar_l2::numeri lb_c_5l_c_5(mw_c5::numeric,mvar_c5::numeri
c,kv_l2::numeric),\n" c,kv_c5::numeric),\n"
+" +"
lb_c_0z_c_0(mw_c0::numeric,mvar_c0::numer lb_c_5x_a_7(mw_a7::numeric,mvar_a7::nume
ic,kv_c0::numeric),\n" ric,kv_a7::numeric),\n"
+" +"
lb_c_0z_l_3(mw_l3::numeric,mvar_l3::numeric lb_c_5x_c_5(mw_c5::numeric,mvar_c5::numer
,kv_l3::numeric),\n" ic,kv_c5::numeric),\n"
+" +"
lb_c_1x_c_1(mw_c1::numeric,mvar_c1::numer lb_c_7g_c_0(mw_c0::numeric,mvar_c0::numer
ic,kv_c1::numeric),\n" ic,kv_c0::numeric),\n"

A111
+" +"
lb_c_7g_c_7(mw_c7::numeric,mvar_c7::numer lb_l_4x_l_5(mw_l5::numeric,mvar_l5::numeric
ic,kv_c7::numeric),\n" ,kv_l5::numeric),\n"
+" +"
lb_c_8x_c_8(mw_c8::numeric,mvar_c8::numer lb_l_5x_a_1(mw_a1::numeric,mvar_a1::numer
ic,kv_c8::numeric),\n" ic,kv_a1::numeric),\n"
+" +"
lb_c_8x_l_1(mw_l1::numeric,mvar_l1::numeri lb_l_5x_l_5(mw_l5::numeric,mvar_l5::numeric
c,kv_l1::numeric),\n" ,kv_l5::numeric),\n"
+" +" -----------tramos
lb_c_9x_c_9(mw_c9::numeric,mvar_c9::numer intermedios---------------\n"
ic,kv_c9::numeric),\n" +"
+" ylw_a_1a_a_1_kv(mw_a1::numeric,mvar_a1::
lb_c_9x_l_1(mw_l1::numeric,mvar_l1::numeri numeric,kv_a1::numeric),\n"
c,kv_l1::numeric),\n" +"
+" ylw_a_2r_a_2_mw(mw_a2::numeric),ylw_a_2r
lb_l_2x_c_8(mw_c8::numeric,mvar_c8::numeri _a_2_mvar(mvar_a2::numeric),ylw_a_2r_a_2_kv(mw_a2:
c,kv_c8::numeric),\n" :numeric,mvar_a2::numeric,kv_a2::numeric),\n"
+" +"
lb_l_2x_l_2(mw_l2::numeric,mvar_l2::numeric ylw_a_4i_a_4_mw(mw_a4::numeric),ylw_a_4i
,kv_l2::numeric),\n" _a_4_mvar(mvar_a4::numeric),ylw_a_4i_a_4_kv(mw_a4:
+" :numeric,mvar_a4::numeric,kv_a4::numeric),\n"
lb_l_325xx_c_0(mw_c0::numeric,mvar_c0::nu +"
meric,kv_c0::numeric),\n" ylw_a_5r_a_5_mw(mw_a5::numeric),ylw_a_5r
+" _a_5_mvar(mvar_a5::numeric),ylw_a_5r_a_5_kv(mw_a5:
lb_l_325xx_l_3(mw_l3::numeric,mvar_l3::num :numeric,mvar_a5::numeric,kv_a5::numeric),\n"
eric,kv_l3::numeric),\n" +"
+" ylw_a_720_a_7_kv(mw_a7::numeric,mvar_a7:
lb_l_3b_l_3(mw_l3::numeric,mvar_l3::numeric :numeric,kv_a7::numeric),\n"
,kv_l3::numeric),\n" +"
+" ylw_a_9r_a_9_mw(mw_a9::numeric),ylw_a_9r
lb_l_3b_l_5(mw_l5::numeric,mvar_l5::numeric _a_9_mvar(mvar_a9::numeric),ylw_a_9r_a_9_kv(mw_a9:
,kv_l5::numeric),\n" :numeric,mvar_a9::numeric,kv_a9::numeric),\n"
+" +"
lb_l_3x_a_2(mw_a2::numeric,mvar_a2::numer ylw_a_990_a_9_mw(mw_a9::numeric),ylw_a_
ic,kv_a2::numeric),\n" 990_a_9_mvar(mvar_a9::numeric),ylw_a_990_a_9_kv(m
+" w_a9::numeric,mvar_a9::numeric,kv_a9::numeric),\n"
lb_l_3x_l_3(mw_a1::numeric,mvar_a1::numeri +"
c,kv_a1::numeric),\n" ylw_a_603_a_6_kv(mw_a6::numeric,mvar_a6:
+" :numeric,kv_a6::numeric),\n"
lb_l_4x_l_4(mw_l4::numeric,mvar_l4::numeric +"
,kv_l4::numeric),\n" ylw_a_835_a_8_mw(mw_a8::numeric),ylw_a_

A112
835_a_8_mvar(mvar_a8::numeric),ylw_a_835_a_8_kv(m _c_3_mvar(mvar_c3::numeric),ylw_c_3r_c_3_kv(mw_c3::
w_a8::numeric,mvar_a8::numeric,kv_a8::numeric),\n" numeric,mvar_c3::numeric,kv_c3::numeric),\n"
+" +"
ylw_a_8r_a_8_mw(mw_a8::numeric),ylw_a_8r ylw_c_3l_c_3_mw(mw_c3::numeric),ylw_c_3l
_a_8_mvar(mvar_a8::numeric),ylw_a_8r_a_8_kv(mw_a8: _c_3_mvar(mvar_c3::numeric),ylw_c_3l_c_3_kv(mw_c3::
:numeric,mvar_a8::numeric,kv_a8::numeric),\n" numeric,mvar_c3::numeric,kv_c3::numeric),\n"
+" +"
ylw_c_1r_c_1_mw(mw_c1::numeric),ylw_c_1r ylw_c_6q_c_6_mw(mw_c6::numeric),ylw_c_6
_c_1_mvar(mvar_c1::numeric),ylw_c_1r_c_1_kv(mw_c1:: q_c_6_mvar(mvar_c6::numeric),ylw_c_6q_c_6_kv(mw_c
numeric,mvar_c1::numeric,kv_c1::numeric),\n" 6::numeric,mvar_c6::numeric,kv_c6::numeric),\n"
+" +"
ylw_c_1t_c_1_mw(mw_c1::numeric),ylw_c_1t ylw_c_8c_c_8_mw(mw_c8::numeric),ylw_c_8c
_c_1_mvar(mvar_c1::numeric),ylw_c_1t_c_1_kv(mw_c1:: _c_8_mvar(mvar_c8::numeric),ylw_c_8c_c_8_kv(mw_c8::
numeric,mvar_c1::numeric,kv_c1::numeric),\n" numeric,mvar_c8::numeric,kv_c8::numeric),\n"
+" +"
ylw_c_5a_c_5_mw(mw_c5::numeric),ylw_c_5 ylw_c_916_c_9_mw(mw_c9::numeric),ylw_c_
a_c_5_mvar(mvar_c5::numeric),ylw_c_5a_c_5_kv(mw_c5 916_c_9_mvar(mvar_c9::numeric),ylw_c_916_c_9_kv(m
::numeric,mvar_c5::numeric,kv_c5::numeric),\n" w_c9::numeric,mvar_c9::numeric,kv_c9::numeric),\n"
+" +"
ylw_c_5e_c_5_kv(mw_c5::numeric,mvar_c5::n ylw_c_9r_c_9_mw(mw_c9::numeric),ylw_c_9r
umeric,kv_c5::numeric),\n" _c_9_mvar(mvar_c9::numeric),ylw_c_9r_c_9_kv(mw_c9::
+" numeric,mvar_c9::numeric,kv_c9::numeric),\n"
ylw_c_7i_c_7_mw(mw_c7::numeric),ylw_c_7i +"
_c_7_mvar(mvar_c7::numeric),ylw_c_7i_c_7_kv(mw_c7:: ylw_l_2r_l_2_mw(mw_l2::numeric),ylw_l_2r_l
numeric,mvar_c7::numeric,kv_c7::numeric),\n" _2_mvar(mvar_l2::numeric),ylw_l_2r_l_2_kv(mw_l2::nu
+" meric,mvar_l2::numeric,kv_l2::numeric),\n"
ylw_a_3e_c_7_kv(mw_c7::numeric,mvar_c7::n +"
umeric,kv_c7::numeric),\n" ylw_l_3r_l_3_mw(mw_l3::numeric),ylw_l_3r_l
+" _3_mvar(mvar_l3::numeric),ylw_l_3r_l_3_kv(mw_l3::nu
ylw_c_020aa_c_0_mw(mw_c0::numeric),ylw_ meric,mvar_l3::numeric,kv_l3::numeric),\n"
c_020aa_c_0_mvar(mvar_c0::numeric),ylw_c_020aa_c_0 +"
_kv(mw_c0::numeric,mvar_c0::numeric,kv_c0::numeric),\ ylw_l_4r_l_4_mw(mw_l4::numeric),ylw_l_4r_l
n" _4_mvar(mvar_l4::numeric),ylw_l_4r_l_4_kv(mw_l4::nu
+" meric,mvar_l4::numeric,kv_l4::numeric),\n"
ylw_c_020hj_c_0_kv(mw_c0::numeric,mvar_c +"
0::numeric,kv_c0::numeric),\n" ylw_l_5r_l_5_mw(mw_l5::numeric),ylw_l_5r_l
+" _5_mvar(mvar_l5::numeric),ylw_l_5r_l_5_kv(mw_l5::nu
ylw_c_3d_c_3_mw(mw_c3::numeric),ylw_c_3 meric,mvar_l5::numeric,kv_l5::numeric),\n"
d_c_3_mvar(mvar_c3::numeric),ylw_c_3d_c_3_kv(mw_c +"
3::numeric,mvar_c3::numeric,kv_c3::numeric),\n" ylw_l_545_l_5_mw(mw_l5::numeric),ylw_l_54
+" 5_l_5_mvar(mvar_l5::numeric),ylw_l_545_l_5_kv(mw_l5:
ylw_c_3r_c_3_mw(mw_c3::numeric),ylw_c_3r :numeric,mvar_l5::numeric,kv_l5::numeric)"

A113
+ " FROM data\n" 7;A-8;A-9;L-1;L-2;L-3;L-4;L-5;C-0;C-1;C-3;C-4;C-5;C-6;C-
+ " WHERE to_char(success_date, 'YYYY- 7;C-8;C-9;T-290;T-290;T-291;T-291;T-191;T-191;T-190;T-
MM-dd') between" + "'" + dateInit + "' AND '" + dateEnd + 190;T-390;T-390;A-1;A-2;A-4;A-5;A-6;A-7;A-8;A-9;L-1;L-
"';"); 2;L-3;L-4;L-5;C-0;C-1;C-3;C-4;C-5;C-6;C-7;C-8;C-9;A-830-A-
// Verificamos si existen resultados 1;A-1L-A-1;A-191-A-1;A-190-A-1;L-5X-A-1;A-830-A-8;A-1L-
if (main_result.size() > 0) { A-8;A-191-L-3;A-190-A-8;L-5X-L-5;L-3X-A-2;L-3X-L-3;A-4X-
String FileName = "report_eventos_" + A-4;A-4X-C-6;A-9X-A-5;A-5X-A-5;A-9X-A-9;A-5X-C-3;C-5X-
Long.toString(System.currentTimeMillis()) + ".txt"; A-7;C-5X-C-5;C-3F-A-6;C-4X-A-6;C-3F-C-3;C-4X-C-4;A-8X-
// Generamos el reporte A-8;A-8X-L-4;C-1X-C-1;C-3X-C-1;C-1X-C-4;C-3X-C-3;C-5L-C-

try (BufferedWriter bw = new 4;C-5L-C-5;C-513-C-6;C-513-C-5;C-7G-C-7;C-7G-C-0;C-0Z-

BufferedWriter(new FileWriter(FileName, true))) { C-0;C-0X-C-0;L-325XX-C-0;C-0Z-L-3;C-0X-L-2;L-325XX-L-


3;C-8X-C-8;L-2X-C-8;C-8X-L-1;L-2X-L-2;C-9X-L-1;C-9X-C-

bw.write("MW;MW;MW;MW;MW;MW;MW;MW;MW;M 9;L-3B-L-3;L-3B-L-5;L-4X-L-4;L-4X-L-5;A-1A;A-2R;A-2R;A-

W;MW;MW;MW;MW;MW;MW;MW;MW;MW;MW;MW; 2R;A-4I;A-4I;A-4I;A-5R;A-5R;A-5R;A-7;A-9;A-9;A-9;A-9;A-

MW;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR;MV 9;A-9;A-6;A-8;A-8;A-8;A-8;A-8;A-8;C-1;C-1;C-1;C-1;C-1;C-

AR;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR 1;C-5;C-5;C-5;C-5;C-7;C-7;C-7;C-7;C-0;C-0;C-0;C-0;C-3;C-

;MVAR;MVAR;MVAR;MVAR;MVAR;MVAR;KV;KV;KV;KV;K 3;C-3;C-3;C-3;C-3;C-3;C-3;C-3;C-6;C-6;C-6;C-8;C-8;C-8;C-

V;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV 9;C-9;C-9;C-9;C-9;C-9;L-2;L-2;L-2;L-3;L-3;L-3;L-4;L-4;L-4;L-

;MVAR;% DE CARGA;MVAR;% DE CARGA;MVAR;% DE 5;L-5;L-5;L-5;L-5;L-5");

CARGA;MVAR;% DE CARGA;MVAR;% DE CARGA;FECHA Y for (Map<String, Object> map : main_result)

HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y {

HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y bw.newLine();

HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y bw.write(map.get("mw_a1") + ";" +


HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y map.get("mw_a2") + ";" + map.get("mw_a4") + ";" +
HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y map.get("mw_a5") + ";" + map.get("mw_a6") + ";" +
HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y map.get("mw_a7") + ";" + map.get("mw_a8") + ";" +
HORA;FECHA Y HORA;FECHA Y HORA;FECHA Y map.get("mw_a9") + ";"
HORA;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;K + map.get("mw_l1") + ";" +
V;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV map.get("mw_l2") + ";" + map.get("mw_l3") + ";" +
;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV;KV; map.get("mw_l4") + ";" + map.get("mw_l5") + ";"
KV;KV;KV;MW;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV;K + map.get("mw_c0") + ";" +
V;MW;MVAR;KV;MW;MVAR;KV;KV;MW;MVAR;KV;MW;M map.get("mw_c1") + ";" + map.get("mw_c3") + ";" +
VAR;KV;MW;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV;KV; map.get("mw_c4") + ";" + map.get("mw_c5") + ";" +
MW;MVAR;KV;KV;MW;MVAR;KV;KV;MW;MVAR;KV;MW; map.get("mw_c6") + ";" + map.get("mw_c7") + ";" +
MVAR;KV;MW;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV;M map.get("mw_c8") + ";" + map.get("mw_c9") + ";"
W;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV + map.get("mvar_a1") + ";" +
;MW;MVAR;KV;MW;MVAR;KV;MW;MVAR;KV"); map.get("mvar_a2") + ";" + map.get("mvar_a4") + ";" +
bw.newLine(); map.get("mvar_a5") + ";" + map.get("mvar_a6") + ";" +
bw.write("A-1;A-2;A-4;A-5;A-6;A-7;A-8;A- map.get("mvar_a7") + ";" + map.get("mvar_a8") + ";" +
9;L-1;L-2;L-3;L-4;L-5;C-0;C-1;C-3;C-4;C-5;C-6;C-7;C-8;C- map.get("mvar_a9") + ";"
9;A-1;A-2;A-4;A-5;A-6;A-7;A-8;A-9;L-1;L-2;L-3;L-4;L-5;C-
0;C-1;C-3;C-4;C-5;C-6;C-7;C-8;C-9;A-1;A-2;A-4;A-5;A-6;A-

A114
+ map.get("mvar_l1") + ";" + + map.get("lb_a_830_a_1") + ";" +
map.get("mvar_l2") + ";" + map.get("mvar_l3") + ";" + map.get("lb_a_1l_a_1") + ";" + map.get("lb_a_191_a_1")
map.get("mvar_l4") + ";" + map.get("mvar_l5") + ";" + ";" + map.get("lb_a_190_a_1") + ";" +
+ map.get("mvar_c0") + ";" + map.get("lb_l_5x_a_1") + ";" + map.get("lb_a_830_a_8")
map.get("mvar_c1") + ";" + map.get("mvar_c3") + ";" + + ";" + map.get("lb_a_1l_a_8") + ";" +
map.get("mvar_c4") + ";" + map.get("mvar_c5") + ";" + map.get("lb_a_191_l_3") + ";" +
map.get("mvar_c6") + ";" + map.get("mvar_c7") + ";" + map.get("lb_a_190_a_8") + ";"
map.get("mvar_c8") + ";" + map.get("mvar_c9") + ";" + map.get("lb_l_5x_l_5") + ";" +
+ map.get("kv_a1") + ";" + map.get("lb_l_3x_a_2") + ";" + map.get("lb_l_3x_l_3") +
map.get("kv_a2") + ";" + map.get("kv_a4") + ";" + ";" + map.get("lb_a_4x_a_4") + ";" +
map.get("kv_a5") + ";" + map.get("kv_a6") + ";" + map.get("lb_a_4x_c_6") + ";" + map.get("lb_a_9x_a_5") +
map.get("kv_a7") + ";" + map.get("kv_a8") + ";" + ";" + map.get("lb_a_5x_a_5") + ";" +
map.get("kv_a9") + ";" map.get("lb_a_9x_a_9") + ";" + map.get("lb_a_5x_c_3") +
+ map.get("kv_l1") + ";" + ";"
map.get("kv_l2") + ";" + map.get("kv_l3") + ";" + + map.get("lb_c_5x_a_7") + ";" +
map.get("kv_l4") + ";" + map.get("kv_l5") + ";" map.get("lb_c_5x_c_5") + ";" + map.get("lb_c_3f_a_6") +
+ map.get("kv_c0") + ";" + ";" + map.get("lb_c_4x_a_6") + ";" +
map.get("kv_c1") + ";" + map.get("kv_c3") + ";" + map.get("lb_c_3f_c_3") + ";" + map.get("lb_c_4x_c_4") +
map.get("kv_c4") + ";" + map.get("kv_c5") + ";" + ";" + map.get("lb_a_8x_a_8") + ";" +
map.get("kv_c6") + ";" + map.get("kv_c7") + ";" + map.get("lb_a_8x_l_4") + ";" + map.get("lb_c_1x_c_1") +
map.get("kv_c8") + ";" + map.get("kv_c9") + ";" ";"
+ map.get("t290_mva") + ";" + + map.get("lb_c_3x_c_1") + ";" +
map.get("t290_percent") + ";" + map.get("t291_mva") + map.get("lb_c_1x_c_4") + ";" + map.get("lb_c_3x_c_3") +
";" + map.get("t291_percent") + ";" + ";" + map.get("lb_c_5l_c_4") + ";" +
map.get("t191_mva") + ";" + map.get("t191_percent") + map.get("lb_c_5l_c_5") + ";" + map.get("lb_c_513_c_6")
";" + map.get("t190_mva") + ";" + + ";" + map.get("lb_c_513_c_5") + ";" +
map.get("t190_percent") + ";" + map.get("t390_mva") + map.get("lb_c_7g_c_7") + ";" + map.get("lb_c_7g_c_0") +
";" + map.get("t390_percent") + ";" ";"
+ map.get("date_a1") + ";" + + map.get("lb_c_0z_c_0") + ";" +
map.get("date_a2") + ";" + map.get("date_a4") + ";" + map.get("lb_c_0x_c_0") + ";" +
map.get("date_a5") + ";" + map.get("date_a6") + ";" + map.get("lb_l_325xx_c_0") + ";" + map.get("lb_c_0z_l_3")
map.get("date_a7") + ";" + map.get("date_a8") + ";" + + ";" + map.get("lb_c_0x_l_2") + ";" +
map.get("date_a9") + ";" map.get("lb_l_325xx_l_3") + ";" +
+ map.get("date_l1") + ";" + map.get("lb_c_8x_c_8") + ";" + map.get("lb_l_2x_c_8") +
map.get("date_l2") + ";" + map.get("date_l3") + ";" + ";" + map.get("lb_c_8x_l_1") + ";"
map.get("date_l4") + ";" + map.get("date_l5") + ";" + map.get("lb_l_2x_l_2") + ";" +
+ map.get("date_c0") + ";" + map.get("lb_c_9x_l_1") + ";" + map.get("lb_c_9x_c_9") +
map.get("date_c1") + ";" + map.get("date_c3") + ";" + ";" + map.get("lb_l_3b_l_3") + ";" +
map.get("date_c4") + ";" + map.get("date_c5") + ";" + map.get("lb_l_3b_l_5") + ";" + map.get("lb_l_4x_l_4") +
map.get("date_c6") + ";" + map.get("date_c7") + ";" + ";" + map.get("lb_l_4x_l_5") + ";"
map.get("date_c8") + ";" + map.get("date_c9") + ";" + map.get("ylw_a_1a_a_1_kv") + ";"

A115
+ map.get("ylw_a_2r_a_2_mw") + ";" + map.get("ylw_c_3d_c_3_mw") + ";"
+ map.get("ylw_a_2r_a_2_mvar") + ";" + + map.get("ylw_c_3d_c_3_mvar") + ";" +
map.get("ylw_a_2r_a_2_kv") + ";" map.get("ylw_c_3d_c_3_kv") + ";"
+ map.get("ylw_a_4i_a_4_mw") + ";" + map.get("ylw_c_3r_c_3_mw") + ";"
+ map.get("ylw_a_4i_a_4_mvar") + ";" + + map.get("ylw_c_3r_c_3_mvar") + ";" +
map.get("ylw_a_4i_a_4_kv") + ";" map.get("ylw_c_3r_c_3_kv") + ";"
+ map.get("ylw_a_5r_a_5_mw") + ";" + map.get("ylw_c_3l_c_3_mw") + ";"
+ map.get("ylw_a_5r_a_5_mvar") + ";" + + map.get("ylw_c_3l_c_3_mvar") + ";" +
map.get("ylw_a_5r_a_5_kv") + ";" map.get("ylw_c_3l_c_3_kv") + ";"
+ map.get("ylw_a_720_a_7_kv") + ";" + map.get("ylw_c_6q_c_6_mw") + ";"
+ map.get("ylw_a_9r_a_9_mw") + ";" + map.get("ylw_c_6q_c_6_mvar") + ";" +
+ map.get("ylw_a_9r_a_9_mvar") + ";" + map.get("ylw_c_6q_c_6_kv") + ";"
map.get("ylw_a_9r_a_9_kv") + ";" + map.get("ylw_c_8c_c_8_mw") + ";"
+ map.get("ylw_a_990_a_9_mw") + + map.get("ylw_c_8c_c_8_mvar") + ";" +
";" + map.get("ylw_a_990_a_9_mvar") + ";" + map.get("ylw_c_8c_c_8_kv") + ";"
map.get("ylw_a_990_a_9_kv") + ";" + map.get("ylw_c_916_c_9_mw") +
+ map.get("ylw_a_603_a_6_kv") + ";" ";" + map.get("ylw_c_916_c_9_mvar") + ";" +
+ map.get("ylw_a_835_a_8_mw") + map.get("ylw_c_916_c_9_kv") + ";"
";" + map.get("ylw_a_835_a_8_mvar") + ";" + + map.get("ylw_c_9r_c_9_mw") + ";"
map.get("ylw_a_835_a_8_kv") + ";" + map.get("ylw_c_9r_c_9_mvar") + ";" +
+ map.get("ylw_a_8r_a_8_mw") + ";" map.get("ylw_c_9r_c_9_kv") + ";"
+ map.get("ylw_a_8r_a_8_mvar") + ";" + + map.get("ylw_l_2r_l_2_mw") + ";" +
map.get("ylw_a_8r_a_8_kv") + ";" map.get("ylw_l_2r_l_2_mvar") + ";" +
+ map.get("ylw_c_1r_c_1_mw") + ";" map.get("ylw_l_2r_l_2_kv") + ";"
+ map.get("ylw_c_1r_c_1_mvar") + ";" + + map.get("ylw_l_3r_l_3_mw") + ";" +
map.get("ylw_c_1r_c_1_kv") + ";" map.get("ylw_l_3r_l_3_mvar") + ";" +
+ map.get("ylw_c_1t_c_1_mw") + ";" map.get("ylw_l_3r_l_3_kv") + ";"
+ map.get("ylw_c_1t_c_1_mvar") + ";" + + map.get("ylw_l_4r_l_4_mw") + ";" +
map.get("ylw_c_1t_c_1_kv") + ";" map.get("ylw_l_4r_l_4_mvar") + ";" +
+ map.get("ylw_c_5a_c_5_mw") + ";" map.get("ylw_l_4r_l_4_kv") + ";"
+ map.get("ylw_c_5a_c_5_mvar") + ";" + + map.get("ylw_l_5r_l_5_mw") + ";" +
map.get("ylw_c_5a_c_5_kv") + ";" map.get("ylw_l_5r_l_5_mvar") + ";" +
+ map.get("ylw_c_5e_c_5_kv") + ";" map.get("ylw_l_5r_l_5_kv") + ";"
+ map.get("ylw_c_7i_c_7_mw") + ";" + map.get("ylw_l_545_l_5_mw") + ";"
+ map.get("ylw_c_7i_c_7_mvar") + ";" + + map.get("ylw_l_545_l_5_mvar") + ";" +
map.get("ylw_c_7i_c_7_kv") + ";" map.get("ylw_l_545_l_5_kv")
+ map.get("ylw_a_3e_c_7_kv") + ";" );
+ map.get("ylw_c_020aa_c_0_mw") + }
";" + map.get("ylw_c_020aa_c_0_mvar") + ";" + bw.close();
map.get("ylw_c_020aa_c_0_kv") + ";" File file = new File(FileName);
+ map.get("ylw_c_020hj_c_0_kv") + Desktop desktop = Desktop.getDesktop();
";" desktop.open(file);

A116
} catch (IOException e) { FileChooser fileChooser = new FileChooser();
e.printStackTrace(); fileChooser.setTitle("Open CSV File");
} Button button = new Button("Seleccionar archivo");
} else { fileChooser.getExtensionFilters().addAll(
showAlert(Alert.AlertType.INFORMATION, new FileChooser.ExtensionFilter("CSV Files",
scene.getWindow(), "Resultado!", "No se encontraron "*.csv")
registros " );
+ "para el rango de fechas: " + dateInit + " button.setOnAction(e -> {
- " + dateEnd); fileChooser.showOpenDialog(this);
return; });
} pane.add(button, 1, 1);
} // Status message text
}); actionStatus = new Text("HOLA QUE TAL");
// Agregamos los datos de la ventana actionStatus.setFont(Font.font("Calibri",
this.setScene(scene); FontWeight.NORMAL, 20));
this.setTitle("Lectura de eventos"); actionStatus.setFill(Color.FIREBRICK);
this.setMaxWidth(300);
this.setMaxHeight(300); pane.add(actionStatus, 1, 2);
this.setMinWidth(300); root.getChildren().add(pane);
this.setMinHeight(300); Scene scene = new Scene(root, 300, 300);
this.setMaximized(false); this.setScene(scene);
this.setResizable(false); this.setTitle("Introducir datos al sistema");
// Mostramos la ventana this.setMaxWidth(300);
this.show(); this.setMaxHeight(300);
} this.setMinWidth(300);
this.setMinHeight(300);
--CARGA DE NUEVA DATA— this.setMaximized(false);
public class UploadData extends Stage { this.setResizable(false);
private Text actionStatus; this.show();
}
public UploadData() {

StackPane root = new StackPane();


GridPane pane = new GridPane();
pane.setAlignment(Pos.CENTER);
pane.setHgap(10);
pane.setVgap(10);
pane.setPadding(new Insets(25, 25, 25, 25));
Text sceneTitle = new Text("Introducción de datos");
sceneTitle.setFont(Font.font("Arial",
FontWeight.NORMAL, 20));
pane.add(sceneTitle, 0, 0, 2, 1);

A117
ANEXO 4 CONTINGENCIAS numeric,
numeric,
-- Function: contingencia_sin(numeric, numeric)
numeric)
RETURNS numeric AS
-- DROP FUNCTION contingencia_sin(numeric, numeric);
$BODY$
DECLARE
CREATE OR REPLACE FUNCTION contingencia_sin(
_mw_terminal alias for $1;
numeric,
_mvar_terminal alias for $2;
numeric)
_kv_terminal alias for $3;
RETURNS numeric AS
_mw_nodo alias for $4;
$BODY$
_mvar_nodo alias for $5;
DECLARE
_kv_terminal_final alias for $6;
_mw alias for $1;
_long_estado_normal alias for $7;
_mvar alias for $2;
_long_tramo alias for $8;
BEGIN
BEGIN
RETURN (SELECT
RETURN (SELECT
SIN(ACOS(COS(ATAN(_mvar/_mw)))));
((((contingencia_c(_mw_terminal,_mvar_terminal,_kv_te
EXCEPTION when others then
rminal))^2)*(0.208 + 0.084)*(_long_estado_normal/3))
RAISE INFO 'Error Name:%',SQLERRM;
+
RAISE INFO 'Error State:%', SQLSTATE;
((contingencia_c(_mw_terminal,_mvar_terminal,
return 0;
_kv_terminal))*(contingencia_c(_mw_nodo,_mvar_nodo,
END;$BODY$
_kv_terminal_final))*(SIN((ASIN(contingencia_sin(_mw_n
LANGUAGE plpgsql VOLATILE
odo,_mvar_nodo))) -
COST 100;
(ACOS(contingencia_sin(_mw_terminal,_mvar_terminal)))
ALTER FUNCTION contingencia_sin(numeric, numeric)
))*(0.208 + 0.084)*(_long_estado_normal))
OWNER TO root;
+ (((contingencia_c(_mw_nodo,_mvar_nodo,
_kv_terminal_final))^2) * (0.208 + 0.084) *
-- Function: contingencia_perdida_terminal_sin(numeric,
(_long_estado_normal))
numeric, numeric, numeric, numeric, numeric, numeric,
+ (((contingencia_c(_mw_nodo,_mvar_nodo,
numeric)
_kv_terminal_final))^2) * (0.208 + 0.084) * (_long_tramo)
* (3/1000000))
-- DROP FUNCTION
));
contingencia_perdida_terminal_sin(numeric, numeric,
EXCEPTION when others then
numeric, numeric, numeric, numeric, numeric, numeric);
RAISE INFO 'Error Name:%',SQLERRM;
RAISE INFO 'Error State:%', SQLSTATE;
CREATE OR REPLACE FUNCTION