The Museum of HP Calculators


Two-bus AC Power Transfer for the HP-32S

This program is by Karl Schneider and is used here by permission.

This program is supplied without representation or warranty of any kind. Karl Schneider and The Museum of HP Calculators therefore assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from the use of this program material or any part thereof.

Overview

PROGRAM FUNCTION: Calculates transfer of complex power between two AC buses

DESIGNED FOR: HP-32S

DIRECTLY PORTABLE TO: HP-32SII and HP-33S (in RPN mode)

SIMILAR PROGRAMS TAILORED FOR: HP-32SII and HP-33S

FUNCTIONAL DESCRIPTION:

This program calculates the total active (real) power "P" and reactive power "Q" injected into either end of an AC line or pair of paralleled AC lines joined by two buses. The AC line(s) may be three-phase or single-phase.

Each AC line is modeled with one set of "balanced-pi" parameters of series resistance, series reactance, and shunt susceptance. The AC bus voltages are defined in terms of rms magnitudes and a phase-angle difference.

The program includes a routine "Z" that will calculate the equivalent parameters of a parallel line-pair, if needed. The user may also run "Z" separately as a stand-alone program.

RESOURCES:

Total storage:260.5 bytes
Program labels:4 (180.5 bytes)
Stored variables:10 ( 80.0 bytes)
Flags:1 (flag 2)

PROGRAM CODE SUMMARY:

LabelBytesChecksumDescription
S19.5AB50Starts program; prompts for input variables
C48.0D65ADrives calculation of the output variables
P59.0A029Calculates all injections of real and reactive power
Z54.05613Calculates equivalent parameters of line-pair

INPUT VARIABLES (in order of entry):

VariableDescriptionUnit of measureNotes
VVoltage magnitude at first bus[per unit](1)
WVoltage magnitude at second bus[per unit](1)
DVoltage-angle difference between buses[degrees](2)
RSeries resistance of line[per unit](3)
XSeries reactance of line[per unit](3)
BTotal shunt susceptance of line[per unit](4)
RSeries resistance of second line[per unit](3,5)
XSeries reactance of second line[per unit](3,5)
BTotal shunt susceptance of second line[per unit](4,5)
Notes
(1)1-phase lines: Base voltage is rms nominal line-ground (LG) voltage
3-phase lines: Base voltage is rms nominal line-line (LL) voltage = sqt(3)*LG
(2)Positive-valued angle difference is inputted for voltage at the first bus leading that of the second bus; negative-valued angle difference is entered for a lagging first-bus voltage.
(3)Base impedance for R and X is the squared base voltage divided by power base (100 MVA in line P27).
(4)Base admittance for B is the reciprocal of base impedance.
(5)R, X, and B for the second line are to be input only if two lines are modeled.

OUTPUT VARIABLES (in order of display):

VariableDescriptionUnit of measureNotes
P, SReal power injected by first bus[MW](6,7)
Q, TReactive power injected by first bus[MVAr](6,8)
PReal power injected by second bus[MW](6)
QReactive power injected by second bus[MVAr](6)
stack yReal-power consumption (losses) on the line[MW](6)
stack xReactive-power consumption on the line[MVAr](6)
Notes
(6)These units (MW or MVAr) assume a base voltage in kV and base power of 100 MVA.
(7)P is re-stored to variable S when second-bus power is calculated.
(8)Q is re-stored to variable T when second-bus power is calculated.

PROCEDURE:

  1. Set Flag 2 if two parallel transmission lines are to be entered
  2. Start program using "XEQ S"
  3. Enter input variables V, W, D, R, X, and B
  4. Enter additional input variables R, X, and B for second line if necessary
  5. Read total first-bus real power P; press "R/S"
  6. Read total first-bus reactive power Q; press "R/S"
  7. Read total second-bus real power P; press "R/S"
  8. Read total second-bus reactive power Q; press "R/S"
  9. Read total real-power line losses, then reactive power line losses after pause

TIPS:

Listing

