Skip to main content

Module for dimensioning copper electrical conductors

Project description

PyEWS

PyPI version Downloads Downloads versons of python supported MaintainabilityCodacy Badge

Python Electrical Wire Sizes

Esta idea nace debido a la popularidad de Python y de encontrar una utilidad adecuada dentro del área de ingeniería eléctrica en la especialidad de diseño de instalaciones eléctricas. En la práctica esta librería le será útil cuando trate de dimensionar una cantidad considerable de alimentadores como circuitos derivados.

Electrical Wires Sizes es una librería hecha en el lenguaje de programación Python y fue creada con la finalidad de acortar el tiempo en el dimensionamiento de conductores eléctricos u obtención de las secciones de los conductores de una instalación eléctrica.

La librería cuenta por el momento con 8 módulos que internamente son llamados para realizar el dimensionamiento de conductores en baja tensión para conductores comerciales de 600 V a 2000 V, los resultados obtenidos se muestran en forma matricial o tabla para una mejor comprensión de los resultados.

La versión disponible la puedes consular mediante :

import PyEWS
PyEWS.version()

Donativos

¿Te gusta este proyecto?, puedes apoyarme mediante

La vida es como una batería y en cada momento uno va perdiendo una pequeña parte de esta cada día, puedes apoyarme en el desarrollo de este proyecto y motivar aún más mi creatividad para que sea de gran utilidad esta herramienta.

El apoyo es mediante un café :

       ─▄▀─▄▀
       ──▀──▀
       █▀▀▀▀▀█▄
       █░░░░░█─█
       ▀▄▄▄▄▄▀▀
   Url para donativos      
https://ko-fi.com/jacometoss                     

Este donativo es mínimo pero ayuda a mi creatividad.

Instalación

La instalación del módulo se realiza con :

pip install ElectricalWireSizes

Iniciar paquete de instalación

El módulo tiene dependencias siendo necesario instalar tabulate el cual da una mejor apariencia al momento de mostrar los resultados.

#VF: Tensión de fase o en su defecto tensión de línea para sistemas de 1F2H, 2F.
#VL: Tensión de línea.
#In: Corriente nominal total de una de las fases.
#Nc: Número de conductores por fase.
#L : Longitud en metros.
#FA: Número de conducrtores activos en el tubo conduit.
#Type: Tipo de tubo conduit (1:PVC,2:AL,3:ACERO)
#Ta: Temperatura ambiente en centigrados, únicamente ingresar la opcion númerica.
---- 1:20 2:25 3:30 4:35 5:40 6:45 7:50 8:55 9:60 10:65 11:70 12:75
#Vd: Caída de tensión (porcentual de 2, 3, 5)
---- 2,3,5	
#S:  Seleccione el sistema que desea propner en base a este se muestran los resultados.
---- 1:(1F-2H) 2:(2F-3H) 3:(3F-3H) 4:(3F-4H)
#Fp: Factor de potencia
#Op: Opción para mostrar resultados
	 1: Mostrar los resultados adecuadamente estructurado en una tabla. 
	 2: Mostrar los resultados como datos acumulados. Esta opción es necesario cuando se activa
	 	la función para múltiples cargas.
#Fsc: Factor de sobrecorriente (1.25,1.0)
import PyEWS
#Para conductores de cobre
PyEWS.mbtcu(VF,VL,In,Nc,L,FA,Type,Ta,Vd,S,Fp,Op,Fsc)
#Para conductores de aluminio
PyEWS.mbtal(VF,VL,In,Nc,L,FA,Type,Ta,Vd,S,Fp,Op,Fsc)

El módulo de corriente directa necesita la información siguiente :

#MODBTCUSTD(Vcd,In,Nc,L,Class,Ta,Vd,View,Fsc):
#Vcd   :  Tensión en corriente directa.
#In    :  Corriente directa del circuito.
#Nc    :  Número de conductores en corriente directa.
#L     :  Longitud del circuito en metros.
#Class :  Clase de conductor A:1 B:2 y C:3.
#Ta	   :  Temperatura ambiente 
#Vd	   :  Caída de tensión.
#View  :  Mostrar los resultados adecuadamente en una tabla con 1 para multiples cargas debe ser 2.
#Fsc   :  Factor de sobrecorrriente

PyEWS.mbtcustd(1200,145,1,100,1,25,3,1,1.25)

PyEWS Módulos

