American Public Power Association tools




Pay Notebook Creator: Salah Ahmed0
Set Container: Numerical CPU with TINY Memory for 10 Minutes 0
Total0

CONDUCTOR TEMPERATURE RISE PROGRAM

This program was originally written in Fortran in 1989 by David R. Brown and the American Public Power Association.

The following sources provided data on the electrical properties of different conductors:

  • AL/ACSR data: Aluminum Electrical Conductor Handbook, 1982.
  • Alumoweld data: Copperweld Steel Company, Southern Division, Fayetteville, TN.
  • Steel data: Mechanical Data from ASTM Standards, ASTM Standard A475.
  • CU data: Westinghouse T&D Reference, 1964, ABB Power Systems Inc.

THE PROGRAM CALCULATES CONDUCTOR TEMPERATURE VS CONDUCTOR CURRENT FOR VARIOUS CONDITIONS INCLUDING A SPECIFIED AMBIENT TEMPERATURE.

{TAMBC : AMBIENT TEMPERATURE IN DEGREES C}

{WVEL : WIND VELOCITY PERPENDICULAR TO THE DIRECTION OF THE LINE}

{EE : COEFFICIENT OF EMISSIVITY}

{HE : ELEVATION (FEET) OF LINE ABOVE SEA LEVEL.}

THE PROGRAM ALLOWS FOR SOLAR HEATING EFFECTS BASED ON ALTITUDES AND AZIMUTHS OF THE SUN AT VARIOUS LATITUDES IN THE NORTHERN HEMISPHERE FROM JUNE 10 TO JULY 3.

{NSOL : TO INCLUDE SOLAR EFFECTS, ENTER A 1. TO NEGLECT SOLAR EFFECTS, ENTER A 2.}

If solar effects are included enter the following inputs

{EA : COEFF. OF SOLAR ABSORPTION (0.23 TO 0.91)}

{Z1 : ENTER THE LINE DIRECTION (AZIMUTH) IN DEGREES. (A LINE RUNNING W TO E HAS AN AZIMUTH OF 90 DEGREES. A LINE RUNNING S TO N HAS AN AZIMUTH OF 0 DEGREES.) ENTER A VALUE FROM 0 T0 90 DEGREES.}

{CLAT : ENTER THE LATITUDE OF THE LINE IN DEGREES NORTH, 20 TO 70 DEGREES.}

{STIME : ENTER LOCAL SUN TIME FROM 10 AM TO 2 PM. ENTER AS DECIMAL ? I.E., 10:30 AM = 10.5, 1:45 PM = 1.75, ETC.}

{NATM : SELECT TYPE ATMOSPHERE. ? FOR PREDOMINATELY CLEAR TYPE A 1. FOR PREDOMINATELY INDUSTRIAL TYPE A 2.}

In [1]:
# Click the Blue Plane to preview this as a CrossCompute tool
conductor_table_path = 'conductors.csv'
aux1_table_path = 'aux1.csv'

phase_table_path = 'phases.csv'
shield_table_path = 'shields.csv'
span_table_path = 'spans.csv'


HE = 0
EE = .5
WVEL = 2
TAMBC = 40
NSOL = 1 # 1 or 2
# if nsol == 1
Z1 = 0 # 0 to 90 degrees
EA = .5
CLAT = 20 # 20 to 70
STIME = 10 # 10am to 2 pm as decimal
NATM = 1 # 1 or 2


target_folder = '/tmp'
In [2]:
NSOL = 1 if int(NSOL) == 1 else 2
NATM = 1 if int(NATM) == 1 else 2
In [3]:
from os.path import join
output_text_path = join(target_folder, 'ctemp.log')
target_text_path = join(target_folder, 'ctemp.txt')
In [4]:
from macros import transmogrify_conductors, transmogrify_aux1
conductor_text_path = transmogrify_conductors(join(
    target_folder, 'conductors.dat'), conductor_table_path)
aux1_text_path = join(
    target_folder, 'aux1.dat')
_ = transmogrify_aux1(aux1_text_path, aux1_table_path)
In [5]:
from macros import transmogrify_pylons
pylon_text_path = transmogrify_pylons(join(
    target_folder, 'pylons.dat',
), phase_table_path, shield_table_path, span_table_path)
In [6]:
from subprocess import run

executable = 'ctemp.out'
script = 'ctemp.f'

output_text = run([
    'gfortran',
    '-o',
    executable,
    script,])
In [7]:
from os.path import expanduser
from subprocess import check_output, STDOUT
output_text = check_output([
    join('.', executable),
    conductor_text_path,
    aux1_text_path,
    pylon_text_path,
    expanduser(target_text_path),
    str(Z1),
    str(EA),
    str(HE),
    str(EE),
    str(WVEL),
    str(TAMBC),
    str(NSOL), 
    str(CLAT),
    str(STIME),
    str(NATM),
], stderr=STDOUT)
with open(output_text_path, 'wb') as output_file:
    output_file.write(output_text)
In [8]:
print('output_text_path = ' + output_text_path)
print('target_text_path = ' + target_text_path)
output_text_path = /tmp/ctemp.log
target_text_path = /tmp/ctemp.txt