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.

**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:**

Label Bytes Checksum DescriptionS 19.5 AB50 Starts program; prompts for input variables C 48.0 D65A Drives calculation of the output variables P 59.0 A029 Calculates all injections of real and reactive power Z 54.0 5613 Calculates equivalent parameters of line-pair

**INPUT VARIABLES (in order of entry):**

Variable Description Unit of measure NotesV Voltage magnitude at first bus [per unit] (1) W Voltage magnitude at second bus [per unit] (1) D Voltage-angle difference between buses [degrees] (2) R Series resistance of line [per unit] (3) X Series reactance of line [per unit] (3) B Total shunt susceptance of line [per unit] (4) R Series resistance of second line [per unit] (3,5) X Series reactance of second line [per unit] (3,5) B Total shunt susceptance of second line [per unit] (4,5) (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 = sqrt(3)*LG (2) Positive-valued angle difference is inputted for voltage at the first busleadingthat 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)**:

Variable Description Unit of measure NotesP, S Real power injected by first bus [MW] (6,7) Q, T Reactive power injected by first bus [MVAr] (6,8) P Real power injected by second bus [MW] (6) Q Reactive power injected by second bus [MVAr] (6) stack y Real-power consumption (losses) on the line [MW] (6) stack x Reactive-power consumption on the line [MVAr] (6) (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:**

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

**TIPS:**

- SHORTCUT: When the correct values of all other input variables are already entered, just modify individual variables using "STO" and calculate all results by entering "XEQ C", or calculate only first-bus injections by entering "XEQ P".
- Voltage magnitudes and line parameters may be inputted in physical units, rather than per-unit. To obtain correct results in the desired units, the power base (in line P27) must be changed to the appropriate value.
- The SOLVE root-finding function can be utilized to iteratively solve for
__one__input variable based upon a single "target" output value, with minor modification to the routine labeled "P" or "C".

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 Th,r->y,x P07 0 P08 RCL V P09 x^{2}P10 Rdown P11 Rdown P12 CMPLX- V_dif = V1^2 - 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 x^{2}P22 * P23 0 P24 CMPLX- Subtract line-charging Q (= j*B/2 * V1^2) 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