Id Descripción Módulo
1 Módulo de baja tensión para conductores de cobre clase B, C y D tensión de 600V a 2000V. mbtcu()
2 Módulo de baja tensión para conductores de aluminio clase B, C y D, tensión 600V a 2000V. mbtal()
3 Módulo de baja tensión para conductores de cobre clase B, C y D en CD hasta 2000 V. mbtcustd()
4 Módulo para el cálculo de la impedancia para conductores de cobre. zpucu()
5 Módulo para el cálculo de la impedancia para conductores de aluminio. zpual()
6 Módulo para dimensionar múltiples conductores de cobre y aluminio., corriente alterna. dbcircuit()
7 Módulo para dimensionar múltiples conductores de cobre, corriente directa. dbcircuitcd()
8 Módulo para graficar resultados graph()

Test

El módulo tiene dependencias por lo que es necesario instalar tabulate el cual da una mejor apariencia al momento de mostrar los resultados.

from PyEWS impor mbtcu
mbtcu(127,220,15,1,22,1,1,35,3,1,0.9,1,1.25)

Los se resultados muestran con la iteración de todos los conductores tanto para tensión monofásica como trifásica.

  • Vd (Voltage Drop) es la pérdida de tensión porcentual

  • 60,75,90 la ampacidad real de los conductores.

  • Nc es el número de conductores por fase.

  • Op muestra si el resultado es correcto al aparecer en la columna la palabra en ingles Yes .

  • ITM es la protección del circuito.

    Se puede observar en la columna %VD 1F-2H seleccionada la pérdida de tensión es aceptable con respecto a la mínima ingresada del %3. La confirmación de un resultado es aceptable se visualiza en la columna OP . Al utilizar la opción de múltiples cargas podrá mostrar el resumen y el desglose como se muestra en la tabla.

Resultados

El circuito mostrado es la solución y para ver el resumen este fue agregado para la opción multiples cargas.

Base de datos de conductores

Para poder ampliar el módulo se agregó la tabla de conductores donde incluye las resistencias y reactancias como ampacidades. Ingrese el código mostrado para visualizar la tabla completa.

import PyEWS
#1 Conductores de cobre, 
#2 conductores de aluminio, 
#3 conductores de cobre estandar para corriente directa.
PyEWS.dbc(1)

Múltiples cargas en corriente alterna

Para implementar una gran variedad de cargas se organizan como se muestra en el bloque de código, puede agregar hasta indefinido número de cargas en está nueva versión (0.1.21rc1).

from PyEWS import mbtcu, dbcircuit
carga=[
     ["1",127,220,15,1,22,1,1,35,3,1,0.9,2,1.25],
     ["2",127,220,12,1,10,1,1,25,3,1,0.9,2,1.25],
     ["3",127,220,22,1,15,1,1,25,3,1,0.9,2,1.25],
     ["4",127,220,22,1,15,1,1,25,3,1,0.9,2,1.25],
     ["4",127,220,22,1,20,1,1,25,3,1,0.9,2,1.25],
     ["6",127,220,22,1,10,1,1,25,3,1,0.9,2,1.25],
     ["7",127,220,22,1,30,1,1,25,3,1,0.9,2,1.25],
     ["8",127,220,22,1,25,1,1,25,3,1,0.9,2,1.25],
     ["9",127,220,15,1,31,1,1,35,3,1,0.9,2,1.25],    
     ["10",127,220,22,1,14,1,1,25,3,1,0.9,2,1.25],
     ["11",127,220,15,1,20,1,1,35,3,1,0.9,2,1.25],
     ["12",127,220,22,1,32,1,1,25,3,1,0.9,2,1.25],
     ["13",127,220,22,1,25,1,1,25,3,1,0.9,2,1.25],
     ["14",127,220,22,1,24,1,1,25,3,1,0.9,2,1.25],
     ["15",127,220,22,1,18,1,1,25,3,1,0.9,2,1.25],
     ["16",127,220,22,1,17,1,1,25,3,1,0.9,2,1.25],
     ["17",127,220,22,1,12,1,1,25,3,1,0.9,2,1.25],    
     ["18",127,220,22,1,10,1,1,25,3,1,0.9,2,1.25],
     ["19",127,220,22,1,21,1,1,25,3,1,0.9,2,1.25],
     ["20",127,220,196,3,55,0.8,3,75,3,3,0.9,2,1.25]
    ]
#Una forma sencilla de mostrar el total de cargas
print("Total de cargas : ",len(carga))
#Para mostar completo el desarrollo
#----------dbcircuit(carga,1,1) #Cobre
#----------dbcircuit(carga,1,2) #Aluminio
#Para mostar el resumen únicamente 
#----------dbcircuit(carga,2,1) #Cobre
#----------dbcircuit(carga,2,2) #Aluminio