S01  LBL S       Enter main program
S02  DEG
S03  INPUT V     First-bus voltage magnitude (V1)
S04  INPUT W     Second-bus voltage magnitude (V2)
S05  INPUT D     Voltage-angle difference (d)
S06  FS? 2       2-line network?
S07  XEQ Z       -- If yes, run parallel-line program
S08  FS? 2
S09  GTO C
S10  INPUT R     -- Else, enter line parameters here
S11  INPUT X
S12  INPUT B
S13  GTO C


C01  LBL C
C02  CF 2
C03  XEQ P       Calculate power from first bus
C04  RCL P
C05  STO S       Copy P from first bus
C06  RCL Q
C07  STO T       Copy Q from first bus
C08  RCL V       Set variables to calculate power from second bus:
C09  RCL W       -- Swap V and W
C10  STO V
C11  x⇔y
C12  STO W
C13  RCL D       -- Change sign of D
C14  +/-
C15  STO D
C16  XEQ P       Calculate power from second bus
C17  RCL V       Restore original values of V, W, and D
C18  RCL W
C19  STO V
C20  x⇔y
C21  STO W
C22  RCL D
C23  +/-
C24  STO D
C25  RCL T       Add complex power at first bus and second bus
C26  RCL S
C27  RCL Q
C28  RCL P
C29  CMPLX+
C30  PSE         Display P losses
C31  x⇔y         Display Q losses
C32  RTN


P01  LBL P       Begin calculation of power injections
P02  RCL D       Voltage-angle difference (d)
P03  RCL V       First-bus voltage magnitude (V1)
P04  RCL W       Second-bus voltage magnitude (V2)
P05  ×
P06  θ,r→y,x
P07  0
P08  RCL V
P09  x2
P10  R↓
P11  R↓
P12  CMPLX-      V_dif = V12 - V1*V2*(cos d + j*sin d)
P13  RCL X
P14  +/-
P15  RCL R
P16  CMPLX÷      S through line [in pu] = V_dif / (R - j*X)
P17  RCL B
P18  2
P19  ÷
P20  RCL V
P21  x2
P22  ×
P23  0
P24  CMPLX-     Subtract line-charging Q (= j*B/2 * V12)
P25  0
P26  ENTER↑
P27  100        Power base = 100 MVA
P28  CMPLX×     Multiply P and net Q by power base
P29  STO P
P30  x⇔y
P31  STO Q
P32  VIEW P     Show P injected into line(s)
P33  VIEW Q     Show Q injected into line(s)
P34  RTN


Z01  LBL Z
Z02  INPUT R    Enter resistance of first line (R1)
Z03  INPUT X    Enter reactance of first line  (X1)
Z04  INPUT B    Enter susceptance of first line (B1)
Z05  RCL X
Z06  RCL R
Z07  CMPLX1/x
Z08  STO S      Real part in temporary storage
Z09  x⇔y
Z10  STO T      Imaginary part in temporary storage
Z11  INPUT R    Enter resistance of second line (R2)
Z12  INPUT X    Enter reactance of second line  (X2)
Z13  RCL X
Z14  RCL R
Z15  CMPLX1/x
Z16  RCL T
Z17  RCL S
Z18  CMPLX+
Z19  CMPLX1/x   (Req + j*Xeq) = (R1+ j*X1) || (R2 + j*X2)
Z20  STO R
Z21  x⇔y
Z22  STO X
Z23  RCL B
Z24  STO S
Z25  INPUT B    Enter susceptance of second line (B2)
Z26  RCL+ S
Z27  STO B      Beq = B1 + B2
Z28  CLx
Z29  STO S      Deallocate S and T registers
Z30  STO T
Z31  FS? 2      Is "Z" being run from AC transfer program?
Z32  RTN        -- If yes, return without displaying results
Z33  VIEW R     -- Else, display Req, Xeq, Beq in sequence
Z34  VIEW X
Z35  VIEW B
Z36  RTN

Go back to the software library
Go back to the main exhibit hall