Para mostrar el resumen para conductores de cobre

dbcircuit(carga,2,1)
Resultados

Para mostrar el resumen para conductores de aluminio

dbcircuit(carga,2,2)

Resultados

Múltiples cargas en corriente directa

Para implementar una gran variedad de cargas se organizan como se muestra en el bloque de código, puede agregar hasta 25 cargas.

from PyEWS import dbcircuitcd
#(Vcd,In,Nc,L,Class,Ta,Vd,View):
cargacd=[
    ["1",1200,30,1,100,1,25,3,2,1],
    ["2",1200,30,1,100,1,25,3,2,1],
    ["3",1200,30,1,100,1,25,3,2,1],
    ["4",1200,30,1,100,1,25,3,2,1],
    ["5",1200,30,1,100,1,25,3,2,1],
    ["6",1200,30,1,100,1,25,3,2,1],
    ["7",1200,30,1,100,1,25,3,2,1],
    ["8",1200,30,1,100,1,25,3,2,1],
    ["9",1200,30,1,100,1,25,3,2,1],
    ["10",1200,30,1,100,1,25,3,2,1],
    ["11",1200,30,1,100,1,25,3,2,1],
    ["12",1200,30,1,100,1,25,3,2,1],
    ["13",1200,30,1,100,1,25,3,2,1],
    ["14",1200,30,1,100,1,25,3,2,1]
    ]
print("Total de cargas : ",len(cargacd))
dbcircuitcd(cargacd,2,1)

#Para mostar completo el desarrollo
#----------dbcircuitcd(carga,1,1) #Cobre Estándar
#----------dbcircuitcd(carga,1,2) #Aluminio No disponible
#Para mostar el resumen únicamente 
#----------dbcircuitcd(carga,2,1) #Cobre Estándar
#----------dbcircuitcd(carga,2,2) #Aluminio No disponible

Para mostrar el resumen para conductores de cobre estándar

dbcircuitcd(cargacd,2,2)

MODBTCD

Impedancia unitaria

Para obtener las constantes únicamente utilice las líneas siguientes

from PyEWS import zpucu, zpual
#ZpuCu(Type,Ta,Fp,View)
zpucu(1,10,0.9,1) 
#ZpuAl(Type,Ta,Fp,View)
zpual(1,10,0.9,1) 
Zpu

Graficar resultados

Mediante matplotlib ynumpy es posible obtener gráficos, la instalación de esta librería es automática al instalar ElectricalWireSizes.

Es posible graficar los resultados de pérdida de tensión de un único cálculo por el momento como se muestra en la figura siguiente :

graph

Esta limitado para conductores en corriente alterna, el procedimiento para generar la figura es mediante :

from PyEWS import mbtal, graph
mydata=mbtal(127,220,55,1,45,1,1,35,3,1,0.9,2,1)
graph(mydata,"6 AWG","4/0 AWG", 8, 5, 2,"k",1)

El llenado del módulo es un poco complejo

  • Realice un cálculo para conductores de cobre, en el ejemplo se guardo en mydata .

  • Llamamos al módulo llenamos como se indica

    graph(mydata,"Calibre Inicial","Calibre Final", Ancho, Alto, Aluminio/Cobre, "Color",Sistema)
    

    Los calibres deben ir como se muestra en los resultados y entre comillas dobles indicando un conductor inicial y final disponible, el ancho y alto son pulgadas en formato integer o float. Dependiendo el material del conductor (1:Cobre, 2:Aluminio) y el color de las barras puede usar k: negro, b: azul, g:verde, r:rojo que son estándar en reportes, finalmente el sistema 1:1F-2H,2:2F-3H,3:3F-3H y 4:3F:4H.

    No olvide que el arreglo de datos mydata debe ser correcto y definido.

Referencias

[1] Norma Oficial Mexicana NOM-001-SEDE-2012, Instalaciones Eléctricas (utilización)

[2] Thue, W., 1978. Electrical Power Cable Engineering. 2nd ed. New York, Basel: Marcel Dekker Inc., p.34.

[3] Norma Oficial Mexicana NOM-001-SEDE-2018, Instalaciones Eléctricas (utilización)

Acerca de la versión

La presente versión tiene corrección de entrada de parámetros.

[Packqge]: ElectricalWireSizes 0.1.21rc1
[Autor]: Marco Polo Jácome Toss
[Licencia]: GNU General Public License v3.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ElectricalWireSizes-0.1.21rc1.tar.gz (34.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page