Alternative Transients Program (ATP) Rule Book Copyright © 1987-92 by Canadian / American EMTP User Group All rights reserved by ( for details contact ) : Canadian / American EMTP User Group ; Co - Chairmen : Dr. W . Scott Meyer Dr. Tsu - huei Liu The Fontaine , Unit 6B 3179 Oak Tree Court 1220 N.E. 17-th Avenue West Linn , Oregon 97068 Portland , Oregon 97232 United States of America Rulebook ATP (junio 1996 - internet) 0. Table of H01 Contents No page numbers accompany the chapters and sections listed below because such numbers are methodically generated from the given information. This is most easily explained by illustration. Section I-D is seen to concern the SUBROUTINE CIMAGE, which would begin on page number 1D-1. The following page would be numbered 1D-2, etc. This assumes that there is sufficient material to warrant two levels of independence (Chapter I, Section D). Some chapters are so short that sections are not warranted, in which case the letter in the middle will be omitted. For example, the references of Chapter XXV begin on page 25-1, followed by page 25-2, etc. In rare cases there may be three levels of categorization. For example, Section IV-D-3 will begin on page 4D3-1, followed by page 4D3-2, etc. I. General A. B. C. D. E. F. G. H. I. J. K. L. II. III. F. About ATP Version of that Begin a New Data Case Special-request cards having key words Miscellaneous data cards Extensions to miscellaneous data cards TACS A. B. C. D. E. Information EMTP Background of ATP; user groups; ATP education 1. History of royalty-free EMTP Development 2. Learning to use ATP; user groups; newsletters; E-mail Development centers for ATP Summary program capability; ways execution begins $-cards of SUBROUTINE CIMAGE Computer-dependent aspects and alternatives: 1. Summary of installation-dependent EMTP modules 2. STARTUP disk file for program initialization 3. STARTSPY disk file for program initialization Different computer systems, specific details for all brands Variable dimensioning and Dynamic Dimensioning FORTRAN data format specifications Structure of EMTP input data EMTP data sorting by class (use of "/" cards) $INCLUDE use for data modularization (including arguments) Separate interactive plotting programs: 1. TPPLOT for sophisticated, single-window, plotting 2. WINDOWPLT for simpler, multiple-window, plotting Cards A. B. C. Introductory and MODELS to Simulate Control Systems Purpose of TACS Summary of TACS capability How to simulate what TACS steady-state initialization rules TACS elements and card formats 1. Transfer functions or S-blocks 2. Limiters 3. Signal sources 4. Supplemental variables and devices 5. TACS output-variable specification 6. TACS user-defined initial conditions MODELS : more powerful, flexible, and newer than TACS ADOLFO DELGADOIV. Branch Cards to Model Linear Elements 1 Rulebook ATP (junio 1996 - internet) 2 H01 A. B. C. D. Branch card for lumped, series R, L, C Branch cards for Pi-circuits Branch cards for mutually-coupled R-L elements Branch cards for distributed-parameter transmission lines 1. Constant-parameter model with constant [T] 2. Constant-parameter, double-circuit model with special [T] 3. Rigorous, frequency-dependent model (Jose Marti) 4. 2nd-order, recursive-convolution model (Semlyen) E Saturable transformer component F. Branch input using "CASCADED PI" feature V. Branch A. B. C. D. E. F. G. H. I. J. K. VI. Cards VII. Cards Single-Phase ( Including Thyristors Network Source Cards and Elements (type-99 branch) (type-98 branch) (type-97 branch) (type-96 branch) (type-92; "5555") (type-91; "3333") (type-92; "4444") (type-93 branch) (type-91; "TACS") (Type-93; FORTRAN) ("CORONA MODEL" ) Diodes ) (Other than Rotating Machinery) Static electric network source functions Type-16 simplified equivalent of hvdc converter VIII. Dynamic Synchronous IX. Dynamic Universal X. EMTP Load XI. Cards to Override Initial XII. Cards to Request Electric XIII. Source XIV. Batch-Mode XV. Request XVI. Interactive A. B. C. Nonlinear Time, voltage, current-controlled switches Diode or thyristor (TACS-controlled, type-11) Spark gap or triac (TACS-controlled, type-12) TACS-controlled ordinary switch (type-13) Electric A. B. Model Pseudo-nonlinear resistance R(i) Pseudo-nonlinear reactor L(i) Staircase time-varying resistance R(t) Pseudo-nonlinear hysteretic reactor L(i) Exponential ZnO surge arrester R(i) Piecewise-linear time-vary resistor R(t) True-nonlinear resistance R(i) True nonlinear inductance L(i) Circuit breaker or electric arc R(t,i) User-supplied FORTRAN for compensation Corona modeling for cascaded line sections Switch A. B. C. D. to Flow Type-1 Machine Machine Cards Cards for of (U.M.; (for Definitions Plotting (3-phase S.M.; Conditions Network Cards Cards Usage) of Output each Resulting Statistical Execution, Type-19) "FIX SOURCE" (for Type-59) time the Electric Variables step ) Simulation Tabulations Observation, and Control (SPY) Initiating EMTP execution that includes SPY Opportunities for SPY dialogue: the keyboard interrupt SPY commands explained according to general function 1. Loading and/or changing EMTP data cards via SPY 2. SPY commands to halt or resume program execution 3. SPY commands to observe EMTP tables: BUS, BRANCH, etc. Network Rulebook ATP (junio 1996 - internet) D. E. XVII. "JMARTI SETUP" All A. B. C. D. E. F. G. H. I. Supporting Fixed-Dimension Supporting --- not yet available Programs "XFORMER" to derive [R], [L] of 1-phase transformers "OBSERVE PARALLEL MONTE CARLO" for parallel "STATISTICS" "BCTRAN" to derive [R], [L] of multi-phase transformers "CHANGE SWITCH" to process former switch cards "OLD TO NEW ZNO" to update pre-"M39." ZnO data cards "DATA BASE MODULE" to modularize for $INCLUDE arguments "SATURATION" for magnetic saturation calculations "HYSTERESIS" to punch Type-96 branch cards "ZNO FITTER" to punch Type-92 ZnO branch cards "LINE CONSTANTS" XXII. "SEMLYEN SETUP" XXIII. "CABLE CONSTANTS" Supporting Supporting "NETWORK EQUIVALENT" XXV. Associated XXVI. Index of Introductory Program Program Supporting XXIV. © Program Supporting Program XXI. I. 3 4. "PLOT" for vector or character plots during execution 5. Command files: @K, FILES, COMMENT, VERIFY, TYPE 6. EMTP variables: EXAMINE, NAMES, ROLL, LIST, FIND, DEPOSIT 7. Table dumping/restoring: SAVE, RESTORE, SLEEP, WAKE, WHEN 8. "DICE" for statistical tabulation of Monte Carlo simulations 9. Mathematics within command files: "APPEND" 10. "RAMP" & "SERIES" for continuous linear parameter variations 11. Utilities: HEADING, TIME, SIZE, LIMIT, HONK, ECHO, WAIT, $ 12. "TACS" : gateway to Concurrent Sequential Processing (CSP) 13. Servicing [Y] changes: YFORM, NOY, FACTOR, NOF Batch-mode execution of SPY commands: $SPY and $SPYEND Use of SPY "PLOT" instead of separate program "TPLOT" XVIII. "NODA SETUP" XIX. H01 for Reference Program Supporting "NETEQV" Material Alphabetically-Ordered Information Program About References Program ===================================================================== Copyright 1987-1995 by the Can/Am EMTP User Group. All rights reserved. ===================================================================== No part of either this manual or the associated computer program (ATP version of the EMTP) may be reproduced in any form, using cards, paper, microfilm, magnetic media, or any other means, without written permission from the Canadian/American (Can/Am) EMTP User Group. Further, such materials have restricted circulation, and their informational content shall not be released to third parties. The content of this manual, the associated computer program, and all other ATP EMTP materials, are all made available for use by others without any guarantee of usefulness, accuracy, fidelity, or completeness. No author, licensing agent, or authorized distributor will be held responsible for any damages that might possibly result from the use or misuse of ATP EMTP materials for any purpose. The user is solely responsibility for any damages that might possibly result from the use or misuse of ATP EMTP materials for any purpose. Rulebook ATP (junio 1996 - internet) 4 H01 I-A. Background of ATP; User Groups; Education The Electromagnetic Transients Program, or EMTP (pronounced by naming the four letters sequentially), is primarily a simulation program of the electric power industry. It can predict variables of interest within electric power networks as functions of time, typically following some disturbance such as the switching of a circuit breaker, or a fault. It also is used by those who specialize in power electronics. EMTP has its roots in Portland, Oregon (USA), at the Bonneville Power Administration (BPA), an agency of the U.S. Department of Energy. Thanks to generous contributions of both manpower and money (the latter to support specialists working on EMTP research and development under contract), BPA dominated EMTP development for more than a decade. This was all public-domain work, and it was given freely to any interested party. This was prior to attempted commercialization of the EMTP during the summer of 1984 (see Section I-A-1 below). The present manual basically is just a complete set of rules for EMTP input and output. Except for the Table of Contents and Introduction at the front (through the end of Section I), and the References and Index at the back (Sections XXV and XXVI, respectively), nothing but rules of program usage will be found. Since most EMTP data have a required order of input, the rules of this book have been written in this same order of data input. Supporting programs (e.g., "LINE CONSTANTS") are exceptions, and they have all been forced to the back (Chapters XVII through XXIV) to agree with the order of appearance within the computer source file (UTPF). Details about interactive execution, observation, and control (SPY) also have no fixed order, and they have been placed in Chapter XVI, preceding the supporting programs. I-A-1. History of Royalty-Free Development Following attempted commercialization of the EMTP by certain large organizations of the North American power industry ("EPRI and some friends," as explained later), all EMTP development no longer was given to BPA by persons who had cooperated with BPA in the past. Included was the prodigious afterhours, weekend, and vacation work of Dr. W. Scott Meyer. There evolved a distinct EMTP version known by the acronym ATP (Alternative Transients Program). Although ATP work remains the property of the individuals who produced it, the Can/Am user group is the licensing agent for the use of these EMTP materials by others. For other parts of the world (England, Europe, Taiwan, etc.), such authority has been delegated to others. ATP materials are royalty-free for those who have not participated in "EMTP commerce" (defined by form letter LICENSE.ZIP of the Can/Am user group), but they are not public-domain in nature (as is the case with BPA EMTP work). This distinction is necessary in order to protect such materials from commercial exploitation. The Can/Am user group is grateful to BPA for all of its public-domain EMTP development that formed the basis for this newer, improved, offering of the program. The roots of ATP can be traced to early 1984, when it became apparent to BPA EMTP developers that DCG was not working as it was supposed to, and formed a threat to free EMTP. At that point (February or March), 12 years of "EMTP Memoranda" were ended by Dr. Meyer, and every available hour of his free (non-BPA) time was switched from BPA's EMTP to the creation of a viable alternative that would be denied to those having commercial ambitions (already apparent among several DCG members). ATP, the Alternative Transients Program, was the result during the fall of 1984. This followed Dr. Meyer's return from Europe (the first European EMTP short course, in Leuven) and purchase of his first home computer (the new IBM PC AT) during August of 1984. In September of 1982, a "coordination agreement" concerning the EMTP was signed by six large power organizations of North America: three U.S. government agencies (BPA, the Western Area Power Administration, and the U.S. Bureau of Rulebook ATP (junio 1996 - internet) H01 5 Reclamation, with the latter two headquartered in Denver, Colorado) and three Canadian organizations (Hydro-Quebec/IREQ, Ontario Hydro, and the Canadian Electrical Association on behalf of the remaining Canadian utilities). Known by the acronym DCG (for EMTP Development Coordination Group), this organization agreed during March of 1983 to keep the EMTP proper (the UTPF) in the public domain. But there followed a loose Association with the Electric Power Research Institute (EPRI, of Palo Alto, California) during the summer of 1984. During the fall of that year, it was claimed by the DCG Steering Committee that BPA EMTP work would no longer be in the public domain, and would not be given freely to others. But such DCG/EPRI policy was nothing more than wishful thinking by those wanting to commercialize the EMTP. During April of 1985, a U.S. Freedom of Information Act (FOIA) request was filed with BPA, and BPA disclosed its then-latest version of the UTPF as required by that U.S. law. Since then, strong statements from BPA indicated that both U.S. government work and money must result only in public-domain EMTP products. This was consistent with the hopes of European EMTP users, of course. Prior to such statements by higher management and its representatives at BPA, LEC (the Leuven EMTP Center with headquarters on the campus of K.U. Leuven in Belgium) was formed by Prof. Daniel Van Dommelen during the spring and summer of 1984 as a defensive measure. This was after hearing of proposed DCG/EPRI prices during a personal visit by DCG Chairman Doug Mader. Although LEC later had problems of mismanagement, everyone involved can be proud of those early years, and the obvious spirit of independence ("hell no, we won't pay") that drove the effort. The first annual meeting of LEC was held in Leuven on November 4 th of 1985, and Dr. Meyer agreed to bring ATP. About possible cooperation with those who then were trying to sell EMTP, the official minutes of this meeting records the following: "- It was unanimously agreed that the User Group wants to influence the politics of development by making a distinction between: - the EMTP proper (UTPF), which should remain free and intact. - Preprocessors, postprocessors and data bases, which could be things to sell. - After this discussion, it was agreed that TA should contact DCG in order to request EPRI not to sell the EMTP proper (UTPF). Should this first attempt prove to be unsuccessful, then DVD could try." Here "TA" stands for Mr. Ture Adielson of ASEA, who at the time was the EMTP representative of ASEA to both DCG and LEC. Finally "DVD" indicates Prof. Van Dommelen, the Chairman of LEC. Prior to the vote authorizing this statement, Dr. Meyer had agreed to turn his ATP work into the public domain provided DCG and EPRI would do likewise. No response from DCG or EPRI was ever received, as far as the Can/Am user group knows. Both K.U. Leuven and LEC operated through 1993 without any formal connection to any power organization of North America. However, LEC did cooperate with BPA on an informal basis for several years (most effectively from 1985 to 1989), and it remained willing to consider the establishment of a formal tie provided non-commercial EMTP activity at K.U. Leuven could thereby be assisted. This was the stated goal of LEC, which was supposed to be a nonprofit organization. The Chairman did serve without pay, and decisions normally were made (or subsequently reaffirmed) by majority vote of the members. That was through 1990, anyway. But with growth came affluence, and with affluence seemed to come corruption as discovered by LEC's own Steering Committee. After failing to account for all money collected from members, and failing to honor voting rights of members in this regard (accurate accounting of money), LEC was closed at the end of 1993. But the European EMTP User Group (EEUG) was reformed in Hannover, Germany, during November of 1994. This followed the leadership of Dr. Mustafa Kizilcay, who was working for Lahmeyer International as the meeting was planned, but had Rulebook ATP (junio 1996 - internet) 6 H01 been named to be a Professor at the university in Osnabrueck before the meeting was actually held. By German law, all money must be accounted for, and voting rights of members are guaranteed by an associated charter. As this text is being revised during the spring of 1995, operation is beginning slowly (German law is demanding), but with considerable promise. I-A-2. Learning to Use ATP; User Groups By far the best way to learn about EMTP capability and usage is by working beside a competent, experienced veteran. Those power organizations that have been using the EMTP for a broad range of power system simulation, and which have not suffered disrupting changes of personnel, represent the ideal learning environment. If the reader is working for such an organization, he should count his blessings, and disregard most of what follows. In case of questions or problems, go see the local experts. Always ask questions. Program users must adopt this habit, since they will be doing it until the day they retire, so broad and complex is transient simulation! For those not so blessed by local experts, the next-best alternative is a strong national or regional EMTP User Group to which new users can turn for help. Contact personnel of ATP-licensed organizations that are officially recognized by the Can/Am user group are as follows: Dr. Akihiro Ametani, Professor and Chairman, Japanese EMTP Committee Dr. Naoto Nagaoka, Professor and Secretary Faculty of Electric Engineering Doshisha University Tanabe, Tsuzuki-gun Kyoto 610-03 JAPAN Prof. Dr.-Ing Mustafa Kizilcay Fachhochschule Osnabrueck Fachbereich Elektrotechnik Albrechtstr. 30 D-49076 Osnabrueck GERMANY Mr. Marco Polo Pereira Chairman, Latin American EMTP User Group Furnas Centrais Elétricas S.A. Rua Real Grandeza 219, C 1608 CEP 22283-900 -- Rio de Janeiro BRAZIL Dr. Brian J. Elliott, Chairman Mr. Stephen Boroczky, Secretary Grid Planning & Development Electricity Transmission Authority PO Box 1000 Sydney South, NSW, 2000 AUSTRALIA Dr. W. Scott Meyer and Dr. Tsu-huei Liu, Co-Chairmen Canadian/American EMTP User Group The Fontaine, Unit 6B 1220 N.E. 17th Avenue Portland, Oregon 97232 U.S.A. Rulebook ATP (junio 1996 - internet) H01 7 JinBoo Choo, Manager Korean EMTP Committee Electric Power Research Department Korea Electric Power Corporation (KEPCO) Research Center 117-15, Yong Jeon Dong, Dong-Gu Dae Jeon SOUTH KOREA Mr. Chiang-Tsung Huang, Chairman Mr. Shui-Hsiu Lin, Secretary Republic of China EMTP User Group (Includes Hong Kong and Singapore) System Planning Department Taiwan Power Company (Taipower) 242 Roosevelt Road, Section 3 P. O. Box 171 Taipei 107 REPUBLIC OF CHINA (TAIWAN) Dr. Warren Levy Information Technology Dept. Electricity Supply Commission (ESKOM) Megawatt Park, Maxwell Drive P. O. Box 1091 Johannesburg 2000 SOUTH AFRICA While each group was primarily designed to serve users of its geographical region, anyone in the world can order ATP materials directly from either Osnabrueck or Portland. Also, computer files are being shared on a world-wide basis among ATP-licensed users by E-mail (the Internet). See later paragraph. EMTP education is being handled separately, and materials related to it are not available through BPA, so do not write to Portland for a copy. EMTP education began in June of 1978 with a one-week EMTP short course at the University of Wisconsin -- Madison. This was basically an introductory course, and it has been offered most summers since its inception. Following the switch from BPA's EMTP to the commercial offering of DCG/EPRI in 1987 or 1988, the Madison offering has ceased to be of much value to ATP users, however. Other universities have offered introductory courses, too, from time to time. For ATP, this began in Leuven, Belgium, during the summer of 1987 --- the first public exposition of ATP. Then during the summers of 1988 and 1989, Cal Poly in San Luis Obispo, California, USA, offered the first EMTP course that used only PCs (Personal Computers). The spring of 1989 saw the beginning of such now-famous PC-based education offered by Prof. Dennis Carroll at the University of Florida in Gainesville. Prof. Ned Mohan began his popular 2-day, traveling (it follows IEEE PES Summer Meetings) course in 1990 when the PES meeting was near his home campus in Minneapolis. As for more advanced education, Europeans were first, when a high-level course for experienced users was given during the summer of 1984 by Prof. Daniel Van Dommelen at K.U. Leuven in Belgium. While needed, such advanced courses have difficulty attracting adequate numbers of students to be offered regularly. Power electronics can be simulated using the EMTP as documented by a textbook on the subject that first appeared in 1989. John Wiley & Sons, Inc., of New York City (USA), publish "Power Electronics: Converters, Applications, and Rulebook ATP (junio 1996 - internet) 8 H01 Design" by Ned Mohan, Tore Undeland, and William Robbins. An associated set of 64 ATP data cases and paper documentation of them (a separate book) can be purchased from Prof. Mohan at the University of Minnesota. Beginning about 1993, this package was bundled with Prof. Mohan's short course, which now specializes in ATP applied to power electronics of power systems. The EMTP Rule Book contains almost nothing about what is happening in the world of EMTP usage and development. For EMTP-related announcements, reports of interesting studies by program users, corrections to the Rule Book and/or common program versions, and summaries of ongoing EMTP research, see the newsletter of the Can/Am user group. This is Can/Am EMTP News, which during 1994 and 1995 has consisted of 20 pages per quarterly issue (January, April, July, and October of each year). Dating to the second half of 1988, WordPerfect 5.1 documents of the content can be obtained by E-mail from several Anonymous FTP sites around the world (more about such E-mail usage later). "EMTP News" was a valuable journal about EMTP that was published by LEC for some 6 or 7 years prior to LEC's demise in 1993. Early issues of the Can/Am newsletter will refer to this, which is an important part of the historical record of ATP usage and development. Unfortunately, no computer storage of most of the published material is believed to exist. It is hoped that the tradition of a journal for full-length articles about ATP use (more than development) can be resurrected during 1995 by the new EEUG, which would use the more appropriate name "EMTP Journal." A newsletter, this was not (during its prime, each issue of the quarterly "EMTP News" averaged about 100 pages). E-mail (electronic mail) has become critically important to many ATP users. As WordPerfect disk files, the newsletter and other ATP-useful things can be obtained from FTP server ftp.ee.mtu.edu (the former plains server, which became a mirror sparky.nodak.edu during April of 1995) using Anonymous FTP transfers of Internet. These two sites are in the north-central USA (Michigan Tech in Houghton and North Dakota State University in Fargo, respectively). There also is a mirror in Europe, at the University of Hannover in Germany at address 130.75.2.2 Details are summarized in the January, 1995, newsletter. Prof. Bruce Mork of Michigan Tech in Houghton manages this material. He also established a free electronic bulletin board atp-emtp@vm1.nodak.edu that allows ATP users to exchange messages. See the October, 1991, issue of the newsletter for Prof. Bruce Mork's 3-page exposition about this pioneering, ATP service he founded. That article also can be found in OCT91.DOC within disk file EMAIL.ZIP on the GIVE2 disk of Salford EMTP distribution. The service is free, and had grown to more than 200 addresses by the end of 1994. Prof. Mork explained FTP use in the July, 1992, issue (see JUL92.DOC within EMAIL.ZIP). ATP itself can be distributed by FTP, but not without security (a password). ATP also can be distributed by normal E-mail using the Attach button of MS Mail within MS Windows (this UUENCODEs an archive such as GIVE1.ZIP automatically) as described in the January, 1995, newsletter. I-B. Development Centers for ATP The Can/Am EMTP User group can be reached most easily by E-mail (electronic mail) since use of it was begun by the user group in the fall of 1993. The current Internet address used by Drs. Meyer and Liu is: atp@agora.rain.com The non-electronic mailing address in The Fontaine was displayed previously. BPA personnel who are preoccupied with free EMTP development are Drs. W. Scott Meyer and Tsu-huei Liu, who most easily can be reached by telephone using number (503) 230-4404. Dr. Liu's telephone is -4401, but this is less useful because it has no recorder, and a secretary might answer. If no human answers 4404, after a full four rings a personalized recording in Dr. Meyer's voice will be heard. If the phone is in use, the recording will be heard immediately. Following Dr. Meyer's brief greeting, a caller will be given an opportunity (after the tone) to leave a recorded message (not over about 8 Rulebook ATP (junio 1996 - internet) H01 9 minutes). A warning is appropriate, however: Speak slowly and distinctly, since the recording system produces distortion of its own as evidenced by the quality of the recording. When the message is complete, a flashing red light will be seen on Dr. Meyer's telephone. For a telephone call to be returned, be sure the name and telephone number are slowly and clearly enunciated. Finally, the address for conventional mail, E-mail, and also telephone facsimile (FAX) is: Dr. W. Scott Meyer or Dr. Tsu-huei Liu E-mail: thliu@bpa.gov BPA, Route TEOS; Floor 4, Post S-14 P. O. Box 3621 Portland, Oregon 97208 U.S.A. FAX: (503) 230-3212 Those wanting to use a delivery service will require a street address: 905 N.E. 11th Avenue, with different postal code 97232. Be sure to include the floor and post, since BPA's is one big building of some 2200 workstations. Laurent Dubé, author of MODELS (new control system modeling), also can be reached most easily by E-mail. Use dube@csos.orst.edu (Internet address). He also has voice telephone with a recorder: (503) 392-4551. For FAX, Mr. Dubé uses 392-4575. Located on the Oregon coast about 2 hours by car from Portland, the mailing address is: DEI Simulation Software 7000 Rowan Road Manor P. O. Box 848 Neskowin, Oregon 97149 U.S.A. I-C. Summary Program Capability; -------------------------- Ways Execution Begins; --------------------- Errors ------ .el The EMTP is used to simulate transients of electrical power networks. That is, it is used to solve the algebraic, ordinary, and/or partial differential equations that are associated with an interconnection of the following components: .LITERAL * Lumped resistance, R : * Lumped inductance, L : * Lumped capacitance, * Multiphase Pi-equivalents, where the preceding scalar R, L, and C become symmetric, square matrices [R], [L], and [C]. * Multiphase distributed-parameter transmission lines, wherein propagation time of the component is represented. Both constant-parameter and frequencydependent representations are provided. C : Rulebook ATP (junio 1996 - internet) 10 * Nonlinear resistors, where the v-i characteristic is single-valued. * Nonlinear inductors, either with the conventional single-valued characteristic (see sketch at right) or including hysteresis and residual flux. * Time-varying resistance. * Switches, used to simulate circuit breakers, spark gaps, or any other connection change of the network. Diodes and thyristers (ac/dc valves) are included. * Voltage or current sources. In addition to standard mathematical functions (sinusoids, surge functions, steps, and ramps), the user may specify sources point by point as functions of time, or in usersupplied FORTRAN, or via TACS control (see control system modeling below). * Dynamic rotating electric machinery, of which the most common form is conventional, 3-phase synchronous machines. But induction machinery and dc-machinery also can be represented, for 1, 2, or 3 phases. Such machine models can be connected to TACS control system models (see immediately below), thereby allowing dynamics for voltage regulators and speed governors. * Control system dynamics as years ago were represented by differential analyzers ("analog computers"). This modeling has been named TACS, an acronym derived from "Transient Analysis of Control Systems." Nonlinear and logical operations of various types are allowed. Inputs and outputs may be interfaced with the electric network of the EMTP, thereby providing hybrid computer capability. All TACS configurations are user-patchable, and hence configurationfree. See Section III for details. H01 .EL Trapezoidal-rule (second-order) implicit integration is used on the describing equations of most elements that are described by ordinary differential equations. The result is the formation of an associated set of real, simultaneous, algebraic equations that must be solved at each time step (see Ref.#1). These equations are placed in nodal-admittance form, with new unknown voltages as variables, and are solved by ordered triangular factorization (Ref.#4). Program output consists of component variables (e.g., branch currents or voltages, machine torques or speeds, etc.) as functions of time, for those variables that were requested by the user. Both printed and plotted output is possible, with plotting available in either character or vector-graphic mode. See Section#XIV for the batch-mode (both character and vector) plotting, and Section#XVI for the details of interactive (SPY) usage. Rulebook ATP (junio 1996 - internet) H01 11 Initial conditions for differential equations of the various components can be determined automatically by the program for many if not most cases of practical interest. The most important restriction is to linear elements (nonlinear components must generally be ignored during phasor steady-state solutions). Yet injections of the electric network may be specified in terms of power and voltage magnitude, thereby providing multi-phase load flow capability. Control system modeling (TACS) allows for the superposition of an arbitary number of linear phasor solutions of different frequencies. An enormous discontinuity in the EMTP occurred during 1984-1985. As DCG/EPRI made proprietary claims to BPA work (later rejected by BPA in connection with a Freedom of Information Act request during April of 1985), the ATP (Alternative Transients Program) version was developed outside of BPA by W.#Scott Meyer and other cooperating individuals and organizations. Because the program was restructured in important ways, former translators had to be abandoned. A new beginning has taken place. As a general rule, the new EMTP (i.e., ATP) is less demanding of computers than were the older ("M39." and before) versions. However, structure is different, so successful experience gained from "M39." and earlier versions is being omitted from this documentation. Most if not all of the two dozen or more distinct computers that once were proven to be EMTP-compatible (for the old code) probably remain compatible for the new code, too. Yet this is not yet known for sure. As an honest, conservative approach, all former (pre-ATP) material is being removed. For those wanting information about the portability of "M39." and earlier EMTP versions, refer to the Rule Book dated June, 1984. For all computer systems, program execution begins with a one-line prompt that shows the most important alternatives within parentheses: .LITERAL $emtp EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) : SPY .EL If the user is communicating with the operating system in real time via a keyboard (as opposed to being home in bed while some batch-mode processor runs his job during the middle of the night), then his next input is crucial to how the program begins execution. If the user knows nothing, he might send the 4th listed alternative ("HELP"), which results in the following universal information about the various choices: 1) "SPY" is the gateway to interactive execution, observation, and control, as documented in Section#XVI of the Rule Book. For details, send "SPY", "HELP" and then "ALL" --- resulting in a total of about 500 lines of instruction. 2) "file_name". If not one of the listed key words (in capital letters), the input line is taken as the name of a disk file of data for batch-mode solution. If this ends with a period, ".dat" (the implied file type DATTYP of the STARTUP file) will be appended. 3) "DISK" is request for later prompt for LUNIT6 disk file name. 4) "HELP" provides the overview of options now being read. 5) "GO" is for batch solution, like 2, only for the special case of an external connection of the data file to LUNIT5. 6) "KEY" 7) "STOP" .LITERAL .el is for use of LUNIT5#=#5 data input (no use of LUNT10 cache). will terminate execution immediately (FORTRAN STOP). 12 Rulebook ATP (junio 1996 - internet) H01 The 1st alternative, "SPY", should be used only with those computers that have the capability of interactive EMTP execution, observation, and control. Verify availability in the installation-dependent section applicable to the computer of interest before any such attempt. Then refer to Section#XVI for generic instructions of usage. A disk file name may follow "SPY", separated by a blank and possibly preceeded by the character "@" (indicating a SPY command file rather than an EMTP data file). For further details, see the "DATA" command of SPY in Section XVI-C-1. For non-SPY EMTP execution, it is the 2nd option ("file_name") of the initial EMTP prompt that can always be used. Just send the name of any legal disk file that contains EMTP data to be solved. Since such names depend upon computer system (file names were not standardized by ANSI FORTRAN#77), any example might be misleading, so none will be given. Arguments of the type used with $INCLUDE can follow the file name for special cases. Of course, a special data file is required, and arguments must match the demands of the data file in both number and type. If ".dat" is not explicitely keyed, remember to leave room for it (at least 4 blanks) before any arguments begin, since the ".dat" will erase whatever exists at the time and place of its application. An illustration using a single argument is provided by BENCHMARK DC-65, which begins execution as follows. Note that there is only one argument, the end time TMAX of the study, which is being set to 7/10 second: .literal $emtp EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) : dc65. , 0.70 .el For more details, see "DATA BASE MODULE" of Section XIX-F. Two or more arguments require use of a comma "," as a separator (possibly changed by variable CHRCOM on card 19 of the STARTUP file). To continue the argument list on a second or later input line, simply key "$$" (possibly changed by variable CHRCOM on card 19 of the STARTUP file) on the right in any columns not exceeding 79-80. The following continuation line begins in column 2 (column 1 is ignored, so do not begin an argument there). There is no limit to the number of such continuation lines. The third possible beginning is "DISK", which provides a universal way of sending the EMTP's LUNIT6 output to a disk file of the user's choice, in case of non-SPY execution. If the user is communicating with the operating system in real time, and if his computer has windows that can be scrolled the way Apollo's can, then usage of "DISK" is not generally recommended, since it masks important information about how execution is progressing. For example, the user will not know how close to termination a simulation might be. On the other hand, in cases of batch-mode solution with the user at home and asleep in bed, this is precisely what is wanted. For such use, the "DISK" request is sent first, followed by "file_name" (to specify the data), followed by a second file name to which LUNIT6 is to be connected. If such commands are done in real time, the third and final input will be in response to the prompt: .LITERAL Send desired disk file name for LUNIT6 : .el To over-write an existing file of the same name, append "-r" or "-R" for most computers. For example: "dc4. -r". Without this request to replace the old file with the new one, the EMTP will prompt for a correction. The 5th alternative input is "GO", which is not universal, and which is not recommended for any computer that has dynamic OPEN/CLOSE capability. It is only necessary and sufficient for those installations that lack such capability (e.g., mainframe IBM systems) --- computers that require the user to connect the EMTP input data file externally. For typical batch-mode IBM usage, this would be as part of the Job Control Language that runs the program. The Rulebook ATP (junio 1996 - internet) H01 13 "GO" command then informs the computer that data has already been connected, and that the user now wants the solution to proceed. The 6th alternative input is "KEY", which has specialized use. One application is for program (or data) debugging using computers with windows (see the Apollo pages). Another application is for the production of batch-mode EMTP plots one at a time, with the user allowed to see the preceding plot before creating the following plot card. This assumes that the user is communicating with the operating system in real time, and that he is using a terminal that is capable of displaying the requested plots. It also assumes that the simulation of interest has already been performed, and that raw plot data points have been saved on disk (integer miscellaneous data parameter ICAT > 0). Consider the following sequence of keyed input lines in response to the initial EMTP prompt: .LITERAL KEY $OPEN, UNIT=4 FILE=//A/WSM/DC3TO54.PL4 ....(etc.) REPLOT 144 1. 0.0 20. 18-A 18-B 18-C .el The 2nd card shown connects the plot file to the program, whereas the 3rd ("REPLOT") transfers control to batch-mode EMTP plotting. The 4th card is the 1st of an indeterminate number of batch-mode EMTP plot cards. Since these are only read one at a time as needed, the user can request whatever he wants in whatever quantity he wants, based of the results of previous plots. It is possible that an extra card, "DISK PLOT DATA", might be required after "KEY" and before "REPLOT". This is the case for those program versions (e.g., Apollo) that do not have an LUNIT4 connection to disk by default. There may also be need of a "CALCOMP PLOT" or "PRINTER PLOT" request before the first plot card, if the STARTUP file does not correspond to the available mode of the terminal being used. Finally, remember that the $OPEN card is installation-dependent. For details of this example, see BENCHMARK DC-54. The 7th and final alternative, not suggested by the prompt, is "STOP", which represents a generic way to terminate program execution. But since most if not all computers have vendor-specific ways that may be more convenient and natural, it is unclear whether the average user will want to key "STOP" just to halt the program. Once program execution is under way, output designed for the line printer (the LUNIT6 I/O channel) will be created at intervals, and variables of interest may be written to a disk file (typically with file type ".PL4") for later plotting. Whether the user sees much if any of this will depend upon whether or not he can see the LUNIT6 output on a computer monitor during this time. The "DISK" command obviously prevents this for most systems, as might the "GO" command (if a file were assigned externally to LUNIT6). Formal error terminations are a special form of output with which every user should be familiar. It is difficult to overlook any such messages, since the LUNIT6 output is marked before and after by the following characteristic, 4-line band of printing that is a full 132 columns wide: .literal -----------------------------------------------------------------ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ ... etc. ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ERROR/ -----------------------------------------------------------------.el Following such an introduction will be 5 lines of standard explanation ("You lose, fella ...") to which only the beginning user need pay any attention. But then comes valuable information, beginning an 80-column card image of the last-read data card. Location of the difficulty in the EMTP source code is provided by the numbers that are labeled as: "KILL code number", "Overlay number", and "Nearby statement number". Finally, there is the specific error message itself, always beginning with "KILL =XX" where "XX" is the KILL-code number (between unity and about 230). After a second printing of the Rulebook ATP (junio 1996 - internet) 14 H01 "ERROR/ERROR" band, there will be attempted recovery of execution, with the program reading through remaining data cards until a "BEGIN NEW DATA CASE" card is found. Case summary statistics will then separate the error termination from the following solution (if enough data remains to be solved). Non-fatal warning messages are usually much more inconspicuous, but should be looked for, and understood, by the intelligent user. Usually such messages will be indented, and often they are preceded by several special symbols. As an example, consider: "///##Warning.##Nonzero XOPT or COPT differs from the power frequency of 6.00000000E+01 Hz. Did the user really want this?" Not shown here is the indentation of two spaces. .literal I-D. $-Cards of "CIMAGE" Can Be Ordered Arbitrarily ------------------------------------------------ .el An EMTP data case is made of EMTP data cards (or more formally, of 80-column card-image records, in this day of CRT monitors). Most such cards require specific ordering (see Section I-I), so are the subject of later sections of this manual (Section#II onward). But there is an exception -- a class of cards called "$-cards" for which ordering is arbitary. Such cards will be explained in the remainder of this section. A $-card (pronounced "dollar card") consists of a dollar sign in column one, followed immediately by some short command. All such cards are requests for operations that can be serviced locally within installation-dependent SUBROUTINE CIMAGE. Due to the installation-dependent character, it is true that no one can be sure of what applies to all systems. For example, a particular computer might refuse to recognize any such card. Yet this should not happen. There should be a solid, universal framework that applies to all computers for the following cards: .LITERAL 1. $OPEN 2. $CLOSE 3. $WIDTH 4. $ABORT 5. $ENABLE 6. $NEW EPSILN, EPS 7. $MONITOR 8. $LISTOFF 9. $LISTON 10. $VINTAGE,M 11. $STOP 12. $WATCH 13. $COMMENT 14. $DEBUG, M 15. $UNITS 16. $PUNCH 17. $ERASE 18. $STARTUP, file_name 19. $KEY 20. $BREAK .el It is such universal rules that will be described in the remainder of the present section. For specifics of computer- or installation-dependent exceptions or extensions, see that section of the Rule Book that applies to the computer of interest. .literal I-D-1. $OPEN to connect a disk file to an I/O channel ----------------------------------------------- .el $OPEN##is used to connect a disk file to an I/O channel of the program. Similar to the ANSI FORTRAN#77 definitions of these statements, qualifiers are allows. While some qualifiers are required for all computers (e.g., the I/O unit number with qualifier "UNIT="), others (e.g., the record length specification "RECL=") may be required only for certain computers. So, although details may vary from computer to computer, the structure is universal, and this is what will now be summarized. First, consider sample $OPEN usage for Apollo, as drawn from BENCHMARK DC-54 (and split into two lines only for ease of display): .LITERAL $OPEN, UNIT=4 FILE=//A/WSM/DC3TO54.PL4 FORM=UNFORMATTED STATUS=OLD RECL=8000 .el Rulebook ATP (junio 1996 - internet) H01 15 Note the single comma, after the request word. All other qualifiers are separated from each other by one or more blanks, not commas (note!). Although the display has been spread onto a second line for convenience of presentation, this is not allowed as EMTP data, which must all fit within a single, 80-column card image. The qualifiers can appear in any order, and variations should be obvious to any FORTRAN programmer. For example, FORM=FORMATTED would be possible, as would STATUS=NEW, STATUS=SCRATCH, or STATUS=UNKNOWN. Yet some of this is computer-dependent. For example, VAX can always create a NEW file (given a higher version number by VAX/VMS), whereas Apollo only can do so if a file of the desired name does not already exists. An unfortunate peculiarity of Apollo Aegis is the need for the "RECL=" qualifier (most systems can dispense with this detail). Remember that using STATUS=SCRATCH conflicts with the use of "FILE=", so these two should never be used together (see the 2nd subcase of BENCHMARK DC-24 for sample STATUS=SCRATCH usage). An illustration of $OPEN usage is provided by BENCHMARK DC-40, which continues the Monte Carlo simulation of DC-24 (which only performed 3 of the 6 total energizations) using "START AGAIN". Before emtp tables can be read via I/O channel LUNIT2#=#2, the disk file storing them must be connected. The data card interpretation for this operation is as follows: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Connect disk file to I/O unit. |$OPEN, UNIT=2 FILE=DC24. .el Other test cases illustrating $OPEN are: 1)##DC-3, which illustrates the manual naming of the plot file (rather than having a random name based on the date and time of day); 2)##the second subcase of DC-24, to connect the file of user-supplied switch times, DC24LUNIT8.DAT, to unit 8; 3)##DC-32, where the disk file of program tables (created because MEMSAV#=#1) must be connected by the user. 4)##DC-46, where the plot file created by DC-45, DC45.PL4, is connected for postprocessing using TACS; 4)##DC-49, which is like DC-40 except for the lack of dice rolling (it provides a continuation for the deterministic DC-32); 5)##DC-54, where the plot file created by DC-3, DC3TO54.PL4, is connected for purposes of delayed, batch-mode plotting using REPLOT. Should more than 80 columns be required due to a long file name, the user is advised to use a continuation request "=$$" on the right of his $OPEN card. All partial cards begin with "$OPEN," in columns 1-6. For an illustration of such usage, see BENCHMARK DC-66. Interpretation will be identical whether or not the $OPEN is contained on a single card. .literal I-D-2. $CLOSE to disconnect a disk file from an I/O channel ----------------------------------------------------- .el $CLOSE is used to disconnect a previously-connected file. Sometimes this is done to protect a data file from being written on after it has been used. At other times it is used to free the I/O unit for another connection that is to follow. In any case, only the UNIT= and STATUS= qualifiers are applicable. The first of these is self-explanatory, and the second will either be STATUS=SAVE or STATUS=DELETE. The addition of "SHOW CARDS" anywhere on the $CLOSE request will result in a listing of 80-column card images of the file just as though the cards had been punched (see $PUNCH). This is just before the file is released. For an illustration, see the second subcase of BENCHMARK DC-52. An illustration of $CLOSE usage is provided by BENCHMARK DC-40, which continues the simulation of DC-24 using "START AGAIN". After emtp tables have Rulebook ATP (junio 1996 - internet) 16 H01 been connected and read, they are immediately disconnected to protect them against some unplanned, stray WRITE to the I/O channel being used (this is the extra-cautious approach). The following interpretation documents this: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Disconnect disk file from I/O unit. |$CLOSE, UNIT=2 STATUS=K .el Any data case with MEMSAV#=#1, or the associated subsequent "START AGAIN", will use $CLOSE. Other test cases are the first and third subcases of BENCHMARK DC-24, DC-32, all subcases of DC-49, and the 2nd subcase of DC-52. I-D-3. $WIDTH to change the LUNIT6 output width ----------------------------------------- .el $WIDTH,#M##allows the user to modify the LUNIT6 output width, most commonly between 80 and 132. Such $-card specification will overide the initial choice that has been built into the STARTUP file. All output structures for simulation usage can have the width so controlled, although little has been done for non-simulation supporting programs (e.g., "LINE CONSTANTS"), most of which produce only 132-column output. One usage that may have nothing to do with width is to have 132-column output everywhere except for the branch flows and nodal injections of the phasor solution. This can both speed output and save considerable paper, since no reverse flows are printed, and the forward flows are shorter. An illustration of $WIDTH usage is provided by BENCHMARK DC-5, which illustrates 80-column output capability of the program. The following interpretation documents this: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------New KOL132 = 80 (LUNIT6 output width). |$WIDTH, 80, { Req I-D-4. $ABORT to proceed to next data subcase --------------------------------------- .el $ABORT results only in setting the error flag KILL#=#88. For most places of a data case, this will direct control to special error message number 88, and then result in a skip to the next data subcase of the disk file, should one exist. The location of $ABORT is not arbitrary, although it can be placed before just about any blank terminator card as an extra record. An illustration of $ABORT usage is provided by the second subcase of BENCHMARK DC-42, which is to abort before the blank card ending plot cards. The following interpretation documents this: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------End data subcase. "CIMAGE" sets KILL = 88. |$ABORT { Illustration I-D-5. $DISABLE $ENABLE to treat data cards as if they were comment cards to end such implicit commenting of data cards ------------------------------------------------------- .el a The $DISABLE/ENABLE feature is one trivial, universal feature. First, $DISABLE card tells the EMTP to treat all following data cards as if they Rulebook ATP (junio 1996 - internet) H01 17 were comment cards, until the following appearance of a $ENABLE card. This is a very handy feature for big blocks of comments, or for the temporary removal of components from a data case without actually throwing the records away (one might later want to restore them, and this allows easy remembrance). Any $INCLUDE file may contain $DISABLE and $ENABLE as a matched pair. Just be sure that $ENABLE always appears in the same disk file as the preceding $DISABLE. For an illustration, see BENCHMARK DC-17, which has $DISABLE and $ENABLE within DC17INC2.DAT, which is called by DC17INC1.DAT (in turn called by DC17.DAT). The $DISABLE/ENABLE feature is no longer actually in SUBROUTINE CIMAGE where it began. Instead, the cards to be discarded are ignored as they are first read from disk at the beginning of execution. Only the last card of the block will be retained, and this will be recreated to include a count of the total number of data cards (including both $DISABLE and $ENABLE) of the extraneous block. As an illustration, for BENCHMARK DC-17 this appears as follows: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------End of data to be ignored (implicit "C "). |$ENABLE, ONLY THIS ONE C ...ARD ENDING 5 CARDS OF $DISABLE/ENABLE IS RETAINED. Another illustration can be found in BENCHMARK DC-24: I-D-6. $NEW EPSILN to alter miscellaneous data parameter EPSILN ---------------------------------------------------------- .el $NEW#EPSILN,#EPS##allows the user to redefine the floating-point miscellaneous data parameter EPSILN at any point of the input data. The new numerical value is "EPS" --a free-format, positive, floating-point constant. Consult Section II-B for general information about EPSILN. Interpretation of the $NEW#EPSILN request confirms both the old and the new value for the tolerance. The following illustration is from BENCHMARK DC-12: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------EPSILN change. Old, new = 1.000E-08 1.000E-09 |$NEW EPSILN, 1.E-9, { I-D-7. $MONITOR to display date and time on the computer monitor ---------------------------------------------------------- .el $MONITOR was originally designed to result in the display of this interpeted card image on the CRT monitor, which might be useful if the LUNIT6 output otherwise would be unseen (e.g., it might be sent to disk rather than to the computer CRT monitor). The result would be a single, 132-column line: 51 columns for the interpretation on the left, 1 columns for the vertical separator, and finally the 80-column card image (which begins with the request $MONITOR) on the right. Since the card in question usually should serve to mark some position of special importance (e.g., the final branch card), comment information to inform the user is appropriate. Any such arbitrary text can follow the in-line comment marker "{", of course. So much for the original use of $MONITOR, which was designed before the use of scientific workstations such as Apollo. For dedicated personal computers that have scrollable windows, there is seldom a good excuse for diverting the LUNIT6 output from the window in which the program is being executed. So, there was little use for the $-card. When the idea of a request for the wall-clock 18 Rulebook ATP (junio 1996 - internet) H01 time came to mind, it was easy to switch to this more useful and different meaning. So, for Apollo and some other more modern computers, $MONITOR will still produce the 132-column line of the preceding paragraph, but this is just part of the regular LUNIT6 output. The card index for LUNT10 storage is displayed, as shown by the following illustration: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Send time to CRT monitor. Card NUMDCD = 5492. |$MONITOR { Request t .el But there also is an extra such output that includes the date and the time in the interpretation, and this extra line goes to the CRT screen (Apollo window). An illustration follows: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|---------------------------- Monitor time = 10-Apr-86 14.10.30 |$MONITOR { Request t .el To observe such usage, see the solution to standard test case BENCHMARK DC-3 for the computer of interest. The preceding two examples were taken from the Apollo solution of this data. .LITERAL I-D-8. I-D-9. $LISTOFF to cease outputing interpreted images of input cards $LISTON to resume outputing interpreted images of input cards --------------------------------------------------------------- .el $LISTOFF/LISTON is another universal feature. First a $LISTOFF card tells the EMTP not to display and interpret data cards that follow. This continues until a following $LISTON card is encountered. The purpose of such use generally is to minimize the size of the output file by omitting the listing and interpretation of blocks of data that have been tested and used before. This is particularly advantageous for users of slow computer terminals, in order that solution speed not be inhibited by unneeded output (assuming that it goes to the terminal display). An illustration of such usage is provided by BENCHMARK DC-17. The interpretation is documented by the following two consecutive lines from the LUNIT6 output of the solution: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Turn off input data listing at card 5505 |$LISTOFF, ----- Precedi Turn on input data listing at card 5508 |$LISTON .el Note that two card images, numbered 5506 and 5507 (indices of the EMTP card cache), are invisible in between the two that are seen in the solution. .literal I-D-10. $VINTAGE to choose among alternate data formats ------------------------------------------------ .el $VINTAGE,#M allows the user to choose between old and new data formats on a component by component basis. Here integer constant "M" characterizes the age of the data (only 0 and 1 have meaning so far). Data options will be described later in the manual, along with the components that allow such a choice. Interpretation of the $VINTAGE request is simple enough. was drawn from the solution to BENCHMARK DCPRINT-3: The following Rulebook ATP (junio 1996 - internet) H01 19 .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------New MOLDAT = 1 (data vintage). |$VINTAGE, 1, { Switch fr I-D-11. $STOP to terminate the present solution ---------------------------------------- .el $STOP terminates the present "solution" as quickly as possible. But what exactly is meant by "solution" in this context? As this feature was originally conceived and implemented, the EMTP response to $STOP was the termination of program execution via an immediate, local FORTRAN STOP statement. So much for the original idea, which rapidly was modified to rely upon an installation-dependent module that serves this function: CALL STOPTP. Then a much bigger change came with the concept that EMTP execution should not be restricted to a single data file. Recall that one disk file (a collection of stacked EMTP data cases) after another can now be solved without execution ever terminating. This is for non-SPY usage, wherein execution begins with the opening prompt: .LITERAL EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) : .el When data of a disk file runs out (blank card ending the last EMTP data case), execution returns to this prompt. Well, this is the intended result of $STOP usage, too. Yet operation is necessarily less than perfect, depending upon where execution was when the card was read. All "CIMAGE" can do is set a flag (KILL = -9999) that will be looked for at various places in the program (e.g., the end of each overlay). Since there are hundreds of calls to the module, it is unrealistic to burden the program with a check after each call. So, there will be the hoped for reprompt if nothing illegal to the operating system (e.g., a numerical decode of the character string "$STOP") occurs before the flag is observed. For an example, see BENCHMARK DC-42, the second subcase of which uses $STOP after plot cards. There is no problem with recognition and recovery, it will be seen. Interpretation of the $STOP request is simple enough. The following was drawn from the solution to BENCHMARK DC-13: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Halt execution: "CIMAGE" sets KILL = -9999. |$STOP { Illustrate im I-D-12. $WATCH to request extra, periodic output to CRT ------------------------------------------------ .el $WATCH,#M is used to define the frequency of special, extra output that always goes to the CRT monitor. This really only has meaning if the LUNIT6 output would otherwise be unseen (e.g., it might be sent to disk rather than to the computer CRT monitor). If "M" were 100, then every 100-th input data card would be shown on the CRT monitor. This periodic output is only 80-columns in width, and it begins with the LUNT10 index number, which leaves only 72 columns for the input card image (to the right of a colon). As an illustration, consider the solution to BENCHMARK DC-12, of which one of the more readily recognizable monotoring lines is the following: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------5602 :BLANK card ending branch cards .el Rulebook ATP (junio 1996 - internet) 20 H01 Interpretation of the $WATCH request includes confirmation of the user-specified frequency "M". The following is an illustration drawn from BENCHMARK DC-12: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Paint input data on screen, every 25 -th card. |$WATCH, 25, { Illustrate I-D-13. $COMMENT to toggle the suppression of comment cards ---------------------------------------------------- .el $COMMENT serves to toggle the binary flag that controls the interpreted output of comment cards among input data. Following the first appearance of such a card, comment cards will be discarded and not seen in the LUNIT6 file. A second such request card will return the control to its original state, so that subsequent comment cards will be interpreted and displayed. An example of such usage is provided by BENCHMARK DC-3. As for the interpretation, it confirms the new status of the binary flag: zero means that comment cards are seen, whereas unity means that comment cards are being suppressed. The first usage within BENCHMARK DC-3 is interpreted as follows: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Toggle comment card destruction. New N11 = 1. |$COMMENT { I-D-14. $DEBUG for local control of diagnostic printout ------------------------------------------------ .el $DEBUG,#M is a request to redefine the current diagnostic printout control variable IPRSUP (see the integer miscellaneous data card of Section II-B) to value "M" (an integer constant most often in the range of 0 to 9). Confined to the UTPF overlay currently being executed, this allows redefinition of the DIAGNOSTIC printout level. But when the current UTPF overlay is exited, the effect of the $DEBUG definition is lost. Free-format is used for the ",#M" part, so imbedded blanks are optional here. Printout can be turned off later in the same UTPF overlay using "$DEBUG,#0" (remember that level zero implies none). Use of this $-card does not replace the "DIAGNOSTIC" special-request card of Section II-A (for diagnostic printout control overlay by overlay). In fact, this is why the $-card definition is local to the UTPF overlay in which it is read: because IPRSOV is used to reset IPRSUP every time a new overlay is begun. A somewhat artificial example of such usage is provided by BENCHMARK DCPRINT-5. The interpretation confirms the new value of diagnostic control, of course: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------New IPRSUP = 8 (DIAGNOSTIC value). |$DEBUG, 8, { Illustrativ I-D-15. $UNITS to alter XOPT and/or COPT ------------------------------------ .el $UNITS,#XOPT,#COPT is used to change the two floating-point miscellaneous data parameters that specify the units of input inductance (millihenries vs. ohms) and capacitance (microfarads vs. micromhos). This allows different Rulebook ATP (junio 1996 - internet) H01 21 branches to have different such choices, and it modifies the initial choice that is read from the floating-point miscellaneous data card of Section II-B. Interpretation of the input data confirms the new values for parameters XOPT and COPT. An illustration is provided by BENCHMARK DC-11, from which the following line was taken: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------New XOPT, COPT = 1.59154943E-01 1.59154943E-07 |$UNITS, .1591549431, .15 I-D-16. $PUNCH to flush the buffer that holds punched cards ---------------------------------------------------- .el $PUNCH##is used to flush card images that have accumulated in the punched-card buffer (originally I/O channel number LUNIT7) since the last such usage, or since the last usage of $ERASE -which ever is the most recent. Because $PUNCH involves installation-dependent code, details could vary among different computers. Of course, punched cards have just about gone the way of the dinosaur, so the first question is about the disposition of the card images. Most systems will produce both a separate disk file and also a labeled display of the card images on LUNIT6. For details, consult the appropriate installation-dependent information in Section I-F, and look to established illustrations such as BENCHMARK DC-13. It should always be legal to follow the request by a disk file name that is separated from the preceding "$PUNCH" by a comma and an arbitrary number of blanks. See the illustration immediately below. But be aware that there is no guarantee that all computers will actually send the punched cards to that file. Most should, however. Interpretation of the $PUNCH request is simple enough. The following was drawn from the solution to BENCHMARK DC-13: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request for flushing of punch buffer. |$PUNCH, dc13a.pch .el Immediately after this will follow a listing of the card images being processed, below a 4-line heading that includes an 80-column ruler. The heading will appear as follows (truncated on the right): .literal A listing of 80-column card images now being flushed from punch buffer follo ============================================================================ 1234567890123456789012345678901234567890123456789012345678901234567890123456 ============================================================================ .el After the last card image, there will be a single bounding record to inform the user that card "punching" is done. This will appear as follows (truncated on the right): .literal =========< End of LUNIT7 punched cards as flushed by $PUNCH request >=== .el Rather than place the disk file name on the $PUNCH card itself, it should be possible for him to connect the file manually using a separate, preceding $OPEN statement. Should unusual file attributes be desired or required, this might be needed in exceptional cases. .literal I-D-17. $ERASE to initialize the buffer that holds punched cards --------------------------------------------------------- Rulebook ATP (junio 1996 - internet) 22 H01 .el $ERASE##is used to destroy any card images that might be in the punch buffer at the time this request is encountered. A conservative strategy is to always include $ERASE at the start of data that is designed to result in punched cards, since it is not always clear what might be executed ahead of the data case of interest. Interpretation of the $ERASE request confirms the number of card images in the punch buffer at the time of usage. The following was drawn from the beginning of solution to BENCHMARK DC-13. Note that no punched cards existed at the beginning of execution: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Erase all of 0 cards in the punch buffer. |$ERASE I-D-18. $STARTUP to re-read the STARTUP file --------------------------------------- .el $STARTUP,#file_name is used to read a STARTUP file (see Section I-E-2) immediately, at the instant of time the $-card is read. One or more spaces following the comma after "$STARTUP" are optional. The file name can be any complete, legal specification for the computer being used, not to exceed 32#characters. It is the name of the STARTUP disk file that is wanted at this point of program execution. There must not be a trailing comma (at the end of the file name). An illustration of $STARTUP usage is provided by the first and third subcases of standard test case BENCHMARK DC-37. The following interpretation was taken from the solution of the first subcase, which calls for revised parameters immediately before plotting: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Reinitialize using this STARTUP file. |$STARTUP, DC37STARTUP.DAT I-D-19. $KEY to change card input from LUNT10 channel to keyboard ---------------------------------------------------------- .el $KEY##is used to provide keyboard input of EMTP data cards at some preselected location (the position of the $KEY request) of the program. Maybe when execution begins the user is unsure of some data, and he wants to supply that data later, based on initial program output. This is possible via $KEY, which can be used as often as desired. Each time $KEY is encountered, input will be switched from the normal card image storage of I/O unit LUNT10. Then input cards will be read from the keyboard until the user terminates such interactive input with "END", at which point input will be switched returned to the normal card image storage of LUNT10 at the record immediately following the $KEY request. In terms of card counting, keyboard input does not affect variable NUMDCD of the comment-card interpretation. In effect, keyboard input in extra input. Note that $KEY is for interactive use only. It either provides no assistance at all, or will not function properly, for batch-mode usage. Standard test cases do not illustrate such usage because, if it were added, then the case could not be properly executed in the batch mode. So, if the user wants an illustration, he must make his own. In any case, interpretation should appear as follows: .literal C 1 2 3 4 5 6 7 Rulebook ATP (junio 1996 - internet) H01 23 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Data input next from keyboard (until "END"). |$KEY I-D-20. $BREAK to manually trigger a disaster-level SPY interrupt ---------------------------------------------------------- .el $BREAK##is similar to the preceding $KEY, only here the alternate input is changed to the SPY input channel rather than the keyboard. Of course, the two channels may be the same, for a crude, single-window implementation. But whether or not the input medium or channel is distinct, the destination of the input data is completely different. Whereas $KEY introduces normal EMTP data cards, $BREAK introduces SPY data. Time-sharing has automatically been disabled, so SPY input will continue until the user sends "GO". Of course, $BREAK can only be used with interactive execution (SPY), and this must be selected at the beginning of execution. $BREAK##is much more powerful than $KEY because SPY provides a new dimension of flexibility. For example, the user can modify any EMTP variable using DEPOSIT, and this includes the variable controlling $KEY usage. That is, if the user wants $KEY to be in effect when he leaves SPY with a subsequent "GO", he need only change the value of binary flag KEYBRD from zero to one. Since the disaster-level audible warning of SPY is used by the program in other circumstances, it is natural to employ it here, too. This alerts the user to the fact that the program is ready for interactive input. In the case of apollo, there will be the familiar audible tones of $HONK(10), which are terminated by a simple carriage return in the SPY window. After the last SPY input that is of interest to the user, "GO" will end the SPY input and return control to the batch-mode input that began the interactive operation. If the user wants to switch from SPY input to data card input, he need merely follow the $BREAK request by $KEY of the preceding subsection. They work well together as such an ordered pair. Note that $BREAK is for interactive use only. It either provides no assistance at all, or will not function properly, for batch-mode usage. Standard test cases do not illustrate such usage because, if it were added, the case then could not be properly executed in the batch mode. So, if the user wants an illustration, he must make his own. In any case, interpretation should appear as follows: .literal C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Data input next from SPY (until SPY "GO"). |$BREAK I-D-21. $INCLUDE --- no longer within "CIMAGE" ----------------------------------------- .el $INCLUDE##is a very powerful and important command that once was honored by "CIMAGE". But since the advent of data modularization and sorting by class (see Section I-J), the original code of "CIMAGE" was removed. In its place, fortified and generalized service has been added at the beginning of program execution. So, if the original data had $INCLUDE usage, all of this will have been converted before "CIMAGE" is called for the first time. .literal Ruleboob ATP (junio 1996 - internet) H01e 1 I.E Computer-Dependent Aspects and Alternatives (General) The EMTP has been proven compatible with some two dozen distinctly different computer systems over the years, although at any one time, current program versions typically will be available only for those computer systems that are actively supported by important contacts. It is machine (computer) translation of a Universal Transients Program File (UTPF) that makes such portability possible. Conceived in November of 1974 (see Ref. 13), this procedure utilizes a different Editor/Translator (E/T) program for each different computer system of interest. An E/T machine translates the UTPF, converting it to legal EMTP FORTRAN for the particular installation of interest. This translation is done by program maintenance and hence should not be of concern to normal users. Just keep in mind that all EMTP code actually begins with the same master file (the UTPF), but differs according to the built-in or specially-requested properties of the translation. The need to update UTPF and computer specific code regularly can not be stressed enough. With this in mind, the writing of a common Rule Book for all different computer systems is just a little tricky. Numerical precision is a computer-dependent detail about which a good user should be aware. The precision of INTEGER values is not much of an issue, since all computers in recent years allow adequate precision for all values of interest. Floating-point representation in the form of REAL or COMPLEX variables is the only realistic concern, then. Today, most computers are byteorganized, and they allow REAL*8 and COMPLEX*16 representations, which provide about 15 or 16 decimal digits of precision. Problems of numerical roundoff that once were associated with 36-bit program versions for word machines such as Honeywell, DEC PDP-10 and SYSTEM20, and Univac have largely disappeared. Either such computers are no longer being used for the EMTP, or program versions have been converted to use DOUBLE PRECISION, which provides an enormous 72 bits of floating-point precision. The question of COMPLEX is trickier, since not all vendors allow precision equal to that of DOUBLE PRECISION for this case. Such is the case with Apollo, which was limited to 32 bits of precision up to operating system release SR9.7. From version SR10 onwards, also Apollo now has DOUBLE PRECISION COMPLEX. Fortunately, it is only the "CABLE CONSTANTS" calculation that was affected by this shortcoming. So, while most program users need not be concerned very much with computer precision, they should certainly be aware of what precision is being used. Disk file names are not defined by the ANSI FORTRAN 77 standard. Diskname, pathname, filename and file extension specifications may substantially vary from one system to the other. There are no general rules. Further, beware of the fact that some operating systems (e.g. UNIX, Aegis SR10.x) are case sensitive as far as file naming is of concern. Hence, all program features that rely on such usage (e.g., the "REPLOT" request, $INCLUDE, $PUNCH, etc.) may vary from one computer to another. Most such usage relies upon the FORTRAN OPEN/CLOSE statement, which may involve further variations, and which may not even exist in the intended, dynamic sense (e.g. IBM mainframe can only imitate dynamic opening). Installation-dependent information must be consulted for all such usage. Interactive execution, observation, and control ("SPY") is highly dependent upon the computer system in various ways, beginning with the display possibilities. If available, "windows" should be used for display, of course (see Apollo as an example). The keyboard interrupt will vary from computer to computer. SPY functions that are based on memory location (e.g., "EXAMINE" or "DEPOSIT") might have trouble for some computers. Etc. Ruleboob ATP (junio 1996 - internet) H01e 2 The environment for actually executing the EMTP depends upon the computer being used and also, sometimes, upon the mode of usage (thinking of the difference between "batch mode" and "demand service"). Operating systems will vary with manufacturer, except for the increasingly popular Unix that now is available (but not always used) for almost any computer. Hence, no details that are universal, and applicable to all computers, can be provided. Yet local experts should always be able to advise about such matters. There is another type of difference among program versions that can profitably be described in general terms, however. As summarized in Ref. 17, FORTRAN statements that are highly dependent on computer brand and/or installation usage have been isolated in installation-dependent EMTP modules, e.g. batch mode plotting, random numbers, intrinsic functions, ... If a given organization performs its own translation, such modules might be customized so as to satisfy its own peculiar needs, and Program Maintenance of that organization should thoroughly understand the thinking that is responsible for such changes. But what if an organization receives a FORTRAN copy of the EMTP from some other group? In this case, perhaps nothing will be known about installation-dependent decisions that might be made therein. In order to be able to change some of these decisions if need be, the user must know how to locate the installation-dependent modules of interest. The table of Section IE-1 summarizes such information. Still another aspect of installation-dependent variation is embodied in program "start up" files. For Apollo (and most systems that use this concept), the disk file names are STARTUP and STARTSPY. The idea is simple: rather than building installation-dependent choices into the EMTP FORTRAN, such installation-dependent parameters can be loaded as data at the start of the computer solution of each the data contained in each disk file. Details are provided in Section I-E-2 and I-E-3 (for STARTUP) and Section I-E-4 (for STARTSPY). Let us now start with an overview of the installation-dependent EMTP modules. I.E.1 Summary of Installation-Dependent EMTP Modules This description can be skipped by most program users. It only has limited importance to those who collaborate in program maintenance, as far as the UTPF code is available. The following list summarizes the function of all installation-dependent EMTP modules. Identification is both by module name and UTPF overlay number, in the order of appearance within the UTPF. Physical position is really only an issue for overlaid program versions, of course. Translators typically will connect proper system dependent modules during the translation. Then linkageediting will reference a single, extra file of such modules that is applicable to the computer of interest (e.g., UNIXPCMODS.FOR for AT&T's Unix PC). For a more detailed description of some of the simpler modules, consult comment statements of the UTPF (which contains Apollo copies of the modules), or consult *.RUM files (containing UTPF equivalents of system dependent routines). Modules of UTPF overlay named "MAIN00" and numbered "-1" "WINDOW" is used to open the second window for interactive (SPY) dialogue, and the third window for vector-graphic plotting. All SPY output passes through this routine as well. For workstations (e.g., Apollo or Sun) windows are involved. For other systems, separate terminals could conceivably be used. But Ruleboob ATP (junio 1996 - internet) H01e 3 most commonly, systems not providing windows will involve no opening, and SPY output will simply be sent to LUNIT6 (i.e. the first window). "TGRUNT" finds the current central processor and input/output job times using system library functions, C-language calls or assembler calls. Basically, this is used only for the elapsed-time printout of the case-summary statistics at the end of a solution. Communication is via the vector FLSTAT of "BLKCOM". "DATIME" finds the current date and wall-clock time using system library functions, C-language calls or assembler calls and returns both packed together as the 19-byte character string "dd-mon-yy hh.mm.ss". For the date, which comes first, "dd" and "yy" are two decimal digits for the day within a month, and the year, respectively. The "mon" are three letters indicating the month: the first 3 letters of the name, for English. The following time uses just digits, for hours, minutes, and seconds since midnight. Automatic PL4 plot file naming (for those systems having dynamic OPEN/CLOSE capability of FORTRAN) is based on such text. But of course, users are encouraged to specify a more meaningfull file name via the $OPEN-command. "CIMAGE" reads the next data card from I/O unit LUNT10 where all input card images are stored. The card is decoded as 80A1. There is a check for $cards, all of which are processed locally within "CIMAGE". Comment cards (leading C followed by blank and one text string of maximum 78 characters) are skipped. Note that, for some computer systems (LUNTEX=LUNT10), also the language font file BLOCKD51.BIN is stored on the same logical unit. Then, parameter LIMCRD (i.e. length of the LUNT10-buffer) can cause problems whenever one tries to load too long input data (or several input data, stacked one after the other). "ORIENT" is a module that is referenced only by the text-handling routine "TFLUSH". Control actually is transferred only if oriental-language (e.g., Japanese or Chinese) text is involved in the language font file BLOCKD51.BIN (STARTUP file, card 18, first field). Variable JORIEN of the STARTUP file (card 14, variable 8) either enables or prohibits use of the module: If zero, the module is never called, whereas unity will use the module for both input and output. For Europeans, this routine is without importance : JORIEN always should be zero. "LOCINT" finds the address in memory of the argument, as a number of INTEGER words (total bytes divided by the length of a program INTEGER in bytes). This is used by the EMTP to find the size of certain fixed-dimension arrays of the program (not all code is variably-dimensioned). The memory address can be found, either using a system library function, a C-language call or an assembler call. "RFUNL1" satisfies all library functions of a single, REAL argument using ENTRY points for the numerous functions of interest. Neutral names are used (e.g., "SINZ" is used in place of the usual "SIN" or "DSIN" ). Special limit checking may be placed in the module, to protect against trouble with the operating system (e.g. pixel resolution conversion for Apollo). In addition, the top of the module, before the first ENTRY point, connects the STARTUP file (for program initialization in universal SUBROUTINE RSTART). Remark that the connection to file STARTUP is computer-dependent, whereas reading the STARTUP file is general (even though the STARTUP file can contain computer dependent data). "CEXPZ" satisfies all COMPLEX library functions of a single, COMPLEX input argument. Using complex numbers is system dependent ; some systems only have COMPLEX*8, others have COMPLEX*16 too. ENTRY points are used for the second and later of all such library functions. Ruleboob ATP (junio 1996 - internet) H01e 4 "ATAN2Z" satisfies all REAL library functions of two REAL input arguments. ENTRY points are used for the second and later of all such library functions. The former module name was the otherwise-unused "RFUNL2". "CMPLXZ" satisfies all COMPLEX library functions of two REAL input arguments. ENTRY points are used for the second and later of all such library functions. "AIMAGZ" satisfies all REAL library functions of a single COMPLEX input argument. ENTRY points are used for the second and later of all such library functions. The former module name was the otherwise-unused "RFUNL3". "DLIBRF" provides all DOUBLE PRECISION library functions of a single DOUBLE PRECISION input. Usage began just for overlay 13, for the Semlyen recursive convolution code of that overlay. A SUBROUTINE, not a FUNCTION module, is involved (i.e., the output is carried as a second argument). "DLIBR2" provides all DOUBLE PRECISION library functions of two DOUBLE PRECISION inputs. Usage is by "SEMLYEN SETUP". A SUBROUTINE, not a FUNCTION module, is involved (i.e., the output is carried as a third argument). Modules of UTPF overlay named "ROOT10" and numbered "0" "TAPSAV" is used to dump and/or restore COMMON blocks of UTPF deck "LABCOM" between working memory and auxilairy storage. The auxiliary storage is usually disk, but could be extra RAM. With virtual memory management, the programmer may think he is using RAM, but in fact the operating system is using disk. In any case, the UTPF module assumes that COMMON blocks are stored in RAM memory in order, and can be transferred by means of a single READ/WRITE execution based on LOCINT values of the beginning and the end. The UTPF contains a module that is correct for DEC VAX/VMS, not for Apollo Aegis (as would be expected). Apollo is one of several computers that do not order COMMON blocks regularly. In case of Apollo, the remedy was to produce a fortified variable-dimensioning program "VARDIM" which in turn produces a "TAPSAV" module that dumps or restores each common block individually. "PLTFIL" provides installation-dependent transfer of the output vector to disk or memory as part of plot-file building. If results go do disk, it is via I/O channel LUNIT4. The conversion to single-precision (assuming EMTP computation uses double this precision) is a common function, in order to save disk space and I/O time. Interactive program versions service the ROLLing "PLOT" command of SPY in this routine, too. "VECRSV" and "VECISV" provide for the dumping and restoring of isolated vectors during the steady-state phasor solution and node renumbering of UTPF overlays 6-11. The first is for REAL vectors, whereas the second is for INTEGERs. UTPF (Apollo) code may not be usable by computers with overlaying because it stores vectors in the working space of UTPF overlay 20 (i.e., in /C20B01/ of "DECK20"). Modules of UTPF overlay named "OVER1" and numbered "1" "SYSDEP" performs various system-dependent initializations at the start of execution of a new EMTP data case, before the first data card is read. The former "MIDOV1" can be built in as an ENTRY point if needed (no such use for Apollo, though). Once a major module, much of the original size was lost when the concept of the STARTUP file was adopted. File OPEN and CLOSE operations are the most conspicuous remaining function. Ruleboob ATP (junio 1996 - internet) H01e 5 Modules of UTPF overlay named "OVER16" and numbered "16" "YSERLC" is universal source code, but it is used only by SPY. Since SPY is computer-dependent, some program versions will not have "YSERLC". "ANALYT" provides for user-defined sources in case of "ANALYTIC SOURCES USAGE". Also, the SPY code uses this module to service any "RAMP" requests at each time step. Modules of UTPF overlay named "ROOT20" and numbered "28" This is the only section of source code that can be forwarded to all program users. It allows the user to support just any graphical library. Overlay 20 includes batch-mode EMTP plotting that is accessed by overlay number NCHAIN = 28. Although the character mode of such plotting is universal, the vector-graphic mode is highly dependent upon the plotting interface that is used. The UTPF contains Apollo modules, which allow both screen plotting (with reliance upon Apollo Graphics Primitives or GPR) and also Benson plotting. However, the Benson (or CalComp-like) subroutines are proprietary, and can not be distributed along with any EMTP version. Such plotting routines must be acquired and appended at linkage-editing time by the user. In the UTPF module, dummy ENTRY points for all of the real Benson externals of the previous paragraph have been added, so that Apollo users without such Benson pen plotters will have a "clean" BINDing (linkage-editing). If Benson pen plotting is to be used, such externals must be removed, of course. Other interfaces have been developed too: Postscript, HPGL, CalComp, GKS, CGI, GDDM, PLOT10, X-WINDOWS. Please contact LEC for more details. "BEGPLT" is called by the principal plotting module "SUBR28" before any vector-graphic plotting is done, for each data case. Arbitrary system-dependent initialization is possible. "ENDPLT" is called by the principal plotting module "SUBR28" after all plotting of a given data case is completed. Arbitrary system-dependent termination (e.g., CalComp buffer flushing) is possible. "PLOTXX", "NEWPXX", "SYMBXX", "FACTXX", "SCALEX", "LINEXX", "NUMBXX", "AXISXX", and "GRIDXX" are vector plotting modules with neutral names; they provide functions comparable to those of the CalComp plotting modules "PLOT", "NEWPEN", "SYMBOL", "FACTOR", "SCALE", "LINE", "NUMBER", "AXIS", and "GRID", respectively. The UTPF modules involve calls to Apollo Graphics Primitives or GPR, as previously mentioned. At the bottom is the optional call to Benson plotting, as verified by Dipl. Ing. Bernd Stein of FGH in Mannheim, West Germany. "ADVANZ" exists in the UTPF only because flat-bed plotters that require the rolling of paper over a stationary bed once were used. It dates to 1979 and earlier, when such an EAI plotter was used with BPA's CDC-6500 computer. Yet Apollo has no such usage, and the call to this routine was commented out in the UTPF during 1988. Ruleboob ATP (junio 1996 - internet) H01e 6 Modules of UTPF overlay named "OVER21" and numbered "21" "FLAGER" is a SPY utility that checks for user-keyed data since the last such service. Execution may hibernate within the module until the user sends new data. "HONKER" is a SPY utility which issues an audible alarm (i.e., it rings the bell of the terminal or monitor being used). "APPEND" services the "APPEND" command of SPY. It is mostly universal, but is installation-dependent due to the reliance upon common event flags and interprocess communication. "PROMPT" is used to output SPY prompts. It dumps the 80-byte character string PROM80 in the SPY window, while holding the position of the cursor (if possible) ready for a user-keyed response immediately to the right of the prompt. In some way, following routines are a duplication of efforts already made to include batch mode plotting. Similar, interfacing routines could service both batch mode as well as SPY plotting. But the efforts made by LEC to reduce and standardize the number of graphical routines never was accepted by program development. "VECPLT" produces vector-graphic plots for the "PLOT" command of SPY. The Apollo module of the UTPF is installation-dependent because it uses the Apollo Graphics Primitives to paint the screen. Other translations use GKS, Core, and X-WINDOW graphics. "SYMTEK" is called by the immediately-preceding "VECPLT" to output an identifying symbol at specified coordinates of a vector plot of SPY. For most systems, the letters "A", "B", etc. are used to so identify curves, for simplicity. "CHRSIZ" is called by the preceding "VECPLT" to change the size of subsequent character output on a vector plot. It is not used for Apollo, but certainly would be for Tektronix PLOT10. "TGRID" is called by the preceding "VECPLT" to apply a rectangular grid to a vector plot of SPY. I.E.2 STARTUP Disk File for Program Initialization The disk file that will be used by all computer systems to initialize installation-dependent variables at the beginning of a solution of a new data case is the STARTUP file. Possibly the name will be different for some computers or installations, since the installation-dependent FUNCTION RFUNL1 connects this. In any case, a representative sample of STARTUP for Apollo is shown immediately below. Ruleboob ATP (junio 1996 - internet) H01e 7 1 RHIGH EPSZNO EPWARN EPSTOP EPSUBA EPDGEL EPOMEG SZPLT SZBED TENFAC 1.D+10 1.D-8 1.D-3 0.1 100. 1.D-16 1.D-15 10.0 72.0 10. 2 SIGMAX TENERG DEGMIN DEGMAX ZNOLIM(1), (2) STATFR ZNVREF XMAXMX AINCR 4.0 1.D+20 0.0 360. 1.0 1.5 60.0 1.E-6 2.0 .05 3 FREQFR HLETT1 Unused VHS VS VH TAXISL VAXISL FILL1 FILL2 60. .12 8.0 1.0 10. 5.0 4.0 1.0 1.0 4 TOLRCE FHTAX FXSUP FYSUP FXTIT FYTIT VPLOTS VPLOTL VPLOTH FTCARR 8.E-5 0.5 0.3 -0.03 0.10 0.15 1.0 5.0 6.0 1.0 5 FXNUMV FXNUMH FVAXTT FXVERT TIMULT TIMTAC OVRLAP FLZERO EPSILN FLTINF 1.5 5.0 -7.5 0.0 1.0 0.0 0.0 1.D-12 1.D-8 1.D+19 6 XHEADM YHEADM HGTHDM XCASTI YCASTI HGTCST XLEGND YLEGND HGTLGN PIXPUN 2.5 8.75 0.2 0.5 8.0 .12 0.5 1.75 .12 80 7 XALPHA YALPHA HGTALF D4FACT PEKEXP EPSLRT EPSPIV PLMARK FACOSC 1.5 0.0 .12 1.0 43. 1.E-12 1.E-16 1.0 0.3 8 NMAUTO INTINF KOL132 MUNIT5 MAXZNO IPRSPY IPRSUP LNPIN MINHAR MAXHAR 1 9999999 132 5 50 0 0 6 0 9 9 NFORS2 NIOMAX MRGN LINLIM MPAGE MODE28 KPGRID KPEN(1) KPEN(2) KPEN(3) 10 10 2 100 0 1 0 1 1 1 10 ..(4) KOMLEV NSMTH MODSCR KOLALP MAXFLG LIMCRD LCHSUP LCHTIT LCHXAX 1 -1 50 2 5 1 4000 1 2 0 1 LCHYAX NXINCH NYINCH NXOFF NYOFF NSMPLT KOLWID KOLSEP JCOLU1 KSLOWR 0 74 68 100 40 50 11 1 0 5 2 KSYMBL NOBACK KOLEXM LTEK NCUT1 NCUT2 INCHPX INCHPY LCHFIL LCHLIM 200 1 60 1 1 1 2 2 0 0 13 NXID6 NYID6 MAXSYM IHS LIMCOL KLEVL KEXTR NXMAX NYMAX IZGR1 10 330 3 3 79 0 0 511 430 0 14 IZGR2 LTIC NXVERN LRLIM KASEND LUNDAT KTRPL4 JORIEN LIMPNL LUNTEX 0 7 30 75 5 3 0 0 200 11 5 KINSEN LISTON LIMTAC NOCALC MFLUSH L4BYTE KOMPAR 1 0 25 0 1000 0 1 6 LUNIT1 LUNIT2 LUNIT3 LUNIT4 LUNIT5 LUNIT6 LUNIT7 LUNIT8 LUNIT9 LUNT10 1 2 3 -4 5 6 7 8 9 10 17 KS(1) KS(2) KS(3) KS(4) KP(1) KP(2) KP(3) KP(4) 1 1 502 500 1 513 502 500 18 Name of language text file ] Window] SPY @K file name ] Central Monte file] /wsm/blockd51.bin junk inclspy .dat //b/wsm/parallel.lis 9 SSONLY CHEFLD TEXNAM CHVBAR BRANCH TXCOPY USERID -TRASH -TERRA CHRCOM PHASOR E DUM | NAME COPY WSMTHL ...... TERRA C {}$, 0 DATTYP LISTYP PCHTYP PL4TYP EFIELD FMTPL4 -BLANK .dat .lis .pch .pl4 10E8.0 Remark that each data card with meaningful numbers is (and must always be) preceded by a comment card, upon which the card number and variable names can conveniently be remembered. There are a total of 20 cards, beginning with seven cards of floating-point values (read as 10E8.0 data), followed by ten cards of integers (cards 8-17, read as 10I8 data), followed by one card of variablelength text, terminated by two cards of ALPHANUMERIC text (A6 names). Before giving a short description of the meaning of all parameters of the STARTUP file, one key item should be clear to all users: the meaning of the variables can (and will be) highly computer/system dependent. This is especially true for those parameters that are related to graphics (be it batch mode or SPY plotting). But also file names and file extensions might depend on the operating system being used. Regardless of what definitions may follow in words on the pages to follow, the computer code will do what it wants. The screen pixel values provide a good example. When the STARTUP file first was conceived, Apollo had a single standard, monochrome, resolution of 800 by 1024 pixels. Then, during late 1986, Ruleboob ATP (junio 1996 - internet) H01e 8 the new DN3000 offered a higher resolution of 1024 by 1280 pixels. Many Apollo networks (including LEC's) involve mixtures of such hardware. Rather than have two different STARTUP files (which would be logical, cfr. EGA, VGA on PC386), it was decided during October of 1988 that Apollo users would continue to use the old pixel values in the STARTUP file, but that installation-dependent code of "RFUNL1" would modify these "appropriately" should a high-resolution monitor be installed. This might not be the optimal solution (it even could lead to confusion), but this is the way program maintenance tried to get rid of pixel problems. Another example is for the GEOGRAF software used with the MS-DOS version: all pixel values are ignored since a CalComp-compatible interface is used for all vector-graphics. To conclude, any specific computer can easily modify or ignore pixel-related data. At the same time it is agreed that this might not be transparant to the users. Furthermore, the STARTUP file is continuously extended. The most serious drawback of this growth is that parameters for different applications are mixed. To circumvent this drawback from the user's point of view, section I-E-3 will list all relevant parameters, ordered per topic of interest (e.g. batch mode plotting, SPY plotting, tolerances, STATISTICS, etc.). Anyway, let us discuss the data cards one by one now. Card 1. 1st Miscellaneous Floating-point Numbers -------------------------------------------------------------------------------1 RHIGH EPSZNO EPWARN EPSTOP EPSUBA EPDGEL EPOMEG SZPLT SZBED TENFAC 1.D+10 1.D-8 1.D-3 0.1 100. 1.D-16 1.D-15 10.0 72.0 10. -------------------------------------------------------------------------------Parameters: RHIGH: a near-infinite value of resistance. The program may add such resistance internally, for reasons of connectivity (e.g., in parallel with the Type-99 pseudo-nonlinear resistance element). It should be low enough so as to be legal, yet high enough so that no numerical problems (e.g., overflow) result. The reciprocal of 100 times FLZERO (see card 5, variable 8) is commonly used. EPSZNO: Convergence tolerance for the Newton ZnO iteration. This is just a default value. It can be redefined by a "ZINC OXIDE" request (see section II-A39). EPWARN: Nonfatal warning tolerance .. Newton ZnO iteration. This is just a default value. It can be redefined by a "ZINC OXIDE" request (see section II-A39). EPSTOP: Fatal error tolerance for the Newton ZnO iteration. This is just a default value. It can be redefined by a "ZINC OXIDE" request (see section II-A39). EPSUBA: Normalized damping index Rp/(2*L/DT) for the Type-59 S.M. This is just a default value. It can possibly be redefined by a Class 2 S.M. "TOLERANCES" request of Chapter VIII. EPDGEL: Warning convergence tolerance for the Type-59 S.M. This is just a default value. It can possibly be redefined by a Class 2 S.M. "TOLERANCES" request of Chapter VIII. EPOMEG: Fatal error tolerance for the Type-59 S.M. This is just a default value. It can possibly be redefined by a Class 2 S.M. "TOLERANCES" request of Chapter VIII. Ruleboob ATP (junio 1996 - internet) H01e 9 SZPLT: height of the plotter paper, in [inches], for the batch-mode vector plotting. This is the parameter that can be changed by means of a "PLOTTER PAPER HEIGHT" request (see Chapter XIV). SZBED: the limiting plot length in [inches], for the batch-mode vector plotting. This was originally used for flat-bed plotters (mnemonically, "size of bed"), which had a clear maximum. It now can be used to place graphs in a more economical way above or next to a previous plot (see Chapter XIV). TENFAC: a temporary variable that is used to multiply FLZERO (see number 8 on card 5), to produce a larger near-zero tolerance TENFLZ. Naming comes from the fact that the fixed value 10.0 was used for this factor at one time. Ruleboob ATP (junio 1996 - internet) H01e 10 Card 2. 2nd Miscellaneous Floating-point Numbers -------------------------------------------------------------------------------2 SIGMAX TENERG DEGMIN DEGMAX ZNOLIM(1), (2) STATFR ZNVREF XMAXMX AINCR 4.0 1.D+20 0.0 360. 1.0 1.5 60.0 1.E-6 2.0 .05 -------------------------------------------------------------------------------Parameters: SIGMAX: Indirect measure for the probability for negative switch opening/closing times for STATISTICAL switches following a Gaussian (not uniform) distribution law (see section VI.B.1). For Gaussian distributions, SIGMAX*σ is the point at which the "tails" of the distribution will be truncated, for purposes of calculating the random switching times. The value of 4.0 has been used for years without complaint. Then, the probability for negative switch opening/closing times is smaller than 0.005%. TENERG: the time (in seconds) for table dumping of Monte Carlo simulations. * Why table dumping ? Recall that by definition, results for every energization are identical, up to the moment of the first random event. Hence, in order to speed up calculations for each energization, it would be a good idea to store the deterministic situation that exists prior to the first random event. Because of the probabilistic nature of a Monte Carlo simulation, the exact moment of the first random event is not known a priori. But based on statistical theory, the probability is very low (<0.005%) to have any switching action 4σ before the average value of the smallest average switch opening/closing time. * Valid time specifications: - a time, expressed in seconds. Such specification is not recommended, for reasons explained before (one cannot be sure to start from the same, deterministic situation for each successive energization). - a very large positive value (e.g. 1.D+20). This is a flag used by the program to set the moment of table dumping equal to a value 4σ before the average value of the smallest average switch opening/closing time. This option is recommended, since it will avoid repetitive resimulation of the previous deterministic solution for each successive energization. - a very large negative value (e.g. -1.E10), not zero, will make sure that table dumping takes place at time zero. This will be time consuming because the full deterministic case will be calculated repeatedly (i.e. for each successive energization). DEGMIN, DEGMAX: parameters defining the time window that describes extra random delay for STATISTIC switches (see section VI.B). Recall that such extra random delay follows a uniform distribution rather than a Gaussian distribution. This extra random delay is not expressed in the usual units of time (e.g. seconds), but rather in degrees based on the synchronous power frequency STATFR (cfr. 7th parameter on this card). DEGMIN is the beginning angle, whereas DEGMAX is the ending angle to define the time window. It is integer miscellaneous STATISTICS data parameter ITEXT (see section II.C) that decides whether this extra random delay should be applied to none, to all, or only to the closing or only to the opening STATISTICAL switches. ZNOLIM(1) and ZNOLIM(2): parameters that control Newton ZnO iterations. Both values can be specified either via the STARTUP file, or via the special "ZINC OXIDE" request (see section II-A-39). STATFR: the default synchronous power frequency in [Hertz]. This is the parameter that can be changed by means of a "POWER FREQUENCY" request (see Ruleboob ATP (junio 1996 - internet) H01e 11 section II-A-27). Note that a STARTUP file from North America will normally contain a value of 60 Hz, but that many in the world will want to change this to 50 Hz. STATFR is important for branch cards (XOPT and COPT - see chapter VI), for synchronous machine modelling (chapter VIII), but also for STATISTICAL studies (e.g. DEGMIN and DEGMAX - section VI-B). ZNVREF: an indication for the FORTRAN COMPLEX precision that is used by "CABLE CONSTANTS". If there is full precision (generally 64 bits), set this value to zero. Such is the case for IBM, VAX, Apollo SR10.x and most other computers. But for reduced precision (the case for Apollo SR9.7 which has only singleprecision COMPLEX), the value is interpreted as a reachable tolerance. XMAXMX: a per unit value that is expected to limit all variables that are to be tabulated statistically at the conclusion of a "STATISTICS" or "SYSTEMATIC" simulation. XMAXMX can also be set using the STATISTICS DATA-request (see section XV-A). The base value to which the per unit values of the STATISTICS of SYSTEMATIC output are referred to, can be specified using a special request card. This is explained in section XV-B (parameter "BASE" - cols. 3-10. For the original case of voltage tabulations, a value of 2.0 has been used satisfactorily for years. Actually, there is an additional, hidden factor of safety equal to five. But for current, power or energy, per unit values may be much less predictable, so extra care might be required. In any case, XMAXMX is used only to reserve storage for the tabulation; it does not otherwise affect results. AINCR: the per unit compartment size or per unit voltage increment used for statistical tabulations that conclude a "STATISTICS" or "SYSTEMATIC" simulation (think of it as the resolution of a bar chart). AINCR can also be set using the STATISTICS DATA -request (see section XV-A). The base value to which the per unit values of the STATISTICS of SYSTEMATIC output are referred to, can be specified using a special request card. This is explained in section XV-B (parameter "BASE" - cols. 3-12). Card 3. Frequency, batch mode plotting and SPY plotting floating point numbers -------------------------------------------------------------------------------3 FREQFR HLETT1 Unused VHS VS VH TAXISL VAXISL FILL1 FILL2 60. .12 8.0 1.0 10. 5.0 4.0 1.0 1.0 -------------------------------------------------------------------------------Parameters: FREQFR: the old (last-used) fundamental frequency of the interactive Fourier series calculation. For usage, see the "FOURIER" subcommand of the "PLOT" command of SPY (chapter XVI). Normally this value will be identical to that of STATFR (card number 2). HLETT1: the height of vector graphics batch-mode lettering for the table of curve numbers and symbols on the right edge of the plot. Beside each curve number and symbol is a sample horizontal line. Unused: Formerly HLETT2, the height of vector graphics batch-mode plot lettering for the 16-character super title only. It is variable HGTHDM on Card 6 that now carries this information. VHS: the height of the vertical axis for vector graphics (batch mode plotting). VS: the height of the lower end of the vertical axis for vector graphics (batch mode plotting). Ruleboob ATP (junio 1996 - internet) H01e 12 VH: the height of the plot paper being used for vector graphics (batch mode plotting). TAXISL: the length of the horizontal axis as used for both vector and character graphs (SPY plotting). The value "5.0" is five inches, as used with the halfwidth Apollo plot window (see pixel specifications KP(1) through KP(4) on card number 17). VAXISL: half of the length of the vertical axis, as used for vector-graphics (SPY plotting). The value "4.0" is used with the 2/3-rds height Apollo plot window (see pixel specifications KP(1) through KP(4) on card number 17). FILL1: This parameter is related to SPY vector-graphic plotting. It further is computer-dependent : a) on Apollo : the fill-in or visibility factor of the first of two possible superimposed grids of SPY vector-graphic plotting. Grids are in fact drawn with dashed lines, and this is the fraction of drawing (as opposed to spacing). Unity gives a solid grid, which is usually good enough for at least one of the grids. If two grids are used (so horizontal and vertical lines every half unit, for more accuracy), then one may be dashed for distinguishability. Related parameters are: IZGR1 (card 13) and NCUT1 (card 12). b) on Salford : Color of SPY "PLOT" axes and their numbers. The floatingpoint number will be moved to an INTEGER variable prior to its use, so FILL1 should be an integer (e.g. : "13."). FILL2: This parameter is related to SPY vector-graphic plotting. It further is computer-dependent : a) on Apollo : the fill-in or visibility factor of the second of two possible superimposed grids of SPY vector-graphic plotting. See FILL1 for possible values. Related parameters are: IZGR2 (card 14) and NCUT2 (card 12). b) on Salford : Color of SPY "PLOT" legend, which begins with the text "Graph Number", followed by date and time, etc. The floating-point number will be moved to an INTEGER variable prior to its use, so FILL2 should be an integer (e.g. : "13.") Ruleboob ATP (junio 1996 - internet) H01e 13 Card 4. SPY "PLOT" Controls (Floating Point) -------------------------------------------------------------------------------4 TOLRCE FHTAX FXSUP FYSUP FXTIT FYTIT VPLOTS VPLOTL VPLOTH FTCARR 8.E-5 0.5 0.3 -0.03 0.10 0.15 1.0 5.0 6.0 1.0 -------------------------------------------------------------------------------- Parameters: TOLRCE: the square of the maximum distance that a point can depart from a curve and yet still be discarded (in order to speed plotting and minimize storage) (SPY plotting). A value of zero or blank means that all points will be plotted (i.e., none will be discarded). FHTAX: the fractional height to place the horizontal axis (SPY plotting), should there be no zero level for natural placement of the horizontal axis. The fraction is expressed in terms of the vertical-axis height, so that zero will place the horizontal axis at the bottom of the vertical axis, whereas unity will place it at the top of the vertical axis. FXSUP: the fractional horizontal offset for the start of the single-line super title (SPY plotting). The fraction is expressed in terms of the horizontal-axis length, so that zero will begin the super title at the left end of the horizontal axis, whereas unity (never used) would place it off the right side, beginning at the right edge of the horizontal axis. FYSUP: the fractional vertical offset for the start of the single-line super title (SPY plotting). The fraction is expressed in terms of the vertical-axis length, so that zero will place the super title at one end of the Y-axis, whereas unity would place it at the other. Note that "one" and "the other" are used rather than "bottom" and "top," due to the inverted pixel addressing of some computers. This is the case with Apollo, for which the "-0.03" value will place the line just above the top edge of the Y-axis. FXTIT: the fractional horizontal offset for the start of the multi-line case title (SPY plotting). The fraction is expressed in terms of the horizontal-axis length, so that zero will begin the case title at the left end of the horizontal axis, whereas unity (never used) would place it off the right side, beginning at the right edge of the horizontal axis. FYTIT: the fractional vertical offset for the start of line one of the multiline case (SPY plotting). The fraction is expressed in terms of the verticalaxis length, so that zero will place the super title at one end of the Y-axis, whereas unity would place it at the other. Note that "one" and "the other" are used rather than "bottom" and "top," due to the inverted pixel addressing of some computers. This is the case with Apollo, for which the ".15" value will begin the case title at a fraction equal to 15/100-ths of the height of the Yaxis below the top edge of the Y-axis. VPLOTS: the vertical position of the lower end of the Y-axis of a vector plot, expressed in inches (SPY plotting). VPLOTL: the span or length of the vertical axis, expressed in inches (SPY plotting). VPLOTH: the vertical position of the top end of the vertical axis, expressed in inches (SPY plotting). Note: VPLOTS + VPLOTL = VPLOTH. Ruleboob ATP (junio 1996 - internet) H01e 14 FTCARR: the factor controlling vertical, interline spacing of text in case of a vector plot created using the SPY "PLOT" feature. The vertical pixels of one line are displaced from those of the next line by FTCARR times the height of the letters. Hence a value of unity provides no extra space (single spacing), whereas the value 2.0 would provide double spacing. Card 5. More SPY "PLOT" Controls, and Miscellaneous (Floating Point) -------------------------------------------------------------------------------5 FXNUMV FXNUMH FVAXTT FXVERT TIMULT TIMTAC OVRLAP FLZERO EPSILN FLTINF 1.5 5.0 -7.5 0.0 1.0 0.0 0.0 1.D-12 1.D-8 1.D+19 -------------------------------------------------------------------------------Parameters: FXNUMV: the factor controlling vertical positioning of the numbering on the horizontal axis of a vector plot (SPY plotting). This multiplies the letter height in pixels to provide an offset from the horizontal axis. Due to possible inversion of vertical pixel counting, the sign may depend on the computer system (see FYSUP, card number 4). But the magnitude is clear: larger FXNUMV means further vertical separation from the horizontal axis, at a rate of one line for every change in value of unity. FXNUMH: the factor controlling horizontal positioning of the numbering on the horizontal axis of a vector plot (SPY plotting). This multiplies the letter width in pixels to provide an offset from the left edge of the horizontal axis. By changing this value by unity, the numbering will shift either left (if negative) or right (if positive) one character position. FVAXTT: the factor controlling horizontal positioning of the vertical axis label of a vector plot (SPY plotting). This multiplies the letter width in pixels to provide a horizontal offset from the vertical axis. By changing this value by unity, the numbering will shift either left (if negative) or right (if positive) one character position. FXVERT: the factor controlling the horizontal positioning of the vertical axis of a vector plot (SPY plotting). If zero, the vertical axis will obtain its normal horizontal positioning. If nonzero, the user is forcing horizontal placement of the vertical axis. There is a linear variation between the left edge of the horizontal axis and the right edge, as this control varies from zero to unity. The value 0.5 will place the vertical axis right in the middle of the horizontal span. Ruleboob ATP (junio 1996 - internet) H01e 15 TIMULT: the scaling factor associated with the time units specifier IHS (SPY plotting). Here IHS is the integer code for user-selected time units (see card 13). The code and the scaling factor must correspond, of course. Possible values are: IHS 1 2 3 4 5 6 7 TIMULT 360*FPOWER FPOWER 1. 1.E3 1.E6 1. 1. 8 1. Meaning degrees, based on power frequency cycles, based on power frequency seconds milliseconds microseconds Hertz (linear scale) log to the base of 10 of Hertz (semilogarithmic scale) log to the base of 10 of Hertz (double-logarithmic scale) TIMTAC: a default value for the time (in units of seconds) before which all TACS warning messages will be suppressed. A value of zero means no such suppression will occur, of course. One can change the initial value being defined here, using the "TACS WARN LIMIT" request (see section II-A-35). For a limit on the number of printed messages, see LIMTAC on card 15. OVRLAP: the fractional overlap of the time axis, between the old plot that is ending and the next plot that is just beginning, for "ROLLV" usage (rolling vector plot) within the "PLOT" command of SPY. A value of zero means that there will be no overlap, whereas unity would mean complete overlap (the absurd case where no progress at all is made). A value of one half would mean that the right half of the old plot would be reproduced in the left half of the new plot before rolling continued, when a new page was called for. FLZERO: a near-zero tolerance that allows room for lots of roundoff during counting and arithmetic. For 64-bit computation, the value 1.D-12 has been used successfully for years, even though the choice is highly conservative (there really is more precision). EPSILN: the default value for the matrix singularity tolerance (see section IVA). This value can later be modified by a nonblank field (EPSILN) of the floating-point miscellaneous data card (cols. 17-24), or by a "$NEW EPSILN" card (see section I-D-6). FLTINF: A very large floating point number. Since certain calculations may internally use this value, which may subsequently be squared, this commonly is set close to the square root of the largest floating point number that can be represented. Because it is useful for all computers to employ the same value, the minimum floating-point limit of a little over 1.E+38, which applies to DEC VAX-11 computers, is commonly used. The square root of this, 1.E+19, is still so big as to appear infinite for just about any computation of engineering significance. Ruleboob ATP (junio 1996 - internet) H01e 16 Card 6. 1st batch mode vector Graph Controls (Floating Point) (see chapter XIV for more details) -------------------------------------------------------------------------------6 XHEADM YHEADM HGTHDM XCASTI YCASTI HGTCST XLEGND YLEGND HGTLGN PIXPUN 2.5 8.75 0.2 0.5 8.0 .12 0.5 1.75 .12 80 -------------------------------------------------------------------------------Parameters: XHEADM: the "X" coordinate where the 16-character graph heading label of a vector graphics plot is to begin. This defines the left edge. YHEADM: the "Y" coordinate where the 16-character graph heading label of a vector graphics plot is to begin. This defines the bottom of the single-line heading. HGTHDM: the height of lettering to be used for the 16-character graph heading label of a vector graphics plot. XCASTI: the "X" coordinate where the 78-character case title line of a vector graphics plot is to begin. This defines the left edge. YCASTI: the "Y" coordinate where the 78-character case title line of a vector graphics plot is to begin. This defines the bottom of the single-line heading. HGTCST: the height of lettering to be used for the 78-character case title line of a vector graphics plot. XLEGND: the "X" coordinate where the plot legend (6-character user identification, date, time, plot variables) of a vector graphics plot is to begin. This defines the left edge. Usually the plot legend is placed at the bottom of the plot, toward the left. YLEGND: the "Y" coordinate where the plot legend of a vector graphics plot is to begin. This defines the bottom of the first of several lines. HGTLGN: the height of lettering to be used for the plot legend. PIXPUN: the number of screen pixels per unit length for batch-mode screen plotting ("CALCOMP PLOT" sent to the screen). Although not exact for most CRT screens, the same figure is used for both horizontal and vertical dimensions. This value is of no importance for real plotter output. Card 7. 2nd batch mode vector Graph Controls tolerances(Floating Point) (see chapter XIV for more details on vector graphs) and miscellaneous -------------------------------------------------------------------------------7 XALPHA YALPHA HGTALF D4FACT PEKEXP EPSLRT EPSPIV PLMARK FACOSC 1.5 0.0 .12 1.0 43. 1.E-12 1.E-16 1.0 0.3 -------------------------------------------------------------------------------Parameters: XALPHA: the "X" coordinate where the multi-line subheading text of a vector graphics plot is to begin. This defines the left edge of the 78-character lines. Ruleboob ATP (junio 1996 - internet) H01e 17 YALPHA: the "Y" coordinate where the multi-line subheading text of a vector graphics plot is to begin. This defines the bottom of the first (the top) line of such a multi-line subheading. HGTALF: the height of lettering to be used for the multi-line subheading of a vector graphics plot. D4FACT: This parameter is system dependent, but is related to batch mode vector graphics : a) On most computer systems : the initial value of the batch-mode vector graphics magnification factor. A value of unity means full size. Later, this value could be altered by a "SCALE" request (key word of columns 3-7) during batch-mode plotting (see chapter XIV). Variable D4FACT originally was the argument of the CalComp routine "FACTOR", so it is the reciprocal of variable SS of the "SCALE" request (see chapter XIV). b) On Salford : Any positive value indicates a delay time (in seconds) that each batch-mode (CalComp) plot is held on the screen once it is completed. If negative, the program will wait for a <CR> before erasing the screen and switching to text mode for the reading the next plot cards. In case of batch file running, usage of a negative D4FACT should be avoided, it should be noted ; in a batch file, one redirects standard input, hence <CR> no longer can be activated. PEKEXP: the largest argument used with the library function "CEXPZ" (complex exponential). This is not a limitation of the library function, but rather of the usage within the "CABLE CONSTANTS" code. First, take the largest number that the computer can represent (about 10**38 for Apollo) using COMPLEX. Next, if division by a complex number requires the squaring of it (as seems to be the case for Apollo), take the square root of this: about 10**19 for Apollo. Finally, PEKEXP is the natural logarithm of the result. EPSLRT: the convergence tolerance ("epsiln") of the LR-transform ("LRT") that is used to calculate eigenvalues within the "LINE CONSTANTS" code. For maximum precision of the eigenvalue calculation, EPSLRT should be set to the precision limit of the floating-point variables being used. For 64-bit computation, this is about 16 digits, of course. There is no problem with being too close to the precision limit, since any positive tolerance can be met (the LR algorithm seems to drive the subdiagonal elements arbitrarily close to zero). On the other hand, using a value smaller than the precision limit of the computer would seem to add numerical effort, but with no improvement in the accuracy of the resultant eigenvalues. Hence it is not recommended to use a value smaller than the precision limit of the computer. See also related parameter LRLIM (card 14). EPSPIV: the minimum pivoting tolerance of the "LINE CONSTANTS" code. This is used only for for the eigenvector calculation, which results in the modal transformation matrix [Ti]. PLMARK: the multiple of a default value for the number of symbols that will be used to mark each batch mode vector graphics curve. The value unity is a request for the default number of markings, which corresponds to one symbol each unit (each inch in the U.S.A. and Belgium) before the discarding of data points that are not significant (see "smoothing" of variables - chapter XIV). Two would give twice the default number, and half would give about half, or none if the number would be less than unity (because of INTEGER truncation). Hence any very small value for PLMARK (e.g., 1.E-8) is guaranteed to suppress all curve marking. Ruleboob ATP (junio 1996 - internet) H01e 18 FACOSC: the scaling factor for corrections of the Newton iteration of coupled nonlinear elements if there is oscillation. To disable all such scaling, make this non-positive. Card 8. 1st Miscellaneous Integers -------------------------------------------------------------------------------8 NMAUTO INTINF KOL132 MUNIT5 MAXZNO IPRSPY IPRSUP LNPIN MINHAR MAXHAR 1 9999999 132 5 50 0 0 6 0 9 -------------------------------------------------------------------------------Parameters: NMAUTO: the binary flag that controls automatic branch/switch naming (default names such as "LIN001", etc. - see section II-A-41 for the AUTO NAME request). Root names for any such naming come from the language text file (usually referred to as BLOCKD51.BIN - see card 18), so they could be language-dependent. Setting NMAUTO to unity means that there will be such names automatically. Careful with NMAUTO = 1, however. It could lead to a PL4 file header which is too long (i.e. too much node names) for TPPLOT or PCPLOT ! Change NMAUTO to zero if no such default branch/switch names are desired. Note: 1. Why branch naming ? It avoids problems related to the unique reference to a particular branch in case of parallel branches or switches. 2. How to perform branch naming ? Branch naming can be done manually (via the BRANCH NAME request-see DC4) or interactively (via SPY). INTINF: the largest integer that can ever be used by the program for indexing. For machines using INTEGER*4, the artificially reduced limit that is one short of 10**7 is used for convenience. Since this value is sometimes assigned internally as a flag, and can then be sent to LUNIT6 (particularly as part of DIAGNOSTIC printout), excessive values that might overflow output formats should be avoided. KOL132: the LUNIT6 output column width. Popular choices are 80 and 132. Although the time-step loop output can be any width, many other structures only have these two standard choices. Hence it is recommended that the user sticks to these. MUNIT5: the I/O channel number for "EMTSPY" input. The value "5" means that SPY dialogue begins with the keyboard for input (at least on Apollo). Also refer to card number 16, containing other I/O channel numbers. MAXZNO: default value for the maximum number of Newton iterations that are used to solve coupled ZnO elements. This may be redefined by means of a "ZINC OXIDE" request (columns 17-24) - see section II-A-39. IPRSPY: initial value for diagnostic output associated with SPY. It is advised to make IPRSPY nonzero, only if there is trouble very early in execution, before the first data card is read (in order to avoid too much output). The IPRSPY flag is mainly a control for program developers and repairers, not for production users. IPRSUP: initial value for conventional (non-SPY) diagnostic output. It is advised to make IPRSUP nonzero, only if there is trouble very early in execution, before the first data card is read (in order to avoid too much Ruleboob ATP (junio 1996 - internet) H01e 19 output). The IPRSUP flag is mainly a control for program developers and repairers, not for production users. Production users are advised to use DIAGNOSTIC (section II-A-12), $DEBUG (section I-D-14), or simply to send in well-illustrated problem cases to LEC or program development. LNPIN: default setting for the number of lines per inch for LUNIT6 character ("PRINTER PLOT") plots. MINHAR: the beginning harmonic of a bar chart that displays the results of Fourier analysis. This is for the "FOURIER" subcommand of the "PLOT" command of "SPY". To ignore nothing, a value zero (for "dc") is used. The keyed value is just a starting value, which can be changed interactively at the time of usage. MAXHAR: the ending harmonic of a bar chart that displays the results of Fourier analysis. Etc. as for MINHAR. Card 9. 2nd Miscellaneous Integers -------------------------------------------------------------------------------9 NFORS2 NIOMAX MRGN LINLIM MPAGE MODE28 KPGRID KPEN(1) KPEN(2) KPEN(3) 10 10 2 100 0 1 0 1 1 1 -------------------------------------------------------------------------------Parameters: NFORS2: the number of rows of the Fourier series table that will be printed. Each harmonic occupies one row. Etc. as for MINHAR NIOMAX: default limit for rotor speed iterations of the Type-59 S.M. This default value can be redefined by a Class-2 S.M. "TOLERANCES" request (chapter VIII). MRGN: the margin of blank space separating vector graphics plots in the case of paper (not screen) destination (batch mode plotting). LINLIM: the line limit for batch-mode "PRINTER PLOT" graphs. In the absence of such protection, users have been known to waste incredible quantities of paper due to errors of scaling. MPAGE: the binary flag that indicates whether the user wants each batch-mode character plot ("PRINTER PLOT") to begin on a new page, following usage of the "1H1" carriage control. A value of unity will begin each such plot on a new page, whereas zero will bypass such special treatment. MODE28: an integer that chooses the starting mode of batch-mode plotting. choices are: 1) CALCOMP PLOT; 2) PRINTER PLOT; 3) CALCOMP PRINTER. Also refer to NOCALC (card 15) and MODSCR (card 10). The KPGRID: an integer that controls drawing of the grid both for batch mode as well as for SPY vector graphics plots. This is equivalent to the starting value for the first parameter of the "PEN CHOICE" request of batch-mode plotting (see chapter XIV). To suppress the grid (the default choice of the EMTP for more than a decade), set this value to zero. To activate the grid, specify a non-zero value (this will change line style or color). The user of a color monitor is advised to select his default colors carefully, since only a very few are easily visible and distinguishable on a typical monitor. Do not be fooled by advertising that proclaims "16 million colors to choose from" (nonsense to the Ruleboob ATP (junio 1996 - internet) H01e 20 human eye). Other, related parameters are : IZGR1 (card 13), IZGR2 (card 14), FILL1 and FILL2 (both on card 3), NCUT1 and NCUT2 (both on card 12). KPEN(1): 1st of 4 possible pen choices (line style or color) for batch mode and SPY vector graphics. The four numbers associated with KPEN (three on this card, one on card 10) are those parameters numbered 2 through 5 of the "PEN CHOICE" request of batch-mode vector graphics plotting (see chapter XIV). KPEN(2): 2nd of 4 possible pen choices (line style or color) for batch mode and SPY vector graphics. Also see KPEN (1). KPEN(3): 3rd of 4 possible pen choices (line style or color) for batch mode and SPY vector graphics. Also see KPEN (1). Card 10. 3rd Miscellaneous Integers -------------------------------------------------------------------------------10 ..(4) KOMLEV NSMTH MODSCR KOLALP MAXFLG LIMCRD LCHSUP LCHTIT LCHXAX 1 -1 50 2 5 1 4000 1 2 0 -------------------------------------------------------------------------------Parameters: KPEN(4): 4th of 4 possible pen choices (line style or color) for batch mode and SPY vector graphics.Also see KPEN (1) on card 9. This 4th color in addition is used for all labelling in a batch mode plot. KOMLEV: the level for echoing comment cards during the input of data base modules ($INCLUDE usage) (see sections XIX-F and I-K). The value "-1" suppresses all such display during input. NSMTH: default value for the limit on the number of consecutive ups and downs before averaging of successive ordinates will occur as part of batch-mode, vector-graphic plotting. Batch mode plotting also has a dedicated SMOOTH-request (see chapter XIV). MODSCR: the default value for the flag that indicates the destination device for batch mode vector plot output. The code is as follows: "0" indicates separate vector graphics plotting on a plotter (no screen plot), "1" indicates both screen and plotter vector graphics plots, and finally, "2" indicates screen plotting only (no separate plotter vector graphics). Note that the choice of "2" for Apollo can be made by any user, since he has a vector-graphic screen for which the plotting interface is established. Separate plotter hardware (e.g. CalComp, Benson, HPGL, Postscript, ...) is less common and is not standard included in the executables provided by LEC. Also refer to section I-E-1.e, describing possibilities for such interfacing. KOLALP: one fewer than the number of bytes making up an ALPHANUMERIC variable name (e.g., a node name). Mnemonically, this is "column ALPHANUMERIC." Typically, all node names are six characters long. MAXFLG: the multiplicity with which SPY will check for user-keyed interrupts. A value of unity means that such checking will be performed at every opportunity. Yet if such checking might be time consuming (this will be dependent upon computer, of course), this continual checking could involve a significant waste of time. Remember, there are four opportunities for a SPY break each time-step. If the user set MAXFLG = 4, he still would have the chance to interrupt execution every time step. Ruleboob ATP (junio 1996 - internet) H01e 21 LIMCRD: the upper limit on the number of 80-column card images that can be stored in the cache of LUNT10. For most computer systems, LUNTEX (card 14) is different from LUNT10 (card 16). In that case, LIMCRD just is the maximum number of 80-column card images of the input data deck that can be stored in the LUNT10-cache. Hence, input data is read into unoccupied LUNT10 storage, and the remainder, through position LIMCRD, is never used unless there is data modularization ($INCLUDE usage of Section IK) or data sorting by class (Sections I-J), in which case the blank space is used to insert or reorder the input records. A few other features of the program use the bottom of LUNT10 storage to accumulate records, too, but this burden is generally negligible compared with that of the sorting of input data. As a general rule, there must be as much free space as actually required to store user data cards. So, for example, the figure LIMCRD = 4000 allows about 2000 free spaces after storage of 2000 data cards (including any expansion due to the use of $INCLUDE, of course). So why not make LIMCRD equal to infinity, thereby allowing arbitrarily large data cases? Some computers might have a limit on such usage, whereas others may execute slower with such astronomical indexing. Most computers will tie up that much more disk space, it is believed (how many operating systems would be smart enough not to store the unused gap in the middle?). It is to be emphasized that card images are actually stored at the bottom of LUNT10 with inverse indexing, sometimes, and this bottom is defined by LIMCRD. For IBM mainframe, however, LUNTEX (card 14) and LUNT10 (card 16) are equal. In that case, the language font file (so called direct access file) is not really a direct access file but rather a block data structure. There are about 5600 lines of 80 characters in this structure, which is added in the LUNT10-cache during execution. The reason for this was the heavy penalisation of disk access at K.U.Leuven. In addition, also the input data deck is loaded in the LUNT10-cache. This cache currently is dimensioned to 10 000. Accordingly, LIMCRD should be larger than 5600 plus the number of records of the largest data set one wants to run, but in any case, LIMCRD can not be larger than 10 000 (current limit of the LUNT10-cache). LCHSUP: provides control over the font that is to be used for the super title of vector-graphic plots of SPY "PLOT" usage. The same font will be used for X-axis labeling of X-Y plots, too. Yet functioning of LCHSUP is installationdependent. a) Apollo : character height, expressed in inch. b) Salford : character height, expressed in hundredths of an inch. LCHTIT: which controls the character font that is used for both the multi-line case title text as well as the Y-axis text (not the numbers) of SPY "PLOT" usage. Yet functioning of this is installation-dependent. a) Apollo : character height, expressed in inch. b) Salford : character height, expressed in hundredths of an inch. LCHXAX: provides control over the drawing of the X-axis line and related axis numbering of the vector plot of SPY "PLOT" usage. - A negative value (use "-1" for uniformity) will suppress both the X-axis and also its associated numbers and labeling. In general, this would only be done if one or more grids provide alternate horizontal measurement. - The value zero will suppress the axis itself, but not the associated numbers and labeling. This is commonly used along with one or both grids, note, since the grids have no such numbers or labels. - A positive LCHXAX is installation-dependent (see subroutine VECPLT). a) Apollo : (?) control over the boldness of the axis. b) Salford : height of X-axis numbers in hundredths of an inch Ruleboob ATP (junio 1996 - internet) H01e 22 Card 11. 4th Miscellaneous Integers -------------------------------------------------------------------------------1 LCHYAX NXINCH NYINCH NXOFF NYOFF NSMPLT KOLWID KOLSEP JCOLU1 KSLOWR 0 74 68 100 40 50 11 1 0 5 -------------------------------------------------------------------------------Parameters: LCHYAX: provides control over drawing of the Y-axis line and related axis numbering of the vector plot of SPY "PLOT" usage. It is the vertical equivalent of the preceding LCHXAX for the X-axis. NXINCH: the number of pixels per inch in the X-direction, for the vector plot of SPY "PLOT" usage. NYINCH: the number of pixels per inch in the Y-direction, for the vector plot of SPY "PLOT" usage. NXOFF: the number of pixels in the X-direction that the plot is offset within the plot window, for the vector plot of SPY "PLOT" usage. NYOFF: the number of pixels in the Y-direction that the plot is offset within the plot window, for the vector plot of SPY "PLOT" usage. NSMPLT: the number of successive ups and downs (cycles of a saw-toothed oscillation) before averaging will be instituted for SPY "PLOT" usage. KOLWID: default width for column output of the time-step loop. The value of "11" is minimal, corresponding to past practice when only six significant digits were printed. The average production user may want to expand this to "13" (see usage of DC-4). In any case, such initial values can be altered by a "PRINTED NUMBER WIDTH" request (see section II-A-28). KOLSEP: default inter-column blank separation that is included as part of the preceding KOLWID. The value of "1" is minimal, corresponding to past practice. The average production user may want to expand this to "2" (see usage of DC-4). In any case, such initial values can be altered by a "PRINTED NUMBER WIDTH" request (see section II-A-28). JCOLU1: a binary flag that controls whether LUNIT6 output is to include a carriage-control character or not. The user is advised to set JCOLU1=0. If the first column of output text then is invisible, better toggle JCOLU to 1. Since the IBM mainframe, Apollo and PC screens do not respond to carriage control characters, "0" is used. But for a computer system such as VAX/VMS, SCOLU1 should be toggled to "1". KSLOWR: the frequency with which a rolling vector plot (use of "ROLLV") is updated, for SPY "PLOT" usage. If unity, every time a new solution point is known, it will be displayed. But such instantaneous display slows down the simulation. It is more efficient to allow several solution points to accumulate before they are displayed. Who needs to see each time step instantly, anyway? Ruleboob ATP (junio 1996 - internet) H01e 23 Card 12. 5th Miscellaneous Integers -------------------------------------------------------------------------------2 KSYMBL NOBACK KOLEXM LTEK NCUT1 NCUT2 INCHPX INCHPY LCHFIL LCHLIM 200 1 60 1 1 1 2 2 0 0 -------------------------------------------------------------------------------Parameters: KSYMBL: the initial frequency to put marking symbols on a vector plot (use of "ROLLV"), for SPY "PLOT" usage. If no marking is wanted, set KSYMBL to a very large positive integer. The "MARK" sub-subcommand of the "TEK" subcommand of the "PLOT" command of SPY can redefine this initial value (see chapter XVI). Also see the related parameter MAXSYM (card 13). NOBACK: the binary flag that indicates whether BACKSPACE of the LUNIT4 plot file is permissible within the "LUNIT4" command of SPY. Zero means that BACKSPACE is reliable for this computer of interest, whereas unity means that BACKSPACE is unreliable, and is to be avoided (by alternate reliance upon REWIND and then forward READs). KOLEXM: the maximum width of each line of SPY "EXAMINE" output. This should normally be set so as to fit within the SPY window, so the user avoids scrolling left or right to see such output. LTEK: initial value of the binary flag that indicates which mode of plotting (character vs. vector) is to be used by the "PLOT" command of SPY. Zero means character plotting, whereas unity is for vector plotting. This initial choice can later be toggled at any time by using the "MODE" subcommand of the "PLOT" command of SPY (see chapter XVI). NCUT1: This parameter again is highly system dependent, but always related to SPY vector plotting. a) On Apollo : the number of separate segments that are to make up the horizontal and vertical lines of the first (outer) grid of a vector plot of SPY "PLOT" usage. For solid lines, which are faster to draw, use a value of unity. Dashed grids are possible, and sometimes appealing, but can be slow to draw. An example would be to use NCUT1 = 50, which really means that within SUBROUTINE TGRID, 50 separate short lines will be drawn for each separate vertical or horizontal line of the first grid. Related parameters are IZGR1 (card 13) and FILL1 (card 3). b) On Salford : color of the super title line (SPY plotting). NCUT2: This parameter again is highly system dependent, but always related to SPY vector plotting. a) On Apollo : the number of separate segments that are to make up the horizontal and vertical lines of the second (inner) grid of a vector plot of SPY "PLOT" usage. See also NCUT1 for possible values. Related parameters are IZGR2 (card 14) and FILL2 (card 3). b) On Salford : color of the multi-line case title (SPY plotting). INCHPX: the number of inches between tic marks and corresponding numbers of the X-axis (SPY plotting). A value of two is common, meaning that every other inch, the tic mark of the X-axis will be numbered. The length of the tic mark is controlled by LTIC (card 14). Ruleboob ATP (junio 1996 - internet) H01e 24 INCHPY: the number of inches between tic marks and corresponding numbers of the Y-axis (SPY plotting). A value of two is common, meaning that every other inch, the tic mark of the Y-axis will be numbered. The length of the tic mark is controlled by LTIC (card 14). LCHFIL: controls the output of the first two lines of the plot identification of the vector plot (SPY plotting). At issue are the plot number, the date and the time, and the plot variables. Note the relationship with LCHLIM, which controls the remainder of the plot identification. A negative value (e.g. : -1) will suppress such output. A non-negative value will activate such output. But the meaning becomes system-dependent: a) on Apollo : character height, in inches. b) on Salford : character height, in hundredths of an inch. LCHLIM: controls the remainder of the plot identification of the vector plot (SPY plotting). It covers the scaling and limits of both axes, as well as any hidden factors and offsets. Note the relationship to LCHFIL, which controls the first half of the plot identification. Meaning is similar : A negative value (i.e. : -1) will suppress such output. A non-negative value will activate such output. But the meaning becomes system-dependent : a) on Apollo : character height, in inches. b) on Salford : character height, in hundredths of an inch. Card 13. 6th Miscellaneous Integers -------------------------------------------------------------------------------13 NXID6 NYID6 MAXSYM IHS LIMCOL KLEVL KEXTR NXMAX NYMAX IZGR1 10 330 3 3 79 0 0 511 430 0 -------------------------------------------------------------------------------Parameters: NXID6: X-pixels for the start of the "Graph Number" line that explains the vector-graphic display of SPY "PLOT". NYID6: Y-pixels for the start of the "Graph Number" line that explains the vector-graphic display of SPY "PLOT". MAXSYM: the maximum number of symbols that will be placed on each curve of a vector plot of SPY "PLOT" in order to identify the curve. This feature is not applicable in "ROLLV" mode. Discarding points due to "smoothing" may reduce the number shown. Also see related parameters NSMPLT (card 11- smoothing) and KSYMBL (card 12 - frequency of marking symbols). IHS: the default or starting value for integer time-units code of SPY "PLOT". This can be changed by the "TIME UNITS" subcommand of the "PLOT" command (see chapter XVI). Also see related parameter TIMULT (card 5). There should be agreement between the IHS integer number and the scaling factor for time units (TIMULT). Possible values are: IHS 1 2 3 TIMULT 360*FPOWER FPOWER 1. Meaning degrees, based on power frequency cycles, based on power frequency seconds Ruleboob ATP (junio 1996 - internet) 4 5 6 7 1.E3 1.E6 1. 1. 8 1. H01e 25 milliseconds microseconds Hertz (linear scale) log to the base of 10 of Hertz (semilogarithmic scale) log to the base of 10 of Hertz (double-logarithmic scale) LIMCOL: the default or starting value for the column width of a character plot of SPY "PLOT". This can be changed by the "SET COLUMN" subcommand of the "PLOT" command (see chapter XVI). KLEVL: the beginning value for the binary flag that indicates whether or not level crossings are to be displayed for the SPY "PLOT" variables. A zero will result in no level-crossing output, whereas unity will produce a table showing when variables of the plot cross the specified levels. When the request to show level crossings is active, a subsequent SPY PLOT subcommand "LEVEL" (see chapter XVI) will follow, allowing the user to specify one level value per selected output variable (output selected via the SPY-NAME command). KEXTR: the beginning value for the binary flag that indicates whether or not extrema are to be calculated for the SPY "PLOT" variables. A zero will result in no extrema output, whereas unity will produce a table of extrema for the variables of the plot prior to creating the plot. The current status of this variable can be toggled at any later time by the subcommand "EXTREMA" of the "PLOT" command of SPY (see chapter XVI). NXMAX: the X-direction width of the plotting window in pixels (SPY plotting). NYMAX: the Y-direction height of the plotting window in pixels (SPY plotting). IZGR1: which provides control over the first of two staggered grids of the vector plot of SPY "PLOT" usage. For all computers allowing SPY vector graphics, a negative value (use "-1" for uniformity) will suppress this outer grid. For some computers, the size of a positive value will control the boldness of the grid. For others, there is no such control. Since variable IZGR1 is only used within installation-dependent module "VECPLT", this detail can depend on the computer of interest. Related parameters are FILL1 (card 3) and NCUT1 (card 12). Ruleboob ATP (junio 1996 - internet) H01e 26 Card 14. 7th Miscellaneous Integers -------------------------------------------------------------------------------14 IZGR2 LTIC NXVERN LRLIM KASEND LUNDAT KTRPL4 JORIEN LIMPNL LUNTEX 0 7 30 75 5 3 0 0 200 11 -------------------------------------------------------------------------------Parameters: IZGR2: which provides control over the second of two staggered grids of the vector plot of SPY "PLOT" usage. For all computers allowing SPY vector graphics, a negative value (use "-1" for uniformity) will suppress this outer grid. For some computers, the size of a positive value will control the boldness of the grid. For others, there is no such control. Since variable IZGR2 is only used within installation-dependent module "VECPLT", this detail can depend on the computer of interest. Related parameters are NCUT2 (card 12) and FILL2 (card 3). LTIC: half of the length of the tic marks (expressed in number of pixels) that are used on the X and Y axes (SPY plotting). The tic mark is drawn this many pixels on either side of the axis. Recall that positioning of the tic marks is controlled by INCHPX and INCHPY (both on card 12). NXVERN: the horizontal pixel position at which Y-axis numbers are to be applied to a vector plot of SPY "PLOT" usage. For time or frequency plots, this usually is starting from an origin (expressed in number of pixels), located at the lower left corner of a window. For X-Y plotting, this origin usually is referred to the center point of a window. LRLIM: the iteration limit ("LIM") of the LR-transform ("LR") that is used to calculate eigenvalues within the "LINE CONSTANTS" overlay. See related parameter EPSLRT (card 7). KASEND: the minimum number of records that must remain in the input data file in order for the program to consider solving a following, stacked data subcase. At issue is whether or not the program will read a blank bounding data case after case-summary statistics. This is illustrated in DC36 (DATA BASE MODULE - section XIX-F). With value 5, note that the execution terminates, thereby saving a little output, and speeding execution a little. Yet the user should be aware that some computers may require the blank bounding case in order to successfully terminate the preceding solution. The blank bounding case results in a call to the installation-dependent module "SYSDEP", and this might contain required termination logic. For example, UNIX PC requires this to close the plot file (".PL4" file on disk). So, if the user wants to always have the program read input until a blank case is found, set KASEND = 0 (in fact, any integer less than 2 should do the job). LUNDAT: the I/O unit number to which the input data file can be connected within "MAIN00" as program execution begins. This serves as a channel for reading all data cards as a block, in order to transfer them to the ACCESS='DIRECT' storage of unit LUNT10 (card 16). For computers with dynamic OPEN/CLOSE capability (any sane man's interpretation of the ANSI FORTRAN 77 standard), LUNDAT must be set equal to LUNIT3 (card 16). Otherwise, closure will not be performed promptly in "MAIN00", but will instead await termination of the program and closure by the operating system. But for computers that require an external connection of disk files using job control language (following historic IBM mainframe procedures), this must be a distinct, otherwise-unused unit to which the file will remain connected as long as the program executes. Ruleboob ATP (junio 1996 - internet) H01e 27 KTRPL4: a system-dependent flag indicating where the user wants his ".PL4" plot file to be saved. Please recall that a PL4 file can only be created if integer miscellaneous data parameter ICAT is positive (see section II-B-2). Related parameters FMTPL4 (card 20) and L4BYTE (card 15) will make the distinction in file format for the PL4 file. Related parameter LUNIT4 (card 16) will control the input/output channel. Related parameter MFLUSH (card 15) will allow PL4 file creation being controlled by SPY and RAM buffer flushing control. a) For personal computers such as the IBM PC and Salford version, KTRPL4 is used to select between the hard disk and one or more floppy disks as the storage device for such PL4-files (1 = disk A; 2 = disk B; 3 = disk C; etc). An added minus sign is used as a flag to name the ".PL4" file parallel to the input data file. For example, if TEST.DAT is the input data file, TEST.PL4 would be the associated plot file. This is unambiguous as long as there is no stacking of data cases (2 or more in the same disk file). For stacking, nonoverlaid computers will switch to using the date and the time for the second or later subcase whereas strategy for overlaid computers has yet to be standardized. b) For Apollo : ? c) For VAX : ? d) For IBM mainframe : ? e) For UNIX : ? JORIEN: a binary flag that indicates whether oriental language is possible as part of the language textfile (card 18). Use zero if oriental language is not possible. Use unity if oriental language is possible. Should unity be used, just remember that installation-dependent SUBROUTINE ORIENT must also be available (see Section I-E-1) and activated. LIMPNL: the limit on the number of switching messages for Type-99 pseudononlinear resistance flashover and clearing (opening). See Section V-A for an illustration. Every time there is a Type-99 flashover or clearing, LIMPNL is decremented by unity. The associated switching message will be seen only as long as LIMPNL remains positive. A negative LIMPNL at the end of the simulation indicates unannounced switchings, which will be mentioned in a single line of printout preceding possible extrema. LUNTEX: the I/O unit number for the language text file (card 18). For multiuser access to the program, the computer must be designed for such capability, and LUNTEX must be different from LUNT10 (card 16). Generally, only the weakest of computers and versions (e.g., the MS-DOS version for PC XT-compatible computers) will have equality of LUNTEX and LUNT10. Please also check with related parameter LIMCRD (card 10). Ruleboob ATP (junio 1996 - internet) H01e 28 Card 15. 8th Miscellaneous Integers -------------------------------------------------------------------------------5 KINSEN LISTON LIMTAC NOCALC MFLUSH L4BYTE KOMPAR 1 0 25 0 1000 0 0 -------------------------------------------------------------------------------Parameters: KINSEN is the ternary case-sensitivity flag. For no modification of the case of input letters, leave this zero or blank. Unity will convert lower case to upper case before use. Finally, -1 will convert upper case to lower case before use. Yet case changes of any individual input line can be prevented or inhibited by the appearance of an exclamation point ("!") anywhere on the line. Although the associated logic is universal, the feature possibly could be installationdependent due to its location in installation-dependent SUBROUTINE NEWCAS. Since the first "!" of any line is erased after it is recognized, the user must be careful that the replacement blank is really what he wants. For example, in the case of a file name (e.g., in response to the opening prompt at the beginning of execution), put the "!" on the right where it can do no harm (most operating systems will either reject an imbedded blank as being illegal, or try to connect a file having the wrong name). Further note that SPY and MODELS use their own, imbedded logic to deal with case conversion. LISTON is a binary flag that possibly will disable any $LISTOFF request (see section I-D-8) of EMTP data. Unity will ignore any $LISTOFF requests. Leave blank or zero for no such overriding of the normal usage of LISTOFF. Final production usage with proven data will almost always be with value zero. But during debugging of large data cases, it sometimes is convenient to see all input data cards in spite of numerous $LISTOFF declarations. Setting LISTON of the STARTUP file to unity may be much simpler than modifying potentially numerous locations of $LISTOFF in several data files (e.g. data is segmented using $INCLUDE, see section I-K). LIMTAC is a limit on the number of TACS warning messages that will be displayed. Remember that before TIMTAC seconds (the time read from card 5), TACS warning messages are ignored completely. Such ignored messages are not counted in the limit considered here. NOCALC is a flag to disable vector graphics output for batch-mode plotting. Zero means no such disabling (i.e., vector-graphic plots will be possible), whereas unity means that all cards between the "CALCOMP PLOT" and a subsequent "PRINTER PLOT" card will be treated as if they were comment cards. This is useful for systems having no batch-mode plotting, for which any such an attempt would kill execution. See also MODE28 on Card 9, since it is possible to specify vector-graphic plots without any "CALCOMP PLOT" declaration (if MODE28 = 1, as is customary). For a program version that will not tolerate batch-mode vector-graphic plotting, MODE28 should be set to two. Another related parameter is MODSCR (card 10). MFLUSH is a counter of the number of times the RAM buffer for plot data points has been written (flushed) to disk via I/O channel LUNIT4 (or -LUNIT4, if LUNIT4 is negative). The actual value is immaterial to transients, since the counting is just for cosmetic appeal (human intelligence), anyway. The command that performs the plot-data transfer to disk is the "SPACE" command of SPY. Normally, MFLUSH should be zero. Ruleboob ATP (junio 1996 - internet) H01e 29 The value 1000 is a special request indicating a desire for the automatic (without any user intervention via the keyboard) flushing to disk when the RAM buffer becomes full. Counting still occurs, so the first flushing would appear with visual marking MFLUSH = 1001, the second would have index 1002, etc. The batch-mode user of SPY "PLOT" (with $SPY) needs value -1000 in order to create a ".PL4" disk file of plot data points for later usage. Also refer to related parameters FMTPL4 (card 20), LUNIT4 (card 16) and KTRPL4 (card 14). L4BYTE is a binary flag that allows the user to choose the the ".PL4" file. It is consulted only if the ".PL4" file UNFORMATTED (meaning that FMTPL4 of Card 20 must be blank). will use an original, old, sequential ".PL4" file whereas newer, C-like ".PL4" file. UNFORMATTED type of is, in fact, to be For this case, zero unity will use the KOMPAR is a ternary flag that allows the user to compare old and new LUNIT6 solution files more easily on a line by line basis using an operating system utility (e.g. $DIFF of Unix or VAX/VMS; CMF on Apollo; etc.). There are two sorts of problems. First, each comment card contains serialization of the EMTP card cache, and this generally will change as the program evolves. Second, some or all maximum table sizes will change with time. - A zero results in no special treatment, which typically results in many differences of no importance. - A value of unity will result in no numerical serialization of comment cards. Case summary statistics will be abbreviated as though the user had requested 80-column output using KOL132 = 80. - If KOMPAR is set to two, then all comment cards will be discarded during data input; they will not appear in the LUNIT6 output. Card 16. I/O Unit Numbers -------------------------------------------------------------------------------6 LUNIT1 LUNIT2 LUNIT3 LUNIT4 LUNIT5 LUNIT6 LUNIT7 LUNIT8 LUNIT9 LUNT10 1 2 3 -4 5 6 7 8 9 10 -------------------------------------------------------------------------------The 10 available fields, read using 10I8 format, are used to assign numerical values to the variable I/O channels LUNIT1, LUNIT2, ... , LUNIT9, and LUNT10. These I/O channel definitions are highly system dependent, so better do not charge the values provided by program maintenance or in the loading instructions. LUNIT1: LUNIT2: LUNIT3: too. LUNIT4 ? Table dumping/restoring (START AGAIN-feature ; see section II-A-33. On some computer systems, LUNDAT (card 14) and LUNIT3 must be equal PL4-file storage. On some computers, a negative value (e.g. : -4) is used to indicate storage to memory rather than in a disk file. The absolute value of LUNIT4 then is used as unit allocation number (since such number always must be positive). On other computer systems, storage other than in a disk file is not possible. Then, of course, only positive values are accepted. It should be noted that the special request word "DISK PLOT DATA" (see section II-A-44) can be used to toggle LUNIT4 from negative to positive values, so that a subsequent $OPEN for UNIT = 4 can be used to connect a disk file (e.g. creation of named PL4-file). LUNIT5: The keyboard of an interactive system connects to LUNIT5. Value 5 usually is good. LUNIT6: The monitor or screen connects to LUNIT6. This is for normal output, SPY commands, SPY graphics and batch mode screen graphics. But LUNIT6 can also be rooted to a disk file directly ("DISK"-request at the beginning of execution Ruleboob ATP (junio 1996 - internet) H01e 30 - see section I-C). Value 6 usually is good. To add production printout to the diagnostics (file DEBUG.LIS), use LUNIT6 = 46. LUNIT7: If card images of supporting programs are not listed on a scrollable window connected to LUNIT6 (as it is the case for Apollo), then the separate I/O channel LUNIT7 is reserved for this function (unless $PUNCH is followed by a valid file name, in which case punched output is simply routed to the specified file). Value 7 usually is good. On some UNIX machines, value 17 should be used. LUNIT8: Finally, LUNIT8 is reserved for batch-mode CalComp plotting, should such an I/O channel be required. Value 28 is a good value in this case. However, LUNIT8 can also be used for SEMLYEN output (see chapter XXII). Then value 8 is good. The file and record format are different for both applications, so extreme care should be paid to the JCL-commands on IBM mainframe. Consult the loading instructions ! LUNIT9: ?? LUNT10: This is the unit number to which input data is copied (LUNT10 is used as direct access cache). LUNT10 must be coordinated with LUNTEX (card 14). Value 10 usually is good. Card 17. I/O SPY/PLOT Window Settings -------------------------------------------------------------------------------17 KS(1) KS(2) KS(3) KS(4) KP(1) KP(2) KP(3) KP(4) KOLROV 1 1 502 500 1 513 502 500 -------------------------------------------------------------------------------All parameters on card 17 are highly system dependent, but all related to SPY window settings. a) On Apollo : contains two sets of 4 pixel specifications each. Indeed, KOLROV currently has no meaning on Apollo. The grouping of 4 is required to specify the size of a rectangular window. First comes the window for SPY dialogue (columns 1-32), followed by the window of SPY vector "PLOT" usage (columns 33-64). Each quadruplet is ordered according to Apollo conventions: 1) the pixel of the top edge; 2) the pixel of the left side; 3) the pixel width; and finally, 4) the pixel height of the window. The Apollo choices correspond to the full-page screen display of the Apollo section. This is from an old, low-resolution (800 x 1024 pixels) Apollo monitor. Recall that RFUNL1 automatically converts to high-resolution (1024x1280 pixels), so there realy is only one STARTUP file needed. This might not be the ideal solution, but that's how program development tried to get rid of pixel problems. 1 , 1 , top, left, width, height --- SPY window pixels 1 , 502, 500, { Size SPY window 1 513, 502, 500, { Size PLOT window 1 For those wanting a full-width (rather than half-width) plot above, to be overlaid by a very short (26%) SPY command window in the middle, on the right (STARTUP2): 330, 1 , 423, 1 , 600, 1023, 210, 550, { Size SPY window 2 { Size PLOT window 2 Alternatively, keeping this full-width plot window on top, but doubling the height of the SPY command window (now 53%) so that it covers the right side of the LUNIT6 output across the bottom (STARTUP3): 330, 1 , 423, 1 , 600, 1023, 430 550 { Size SPY window 3 { Size PLOT window 3 Ruleboob ATP (junio 1996 - internet) H01e 31 Finally, for those wanting to use the EMTP as an interactive plotting program in place of "TPPLOT", it is convenient to cover the entire screen with the plot window, and to lay the SPY window over it in unused space of the lower right corner. This can be accomplished by the dimensions of STARTUP4: 650, 1, 501, 1, 502, 1023, 149 799 { Size SPY window 4 { Size PLOT window 4 Note that STARTUP2 results in a plot window that is 50 pixels higher than STARTUP_REGULAR (550 vs. 500), so the starting window at the bottom must be shrunk if overlap is to be avoided. The choice STARTUP3 really is designed for use in a $CRP window, so that the two dependent windows (SPY and PLOT) will be opened on the remote node, leaving the full screen of the original node for display of LUNIT6 output. So, although it appears that the LUNIT6 window should be covered, in practice this will not happen. The common PLOT window of STARTUP2 and STARTUP3 has a 12-inch time axis, so using 2 inches of overlap makes sense: ten inches of progress each time the plot is paged. As for labeling, the super title and any case title have been placed below the graph, where there is plenty of room due to the expanded depth. But more than just a change of KS and KP vectors is required, to change window sizes properly. One also should adjust the length of the time axis of plots, TAXISL (for full-width plots, change 5.0 inches to 12.0 inches). The maximum total number of X-direction plot pixels, NXMAX, should be changed accordingly, too (for full-width plots, change 511 to 1023). Finally, for the 12-inch axis, as mentioned one paragraph above, it is reasonable to provide 2 inches of overlap (use OVRLAP = 2 / 12 = .166667). b) On Salford : KS(1) Controls copying the SPY window to disk file JUNKS. Set to zero for this service only upon filling and closure (ESC). Set to -1 to prevent all such use. Set to +1 for continuous backup as I/O is generated. See KP(3) for reuse or destruction of old JUNKS. KS(2) Like preceding KS(1) only for LUNIT6 (JUNKE) rather than (JUNKS). See also KP(4) rather than KP(3) for possible concatenation. for SPY KS(3) Color of the window frame (title line at top and border at bottom) for SPY dialogue. KS(4) Color of the title line for the simulation (LUNIT6) window, if any. Use is just for the title line at the top of the screen. KP(1) Color of contents of the SPY window. KP(2) Color of the simulation (LUNIT6) window contents. A non-positive integer is taken as a request for cyclic use of the first 15 colors in order. KP(3) Binary flag controlling whether SPY window contents are cancatenated to the end of old disk file JUNKS. This assumes the user has requested backup by KS(1). Zero means no concatenation (i.e., new backup will overwrite any old file contents). Unity will preserve the old contents, adding new ones at the end (bottom) of old ones. KP(4) Like (JUNKS). preceding KP(3) only for LUNIT6 (JUNKE) rather than for SPY Ruleboob ATP (junio 1996 - internet) H01e 32 KOLROV The 9th of 10 numbers on the SPY window-pixel card is the color to be used for overwriting of the character search (F9 key). If the string is found, it will be highlighted with this color. Ruleboob ATP (junio 1996 - internet) H01e 33 Card 18. Variable-Length Character Strings -------------------------------------------------------------------------------18 Name of language font file ] Window] SPY @K file name ] Central Monte file] /wsm/blockd51.bin junk inclspy .dat //b/wsm/parallel.lis -------------------------------------------------------------------------------Name of the language text file (direct access file): this principle is used on all computer systems, except IBM mainframe. This file is connected to I/O unit LUNTEX (card 14). Other, related parameters are: LUNT10 (card 16) and LIMCRD (card 10). Window: default root name for the windows of SPY dialogue and SPY vector "PLOT" usage. Spy @K: skeletal name for files of numbered SPY "@" usage. The first blank byte is to be replaced by a decimal digit at execution time, prior to OPENing of this file. Central Monte file: name for central statistics file, to be used by the request word "OBSERVE PARALLEL MONTE CARLO". Please note that such file specification is highly system dependent (see introduction to section I.E). This file frequently will be stored on another disk of another computer in the network. If this file name is left blank, any Monte Carlo simulation will not attempt to write status information to this summary file at the end of each energization (see also section XIX-B and II-A-47). Card 19. A6 ALPHANUMERIC names, 1st of 2 cards -------------------------------------------------------------------------------9 SSONLY CHEFLD TEXNAM CHVBAR BRANCH TXCOPY USERID -TRASH -TERRA CHRCOM PHASOR E DUM | NAME COPY WSMTHL ...... TERRA C {}$, -------------------------------------------------------------------------------All data fields of Cards 19 and 20 declaration) variables, which presently presentation, each is preceded by two FORMAT ( 10( 2X, A6 ) ). This begins with are for ALPHANUMERIC (the UTPF type occupy 6 characters. For ease of blanks. Each card is read using Card 18, as follows: SSONLY: This parameter refers to a 6-character text string that should be positioned on cols 21-26 of a special R-L-C branch that only is present during the phasor or steady state solution. This special R-L-C branch can be used to take the effect of a non linear R(i) or R(t) into account during steady state too. Please refer to chapter V (extending non linear R(i) or R(t) to the phasor solution) or to the second subcase of DC42 for more details. CHEFLD: Although 6 columns of the card are reserved for data input, in fact it is just the single character of column 11 that is used. This must be the character that is produced by E-field encoding within FORTRAN of the computer of interest. That is, the resulting 35-byte character string STRING of the statements WRITE (STRING, 4126) D9 4126 FORMAT ( E35.22 ) will involve the use of the character in column 7. The user must beware of case (e.g., "E" and "e" differ). See also related parameter EFIELD (card 20). Ruleboob ATP (junio 1996 - internet) H01e 34 TEXNAM: Root name for 1st 3 bytes of internally-defined node names of $INCLUDE data modularization (section XIX-F). Numerical serialization will be encoded in locations 4-6. TEXNAM can be reset during execution, using the $DUMMY command (see section XIX-F). CHVBAR: Character that is to be used to represent the vertical bar between input card and interpretation of input (LUNIT6 screen output). For those computers (all modern ones) having such a special symbol, use it. For others, use either "1" or "!". BRANCH: Text for the request to name a branch. be "NAME ". In English, this commonly will TXCOPY: Text for the request to copy a preceding branch by name. this commonly will be "COPY ". In English, USERID: Default 6-character name for batch-mode vector plot identification. Vector graphic plots will show this mark of ownership in the legend. But the userid can also be set via a special request (see II-A-50). TRASH: Text representing a garbage name (nominally "......") internally-defined nodes (see section VII-C-6: type-16 source). TERRA: Text "TERRA ". to characterize local earth. In English, this for certain nominally is CHRCOM: The collection of 5 different special symbols, concatenated into a single 6-character word. The six bytes of the word are occupied as follows: Bytes 1 & 2 store the 2-byte indication for comment cards of EMTP data (e.g., "C "); Bytes 3 & 4 store the opening and closing symbols of in-line comments (e.g., "{}"); Bytes 5 & 6 store the continuation character and the separator character of free-format input (e.g., "$,"). Card 20. A6 ALPHANUMERIC names, 2nd of 2 cards -------------------------------------------------------------------------------0 DATTYP LISTYP PCHTYP PL4TYP EFIELD FMTPL4 -BLANK .dat .lis .pch .pl4 10E8.0 -------------------------------------------------------------------------------The following file type identifications are highly system dependent (Recall the introduction of section I.E). It further is an alternative for the $SUFFIX command (see section I-K). Also note that none of these type specifiers can be applied to IBM mainframe. For some operating systems, case sensitivity is an important item too. DATTYP: The default file type for data files, including a separator character at the start. For most operating systems and user organizations, the separator character will be a period as shown (".dat" begins with "."). A file name ending in this character will be extended to agree with the information of columns 2-6 (the file type following the separator character). This is used at the beginning of execution, either in response to the opening program prompt for input, or to the "DATA" command of SPY. Beware: ".DAT" and ".dat" may differ, and represent different files, for case-sensitive operating systems (e.g. UNIX, AEGIS SR10.x). LISTYP: The default file type for output files, including a separator character at the start. This is used after the "DISK" selection at the beginning of Ruleboob ATP (junio 1996 - internet) H01e 35 execution, in response to the prompt for a disk file name that is to be connected to LUNIT6 (see section I-C). PCHTYP: The default file type for punched card output, including a separator character at the start. This is used only for computers not having scrollable windows, for which $PUNCH requests (see section I-D-16) are to be sent to a separate disk file or LUNIT7. Variable PCHTYP is used to complete the name of that file. The punch file name depends on the computer being used, with either a fixed name or a name depending on the date and time being common choices. PL4TYP: The default file type for LUNIT4 plot data storage, including a separator character at the start. The variable PL4TYP is used to complete the name of the disk file for cases where this is determined automatically by the program, usually based on the date and time. This specification is ignored if the user manually specifies his own file name using $OPEN (see the example of manual opening in BENCHMARK DC-3). Following fields are of general usage again: EFIELD: If left blank, optimal encoding will be used for printed variable output of the time-step loop (the columns of numbers under the heading of variable names). This is the normal case, and it should be used unless uniform output structure (typically with an exponential) is required for some reason. If nonblank, field EFIELD is interpreted to be the desired fixed format that is to replace optimal encoding. An extra "1P" is automatically supplied. For example, if the user supplies the character string "E13.5 ", the program will encode a number such as (for Apollo): " -8.77139E-01". See also related parameter CHEFLD (card 19). FMTPL4: The format to read floating-point numbers in the ".PL4" plot file of I/O unit number LUNIT4 if a FORMATTED (universal) ".PL4" plot file is desired. To obtain an "UNFORMATTED" plot file, this field must be left blank. If seven columns are needed, omit the trailing zero (e.g., "10E10."). This is for field width less than 12, for which optimal encoding will be used. But for 12 or more columns of width, the 6-byte specification (e.g., 6E13.6) is taken literally, a output is done using it by a conventional, FORMATTED WRITE to LUNIT4. Warning: usage might be installation-dependent. For example, the MS-DOS XT/AT version will not be able to create FORMATTED ".PL4" files. Also see related parameter L4BYTE (card 15) to distinguish between sequential or C-like unformatted. BLANK: Text to store 6 blank characters. This is independent of language and computer, of course - at least for European languages. So much for the original STARTUP disk file, which is to be read near the beginning of overlay "OVER1". For the case of two or more data cases being stacked together within a single disk file (for batch-mode execution), the conventional logic will have STARTUP read only once, when the first of the stacked data cases begins. This is a fundamental difference between stacked data cases and those that are segregated in separate disk files. On the other hand, whether stacked or not, a user is able to request a change in the STARTUP values during the course of execution by means of the $STARTUP card of "CIMAGE" (see section I-D-18). However, the user should be warned that such usage is still being refined, and it involves some restrictions. For example, as presently coded for Apollo (inside the installation-dependent "RFUNL1"), all input data of the STARTUP file from card 16 onwards (logical unit numbers, etc.) are ignored. STARTUP parameters: logical classification Ruleboob ATP (junio 1996 - internet) H01e Logical Unit allocation: Card 8: MUNIT5 Card 14: LUNDAT, KTRPL4, LUNTEX Card 16: all parameters Card 18: name of language text file, SPY.@K, Central Monte Carlo file Card 20: DATTYP, LISTYP, PCHTYP, PL4TYP PL4-file: Card Card Card Card Card Card 8: 12: 14: 15: 16: 20: NMAUTO NOBACK KTRPL4 MFLUSH, L4BYTE LUNIT4 PL4TYP, FMTPL4 Output format control (LUNIT6-output): Card 8: INTINF, KOL132, LNPIN Card 9: LINLIM, MPAGE Card 10: KOMLEV, KOLALP Card 11: KOLWID, KOLSEP, JCOLU1 Card 15: LISTON, KOMPAR Card 19: CHEFLD, CHVBAR Card 20: EFIELD Language text file: Card 10: LIMCRD Card 14: JORIEN, LUNTEX Card 18: name of language text file Input control: Card 10: Card 14: Card 15: Card 16: Card 19: LIMCRD LUNDAT, KASEND KINSEN LUNT10 CHRCOM Diagnostic messages, warnings (on LUNIT6): Card 5: TIMTAC Card 8: IPRSPY, IPRSUP Card 9: LIMPNL Card 15: LIMTAC Node and branch naming (on LUNIT6): Card 8: NMAUTO Card 10: KOLALP Card 19: SSONLY, TEXNAM, BRANCH, -TRASH, -TERRA Complex precision (cable constants): Card 2: ZNVREF Card 7: PEKEXP Newton ZNO iteration: Card 1: EPSZNO, EPWARN, EPSTOP Card 2: ZNOLIM(1), ZNOLIM(2) Card 7: FACOSC Card 8: MAXZNO SM type 59 tolerances: 36 Ruleboob ATP (junio 1996 - internet) Card Card Card H01e 1: EPSUBA, EPDGEL, EPOMEG 2: STATFR 9: NIOMAX Eigenvalue tolerance: Card 7: EPSLRT, EPSPIV Card 14: LRLIM Connectivity: Card 1: RHIGH, TENFAC Card 5: FLZERO, EPSILN, FLTINF Statistics: Card 2: SIGMAX, TENERG, DEGMIN, DEGMAX, STATFR, XMAXMX, AINCR Card 18: Central Monte file Batch mode Card Card Card Card Card Card Card Card Card plotting: 1: SZPLT, SZBED 3: HLETT1, VHS, VS, VH 6: all parameters 7: XALPHA, YALPHA, HGTALF, D4FACT, PLMARK 8: LNPIN 9: MRGN, LINLIM, MPAGE, MODE28, KPGRID, KPEN(1...3) 10: KPEN(4), NSMTH, MODSCR 15: NOCALC 19: USERID SPY plotting: Card 3: Card 4: Card 5: Card 9: Card 10: Card 11: Card 12: Card 13: Card 14: TAXISL, VAXISL, FILL1, FILL2 all parameters FXMUMV, FXNUMH, FVAXTT, FXVERT, TIMULT, OVRLAP KPGRID, KPEN(1...3) KPEN(4), LCHSUP, LCHTIT, LCHXAX LCHYAX, NXINCH, NYINCH, NXOFF, NYOFF, NSMPLT, KSLOWR KSYMBL, LTEK, NCUT1, NCUT2, INCHPX, INCHPY, LCHFIL, LCHLIM NXID6, NYID6, MAXSYM, IHS, LIMCOL, KLEVL, KEXTR, IZGR1 IZGR2, LTIC, NXVERN SPY window: Card 13: NXMAX, NYMAX Card 17: all parameters Card 18: WINDOW SPY Fourier Card Card Card analysis: 3: FREQFR 8: MINHAR, MAXHAR 9: NFORS2 SPY command input: Card 8: MUNIT5 Card 10: MAXFLG Card 12: NOBACK Card 18: SPY @K file name SPY command output: Card 8: IPRSPY Card 12: KOLEXM, LTEK STARTSPY Disk File for SPY Initialization 37 Ruleboob ATP (junio 1996 - internet) H01e 38 Unlike STARTUP of the preceding two sections, the STARTSPY disk file that initializes interactive execution, observation, and control (SPY) has no particular order or content. This is because no fixed READ statement is used. Instead, it is the "DEPOSIT" command of SPY that performs the initialization, and the STARTSPY disk file is nothing more than a command file to accomplish this automatically, at the time the first SPY input is being handled. Any variables carried in COMMON can so be initialized. But for now, for Apollo, nothing more than is already done by STARTUP is needed, so there are no active lines of STARTSPY. That is, execution has no effect: C C VERIFY DEPOSIT END VERIFY C Begin STARTUP disk file that initializes variables automatically when SPY is first { SPY command that turns the echoing of { This SPY command is used internally to { Exit "DEPOSIT" loop { SPY command that turns That's all there is; EOF comes ... ... ... ... ... ... ... etc. etc. etc. etc. etc. etc. etc. Yet the user of SPY will see such execution in the SPY window, so he should be aware of what is happening. Such automatic, internal execution at the time SPY is requested appears as follows: @>>>C Begin STARTUP disk file that initializes ... etc. @>>>C variables automatically when SPY is first ... etc. @>>>VERIFY --- Toggle to "ON" (Suppress "@" execution) --- Toggle to "OFF" (Suppress "@" execution) @>>>C That's all there is; EOF comes ... etc. SPY: Rulebook ATP (junio 1996 - internet) H01f I-F. Many Different Computers Support 1 ATP Compatibility with the full (not reduced) ANSI FORTRAN 77 standard is required for support of ATP. There must be an INDEX function for CHARACTER variables, and CHARACTER variables must not be limited to fewer than 255 bytes in length. Dynamic OPEN/CLOSE capability is not mandatory, but it certainly is nice. Without it, data modularization (Section I-K) is not automatic. Virtual computer architecture, and its relation to quality support of the EMTP, deserve a few words of explanation. The issue is not one of computer size, since MS-DOS PCs offer virtual memory for 386 or newer processors. Rather, the issue concerns satisfaction of some very special needs of the EMTP. Most important is the dimensioning problem. With 27 independent dimensioning controls, the sizing of EMTP tables poses a serious potential problem for the non-virtual computer shop that must solve a variety of transient problems. During the mid-'80s, this paragraph continued with a long explanation of why virtual memory is desirable. Now, in 1995, it is sufficient merely to note that lack of virtual memory management should be grounds for the immediate disqualification of any compiler or operating system. A general recommendation about computer systems for support of the EMTP can be made. If the user has a choice, generally the system that is the most interactive, and the most nearly under user control, is to be preferred. Carefully selected minicomputers have proven to be ideal for support of the EMTP. Indeed, BPA itself gave up the use of its CDC mainframes and switched to a transients-dedicated DEC VAX-11/780 in February, 1979. Minnesota Power earlier had pioneered the way with PRIME minicomputers. But even better than minicomputers for most users were scientific workstations, of which Apollo was by far the most widely used for the EMTP by the mid-80s. Both BPA and LEC used Apollo to develop ATP. By the early '90s, some 25 or 30 distinct computers had been proven to be ATP-compatible. Only the older machines, limited by 16-bit addressing, have been found to be incompatible, and should not be considered. Interactivity between the user and the program is very important, so choose among available computers carefully. If in doubt about ATP compatibility with some system, computer-search disk-stored newsletter files. If that fails, check with the Can/Am user group in Portland. Around 1990, there was a following subsection for each computer that had proven to be ATP-compatible. But then in 1989, the Salford compiler and DOS extender were proven to be compatible with MS-DOS, 386-based PCs, and most alternatives have been abandoned. For the historic record, the original list was as follows: 1) Apollo, 2) MS-DOS (IBM PC), 3) AT&T Unix PC, 4) DEC VAX/VMS, 5) Mainframe IBM, 6) PRIME, 7) HP 9000, 8) Virtual CDC, 9) Sun Microsystems, 10) Data General, 11) Charles River, 12) Apple Macintosh, 13) Univac, 14) Cray, 15) Cydrome. 16) Floating Point Systems, 17) Intel 80286, 18) Intel 80386 Unix, 19) DEC Unix; 20) IBM RT PC, 21) Siemens, and 22) Intel 80386 Salford. As this section is being overhauled in April of 1995, most of this material is being removed, although section headings and summary explanations remain. Details of older systems can be found by consulting either older paper copies or the installation-dependent "read me" files that should accompany the different versions. Finally, some newer systems could be added, but time is short. So, only the most important will be documented: 23) Watcom ATP for OS/2, DOS, and Windows NT. I-F-1. Apollo ATP as used by NYPA An Apollo EMTP version once was available from either the Can/Am user group in Portland or the Leuven EMTP Center (LEC) in Belgium. In 1990, the Apollo version was by far the best, and the most highly developed. Of course, Apollo Rulebook ATP (junio 1996 - internet) H01f itself (windows, networking) was very good. But since 1990, development in Portland has concentrated on Salford EMTP for MS-DOS computers. Apollo has not been used in Portland for development since the summer of 1990, and LEC was ready to collapse 3 years later. Finally, the company (Apollo Computer) was sold to Hewlett-Packard (H-P), and has gradually been forced to accommodate H-P desires and standards (e.g., Unix). To summarize, in recent years, Apollo usage has declined drastically. New York Power Authority (NYPA) in White Plains took over the distribution of ATP materials for Apollo Aegis after the service was dropped in Portland. NYPA experts do a good job, and have a nice package. But such Apollo usage and service is not expected to last much longer as this paragraph is being written in April of 1995. IBM's OS/2 for Intel PCs has been found to be a worthy replacement for NYPA use by Robert Meredith and Robert Schultz. Details of this breakthrough using OS/2 Warp can be found in newsletters beginning with the January, 1995, issue. For details of what is still available, consult the "read me" file of Apollo ATP distribution. Some 30 pages of details peculiar to the Apollo ATP version existed in older Rule Books, and should still be distributed with the computer code itself. I-F-2. IBM PC XT ( Intel 8088 ) Usage Nothing more glamorous or innovative than an old IBM PC XT, or a PC XT-compatible computer running MS-DOS, is required to support real EMTP [45, 48]. Although slow due to overlaying, and although EMTP List Sizes must be restricted for such use, PC XT-compatible machines remain useful for education. The same goes for PC AT-compatible (Intel 80286-based) machines. Work on the PC XT-compatible version of ATP was abandoned around 1991. Serious users had, by then, switched to 386s and Salford EMTP. But the Can/Am user group has continued to hand out old files for PC XT owners. In 1994, a couple of requests might have been received (usage has spiraled nearly down to zero). But the code remains old, dating to 1990. For details, consult the READ_ME.DOC file of the PC XT ATP distribution, which contains some 20 pages of information peculiar to the PC XT version, which was produced by the Lahey F77L compiler and could use GEOGRAF graphics by Geocomp. I-F-3. AT&T Unix PC 7300 No Longer Used AT&T is the abbreviation for American Telephone and Telegraph Company, once the world's largest corporation (before involuntary segmentation that was ordered by the U.S. judiciary). Although not a great success in the personal computer market place, around 1985 Unix PC 7300 was an excellent product for scientific use. It was built around a 10-MHz Motorola 68010 microprocessor. Rather than being all new, Unix PC 7300 technology and system software were perfected earlier by Convergent Technologies for the minicomputer market. It is understood that AT&T merely selected a minimal configuration of the proven Convergent machine, and repackaged it in a much more affordable form. The separate interactive plotting program TPPLOT was used with Unix PC, after a simulation had ended. A Tektronix PLOT10 interface was assumed. Unix PC was last used by the father of the U.M., Hian K. Lauw, Professor of Electrical & Computer Engineering at Oregon State University in Corvallis (USA). But Prof. Lauw moved to other interests (the manufacture of power electronics), and those in Corvallis who continued to use ATP moved to other 2 Rulebook ATP (junio 1996 - internet) H01f 3 computers (e.g., Salford EMTP for MS-DOS PCs). As this section is overhauled in April of 1995, no one still is known to be using Unix PC to support ATP. I-F-4. DEC VMS ATP Used by BPA A batch-mode version of EMTP that relies on the factory-supplied operating system VAX/VMS or Open VMS will be described in this section. Not considered is VAX Unix (Ultrix), which is a distinct program version that first was established and tested at the University of Illinois in Urbana, Illinois. For a summary, read the 2-page article by Messrs. Lesieutre and Sauer in the September, 1988, issue of EMTP News. There also is newer (1995) DEC OSF Unix for Alpha workstations (see story in the April, 1995, newsletter). DEC Alpha running Open VMS is fully compatible with VAX/VMS. is compiled on either platform. As time passes, old VAX disappearing; it is being replaced by Alpha RISC workstations, run VMS (as well as OSF Unix and Windows NT). The same code hardware is and these can BPA's Randy Suhrbier has a superb interactive plotting program to accompany DEC VMS ATP. This is the way graphics (both screen and paper) are handled by VMS users at BPA. For details, consult the "read me" file of the DEC VMS ATP distribution, which contains further details that once were printed on paper in the Rule Book. I-F-5. Mainframe IBM ATP by LEC The central computer of K.U. Leuven was an IBM 3033 for many years, but has recently (late '80s) been replaced by a faster, compatible Amdahl. An EMTP version for the batch-mode use of this system is available from the Leuven EMTP Center (LEC). Such support for ATP never was used in North America, however. That was the situation around 1990. But it deteriorated rapidly. Around 1992, LEC's own Steering Committee recommended discontinuance of support for IBM mainframes. Of course, LEC itself ended the following year, and nothing further is known to have been done with the materials. To a large extent, it was the IBM-standard PC and Salford EMTP that ended the use of IBM mainframes for the support of ATP. I-F-6. PRIME ATP for PTI PSS/E Users During the late '70s and early to mid-'80s, PRIME was an important computer for the support of EMTP. PRIME was the first really successful platform used by Power Technologies for its load flow and transient stability package named PSS/E that became the standard of the industry. As a result, many planning departments had PRIME minicomputers, and wanted EMTP to run on the same computer. Before DEC VAX-11/780, EMTP ran on PRIME minicomputers --thanks to the excellent collaboration of Thomas Varilek, then with Minnesota Power in Duluth (USA). This spanned the years 1976 through 1984 (the initial ATP work). At that point, another great ATP worker took the lead: Robert Newell of Basin Electric Power Cooperative of Bismarck, North Dakota (USA), which had switched from Honeywell to PRIME. But by the late '80s, PRIME Computer was sinking. As this text is being overhauled in April of 1995, the company exists no longer. Does the product exist? Probably not. The problem was, when PRIME began, it had a technical edge. PRIME was the first to offer virtual memory at an affordable price. But Rulebook ATP (junio 1996 - internet) H01f soon others (e.g., DEC VAX-11/780) closed the gap, sold products cheaper, had newer systems (e.g., with no traces of 16-bit indexing), etc. Then Apollo, Sun, and other workstations appeared, and began attacking the minicomputer market from below. PRIME never adapted, and did not survive. But PRIME has its place in EMTP history. One detail that many readers may not be aware of: PRIME's decline seemed to prompt Salford success using MS-DOS. Yes, Salford Software wrote the FORTRAN compiler recommended by PTI for PRIME computers. As PTI moved to alternatives, so did Salford. By 1989, Salford was working hard to complete the movement of its compiler to the Intel 386 (including virtual memory). The rest is history (PRIME could not compete with 386-based PCs). I-F-7. Hewlett-Packard HP-9000 Minicomputers Dr. Olov Einarsson and associates of ASEA Research in Sweden used HP 9000 minicomputers for the support of ATP during the late '80s. A little like PRIME ATP of the preceding section, this now (April, 1995) is history. The usage is believed to have ended. Unlike PRIME Computer, H-P remains a very successful company. But many things have changed. ASEA joined Brown Boveri to create ABB, and Dr. Olov Einarsson, who managed the ATP work in Vasteras, Sweden, was moved to other work. Then there was the growth of workstation and PC markets, which eroded the more expensive minicomputer market. H-P computers made the transition, but H-P minicomputers may have been left behind. Prof. Corwin Alexander of Oregon State University in Corvallis did set up an ATP version by hand-modifying Sun ATP FORTRAN some time around 1991 or 1992. Whether he might be interested in working further with the OSU H-P minicomputer is not known as this paragraph is being reworked in April of 1995. Around 1993, Prof. Alexander did volunteer to send a copy to someone in England (to Nottingham?), it is recalled. Continued OSU use of an H-P minicomputer should not be taken as a sign of commercial viability, however. H-P has a plant in Corvallis, and has donated lots of surplus hardware to the school. To learn what no longer can be profitably sold, look at what companies donate to schools for purposes of good will and tax reduction (joke)! I-F-8. Virtual CDC ATP in Hannover For about two decades, the Control Data Corporation (CDC) was known for powerful scientific computers without virtual memory management. Involved were 60-bit word machines that involved an 18-bit address --- terribly limited once memory prices began dropping from a million dollars (or more) per megabyte to $100 or less per megabyte. Former users of those old, memory-bound, CDC machines had all disappeared by the late '80s, having migrated to newer, more flexible machinery. One of those newer, more flexible alternatives was a fully-virtual CDC computer line. As crudely understood by the Can/Am user group, this was an all-new product line that involved 64-bit words and wide-open, fully-virtual architecture. During the late '80s, it was heavily used at the University in Hannover in Germany, where new versions were set up at least once a year (during October, at the time of the annual LEC meeting, typically). This was by thenstudent Mustafa Kizilcay (today a Professor in Osnabrueck). Harald Wehrend took over this work upon Dr. Kizilcay's departure. But then (1992 or 1993), those controlling the computer decided to abandon CDC by switching to Sun Unix workstations. 4 Rulebook ATP (junio 1996 - internet) H01f 5 Like the IBM mainframe version, the CDC version of ATP has lost to smaller, cheaper, more convenient alternatives. Even though fully compatible, there is no incentive to continue. In April of 1995 as this text is being overhauled, CDC seems to be a dead-end road for ATP. I-F-9. Sun Microsystems Unix Workstations ATP for Sun workstations was developed and distributed by BPA during the late '80s. This was for Motorola 68020-based Sun-3 with monochrome monitors --- hardware that continued to be used for ATP until 1992. Distribution was on 60-Mbyte cartridge tapes only, and details were described by a file named "read.me" of the distribution tape. Both free CGI and optional GKS graphics could be used. This information now (April, 1995) is being removed from the Rule Book. SPARC is the Sun name for RISC workstations that superseded the Motorola CISC machines around 1989. BPA never used such hardware for ATP, although it did cooperate with an ABB user in Switzerland during 1990 to establish an ATP version for SPARC. Then LEC of Leuven, Belgium, took over such work, added support for multi-window SPY, and distributed copies widely to members until its demise in 1993. Robert Sarfi of the University of Waterloo in Ontario, Canada, used the product at his school, where he supported Profs. M.M.A. Salama and Raymond Ramshaw, who specialize in power electronics. Mr. Sarfi is believed to be among the first to distribute ATP using E-mail. As this text is being overhauled in April of 1995, Mr. Sarfi has just succeeded in setting a new Sun ATP translation. There are no windows, SPY, or graphics, but the code should correctly create .PL4 files that then could be plotted using LEC's old LECPLOT (said to be satisfactory). Look for details in the July, 1995, newsletter. E-mail address rjsarfi@hivolt1.uwaterloo.ca is used by Mr. Sarfi. I-F-10. Data General: Minicomputers, Aviion A batch-mode (no SPY) version of the EMTP for Data General minicomputers with virtual memory management was used by Instituto de Investigacion Tecnologica in Madrid, Spain. This began with the support of BPA's "M39." EMTP version during 1985. Without any assistance from BPA, that computer code was made operational on the university's Data General computer. Then early in 1987, IIT was supplied with an ATP translation. But as this text is being overhauled in April of 1995, such Data General minicomputers have long been forgotten. Adaptation to the ongoing microprocessor revolution was named Aviion during the late '80s --a Unix-based workstations that are built around the Motorola 88000 RISC microprocessor. This was a good platform for ATP support, and computer expert Szymanski (see 386 Unix of Section I-F-18) even supported his own special ATP software using it for a while. But Motorola 88000 did not compete well against Intel. Today, no one is known to be using DG Aviion to support ATP. Is Aviion still on the market? Who has heard of Data General in recent years? I-F-11. Charles River Data Systems ( CRDS ) Rulebook ATP (junio 1996 - internet) H01f Charles River Data Systems (CRDS) computers were used in the power industry by the important Indian manufacturer Bharat Heavy Electricals, Ltd. Work on an ATP translator for CRDS began April 1, 1987. For a year, we were waiting for virtual memory management for the Motorola 68020 microprocessors that are used. Then, in February, we gave up hope and decided to proceed with all code in RAM at all times, just as for the DOS extender of OS/286 (see Section I-F-17). There are two halves to the program: a front end for simulation, and a back end for the supporting programs. Unlike the Intel translations, there will be no SPY, at least initially. Because CRDS used the same compiler (SVS) as did AT&T's Unix PC (Section I-F-3), that translator was modified to serve both systems. See disk files of installation-dependent modules CRDSMODS.RUM, etc. As this text is being overhauled in April of 1995, it seems likely that CRDS did not survive. It was too late supplying virtual memory management. Nothing about CRDS has been heard for years. I-F-12. Apple Macintosh : Slow Simulation The Macintosh II by Apple Computer still is not an attractive platform for support of EMTP at the end of 1990. The problem is a lack of memory management of any sort using Apple's regular (non-Unix) operating system. Yet, for those with 4 or more Mbytes of RAM, there finally was a solution from Drexel University in Philadelphia. Interested readers are referred to the report on pages 38-41 of the September, 1990, issue of LEC's EMTP News. That was for Motorola 68020-based hardware, using a 16-bit Language Systems compiler that produced half-speed execution. Around 1993, Prof. Jim Smith of Montana State University in Bozeman (USA) reconsidered ATP using his 68040-based Mac Quadra. Several parties around the world have been using this even though it, too, simulates slowly and is not otherwise (graphics, windows, SPY) developed. Finally, Stu Cook of JUST Services in a suburb of Montreal, Quebec, Canada, has been working on ATP for Quadra. Look for a report in the April, 1995, newsletter. Execution remains slow, but enhancements are being made and testing has been complete. Finally, there has been consideration of Mac Power PC, which Mr. Cook has available on an expansion card. As this text is being overhauled in April of 1995, Macintosh is being given very serious attention for ATP use. Speed may remain a problem, however. I-F-13. Univac Mainframe of EDP in Lisbon A batch-mode (no SPY) version of the ATP for old Univac mainframes (36-bit word machines requiring overlaying) was used during the mid-to-late '80s by J. Allen Lima of Electricidade de Portugal (EDP) in Sacavem outside Lisbon. As this text is being overhauled in April of 1995, such old Univac usage must be long gone. First, Mr. Lima's creative work with ATP was interrupted by a promotion. Then Univac disappeared (Unisys was the result of a merger with Burroughs). Like IBM and CDC mainframes, it seems unlikely that any Univac or Unisys mainframe ever again will be used for the support of ATP. I-F-14. Cray or SCS Clone Supercomputers 6 Rulebook ATP (junio 1996 - internet) H01f 7 Cray Research, Inc. has manufactured the supercomputers of choice during the '70s and '80s; and, for what it's worth, ATP has been proven to be compatible. Actually, it was an imitation Cray "near supercomputer" by SCS (Scientific Computer Systems) that first was tested: model SCS-40. SCS ran Cray software. Later, during the Summer of 1988, a separate compilation and linking was done on a Cray XMP at the University of Illinois in Urbana, Illinois. No one has ever shown supercomputers to be cost effective for EMTP simulation. With all the cheaper and more convenient alternatives, it seems unlikely that Cray-compatible supercomputers ever will gain a following for ATP use. Only some possible real-time simulation need, or free access ("the computer has already been paid for, and it is not much used") might rekindle interest in Cray. I-F-15. Cydrome Cydra 5 Mini Supercomputer Cydrome of Milpitas, California, was a maker of what it chose to call a "departmental level, mini supercomputer." It was being benchmarked with ATP materials during September of 1988. As this text is being overhauled in April of 1995, it seems likely that Cydrome did not survive the decline of the supercomputer market. The ongoing microprocessor revolution has taken a heavy toll, and Cydrome probably was one of the victims. I-F-16. Floating Point Systems ( FPS ) During the mid-to-late '80s, Floating Point Systems (FPS) manufactured high-speed scientific processors that were generalizations of the earlier array processors that made the company famous. Typically a flexible minicomputer such as DEC VAX was used for access (a user-friendly "front end"). In fact, DEC itself sold FPS products named FPS 30 and FPS 60 for connection to its 8600-series VAX/VMS computers. For test purposes, the SCS/Cray translator of Section I-F-14 was used. This was because translation rules were compatible. Yet, the first serious user really deserves better. FPS FORTRAN does have INCLUDE, which was ignored by SCS/Cray. As this text is being overhauled in April of 1995, FPS use for ATP is dead. On the verge of bankruptcy, Cray acquired part of the FPS operation. But now (1995) Cray itself is in trouble. Like Cydrome, FPS could not withstand the challenge of the ongoing microprocessor revolution. FPS was compatible, but seemed to be impractical for ATP use. I-F-17. OS/286 DOS Extender for Intel 286 The DOS extender that was chosen to support ATP on Intel 80286-based (IBM PC AT-compatible) PCs was named OS/286, and was written by Eclipse Computing Solutions, Inc. (formerly A.I. Architects). The associated FORTRAN compiler and linker are F77L-EM/16 and LINK/286, respectively -- both from Lahey Computer. This combination applied to the ATP will be referred to simply as "the OS/286 version" of ATP. Details are covered in Ref. [49]. Rulebook ATP (junio 1996 - internet) H01f As this text for the support of and serious users dropped. The niche is being overhauled in April of 1995, OS/286 is long gone ATP. The Salford compiler for 386s rapidly proved superior, abandoned 286-based computers in favor of 386s as prices for 286-based solutions did not last long. The old (original ) OS/2 for 286s never was tried. During September of 1989, Dr. Mustafa Kizilcay had demonstrated feasibility of Salford EMTP for 386s. The window of opportunity for 16-bit OS/2 had closed. Further explanation can be found in the December, 1989, issue of EMTP News (the 11-page paper by Messrs. Kizilcay and Riedel). I-F-18. Unix for Intel 386-based PCs An EMTP version for Unix on 80386-based computers was described in LEC's "EMTP News" beginning in September of 1988 in articles by David Szymanski. References can be found in the newsletter, of course. Being used was Unix System V, Release 3.2, which could be obtained from several companies in the USA. A batch-mode version of ATP for Unix on 386-based PCs became available free of charge to licensed ATP users in September of 1989. By definition, SPY was missing, and bit-mapped plotting was done by use of separate MS-DOS programs such as TPPLOT and WINDOWPLT (the Unix ATP could create compatible FORMATTED ".PL4" plot files). But almost no one had the required Unix, which was neither cheap nor simple. Finally, with the complete success of the alternative, simpler Salford version of Section I-F-22, Unix was abandoned quickly. In addition to being a computer consultant, David Szymanski was a computer reseller who had offered specially-configured 80286-based (PC AT-compatible) Unix systems in the past. For a time, he filled the void for those wanting the ideal 80386-based system for ATP simulation. His enhancements could be found in special installation-dependent modules, and these were superior in many important ways. But Unix was much more complex than MS-DOS. As Salford EMTP continued to improve, the demand for Unix to support ATP on PCs disappeared. But Szymanski's was an important piece of ATP history that should not be forgotten. It included the running of SPY in parallel as a separate Unix process, dynamic dimensioning half a decade before the 1993 breakthrough of Salford EMTP, and the compression of tables during dumping (5 years before Robert Schultz's breakthrough of Salford EMTP). I-F-19. DEC Unix : VAX Ultrix, MIPS, OSF During the spring and summer of 1988, a VAX ULTRIX (DEC's Unix) translation was tested at the University of Illinois in Urbana, Illinois, U.S.A. See the 2-page report by Messrs. Lesieutre and Sauer in the September, 1988, issue of LEC's "EMTP News." The RISC DECstation 3100, a workstation manufactured by MIPS, was said to run ULTRIX-32 as it is introduced in the spring of 1989. This was benchmarked at BPA as reported in the June, 1989, issue of EMTP news. Then, early in 1990, a second round of testing of DECStation 3100 was completed by Prof. Jim Smith and students at Montana State University in Bozeman. ATP certainly was compatible. But DECstation 3100 was short-lived, as DEC turned its Unix attention from MIPS to its own Alpha microprocessor. 8 Rulebook ATP (junio 1996 - internet) H01f 9 As this text is being overhauled in April of 1995, there no longer is interest in the old flavors of DEC Unix. The new DEC Alpha workstations running OSF Unix certainly are of interest, however. Look in the April, 1995, newsletter for a story about such use by Dr. Søren Støvring-Hallsson of NESA in Hellerup, Denmark. The European user group (EEUG) can arrange distribution. I-F-20. IBM RT PC Workstation Uses Unix RT PC was IBM's workstation of the late '80s that ran only Unix. Unlike the top of the IBM PS/2 line, RT PC did not use any Intel microprocessor. Rather, it used IBM's own proprietary RISC chip. FORTRAN for RT PC was first produced during July of 1989, but never was tested due to lack of Can/Am time (the Portland office of IBM had volunteered a machine). Then, on 30 March 1989, an RT PC owner of the power industry telephoned to express interest. A new translation was rapidly produced and mailed on 1 April 1989. But the Can/Am user group never learned what happened. As this text is being overhauled in April of 1995, more than just ATP for RT PC is believed to be dead. RT PC itself seems to have passed away (nothing has been read about it in years). Of course, as well know, IBM has moved along with Apple to the newer, more-open Motorola Power PC. I-F-21. Siemens Mainframe in Saarlandes Siemens is the giant German electrical manufacturer that included some computers in its product line during the '80s. At least certain of these were proven to be ATP-compatible at Universitat des Saarlandes in Germany. This was during 1988. The Siemens FORTRAN compiler proved useful as a diagnostic tool, so during late winter of 1989, a separate translator for Siemens was established, and a new ATP version was mailed to Saarlandes on March 28th. As this text is being overhauled in April of 1995, Siemens computers have been long forgotten. Like all time-shared computers, they no longer are in favor for the support of ATP. Does Siemens even continue to sell them? I-F-22. Salford DOS Extender for Intel 386 Salford EMTP and TPPLOT for Intel 386, 486, or Pentium PCs that run MS-DOS are by far the most widely used ATP software. These are used more than all other versions combined. Intel PC hardware is the standard of the industry, and the Salford DOS extender, DBOS/386, can be distributed free of charge of any interested user. As this text is being overhauled in April of 1995, the many pages of details are being removed. See the READ_ME.DOC file on the GIVE2 disk of Salford EMTP distribution for this material. Also, consult recent issues of the newsletter. Any potential user should have more than 2 Mbyte of RAM, however, along with 10 free Mbytes on the hard disk, a color monitor (most use standard VGA), and a mouse. That is all it takes for the most high-developed and sophisticated ATP version in the universe. Some Japanese PCs sold within Japan are incompatible with Salford DBOS, however, it should be noted. NEC and Fujitsu had known problems during the Rulebook ATP (junio 1996 - internet) H01f early '90s. Prof. Naoto Nagaoka at Doshisha University in Kyoto understands such details. I-F-23. Watcom ATP for OS/2 Warp IBM's OS / 2 Warp is one alternative to business as usual (Salford DBOS running under MS-DOS). Robert Meredith and Robert Schultz of NYPA (New York Power Authority in White Plains) have been pursuing this as detailed in newsletter stories that begin with the January, 1995, issue. They pursue OS/2 Warp because of dissatisfaction with MS Windows as a multitasking environment. Warp is a relatively-new, 32-bit operating system that should not be confused with the crummy, old, 16-bit version of OS/2 that EPRI used to support DCG/EPRI EMTP during the late '80s. EPRI used OS/2 that was written for 286based PC, and it simulated very, very slowly. NYPA uses the Watcom compiler, and has demonstrated full-speed (not quarter-speed) simulation. As this section is added in April of 1995, the Can/Am user group is following the NYPA lead. Although OS/2 has not yet been purchased, the Watcom compiler already is being used with plain MS-DOS. It is compatible with both, as well as MS Windows NT. DOS4GW is the name of the DOS extender used by Watcom, and NYPA has shown that this, too, will support ATP. Look in the July newsletter for more about this rapidly-evolving story. 10 Rulebook ATP (junio 1996 - internet) I.G VARDIM: H01g 1 User-Controlled Variable Dimensioning of the EMTP The EMTP works with a large amount of data. Because it is impossible in FORTRAN to allocate the exact needed amount of memory while the program is running, large tables with fixed dimensions are to be predefined. The VARDIM utility can redimension these tables at linkage-editing time and should be used in the following two situations: a) The program's default table sizes do not fit your needs. This can be the case if the user has got a table overflow error message. Another possibililty is that certain models are never used and the user want to recuperate that memory. This is important for computers with virtual memory as the program runs faster if less memory is required. b) If the program does not fit into memory (for versions). Reducing the table sizes is a possible solution. overlaid program Vardim allows the user to size tables at linkage-editing time (loading; binding; etc.) and not during compilation time. The programming tricks that result in this freedom are: - the use of only singly-subscripted arrays - the use of a separate COMMON block for each such vector, so that compiler output is independent of array dimensions. This concept was originally detailed in Ref.8, Vol.II, pagination VARD. See also 17 April 1975, pagination RSFU. 30 January 1975, For the user's benefit, key points that are independent of computer system shall now be summarized. The user is also referred to the installationdependent instructions for his computer system (Section I-F), since various aspects of the procedure depend upon the brand of computer. In order to size EMTP tables, the separate program "VARDIM" is to be executed prior to linkage-editing of the EMTP. Input to this program consists of 3 to 5 data cards that embody the user's desired EMTP table sizes. All such data cards (except the optional DEFAULT-card) are read using 10I8 format. The output of the VARDIM program are 10 FORTRAN routines who should be compiled and linked with the original EMTP to form the new executable. With only a few relatively-minor exceptions, the user can size all EMTP tables at will. There are 3 data cards that apply to tables used by EMTP simulation. A fourth (optional) card is dedicated to the non-simulation overlays. I.G.1 The tables used by EMTP simulation Currently, there are 27 independent tables ("list sizes") related to the simulation part. First, the meaning of these "list sizes" will be discussed. Next, the default table sizes will be specified. Rulebook ATP (junio 1996 - internet) 2 H01g The meaning of all "List Sizes" First all tables used by the EMTP simulation part are explained: 1. LBUS, the maximum number of nodes (busses). Remark that following nodes should be taken into account too: - ground (TERRA) - BUSTOP (Saturable Transformer component, see section IV-E-1) - BUS3PH+3*BUSTOP (Saturable transformer component, 3-phase option, see section IV-E-4) - each N-phase coupled branch counts for 2*N 2. LBRNCH, the maximum number of branches. Remark that following rules should be taken into account too: - a series R-L-C branch counts as 1, - a 3-phase overhead line counts as 3, - a pseudo-nonlinear branch type 99 counts as 1 - a N-winding transformer counts as 2*(N-1)+3 - true non-linear elements are not taken into account. 3. LDATA, the maximum number of (R,L,C) floating-point parameter entries that are read from branch cards. Remark that following rules apply: - a uncoupled series R-L-C branch contributes 1 - a N-phase coupled R-L-C branch counts as N*(N+1)/2 (storage on and below the diagonal only) - a single-phase N-winding transformer counts as 3*N - a three-phase N-winding transformer counts as 3*N+3 - a true nonlinear branch type 99 counts as 1 - a source type 16 counts as 2. Whenever the reference branch procedure is used, no contribution to LDATA is obtained. 4. LEXCT, the maximum number of sources. Remark that following rules apply: - each each each each type 1..15 source counts as 1 type 16 source counts as 2 Type-59 dynamic S.M. counts as 3 UM counts as 4 5. LYMAT, limit on floating-point storage for both the admittance matrix [Y] of the time-step loop (all nonzero entries must be stored) and also its factors (diagonal and upper-triangular factors only). Both must be stored simultaneously. 6. LSWTCH, the maximum number of switches. Remark that following rules apply: - each switch counts as 1 each diode counts as 1 each valve (thyristor or HVDC valve) counts as 1 UM to accept type-59 data (e.g. SHAFT, TORQUE, etc) 7. LSIZE7, a limit on the total number of distinct 6-character ALPHANUMERIC names that are used by the program. Remark the following: (A6) Rulebook ATP (junio 1996 - internet) H01g 3 - Node names have their own special storage, so do not count them for purposes of sizing List Size 7. - Also, do not count SPY symbol names (this has its own extra, separate storage). 8. LPAST, the maximum number of modal past-history distributed-parameter transmission lines and cables. points, for 9. LNONL, the maximum number of nonlinear and pseudo-nonlinear elements of the network. These are type 91, 92, 93, 96, 97, 98 and 99 elements, recall. 10. LCHAR, the maximum number of points that define the characteristics of nonlinear or pseudo-nonlinear elements of List 9. Remark following rules: - each pair of input counts as 1 - no extra burden if the reference component procedure is used Exceptions: - Type-96 hysteretic inductors are an exception, however. For the first such element, 2*N+8 cells are allocated, where N is the number of data cards that define the characteristic. Second and later elements might use the reference-branch feature, in which case requirements drop to only six cells per element. See Section V-D for further details of this exceptional case of Type96 branches. - A second exception is provided by ZnO surge arresters, which require extra storage. The burden of each arrester is equal to the number of segments (exponentials) that require representation. 11. LSMOUT, the maximum number of Type-59 synchronous machine (S.M.) outputs of the time-step loop. Each such output counts as one. Value unity is taken as a special flag to minimize all other type-59 storage as well. The alternate use of unity for List Sizes 16 and 17 wastes space if no machinery at all is wanted (remember, one machine and one mass require real tables to store). 12. LSIZ12, the maximum number of outputs of the time-step loop. Remark the following: - SM output does not contribute (taken into account in list 11) - Energy and Power request output do not contribute (taken into account in list 18) 13. LSIZ13, working space (in floating-point words) for both and interactive plotting. batch-mode 14. LBSTAC, the maximum number of connections between Type-92 sources of TACS and rotating machinery (either the S.M. or the U.M.). 15. LCTACS, the maximum number of bytes of CHARACTER storage for MODELS (new TACS available on all systems, except PC XT-AT). Remark: - Testing began in the second half of 1988. - Unless and/or until users are told how to use this, a blank, zero, or unity will effectively give no such storage (and no burden on memory). - Usage of 3 x table default is always needed when MODELS should be activated. - For the old TACS, refer to list 19 Rulebook ATP (junio 1996 - internet) 4 H01g 16. LIMASS, the maximum total number of masses of all Type-59 synchronous machines (List 17). This is the total for all shafts of all machines of the network. 17. LSYN, the maximum number of components) described in Section VIII. Type-59 synchronous machines (S.M. 18. MAXPE, the maximum number of branch or switch power and energy requests. Thinking of the old, original form of the request, this is the maximum number of column-80 requests that have a value of "4". 19. LTACST, the maximum number of floating-point cells of total storage for all of the old TACS tables (see Section III). Remark the following: - The memory allocation for MODELS (the new TACS) is not handled here. Refer to table 15. - LTACST only controls the total storage. Dynamic reallocation, proper to the data groupings within the old TACS can be done via special requests "ABSOLUTE TACS DIMESIONS" (see section II-A-1) or "RELATIVE TACS DIMENSIONS" (see section II-A-29). - A value of 23 is the minimum allowed (any small value will be increased to this value automatically). - A reasonable practical minimum for production usage might be 2000. Serious TACS users will generally want more. 20. LFSEM, storage for polynomials, representing frequency-dependent transmission lines and cables. Please note the following: - For JMarti modelling (Sect. IV-D-3), each branch contributes 5+7*NP cells, where NP is the number of poles used to represent the two functions Zo and A1. - For Semlyen modelling (Sect. IV-D-4), each branch requires one cell, plus five times the number of poles of the propogation functions, plus four times the number of poles of the admittance functions. 21. LFD, the maximum number of cells used to store transformation matrices for the constant-parameter and frequency-dependent distributed transmission line models. Please note the following: - For each non-copied transmission circuit of N phases, 2*N*N cells are required. - Whenever the reference component procedure is used, the size of this list will not be augmented. 22. LHIST: The history terms for lines. Remark the following: - List number 8 also refers to history terms. - For each JMarti line, 15 cells are required for each coupled phase. - For each Semlyen line, it is the larger of six times the number of coupled phases and two times the number of poles of both functions (propagation & characteristic admittance) that is required. 23. LSIZ23, a value that must be supplied for computers that do not overlay EMTP tables (i.e. for virtual computers only). Please remark the following: - For fully-virtual systems that are not short of address space, LSIZ23 gives the length in floating-point words of three giant vectors that are used Rulebook ATP (junio 1996 - internet) H01g 5 for node renumbering and the phasor steady-state solution. That is the conventional use of List 23, which applies to all virtual computers. - A possible exceptional use of List 23 for computers with virtual memory (more precisely, those computers with KBURRO = 1) is for the storage of intermediate results of "STATISTICS" or "SYSTEMATIC" solutions. For each energization, the vectors of switch closing times and opening times, and the output vector (extrema) all are saved in one floating-point vector that is dimensioned by List Size 23. Note that such storage requirements vary linearly with the number of energizations, so any allocation will be overflowed as the number of shots approaches infinity (beware, user!). Also for virtual computers, statistical tabulations impose even further on List 23, which is used for working space to produce the tabulation. 24. NCOMP, the maximum number of phases of compensation ( for a circuit of maximum size ). The actual maximum number of phases then varies inversely with the number of actual nodes used in a particular simulation case. Use of NCOMP = 3 is common, since this allows 3-phase compensation for a network that is of maximum size, 6-phase compensation with a network of half size, etc. 25. LSPCUM, the maximum number of floating-point cells of total storage for all universal machine (U.M.) tables. Please remark the following: - If U.M. modeling of Section IX is not of interest, set LSPCUM to unity. - Practical production usage allowing two 3-phase induction machines typically requires a value of 1500 (or more). 26. LSIZ26, the length of several small working vectors that are used for various functions in the EMTP. Originally fixed at 50 cells, these are now variably-dimensioned to allow open-ended usage. Please note the following rules: - The square of the number of coupled phases of various components (e.g., lines or Pi-circuits) must not exceed List 26. - Note that the common value of 3 times default gives 150, which allows a 12-phase line. 27. LSIZ27, reserved for later use with frequency-dependent sources (Ref. 35). The EMTP has such solution code, but not the associated data generator (never contributed to the public domain by Ontario Hydro). Until such usage, List 27 is used only to store steady-state node voltage outputs during "FREQUENCY SCAN" usage of module "OVER11". If such usage is contemplated, the size of LSIZ27 should equal that of List 12, then, not unity. 28. LRTACS, numeric storage (in floating-point words) for MODELS (the new TACS). See List 15. Eventually, when the old TACS is removed (after the new TACS is proven), this field should be shifted to List 19 (storage for the old TACS). 29. LSIZ29, the size of extra, auxiliary storage for "LABCOM" tables of STATISTICS/SYSTEMATIC energizations. The average user is advised to leave this field blank. Those wanting such storage for byte-organized computers can obtain it automatically using the "RAM TABLES" declaration (see section I.G.2 point 3). Only for word machines should an actual large value be keyed, and then only after careful study. 132-column case summary statistics at the end of EMTP Rulebook ATP (junio 1996 - internet) H01g execution will display a row for this entry only if meaningful storage has been requested. The default values and memory requirements In order to redimension EMTP, the user should not only know the default values for the List Sizes but also how many arrays are declared with the requested List Size. In the follwing table, for each List Size the default size is depicted, together with the number of INTEGER*4 and REAL*8 arrays that are defined in the program. 6 Rulebook ATP (junio 1996 - internet) H01g TABLE 1: Default values and memory requirements Table number 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Name of list size LBUS LBRNCH LDATA LEXCT LYMAT LSWTCH LSIZE7 LPAST LNONL LCHAR LSMOUT LSIZ12 LSIZ13 LBSTAC LCTACS LIMASS LSYN MAXPE LTACST LFSEM LFD LHIST LSIZ23 NCOMP LSPCUM LSIZ26 LSIZ27 LRTACS LSIZ29 Multiplicity for integer arrays NR bytes Multiplicity for real arrays NR bytes Defaul t size 4 7 0 2 1 10 0 0 11 0 3 0 4 0 0 1 10 2 0 0 0 0 16 28 0 8 4 40 0 0 44 0 12 0 16 0 0 4 40 8 0 0 0 0 6 5 3 6 1 12 2 2 8 3 1 4 8 1 2 0 6 1 1 24 2 1 48 40 24 48 8 96 16 16 64 24 8 32 64 8 16 0 48 8 8 192 16 8 0 0 0 0 1 1 8 8 250 300 500 50 2500 40 700 1750 75 160 50 50 5000 20 1 40 4 5 1600 660 100 150 4000 3 400 50 50 1 1 Note: The tables with default values use approximately 680K bytes used per table at unity size 64 68 24 56 12 136 16 16 108 24 20 32 80 8 16 4 88 16 8 192 16 8 defaul t size 16000 20400 12000 2800 30000 5440 11200 28000 8100 3840 1000 1600 400000 160 16 160 352 80 12800 126720 1600 1200 8 8 24 3200 7 Rulebook ATP (junio 1996 - internet) H01g I.G.2 The input data cards for VARDIM In general, an input data-deck for "VARDIM" has the following structure: 1. DEFAULT request card (optional) 2. SCALE request card (optional) 3. The RAM TABLES request 4. grouping of three cards, containing the list sizes (mandatory) 3. Offset-card for non-simulation overlays (optional) Let's discuss these card formats one by one now. 1 The DEFAULT request card (optional) Input to VARDIM begins with an optional "default" card. This card multiplies all default list settings by a constant. (See table 1) The table sizes thus obtained can only be overruled by the SCALE request (see point 2 data) or by list specifications on the mandatory grouping of three cards. (see point 4 data) If no such modification is desired, the user should leave all fields blank on this mandatory grouping of three cards, and omit usage of the SCALE request. The card format to be used for this DEFAULT request card looks as follows: 1 Parameter: DEFFAC: the multiplication factor to the default size (see table 1) 2 The SCALE declaration (optional) Input to VARDIM can also contain an optional "SCALE" request. This card multiplies all list settings (default as well as user-specified) by a constant. The card format to be used looks as follows: 2 Parameter: SCAFAC: the multiplication factor to all variable fields (default as well as user-specified). 8 Rulebook ATP (junio 1996 - internet) H01g 9 Note: SCALE differs from DEFAULT in the way that DEFAULT only applies to balnk fields (user-specified rields remain unchanged). The SCALE factor, however, applies to all table sizes. If both declarations are used, then, a) any blank field is sized using the PRODUCT of the two multipliers (i.e. SCAFAC * DEFFAC), applied to the default table size (see table 1); b) any user-specified field is sized using the SCAFAC multiplier, applied to the concerning field value. The RAM TABLES request (optional) The format to be used is as follows: 3 If this keyword is found, then listsize 29 is internally defined to equal LTLABL (i.e. "LABCOM" size in INTEGER words), thereby creating duplicate, alternate storage space for tables that can be used by some computers for the storage of STATISTICS/SYSTEMATIC energizations. Grouping of three cards, containing the list sizes The following grouping of three cards is mandatory. Here, the user can specify table sizes, fitted to his actual needs. In order to allow more flexibility, following remark is adequate: - The table sizes obtained using the "DEFAULT" option (see point 1 data) can only be overruled by list specifications on the mandatory grouping of three cards, explained hereafter. - If no such modification is desired, the user should leave all fields blank on this mandatory grouping of three cards. - The SCALE factor applies as a multiplier on all fields (blank as well as user-defined). Let us discuss the card format now. The meaning of all list sizes is already explained in section I.G.1 and will not be repeated here. The input card for list 1-10 This input is always read. Values that should not be changed must be left The card format to be used is as follows: blank. 4 Rulebook ATP (junio 1996 - internet) H01g The input card for list 11-20 This input is always read. Values that should not be changed must be left The card format to be used is as follows: blank. 5 The input card for list 21-28 This input is always read. Values that should not be changed must be left The card format to be used is as follows. blank. 6 Offset card for non-simulation overlays (optional) Certain primary-level non-solution overlays have giant working arrays (a maximum of one per overlay) that are sized the same as "LABCOM" except for a possible built-in offset that very crudely adjusts for the amount of code of the overlay. If the user wants to apply an additional offset manually to this storage, he can add a data card as follows: 7 The functioning is as follows: 1) 4) 5) 6) "ROOT20", "ROOT25", "ROOT26", "ROOT27", cols. cols. cols. cols. 1-8, for plotting and statistics tabulations; 25-32, for "LINE CONSTANTS"; 33-40, for "SEMLYEN SETUP"; 41-48, for "CABLE CONSTANTS". Users of overlaid program versions should be using this feature carefully. But virtual program versions are more common, and in this case, data requirements are much simpler. All UTPF overlays use the same virtual storage, 10 Rulebook ATP (junio 1996 - internet) H01g 11 so only a single offset, keyed in columns 1-8, will be used. Further, the size does not matter much, for machines with wide-open virtual memory management. But there are exceptions (e.g., the badly-constrained AT&T UNIX PC). The sign and the size of the offset or offsets is impossible to predict. When the idea began, overlaid computers were used, and offsets were generally positive. The non-simulation overlays were shorter than the time-step loop, so a positive offset allowed greater table size without any greater burden on memory. The idea was to extend non-simulation overlays to the length of the time-step loop (overlay 16, which was the longest EMTP overlay). But then along came virtual computers, and enormous list sizes were requested. Unless specially compensated for, the giant working arrays would be dimensioned far beyond any reasonable program needs. To compensate, offsets became negative. For VAX, during March of 1980, an offset of -128500 was being used. This was at a time when LTLABL (the size of "LABCOM") was 207363 integer words. Using the negative offsets saved a little virtual address. Finally, some program versions were modified so as to save "LABCOM" within the working space of non-simulation overlays, so there was a return to positive offsets. There are no general rules other than that the user is referred to the installationdependent section for his computer of interest. I.G.3 Illustrative usage Normal execution of the variable-dimensioning program results in minimal printout that includes a listing of the input data cards (3 or 5 in number). For example, if the user wants 3 times default dimensioning for all tables the following could be the input cards: vardim.exe C Comment cards of EMTP format (beginning with "C " in cols. 1-2) are C allowed anywhere among the data cards read by "VARDIM". In-line C comments are also allowed anywhere, as illustrated on the following C data card. Yet only "open" in-line comments are allowed, meaning C that everything to the right of the first "{" will be blanked out. C Please consult the Rule Book for details regarding table sizes !!!! DEFAULT 3.00 { Optional card specifies multiple of default for blank field SCALE 1.00 { No inluence; extra multiplication of all sizes by UNITY. BLANK card for List Sizes 1-10 (first of 3 or 4 mandatory cards read by "VARDIM" 5000 BLANK card for List Sizes 21-30 (3rd of 3 or 4 mandatory cards read by "VARDIM" 260000 742 { Only 1st two fields of 4th card are used for virtual Apollo The resulting output becomes: C Comment cards of EMTP format (beginning with "C " in cols. 1-2) are Comment card is ignored. 1C Comment cards of EMTP format (beginning with "C " in cols. 1-2) are C allowed anywhere among the data cards read by "VARDIM". In-line Comment card is ignored. 1C allowed anywhere among the data cards read by "VARDIM". In-line C comments are also allowed anywhere, as illustrated on the following Comment card is ignored. 1C comments are also allowed anywhere, as illustrated on the following C data card. Yet only "open" in-line comments are allowed, meaning Comment card is ignored. 1C data card. Yet only "open" inline comments are allowed, meaning Rulebook ATP (junio 1996 - internet) H01g C that everything to the right of the first "{" will be blanked out. Comment card is ignored. 1C that everything to the right of the first "{" will be blanked out. C Please consult the Rule Book for details regarding table sizes !!!! Comment card is ignored. 1C Please consult the Rule Book for details regarding table sizes !!!! DEFAULT 3.00 { Optional card specifies multiple of default for blank field Default multiplier = 3.000 1DEFAULT 3.00 { Optional card specifies multiple of default for blank field SCALE 1.00 { No inluence; extra multiplication of all sizes by UNITY. Final multiplier = 1.0000 1SCALE 1.00 { No inluence; extra multiplication of all sizes by UNITY. BLANK card for List Sizes 1-10 (first of 3 or 4 mandatory cards read by "VARDIM" 1st card (Lists 1-10). 1BLANK card for List Sizes 1-10 (first of 3 or 4 mandatory cards read by "VARDIM" 5000 2nd card (Lists 11-20). 1 5000 BLANK card for List Sizes 21-30 (3rd of 3 or 4 mandatory cards read by "VARDIM" 3rd card (Lists 21-29). 1BLANK card for List Sizes 21-30 (3rd of 3 or 4 mandatory cards read by "VARDIM" 260000 742 { Only 1st two fields of 4th card are used for virtual Apollo Supplemental offsets. 1 260000 742 { Only 1st two fields of 4th card are used for virtual Apollo -------------------------------------------------------------------------------------------------------------Final List Sizes 1-10 = 752 900 1500 150 7500 120 2100 5250 225 480 Final List Sizes 11-20 = 150 150 15000 60 10800 120 12 15 4800 5000 Final List Sizes 21-29 = 300 450 12000 9 1200 252 4 9600 3 Final List Sizes 51-60 = 300 600 261 7560 237 600 6768 600 504 240 Final List Sizes 61-70 = -9999 30 360 480 1212 288 1440 720 360 752 Before modify, MTOT = 232129 LSTNEW(1) = 752 LSTNEW(7) = 2100 After modify, MTOT = 211803 B4 modify, LSTNEW(29) = 3 modify, LSTNEW(29) = 3 Normal termination of "VARDIM". LTLABL = 211803 (the size of "LABCOM" in INTEGER words). Fortran STOP Following example illustrates the case where all tables sizes should be 3 times default dimensioned, supposing that only 2 S.M. outputs of the time step loop will be requested (LSMOUT = 2). In the previous case, the table size corresponding to LSMOUT would have a size of 3 x 50 = 150, thus reserving 4800 byte of memory (see Table 1). If only 2 such outputs should be expected, it is useless to waste this memory. Hence following input should be used: DEFAULT BLANK 3.00 2 BLANK { Optional card specifying multiple of default dimensioning {table sizes 1-10 3 times default {table size LSMOUT = 2, rest 3 times default {table sizes 21-30 3 times default 12 Rulebook ATP (junio 1996 - internet) 13 H01g Of course, all table sizes can be specified by the user disregarding any default allocation. In this case, omit the "DEFAULT" card, and specify the table sizes on the 3 mandatory cards. System-dependent control cards or commands will be required to actually effect the dimensioning-changing process. Refer to installation-dependent pages of the computer system of interest in Section I-f. Should a cook-book procedure for doing the job not be found there, the user is advised to check with Program Maintenance of his company. In order to dimension the EMTP parsimoniously, the user must know the multiplicity that is associated with each list that is to be resized. That is, he must know the number of INTEGER*4 and REAL*8 arrays (vectors; columns of tables) to which each list (or table) applies. This handy information is automatically printed out by the EMTP following the error text associated with any overflow error stop of the program (KILL = 1). Any user wanting to generate such output for himself needs only attempt to execute the 2nd subcase of BENCHMARK DC-23 using default or smaller dimensioning. After much general information, there will be found the critical table of multiplicities. From the DC-23 output: TACS Table Number 1 2 3 4 5 6 7 REAL multiplicity 4 2 0 5 0 0 1 INTEGER multiplicity 8 0 2 1 3 1 0 Total multiplicity 12 2 2 6 3 1 1 The TACS table sizes that just proved to be inadequate were: TACS Table Sizes 10 40 50 20 20 200 2000 8 6 2 8 100 Rulebook ATP (junio 1996 - internet) II. CARDS TO BEGIN A NEW DATA CASE ( INCLUDING H02a1 MISCELLANEOUS 1 DATA) Each new data case that is to be solved must begin with one or more of the data types described in the following subsections. Structurally, there is an indeterminate number (possibly zero) of special-request inputs (Section II-A) that come first, in any order (unless usage dictates an order for the problem of interest). The miscellaneous data cards of Section II-B, followed by possible extensions to these cards in Section II-C, only come after the last of any such special-request cards of Section II-A. Special-Request Cards That Precede Miscellaneous Data Free-format data options are useful for special-request inputs, particularly for the user who is keying data via a conventional, dumb computer terminal (on which column position is not intuitively obvious). Take the "FREQUENCY SCAN" declaration of Section A-16 as an example. Using free format, a valid sample card image is as follows: "FREQUENCY SCAN, 10., 5.0, 100., 0" . Even further abbreviation is possible for the really-lazy data assembler. Rather than using the full request word, an acronym made up of the first letter of each sub-word can be used. In this case, "FREQUENCY SCAN" can be abbreviated as "FS", if desired. All special-request words are recognized in such abbreviated, freeformat fashion. All possible special-request cards that could be recognized at this point of EMTP data input shall now be listed in alphabetical order, for ease of location. Before each is the number of the subsection (within the present Section II-A) that contains an explanation of usage: 1) 2) 55) 3) 4) 41) 5) 6) 7) 8) 9) 48) 10) 42) 56) 11) 43) 12) 44) 53) 14) 15) 16) 45) 17) 18) 19) 20) 57) 21) 22) ABSOLUTE TACS DIMENSIONS ABSOLUTE U.M. DIMENSIONS ACCESS MODULE BCTRAN ALTERNATE DIAGNOSTIC PRINTOUT ANALYTIC SOURCES USAGE AUTO NAME AVERAGE OUTPUT BEGIN NEW DATA CASE BEGIN PEAK VALUE SEARCH BLANK card CABLE CONSTANTS CENTRAL STATISTICS FILE CHANGE PRINTOUT FREQUENCY CHANGE SWITCH CHANGE TRANSFORMER CUSTOM PLOT FILE DATA BASE MODULE DIAGNOSTIC DISK PLOT DATA EXACT PHASOR EQUIVALENT FILE REQUEST FIX SOURCE FREQUENCY SCAN HYSTERESIS JMARTI SETUP KILL CODES LINE CONSTANTS LINEAR BIAS USAGE LOAD MORE SHOTS MISCELLANEOUS DATA CARDS MODE VOLTAGE OUTPUT allocation of storage for 8 TACS tables allocation of storage for 4 U.M. tables branch cards for multi-phase transformer selective printout in time-step loop user supplied sources: desire to use toggle choice of internal branch naming average values for EMTP output variables case-separation card precedes data case time the extrema computation can begin to signal the end of stacked data cases cable system: calculation of constants name of the OPMC file PARALLEL.LIS change frequency of solution printout to modernize former switched-R,L data to Convert saturable TRANSFORMER to [Z] change precision of the plot file modularize data: $INCLUDE with arguments selective diagnostic printout specified toggle plot data storage (disk vs. RAM) toggle lumped-R to long-line formulas access to module "MIDOV1" during input EMTP load flow: declare intention to use multiple-freq. steady state solutions to punch Type-96 hysteresis branch cards frequency-dependent overhead line data output range of program error messages calculate overhead line constants linearly-varied (not random) switch bias to combine 2 or more Monte Carlo studies read program miscellaneous data cards modal voltage output of distributed line Rulebook ATP (junio 1996 - internet) 13) 47) 23) 24) 25) 26) 27) 28) 49) 54) 29) 30) 31) 32) 33) 34) 58) 35) 36) 52) 51) 46) 50) 37) 38) 39) 40) NETWORK EQUIVALENT OBSERVE PARALLEL MONTE CARLO OLD TO NEW ZNO OMIT BASE CASE PEAK VOLTAGE MONITOR POSTPROCESS PLOT FILE POWER FREQUENCY PRINTED NUMBER WIDTH RANDOM NUMBER GENERATOR SEED READ PL4 HEADER RELATIVE TACS DIMENSIONS REPLOT SATURATION SEMLYEN SETUP START AGAIN STEP ZERO COUPLE TACS SPLIT TACS WARN LIMIT TIME STEP LOOP TOGGLE EXTREMA MODE TRUNCATE OUTPUT LINES UM TO TACS USER IDENTIFICATION USER SUPPLIED SWITCH TIMES XFORMER ZINC OXIDE ZNO FITTER H02a1 transfer to network equivalent routine display and manage central status file convert old data of ZnO to new formats skip base base solution of Monte Carlo request for peak node or branch voltage postprocess ".PL4" plot file using TACS change the synchronous power frequency for width, blanks of DELTAT-loop numbers initialize the random number generator REWIND LUNIT4 and then read header only relative sizing of the 8 TACS tables batch-mode plot of previous solution produce regular & hysteretic B-H curves 2-order frequency-dependent line fitter restart a halted, preceding simulation subnetwork ident. with switches closed to define INTEGER/REAL ratio of new TACS limit on the number of TACS warnings transfer control to the time-step loop FORMATTED vs. UNFORM. "LOAD MORE SHOTS" output line limit after formed as KOL132 U.M. output variables go to Type-92 TACS 6-byte label overrides USERID of STARTUP user supplied random switching times derive impedance matrix for transformers redefine controls of ZnO Newton solution to fit exponentials to ZnO data points Most of these (e.g. "AUTO NAME") are self-contained, so the explanation that follows will be complete. But a few represent requests for the transfer to separate supporting programs, and for these requests, there will be references to further explanation at the back end of the book. An example of the latter is "NETWORK EQUIVALENT". A final point is about abbreviations, which can always be used (although such use is not encouraged). In alphabetical order, corresponding to the preceding tabulation, we have: ATD CSF FXS NE RTD TOL AUMD CPF FS OPMC R UTT AMB CS HYS OTNZ S UID ADP CT JMS OBC SS USST ASU CPF KC PVM SA X AN DBM LC PPF SZC ZO AO D LBU PF TS ZF BNDC DPD LMS PNW TWL BPVS EPE MDC RNGS TSL CC FR MVO RPH TEM Request for Absolute Allocation of Total TACS Storage TACS is the control-system modeling feature of Section 8. Total working space for all TACS tables is assigned in List 19, along with the other 27 or so EMTP lists (see Section I-G). But there still remains the question of how this total working space is to be divided among the eight TACS tables. This allocation can be performed at execution time, according to the description of the present section, thanks to the procedure of offset subscripting (see Ref. 8, Vol. VIII, 27 January 1979, pages PROV-19 through 22). The first way to allocate total TACS storage is with a request for absolute TACS table sizing ("ABSOLUTE TACS DIMENSIONS"), followed by a card giving the desired absolute sizes: 2 Rulebook ATP (junio 1996 - internet) H02a1 3 8 9 The format for the sizes is 8I8, with the 8 required TACS table sizes having the following meaning: LT1 : Maximum number transfer functions H(s) . of TACS dynamic function blocks, having Laplace LT2 : Maximum number of nonzero factors of the triangularized TACS network matrix. This limit applies to both the steady-state solution and the transient solution. LT3 : Maximum total number of input variables to TACS dynamic function and supplemental devices. LT4 : Maximum number of TACS sources. This includes built-in sources (e.g., "TIMEX" or "UNITY") and variables passed from the electric network to be TACS driving functions. LT5 : Maximum number of supplemental variables and devices (type codes 99, 98, or 88 keyed in columns 1-2). LT6 : Maximum total number of extra INTEGER pointers which are associated with supplemental variables and devices. There is no easy, exact formula, although sample figures can be given. Each parenthesis requires 3 cells, as does each arithmetic operation ("+", "*", "="). LT7 : Maximum total number of extra REAL cells which are associated with TACS variables. Each TACS variable requires one or more such cells. Again, a simple rule is impossible to state. Each first-order function block requires 10 cells, intermediate variables of supplemental-variable expression evaluation each requires one, the average device might require between 3 and 5, and the most Rulebook ATP (junio 1996 - internet) complex device (the RMS sensor, Type 66 (requires is the fundamental frequency. H02a1 4 1 / ( f * DELTAT ) where "f" LT8 : Maximum number of distinct TACS variables used in the TACS data specification. Provided the total storage represented by this request is less than or equal to the List-19 space available, execution will proceed normally. If not, the overflow will be noted before any TACS data will actually be read. The result would be a KILL = 1 message pointing to List 19. A second way to allocate total TACS storage is via a request for relative sizing. That is, rather than request a specific number of function blocks, supplemental variables, etc., the user can simply request a proportional allocation (e.g., 5% of the total storage for function blocks, etc.). See Section A-29 for details. The interpretation of the two input data cards confirms only the first 5 of the 8 integers being specified. The following illustration has been taken from the 2nd half of BENCHMARK DC-18: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request to define new TACS allocation absolutely. |ABSOLUTE TACS DIMENSIONS TACS table sizes. 10 90 100 20 30 | 10 90 100 Request for Absolute Allocation of Total U.M. Storage The universal machine (U.M.) component of Section IX has total working space for all tables assigned in List 25 of the overall program variable dimensioning (see Section I-G). But there still remains the flexibility of dividing this total working space among among the four U.M. tables by means of the following request for absolute sizes: 10 Parameters: NCLFIX (33-40): Maximum total number of U.M. coils in the data case. is the total for all U.M. components involved. NUMFIX (41-48): Maximum number of U.M. components for the data case. This Rulebook ATP (junio 1996 - internet) H02a1 5 IOTFIX (49-56): Maximum number of U.M. output quantities (total for all machines). IBSFIX (57-64): Maximum (total for all machines). number of U.M. 6-character alphanumeric names Provided the total storage represented by this user request is less than or equal to the List-25 space available, execution will proceed in a nominal fashion. If not, this fact will be noted in UTPF overlay 5 as the first U.M. data component itself is ready for input, and an EMTP error message will result. In any case, the corresponding minimum size for List 25 will be shown as part of the column 1-50 interpretation of the Type-19 request card for U.M. modeling. This way, the user knows what fraction of the available space he is utilizing. If the user fails to input such a request for U.M. table sizing, then the EMTP allocates default dimensions equal to (20, 3, 50, 60) within UTPF overlay 5. For computers with 32-bit integers and 64-bit floating-point values (e.g., Apollo, VAX, PRIME, and IBM), a List-25 size of 300 is sufficient for this usage (and it corresponds to the default allocation of "VARDIM" for List 25). Word machines will need more (it appears that value 410 should be adequate). Interpretation of the input data confirms the four U.M. table sizes that have been requested, of course. As an illustration, consider the associated output line of BENCHMARK DCNEW-1: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------U.M. table sizes. 20 2 50 60 |ABSOLUTE U.M. DIMENSIONS Request for Alternative Diagnostic Printout of the Time-Step Loop If minus signs are applied to MULT(K) as part of the printout frequency changes of Section II-C (or the equivalent "CHANGE PRINTOUT FREQUENCY" declaration of Section A-10), then diagnostic printout controls of the time-step loop are to be switched. Those of the "DIAGNOSTIC" request (Section A-12) are in effect initially. Then, at the time of the first change, an alternate set of printout control parameters IPR(1:4) is used instead. These four new variables replace IPRSOV(16:19), to control the diagnostic output of the four pieces of the time-step loop. Upon the second such change (the second negative MULT), there is a switch back to the original DIAGNOSTIC printout control codes. Etc. (for each minus sign, the two sets of control variables are switched). The alternate set of printout control parameters IPR(1:4) is automatically initialized to zero at the beginning of execution. If this is what the user wants, a declaration of the present section is not required. This would be for the common usage that will begin with diagnostic printout for steps 0 and 1, but which has no such output thereafter. On the other hand, if the time-step loop is to begin without any diagnostic printout, then nonzero IPR(K) must be defined by the user. This is done using the following special-request card: Rulebook ATP (junio 1996 - internet) H02a1 11 Interpretation of the input data confirms the four printout controls that have been requested, of course. As an illustration, consider the associated output line of BENCHMARK DC-53: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------DELTAT-loop printout. 9 9 9 9 |ALTERNATE DIAGNOSTIC PRIN Declaration of Intention to Use Type 1-10 Sources Analytically As explained in Section VII, source types 1 through 10 are reserved for functions that are directly defined by the user. If one or more such source functions is to be defined in FORTRAN within a special user-supplied version of SUBROUTINE ANALYT, then the following special request record must precede input of the miscellaneous data cards for the data case in question: 12 It is the user's responsibility to see to it that his own special SUBROUTINE ANALYT has replaced the near-dummy module comes with the UTPF, of course. The UTPF module is useful only for the artificial illustration of BENCHMARK DC-6. Interpretation of the input declaration appears as follows (note that there are no parameter values to be confirmed): C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------User-supplied SUBROUTINE ANALYT is declared. |ANALYTIC SOURCES USAGE 6 Rulebook ATP (junio 1996 - internet) H02a1 7 Request to Average EMTP Output Successive values of EMTP output variables will printing and plotting if the following request is made: be averaged prior to 13 The mathematics of the EMTP solution are not affected; this is just a massaging of the answers at the time answers are printed and/or written to the plot file of LUNIT4. By averaging is meant the arithmetic mean of the current and the preceding variable value: (V-new + V-old) / 2 . For studies where EMTP output variables are smooth functions of time, the "AVERAGE OUTPUT" request would have negligible effect, and should not be used (it just adds a small error to the answer). But there are problem cases such as the hanging inductor (see the two pages of discussion in Section VI about "REMARKS ON OPENING ACTION"). There are pathological cases where the trapezoidal rule gives answers that oscillate around the true value, so this remedy might sometimes be useful. As an example of such usage, see BENCHMARK DC-55. Interpretation of the input declaration appears as follows (note that there are no parameter values to be confirmed): C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request to average (smooth) output variables. |AVERAGE OUTPUT Optional Case-Separation card While not mandatory, it is good practice for the EMTP user to make the very first card of each data case a special case-separation marker: 14 Rulebook ATP (junio 1996 - internet) H02a1 See any standard test case (e.g., BENCHMARK DC-18) for an example. For this just appear on the left, execution that terminates normally, or for single-data-case solutions, described card serves no operational purpose. It does, of course, the 80-column input data listing, with appropriate interpretation on but that's all. On the other hand, should the EMTP decide to prematurely terminate execution of a particular data-case solution (with an EMTP error message), then a case-separation marker becomes important. The program automatically steps over remaining input cards, discarding them one at a time until it finds such a "BEGIN NEW DATA CASE" record. At that point, a new data case is known to begin, so the EMTP can correctly recover to solve the just-found following case. This is referred to as EMTP error-recovery capability, during execution involving two or more data cases. Yet suppose that it was during the solution of the final data case of program execution that a fatal EMTP error termination occurs. In this case, there would be no following data case, so further solutions would not be possible. To distinguish this situation, the final data case should always be followed by a "BEGIN NEW DATA CASE" card and a blank card, in order to terminate execution cleanly. The blank card in this situation is read as the start of a new data case, and the lack of any keying on it is recognized by the EMTP as the end of all data cases. In the absence of such usage, recovery following an EMTP error will result in the encounter of an end to input data, which will be accompanied by a second EMTP error message (messy). It should be emphasized that "BEGIN NEW DATA CASE" cards must be properly positioned in the data deck; they do not in any way alter the need for blank termination cards (the function of which is explained in section II-A-8). The identity and function of these special cards is recognized by the EMTP in only two places: 1. Following an EMTP fatal error, such cards are watched for as other records of the input data are discarded. 2. Following normal completion of the solution for any particular data case, the very first non-comment record of the following data case will be checked for "BEGIN NEW DATA CASE". Any other placement of these key cards will generally lead to error termination by the operating system, since the alphanumeric text will be decoded numerically (which is impossible). Interpretation of the input declaration appears as follows (note that there are no parameter values to be confirmed): C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE 8 Rulebook ATP (junio 1996 - internet) H02a1 9 Request for Delay in Extrema Calculation The integer miscellaneous data parameter MAXOUT (see Section II-B) provides for the calculation and output of variable extrema. The same vector of extrema is used for "STATISTICS" and "SYSTEMATIC" output as well. Normally, extrema are wanted over the full time span of the simulation. But not always. There are cases where one wants to ignore a certain initial interval of the simulation, only considering transients after a certain minimum time. For example, in a "STATISTICS" simulation, it is possible that random closing will follow the opening of breakers (the clearing of a fault), but that the peak simulation voltage will be produced during the deterministic opening portion of the simulation. If extrema were calculated over the entire time span of the simulation, each energization would generate identical peaks, which is useless to the designer. So, in this case, the solution is to inhibit the calculation of extrema until transients of the opening phase of execution have passed. This is possible, using the following special-request card upon which the beginning time BEGMAX in seconds is to be keyed in columns 33-40: 15 For an example of such usage, see BENCHMARK DC-48. So much for the simplest possible case, where an initial time span is simply ignored in the extrema calculation. But more complex time ranges are possible, if the above BEGMAX is given a value of "-1.0". In this case, an extra card is to follow, upon which monotone increasing times T1, T2, etc. are to be keyed: 16 In this case, extrema are to be calculated only for those portions of the simulation that intersect the sub-intervals of time (T1, T2), (T3, T4), etc. Present dimensioning of this feature has been limited to the single card of five subintervals, as shown. In case fewer than this maximum are actually desired, the 4 or fewer pairs should be followed by a very large time that will never be reached: the beginning time of a bounding subinterval. Rulebook ATP (junio 1996 - internet) H02a1 Interpretation of the input data confirms the starting time BEGMAX of the search for extrema, if this is positive (the simple case). Using BENCHMARK DC-53 as an illustration: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Extrema lookout begins at t = 5.2500E-01 sec. |BEGIN PEAK VALUE SEARCH On the other hand, if BEGMAX = -1.0, then the more complicated, 2-card input is involved. BENCHMARK DC-53 provides an illustration of such usage: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Extrema lookout begins at t = -1.0000E+00 sec.|BEGIN PEAK VALUE SEARCH (T1,T2): 5.00E-01 1.50E+00 2.50E+00 3.50E+00 | 0.5 1.5 2.5 Blank Card to Terminate EMTP Execution The traditional termination procedure for the solution of a disk file that contains one or more stacked data cases is to have the first card of the following (non-existent) data case completely blank. The use of "BLANK " in columns 1-7, followed by anything for the rest of the card image, is also acceptable. By agreement, either of these tell the program that there remain no more data cases to be solved, so that EMTP execution can return to the original opening prompt ("EMTP begins. Send ..."). In order to protect against termination by the operating system after an EMTP error stop, the just-mentioned final blank card should always be preceded by a "BEGIN NEW DATA CASE" card. This is as per Section A-6. This was the situation for years and years, and it remains good practice today. Yet the blank terminating card at the end generally will not be read. If fewer than 5 data cards remain when the final "BEGIN NEW DATA CASE" card is encountered, the program now is smart enough to realize that data is done, so it immediately reissues the opening prompt ("EMTP begins. Send ..."). This saves a little output. Calculation of Parameters of Multi-Phase Coaxial Cables The calculation of parameters for multi-phase coaxial cables is isolated in a separate UTPF overlay. It is really a separate, self-contained program, and all usage is described in the separate Section XXIII. To transfer to that separate program, the following special-request card is used: 10 Rulebook ATP (junio 1996 - internet) H02a1 11 17 Normally only the request word is required (leave columns 16 onward blank). For an example of such usage, see BENCHMARK DC-27 or DC-28. The parameter KTRLSW(3) of columns 49-56 is optional. It is used to modify the number of conductors per SC (single core) coaxial cable within the memory part reserved for CABLE CONSTANTS parameters (as explained near the top of MAIN27). As a rule of thumb, following equation is valid: ratio = #conductors/SC cable = 2 + KTRLSW(3) Of course this implies KTRLSW(3) > -2. Following table was derived for 0.85 times default dimensioning. KTRLSW(3) -2 -2 0 1 2 #SC 92 42 22 15 11 #conductors 0 42 45 46 47 ratio 0 1 2 3 4 Interpretation of the input data confirms the usually blank (zero) value of KTRLSW. Using BENCHMARK DC-27 as an illustration: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Find parameters of cables. Type = 0. |CABLE CONSTANTS Request to Change the Frequency of Time-Step Loop Printout The frequency of LUNIT6 printout within the time-step loop is nominally controlled by integer miscellaneous data parameter IOUT of Section II-B. But this frequency can be varied as the simulation time is advanced. One way is to use an extension to the integer miscellaneous data card (see Section II-C). But it is possible to accomplish identically the same control by having the same numerical card of (KCHG, MULT) pairs preceded by the appropriate special-request card, as follows: Rulebook ATP (junio 1996 - internet) H02a1 18 19 The numeric card specifies at which time steps the printout frequency is to be changed, and to what values the frequency is to be changed. Up to five pairs of these (KCHG, MULT) controls are permitted, as per the following definitions: KCHG(K): The time step number at which the K-th variation of printout frequency is to begin. Printout for this particular step number is always provided, as a beginning to the new frequency of output. MULT(K): The modified value of IOUT (see 2nd miscellaneous data card) that takes effect at time step KCHG(K). If a minus sign is appended to MULT(K), then at the corresponding step number KCHG(J), the diagnostic printout status will be changed. That is, there will be a switching of the two sets of diagnostic printout controls: 1. 2. IPRSOV(16:19) of Section A-12 (a "DIAGNOSTIC" request); IPR(1:4) of Section A-3 ("ALTERNATE DIAGNOSTIC PRINTOUT"). If there is no minus sign, there will be no change in status of the diagnostic printout at the associated time step. Any minus signs are merely extra flags. The absolute value of MULT still controls the production (non-diagnostic) printout frequency as originally described. Note that the present usage is more general than that of Section II-C. The extension to the integer miscellaneous data card is possible only if integer miscellaneous data parameter IPUN is given a value of minus one (columns 41-48). But IPUN also has meaning when it is positive, as a request for the keying of terminal conditions. The user might want to do both of these operations in the same data case, which before was impossible (since variable IPUN could not be 12 Rulebook ATP (junio 1996 - internet) H02a1 13 both negative and positive at the same time). Another advantage is clarity, since the present structure is clearly labeled by the special-request card. Interpretation of the input data confirms only the first three of the five pairs of integers that are defined. An illustration is provided by BENCHMARK DC48: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request preceding 5 printout number pairs. |CHANGE PRINTOUT FREQUENCY Printout : 5 5 10 10 0 0 | 5 5 10 Request for Non-Standard Precison of Plot File Data Storage The user will normally employ whatever precision of plot file data has been decided upon by Program Maintenance for his computer system, and not think further about the question. For plotting only, which requires low-accuracy, any computer precision should be adequate, so the user need never worry. But there may be more concern for other uses of the plot file data, such as "POSTPROCESS PLOT FILE" (where plot file variables become TACS sources of a subsequent simulation), or "FOURIER ON" (to request Fourier series decomposition of a plot file variable). In such cases, full EMTP solution precision may be desired. For those computers that store output variables with reduced (typically half) precision, a special request (the "CUSTOM PLOT FILE" request illustrated below) is required to override the default decision favoring reduced precision. It also is conceivable that some user might sometime want to decrease the precision of his plot data point storage, although such usage is probably much less common. Actually, the declaration toggles the choice of plot file precision, so can be used for either operation: 20 Interpretation of the input declaration appears as follows illustration, the change was from single precision (M4PLOT = 2) precision (M4PLOT = 0): (for this to double C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Toggle choice of disk plot file. M4PLOT = 0. |CUSTOM PLOT FILE Request for Selective Diagnostic Printout Integer miscellaneous data parameter IPRSUP (see Section II-B) will turn diagnostic printout on or off irrespective of the location of that printout within the program. That is, either all diagnostic output is turned on, or all is turned off, at a certain threshold level. If positive, IPRSUP will override the selective printout request of this present section. Rulebook ATP (junio 1996 - internet) H02a1 But if IPRSUP is to be keyed zero or blank, then the EMTP diagnostic printout can be controlled overlay by overlay of the UTPF. A special-request card bearing the key word "DIAGNOSTIC" in columns 1-10 is used in this case, followed by 10 blanks, followed by values for each of the 29 overlays as 29I2 information: 21 In the selection of these diagnostic output codes, special care should always be taken with regard to the time-step loop of overlays 16-19. Remember that diagnostic output can be generated for each time step, so beware of the termination time TMAX in relation to the step-size DELTAT, should such output be requested. Another consideration is for large networks, which will generate voluminous output in overlay number 7 (network node-renumbering) and the [Y] formation of overlay 14. In these cases, output can be produced for each row of the matrix. It is recommended that diagnostic for overlay 7 almost never be used, and that the value for overlay 14 be limited to level 3. If in doubt about such control, consult Program Maintenance, or try the usage in real time, looking at the output on a computer monitor as it is being generated. In case the output is excessive, execution then could be aborted, and the controls modified appropriately. A summary of the function of key overlays at the start of the program follows: Overlay Overlay Overlay Overlay Overlay Overlay Overlay 1: 2: 3: 4: 5: 6: 7: Special-request cards, miscellaneous data Only TACS data input Branch input Switch (including diodes/valves) input Source (including S.M. and U.M.) input Network connectivity Node renumbering If diagnostic printout is being turned off and on as a function of time (see Section 1.1b, with a minus sign on MULT), then (IPRSOV(16:19) alternate with IPR(1:4) for control of diagnostic printout of the time-step loop. There are two distinct cases of importance: Case 1. If the user wants to start with no diagnostic (i.e., for time steps zero or one), then IPRSOV(16:19) should all be zero, and the "ALTERNATE DIAGNOSTIC PRINTOUT" request of Section A-3 should be used to define the nonzero printout codes (one or more nonzero). Case 2. If the user wants to start with diagnostic (Step zero), then IPRSOV(16:19 should not all be zero. In this case, no "ALTERNATE DIAGNOSTIC PRINTOUT" request is needed, since zero values are the default. 14 Rulebook ATP (junio 1996 - internet) H02a1 15 Interpretation of the input data confirms only the first 12 of the 29 integers that are defined. An illustration is provided by BENCHMARK DCPRINT-5: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Debug print. 0 9 9 9 9 9 0 9 9 9 9 9 |DIAGNOSTIC 0 9 Rulebook ATP (junio 1996 - internet) H02a1 16 Calculation of Constant-Parameter, [R],[L] Network Equivalent The calculation of coupled [R],[L] branches to represent parts of the network that are not to be modeled explicitly is done by a separate supporting program named "NETEQV". Instructions for the usage of this utility are covered in Section XXIV. To transfer to that separate program, the following specialrequest card is used: 22 IOFBND of columns 33-40 is optional, and normally will be left blank. If a value is keyed, it is taken to be the maximum number of busses that are allowed. If omitted, the EMTP will dimension tables of the supporting program as large as possible (within available working space of overlay 28 (/C28B01/). Since the sparsity diagram (which shows nonzero terms of the Jacobian) can only be produced if there is extra storage, this diagram will only be seen if a positive IOFBND is keyed, and if this positive value leaves sufficient extra working space for the sparsity diagram. Interpretation of the request card confirms the value of IOFBND. illustration is provided by the second subcase of BENCHMARK DC-14: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Constant-R,L generator equivalent. IOFBND = 11. |NETWORK EQUIVALENT, 11, An Rulebook ATP (internet junio de 1996) h02a2 1 .Calling of Installation-Dependent Module "MIDOV1" The principal installation-dependent module that is called at the start of execution of each data case is "SYSDEP". But there once was another such module in overlay 1, a former SUBROUTINE that has since been converted to a special, optional logic branch within "SYSDEP". This can be used for any necessary initialization that is possible only after miscellaneous data cards have been read, for those computer systems that require such special treatment. The request for such special initialization (originally associated with file opening and closing) is shown immediately below. But do not use this without the knowledge and approval of Program Maintenance. It will result in execution of the statement CALL SYSDEP, which could be disasterous for those computer systems that do not have alternate logic to intercept such advance usage. 23 Interpretation of the input declaration then appears as follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request for "CALL MIDOV1" execution. |FILE REQUEST . Declaration of Intention to Use EMTP Load Flow EMTP load flow capability is associated with special data cards that are to follow the blank card ending sources, as explained in Section X. But such observation of power constraints is optional. If such data is to be read at the appropriate time and place, the EMTP must know of its existence. The user declares such existence by means of the following request card: 24 For examples of such usage, see the standard test cases BENCHMARK DC-25 and DC26. Interpretation of the input declaration then appears as follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------- Rulebook ATP (internet junio de 1996) Declaration of desired EMTP load flow usage. |FIX SOURCE h02a2 2 { Declare . Declaration of Intention to Use "FREQUENCY SCAN" The "FREQUENCY SCAN" feature (cfr. DC-51) of the EMTP allows for the repetition of steady-state phasor solutions (so be sure to put TMAX = 0, DELTAT has no meaning), as the frequency of sinusoidal sources is automatically incremented between a beginning and an ending frequency. Rather than conventional EMTP timeresponse output, the user then has available a frequency-response output. When plotted, the time axis of conventional EMTP simulations becomes the frequency axis, with the result being a Bode plot. Either polar coordinates (magnitude and angle) or rectangular coordinates (real and imaginary parts) of the phasor solution variables are used for output purposes. For example, the following could apply to the node voltage of phase "a" somewhere in the network: Magnitude *** | * * | * * | * * |*** * | * | * | * | * +-----------------------------> Frequency Angle | * * | * | * | * | * | * * |* * | +----------------------------> Frequency Should the user desire such multiple steady-state phasor solutions, then the following special-request card must precede the miscellaneous data cards: 25 Parameters: FMINFS of cols. 25-32: the beginning (minimum) frequency of the scan, in [Hertz]. This must be a positive number. DELFFS of cols. 33-40: the frequency increment between successive solutions of the scan, if the user wants uniform (as opposed to logarithmic) spacing. For logarithmic spacing, this field should be left blank. Rulebook ATP (internet junio de 1996) h02a2 3 FMAXFS of cols. 41-48: the ending (maximum) frequency of the scan, in [Hertz]. This must be greater than or equal to FMINFS, of course. The solution loop will end with the last frequency that does not exceed this upper limit. NPD of cols. 49-56 is used only for geometric or logarithmic spacing as opposed to uniform or arithmetic spacing of the frequency points. For geometric or logarithmic spacing, provide an integer value for the number of points per frequency decade. Successive frequency points then will be related by: (f(k+1) / f(k)) ** NPD = 10. Special attention should be paid to integer miscellaneous data parameter KSSOUT when using the "FREQUENCY SCAN" option. See the Section II-B definition. If punched with unity, the full phasor branch flow and injection output will result for each solution frequency of the scan. This could produce large quantities of printed output, if the number of frequency points is large. Other positive values of KSSOUT will produce additional phasor output, only in smaller quantity. Hence, be careful of positive KSSOUT. Except for the just-mentioned full branch-flow and injection printout, only node-voltage output is presently available for "FREQUENCY SCAN" solutions. The node voltage output request format is explained in chapter XII. Any request to output branch or switch variables (voltage differences, branch currents, powers and energies) or TACS variables will be disregarded in FREQUENCY SCAN mode. Node voltages are outputted in both polar (magnitude, angle in degrees) and rectangular (real, imaginary) forms. The induction (asynchronous) alternative of the U.M. should not be used with "FREQUENCY SCAN" unless it is known that installation-dependent SUBROUTINE PLTFIL does not rely upon storage of the COMMON block for vector I4BYTE. The UTPF contains an Apollo module, and this uses the storage of I4BYTE for conversion of the "FREQUENCY SCAN" output vector to single precision prior to storage. The replacement of I4BYTE by a local vector of sufficient length (equal to the maximum number of output variables) will remove the restriction, of course. For the LUNIT6 line printer output, there really are two component output vectors, beginning with the polar form, and ending (after starting on the left on a new line) with the rectangular form. For the plot file of I/O unit number LUNIT4, the two parts are concatenated into a single, double-length, output vector. An extract of the LUNIT6 output is displayed hereafter. mag:LOAD angle:LOAD mag:MID angle:DUM mag:TRAN angle:TRAN mag:CUR angle:CUR mag: real:LOAD imag:LOAD real:MID imag:DUM real:TRAN imag:TRAN real:CUR imag:CUR real: ----- angle:MID mag:DUM imag:MID real:DUM Output vector for step number 1. Frequency = 6.00000000E+01 Hz. 1.0000000E+02 0.0000000E+00 9.3571522E-01 -2.0655997E+01 0.0000000E+00 0.0000000E+00 9.3571522E-01 -2.0655997E+01 9.3571522E+01 -2.0655997E+01 1.0000000E+02 0.0000000E+00 8.7556297E-01 -3.3007946E-01 0.0000000E+00 0.0000000E+00 8.7556297E-01 -3.3007946E-01 8.7556297E+01 -3.3007946E+01 Rulebook ATP (internet junio de 1996) Top "TAPSAV". NCHAIN = 8 Total network loss P-loss by summing injections = h02a2 4 3.991500107967E+03 ----- Output vector for step number 2. Frequency = 8.00000000E+01 Hz. 1.0000000E+02 0.0000000E+00 8.9347637E-01 -2.6686610E+01 0.0000000E+00 0.0000000E+00 8.9347637E-01 -2.6686610E+01 8.9347637E+01 -2.6686610E+01 1.0000000E+02 0.0000000E+00 7.9830002E-01 -4.0126936E-01 0.0000000E+00 0.0000000E+00 7.9830002E-01 -4.0126936E-01 7.9830002E+01 -4.0126936E+01 Top "TAPSAV". NCHAIN = 8 Total network loss P-loss by summing injections = 3.584784001624E+03 This output is extracted from a modified version of BENCHMARK DC-51. One extra node "DUMMY" was added, to produce more output, thereby clearly showing the boundary between the polar and the rectangular outputs. The final line of heading (before the step-1 output) shows that there are five complex output quantities, or 10 numbers total in both the polar output and the rectangular output. Also for plotting, only node voltage output can be requested although all output variables are considered to be of type "9" (branch currents). One pair of names is associated with each node name. Suppose that NODNAM is the name of the node voltage which is of immediate interest. The corresponding pair of names then should be one of the following: (NODNAM, (NODNAM, (NODNAM, (NODNAM, mag) ---ang) ---real) --imag) --- for for for for the the the the magnitude of node voltage NODNAM; associated angle in degrees. real part of node voltage NODNAM; associated imaginary part. Such plotting is illustrated by BENCHMARK DC-51, where character plots of both polar and rectangular quantities are illustrated. For easy reference, I reproduce the two plot cards of that data case. All plotting is for steady-state node voltage components versus frequency at node "CUR " : C 1 2 3 4 5 C 345678901234567890123456789012345678901234567890 C -----------------------------------------------PRINTER PLOT 19630. 60.150. CUR mag CUR angle 19630. 60.150. CUR real CUR imag BLANK card ending plot cards For details regarding the card format of this plot card, please consult section XIV-A-3. An extract of the corresponding printer plot output looks as follows: Rulebook ATP (internet junio de 1996) h02a2 Request for character (line printer) plotting. | PRINTER PLOT >> Plot card. 3.000E+01 6.000E+01 1.500E+02 | 19630. 60.150. mag CUR angle { Axis limits: (-4.134, 9.357) 22-Jun-88 10.33.56 1 Plot type 9 Node names CUR MAG Time-axis legend : Frequency f 5 CUR CUR ANGLE in Hertz ( x 10**( 1) ) -4.134 -3.096 -2.058 -1.020 0.017 1.055 2.093 3.131 4.168 5.206 6.244 7.282 8.319 9.357 +---------+---------+---------+---------+---------+---------+---------+--------+---------+---------+---------+---------+---------+ B | A | | | B | A | 90. | | B | A | | | B | A | | | B | A End of graph. However, if the user needs branch currents or voltage differences, rather than node voltages, he is adviced to add one or more measuring transformers for this purpose (see Section IV-E). A 2-winding transformer that draws no magnetizing current, and that has small leakage impedance, would be appropriate, to insure accurate measurement (just as in the real world of instrumentation). - For a voltage difference between BUSK and BUSM, following scheme could be used: Rulebook ATP (internet junio de 1996) h02a2 6 26 The primary of the transformer should be connected across the two desired nodes. The turn ratio should be unity. The secondary should have one grounded terminal. The open circuit terminal voltage VKM then is a measure for the voltage difference. - For a branch current in a resistor R between nodes BUSK and BUSM, following scheme could be used: 27 The primary of the transformer should be connected across the resistor with value R. The turn ratio should be R:1. The secondary should have one grounded terminal. The open circuit terminal voltage IKM then is a measure for the current flowing in the resistor R. If phasor branch-[Y] data is being used with "FREQUENCY SCAN" (see Section IVC), then the user must connect the file of such data to I/O channel LUNIT8 using $OPEN. The format of data is simple enough. Data is ordered with increasing frequency. There must be one set of phasor branch-[Y] data for each frequency of the "FREQUENCY SCAN". Each such data set consists of a single, arbitrary comment line followed by [Y] --- for each branch so represented, in order of branch input. Since [Y] is symmetric, only the lower-triangle is inputted. Numerical data is ordered as for the [Y] input of Section IV-C, although more precision is allowed: use FORMAT ( 4E20.0 ). No node names are used, note, since these are already known, Just supply the (G,B) pairs, up to two per card. Data is inputted by rows of the lower triangle (up to and including the diagonal), with data for each row beginning on a new card. Readers having access to FORTRAN can search for LUNIT8 usage within SUBROUTINE SUBR10. Rulebook ATP Interpretation of declaration. As BENCHMARK DC-51: (internet junio de 1996) the input data confirms the four input an illustration, consider the associated h02a2 7 numbers on the output line of C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------F-scan. 6.000E+01 2.000E+01 1.300E+02 0 |FREQUENCY SCAN, 60., 20., . Frequency-Dependent Representation of Overhead Lines In order to represent overhead transmission lines with frequency-dependent parameters and a constant transformation matrix as required by Section IV-D-3, recourse is made to a separate supporting program. Instructions for the usage of this separate program are contained in Section XVII. The transfer to this supporting program is accomplished by the following request: 28 Variable PDT0 of columns 33-40 has the same meaning as the parameter of columns 33-38 of frequency-dependent branch cards of Section IV-D-3. In fact, the parameter is not actually used by the fitter, but is merely passed along from the declaration card just shown to any branch cards that later are to be punched. This is no different than for node names of a "BRANCH" request, only here the request comes earlier, outside the supporting program. For an example of such usage, see BENCHMARK DCNEW-3. Interpretation of the input declaration then confirms the input parameter as follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Jose Marti`s line fitter. PDT0 = 1.0 |JMARTI SETUP, 1.0, . Request for the Printing of Fatal EMTP Error Messages It sometimes is handy to be able to generate the text of any particular fatal EMTP error message (or "KILL code") without actually being obliged to set up a data case that will so terminate erroneously during execution. This is possible using the request: Rulebook ATP (internet junio de 1996) h02a2 8 29 Here KILL1 (columns 33-40) and KILL2 (columns 41-48) are the beginning and ending numbers of the consecutive error messages that are to be printed. Of necessity, KILL2 must not be less than KILL1. Rulebook ATP (internet junio de 1996) h02a2 9 The most common usage of this feature will be on an impromptu basis, which suggests interactive input following the "KEY" response to the opening prompt of the program. Interpretation of the input data confirms the beginning and ending indices of the error messages. An illustration has been placed at the end of BENCHMARK DC-13, resulting in the output: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Test output of error messages 13 through 14 |KILL CODES, 13, 14, . Calculation of Parameters of Overhead Transmission Lines The calculation of parameters for overhead transmission lines is isolated in a separate UTPF overlay. It really is a separate, self-contained program, and all usage is described in the separate Section XXI. To transfer to that separate program, the following special-request card is used: 30 For examples of such usage, see BENCHMARK DC-29 or DC-59. The latter of these provides an illustration of interpretation, which is as follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Compute overhead line constants. Limit = 54 |LINE CONSTANTS In addition to the nature of the message, note that there is confirmation of the limiting number of conductors. The value shown was for Apollo with default dimensioning and an offset (4th card) of 50K. Rulebook ATP (internet junio de 1996) h02a2 10 . Option of linearly-varied bias for Monte Carlo Studies At the request of BPA production users (specifically, Dan Goldsworthy), the normally random or zero bias that can be added to all switch times of Monte Carlo studies can be replaced by a linear variation. This will be the program response to the request: 31 No further information is required, since limits on the bias have already been provided by the "STATISTICS" miscellaneous data parameters DEGMIN and DEGMAX (see Section II-C, columns 41-56). For a case with "LINEAR BIAS USAGE", there is replacement of the random number that normally is used by a variable that varies linearly between 1.0 / NENERG and unity as the NENERG energizations are performed. The interpretation of this request appears as follows (note that it involves the confirmation of no parameter values): C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Ramped linear variation of random bias. |LINEAR BIAS USAGE . Request to Read Miscellaneous Data Cards The floating-point and integer miscellaneous data cards are described in Section II-B. For a conventional simulation, they come after all special requests of the type now being considered. For the normal simulation, this is fine, and there is no problem. But for special circumstances, the user may want to define one or more of the miscellaneous data parameters "ahead of time," along with other special request cards. This is required for "START AGAIN" usage, for example (see BENCHMARK DC40 as an illustration). If such usage is wanted, simply precede the usual miscellaneous data cards of Sections II-B and II-C by the special-request word "MISCELLANEOUS DATA CARDS" as follows: Rulebook ATP (internet junio de 1996) h02a2 11 32 The user is advised not to do this casually, however. There should be a clear, real, known need as approved by standard instructions, or as recommended by local Program Maintenance. The interpretation of these data only requires documentation of the request card, since the miscellaneous data cards (and possible extensions) are interpreted exactly as explained in Sections II-B and II-C. As for the leading card, it is interpeted as follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request preceding 2 miscellaneous data cards. |MISCELLANEOUS DATA CARDS . Tricky Mode-Voltage Output Request for Distributed Line There are cases where mode voltage rather than phase voltage is desired as the output of a distributed transmission line. This will generally be for educational usage of one form or another, since the quantities in question can not be physically measured. Since all distributed-parameter transmission-line models use a modal transformation matrix to decouple the multi-conductor equations, the modal quantities are a part of the solution process, and it is just a matter of directing such variables to the output vector. With care, the user can request the modal voltage to ground at both ends of one distributedparameter transmission line. The request has the following form: 33 Variable MODOUT (cols. 33-40) is to be keyed with the number of phases or coupled conductors that are involved. A blank or zero field is defaulted to MODOUT = 3, so it is really only in other cases that the numerical value need be keyed. Rulebook ATP (internet junio de 1996) h02a2 12 Such modal output is possible for only one transmission line, and that line must be placed at the very end of branches, immediately before the blank card that terminates all branch cards. In addition, the very first branch data must consist of extra, high-resistance branches that are connected from each node to ground at both ends of the line in question. Equal in number to 2 * MODOUT, column 80 of these uncoupled (type-0) series R-L-C branches must be keyed with a "1" so as to request branch current output. Use a resistance value so large that the answer is unaffected. So much for data input. After the case has been run, the user will find his modal voltages in the output locations that would otherwise have been reserved for the branch currents just mentioned. This is why the present feature is a little tricky. The first "MODOUT" ouput currents are in reality modal voltages to local ground at the "BUS1" end of the line, in natural order; the next "MODOUT" output currents are mode voltages to ground at the other end ("BUS2" end) of the line, also in natural order. A reminder message to this effect is printed immediately below the column headings for the output variables, so the user will not forget. Note that if one is plotting, type-9 plot requests (see Section 1.10) must be used, since the EMTP thinks that the modal voltages are currents in the 2 * MODOUT high-resistance branches which were supplied by the user. An illustration of this feature is provided by the 2nd subcase of BENCHMARK DC38. It is from this solution involving a 3-phase, constant-parameter line that the following interpretation has been extracted: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request for tricky modal output. MODOUT = 3. |MODE VOLTAGE OUTPUT . Request to Convert ZnO Branch Cards from Old to New Formats The following request will provide conversion from old ("M36." or earlier vintage) zinc oxide arrester branch data into the current formats (as required for "M38." and later versions of the program): 34 This special-request card is to be added before the first miscellaneous data card of a data case involving old ZnO data cards. The EMTP reads such data, and punches (see $PUNCH) replacement branch cards to represent the ZnO arresters. It will then be the user's responsibility to replace the old card images with the new ones, using his system editor. Rulebook ATP (internet junio de 1996) h02a2 13 An example of such conversion is provided by the second subcase of standard test case BENCHMARK DC-13. The following illustrative interpretation has been extracted from the solution of this case: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request to convert old ZnO data to new formats. |OLD TO NEW ZNO Rulebook ATP (internet junio de 1996) h02a2 14 . Request for Omission of Base Case of "STATISTICS" Simulation The conventional "STATISTICS" or "SYSTEMATIC" data case involves a base case solution before any of the NENERG (integer miscellaneous data parameter; see Section II-B) energizations are performed. This is a preliminary shot, right down the middle, with all of the variances set to zero. Well, the user can suppress this extra, preliminary simulation by a special request card reading: 35 Resulting statistical tabulations are unaffected, since the base case solution was not part of the statistical processing, anyway. So, if the user already knows how the base case solution looks, he can save one shot, as well as some paper. An example of such usage is provided by of standard test case BENCHMARK DC-13. The following illustrative interpretation has been extracted from this solution: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Omit base case if STATISTICS/SYSTEMATIC usage. |OMIT BASE CASE . Request for Peak Voltage of Simulation The user may be interested in peak node voltage, or in peak linear branch voltage, or both, without being concerned about the location in the network that this will occur. If so, there exists the paper-saving alternative that avoids voltage output for all nodes or branches: 36 Variable MAXVLT chooses the type of voltages being monitored: 1 --- for node voltages only; Rulebook ATP (internet junio de 1996) h02a2 15 2 --- for linear branch voltages only; 3 --- for both node voltages and also linear branch voltages. Zero or blank will be interpreted as unity (a request for the peak of node voltages only). This is the request. Later, at the end of the simulation, before the usual peak-value printout for the output vector, will be generated the requested output or outputs. Rulebook ATP (internet junio de 1996) h02a2 16 For the monitoring of node voltages (MAXVLT = 0 or 1), one line will give the node name, the time of the peak, and the value of the overall peak. The following is an illustration taken from the first subcase of BENCHMARK DC-7: Overall simulation peak node voltage = 5.69470365E+05 occurred at bus "TRANB " at time (sec) = 1.17000000E-02 For 132-column output, this will be a single line, of course (it has here been split in two for ease of presentation only). The printed value at the end is the peak of all node voltages in volts, not the peak of all node voltages in per unit. If the problem has transformers that change the nominal voltage level, there is no easy way of spotting peaks of per unit voltage that might occur on the low voltage side. So, usage is somewhat specialized, and it requires caution. For the case of MAXVLT = 2 or 3, there will be output for the peak voltage as follows (from the second subcase of BENCHMARK DC-7): branch Overall simulation peak branch voltage = 5.66276224E+01 occurred at linear branch number 3, which connects node "TRAN " to " ". The time [sec] = 0.00000000E+00 .el Many of the standard test cases employ such usage. The following illustration of interpretation was taken from the solution to the second subcase of BENCHMARK DC-7: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Output global peak voltage of network. 3 |PEAK VOLTAGE MONITOR, 3, . Request for Postprocessing of Plot File Using TACS TACS can be used for the postprocessing of plot files. The user first connects the old plot file (input to the post processor) to I/O unit number LUNIT2 using $OPEN. For an example (which may be installation-dependent), see BENCHMARK DC46. Variables of the plot file will be assigned to user-defined TACS sources in natural order by the EMTP, thereby providing the connection for postprocessing by the user. This is the response to the request: 37 Variable IPLOT of cols. 33-40 is to be an integer indicating frequency of the output, not unlike the miscellaneous data parameter of the same name. For Rulebook ATP (internet junio de 1996) h02a2 17 example, if IPLOT = 3 is used, then only every third point of the old plot file will be used. The most common (and least tricky) case uses IPLOT = 1, so that there are as many output points as there are input points. The data case is completed by cards for a TACS-only (TACS STAND ALONE) EMTP data case. There are generally to be as many TACS sources as there are variables in the old data file, with 6-character names being arbitrary. In the order defined, these are automatically (internally) connected to variables of the old plot file. Most post-processing will involve supplemental variables, although function blocks are also useful (e.g., 1/S for integration of some voltage to give flux). The interpretation of the request card confirms the user-keyed frequency IPLOT, of course. This is illustrated by the following line from the solution to BENCHMARK DC-46: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Postprocess with frequency IPLOT = 1. |POSTPROCESS PLOT FILE . Redefinition of Synchronous Power Frequency STATFR Although the synchronous power frequency STATFR can be defined arbitrarily in the STARTUP file, it is not convenient to alter such a critical value for occasional foreign data cases that might deviate from the local frequency. In the case of stacked data cases, it is even conceivable that different values would be required within the same disk file. So, at the beginning of each new data case, the user has the ability to alter the assumed power frequency by means of a request such as: 38 Variable STATFR of columns 33-40 is the synchronous power system frequency in Hertz. Without such a declaration, this will normally be either 50 Hz or 60 Hz, depending upon contents of the STARTUP file. The interpretation of the request card confirms the user-keyed frequency STATFR, of course. This is illustrated by the following line from the solution to BENCHMARK DC-26: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------- Rulebook ATP New power frequency (internet junio de 1996) STATFR = 5.00000000E+01 h02a2 Hz. |POWER FREQUENCY, 50.0, 18 Rulebook ATP (junio 1996 - internet) H02a3 1 . Request to change Width and Spacing of Time-Step Loop Printout The dominant printout of the time-step loop is the step number, time, and variable values which occurs at frequency IOUT (miscellaneous data parameter of Section II-B). Although spacing of the step number and the time are fixed, all following numbers will be of uniform width and intercolumn spacing as determined by variables KOLWID and KOLSEP of the STARTUP file. Yet such formatting is important enough that it has been placed under user control at the beginning of each data case, too, by means of the following request: 39 Parameters: KOLWID of columns 33-40 is the total column width in characters, including blanks that separate columns. KOLSEP of columns 41-48 is the number of blank characters separating nonblank numbers. The interpretation of the request card confirms the two user-keyed integers KOLWID and KOLSEP, of course. This is illustrated by the following line from the solution to BENCHMARK DC-26: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Width of time-step loop numbers. W=13 S=2 |PRINTED NUMBER WIDTH, 13, . Request for Relative Allocation of Total TACS Storage Refer to Section A-1, which provided the first and most common way to allocate total TACS storage, namely "ABSOLUTE TACS DIMENSIONS". The second way to allocate total TACS storage is with a request for relative sizing. That is, rather than request a specific number of function blocks, supplemental variables, etc., the user can simply request a proportional allocation (e.g., 5% of the total storage for function blocks, etc.). There first is the special-request card, then the data card bearing the 8 proportions, read as 8I8 : 40 Rulebook ATP (junio 1996 - internet) H02a3 41 In theory, this is simple enough. But one practical problem with this second alternative for sizing TACS tables is that the user has no intuitive feel for the relative space taken by different tables. To aid the user, the following is an approximate correspondence between nominal (default) absolute dimensions and the proportions that produced them: Absolute size Relative size 20 11 90 15 100 7 20 7 30 3 250 8 300 21 60 28 This applies to translations having integers that are half as long as floatingpoint variables (e.g., INTEGER*4 vs. REAL*8 for computers such as Apollo, IBM, PRIME, and VAX). Proportions are a little different for computers that store floating-point variables in words of the same length as integers (old CDC, Cray, Burroughs, FPS-164; also single-precision Univac, Honeywell, and DEC PDP10/SYSTEM20), of course. Interpretation of the two input data cards includes confirmation of just the first 3 of the 8 input numbers. An illustration follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request to define TACS allocation proportions. |RELATIVE TACS DIMENSIONS TACS proportions. 1.60E+01 4.00E+00 2.00E+00 | 16 4 2 . "REPLOT" For Batch-Mode Plotting of Previous Simulations If a previously-solved data case had miscellaneous data parameter ICAT set to 1 or 2, then the plot data points of that solution were saved on disk as a permament file. Should the user now (at some later time) wish to do batch-mode plotting using this data, then he must do two things. First, he must connect the file of raw data points of I/O channel LUNIT4 using $OPEN (see Section I-D). Second and finally, he must transfer control to batch-mode plotting by means of the following request: 2 Rulebook ATP (junio 1996 - internet) H02a3 3 42 As an example of such usage, see the standard test case BENCHMARK DC-54 for the computer of interest. Remember that the $OPEN card is installation-dependent, in general (which is why the recommendation is "for the computer of interest"). As for interpretation, this is as follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request to attach and plot disk file of old data. |REPLOT Convert RMS V-I Saturation Characteristic to Instantaneous B-H The calculation of instantaneous B-H characteristics for use with Type-92 or Type-98 nonlinear reactors is not trivial, sometimes. If the user only has a curve of RMS values for voltage and current, the separate supporting program named "SATURA" can profitably be used. Instructions for the usage of this utility are covered in Section XIX-G. To transfer to that separate program, the following special-request card is used: 43 For an example of such usage, see BENCHMARK DC-13. It is from the solution to this case that the following interpretation was drawn: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request for magnetic saturation computation. |SATURATION Model Overhead Line by 2nd Order Recursive Convolution In order to represent overhead transmission lines with frequency-dependent parameters and a constant transformation matrix as required by Section IV-D-4, recourse is made to a separate supporting program. Instructions for the usage of this separate program are contained in Section XXII. The transfer to this supporting program is accomplished by the following request: Rulebook ATP (junio 1996 - internet) H02a3 44 For an example of such usage, see BENCHMARK DC-29. It is from the solution to this case that the following interpretation was drawn: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------2nd-order frequency-dependent line modeling. |SEMLYEN SETUP Request to Restart a Halted Simulation ("START AGAIN") Integer miscellaneous data parameter MEMSAV will result in the dumping of EMTP memory onto disk at the conclusion of a simulation. For a single, deterministic simulation, this will be at the end time of the simulation, t = Tmax. For a Monte Carlo ("STATISTICS") study, this will be upon the completion of the final energization number NENERG. For those computer systems that allow this capability (e.g., any flexible minicomputer or microcomputer), such a simulation can be restarted at any later time by means of the following initial request: 45 Actually, this is only the request to load tables from the disk file that has already been connected to I/O unit number LUNIT2 by means of a $OPEN request (see Section I-D). For an example of such usage, see BENCHMARK DC-40 for the computer of interest (due to installation-dependence of the $OPEN card). If integrity of the disk file that stores EMTP tables is important, a copy of the original file should be used, in order to prevent accidental destruction. At the present time, there is no READ-only insurance for any connected file. As the hibernating solution is awakened, certain parameters can be changed, should the user desire this. The "START AGAIN" request is to be followed by an arbitrary number of cards that redefine switch and TACS source parameters, one card per component or quantity that is to be changed. The last of these is terminated by a "9999"-card (keyed in columns 5-8): $OPEN, (etc. for control parameters) START AGAIN One card for each switch or TACS source to be changed 9999 4 Rulebook ATP (junio 1996 - internet) H02a3 5 There are 5 choices for the format of the cards to change parameters of switches or TACS sources, as follows: 1) Cols. 55-60 left blank means that a special, dedicated input structure for a switch is assumed. In the format below, "J" is the switch number, in order of data input. The switch opening time T-open will be redefined only if columns 25-40 are keyed with a positive number. More commonly, it is the closing time Tclose that will be altered, for switches that are open at the end of the preceding, discontinued simulation. Columns 9-24 are always read, and T-close is always redefined (blank is interpreted as a request for zero closing time). The format is: 46 2) Cols. 55-60 keyed with "1111." means that the data card is a TACS source card, with its usual format (except for cols. 55-60). Any blank field of such a TACS source card will result in no change to the associated source parameter. I.e., the user only need key those parameters that he actually wants to alter. 3) Cols. 55-60 keyed with "2222." means that the data card is a switch card, with its usual format (except for cols. 55-60). Any blank field of such a switch card will result in no change to the associated source parameter. I.e., the user need only key those parameters that he actually wants to alter. 4) Cols. 55-60 keyed with "-1111." ---- like fields are read. Here, blanks mean zeroes. 2), except that all data 5) Cols. 55-60 keyed with "-2222." ---- like 3), except that all data fields are read. Here, blanks mean zeroes. Following the "9999" terminator (keyed in columns 5-8) for all such change cards, the end-time TMAX can be altered by means of a "MISCELLANEOUS DATA CARDS" request (Section A-21). Then a "TIME STEP LOOP" request (Section A-36) actually transfers control to the time-step loop, to continue the suspended simulation. A few additional points might be passed along as well. Between the "MISCELLANEOUS DATA CARDS" and the "TIME STEP LOOP" requests, the user is able to place any other special requests which seem appropriate. The most commonly used is "CHANGE PRINTOUT FREQUENCY", to alter the frequency of the time-step loop printout. If this is done, remember that step numbers begin where the previous halted run left off (e.g., for TMAX = 50 msec and DELTAT = 100 microsec, the first printed step would be for number 500). The user should be aware that, although all requests might be accepted by the EMTP, some of the more complex Rulebook ATP (junio 1996 - internet) H02a3 ones can not possibly be honored in practice. Perhaps the best example is "FREQUENCY SCAN" of Section A-16. There is no way a hibernating simulation of the time-step loop can be awakened and directed to perform a series of phasor solutions (which is what the usage of such a request implies)! Yet this is simple and obvious. More insidious are requests that would simply make erroneous or inconsistent certain parameters of the memory contents that to be restarted. An example of such a potential disaster is provided by use of the "ABSOLUTE TACS DIMENSIONS" request of Section A-1. Use of this feature would alter the pointers to the TACS tables, without changing the tables themselves (which are already built), leading to "garbage out," and most likely to an operating system interrupt of some sort. Hence the user is warned to be both intelligent and skeptical about any such usage; if there are some added hidden benefits, there also are some very real limits, and some hidden traps. Be cautious! Several different input data card interpretations can be involved with the just described data. The beginning and the ending of these are fixed, and are illustrated by the following two lines from BENCHMARK DC-40: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Continuation of partial previous simulation. |START AGAIN Terminator for modified switching times. | 9999 In between these two, it is possible to have several different structures, of which the most common is that for altered switch closing time (Case 1 above). Interpretation for this case confirms the three input parameters, as the following line from the solution of BENCHMARK DC-49 illustrates: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Altered switch. 1 1.1990E-02 0.0000E+00 | 1 .011990 So much for single simulations. Monte Carlo studies,too, can involve "START AGAIN". In this case, there are additional alternatives. To the right of the basic declaration, there can be as many as 15 integer numbers (K1, K2, etc.) : 47 These are the numbers of already-simulated energizations that are to be ignored as the Monte Carlo study is restarted. Most commonly there will be no such numbers, of course, meaning that all previous energizations will be saved. As an illustration, see the first subcase of BENCHMARK DC-40. The second and third 6 Rulebook ATP (junio 1996 - internet) H02a3 7 subcase of this same file ignore one of the 3 preceding simulations by means of nonzero K1. Nonzero integers must be in increasing order, and no fields can be skipped (the first blank or zero will terminate such declarations). If K15 (columns 77-80) of the preceding paragraph is keyed with the special value -888, then the seed of the random number generator "RANDNZ" will be reinitialized to the value that existed at the start (not at the end!) of the last preceding energization. This allows a repeat of the last (generally incomplete, for such usage) energization of the preceding execution. It is useful when something went wrong and execution was terminated abnormally by the EMTP with an error stop (a "KILL" message). The most common usage is for cases of non-convergence of the Newton iteration for ZnO surge arresters (see Section V-E). Convergence is unpredictable, and the difficulty is different for each energization due to the different switching times, which give rise to different transients. Eventually there may be an energization that is aborted with an error termination KILL = 212. Whereas the abortive energization could be ignored completely (it will not be a part of the history that is saved in MEMSAV tables), the intelligent or sophisticated user probably will want to go back with a subsequent execution and exactly repeat the switching times that caused the trouble. The problem energization might be made to converge by better control of the Newton iteration (see "ZINC OXIDE" of Section II-A-39), in which case the continuation will be continuous, without any reinitialization of the random number generator. This may be desired or required for some reason. Another reason to repeat an abortive energization is to study it further via additional printout and/or plotting. Such post-mortim examination is possible only if switching times can be duplicated exactly, and the flag K15 = -888 allows this. Note that value "-888" is not a legal energization number, so there is no confusion with the regular meaning of K15. Monte Carlo studies can conbine the history of more than one preceding simulation, too. The first uses "START AGAIN" as just described. Immediately after this single card can come an arbitrary number of declarations for additional parts of the history. The integers have exactly the same format and meaning, although the declaration word is changed to avoid ambiguity: 48 The energization numbers are always local to the portion being loaded, so no mental arithmetic is required. Each such declaration will be preceded by a $OPEN card to connect the new associated file to unit LUNIT2, and each of these will be preceded by a $CLOSE card to disconnect the file of the preceding portion. It is critical to note that the disk file of "START AGAIN" is completely different in structure and size than the disk file or files of "LOAD MORE SHOTS". For "START AGAIN", a complete set of tables (including "LABCOM" of size LTLABL words) is required, as produced on unit LUNIT2 of a preceding simulation with MEMSAV = 1 (integer miscellaneous data parameter). On the other hand, the file of "LOAD MORE SHOTS" consists of only switching times and extrema of each energization, as produced on unit LUNIT2 of a preceding Rulebook ATP (junio 1996 - internet) H02a3 8 simulation with MEMSAV = 2. The user must remember which is which, since otherwise execution will be impossible. For an example of such usage, see the 2nd and 3rd subcases of BENCHMARK DC40. Illustrative interpretation shall be taken from the 3rd data subcase: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Connect disk file to I/O unit. |$OPEN, UNIT=2 FILE=DC24A Continuation of partial previous simulation. |START AGAIN 3 Completed table restoration. Reset simulation time T = Load more Monte Carlo extrema. 3 0 0 |START AGAIN 3 Disconnect disk file from I/O unit. |$CLOSE, UNIT=2 STATUS=K Connect disk file to I/O unit. |$OPEN, UNIT=2 FILE=DC24C Load more Monte Carlo extrema. 1 2 0 |LOAD MORE SHOTS 1 Terminator for modified switching times. | 9999 { Disconnect disk file from I/O unit. |$CLOSE, UNIT=2 STATUS=K Connect disk file to I/O unit. |$OPEN, UNIT=2 FILE=DUM.B Request preceding 2 miscellaneous data cards. |MISCELLANEOUS DATA CARDS Of the 15 possible energization numbers, only the first 3 are confirmed interpretation, note. The same single "START AGAIN" card is interpreted only because the first integer K1 is nonzero. Note that the interpretation has the same structure as that for "LOAD MORE SHOTS". were left zero or blank, no such 2nd interpretation showing K1, K2, would be seen. by the twice second If K1 and K3 Subnetwork Identification Using All Switches Closed at time zero. With this special request card, the program will perform automatic subnetwork identification with all the non-grounding switches closed at time zero. There will be no further subnetwork identification (normally it is a dynamic process within the time-step loop). Without this special request, the program would determine the subnetwork identification dynamically at each time step that a switching operation will occurred. More information on subnetwork identification can be found in Ref. 8, Vol. XIV, pages CUMA-30 to 33. 49 For an example of such usage, see the second subcase of BENCHMARK DC-38. It is from the solution to this subcase that the following interpretation was drawn: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------No nonlinear subnetwork check in DELTAT-loop. |STEP ZERO COUPLE Rulebook ATP (junio 1996 - internet) H02a3 9 Request to Redefine Limit on Number of TACS Warning Messages There are special cases for which certain TACS warning messages are a nuisance. An example is the frequency sensor, which might produce many warning messages before steady-state operation is reached during hvdc initialization. Such warning messages can be limited in total number, and also suppressed completely before a certain starting time, by means of the following request: 50 Here LIM is the limit on the number of TACS warning messages that will be displayed, and T-beg is the time before which all TACS warnings are ignored (and not counted toward the limit LIM). The interpretation of this request card confirms the two user-keyed integers, of course. This is illustrated by the following line from the solution to the second subcase of BENCHMARK DC-18: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Warning controls. LIM, T-beg = 5 1.00E+00 |TACS WARN LIMIT, 5, 1.0, Request for Transfer to the Time-Step Loop Used in conjunction with the "START AGAIN" request of Section A-33, the effect of a "TIME STEP LOOP" request is to awaken the hibernating simulation by a transfer of control to the time-step loop of UTPF overlay 16. The format is: 51 The interpretation of this request card is illustrated by a line extracted from the solution to BENCHMARK DC-49: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Transfer control to the time-step loop. |TIME STEP LOOP User Supplied Switch Times for Monte Carlo Studies Rulebook ATP (junio 1996 - internet) H02a3 This special request allows the user to specify the random switch closing/opening times of a Monte Carlo simulation himself, rather than have the random number generator of the program determine such times. To use this feature, one prepares the data the same way as for the regular statistics case, except for the following two items: usage. 1) Input a special request card to notify the program of such desired The format is: 52 This serves to forewarn the program that switching times are to be read from a disk file that is connected to I/O unit number LUNIT8 (set in the STARTUP file). It is the user's responsibility to connect such a disk file to LUNIT8 using $OPEN before such switching times are needed. Any place before the blank card ending source cards should always be acceptable. But for clarity, it is recommended that the $OPEN precede the "USER SUPPLIED SWITCH TIMES" request. 2) Specify the switch closing times (T-close) and opening times (T-open) for all the switches. This is done in a data file that is to be connected to I/O unit number LUNIT8. Values are to be keyed using 5E15.0 formats, for as many cards as may be required (more than one if there are more than 5 switches in the network): C 1 2 3 4 5 C 34567890123456789012345678901234567890123456789012345678 Arbitrary 80-column comment line to separate energizations 53 10 Rulebook ATP (junio 1996 - internet) H02a3 11 54 Note that each switch contributes such entries, whether the switch is random or deterministic. Yes, this involves redundancy, but it was simplest to program. Construct such a set of switching times (closing and opening) for each energization of the Monte Carlo study, and precede each by an arbitrary 80-column comment line (upon which the energization should be keyed for clarity). Then stack such cards in order. I.e., the first-keyed set will be used for the 1st energization, the 2nd set for the 2nd energization, etc. For an example of such usage, consider the second subcase of BENCHMARK DC-24, which connects the disk file DC24LUNIT8.DAT (for systems permitting such a long name) to I/O unit number LUNIT8. The first of the two subcases of DC-24 involved the rolling of dice to determine the random switch closing times for each of the three energizations. Of course, the dice are "loaded" or "fixed" so that results are repeatable (important for test cases). The second subcase of DC-24 bypasses the dice, and instead reads desired closing times from LUNIT8. Since the file DC24LUNIT8.DAT was constructed using the same closing times as result from solution of the first subcase, the two solutions should agree exactly. The second subcase does have a base case solution for variety, but that difference is unimportant for the subject of current interest. There is no interpretation of the card images of switching times that are read from I/O unit number LUNIT8. However, the special-request card will be interpreted as follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Random switching times read from LUNIT8 channel. |USER SUPPLIED SWITCH TIME Since there is no output of the LUNIT8 records themselves, the alrert user will randomly verify several switching times from the values that precede each energization ("Random switching times for energization number XX :"). He also should confirm the just-shown request card, since without this, dice will be rolled and the user's data file would be totally ignored. Also, he should not be fooled by the standard 1/3 of a page of Monte Carlo text that precedes the energizations. There will be the usual talk about uniform for Gaussian distributions, of course, and none of this applies to the user's case. Only the user knows what, if any, distribution applies to his own customized switching times of the LUNIT8 file. Calculation of Matrices to Represent Transformers Rulebook ATP (junio 1996 - internet) H02a3 12 The calculation of parameters to represent transformers involves the usage of separate, self-contained programs, such as XFORMER (section XIX-A) or BCTRAN (section XIX-C). To transfer to such code, the following special-request card is used: 55 For an example of such usage, see BENCHMARK DC-15. from this solution appears as follows: The interpretation extracted C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request for transformer [R] +jw[L] computation. |XFORMER Another possibility is to transfer control to the BCTRAN program. special request card is used: Following 56 For an example of such usage, see BENCHMARK DCNEW-8. Parameters to Control the ZnO Newton Iteration Zinc Oxide (ZnO) surge arresters require branch cards as described in Section VE. Yet no controls on the Newton iteration that is used to solve the associated nonlinear equations will be seen as part of such data. Instead, such controls are first defined by the STARTUP file. They then can be redefined by a specialrequest card such as the following: 57 Parameters: Rulebook ATP (junio 1996 - internet) H02a3 13 MAXZNO of cols. 17-24 is the maximum number of Newton iterations that will be allowed for the solution of the surge arresters in each subnetwork. The Newton iteration will go this long unless tolerance EPSZNO is attained first. EPSZNO of cols. 25-32 is the convergence tolerance for the Newton iteration. All voltage corrections of the coupled elements must be smaller than this in absolute value, for the equations to be judged to be solved. A blank (zero) value is taken as a request for the value EPSILN * Vref, where EPSILN is the familiar floating-point miscellaneous data parameter of Sect. II-B (1.E-8 for 60- and 64-bit program versions for CDC, IBM, PRIME, VAX, SEL, and Apollo). EPWARN of cols. 33-40 is the voltage convergence tolerance for non-fatal warning message about a "sloppy solution." A blank (zero) data field is taken as a request for the value Vref / 1000 -- representing one tenth of one percent of rated voltage, then, which is about the limit of graphical resolution. EPSTOP of cols. 41-48 is the voltage convergence tolerance for a fatal error stop complaining about a non-converged iteration. A blank (zero) data field is taken as a request for the value Vref / 10 -- or 10% of rated voltage. The current error in such a case could be astronomical, remember, due to the extreme nonlinearity (e.g., 1.1**26 = 11.9). ZLIM(1) of cols. 49-56 is the maximum per unit (based on the reference voltage VREF of Section V-E usage) voltage correction at each iteration step. A blank or zero is given the default value of unity. ZLIM(2) of cols. 57-64 is the maximum per unit (based on the reference voltage VREF of Section V-E usage) arrester voltage that will be permitted during the iteration. A blank or zero is changed to the default value of 1.5 Instead of this fixed-column specification, it may be more convenient to employ free-format input, with commas separating the data fields in question. The interpretation of this request card confirms only the first four parameters on the card. This is illustrated by the following line from the solution to BENCHMARK DC-38: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------ZnO const. 20 1.000E-08 1.000E-03 1.000E-01 |ZO, 20, , , , 0.9,, Exponential Fitting to Represent ZnO Surge Arresters The calculation of parameters to represent ZnO surge arresters involves a separate, self-contained program "ARRDAT", as described in Section XIX-I. To transfer to such code, the following special-request card is used: Rulebook ATP (junio 1996 - internet) H02a3 58 For an example of such usage, see BENCHMARK DC-39. from this solution appears as follows: The interpretation extracted C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request to generate Type-92 ZnO branch cards. |ZNO FITTER Control of Automatic, Internal Branch and Switch Naming The startup file initializes variable NMAUTO, which controls whether or not branches will automatically be serialized by the program. There are only two possibilities: "0" means no such automatic naming, whereas "1" will result in such naming. Well, whatever the STARTUP decision might be, the following declaration will toggle (reverse) it: 59 The interpretation of this request confirms the status of variable NMAUTO after the change. As an illustration, consider the following change from naming to no names: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Toggle auto branch/switch name. NMAUTO = 0. |AUTO NAME Conversion of Former Switched-R,L Elements to Type-99 and 98 Years ago (prior to the "M32." update), the EMTP had switch components that allowed for both resistive and inductive discontinuities: so-called switched-R and switched-L elements. Today, such modeling can be accomplished using the more general pseudo-nonlinear elements of type codes 99 and 98. The user who wants to antiquated data involving switched-R or switched-L elements into modern, equivalent, representations can issue the following request: 14 Rulebook ATP (junio 1996 - internet) H02a3 15 60 This special-request card is to be added before the first miscellaneous data card of the antiquated data case. Conversion is accomplished within a special program described in Section XIX-D. Parameter XOPT of columns 33-40 is the miscellaneous data parameter that specifies the units that are being used for inductance (millihenries if zero or blank; ohms at frequency XOPT Hz if positive). Specification on the request card means less intelligence inside the supporting program (no need to look for the integer miscellaneous data card, and read it). The supporting program will then read all input data, and punch (see $PUNCH) replacement branch cards to represent the antiquated components. It will then be the user's responsibility to replace the old card images with the new ones, using his system editor (assuming card images rather than actual punched cards are involved). An example of such conversion is provided by the third subcase of standard test case BENCHMARK DC-14. The interpretation of the request card for this solution appears as follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Convert switched-R,L cards to pseudo-nonlinear. |CHANGE SWITCH Modularization of Data for $INCLUDE Use with Arguments The request for a copy of some data component that is stored in a data base generally requires $INCLUDE usage with one or more arguments. But when arguments are present, data must first be processed by the supporting program of Section XIX-F. This program searches the user's raw data for the character strings of interest, and establishes numerical pointers for all arguments in order to speed later usage. A special-request card, to be placed in front of the user's raw data, transfers control to this conversion code: 61 An example of such usage is provided by BENCHMARK DC-14. It was from the first subcase of this solution that the following interpetation was drawn: Rulebook ATP (junio 1996 - internet) H02a3 16 C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request for definition of data base modules. |DATA BASE MODULE Toggle Choice Between Disk and Memory for Plot Data Storage The startup file initializes variable LUNIT4, which controls whether plot data points are to be stored on disk or in memory within SUBROUTINE PLTFIL. The sign on what otherwise would be an I/O channel number makes this choice: "+" means that disk storage connected to I/O unit LUNIT4 will be used, whereas "-" will result in the storage of plot data in COMMON /C29B01/. Well, whatever the STARTUP decision might be, the following declaration will toggle (reverse) it: 62 For an example of such usage, see BENCHMARK DC-3 for any virtual computer (e.g., Apollo). It was from this solution that the following interpetation was drawn: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Toggle plot data storage choice. LUNIT4 = 4. |DISK PLOT DATA Punch Branch Cards for Type-96 Hysteretic Inductor The normal user of hysteresis modeling will know his B-H characteristic, and can simply input it according to the rules of Section V-D. But some users may not have any idea about magnetic losses (and hence the width of the hysteresis loop). Some users may only want a representative loop, for preliminary experimentation. Or some users may not even care about the loop itself, since possibly residual magnetism is the only phenomenon of interest (and hysteresis must be requested to have it). For whatever reason, the user can access a standard hysteresis loop by means of the following request: 63 Such a card transfers to the code of Section XIX-H, which will create branch cards for the Type-96 hysteretic inductor of interest. For an example of such usage, see the 3rd subcase of BENCHMARK DC-13. following illustrative interpretation was taken from that solution: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 The Rulebook ATP (junio 1996 - internet) H02a3 17 C ------------------------------------------------|------------------------Request to make Type-96 hysteresis branch cards. |HYSTERESIS Pass U.M. Output Variables to Type-92 TACS Sources It is possible to pass any U.M. output variable to TACS, provided two simple rules are observed. First, the TACS variable that is to be defined by the U.M. must be a Type-92 TACS source of the same name (the second of the two 6-character names that identify the U.M. variable). Second, the program must be alerted to the user's desire for such control by means of a declaration reading: 64 Note that the U.M. variable being passed must be a U.M. output variable, but that there is no requirement of this type within TACS, where output is optional. Since nothing was done to identify the correct U.M. in the case of two or more machines, the attentive reader may have concluded that there is a temporary limitation to just a single machine. But limitations are not actually this restrictive. In fact, the connection logic will merely match a Type-92 source with the first U.M. output variable having the requested name. The only usage that is impossible is passing of the same U.M. variable from two different machines to TACS, then. Later, if there is adequate demand, this limitation obviously could be provided. But for now (February, 1987), we are beginning slowly, with the simplest possible logic. Another temporary limitation has to do with initial conditions: there will be no transfer on step zero (for time zero). This is because the transfer is done within the TACS code of the time-step loop, and this code is not called for step zero. If the resulting discontinuity at time zero bothers the user, he is always free to manually supply the initial conditions for the TACS variables, of course. An example of the just-explained declaration is provided by BENCHMARK DCNEW-10, to which TACS modeling was added solely to receive U.M. variables. It was from this solution that the following interpretation was drawn: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Send U.M. outputs to any Type-92 TACS sources. |UM TO TACS { Declaration Display and Manage Central Status File of Parallel "STATISTICS" Some program versions and some installations have networking of two or more computers that allow central monitoring and control of the parts of a Monte Carlo study that is being solved in pieces, generally by parallel processing. Reference [52] provides a detailed explanation. Well, access to the supporting program that displays and manipulates the central statistics file PARALLEL.LIS is by the request: Rulebook ATP (junio 1996 - internet) H02a3 65 Since usage normally is interactive, the "KEY" request would precede this one, which can be abbreviated "OPMC" for quicker keying. The "CENTRAL STATISTICS FILE" request to name PARALLEL.LIS should come between these two, as the following interpretation shows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Name of file for "OBSERVE PARALLEL MONTE CARLO" |CENTRAL STATISTICS FILE File name:PARALLEL.LIS |PARALLEL.LIS Monitor and control parallel "STATISTICS". |OBSERVE PARALLEL MONTE CA Some computers (e.g., Apollo, Sun, and DEC VAX/VMS) should have the OPMC code available as a separate, small supporting program. If so, a common name would be OPMC.EXE. Frequent users probably will find such an alternative preferable, since a small program is less demanding of computer resources than the EMTP. Also, it allows for computer-dependent extensions to the universal features described in Section XIX-B. Name the Central Status File of Parallel "STATISTICS" The user of "OBSERVE PARALLEL MONTE CARLO" ("OPMC" in abbreviated form) must name PARALLEL.LIS, his central file of summary statistics. This name, up to 40 bytes in length, is to follow the declaration: 66 Column one of the file name must not be a slash ("/"), since this would be mistaken by the program as a request for data sorting by class (Section I-J). There usually are computer-dependent ways to avoid the problem (e.g., for Apollo Aegis, begin with a backslash "\"). But for those who are either unwilling or unable to use such tricks, precede the leading slash by an extra, leading percent sign ("%") which will be discarded upon input. Finally, for casesensitive computers, the file name generally should be in lower case, followed by an exclamation point ("!") to hold that case even though STARTUP variable KINSEN has value unity. An example of the just-explained declaration is provided by BENCHMARK DC-48, It was from this solution that the following interpretation was drawn: 18 Rulebook ATP (junio 1996 - internet) H02a3 19 C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Name of file for "OBSERVE PARALLEL MONTE CARLO" |CENTRAL STATISTICS FILE File name:parallel.lis |parallel.lis ! { Actual Initialize the Random Number Generator of "STATISTICS" A single floating-point number is used to initialize the random number generator of Monte Carlo ("STATISTICS") studies. The experienced user can define this seed, SEEDRN, using the following request: 67 . 6-Character User Identification Overrides USERID of STARTUP Normally, the STARTUP file will supply the 6-character user identification USERID. But the user may want to override this for some reason. The most important case is for parallel Monte Carlo simulations, where different processes are identified in the "CENTRAL STATISTICS FILE" by different USERID. Rather than require different STARTUP files, the following special-request word can be used to re-define USERID: 68 Remember that USERID is text, so for the common situation having STARTUP variable KINSEN = 1, lower case will be maintained only if an "!" is added. Interpretation is illustrated by the solution to BENCHMARK DC-66, from which "Leuven##!" unfortunately has been lost from the right: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Override USERID of STARTUP with "Leuven". |USER IDENTIFICATION Rulebook ATP (junio 1996 - internet) H02a3 Truncate Output Lines after Formation Using Width KOL132 Normally, the STARTUP file will supply the line width for LUNIT6 output text using variable KOL132. But the user might want to truncate the output after it has been formed to this width in order to make it even narrower. This is possible, if variable KUTOFF is defined to be less than KOL132. The request has the following format: 69 Sample usage can be found in the 5th subcase of BENCHMARK DC-66, which truncates the 132-column output of two short error messages to 125 columns. Illustrative interpretation, taken from the solution to this data set, is as follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Override KOL132 of STARTUP with KUTOFF=125. |TRUNCATE OUTPUT LINES, 12 Switch Between 'FORMATTED' & 'UNFORMATTED' for "LOAD MORE SHOTS" The default setting for the disk files of Monte Carlo extrema is 'UNFORMATTED', so if this is what is wanted when using "LOAD MORE SHOTS", no extra request is required. But before loading a 'FORMATTED' file of extrema, the following request must be used to inform the program of the mode change: 70 Should a subsequent file be 'UNFORMATTED', a second application of the request will be required to return to the default setting. There is no limit on the number of mode changes. For an illustration, see the 2nd and 3rd subcases of BENCHMARK DC-40. Interpretation confirms the new (just-modified) status, with associated variable L2FORM = 0 indicating 'UNFORMATTED' and L2FORM = 1 indicating 'FORMATTED'. Illustrative interpretation comes from the first usage within the solution to BENCHMARK DC-40: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Toggle mode of "LOAD MORE SHOTS". L2FORM = 1. |TOGGLE EXTREMA MODE Use Long-Line Formulas for Constant-Parameter Distributed Lines 20 Rulebook ATP (junio 1996 - internet) H02a3 21 Normally, for the phasor solution, resistance is lumped (1/4 on each end and half in the middle) for constant-parameter distributed lines. This agrees with the modeling of the time-step loop, of course. But sometimes the user may want the correct (exact) representation for the phasor solution. It can be obtained by the request: 71 An example of such usage can be found in the second subcase of BENCHMARK DC-11. Illustrative interpretation comes from the solution of this data set: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Do not lump R for constant-parameter distributed. |EXACT PHASOR EQUIVALENT Position ".PL4" plot file on LUNIT4 ready for 1st time step Special positioning is required if new simulation numbers are to be written immediately following existing header information of an old ".PL4" plot file. Assuming that the plot file already is connected to I/O unit number LUNIT4 (see STARTUP), the user request for such positioning is: 72 The usual application will involve "START AGAIN" which otherwise would create a plot file without the header information that is needed for later plotting. By means of the "READ PL4 HEADER" request, a complete, self-contained plot file can be produced by the "START AGAIN" simulation. An example can be found in the 4-th subcase of BENCHMARK DC-40, which uses the header produced by the 2nd subcase of BENCHMARK DC-24. Note that no plot points from the first simulation will be preserved, however. Illustrative interpretation comes from the solution to BENCHMARK DC-40: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------REWIND LUNIT4 plot file, then read the header. |READ PL4 HEADER Calculation of Matrices to Represent Transformers Rulebook ATP (junio 1996 - internet) H02a3 22 The calculation of matrices [R] and [L] or [A] and [R] to represent arbitrary transformers is described in the separate Section XIX-C. Whereas the "XFORMER" request of Section II-A-38 is for data limited to a single phase and three windings, the code now being considered (supporting program "BCTRAN") can be used with an arbitrary number of phases and windings. The transfer to "BCTRAN" is by means of the special-request card: 73 For an example of such usage, see any of the three subcases of BENCHMARK DCNEW-8. Interpretation extracted from the solution to this data case appears as follows: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Generate transformer [R],[L] or [A],[R]. |ACCESS MODULE BCTRAN Convert SATURABLE transformer cards to [R], [L] The calculation of matrices [R] and [L] to provide a linear representation for a saturable TRANSFORMER is described in the separate Section XIX-J. The specialrequest word "CHANGE TRANSFORMER" provides the transfer, as illustrated by BENCHMARK DC-67. The output of this solution illustrates interpretation of the transfer: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Convert saturable TRANSFORMER into [R], [L]. |CHANGE TRANSFORMER Combination of 2 or more partial Monte Carlo studies The "LOAD MORE SHOTS" request is used to read from a disk file of extrema that was produced by a preceding Monte Carlo solution. For details, see "START AGAIN" in Section II-A-33. Define the INTEGER/REAL variable split of new TACS The new TACS (unavailable before 1989) stores integer and floating-point data in a single vector that is sized by List Size 28 of "VARDIM". The division of the single storage into integer and floating-point portions can be controlled by the user by means of the following request: 74 Variable RATIO is the integer to floating-point ratio for the allocation. the absence of such a declaration, the value 2.0 will be used. In Rulebook ATP (junio 1996 - internet) H02b 1 II-B Miscellaneous Data Cards, Floating-point and Integer There are two types of miscellaneous data cards: floating-point and integer. Both card types will be explained in the remainder of section II-B. Further, there are also extensions to these miscellaneous data cards. These extensions will be explained in section II-C. floating-point miscellaneous data card The first non-comment card that is not recognized as being any of the preceding special-request cards will be assumed to be the floating-point miscellaneous data card, which has the following format: 75 Parameters: DELTAT : the size of the time step of the numerical integration, in seconds. A simulation will be calculated at discrete moments of time that have this time separation. Take care of the Nyquist criterion: the time step preferably should be 1/2 ... 1/10 of the smallest time constant of the system one wants to simulate. Whenever nonlinear elements are present in the network under study, an even smaller time step might be advisable. TMAX : the end time of the study, in seconds. XOPT : a value that indicates whether it is inductance in millihenries or inductive reactance in ohms that is to be keyed on linear branch cards. 1) If XOPT = 0, inductances are to be keyed in millihenries. 2) If XOPT > 0, then values are to be in ohms at frequency XOPT (in Hertz). In either case, remember that this choice of the miscellaneous data card can be changed at any point of data input by means of the first argument of a $UNITS card. COPT : a value that indicates whether it is capacitance in microfarads or capacitive reactance in micromhos that is to be keyed on linear branch cards. 1) If COPT = 0, capicitances are to be keyed in microfarads. 2) If COPT > 0, then values are to be in micromhos at frequency COPT (in Hertz). In either case, remember that this choice of the miscellaneous Rulebook ATP (junio 1996 - internet) H02b data card can be changed at any point of data input by means of the second parameter of a $UNITS card. EPSILN : the near-zero tolerance that is used to test singularity of the real coefficient matrix within the time-step loop. A blank or zero value means that the value of the STARTUP file will be used. For 64-bit (REAL*8) computation which is the most common, a default value of 1.E-8 is typical. Historically, work began using 36-bit computation, for which a default value of 1.E-5 was used. TOLMAT : the near-zero tolerance that is used to test singularity of the complex admittance matrix [Y] of the steady-state, phasor solution. A blank or zero value means that a value equal to that of EPSILN will be used. Please note that TOLMAT can NOT be specified in the STARTUP file. TSTART : The beginning time of a simulation, in seconds. Normally, TSTART will be zero or blank. Only when the "START AGAIN" feature is in use (see section II-A-33), it can be usefull to specify TSTART > 0 (e.g. put the value equal to TMAX of a previous data case you want to continue). Details regarding final table dumping, etc. can be found in DC49. integer miscellaneous data card The just-described floating-point miscellaneous data card is to be followed by an integer miscellaneous data card bearing the following information: 76 Parameters: IOUT gives the frequency of LUNIT6 (printed) output within the time-step loop. E.g., a value of 3 means that every 3rd time step will be printed. A value of zero or blank is changed to unity. For "FREQUENCY SCAN" usage, it is output within the loop over frequencies that is controlled, rather than the loop over time, of course. IPLOT gives the frequency for saving solution points of the time-step loop for purposes of later plotting. E.g., a value of 3 means that every 3rd time step will be saved. A value of zero or blank is changed to unity, and any even value is increased by one to make it odd. An even plotting frequency is not allowed because of the likelihood of deception: a sawtoothed oscillation would go unnoticed. 2 Rulebook ATP (junio 1996 - internet) H02b 3 IDOUBL controls the LUNIT6 output of a table showing network connectivity. A value of zero or blank will suppress such output, whereas unity will produce it. For each node there is shown a list of other nodes to which there are physical connections. Mutual coupling between phases of multiphase elements is ignored in this output, as is the capacitance to ground of Pi-circuits and distributed-parameter lines. The name "TERRA " (as read in from the STARTUP file) is used for ground instead of six blank characters, to improve readability. Ordering of the rows is in order of input, except for the final row, which applies to ground (node number one, which is labeled "TERRA FIRMA"). KSSOUT controls the printout of the steady-state phasor solution. There are 3 basic types of outputs: branch flows, switch flows, and nodal injections. These can be controlled by the value of KSSOUT as follows: 0 ===> No steady-state solution printout. 1 ===> Print the complete steady-state solution: branch flows, switch flows, and source injections. 2 ===> Print switch flows and source injections, but not branch flows. 3 ===> Print branch flows requested by column 80 punches, switch flows, and source injections. MAXOUT controls printout of extrema at the completion of the simulation. Keying a zero or blank will suppress such computation and output, whereas the value unity will produce it. IPUN is used to request the input of an extra, following card to vary the printout frequency. Use a value of "-1" to request such an extra card, or zero or blank if no such extra card is wanted. Refer to Section II-C-4 for details of the following card. Alternatively, use "CHANGE PRINTOUT FREQUENCY" of Section II-A to accomplish the same thing. MEMSAV controls the dumping of EMTP memory onto disk at the end of the simulation for subsequent use with the "START AGAIN" request of Section II-A. Key "1" if such memory saving is desired, or zero or blank if it is not. For the single, deterministic simulation, the table saving is done at time TMAX (floating-point miscellaneous data parameter). For Monte Carlo ("STATISTICS") studies, this is upon completion of energization number NENERG (integer miscellaneous data parameter). Memory saving is a powerful and useful tool of the production user. However, be warned that such table saving and later use may be computer dependent, so information about the computer being used should be consulted. The name of the resultant tables is determined by a $OPEN declaration on LUNIT2 that must precede such usage. Most commonly the $OPEN is placed immediately before the blank card ending output requests. Also, once the tables are complete, it is the user's responsibility to disconnect them (use $CLOSE at the beginning of following plot cards). Any user of this feature should be further warned that a later awakening of the hibernating simulation is guaranteed only if the same program version is saved and is used for the following "START AGAIN" simulation. For an illustration involving a single, deterministic simulation, see BENCHMARK DC-32 and DC-49. For such usage with a Monte Carlo study, see BENCHMARK DC-24 and DC-40. A final comment is about Monte Carlo studies. If some study is to be solved in two or more independent pieces that are later to be combined, Rulebook ATP (junio 1996 - internet) H02b then for the 2nd or later portion (each associated with a "LOAD MORE SHOTS" declaration of the execution that combines the results), the value "2" is to be keyed rather than "1". The difference is great. Unity results in the dumping of all tables (including LTLABL words of "LABCOM"), whereas "2" will produce an abbreviated file consisting of only switching times and extrema. An abbreviated file is useless by itself, but can be appended to a complete file by means of the "LOAD MORE SHOTS" declaration. Of course, it is important to have a different seed for the random number generator of such simulations that are later to be combined, since otherwise, the user would just be repeating the same energizations (a waste of computation). For an illustration involving Monte Carlo simulations, see BENCHMARK DC-24 and DC-40. ICAT is to be left blank (or zero) if there is to be no permanent saving of raw plot data points that might be written to I/O channel number LUNIT4 during the simulation. But should such permanent saving be desired, then a positive value is required: 1 ===> Save the points, but ignore any batch-mode plot cards that might be present. 2 ===> Save the points, and also honor any batch-mode plot cards that might be present. For most computers, the disk file in question will be internally named based on the date and time of day when the simulation began. See the plot file heading for such details. Such details are controlled by installation-dependent SUBROUTINE SYSDEP, so it is not possible to be much more specific. See details for the computer of interest. NENERG is to be left blank (or zero) for single, deterministic simulations. But for "STATISTICS" or "SYSTEMATIC" data cases, this is to be the total number of energizations (exclusive of any possible, extra, base-case solution). Append a minus sign if "SYSTEMATIC" usage is involved --- a flag to distinguish such a case from Monte Carlo studies. Also, remember that an extra "STATISTICS" or "SYSTEMATIC" miscellaneous data card (Section II-C-1) must follow. IPRSUP is normally left blank or zero. If keyed as a positive value, this is the diagnostic printout control that is to be applied to all UTPF overlays. The same result can be obtained via parameter IPRSUP in the STARTUP file. But since the user normally will want to selectively control such output overlay by overlay, he should instead use the "DIAGNOSTIC" special-request card (see section II-A-12). Interpretation of the just-described floating-point and integer miscellaneous data cards confirms only the first three floating-point parameters, but all integer parameters. As an illustration, consider the two associated output lines of BENCHMARK DC-4: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Misc. data. 1.000E-02 6.000E+00 0.000E+00 | .010 6.0 Misc. data. 1 1 1 1 1 -1 0 0 0 0 | 1 1 1 4 Rulebook ATP *junio 1996 - internet) H02c 1 II-C. Specially-Requested Extensions to Miscellaneous Data Cards Two of the just-described integer miscellaneous data parameters (see section II-B) can require the input of additional, supplemental extensions that are to immediately follow the integer miscellaneous data cards. If none or only one is used, there is no question of ordering. But if both extensions are required, then these must be appended in the order of presentation, with the "STATISTICS/SYSTEMATIC" card (Section II-C-1 to II-C-3) preceding the card that controls the output frequency (Section II-C-4). "STATISTICS" Miscellaneous Data Card for Actual Simulation If and only if NENERG (cols. 65-72) of the integer miscellaneous data card is positive (i.e. flag for STATISTICS studies, see section VI.B.1), then the following additional card, called the "STATISTICS" miscellaneous data card, is required: 77 Parameters: ISW determines whether there is to be printed output of all the variable switch closing/opening times, for each of the NENERG energizations. Zero will suppress such output, whereas unity will provide it. For the special case where "4444" is keyed in columns 5-8, please refer to section II-C-3, describing the special feature of DICE TESTING. ITEST controls whether an extra random delay, calculated using the parameters DEGMIN, DEGMAX, and STATFR (see STARTUP file), is to be added to randomly-generated switching times for each energization. A zero or blank means that there will be such an addition for all random switches; the value "1" means that there will be no such addition for any random switch; the value "2" means that such an addition will be made only to random closing (not opening) times; a value "3" means that such an addition will be made only to random opening (not closing) times. For details on these different switch types, we refer to section VI.B. IDIST chooses between the two types of dice (distribution laws) that are available. A zero or blank value means that all randomly-generated switching times are to have Gaussian (normal) distribution, whereas a value of unity means that a uniform distribution is to be used instead. Note that this is NOT applicable to the extra random delay (see ITEST parameter), which is assumed always to follow a uniform distribution. Rulebook ATP *junio 1996 - internet) H02c IMAX will normally be left blank or keyed as zero. It is to be keyed with "1" if the user wants additional printout of deterministic extrema for each energization. The extrema in question are those normally seen at the end of a conventional, single simulation that has integer miscellaneous data parameter MAXOUT equal to unity. Such output has maxima, times of maxima, minima, and times of minima --- all extra output (an addition to, rather than a replacement for, the normal output for each energization). IDICE controls whether or not standard random numbers (that vary neither with time nor with manufacturer of the computer) are to be used. The value "1" will give such standard random numbers, whereas a blank or zero will result in the use of computer-dependent dice, if such separate dice have been provided. Specifics will depend upon the installation-dependent logic of ENTRY RANDNZ of "RFUNL1". For reasons of repeatability and universality, standard test cases such as BENCHMARK DC-24, DC-40, DC-48, DC-50, and DCPRINT-13 all use IDICE = 1. KSTOUT controls whether or not each energization is to have added printout that normally is associated only with a conventional, single simulation. Included are output of the time-step loop, and variable extrema (if integer miscellaneous data parameter MAXOUT is positive). The scalar extrema of "PEAK VOLTAGE MONITOR" also will be honored, if it has been declared. Such extra output is in addition to the regular, minimum program output of STATISTICS/SYSTEMATIC simulations. Since any such special output is repeated for each energization, the user should be careful in its use. To obtain such extra output for each energization, key a zero explicitely. A blank or minus one ("-1") will suppress such extra output. KNTRPT is normally left blank or zero. If keyed with a nonzero integer, it is taken to be the energization number KNT that is to be repeated (mnemonically, "count repeat"). This only has meaning for "START AGAIN" usage, where execution begins with the Monte Carlo history (including energization number KNTRPT) already stored in memory. In case two or more sets of Monte Carlo history have been loaded (the first by "START AGAIN" and the second or later set by "LOAD MORE SHOTS"), numbering of the energizations is cumulative, in the order the files were loaded. Of course, KNTRPT must be positive and not larger than the total number of loaded energizations. Following the "TIME STEP LOOP" request, the user will see the heading of variable names followed by time-step loop printout (assuming he requested this with KSTOUT = 0). Following such output, the memory of Monte Carlo usage is erased, so batch-mode plotting (not yet operational) will complete the data case. For an illustion, see the 4th data subcase of BENCHMARK DC-40. NSEED controls whether or not a Monte Carlo simulation is repeatable, should it ever be rerun using the same computer. A blank or zero means that that every solution will be different (i.e., no repeatability), whereas unity will result in identical answers every time the data case is solved on the computer of interest. At issue is the seed of the random number generating algorithm. Normally (for blank or zero in cols. 73-80), this depends on the time of day. But for repeatability (value unity), a constant seed is used. 2 Rulebook ATP *junio 1996 - internet) H02c 3 Monte Carlo studies are important enough, and tricky enough, so that each should be solved separately using a separate disk file. The stacking of two or more data cases, of which one is a Monte Carlo study, is not recommended. But for those who believe in living dangerously by stacking two or more Monte Carlo studies within a single disk file, remember to use $STARTUP at the beginning of the second or later of these. This is needed to reinitialize the critical tabledumping control TENERG. Let the 2nd subcase of BENCHMARK DC-24 serve as an example in this regard. Interpretation of the previously-described "STATISTICS" miscellaneous data card confirms only the first six parameters. As an illustration, consider the associated output of BENCHMARK DC-24: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Statistics data. 1 1 0 0 1 0 | 1 1 0 "SYSTEMATIC" Miscellaneous Data Card If and only if NENERG (cols. 65-72) of the integer miscellaneous data card is negative (i.e. flag for SYSTEMATIC studies, see section VI.B.2), then the following additional card, called the "SYSTEMATIC" miscellaneous data card, is required: 78 Parameters: ISW : Same as for preceding "STATISTICS" use. ITEST controls whether switch times to be specified on columns 15-24 of the SYSTEMATIC switch card are to be Tbeg or Tmid (see section VI.B.2). Use blank or zero if Tmid is to be used,or unity if Tbeg is to be specified. IMAX : Same as for preceding "STATISTICS" use. KSTOUT : Same as for preceding "STATISTICS" use. Interpretation of the just-described "SYSTEMATIC" miscellaneous data card is in fact identical to that for "STATISTICS". As an illustration, consider the associated output of BENCHMARK DC-16: Rulebook ATP *junio 1996 - internet) H02c C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Statistics data. 1 1 0 0 0 0 | 1 1 { I "STATISTICS" Miscellaneous Data Card for Dice Testing It is possible to test a random number generator without actually performing the simulations that normally would depend upon the random number generator. If and only if NENERG (cols. 65-72) of the integer miscellaneous data card is positive, and if cols. 5-8 of the "STATISTICS" miscellaneous data card (i.e., variable ISW) are keyed with "4444", then only a test of random numbers is desired. For such usage, the extra card following the integer miscellaneous data card has the following format, as a simpler version of the original card of Section II-C-1: 79 ISW : The "4444" is a request for dice testing. ITEST gives the number of points per standard deviation of the tabulations that are to result. A zero is given the default value of 2.0 (meaning 8 entries on either side of the mean, if SIGMAX = 4.0 in the STARTUP file). IDICE : The same as for Section II-C-1 above. NSEED : The same as for Section II-C-1 above. Concerning the rest of the data case, it should be legal card ending switch cards. Only the switch cards are branch cards are arbitary as long as no error results cards are read. Finally, there should be a "BEGIN NEW the bottom, since this will be searched for just as following an EMTP error message. through the blank actually used, so before the switch DATA CASE" card at would be the case Switching times will be generated for each of the NENERG imaginary energizations (in fact, program control never leaves overlay 12). There then will be a tabulation for each pair of Gaussian switches. Recall that if the closing time for each of two switches has Gaussian (normal) distribution, then so does the difference of these two. The mean of the difference will be the 4 Rulebook ATP *junio 1996 - internet) H02c 5 difference of the means, whereas the variance of the difference will be the sum of the two variances. For M Gaussian switches, there will be M*(M-1)/2 such pairs of switches. For each pair , there will be one tabulated output showing both the experimental and the theoretical cumulative distribution functions. See BENCHMARK DC-50 for an example. The just-described tabulation only applies to two switches having Gaussian switching times. If one of the switches is deterministic, or if one is random but uniformly-distributed, then the tabulation is skipped. There is no new interpretation for the miscellaneous data card of dice testing. Refer to the preceding Sections II-C-2 or II-C-3 for illustrations. Change of Frequency of the Time-Step Loop Printout The frequency of LUNIT6 printout within the time-step loop is nominally controlled by integer miscellaneous data parameter IOUT of Section II-B. But this frequency can be varied as the simulation time advances. One way has already been documented in Section II-A: use of a "CHANGE PRINTOUT FREQUENCY" request. Another is to key integer miscellaneous data parameter IPUN (cols. 4148) as "-1", and append the following card: 80 This card specifies at which time steps the printout frequency is to be changed, and to what values the frequency is to be changed. Up to five pairs of these (KCHG, MULT) controls are permitted. The meaning is as follows: KCHG(K): The time step number at which the K-th variation of printout frequency is to begin. Printout for this particular step number is always provided, as a beginning to the new frequency of output. MULT(K): The modified value of IOUT (see 2nd miscellaneous data card) that takes effect at time step KCHG(K). If a minus sign is appended to MULT(K), then at the corresponding step number KCHG(J), the diagnostic printout status will be changed. That is, there will be a switching of the two sets of diagnostic printout controls: 1. IPRSOV(16:19) of Section II-A-12 (a "DIAGNOSTIC" request); Rulebook ATP *junio 1996 - internet) 2. IPR(1:4) H02c of Section II-A-3 ("ALTERNATE DIAGNOSTIC PRINTOUT"). If there is no minus sign, there will be no change in status of the diagnostic printout at the associated time step. Any minus signs are merely extra flags. The absolute value of MULT still controls the production (nondiagnostic) printout frequency as originally described. Interpretation of the just-described printout control card confirms only the first three pairs of numbers. As an illustration, consider the associated output of BENCHMARK DC-16: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Printout : 5 5 20 20 0 0 | 5 5 20 6 Rulebook ATP *junio 1996 - internet) H04 1 IV LINEAR BRANCH CARDS Introduction What are branch cards Branch cards are cards where one can define different kinds of branches. Distinction should be made between linear and non-linear branches. The non-linear branches will be discussed in more detail in chapter V. Following types of linear branches will be discussed in this chapter: - uncoupled, lumped, series R-L-C (type 0) - mutually-coupled, lumped R-L-C elements (type 1,2,3,...) * single phase PI-circuit * multiphase PI-circuit - mutually-coupled, lumped R-L elements (type 51,52,53,...) - distributed-parameter elements with constant transformation (type -1,-2,-3,...) * constant-parameter line models (distortionless or lumped resistance or exact PI) transposed = Clarke model untransposed = K.C.Lee model * double-circuit constant-parameter line models * frequency dependent line model (JMARTI) * recursive-convolution line model (SEMLYEN) matrix - saturable transformer component - cascaded PI feature (steady state only) - phasor branch [Y] input (steady state only) For all lumped elements, a normal precision as well as an high-precision format exist. This will be explained on relevant places. For all mutually coupled, lumped elements, both an RL as well as an AR notation exist. This will be explained on relevant places. For most of the above branch types, there are supporting routines available which can be used to generate the necessary data in the proper input format. Wherever appropriate, reference will be made to relevant supporting routines. Where are the branch cards situated on the input file structure As explained in section I-I (Structure of EMTP input data), the branch cards always precede the switch card grouping. This means that branch cards have to follow either the miscellaneous data cards (when no TACS HYBRID is active) or the TACS card grouping (whenever TACS HYBRID is in use). Recall that both linear as well as non-linear branch cards belong to the branch card group. They can be put in any arbitrary order. Do not forget to terminate the grouping of branch cards by a blank card or a card containing the text "BLANK card ending BRANCH cards" This text should start in column 1. Both BLANK and BRANCH should be in capitals. All the remaining text can be in mixed mode (lower case or capitals). This will be of particular importance when using "DATA BASE MODULE" punched card results. Different formats Rulebook ATP *junio 1996 - internet) H04 The "$VINTAGE, 1"-card, which is honoured by most computer systems, provides for an alternate high-precision format. Specifically the R, L and C fields are switched from limited accuracy (E6.2) to extended accuracy (E16.0) when the request card "$VINTAGE, 1" precedes a branch card (grouping). If "$VINTAGE, 0" follows this card (grouping), the high-precision format will be toggled to a normal format. For example: $VINTAGE, 1 lumped series R-L-C branches of any type (e.g. type 0: uncoupled RLC; type 1,2,3,...: coupled RLC; type 51,52,53,...: coupled RL) as long as they use the high-precision formats. $VINTAGE, 0 Connectivity definition Each branch is defined by its terminal ends (BUS1 and BUS2). By allocating node names to these terminal ends, the network connectivity is defined. But in effect, the terminal node names do not uniquely specify the branch; just think about two (or more) parallel branches having the same terminal node names. Only in a limited number of cases, it will be necessary to distinct between branches; . Branch output request (column 80-punch) . Reference branch usage (see next paragraph). If no special care is taken, the order of appearance in the input is withheld for parallel branches. If two or more parallel branches occur in the input, it is the first one appearing that will be used as reference branch or that will generate the requested branch output. When distinction should be made between two parallel branches, it is sufficient to alter the sequence of the node names. This simple action indeed is sufficient to distinct between two parallel branches. Example: Suppose one wants to define two parallel branches between node NODA and NODB. For one branch, BUS1 = NODA and BUS2 = NODB. For the other branch, BUS1 = NODB and BUS2 = NODA. When distinction should be made between more then two parallel branches, users' inventivity is called upon. Possible solutions; define an extra, intermediate node by splitting the series RLC in two different parts, or by using dummy measuring switches. Reference branch option When there are two or more branches that have the same elements (R,L,C) with the same values, a memory storage saving option exists; the reference branch option. In such case, one should only define the terminal ends of the branch being defined (BUS1 and BUS2), and in addition in the fields BUS3 and BUS4, reference should be made to the terminal ends of the branch being referred to (BUS1, BUS2). All other fields remain blank. It is clear that the branched being referenced to previously should be defined. Further recall that the sequence in which node names are specified is of crucial importance. Finally, refer to the preceding paragraph (4.- connectivity definition) for special remarks regarding parallel branches. 2 Rulebook ATP *junio 1996 - internet) H04a 1 IV-A. Branch cards for uncoupled, lumped series RLC branches (type 0) Application GENERAL USAGE: Uncoupled or single phase, lumped series RLC branches specify the non-zero impedance of a branch between two named nodes, or between one named node and the ground (no special name, but just a blank will be sufficient to specify the ground). This impedance can be either a resistance, a capacitor, an inductor or a series connection of any of these. 81 Within FIX SOURCE, a data generator is available that converts the active and reactive loads (P and Q) into equivalent RLC branches (uncoupled, lumped series elements). See section X (FIX SOURCE) for more details. SPECIAL USAGE: The uncoupled, lumped series RLC element can be used for following purposes: - - measure the branch current or voltage (see remark 2), break closed loops of parallel connected switches (e.g. thyristor and free-wheeling diode), damp out numerical oscillations which could occur when interrupting the current in an inductor, or applying a step voltage to a capacitor (i.e. scaling of a resistance by the time step DELTAT see section IV.A.3; remark 7), link a floating subnetwork to the reference network (e.g. delta connected loads, ungrounded transformer or machine windings). Remarks: - There are limitations on the values of the resistance; there is a maximum and a minimum resistance we have to take into account (remark 5 and 6 of section IV.B.3.). For current-sampling purposes, there is also another facility called a measuring switch (remark 6 of section IV.B.3.). Usage of a high-precision format is explained in section IV.B.2-2. Card format for uncoupled, lumped series RLC elements First, the three different card formats will be discussed: . normal format ($VINTAGE, 0) . high-precision format ($VINTAGE, 1) . free format. Rulebook ATP *junio 1996 - internet) H04a Next, an explanation of all parameters involved will follow. Indeed, the meaning of the parameters is not dependent on the format being used. 82 NORMAL CARD FORMAT ($VINTAGE, 0) 83 If there is no special request card, the normal format is in use. The R, L and C fields only have a limited accuracy (E6.2 format). HIGH-PRECISION CARD FORMAT ($VINTAGE, 1) 84 FREE FORMAT 2 Rulebook ATP *junio 1996 - internet) H04a 3 Besides the regular format and the high-precision format, a third (but tricky) way can be used to input RLC branches. This input is called FREE FORMAT, but it is not totally "free". Some important rules apply here : separate each field by comma's (i.e. last sign of the variable CHRCOM in the STARTUP file); blanks are totally ignored, and node names are left adjusted; do not input node names after column 26; do not input values before column 27; Make sure there is always a total of five comma's before column 26 (delimiting one type field and four node name fields) and a total of eight comma's should follow column 27 (delimiting three numeric fields for R, L, C, augmented by 6 dummy fields, probably to make the format compatible with the type 1,2,3-format). for output requests you still MUST use column 80; if a zero is not entered explicitly, the comma should nevertheless always be entered (even for column 1). With these rules, only column 27 and possibly column 80 must be determined as position information. On the other hand, a painstaking count of comma's is necessary. Parameters Following formats. is an explanation of the parameters used in the above card ITYPE: The branch-type has to be punched as zero or blank. BUS1, BUS2: Terminal node names of a branch. Each node can be specified by a 6-character alphanumerical node name. Node names always have to be left adjusted. Note that a blank-name is understood as being ground (TERRA). BUS3, BUS4: Reference branch terminal node names (see section 5 of the introduction), normally left blank. Recall that, when BUS3 and BUS4 are specified, the R, L and C field should remain blank. For the special situation "scaling of a resistance by the time step DELTAT", we refer to remark 7 below. R: Resistance value in Ohms. Except in case of free-format usage, values always have to be right adjusted. L: Inductance value (in mH or Ohms, depending on XOPT). - an inductance L: mH (XOPT = zero or blank) - a reactance 2[Equation: pi]f*L: ohms (XOPT = f) C: Capacitance value (in µF or µMho's, depending on COPT). - a capacitance C : µF (COPT = zero or blank) - a susceptance 2[Equation: pi]f*C: µmhos (COPT = f) OUTPUT OPTION: The options for printing and/or plotting have to be specified in this area. There are four output possibilities: '1' : branch current; '2' : branch voltage; '3' : branch current and branch voltage; '4' : branch power and energy consumption. Remarks: Rulebook ATP *junio 1996 - internet) H04a 1) There are two different ways to specify or alter XOPT and COPT. They can be defined in the miscellaneous cards (see II-B.), or one can use the $UNITS card. This card can be inserted in the branch card grouping, on several places, to switch the units of the capacitors and inductors any time. The use of the $UNITS card is further explained in section ID-15. 2) At least one value of R, L and C per branch must be non-zero. 3) When a branch has only one or two elements (R, L, R and C, L and C, etc.), just leave the fields blank of the elements which do not occur in the branch. 4) When using a reference branch which has other branches in parallel, it is not clear which of them should be the reference branch. Therefore the highest mentioned branch among the parallel branched always is the reference branch. Note that NODEA to NODEB and NODEB to NODEA are two different node-name pairs. These can therefore be used as two distinct reference branches. 5) A high resistance, being used for voltage sampling for example, may not exceed the maximum resistance value, which depends on the computer system. The general rule is that R must not exceed the square root of the largest number which the computer system can represent in floating-point form (e.g. 1.E18 ohms on Univac and Honeywell/GE, 1.E35 ohms on IBM and 1.E100 ohms on CDC). Startup file parameter FLTINF contains the maximum resistance value. 6) A low resistance, being used for current sampling for example, may not be taken lower then the minimum resistance value, which depends on the computer system and the program release. Following limitations exist: - the fundamental limitation is due to floating-point word length (system dependent). - the singularity tolerance parameters EPSILN and TOLMAT. The general idea is that all impedances which terminate on a given node should not differ drastically in value, as measured by the just-mentioned singularity tolerances. Specific relevant points related hereto include the following: EPSILN = singularity tolerance for real, all-resistive transient equivalent-network solutions. For transient studies, the impedances in question are equivalent Norton resistances, depending not only on the element, but also on the time step DELTAT. . For a resistor, this is just the value of the resistance in Ohms. . For an inductor of L Henries, the equivalent resistance is 2L/DELTAT. . For a capacitor of C Farads, the equivalent resistance equals DELTAT/2C. Distributed parameter lines or cables can be treated like a resistor having a resistance equal to the characteristic impedance. EPSILN can be specified in the floating-point miscellaneous data card, or in the startup file. TOLMAT = singularity tolarance for complex (i.e. phasor) admittance solutions during steady state initial conditions. For steady state studies, the impedances in question are phasor impedances, depending not only on the element but also on the frequency f of the sinusoidal excitation being used. . For a resistor, this is just the value of the resistance. . For an inductor, this is 2[Equation: pi]f*L. . For a capacitor, this is (2[Equation: pi]f*C)-1. 4 Rulebook ATP *junio 1996 - internet) H04a 5 TOLMAT can only be specified in the floating-point miscellaneous data card. Current sampling can alternatively be done by permitting current output requests using the familiar column-80 punch. A second alternative is to use a measuring switch, which is permanently closed. The use of this switch is explained in section VI-A. 7) Scaling of a resistance by the time step DELTAT (Theory Book, section 2.2.2 and 2.3.2). Particularly useful for damping resistors to control numerical oscillation of the trapezoidal rule is the program feature that allows the resistance to be scaled by the time step DELTAT. For a resistor in parallel with an otherwise hanging (disconnected) inductor having value L [Henry], default damping is provided by the formula R = 16L DELTAT (L in Henry, DELTAT in sec, R in Ohm) The less-common dual case is that of the series capacitor which otherwise would be shorted, in which case resistance proportional to DELTAT is used: R = DELTAT 16C Either proportional or inverse scaling by DELTAT is available for any simple resistor, if the user makes the right request in the reference branch fields BUS3 and BUS4 (columns 15-26) of the series R-L-C branch card that defines the resistance R as 16*L (Henry) or R as 16*C (Farad). L and C should be left blank. C 1 | 2 | 3 C 345678901234|567890123456|7890 C ------------|------------|---|DIVIDEDELTAT| -- to have R divided by DELTAT :inductance |MULTIPDELTAT| -- to have R multiplied by DELTAT:capacitance No special acknowledgement of such requests will be provided, although the user can verify that the program has understood by checking the first parameter of the data card interpretation (column 1-51 of the LUNIT6 output), which will reflect the scaling. If the user makes an error in spelling the request words (DIVIDEDELTAT or MULTIPDELTAT), the program should terminate execution with a complaint about inability to find the appropriate reference branch. Hence usage carries little danger of misunderstanding. For an illustration of "DIVIDEDELTAT" usage, see the 4th subcase of BENCHMARK DC-55. Examples C 1 2 3 4 5 6 7 8 C 345678901234567890123456789012345678901234567890123456789012345678901234567890 VOLT-A10-A $VINTAGE, 1 $UNITS, 0, 0 1. 123..21E-3 Rulebook ATP *junio 1996 - internet) H04a BUSA BUSB 12.8000000000000 10. 3 $VINTAGE, 0 $UNITS, -1, -1 VOLT-B10-B VOLT-A10-A 1 PORT 300. C 1 2 3 4 5 6 7 8 C 345678901234567890123456789012345678901234567890123456789012345678901234567890 The examples in the above figure are representing the branches following below. Presume that XOPT and COPT are set to 0 respectively 60 (Hz) in the miscellaneous data cards. When we switch to high-precision notation, we also use the $UNITS, 0, 0 card to change the units of the capacitance to µF (the units of the inductance remain the same, because XOPT already was 0). At this point, we have to be careful when we are going to use referencing. The branch with nodenames VOLT-B and 10-B will use now the reference branch with nodenames VOLT-A and 10-A. Therefor the units must be the same for these two branches. To switch to the old units again, we will use the $UNITS, -1, -1 card. The current of the branch with terminal nodes VOLT-B and 10-B will be included in the output as well as both current and voltage of branch BUSA to BUSB. 6 Rulebook ATP *junio 1996 - internet) H04b 1 85 IV.B Branch cards for mutually coupled RLC elements (type 1,2,3) Applications GENERAL USAGE: First of all it is important to realize that, in contrast with the previous branches (type 0), the capacitance values specified on the input cards of type 1,2,3 are for shunt connected capacitances, not for series connected ones. A further observation worth reminding is that the capacitance value that is entered, is internally allocated half at the beginning and half at the end of the model. 86 This class of branches thus provides for the representation of lumpedelement resistance, inductance and capacitance matrices. The elements of the matrices [R], [L] and [C] have the following meaning (steady state): - - diagonal Rii + jωLii : self impedance of branch i (impedance of loop "branch i - ground return"); off-diagonal Rik + jωLik : mutual impedance between branches i and k (Rik ≠ 0 with nonzero ground resistivity); diagonal Cii : sum of all capacitances connected to the nodes at both ends of branch i; off-diagonal Cik : negative value of capacitance from branch i to branch k. 2 Rulebook ATP *junio 1996 - internet) v k - v m = [L] H04b dikm + [R] ikm dt 1 dv [C] k + ikm 2 dt 1 dv = [C] m - ikm 2 dt ik = im 87[ Note that all matrices are assumed to be symmetric and that the matrix of the capacitance is split in two, with half of the total on each end of the branch. This model, better known as a multi-phase nominal PI-equivalent, can be used to simulate transient phenomena on short lines or cables. By connecting many short sections in series, keeping track of any actual transposition (if any), even a transient model for a long line can be obtained. Yet because of increased running time and memory requirements, this modelling should generally be used only as a last resort, where more sophisticated models (e.g. distributedparameter models) are believed to be inadequate. Note that this is not the CASCADED PI option referred to in section IV.F; cascaded PI uses the long-line equivalent, which is valid only for steady state, at one specific frequency. The supporting routine LINE CONSTANTS (section XXI-E) or CABLE CONSTANTS (section XXIII-B) can be used as data generator for type 1,2,3 branch cards. Indeed the parameters [R], [L] and [C] cannot easily be calculated by hand. But also transformers can be modelled using PI-equivalents. Because most transformers have a small P.U. excitation current, the admittance matrix is nearly singular. The leakage impedance is rather low and can be obtained by substracting the mutual impedance from the self-impedance. Because off the fact that the admittance matrix is ill-conditioned, the leakage impedance can get lost in the magnetizing impedance. Therefor, it is necessary to have sufficient accuracy for the inductance. Hence, the normal card format (E6.0) is not sufficient. For transformers, either the alternative high-precision format should be used (see section IV.B.2 and related data generator BCTRAN, section XIX-C), or a more appropriate branch card format (type 51-52-53, see section IV-C) should be used (see data generator XFORMER, section XIX-A). In the ideal case of nonexisting (or very low) P.U. excitation currents, the inductance matrix does not even exist. For this special situation, a special option (AR notation) is used. Here, A stand for L-1 (the inverse of the inductance), which does exist (be it almost singular). This is later explained in more detail (see section IV.B.2). In both cases (AR and RL notation), the positions for the capacitance can be used succesfully to derive frequency dependent transformer models, where one needs to take into account the interwinding capacitances, as well as the capacitances to Rulebook ATP *junio 1996 - internet) H04b 3 ground. At this moment (November 1990), no related automatic data generator is available within EMTP. SPECIAL USAGE: A first special situation is when [C] = [0] (there are no capacitances). This case represents only mutually-coupled RL branches, for which even a separate input format (type 51,52,53, see section IV.C.) has been provided. This is the normal situation for transformer modelling. 88 If the user wants a multiphase capacitance matrix to ground (e.g. a capacitor bank), be it in star or in delta, then he can input near-infiniteimpedance series branches and ground all conductors at the far end. 89 Note hereby that the series impedances must be chosen large enough to represent an open-circuit. Recall that there is a limitation on the used values (see section IV.A.3). The C-matrix, specified in the input file must be twice the desired final matrix values, as mentioned before. Recall that the specified value is internally allocated half to the beginning and half to the far end of the model. One can also obtain a single phase (i.e. uncoupled) PI-equivalent. The difference with the representation by uncoupled, lumped series RLC branches is that you can enter the shunt capacitance to ground directly instead of having to introduce two separate branches for this purpose. The only thing you have to do, is using branch type number 1. Card format First, the three different card formats will be discussed: . normal format ($VINTAGE, 0) . high-precision format ($VINTAGE, 1) Rulebook ATP *junio 1996 - internet) 4 H04b . free format. For this card-type, 2 different notations exist: the RL-notation and the ARnotation. The card formats first will be explained for the RL-notation (normal usage). Next, the AR-notation will be discussed. RL notation Normally the RL notation is used. You can stack the values for [R], [L] and [C] in the way explained in section IV.B.3 (remarks). If previously the AR notation was used, you can toggle to the RL notation by using the following card: 90 NORMAL CARD FORMAT ($VINTAGE, 0) 91 If there is no special request card, the normal format is in use. The R, L and C fields only have a limited accuracy (E6.2 format). See section IV.B.3 (remarks) for further usage. HIGH-PRECISION CARD FORMAT ($VINTAGE, 1) Rulebook ATP *junio 1996 - internet) H04b 5 92 Usage of an extended precision (E16.0) is possible for mutually coupled RLC branches. See section IV.B.3 (remarks) for further usage. FREE FORMAT Besides the regular format and the high-precision format, a third (but tricky) way can be used to input RLC branches. This input is called FREE FORMAT, but it is not totally "free". Some important rules apply here : - - separate each field by comma's (i.e. last sign of the variable CHRCOM in the STARTUP file); blanks are totally ignored, and node names are left adjusted; do not input node names after column 26; do not input values before column 27; Make sure there is always a total of five comma's before column 26 (delimiting one type field and four node name fields) and a total of eight comma's should follow column 27 (delimiting nine numeric fields for R, L, C). If the figures are to be continued on the next card because the number of columns per card exceeded, the continuation symbol (fifth character of CHRCOM of STARTUP, usually "$") must be used. On such card, no extra comma's are needed. With these rules, only column 27 must be determined as position information. On the other hand, a painstaking count of comma's is necessary. See section IV.B.3 (remarks) for further usage. AR notation In some cases, the [L]-1-matrix is ill-conditionned or singular, so [L] does not exist. Therefor the AR notation is used. "A" stands for the [L]-1-matrix and "R" stands for the [R]-matrix. Switching to the AR notation can be done by the following card: 93 In this case, we use the following equation: Rulebook ATP *junio 1996 - internet) 6 H04b dv = [L ]-1 v - [L ]-1 [R]i dt Now we have to be carefull when punching the data in the input format. The [L]-1-matrix replaces R in the input format. In the same way, the [R]-matrix replaces L in the input format. Remarks: - This notation can not be used for coupled phases (minimum two). single-phase situations; only for - Before using the AR notation, the program automatically sets XOPT as 0.1591549 (XOPT=1/2π). In this case ω = 1. COPT remains unchanged. The values of the corresponding term of the inverse of L are now to be specified in Henry-1. Before switching to the RL notation, the old value of XOPT can be restored using the command $UNITS,-1,-1. - The AR notation can be combined with the use of the high extention format ($VINTAGE, 1) and the free format. Parameters Following formats. is an explanation of the parameters used in the above card ITYPE: Numbers 1 up to 40 can be used to express each phase of the PIequivalent. When there are continuation cards, ITYPE must be left blank for these (see remark 2). BUS1, BUS2: Specify the terminal node names of each phase in these fields. Nodes may be grounded (indicated by blank field name), if desired. BUS3, BUS4: Equally to uncoupled RLC branches, referencing can be used here. The same rules must be taken into account, except that only the first card (first phase) bears the reference nodes, specified as the nodes appearing on the first card used as reference set. The following cards (following phases) just specify the consecutive type numbers and the node names of the other input ports, not the nodes of the reference set nor the RLC values. R: resistance, value in ohms. L: Inductance value (in mH or Ohms, depending on XOPT). - an inductance L: mH (XOPT = zero or blank) - a reactance 2[Equation: pi]f*L: ohms (XOPT = f) C: Capacitance value (in µF or µMho's, depending on COPT). - a capacitance C : µF (COPT = zero or blank) - a susceptance 2πf*C: µmhos (COPT = f) Col80 punch: only value 2 is allowed, only on the first two cards. Remarks: Rulebook ATP *junio 1996 - internet) H04b 7 1) At least one of the matrices [R], [L] or [C] must be nonzero. When matrix [C] is zero, an alternate input format (type 51,52,53; see section IV.C.), can be used. 2) Matrices [R], [L] and [C] are symmetric, so one only needs to specify the elements on and below the diagonal. Hence the following format applies. For phase 1 (A), BUS1 = "SA" and BUS2 = "RA", for phase 2 (B), we have SB and RB, etc. When one card is not sufficient for all RLC values (second and later phases for $VINTAGE, 1;fourth and later phases for $VINTAGE, 0), then continuation cards are used, with columns 1-26 left blank. a) for $VINTAGE, 0: 94 b) for $VINTAGE, 1: 95 3) No branch current output is possible for this branch type. However, the branch voltage can be obtained on the first two phases. In these phases, column 80 is still free and can therefor be used to punch number 2 for branch voltage output requests. By the next phases, column 80 is occupied (at least for $VINTAGE,0) and can therefore not be used for output requests. Rulebook ATP *junio 1996 - internet) 8 H04b Examples The next example contains two identical 3-phase circuits. Together, these two circuits constitute six coupled conductors. With two identical PI-equivalents cascaded, the data cards appear as follows: C 1 2 3 4 5 6 7 8 C 34567890123456789012345678901234567890123456789012345678901234567890123456789 0 $UNITS, 60, 0 110-A 20-A 1.41 8.334 .164 210-B 20-B 0.972.8586-.0289 1.239.1392 .1626 310-C 20-C 0.912.2823-.0088 0.863.4218-.0273 1.16 9.518 .166 2 411-A 21-A 1.002.0984-.0180 0.942.1248-.0101 0.902.0398-.005 3 1.41 8.334 .164 511-B 21-B 0.942.1248-.0101 0.892.5064-.0104 0.862.6454-.008 7 0.972.8586-.0289 1.239.1392 .1626 611-C 21-C 0.902.0398-.0053 0.862.6454-.0087 0.833.1597-.014 2 0.912.2823-.0088 0.863.4218-.0273 1.16 9.518 .166 2 C 1 2 3 4 5 6 7 8 C 34567890123456789012345678901234567890123456789012345678901234567890123456789 0 USE AR $VINTAGE, 1, 1BUS1_RBUSH 2BUS2_RBUSL 3BUS1_SBUSH 4BUS2_SBUSL 5BUS1_TBUSH 6BUS2_TBUSL USE RL $VINTAGE, 0, $UNITS, {do not forget this! 2.4311266503345 -29.04015078715 361.43763967638 .06629545237001 -.7919085305828 2.4311266503345 -.7919085305828 23.900085059572 -29.04015078715 361.43763967638 .06629545237001 -.7919085305828 .06629545237001 -.7919085305828 2.4311266503345 -.7919085305828 23.900085059572 -.7919085305828 23.900085059572 -29.04015078715 361.43763967638 -1, 1.369233463069 0.0 .0095961038351 0.0 0.0 1.369233463069 0.0 0.0 0.0 .0095961038351 0.0 0.0 0.0 0.0 1.369233463069 0.0 0.0 0.0 0.0 0.0 .0095961038351 -1 Rulebook ATP *junio 1996 - internet) H04b 9 C 1 2 3 4 5 6 7 8 C 34567890123456789012345678901234567890123456789012345678901234567890123456789 0 120-A 30-A 10-A 20-A 220-B 30-B 320-C 30-C 421-A 31-A 521-B 31-B 621-C 31-C As you can see in the grid, following matrices are used in the first six phases of the PI-equivalent: [R] = Ω 1.41 0.97.1.23 0.91,0.86,1.16 1.00,0.94,0.90,1.41 0.94,0.89,0.86,0.97,1.23 0.90,0.86,0.83,0.91,0.86,1.16 7 [ ωL] = Ω 8.3340 2.8586,9.1392 2.2823,3.4218,9.5180 2.0984,2.1248,2.0398,8.3340 2.1248,2.5064,2.6454,2.8586,9.1392, 2.0398,2.6454,3.1597,2.2823,3.4218,9.5180 [C] = µ [F] 0.1640 -0.0289,0.1626 -0.0088,-0.0273,0.1662 -0.0180,-0.0101,-0.0053,0.1640 -0.0101,-0.0104,-0.0087,-0.0289,0.1626 -0.0053,-0.0087,-0.0142,-0.0088,-0.0273,0.1662 8 Remark the symmetric structure of each matrix and interprete the units of the [L] matrix in ohms (XOPT is set to 60 Hz). The next 6 phases represent a multiphase transformer. The AR notation is used representing following matrices: [L ]-1 = H -1 2.4311266503345 -29.04015078715,316.43763967638 .06629545237001,-.7919085305828,2.4311266503345 -.7919085305828,23.900085059572,-29.04015078715,361.43763967638 .06629545237001,-.7919085305828,.06629545237001,-.7919085305828,2.4311266503345 -.7919085305828,23.900085059572,-.7919085305828,23.900085059572,-29.04015078715,361.43763967638 9 10 Rulebook ATP *junio 1996 - internet) H04b [R] = Ω 1.369233463069 0.0,.0095961038351 0.0,0.0,1.369233463069 10 0.0,0.0,0.0,.0095961038351 0.0,0.0,0.0,0.0,1.369233463069 0.0,0.0,0.0,0.0,0.0,.0095961038351 The high-precision format ($VINTAGE, 1) is also used, transformer needs this format to be as accurate as possible. because the Remark the use of $UNITS, -1, -1 which resets the old units of the inductors (XOPT = 60) and capacitors (COPT = 0). This is indispensable because when using the AR notation, the program automatically changes the units to $UNITS, 0.1591549, 0. Finally, there is a multiphase PI-equivalent which will be referred to the first multiphase PI-equivalent. As mentioned in section IV.B.3. only the first phase bears the reference nodes. Rulebook ATP *junio 1996 - internet) H04c 1 IV-C. Branch cards for mutually coupled RL elements (type 51,52,53,...) Application GENERAL USAGE: This class of branches provides for the representation of lumped-element, mutually-coupled R-L branches. 96 The input cards for these branches do not differ much from the previous type 1,2,3 branches, except that there is no provision for inputting a shunt capacitance matrix ([C] = [0]). On the other hand, the inductance data field provides for 12 columns rather then only 6, allowing for greater precision. This is primarily intended for representing the coupled impedances of transformers, as with lower precision the leakage impedances, obtained by substracting the mutual impedances from the self impedances, are very badly and get lost in the magnetizing impedance. However, this drawback can be circumvented by using the high-precision format for type 1,2,3 (see section IV.B). Also network equivalents can be represented using coupled R-L equivalents. Following data generators create punched cards in the type 51,52,53-format: XFORMER (section XIX.A) = transformer model NETEQV (section XXIV.) = network equivalent CHANGE TRANSFORMER (section XIX.J) = convert SATURABLE TRANSFORMER data into XFORMER punched card output format. SPECIAL USAGE: 1) Sequence value: For transposed (balanced) lines, the associated [R] and [L] matrices (phase values) have a special structure: all diagonal elements have a common value Z s and all off-diagonal elements have a common value Zm. When in addition, we only consider transposed three-phase cases, an easier notation, based on Fortesque decomposition, exists. In this case, it is no longer necessary to store the entire matrix (or even the lower-diagonal part). It is more convenient to specify only the associated zero- and positive-sequence values (R 0,L0) and (R1,R2) of a purely diagonal matrix. Rulebook ATP *junio 1996 - internet) 2 _ Fortesque _ , , Z Z Z s m m Z m , Z s , Z m , , Z m Z m Z s H04c Z 0 ,0,0 11 0, Z1 ,0 0,0, Z 1 The relation between phase values (Zs,Zm) and sequence values (Z0,Z1) is very simple; Z0 = Z s + 2 Z m Z1 = Z s - Z m Furthermore, sequence values can be calculated automatically using supporting routines LINE CONSTANTS (section XXI-C or section XXI-D) or CABLE CONSTANTS STAND ALONE. Note, however that data manually should be put in the correct input format! This input format will be discussed in more detail in section IV.D.2-3 and 3-2. 2) AR notation: In the ideal case of a transformer having non-existing (or very low) P.U. excitation currents, the inductance matrix does not even exist. For this special situation, a special option (AR notation) is used. Here, "A" stands for L -1 (the inverse of the inductance), which does exist. Remark, however, that the supporting routine XFORMER is not able to create output in AR notation in order to treat such an "ideal" transformer. On the other hand, BCTRAN can, but it does not create the type 51,52,53 branch format being discussed here. Card format For this card-type, 2 different formulations exist: phase value and sequence value formulation. For the phase value formulation, in addition 2 different notations exist: the RL-notation and the AR-notation. In both notations, three different card formats can be used : . normal format ($VINTAGE, 0) . high-precision format ($VINTAGE, 1) . free format. These card formats first will be explained for the RL-notation (normal usage). Next, the AR-notation will be discussed. These notations, which belong to the phase value formulation, will be followed by another part, where an extra format used for the sequence value formulation will be discussed. Phase values RL notation Normally the RL notation is used. You can stack the values for [R] and [L] in the way explained in section IV.C.3. If previously the AR notation was used, you can toggle to the RL notation by using the following card: Rulebook ATP *junio 1996 - internet) H04c 3 97 NORMAL CARD FORMAT ($VINTAGE, 0) To specify N mutually coupled R-L elements, the following format is used: 98 HIGH-PRECISION CARD FORMAT ($VINTAGE, 1) Even in this case there is a high-precision format available. All value formats are now switched to the E16.0 format. Next grid shows the input structure. 99 FREE FORMAT Besides the regular format and the high-precision format, a third (but tricky) way can be used to input type 51,52,53 RL branches. This input is called FREE FORMAT, but it is not totally "free". Some important rules apply here : separate each field by comma's (i.e. last sign of the variable CHRCOM in the STARTUP file); Rulebook ATP *junio 1996 - internet) 4 - - H04c blanks are totally ignored, and node names are left adjusted; do not input node names after column 26; do not input values before column 27; Make sure there is always a total of five comma's before column 26 (delimiting one type field and four node name fields) and a total of six comma's should follow column 27 (delimiting six numeric fields for R and L). If the figures are to be continued on the next card because the number of columns per card exceeded, the continuation symbol (fifth character of CHRCOM of STARTUP, usually "$") must be used. On such card, no extra comma's are needed. With these rules, only column 27 must be determined as position information. On the other hand, a painstaking count of comma's is necessary. See section IV.C.3 (remarks) and section IV.C.4 (examples) for further usage. Supporting routine XFORMER (section XIX.A) creates punched card output in free-format notation. AR notation In some cases, the [L]-1-matrix is ill-conditionned or singular, so [L] does not exist. Therefor the AR notation is used. "A" stands for the [L] -1-matrix and "R" stands for the [R]-matrix. Switching to the AR notation can be done by the following card: 100 In this case, we use the following equation: dv = [L ]-1 v - [L ]-1 [R]i 13 dt Now we have to be carefull when punching the data in the input format. The [L]-1-matrix replaces R in the input format. In the same way, the [R]-matrix replaces L in the input format. Sequence values When using the sequence value formulation, only one card format exists: Rulebook ATP *junio 1996 - internet) H04c 5 101 Parameters Following is an explanation of the parameters used in the above card formats. A distinction should be made between phase value and sequence value usage. PHASE VALUE USAGE (NORMAL, HIGH-PRECISION OR FREE FORMAT) ITYPE: Specifies N phases by numbering 51, 52, 53, ...(50+N) in this field. N is limited up to 40. Continuation cards must have blank ITYPE fields. BUS1, BUS2: Terminal node names of the elements in the phase, indicated by the ITYPE field. Nodes may be grounded (indicated by blank field name) if desired. BUS3, BUS4: Equally to mutually coupled RLC branches, referencing can be used here. The same rules must be taken into account as typing only the node names of the first phase of the reference set in the same sequence. R, L: The numerical values of the matrices [R] and [L] are to be put in these fields. The units for R will be in ohms and for L there are two cases: - Inductance L : mH if XOPT = zero; - Reactance 2πf*L in ohms at frequency f = XOPT Remarks - Matrices [R] and [L] are symmetric, so only need to be specified on and below the diagonal. When one card is not sufficient to specify all R-L values, then continuation cards are used, with columns 1-26 left blank. The following format applies: 6 Rulebook ATP *junio 1996 - internet) H04c a) for $VINTAGE, 0: 102 b) for $VINTAGE, 1: 103 - There is no branch current output possible for this branch type. However, the branch voltage can be obtained on the first two phases (column 80 is not being used). - There is only one supporting routine that can be used to generate the data in the proper input format: Rulebook ATP *junio 1996 - internet) H04c 7 XFORMER: to derive [R] and [[Equation: omega]L] for single-phase transformers in free format, RL notation (phase value formulation). See also section XIX.A. SEQUENCE VALUES USAGE ITYPE: Specifies N phases by numbering 51, 52, 53, ...(50+N) in this field. N is limited up to 40. BUS1, BUS2: Terminal node names of the elements in the phase, indicated by the ITYPE field. Nodes may be grounded (indicated by blank field name) if desired. BUS3, BUS4: Terminal node names of the first branch (phase) of the reference set. R, L: The first card (type 51) carries the homopolar or zero sequence values (R0, L0). The second card (type 52) contains the direct or positive sequence values (R1, L1) and the R and L field of the third card has to be left blank. The units for R and L are the same as mentioned for the previous format. For L: - Inductance L : mH if XOPT = zero; - Reactance 2πf*L in ohms at frequency f = XOPT Remark - If columns 15-80 of the third and further cards for sequence values, are not left blank, the EMTP will not recognize the coupled branches as being specified with sequence values. In this case, the phase domain format will be assumed, with the result being a very unbalanced, erroneous representation. Examples Next example will show the use of normal mutually coupled RL elements. We'll use the output of the supporting routine XFORMER (see section XIX-A) which format is a high-precision and free format. C 8 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456789 0 51,H1 , , , , 0.9272618817281E-01 , 0.3493188082966E+03 , ,,,, 52,L1 , , , , -0.5411077293636E-01 , 0.2037410770117E+03 $ 0.3157657837292E-01 , 0.1189555285801E+03 , ,,,, C 1 2 3 4 5 6 7 8 C 34567890123456789012345678901234567890123456789012345678901234567890123456789 0 A second example shows the special case of sequence values: Rulebook ATP *junio 1996 - internet) 8 H04c 104 The sequence parameters for example could be: R0 = 4.5 ohm L0 = 87.6 mH C 8 1 2 R1 = 3.1 ohm L1 = 66.4 mH 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456789 0 51 N1A N2A 4.5 87.6 52 N1B N2B 3.1 66.4 53 N1C N2C C 1 2 3 4 5 6 7 8 C 34567890123456789012345678901234567890123456789012345678901234567890123456789 0 Rulebook ATP *junio 1996 - internet) H04f 1 IV.F. Branch input using "CASCADED PI" feature IV.F.1. Applications 1 GENERAL USAGE In Section IV.B we already discussed the multi-phase nominal PI-equivalent. This appeared to be a good model to simulate transient behaviour on short lines and cables. By connecting many short sections in series, keeping track of the actual transposition (if any), even a transient model for a long line can be obtained. Yet, because of the enormous memory requirements, more sophisticated models were formulated. More details can be found in section 4.2. of the Theory Book. For transient analysis, the models of section IV.D are more appropriate. For steady state (at any frequency), the CASCADED PI option dealt with in this section is a better alternative, since it is less memory consuming. On the other hand, some important limitations exist: CASCADED PI uses the long-line equivalent (not the nominal PI-equivalent). Hence, the model is only valid at one specific frequency. Accordingly, only steady state calculations (TMAX [Equation: <=] 0 on miscellaneous data card) at that specific frequency FREQCS (see IV.F.2-1: Cascaded PI header card) are honored. The frequency of the type-14 sources should have the same value as FREQCS. the user can only obtain results at the line terminals, not at the interconnection points. A representation of such a model, you can find in the figure below. 105 The mathematical modelling of this can be interpreted as follows. The components representing the line are defined sequentially as a chain, from one end (sending end) to the other (receiving end). For each such section, a longline equivalent PI is used. This data is in its turn processed as it is read, sequentially, so as to produce at any stage of the process a mathematical equivalent for all components between the sending end and the last component read. This is shown in the next figure. Rulebook ATP *junio 1996 - internet) 2 H04f 106 To represent this mathematical model, only the nodal admittance matrix [Y] is used. Hence, when input processing of the last component of the chain is completed, an admittance matrix among the terminal nodes of the lines exists, as shown in the following matrix. Y SS Y SR 14 Y RS Y RR Remarks: - The number of elements Ykm of the matrix [Y], only depends on the number of transmission lines; it is independent of the number of components which are cascaded together. - The number of cascaded components has its effect on the computational effort to produce an equivalent. Only the computer time for translating the input data to the global nodal matrix [Y] will increase with the number of cascaded components. The time figure for the steady-state solution remains the same, because finally, only one admittance matrix will be withheld. 2 SPECIFIC USAGE OF "CASCADED PI" Following rules must be taken into account when using the cascaded PI feature. 1) The first line segment of the chain of elements which are to be cascaded may not have any series or shunt connections. That is, the sending end must begin with a PI-circuit. 2) Second and later sections can each consist of up to four types of subcomponents, in the order as shown below: a) Series uncoupled R-L-C branches, if any. b) Shunt uncoupled R-L-C branches, if any. c) New line-position (transposition) specification, if any. d) specification of new (i.e. changed) PI-circuit parameter matrices [R], [L] and [C]. When using diagnostic (see benchmark DCPRINT25), the program also will generate a phasor branch admittance matrix. Only the values are obtained correctly: the format has to be modified manually according to the specifications explained in section IV.G. BEWARE: diagnostic should be activated in column 26 (overlay 3 = branch input). The minimum IPRSUP(3)-value equals three. This will give you only the final values for the phasor branch admittance matrix to be used as input (see section IV.G). A higher IPRSUP(3)-value will list all intermediate results of the section elimination too. 3 INPUT STRUCTURE In order to utilize the "CASCADED PI" modelling feature as part of an EMTP data case, the following classes of data are involved in the order indicated: Rulebook ATP *junio 1996 - internet) H04f 3 Class 1 : "CASCADED PI" header card; special request card which begins the definition process. Class 2 : Cards which specify the sending end and receiving end bus names, as well as the [R], [L] and [C] matrices which apply to the first PIcircuit. Class 3 : Line position card for the first PI-circuit, the one at the sending end of the line. Class 4 : Line position card, if any. Class 5 : Cards defining series R-L-C branches, if any. Class 6 : Cards defining shunt R-L-C banches, if any. Class 7 : Cards specifying new [R], [L] and [C] parameter matrices, if any. Class 8 : "STOP CASCADE" card, to close the definition process. Classes 1, 2, 3 and 8 are used once for the sending and receiving end of the line in question. Classes 4, 5, 6 and 7 apply to the interior of the line, to be repeated, once for each section. IV.F.2 Card formats 1 CASCADED PI HEADER CARD To begin the definition of a cascaded PI section, the following special request card must be used: 107 2 SPECIFICATION CARD OF BUS NAMES AND MATRICES [R], [L] and [C] These data cards are used to specify the sending-end and receiving-end bus names of the line as well as the [R], [L] and [C] matrices which charactarize the line or cable geometry of the first section. The format and meaning are identical to that of the conventional PI-circuit (type 1,2,3): 108 Supporting routines LINE CONSTANTS, CABLE CONSTANTS or SEMLYEN SETUP can be used as data generators. Be sure to select output that corresponds to the nominal PI (see section IV.B.). Further, be sure to run the supporting routines at the correct frequency (FREQCS on cascaded PI header card). 3 LINE POSITION CARD FOR SENDING-END SECTION 4 Rulebook ATP *junio 1996 - internet) H04f In this line position card, one can specify control parameter pertaining to the associated line section and lumped elements, only for the first segment, the beginning of the cascading process. For this, the format under section 4 will be used, specifying only the first segment. 4 LINE POSITION CARD For the other segments, the general format of the line position card, which is shown below, can be used. 109 5 SERIES R-L-C BRANCH CARD Each series R-L-C branch, connected in series with any particular conductor of the line, can be punched in the following format: 110 6 SHUNT R-L-C BRANCH CARD Series R-L-C branches may be connected in shunt between any two nodes which are either conductor nodes or intermediate axtra nodes, including local ground. Following format will be used: 111 7 CHANGE OF LINE PARAMETERS [R], [L] and [C] Rulebook ATP *junio 1996 - internet) H04f 5 During the cascading process, the line geometry can be altered if desired, which necessitates the redefinition of the matrices [R], [L] and [C]. If this is the case, the previously specified line-position card must be adapted as evaluated in section IV.F.3-4. The general format then, used for this change of line parameters, is the same format as shown in point 2 of this section, but notice the remarks in section IV.F.3-7. 8 TERMINATION OF CASCADED PI DATA The last card in the cascaded PI definition sequence is a record reading "STOP CASCADE". This card indicates the end of processing all segments making up the line which connects the sending-end and receiving-end busses. 112 IV.F.3. Parameters 1 CASCADED PI HEADER CARD CASCADED PI: Request word to indicate the beginning of processing all segments of the cascaded PI circuit. NPHCAS: The number of phases or conductors in the circuit to be cascaded. See also the remark following. FREQCS: The frequency in Hz of the sinusoidal steady-state phasor solution that is to be performed. Recall that on the miscellaneous data cards, TMAX_0 should be specified (see section IV.F.1-1: general usage). Remark: The maximum permissable number of NPHCAS is dependent upon VARDIM dimensioning (see section I-G). Execution should terminate with an overflow error message, if the user attempts to represent a line or cable having too many conductors. 2 SPECIFICATION CARD OF BUS NAMES AND MATRICES [R], [L] and [C] ITYPE: Fill out the number of phases, beginning with 1, 2, 3, etc. up to NPHCAS (see point 1 of this section). BUS1, BUS2: Node names at both ends of the circuit consisting of NPHCAS phases. Nodes may be grounded (indicated by a blank field name) if desired. See also remark 2. BUS3, BUS4: If the cascaded PI circuit we are now specifying, is identical with another previously specified cascaded PI circuit, following storagesaving option may be used: Repeat only the first node names of the reference cascaded PI circuit in the same sequence in the BUS3-BUS4 fields. Leave the R-L-C fields blank. On the second and later phases, only the node names of these phases must be specified. See also remark 3. R: Resistance value in Ohms. L: Inductance value (in mH or Ohms, depending on XOPT). - an inductance L: mH (XOPT = zero or blank) - a reactance 2[Equation: pi]f*L: ohms (XOPT = f) C: Capacitance value (in µF or µMho's, depending on COPT). - a capacitance C : µF (COPT = zero or blank) - a susceptance 2[Equation: pi]f*C: µmhos (COPT = f) Remarks: 1) Supporting routines LINE CONSTANTS or CABLE CONSTANTS can be used as data generators. Be sure to select output that corresponds to the long-line 6 Rulebook ATP *junio 1996 - internet) H04f equivalent. Further, be sure to run the supporting routines at the correct frequency (FREQCS on cascaded PI header card). 2) The node names on a particular card do not necessarily correspond to the R-L-C matrix values on the same card. The line position card takes care of the relation between bus name and R-L-C matrix values. See section IV.F.3-3. 3) When using reference cascaded PI circuits, the program will properly process the reference data with or without the CASCADED PI header card and STOP CASCADE terminator card. Care must be taken that either both or none of these cards should appear. 4) At least one of the matrices [R] and [L] must be nonzero. Matrix [C] may be zero. Specifically, [Equation: #[#r[R]#] + #s[j] omega #[#r[L]#]] must be non-singular. 5) Matrices [R], [L] and [C] are symmetric, so they are only need to be specified on and below the diagonal. The following format applies: 113 6) No branch voltage or branch current output is possible for this feature. Don't put any of these special punches in col. 80. Of course, the complete steady-state solution will show all branch flows. 3 LINE POSITION CARD FOR SENDING-END SECTION The general explanation, you can find in the following section. 4 LINE POSITION CARD DSECTJ: Specifies the total length of segments. This length is determined as a per unit length, where this unit is the base length of a line represented by the equivalent PI matrix. Example: If we have a total length of a line of 5 miles and the equivalent PI matrix is per mile, then DSECTJ = 5.0. If the equivalent PI matrix represents the total line, being 5 miles, then DSECTJ = 1.0. MULTIP: Multiplicity factor. If N identical sections are cascaded together without any transposition, then MULTIP can be set to N rather then include N line position cards. See also remark 1. MSER: Specification of series R-L-C connections. MSER = 1: this indicates that there is a R-L-C series connection for this section(s) and data for this is to follow. MSER = 0: this indicates that there is no R-L-C series connection for this section(s). Rulebook ATP *junio 1996 - internet) H04f 7 MSER = -1:this indicates that there is a R-L-C series connection for this section(s). The data from the last R-L-C series connection is to be used. See also remark 2. MBR: Specification of R-L-C shunt connections. MBR = 1: this indicates that there is a R-L-C shunt connection for this section(s) and data for this is to follow. MBR = 0: this indicates that there is no R-L-C shunt connection for this section(s). MBR = -1:this indicates that there is a R-L-C shunt connection for this section(s). The data from the last R-L-C shunt connection is to be used. MSECT: Specification of the line-section parameters R, L and C. MSECT = 0: (or blank) means old R-L-C values are used for following section(s). MSECT = 1: a new R-L-C matrix is to be read in. Phase1, Phase2, ...: Specification of line position. These numbers are a map of the position of the phases of the cascaded circuit. The sequence of the fields (phase1, phase2, phase3, ...) as they appear in this card, correspond to the order (1, 2, 3, ...) of the phases as they appear in the equivalent PI card (which specify the node names and R-L-C values). The number entered in these phase-fields is the row number of the equivalent PI matrix where this phase takes effect on the electrical properties specified by this row. Example: If phase 3 has electrical properties which are specified by the second row of the PI equivalent matrix, then number 2 must be entered in the field under "phase3" (column 33-36). See also remark 3 for further usage. Remark: 1) If MULTIP is set greater then 1 (default is 1 or blank), so that there are more then one identical sections being cascaded, then there may be series and shunt connections between these sections. However, these connections must be the same for all sections handled by this multiplicity feature. 2) Should the user desire to put the same R-L-C connection between every other (unequal) section, then this can be easily accomplished as follows: The first section preceeded by such a R-L-C series connection would have MSER=1. The next section would have MSER=0. The third section, which is to be preceeded by a R-L-C connection would have MSER=-1. 3) For 14 or less conductors, cols. 25-80 of the data card are sufficient, as shown. For 15 or more conductors, the following data spills over onto as many extra cards as are required to complete the data input. On such extra cards, columns 1-24 must be left blank and the data must be punched from column 25. 5 SERIES R-L-C BRANCH CARD ITYPE: This is the conductor number of which the R-L-C branch being defined is to be placed in series with. R: Resistance value in Ohms. L: Inductance value (in mH or Ohms, depending on XOPT). - an inductance L: mH (XOPT = zero or blank) - a reactance 2[Equation: pi]f*L: ohms (XOPT = f) C: Capacitance value (in µF or µMho's, depending on COPT). - a capacitance C : µF (COPT = zero or blank) - a susceptance 2[Equation: pi]f*C: µmhos (COPT = f) Rulebook ATP *junio 1996 - internet) 8 H04f Remark: 1) If a short circuit is desired, simply do not enter a data card of this class for that conductor. 2) If an open circuit is desired, punch field "R" of columns 27-32 with "999999", to be interpreted by the EMTP as a special flag meaning "open circuit". 3) At least one of the parameter values R, L or C must be nonzero. 4) If the branch has no R, L or even C, just leave the corresponding field blank. In case of a capacitor, the EMTP will interprete this as a short circuit, where normally a zero value capacitor has an infinite impedance. 5) The end of these kind of branches is indicated by a blank card. 6 SHUNT R-L-C BRANCH CARD N1,N2: These are the numbers of the terminal nodes between which a shunt R-L-C branch occurs. If one of the nodes of such a branch is connected to a conductor, then the number of this conductor (phase) has been used. If there are new intermediate nodes (not connected to the conductors) then negative numbers (-1, -2, ...) are used. A zero or blank is used when one wants to specify the ground. R: Resistance value in Ohms. L: Inductance value (in mH or Ohms, depending on XOPT). - an inductance L: mH (XOPT = zero or blank) - a reactance 2[Equation: pi]f*L: ohms (XOPT : f) C: Capacitance value (in µF of µMho's, depending on COPT). - a capacitance C: µF (COPT = zero or blank) - a susceptance 2[Equation: pi]f*C: µmhos (COPT = f) Remark: 1) At least one of the parameter values R, L or C must be nonzero. 2) If the branch has no R, L or even C, just leave the corresponding field blank. In case of a capacitor, the EMTP will interprete this as a short circuit, where normally a zero value capacitor has an infinite impedance. 3) The end of these kind of branches is indicated by a blank card. 7 CHANGE OF LINE PARAMETERS [R], [L] and [C] ITYPE: Fill out the number of phases, beginning with 1, 2, 3 etc. up to NPHCAS (see point 1 of this section) BUS1, BUS2: In contrast with the format of class 2, there are no node names to be specified. Leave these fields blank. BUS3, BUS4: No storage saving (referencing) is possible. These fields are also to be left blank. R: Resistance value in Ohms. L: Inductance value (in mH or Ohms, depending on XOPT). - an inductance L: mH (XOPT : zero or blank) - a reactance 2[Equation: pi]f*L: ohms (XOPT = f) C: Capacitance value (in µF or µMho's, depending on COPT). - a capacitance C: µF (COPT = zero or blank) - a susceptance 2[Equation: pi]f*C: µmhox (COPT = f) Remarks: 1) 2) If this card contain value At least one may be zero. singular. has to be added, the associated line-position card must "1" in field "MSECT". of the matrices [R] and [L] must be nonzero. Matrix [C] Specifically, [Equation: [R] + j omega [L]] must be non- Rulebook ATP *junio 1996 - internet) 3) H04f 9 Matrices [R], [L] and [C] are symmetric, so they only need to be specified on and below the diagonal. The following format applies: 114 4) No branch voltage or branch current output is possible for feature. Don't put any of these special punches in col. 80. Of course, the complete steady-state solution will show all branch flows. 8 TERMINATION OF CASCADED PI DATA STOP CASCADE: Indication that processed. all sections, making up the line, are IV.F.4. Examples In order to show the power of this feature, let us compare the input files for a given configuration: 1) manual setup (benchmark DC10) 2) cascaded PI setup (benchmark DC9 or DCP25). Remark the differences in length of the input files. Further remark that the cascaded PI setup has less memory requirements but is less flexible: in the manual setup, all intermedite nodes are accessible too!! 1 MANUAL EMTP DATA SETUP BEGIN NEW DATA CASE C BENCHMARK DC-10 C Companion to "CASCADED PI" test of C Use batch-mode solution only, since C and then the zero DELTAT will result 0.0 0.0 60. 1 1 1RA1 1A1 .877 8.40 .1628 2RB1 1B1 .747 4.14-.0252 3RC1 1C1 .735 3.47-.0067 11A1 2A1 RA1 1A1 21B1 2B1 31C1 2C1 02B1 3B1 13.1449.071 12C1 4C1 RA1 1A1 23A1 4A1 33B1 4B1 04C1 5C1 13.14 04A1 5A1 13.1449.071 04B1 5B1 4C1 5C1 05C1 5G1 2B1 3B1 05A1 5G1 2B1 3B1 05B1 5G1 2B1 3B1 5G1 5.0 13.14 15B1 6B1 RA1 1A1 preceding data case. Same answer SPY sets TMAX to nearly infinity, in an error stop. .852 .723 8.43 .1559 4.17-.0277 .829 8.46 .1571 3 1 2 10 Rulebook ATP *junio 1996 - internet) H04f 25C1 35A1 6A1 6B1 6C1 7A1 7B1 7C1 6C1 6A1 7A1 4B1 5B1 7B1 4C1 5C1 7C1 4A1 5A1 7G1 2B1 3B1 7G1 2B1 3B1 7G1 2B1 3B1 7G1 5G1 17A1 GA1 1.658 16.92 .3142 27B1 GB1 1.446 8.34-.0554 1.704 16.86 .3118 37C1 GC1 1.470 6.94-.0134 1.494 8.28-.0504 1.754 16.80 .3256 BLANK card ending branch cards BLANK card ending switch cards (none, for this problem) 14GA1 424.35 60. 0.0 -.1 14RA1 424.35 60. 10.0 -.1 14GB1 424.35 60. -120.0 -.1 14RB1 424.35 60. -110.0 -.1 14GC1 424.35 60. 120.0 -.1 14RC1 424.35 60. 130.0 -.1 C --------------+-----------------------------C From bus name | Names of all adjacent busses. C --------------+-----------------------------C RA1 |1A1 * C 1A1 |RA1 *2A1 * C RB1 |1B1 * C 1B1 |RB1 *2B1 * C RC1 |1C1 * C 1C1 |RC1 *2C1 * C 2A1 |1A1 * C 2B1 |1B1 *3B1 * C 2C1 |1C1 *4C1 * C 3B1 |2B1 *4B1 * C 4C1 |2C1 *5C1 * C 3A1 |4A1 * C Etc. (many more connections!) ..... BLANK card ending all source cards C Total network loss P-loss by summing injections = 9.311041032866E+03 C End injection: -12.95674346101 44.419110587004 -6432.468410934 9424.6247887975 C End injection: -42.48741206788 -106.9593405 -6888.171205186 -0.6825172 BLANK card ending output variable requests C Selective branch outputs follow (for column-80 keyed branches only). Any req C augmented to include branch voltage. But the converse is not true (a request C From To (======== Branch voltage Vkm = Vk - Vm =========) (== C bus K bus M Magnitude Degrees Real part Imag part Magni C 2B1 3B1 1.6180264E+03 -139.359766 -1.2277813E+03 -1.0538323E+03 3.9545 C 4C1 5C1 3.9925372E+02 -138.975087 -3.0120669E+02 -2.6206500E+02 3.0384 C 4A1 5A1 2.9415954E+00 92.386571 -1.2249239E-01 2.9390439E+00 PRINTER PLOT BLANK card ending plot cards BEGIN NEW DATA CASE BLANK 2 CASCADED PI MODELLING BEGIN C C C NEW DATA CASE BENCHMARK DC-9 Illustration of many "CASCADED PI" features. See DCPRINT-25 if any trouble, and DC-10 for comparison (same solution only manual cascade). 0.0 0.0 60. (TMAX=0.; only steady state 0 0 1 1 CASCADED PI 3 60.0 (FREQCS=60 Hz 1RA1 GA1 .877 8.40 .1628 2RB1 GB1 .747 4.14-.0252 .852 8.43 .1559 3RC1 GC1 .735 3.47-.0067 .723 4.17-.0277 .829 8.46 .1571 1.0 2 0 0 1 1 2 3 1.0 1 1 0 0 2 3 1 2 999999 3 13.1449.071 BLANK card ending first Class-5 (Series R-L-C) set of data 1.0 1 1 1 0 3 1 2 1 13.14 2 13.14 3 13.1449.071 BLANK card ending 2nd Class-5 (Series R-L-C) set of data Rulebook ATP *junio 1996 - internet) H04f 11 1 2 3 -1 13.1449.071 -1 13.1449.071 -1 13.1449.071 -1 5.0 13.14 BLANK card ending first Class-6 (Shunt R-L-C) set of data 2.0 1 -1 -1 1 1 2 3 1 .829 8.46 .1571 2 .723 4.17-.0277 .852 8.43 .1559 3 .735 3.47-.0067 .747 4.14-.0252 .877 8.40 .1628 STOP CASCADE BLANK card ending branch cards BLANK card ending switch cards (none for this problem) C All steady state sources (type-14) work at a frequency equal to FREQCS 14GA1 424.35 60. 0.0 -.1 14RA1 424.35 60. 10.0 -.1 14GB1 424.35 60. -120.0 -.1 14RB1 424.35 60. -110.0 -.1 14GC1 424.35 60. 120.0 -.1 14RC1 424.35 60. 130.0 -.1 BLANK card ending source cards C Total network loss P-loss by summing injections = 9.311041032866E+03 C 1st gen: RA1 417.90316999073 424.35 -.0131358847782 .05382578726276 C 1st gen: 73.687604192962 10.00000 .05219831324431 104.1253709 C End last gen: -12.95674346101 44.419110587004 -6432.468410934 9424.6247887975 C End last gen: -42.48741206788 -106.9593405 -6888.171205186 -0.6825172 BLANK card ending selective node voltage outputs (none for this problem) PRINTER PLOT BLANK card ending plot cards (none allowed for CASCADED PI use, actually) BEGIN NEW DATA CASE BLANK IV.G. Phasor branch [Y] input if no transient simulation General When only a phasor solution (no transient simulation) is to occur, then a branch may be described by steady-state phasor admittances. These phasor admittances are represented by the branch admittance matrix [Y]. Matrix [Y] has a row and a column for each node at each end of the branch. Hence a 3-phase branch has a 6x6 branch admittance matrix [Y]. More generally, a N-phase circuit will have a 2Nx2N [Y] matrix. The "CASCADED PI" case is the only data generator currently available to retrieve the branch admittance matrix [Y]. To see this matrix in the output, we need a DIAGNOSTIC card (column 26, with minimum value = 3) in the input of the CASCADED PI case. Beware, since the output is not immediately in the correct input format for phasor branch [Y] usage. For steady state solution, the PHASOR BRANCH option dealt with in this section is an alternative for the CASCADED PI option (of section IV.F.). Like for CASCADED PI, some important limitations exist: - the phasor branch solution uses the long-line equivalent (not the nominal PIequivalent). Hence, the model is only valid at one specific frequency. Accordingly, only steady state calculations (TMAX_0 on miscellaneous data card) at that specific frequency are honored. The frequency of the type 14-sources should have the same value as the frequency for which the phasor branch [Y] has been calculated. - the user can only obtain phasor results at the line terminals, not at the interconnection points. - when using the CASCADED PI case as a data generator, two runs are necessary: the first run results in the creation of the branch admittance matrix. The second run results in the steady state calculation. On the other hand, CASCADED PI alone was capable to give you this steady state result in one run. The steady state solution of a case will be the same, whether the final branch admittance input will be generated by the CASCADED PI representation or directly represented by the phasor branch [Y] representation. This is logical, because the branch admittance matrix [Y] will be resolved in the CASCADED PI solution too. There can be a little difference in the output results depending on whether the solution is obtained by the CASCADED PI feature or by the phasor 12 Rulebook ATP *junio 1996 - internet) H04f branch [Y] feature. The reason for this is the numerical accuracy of the matrix [Y] representation. The CASCADED PI feature has the greatest accuracy, since the matrix [Y] is calculated at high precision, during the solution process. The phasor branch option on the other hand will be less accurate since it uses a lower precision for the input format of the phasor branch admittance. Card format Again, two different formats exist: . normal format ($VINTAGE, 0) . high precision format ($VINTAGE,1) The card format to input the phasor admittances basically is the same format as used in section IV.C. (type 51,52,53). But the meaning of the parameters is entirely different. The only way the program recognizes the difference between a mutually coupled RL input and a phasor branch admittance input is the unnamed extra phases for the extra rows of the branch admittance matrix. Rulebook ATP (junio 1996 - internet) H04g 1 NORMAL CARD FORMAT ($VINTAGE, 0) 1 2 3 4 5 6 7 8 1 2 3 45 6 7 8 9 0 1 23 4 5 67 8 9 01 2 3 45 6 7 89 0 1 23 4 5 67 8 9 01 2 3 45 6 7 89 0 1 23 4 5 67 8 9 01 2 3 45 6 7 89 0 1 23 4 5 67 8 9 0 node names ITYPE BUS1 I2 reference br. elements (k, m) elements (k, m+1) elements (k, m+2) BUS2 BUS3 BUS4 TR TX TR TX TR TX A6 A6 A6 E6.2 E12.2 E6.2 E12.2 E6.2 E12.2 A6 115 HIGH PRECISION FORMAT ($VINTAGE, 1) The same format as in section IV.C. will apply here. 116 Parameters ITYPE: Specifies N phases by numbering 51, 52, 53, ...50+2*N in this field. N is limited up to 20. In case of 3 phases, the numbering will be: 51,52,53,54,55,56, since there are 6 rows. Continuation cards must have blank ITYPE fields. See also remark 4. BUS1, BUS2: Terminal node names of the elements in the phase, indicated by the ITYPE field. Nodes may be grounded (indicated by blank field name) if desired. In case of 3 phases, there will be 6 cards to be specified, but only the first three cards will contain the node names. See also remark 4. This is the only difference between the ordinary type 51,52,53 element of section IV.C. and the phasor branch admittance discussed in this section. BUS3, BUS4: Equally to mutually coupled RLC branches, referencing can be used here. The same rules must be taken into account as typing only the node names of the first phase of the reference set in the same sequence. TR, TX: These fields are occupied with the phasor branch admittance values (TR contains the real part, TX contains the imaginary part), expressed in mho and calculated at the frequency for which the steady state calculation will be performed. When the CASCADED PI feature was used as data generator, this frequency has the value FREQCS. Unlike previous cases, XOPT always should be put equal to 1/(2π), in order to avoid scaling. The value of COPT has no importance for type 51,52,53 cards. note: Rulebook ATP (junio 1996 - internet) H04g TR and TX are the table headers, as obtained by the data generator (CASCADED PI-feature, using DIAGNOSTIC output in overlay 3 (=column 26). The minimum value for IPRSUP(3) = 3). Remarks 1) Matrices [TR] and [TX] are symmetric, so only need to be specified on and below the diagonal. When one card is not sufficient to specify all TR-TX values, then continuation cards are used, with columns 1-26 left blank. The only way the program recognize the difference between a mutually coupled RL input (type 51,52,53) and the phasor branch [Y] input is the unnamed extra phases for the extra rows of the matrix. The following format applies for a 3-phase case: a) for $VINTAGE, 0: 117 2 Rulebook ATP (junio 1996 - internet) H04g 3 b) for $VINTAGE, 1: 118 2) There is no branch current output possible for this branch type. However, the branch voltage can be obtained on the first two phases (column 80 is not being used). 3) There must be added two $UNITS cards. a) The first one "$UNITS, .1591549431, 0." is mandatory whenever [Y] input is used, so loading [Y] into List-3 tables TR and TX (see diagnostic output) has been done without any scaling. In this first $UNITS card XOPT must than be equal to .1591549431 = [Equation: 1 over [2pi]], since the scaling factor should be unity. COPT can be anything, since it will not be used. Rulebook ATP (junio 1996 - internet) H04g 4 b) The second "$UNITS, -1., -1." card is needed to restore the previous values of XOPT and (less important) COPT. Example Data generator: BEGIN NEW DATA CASE C BENCHMARK DCPR-25 Diagnostic version of DIAGNOSTIC 0 0 3 0 0 0 0 0 0 0 0 {critical to generate phasor branch output 0.0 0.0 60. 0 0 1 1 CASCADED PI 3 60.0 1RA1 GA1 .877 8.40 .1628 2RB1 GB1 .747 4.14-.0252 .852 8.43 .1559 3RC1 GC1 .735 3.47-.0067 .723 4.17-.0277 .829 8.46 .1571 . . DC-9. Only the extra DIAGNOSTIC line contents and place are shown here. The remainder of this data case is the same as DC9 (already depicted in section IV.F.). Generated branch admittance output: Following is an extract of the critical portion: TR-TX table. Rows 1 through IT of List-3 parameters. ROW TR TX 1 0.4844477034482824E-08 0.1228112151516649E-03 2 -0.1296675793838051E-06 -0.2242269695795113E-04 3 0.9441753227445476E-02 -0.2573990023024946E-01 4 0.4361450614869273E-07 -0.1462537283219131E-04 5 -0.8463238089378199E-02 0.1672909357448652E-01 6 0.1659497249358986E-01 -0.4747597790440687E-01 7 -0.1496688542217182E-06 -0.9426424775643807E-05 8 0.1871363082120123E-01 -0.5030148893415707E-01 9 -0.1445905414197019E-01 0.2409757560660085E-01 10 0.4631483359447570E-01 -0.1156116986463779E-01 11 0.1496046015179719E-05 0.6458965458057214E-05 12 -0.1680598538619227E-01 0.5971717826772237E-01 13 0.1897469864840810E-01 -0.4245555564293230E-01 14 -0.3271457520858705E-01 0.3047566556753915E-01 15 0.3607139971436178E-01 -0.6062044468394332E-01 16 0.1189890175137276E-05 0.4485645277231421E-05 17 0.2094153349533659E-02 -0.2062689282010267E-01 18 -0.2240686269477380E-02 0.3689527878049555E-01 19 0.3661437796623669E-02 -0.6532394073363741E-01 20 -0.2258503629330589E-04 0.2742503620833940E-01 21 0.4854082846355038E-02 0.9939308070334987E-02 R 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 C 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 0.0000000000000000E+00 Using branch admittance as input: BEGIN NEW DATA CASE C BENCHMARK DC-11 C Illustration of data input using [Y]. Matrix comes from DC-9 (or C more precisely, DCPRINT-25, since DIAGNOSTIC is needed to see it). C Solution is close to DC-9 (remember limited input [Y] precision). C Note two $UNITS cards. The 2nd, returning to original XOPT and C COPT, does nothing, since all data input is completed. But the 1st C is mandatory whenever [Y] input is used, so input [Y] in mhos will C be loaded into List-3 tables TR and TX without any scaling. COPT is C not used, so it can be anything (zero is used below). But XOPT must C equal the reciprocal of 2 * Pi, since the scaling factor for [L] is C 2 * Pi times this frequency (.1591549431) in Hz --- which is unity. C 1st of 3 subcases. The 2nd will use alternate, wide format for [Y]. 0.0 0.0 60. { Note XOPT = 60 (never actually used), TMAX=0; only steady state 1 1 {only steady state C New XOPT, COPT = 1.59154943E-01 0.00000000E+00 |$UNITS, .1591549431, 0.0, C 1st of coupled R-L. 4.80000E-09 1.22811E-04 |51RA1 GA1 4 C -1.000E-07-2.242E-05 9.440E-03-2.574E-02 9.440E-03|52RB1 GB1 C 4.300E-08-1.463E-05-8.500E-03 1.673E-02 1.660E-02|53RC1 GC1 4 C -1.000E-07-9.426E-06 1.871E-02-5.030E-02-1.450E-02|54 C 4.631E-02-1.156E-02 3.250E-03-8.199E-02 4.631E-02| . C 1.500E-06 6.459E-06-1.680E-02 5.972E-02 1.897E-02|55 1 C -3.270E-02 3.048E-02 3.607E-02-6.062E-02 3.607E-02| - Rulebook ATP (junio 1996 - internet) H04g 5 C 1.200E-06 4.486E-06 2.090E-03-2.063E-02-2.200E-03|56 1 C 3.660E-03-6.532E-02-2.000E-05 2.742E-02 4.850E-03| . C New XOPT, COPT = 6.00000000E+01 0.00000000E+00 |$UNITS, 60., 0.0, { Restore $UNITS, .1591549431, 0.0, { Ensures no scaling of [Y] in mhos. XOPT = 1/(2*Pi) 51RA1 GA1 4.8E-9 1.22811E-04 { 1st row of 6x6 [Y] in mhos 52RB1 GB1 -1.E-7-2.24227E-05.00944-2.57399E-02 53RC1 GC1 4.3E-8-1.46254E-05-.0085 1.67291E-02.01660-4.74760E-02 54 -1.E-7-9.42642E-06.01871-5.03015E-02-.0145 2.40976E-02 .04631-1.15612E-02 55 1.5E-6 6.45897E-06-.0168 5.97172E-02.01897-4.24556E-02 -.0327 3.04757E-02.03607-6.06204E-02 56 1.2E-6 4.48565E-06.00209-2.06269E-02-.0022 3.68953E-02 .00366-6.53239E-02-2.E-5 2.74250E-02.00485 9.93931E-03 $UNITS, 60., 0.0, { Restore original values; "CIMAGE" ends scaling XUNITS = 1. BLANK card ending branch cards BLANK card ending non-existent switch cards 14GA1 424.35 60. 0.0 -.1 14RA1 424.35 60. 10.0 -.1 14GB1 424.35 60. -120.0 -.1 14RB1 424.35 60. -110.0 -.1 14GC1 424.35 60. 120.0 -.1 14RC1 424.35 60. 130.0 -.1 C --------------+-----------------------------C From bus name | Names of all adjacent busses. C --------------+-----------------------------C RA1 |GA1 * C GA1 |RA1 * C RB1 |GB1 * C GB1 |RB1 * C RC1 |GC1 * C GC1 |RC1 * C --------------+-----------------------------BLANK card ending source cards BLANK card ending non-existent output requests C Total network loss P-loss by summing injections = 9.326316227367E+03 C End injection: -12.96755041034 44.410354381177 -6429.033843309 9422.7669408263 C End injection: -42.47495983067 -106.9773628 -6888.835943954 -0.6822873 PRINTER PLOT BLANK card ending non-existent plot cards BEGIN NEW DATA CASE C 2nd of 3 subcases uses identical data to the first, only in wide format. C Answers are identical because precision of the data has not been increased. 0.0 0.0 60. { Note XOPT = 60 here --never actually used 1 1 $UNITS, .1591549431, 0.0, { Ensures no scaling of [Y] in mhos. XOPT = 1/(2*Pi) $VINTAGE, 1, { Switch to alternate, wide format in with R-L are read as R-L-C 51RA1 GA1 4.8E-9 1.22811E-04 { R, L, C as 3E16.0 52RB1 GB1 -1.E-7 -2.24227E-05 { One triplet / card .00944 -2.57399E-02 53RC1 GC1 4.3E-8 -1.46254E-05 -.0085 1.67291E-02 .01660 -4.74760E-02 54 -1.E-7 -9.42642E-06 .01871 -5.03015E-02 -.0145 2.40976E-02 .04631 -1.15612E-02 55 1.5E-6 6.45897E-06 -.0168 5.97172E-02 .01897 -4.24556E-02 -.0327 3.04757E-02 .03607 -6.06204E-02 56 1.2E-6 4.48565E-06 .00209 -2.06269E-02 -.0022 3.68953E-02 .00366 -6.53239E-02 -2.E-5 2.74250E-02 .00485 9.93931E-03 $UNITS, 60., 0.0, { Restore original values; "CIMAGE" ends scaling XUNITS = 1. $VINTAGE, 0, { Done inputing [Y], so return to original, old formats BLANK card ending branch cards BLANK card ending non-existent switch cards 14GA1 424.35 60. 0.0 -.1 {only 60Hz sources active 14RA1 424.35 60. 10.0 -.1 {during steady state!! 14GB1 424.35 60. -120.0 -.1 14RB1 424.35 60. -110.0 -.1 14GC1 424.35 60. 120.0 -.1 14RC1 424.35 60. 130.0 -.1 BLANK card ending source cards Rulebook ATP (junio 1996 - internet) H04g BLANK card ending non-existent output requests C Total network loss P-loss by summing injections = 9.326316227367E+03 C End injection: -12.96755041034 44.410354381177 -6429.033843309 9422.7669408263 C End injection: -42.47495983067 -106.9773628 -6888.835943954 -0.6822873 PRINTER PLOT BLANK card ending non-existent plot cards BEGIN NEW DATA CASE BLANK card ending all subcases Remarks: 1) TR-TX table manually should be put in the proper input format described in this section (IV.G). 2) Although the type 51,52,53 data are preceeded by a $UNITS card, data are only valid for the frequency for which they are created (value FREQCS = 60 Hz in DCPRINT25). So only type 14 - sources at that very frequency are allowed. Furthermore, only Steady state calculations at the same frequency are allowed. 6 Rulebook ATP (junio 1996 - internet) H05pic 1 V. BRANCH CARDS TO MODEL SINGLE-PHASE NONLINEAR ELEMENTS R,L H05A\5AG01 119 V-A. Type-99 Pseudo-Nonlinear Resistance R(i) H05A\5AG02 120 H05A\5AG03 121 H05A\5AG04 122 Rulebook ATP (junio 1996 - internet) H05pic 2 V-B. Type-98 Pseudo-Nonlinear Reactor L(i) H05A\5AG05 123 H05A\5AG06 124 V-C. Type-97 Staircase Time-Varying Resistance R(t) H05A\5AG07 125 H05A\5AG08 126 Rulebook ATP (junio 1996 - internet) H05pic 3 V-D. Type-96 Pseudo-Nonlinear Hysteretic Inductor L(i) H05A\5AG09 127 H05A\5AG10 128 V-E. Exponential ZnO surge arrester R(i) (type-92; "5555") H05A\5AG11 129 H05A\5AG12 Rulebook ATP (junio 1996 - internet) H05pic 4 130 H05A\5AG13 131 V-F. Type-91 Multiphase Time-Varying Resistance R(t) H05A\5AG14 132 H05A\5AG15 133 H05A\5AG16 Rulebook ATP (junio 1996 - internet) H05pic 5 134 V-G. Type-92, Multiphase, Piecewise-Linear Resistance with Flashover H05A\5AG17 135 H05A\5AG18 136 H05A\5AG19 137 V-H. Type-93 True, Nonlinear Inductance L(i) H05A\5AG20 Rulebook ATP (junio 1996 - internet) H05pic 6 138 H05A\5AG21 139 V-I. Circuit Breaker or Electric Arc Modelling using TACS-controlled R(t) H05A\5AG22 140 V-J. User-supplied FORTRAN for Nonlinear element modelling H05A\5AG23 141 Rulebook ATP (junio 1996 - internet) H05pic 7 V-K. Corona Modelling for an overhead transmission line H05K\5KG01 142 H05K\5KG02 143 Rulebook ATP (junio 1996 - internet) H11pic 1 XI CARDS FOR OVERRIDING INITIAL CONDITIONS H11\11G01 144 H11\11G02 145 H11\11G03 146 Rulebook ATP (junio 1996 - internet) H12 1 XII The Output specification cards The time response of the electric network being solved is available for the user's inspection via one of the following three procedures : - "LUNIT6-output"; tabulated decimal numbers, on the line printer. - "batch mode plotting"; be it printer plot, Calcomp plot or screen plots (highly dependent of the computer system in use; refer to section I-F for more detailed information). - "PL4-file"; can be used for later processing on printer, plotter or screen via interactive plotting programs TPPLOT and WINDOWPLOT (if such feature is provided for the computer system in use; refer to section I-F for more detailed information). The user can only look at variables for which an output request has been made as part of the simulation run. The procedure for doing this depends upon whether a conventional single deterministic simulation is involved, or on the contrary, a statistical overvoltage study is of concern. Values for voltages, currents, powers and energies are computed by the simulation part of the EMTP program at discrete time instants [Equation: t = 0, DELTA t, 2 DELTA t, ...]. Such values are then either printed on LUNIT6, (with frequency controlled by the miscellaneneous data parameter "IOUT") or they are written to disk via logical unit number 4, (with the frequency "IPLOT") for purposes of later plotting after the simulation is finished (see section II-B for details on miscellaneous parameters IOUT, IPLOT and ICAT). In both cases, any variable to be output must be specified by the user. Following output request exist : - node voltage output - branch output (branch voltage, branch current, power or energy) Let us now discuss in more detail how to obtain the required output. Node voltage output As explained in section I-I, the user must input one or more cards specifying all the node names for which he wants to have printed or plotted node voltage output. Distinction should be made between two cases: all nodes, or node selection; - If all node voltages are requested, the user should punch one specification card with a "1" in column 2. Do not terminate with a blank card. - If a selective list of the node voltages is required, the user should list the node names on one or more cards which have the first 2 columns blank. See figure. All cards must have columns 3 to 8 non-blank. The list is terminated by a blank card. Rulebook ATP (junio 1996 - internet) H12 147 Note: Only the first of the 13 potential fields per card must be non-blank. All other fields may be randomly left blank. - if no node voltages are required, just supply a single blank card. Branch or switch output Following are possible branch and switch outputs : - branch voltage (voltage difference between begin and end node) - branch current - branch power - branch power - branch energy There are two ways to request such output. The first method is to flag such output in column-80 of the branch cards at input time; hence no further specification is required at this point (see section IV for details). Another method is to request branch and switch outputs along with nodevoltage outputs. The format for this added alternate branch and switch output is as follows: 148 PARAMETERS: TY = [Equation: [Equation: [Equation: [Equation: -1 -2 -3 -4 ->] ->] ->] ->] request request request request for for for for only current output only voltage output both voltage and current output power and energy output 2 Rulebook ATP (junio 1996 - internet) H12 3 [Equation: -5 ->] request to calculate voltage differences between a pair of node names, irrespective whether or not these two nodes are actually connected via a branch A list of 6-character names of branches or switches on one or more cards, beginnning at column 3. The user can mix any branch or switch card with any node voltage output request card. One blank card is needed to terminate the specification of the EMTP output requests. Note: If the user has specified the "all node voltage" card, this card (with a "1" in column 2) must be the terminating card and no blank ending card is allowed. Following are 2 examples of the output request cards 1234567890123456789012345678901234567890.... ____________________________________________ -2BRCH1 BRCH2 BUS1 BUS4 BU9 -3BRCH5 BLANK CARD TERMINATING OUTPUT REQUEST 1234567890123456789012345678901234567890.... ____________________________________________ -1G1 F3 1 The printed heading for branch-variable output consist of a pair of node names, one above the other; This ordering (upper to lower) indicates the polarity of the output. Suppose that node "u" represent the upper node, and "l" the lower node of the pair, then: a) The branch voltage output is vul (t) = vu(t) - vl(t)] b) The branch current output is iul(t) For non-switch elements, power and energy output represent the consumption (loss or storage) of the branch and the net flow into the branch from the time t=0 up to the time in question. For switches, the power and energy flow through the switch: c) The switch power output is Pul(t) = Pu(t) - Pl(t) d) The switch energy output is ∫ Put ( ξ )d( ξ ) 15 t 0 Plotting creates no special problem, unless output for parallel branches should be requested. Nevertheless, only the first current (energy) output of the 2 parallel branches/switches is accessible to the user. As a practical restriction this limitation is not serious. One can always insert a near-zero resistance branch, thereby eliminating any parallel connection. Another method is to alter the node name sequence when specifying the branch/switch. Rulebook ATP (junio 1996 - internet) H12 4 For example, should the power P(t) and energy E(t), in addition to the branch current and voltage, be desired, the configuration shown below could be used. Resistance R2 is chosen to be "small" according with the rule concerning system-dependent minimum values (see Section IV-A). Current output (a 1-punch in column 80) is requested on the branch card for resistance R 2. Resistance R1 can be chosen very large, and branch voltage output is to be requested for it (a 2punch in column 80). The nonlinear element has a 4-punch in column 80, to give its power and energy consumption. 149 The general appearence of the tabulated time-step loop. In general, there are five possible groupings of variables for EMTP printed output of the time-step loop. In order of appearance, these are: 1) 2) 3) 4) 5) voltages (both node and branch) branch/switch currents. S.M. variables. TACS variables. U.M. variables A pair of 6-character names is used to identify each output variable, although for node voltages, the second name is blank. For branch voltages and currents the tabulated value is taken from the upper value down to the lower value. For TACS variables the first name is always "TACS". For the U.M. and S.M. the first name is internally generated and contains the number of the rotating machine. Example "UM-12" will be the first name for the 12-th U.M. "MACH-3" would be the first name of a variable belonging to the third type-59 S.M. The number of variables in each of these 5 classes of variables will be printed by the EMTP, provided the number is positive. The absence of a class total means no such ouput exists. As an example the output of benchmark DC34 is included. Column headings for the 20 EMTP output variables follow. These are divided among the 5 possible classes as follows .... First 5 output variables are electric-network voltage differences (upper voltage minus lower voltage); Next 6 output variables are branch currents (flowing from the upper node to the lower node); Final 9 output variables pertain to Type-19 U.M. components (names are generated internally); Step Time BUS-A1 BUS-B1 BUS-C1 BUS-M1 BUS-M0 BUS-A1 BUS-B1 BUS-C1 BUS-M1 BUS-M0 BUS-A0 BUS-B0 BUS-C0 TERRA TERRA BUS-M0 BUS-M1 UM-1 TQGEN UM-1 OMEGM UM-1 THETAM UM-1 IPA UM-1 IPB UM-1 IPC UM-1 IE1 UM-1 IE2 UM-1 IE3 Rulebook ATP (junio 1996 - internet) 0 0.0 1 .001 2 .002 3 .003 4 .004 5 .005 1.56413 1.01 1.25370608 1.00999974 .763603075 1.00999829 .167906931 1.00999414 -.45063432 1.00998567 -1.0090049 1.00997143 -.30745 1.00124132 .317284401 .997905631 .891559332 .994660197 1.34760378 .991231498 1.60600319 .988209557 1.64759793 .986026593 -1.25677 1.0 -1.5709433 1.0 -1.6551247 1.0 -1.5156333 1.0 -1.1551614 1.0 -.6388854 1.0 1.0 .93787 1.00000302 .93787 1.00000988 .93787 1.00001841 .93787 1.00002854 .93787 1.00003997 .93787 1.0 1.386 1.0000025 1.40049668 1.0000075 1.22097729 1.0000125 .870655506 1.00001751 .399835869 1.00002252 -.12650205 1.38494 -.95877 1.40049668 -.50888659 1.22097729 .010653511 .870655506 .528248848 .399835869 .970563338 -.12650205 1.27567094 H12 -.95793 -.42721 -.50888659 -.89163009 .010653511 -1.2316108 .528248848 -1.3989244 .970563338 -1.3703792 1.27567094 -1.1491889 -.42701 -2.826 -.89163009 -2.8259503 -1.2316108 -2.8258183 -1.3989244 -2.8248425 -1.3703792 -2.8235957 -1.1491889 -2.8218048 0.0 0.0 .012094107 .85956E-4 .015338089 .309395E-3 .018762645 .001999525 .021776117 .004025981 .023944838 .006841813 5 0.0 0.0 .010000262 -.00481942 .010001714 -.0092568 .010005857 -.01265851 .010014326 -.01505822 .010028569 -.01548173 In this example, voltages, branch/switch current and UM-output are present, but SM and TACS output are lacking. Rulebook ATP (junio 1996 - internet) H13pic 1 XIII. TYPE-1 SOURCE DEFINITIONS: EACH TIME STEP, 1 VALUE PER SOURCE H13\13G01 150 Rulebook ATP (junio 1996 - internet) H16 1 XVI.INTERACTIVE EXECUTION, OBSERVATION, AND CONTROL (SPY) Interactive EMTP execution means that the program will execute while the user waits. This is to be contrasted with batch-mode execution, wherein execution will be performed at some later (usually indeterminate) time. Interactive EMTP observation means that the user can see what is happening during his interactive execution. The user certainly should be able to observe LUNIT6 line printer output as it is generated, since this is simple. For simulations (the most important case of program usage), the user also should be able to produce graphs of output variables as the simulation progresses. Such plots should be capable of automatic advancement as the simulation progresses, like a strip-chart recorder for analog computers. Finally, the user should be able to examine internal variables of the program --- variables that otherwise would be inaccessible. All of these capabilities constitute interactive observation, which is to be contrasted with a complete lack of all knowledge during batch-mode execution. Note that interactive program execution does not imply interactive observation. It is not uncommon for a minicomputer terminal to be tied up with interactive EMTP execution while the user waits but sees nothing, since the LUNIT6 output is frequently sent to disk rather than to the screen. Interactive EMTP control means that program execution can be modified "on the fly," while the EMTP is executing. This is to be contrasted with batch-mode execution, where changes can only be made before the job submittal, or after the solution has been returned. It should be noted that interactive EMTP execution and observation do not imply interactive control. On the other hand, one can not conceive of interactive control without interactive execution and observation. These three concepts of interactive EMTP use - execution, observation, and control - are combined by the EMTP feature named "SPY" for short. SPY allows nearly complete observation, and also substantial control, during interactive EMTP execution. Such usage is requested at the time program execution begins (see Section I-C, or XVI-A below). When some summary phrase such as "interactive usage" of the program is mentioned, what does it mean? Now that observation and control are available via SPY, interactive execution no longer qualifies as "interactive usage" of the EMTP. As used today, "interactivity" and "SPY" are EMTP synonyms. Although in theory most modern computers can support most SPY functions, it is the scientific workstations with variable character fonts, scrollable windows, and graphics that are ideally suited for SPY usage. Most mainframe computers either will not allow such operation, or are controlled by organizations that make such operation so expensive or so inconvenient that it is the user who will not want to consider it. In between these two extremes, there are minicomputers that may or may not be suitable, depending upon the politics of those who operate them. Any reader who is unsure about his own computer system is advised to consult the installation-dependent information of Section I-F. Details of SPY usage follow in the remainder of this section. Where an illustration is required, Apollo will always be used, since SPY has been the most fully developed for such scientific workstations of Section I-F-1. . Initiating EMTP Execution that Includes SPY Before EMTP execution begins, the potential user of SPY should consider his STARTUP file. Section I-E-2 describes such variable initialization. Of the more than 100 parameters that are user-definable via this file, perhaps a third or more apply to SPY, and many must be set as execution begins. The best example of this is the configuration of the vector-graphic plotting window. For most Rulebook ATP (junio 1996 - internet) H16 2 computers, installation-dependent logic to configure the plot window can only be performed once, at the start of execution. So, make sure STARTUP values are reasonable before execution begins. As explained in Section I-C, SPY usage must be selected beginning of EMTP execution. An illustration using Apollo follows: $emtp EMTP begins. SPY at the very Send (SPY, file_name, DISK, HELP, GO, KEY) : The first line is merely the operating system command to execute the Apollo EMTP (a disk file named "emtp"). The second line is the program's initial output, which requests the user to choose among several options. If "SPY" is keyed at this point (see the third line), program execution that allows interactive observation, and control will begin. For this and all other EMTP dialogue involving key words of one type or another, upper-case letters (rather than lower-case) are required. But the EMTP can be requested to convert any lower-case letters to upper-case letters (see STARTUP variable KINSEN), and use of this is generally recommended. Then the user need not be concerned about case, generally speaking. For the exceptional circumstances where he really does want lower case (e.g., for the labeling of plots), he need merely append an exclamation point "!" at the end of his line. This will be erased by the program after being recognized as a request to bypass possible case conversion. Once SPY execution has begun, input will normally shift from the EMTP output window to the SPY window. Apollo provides a good illustration, as shown on the next page. Execution began in the bottom window with the small character font. The initial choice "SPY" was also sent in this window, after which the top two windows were opened automatically by the program. All subsequent keyboard input is via the SPY window (above and to the left). The window to the right of this has no input pane, and is used solely for vector-graphic output of the "PLOT" command of SPY. SPY dialogue is initiated different such commands exist, can be seen in the SPY window special SPY language that will the Rule Book. ????? Full-page Apollo screen display on this page by short key words called SPY commands. Some 68 and several of these (DATA, GO, BREAK, and PLOT) on the following page. It is the usage of this dominate the remainder of this present chapter of WSMWSM ????? In addition to such original, normal, active uses of SPY, there are newer inactive (batch mode) or specialized uses. For example, a dominant special, degenerate application of "SPY" is for the interactive plotting of a previous simulation (see Section XVI-E). Another special (and usually inactive) use is for vector-graphic plotting of the rational function fitting of either "JMARTI SETUP" (see Section XVII) or "SEMLYEN SETUP" (see Section XXII). Yet another is the monitoring of convergence of the EMTP load flow. The inactive or batch mode of SPY usage is distinguished by an absence of keyboard input to the SPY window. This might be necessary, since the SPY window of a workstation such as Apollo might not even exist prior to execution. Inactive usage is characterized by the specification of a disk file name at the same time "SPY" is keyed. An example from Apollo follows: Rulebook ATP (junio 1996 - internet) H16 3 $emtp EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) : SPY DC29. SPY @9 What is shown here is a combination of output and input at the instant the first keyboard input is to be read. The first two lines are above the input pane, whereas the last two are keyed input to be read in the future. Line 3 is a request for the inactive (batch-mode) solution of the "SEMLYEN SETUP" data case BENCHMARK DC-29. Vector plots of the propagation function and characteristic admittance fitting will be produced in the SPY plot window automatically as the execution proceeds. After the last (sixth) of these, and after much output to LUNIT6, the fourth line ("SPY#@9") will be read, and will serve to transfer the request for command-file execution ("@9") to SPY as though "@9" had been keyed in the SPY window. Opportunities for SPY Dialogue: the Keyboard Interrupt When the interactive EMTP user desires some new observation or control of the program, he will key one of these commands. At some point, this keying will be complete, and the user will want SPY to immediately service his request. Some special signal, called a keyboard interrupt of SPY, or simply a user-keyed interrupt, will exist for this purpose, and will be activated. For flexible computers (e.g., Apollo), the SPY user will not even be aware that a special keyboard interrupt signal has been sent, since the normal carriage return key (abbreviated hereafter as <CR>) serves this function. But whatever the signal, once the keyboard interrupt has been sent, how quickly can or will the EMTP respond to the user's request? The answer may depend both upon where program execution is located at the time of the request, and also upon the size of the data case being solved. Barring installation- dependent improvements, the EMTP only checks for SPY input at certain prearranged places, of which the following are the most important: 1. Each time a new data card is read by SUBROUTINE#CIMAGE. Since data cards generally will be read at a rate of several per second, it will seem to the user that SPY input is accepted instantaneously during data input. 2. Each time a new UTPF overlay is entered. Depending upon the overlay, this may or may not provide quick response to a user request. Some overlays are passed through quickly, whereas others may involve substantial computational effort. Between the end of source cards (UTPF overlay#5) and the beginning of output variable requests (UTPF overlay#15), there may be noticeable delay in responding to SPY input, then. 3. Each row of major tabular outputs of the program. Important examples are the connectivity display (controlled by miscellaneous data parameter IDOUBL of Section II-B) and the phasor branch flows and injections that follow the steady-state network solution (controlled by miscellaneous data parameter KSSOUT of Section II-B). During such outputs, the response to SPY input will appear almost instantaneous. To abort such tabular displays, a special interrupt is required. For Unix, some standard key or combination of keys (e.q., for Sun Microsystems, CTRL-\) is used. For other systems (e.g., Apollo Aegis), the user may be required to set variable KWT2ND equal to unity with a DEPOSIT command after first sending LOCK. 4. At the beginning of each of three segments making up the time-step loop of UTPF overlay 16. For a small case that simulates at a rate of one or more time steps per second, the response to SPY commands should appear Rulebook ATP (junio 1996 - internet) H16 instantaneous. But for giant cases on a weak computer, there could be noticeable delays. These opportunities for SPY input assume that SPY is not intentionally skipping some opportunities for user input. The STARTUP file does control such attentiveness by SPY in the form of variable MAXFLG, which normally should be unity. Only the experienced user is advised to tamper with this, and any changes should only be for very good reason. One such reason might be that the computer being used could involve unusually large overhead checking for keyboard interrupts, and the user might not want to slow the simulation needlessly. When using a speedy computer with adequate real memory (to minimize paging), and when the program will be checking for user-keyed interrupts several times a second, the response to SPY commands and associated data will appear to be nearly instantaneous. The user has the impression that there is time-sharing of the computer between the EMTP simulation and SPY. This is the way it should be: an illusion. In fact, there is no time-sharing at all. 4 Rulebook ATP (junio 1996 - internet) H16 5 . SPY Commands Explained According to General Function With more than 60 distinct SPY commands, the complete explanation or definition of all of these is a big job. Rather than define each SPY command individually as a dictionary might, the presentation of this section will be organized according to broader categories of summary purpose. The user who wants specific information about a single specific SPY command is referred to the program itself, since this provides such information interactively. As an illustration, consider what happens when the user first sends the SPY command "HELP", followed by the subcommand "GO" (which is SPY command number eleven): SPY: HELP Available key-word responses to the "SPY:" prompt are as follows: NAMES STOP PLOT HELP EXAMINE DEPOSIT SWITCH APPEND SAVE RESTORE GO ECHO FIND LIST SPY BREAK WHEN COMMENT @ ROLL TYPE VERIFY FILES SLEEP SOURCE UNUSED WAKE CATALOG BEGIN STEP UNUSED DATA RAMP TIME TEK BRANCH YFORM NOY FACTOR NOF RLC OS BUS SIZE LIMIT IOUT NODE NONLIN SPACE LUNIT4 SERIES LOCK [Y] [F] NOROLL $ DEBUG SM HONK HEADING TACS WAIT V-I MENU DICE FONT OVERVIEW Send "OVERVIEW" for command-independent general information. KEY-WORD OF INTEREST (ALL, NEXT, TOP, BOT, BACK, OVERVIEW): GO KEY WORD NO. 11: "GO" ---- ---- ---This command can be issued in response to the "SPY:" prompt to terminate several sequences, such as one which might have begun with "RESTORE". In this case, there would exist preceding transfers of control from overlay 16 to overlay 20 ("KATALG"), and then back to overlay 16 again. As a second example, "GO" cancels the "LOCK" command (which disables time-sharing and holds control within SPY). Third, it can be used to begin the EMTP solution following the "DATA" command (for data card input at the beginning of program execution). Finally, "GO" cancels the suspension of execution which accompanies the "SLEEP" command. KEY-WORD OF INTEREST (ALL, NEXT, TOP, BOT, BACK, OVERVIEW): Sometimes this assistance can go deeper, to a second level, in the case of certain complicated SPY commands such as "PLOT". If the display ends with another, more-specialized menu, this is what has happened. As an illustration, consider the end of description about "PLOT": This command has its own prompt, SHAFT MENU MODE DEBUG CHOICE TIMEUNITS NAME LABEL X-Y CURSOR EXTREMA LEVEL OFFSET PEAK AVERAGE RESCALE SUBCOMMAND OF INTEREST (MENU, ALL, and 32 subcommands, which follow: UNUSED SET COLUMN RESET TIMESPAN ROLLV ROLLC UNUSED FRONT SMOOTH SIZE SHOW FACTOR TIME ALL TIME DRAW FOURIER <CR>, TOP, BOT, BACK, END): The serious student of SPY really should have all such explanation available both as a disk file and in printed form. The disk file is useful for interactive searching with a computer editor program, note. Producing all such "HELP" output is simple enough (use "ALL" instead of "GO" as illustrated). But how does the user transfer such output from the screen to the disk? Unfortunately, this operation is installation-dependent, so only general guidelines can be given here. For workstations with scrollable windows (e.g., Apollo), just use "cut and paste" to create a disk file. The next-best alternative is redirection the SPY output channel to disk. For those systems that do not separate SPY dialogue from Rulebook ATP (junio 1996 - internet) H16 LUNIT6 output, this merely requires sending all LUNIT6 output to disk. For some systems (e.g., DEC#VAX), one can simply assign a file externally. For others, one can use the "DISK" option at the beginning of program execution. If the user is unsure about what to do for his own computer system, he is advised to consult with Program Maintenance. Reading about his computer in Section I-F may also be helpful. Under the assumption that the user has all "HELP" output available to him both in printed form and as a disk file, the following explanation will be organized in more general fashion, and will not repeat all of the details. Volume is simply too great ("save a tree in the Ardennes"), and content is too subject to change. Applicable to all input loops within all SPY commands is the use of "SPY" to return to the "SPY:" prompt. For example, this is the way the justdisplayed loop of "HELP" would be exited. Since this works everywhere, and is assumed to be known by all users, it is implicit. That is, it is not listed among alternative responses, generally. XVI-C-1. Loading and/or Changing EMTP Data Cards via SPY "DATA" will be the first SPY command for simple-minded usage. It tells the EMTP that the user is ready to specify an EMTP data case that next is to be solved. The following illustrates usage for the interactive solution of BENCHMARK DC-4: SPY: DATA SEND EMTP DATA FILE NAME (CONTROL) : DC4. 46 = cards read. LUNT10 limits KCARD1, KCARD2 = 5489 SPY: 5534 The user sent "DC4." (see the right side of the 2nd line), to which SPY appended the missing, implied file type "DAT". SPY then connected the disk file DC4.DAT, read the contents, and stored these 46 card images in positions 5489 through 5534 of the program data card cache (which uses LUNT10). If some different directory, disk, or even computer (of a network) were required for the file of interest, this would be required, of course. The mention of "simpleminded" is because $-cards $DISABLE and $INCLUDE are not allowed. See the next paragraph for more information about them. If "DATA" is to be the first SPY command, followed by "GO" to begin the EMTP simulation, there is a more compact and powerful way of specifying the input data file. As briefly mentioned in Section I-C, and illustrated in Section XVIA, the user could respond to the original program input prompt with a character string following his "SPY" request, separated by one space. If this does not begin with "@", it will be taken as a disk file name for an implied "DATA" command. For example, EMTP begins. Send (SPY, file_name, DISK, HELP, GO, KEY) : SPY DC4. will result in the loading of data file DC4.DAT as illustrated in the preceding paragraph, followed by an implied "GO" to begin the solution. Note that both SPY commands "DATA" and "GO" are implied (the user need not key them here). Should "@" be used, see Section XVI-C-5. The reference to "more powerful" is recognition of the fact that the "DATA" command has no logic for data modularization (Section I-K) or sorting by class (Section I-J). Such logic is limited to the opening prompt ("EMTP begins. ..."), so if it is desired or required, the user must load his data cards as just illustrated (with the file name following "SPY#"). 6 Rulebook ATP (junio 1996 - internet) XVI-C-2. H16 7 SPY Commands to Halt or Resume Program Execution "GO"##is the SPY command that will order a resumption of an EMTP simulation after it has been suspended. Since SPY begins with the simulation suspended, "GO" will be sent early in the typical SPY dialogue. "LOCK"##is the SPY command that will suspend an EMTP simulation. reawaken such a hibernating EMTP simulation, the user simply sends "GO". To "BREAK"##allows the user to request a suspension of the simulation either at some future simulation time, or at some place (some UTPF overlay) that later will be passed. When the break occurs, there will be a message in the SPY window, followed by the familiar SPY prompt, of which the following is illustrative: SPY: SPY: // Service "BREAK". T = 0.20000E+00 16 = NCHAIN At this point, the simulation will hibernate until a subsequent "GO" allows it to advance once again. In between can be arbitary SPY dialogue, of course. "STEP"##will toggle the binary flag that controls whether or not the simulation will be suspended at every possible opportunity. The main use for this is diagnostic, although it is critical to certain other applications as well (e.g., the plotting of Section XVI-E). "STOP"##will terminate EMTP execution immediately via a call to the installation-dependent ENTRY STOPTP of SUBROUTINE WINDOW. Since "STOPTP" may close files or windows in a civilized fashion that the operating system prefers, the SPY command "STOP" is the preferred way to terminate program execution of single, deterministic simulations (the most common case of interest). XVI-C-3. SPY Commands to Observe EMTP Tables: BUS, BRANCH, etc. Interactive observation using SPY poses the challenge of convenience. Although any variable of any COMMON block can be observed using the "EXAMINE" command of Section XVI-C-6, this is usually cumbersome and slow - much like symbolic debuggers of factory-supplied software. Since most EMTP data is organized using about a dozen major tables, high-level SPY commands have been implemented especially to allow the observation of such major table contents: BUS NODE BRANCH RLC SWITCH SOURCE NONLIN V-I [Y] [F] SM to observe the List-1 EMTP bus table; to produce node numbers corresponding to names; to observe the List-2 EMTP branch table; to observe the List-3 EMTP table of R, L, C; to observe the List-6 EMTP switch table; to observe either the TACS source table or the List-4 EMTP switch table; to observe the List-9 nonlinear elements; to observe the List-10 nonlinear characteristics; to observe rows of the Y-matrix of the time-step loop. The output is of nonzero columns only, one row at a time (upon request of the user). to observe rows of the triangularized Y-matrix of the time-step loop. The output is of nonzero columns only, one row at a time (upon request of the user). to observe parameters of Type-59 S.M. sources. Rulebook ATP (junio 1996 - internet) H16 There is considerable similarity in the usage of all such commands for the observation of EMTP tables. In all cases, the user enters an interactive loop in which he requests one or more additional rows or entries of the table being considered. When the user has seen enough, he sends "SPY", and the loop will be exited (there will be a return to the "SPY:" prompt). Simple table output is requested by sending a beginning and an ending row number using free-format (using a blank or comma separator). Key words are recognized alternatives, however. "ALL" will display the entire table, "TOP" will display row one, "BOT" will display the last row, "NEXT" or just a carriage return will display the following row. In order to truncate an on-going display, send the user-keyed interrupt. Several EMTP tables have too many columns for an 80-column display without wrap-around. Any such EMTP table has been split into two or more subtables among which the user can choose. Once inside the display loop for the table command of interest, sending "EXTRA" will change to the next subtable, and sending "HEAD" will refresh the current table heading. Such alternation among subtables is cyclic, so after the last subtable will come the first subtable once again. As an illustration of the observation of EMTP tables, consider the following display of the first of two "BRANCH" tables, for a modified version of BENCHMARK DC-4: Row 1 2 3 4 5 name LIN001 R-mag LIN003 LIN004 LIN005 name-K GEN TRAN TRAN LOADG GENXX name-M KBUS MBUS LGTH TRAN 4 -3 1 TERRA 3 1 1 LOADG 3 -2 1 TERRA 2 1 1 TERRA 5 1 1 NR KODEBR KODSEM LITYPE IMODEL INDHST -1 0 0 0 0 0 -2 0 0 0 0 0 -3 0 0 0 0 0 -4 0 0 0 0 0 -5 0 0 0 0 0 Not shown is the "BRANCH" command, followed by "ALL" (which would normally be seen to the right of the heading, had it not been cut off to narrow the display. XVI-C-4. "PLOT" for Vector or Character Plots During Execution The SPY command "PLOT" represents a gateway to sophisticated, on-line, interactive plotting of the ongoing simulation. Both character and vector plotting options are available. SPY plotting involves its own separate prompt and command-oriented vocabulary, as the following dialogue during entry illustrates: SPY: PLOT Time limits are [ PLOT: MENU DEBUG TIME SHAFT MODE NAME LABEL CURSOR EXTREMA PEAK AVERAGE PLOT: 0.0, .15 ] FACTOR SET COLU ROLLV LEVEL RESCALE SIZE RESET ROLLC SMOOTH ALL TIME CHOICE TIMESPAN FRONT SHOW DRAW MENU TIME UNI X-Y OFFSET FOURIER Note that the beginning and ending times of available plot data (here zero through 150 msec) are shown as plotting is entered. The "MENU" subcommand displays the 30 possible subcommands that are honored within plotting. For ease of printing, this tabulation has been narrowed to only six columns, versus eight on the screen. Note that "HELP" is not one of the subcommands. If the user wants details of any of the "PLOT" subcommands, he should exit and use the SPY "HELP" command. 8 Rulebook ATP (junio 1996 - internet) H16 9 Many parameters and conventions of SPY plotting are determined by the STARTUP file (see Section I-E-2). Since this can be either computer-, or installation-, or user-dependent, little can be said here that would be applicable to everyone. Two types of plots are possible: character plots and vector-graphic plots. It is the "MODE" subcommand that toggles the binary selection between these two. If vector plotting is available for the computer system of interest, it will normally be the beginning choice, since it should usually be preferred (due to the higher resolution). If in doubt about the default decision, consult variable LTEK of the STARTUP file (Section I-E-2). For a 3-window configuration, any character plot of SPY "PLOT" will appear in the SPY window, whereas any vector plot will appear in the separate vector plotting window. The width of the character plot can be changed by means of the "SET#COLUMN" subcommand (80 and 132-column plots are commonly used). There is no special provision within EMTP software for the production of plots on paper using the "PLOT" command of SPY. Hence such hard copy may or may not be possible, depending upon the software of the operating system that is being used, and the hardware associated with the computer monitor. For Apollo, system software provides the solution automatically. The shell command $CPSCR ("copy screen") creates a disk file of the screen image, and this can then be printed using the shell command $PRF with the -PLOT option (for bit-mapped printing). For many Tektronix users, separate hardware is connected to create a hard copy at the push of a button. Finally, conventional instant photographic cameras (e.g., Polaroid) are not uncommon. The user can exit and re-enter SPY "PLOT" without any loss of plot variables or parameters that have already been selected. This non-volatile memory is to be contrasted with that of early versions of the separate interactive plotting program "TPPLOT" (including the BPA version through May of 1987). Another difference from the separate interactive plotting program "TPPLOT" is that no plot file need be specified. When one uses SPY "PLOT", it is only the data already stored in the program's plot buffer that can be plotted. Hence the familiar specification of a disk file of interest is dispensed with (except for the exceptional case of Section XVI-E). There are several binary control parameters that can be toggled between the two possible states using key words. The revised status of such variables is illustrated by a single standard message in which the function is summarized within parentheses on the right. As an illustration, the first input of "EXTREMA" will result in the program response: --- Toggle to "ON" (extrema display) Later, when such output of maxima and minima is turned off by means of a second such request, the program will acknowledge the change as follows: --Although a practice. little Toggle to abbreviated, "OFF" this (extrema display) should be clear enough after a little All users will specify variables to be plotted, and it is the "NAME" subcommand that begins such input. Once this input begins, it operates in similar fashion to the separate plotting program "TPPLOT", with three loops. Node voltages must be specified first, then branch voltages, and finally, branch currents, corresponding to the three major classes of batch-mode EMTP plotting. Rulebook ATP (junio 1996 - internet) H16 One class is terminated by "END", at which point input changes to the following class of input, if any remains. An illustration of the three different prompts for the three different classes of variables follows: PLOT: NAME SEND NODE NAME (END, LAST) [ "JDAYA " ] : SEND BRANCH VOLTAGE NAMES (END, LAST) [ HOMA , NEUTRL SEND BRANCH CURRENT NAMES (END, LAST) [ NEUTRL, ] : ] : Within square brackets are shown existing variables that can be reused, if desired (a <CR> rather than a nonblank response will do this). After the last variable has been specified via such input, "LAST" will end all such input and return to the "PLOT:" prompt. In case the user wants a list of the available plot variables, he can use the subcommand "CHOICE". The following is illustrative: PLOT: CHOICE Type-4 entries (node voltages) : GEN TRAN GENXX Type-8 entries (branch voltages or powers) : GEN TRAN TRAN TRAN LOADG Type-9 entries (branch currents or energies) : TRAN GEN TRAN TRAN LOADG There normally will be a need for manual variable scaling only if a single plot is to mix different types of EMTP variables (e.g., both voltages and currents), or variables of the same type but variables that have been drawn from different sides of a transformer. This is because of the wide variation of the numbers that are involved involved. Well, not only can the user scale plot variables linearly (via the "FACTOR" subcommand), but he also can provide a constant offset if desired (via the "OFFSET" subcommand). The two prompts associated with these options appear as follows, and should be self-explanatory: PLOT: FACTOR SEND VECTOR OF MULTIPLIERS, separated by "," PLOT: OFFSET SEND VECTOR OF OFFSETS, separated by "," : : In order to cancel any such usage, and return to the natural, initial scaling, use the "RESCALE" subcommand. Plot labeling is optional. If wanted, the "LABEL" subcommand will result in prompts for a 1-line super title, a 1-line vertical axis label, and finally, a multi-line case title. Unless the computer being used provides a large vector plotting window, the multi-line case title will generally be dispensed with (just send "END" in response to the third prompt). For the record, the three prompts follow: PLOT: LABEL SEND SUPER-TITLE [Sample 1-line su...] : SEND VERTICAL AXIS LABEL [Voltage in kV SEND CASE-TITLE LINE 1 [ ...] : ...] : Much as for the preceding "NAME" command, the beginnings of old definitions are shown within square brackets. If these are to be reused, they can be accepted by a simple <CR>. Those who do want to use the case title are referred to the "HELP" command for details of display (the "PLAYBACK" subcommand) and selective modification (some lines can be accepted without change whereas others are changed). 10 Rulebook ATP (junio 1996 - internet) H16 11 Vertical axis scaling (and limits) will normally be determined automatically by the program. But there are times when a user will want to override this by manual selection, and the "PEAK" subcommand serves this purpose. A typical subsequent prompt would be: VERTICAL MIN & MAX [ -0.800E+02 0.800E+02 ] : where the existing Y-axis minimum and maximum are shown within square brackets. The first such usage will switch from automatic scaling to fixed scaling. Send "0,0" to cancel previous manually-specified limits, and thereby return to the original automatic scaling of the vertical axis. The request to actually produce a plot takes the form of a specification of a time interval of interest, (t-beg, t-end). It is possible to do this in several ways. First, the "TIME" subcommand will result in a prompt for such an interval. A second choice is the use of "ALL#TIME", which will simply produce a plot using all available data. A third option is "FRONT", which is designed to plot only the most recently-produced points. For convenience, the user can append the required parameters to these commands, thereby bypassing the subsequent prompt for them. For example, "TIME#0#50" is a request to produce a plot over the time range (0,#50), and "FRONT#20" will produce a plot of only the most recent 20 time units of data. A fourth alternative is "DRAW", which just reuses the times of the preceding plot, whatever they may be. Choice of the time units for a plot is under user control via the "TIMEUNITS" subcommand, to which the user will add the appropriate integer code exactly as is used for batch-mode plotting (e.g., "4" for milliseconds, etc.). If no such change is made, the time units will be installation- dependent, as set within the STARTUP file (variables IHS and TIMULT). In case the resulting plot is seen to involve consecutive, saw-toothed oscillation, perhaps succeeded by a smooth trajectory down the middle, there may be a need to change the control over the averaging of successive ordinates. The "AVERAGE" subcommand allows for the change in the number of consecutive ups and downs before automatic averaging is instituted. Parameter NSMTH is involved, with the initial value set by the installation-dependent STARTUP file. "ROLLV"##and##"ROLLC"##are used to turn vector and character plots, respectively, into strip-chart recorders that will "roll" automatically along with the simulation time. Which command is appropriate will depend upon which mode of plotting is in use ("MODE" chooses between the two). Normally, the "ROLLV" or "ROLLC" subcommand will be the last input to plotting before a return to "SPY:" prompt (by sending "SPY" in response to the "PLOT:" prompt). Remember that the time scale of the subsequent rolling plot will be determined by the last plot before the roll command, so this should be chosen carefully. As for other attributes of the rolling plot, some can be changed on the outside using the "TEK" command of SPY. The prompt will appear as follows: SPY: TEK >< To tamper with the ROLLing vector plot, send >< OPTION (MARK, DELAY, PLOT, OVERLAP, MENU) : choice. For a quick summary of the options shown, send "MENU". The subcommand "MARK" will immediately identify the curves by applying the appropriate letters ("a", "b", etc.). Use "OVERLAP" to modify the overlap between successive pages of the continuing plot (parameter OVRLAP of the STARTUP file). "DELAY" allows modification of the size of the buffer that controls relative instantaneity of the rolling plot (parameter KSLOWR of the STARTUP file). Finally, "PLOT" transfers the user to the "PLOT:" prompt of "PLOT" --plenty of rope with which the user can hang himself (be careful of this one). So Rulebook ATP (junio 1996 - internet) much for the SPY command plot from the outside is H16 "TEK". Yet another SPY command that controls a rolling "NOROLL" (to terminate the rolling). "SMOOTH"##is used to modify the tolerance TOLRCE that allows for the discarding of plot points. The initial value is installation-dependent, since it comes from the STARTUP file. "EXTREMA"##and##"LEVEL"##are not really a logical part of plotting, since plots are unaffected by these subcommands. But because implementation of the associated functions was much easier inside of "PLOT" than it would have been on the outside, these two commands are subcommands of "PLOT" rather than SPY commands. At issue is the interactive tabulation of minima and maximum (in the case of "EXTREMA") or level crossings (in the case of "LEVEL") of plot variables over the time range of interest. Normally there is no such output. Sending either command will toggle the associated binary switch that controls such tabular output prior to a plot. An illustration of the "EXTREMA" table follows: MPLOT 4 2 9 Name-1 GEN TRAN TRAN Name-2 LOADG Minimum -6.92995E+01 -5.98629E+01 -2.02090E-01 Maximum 7.00000E+01 6.47100E+01 2.49046E-01 T of min 3.00000E+00 3.00000E+00 3.00000E+00 Actually, one column is missing on the right due to lack of space --- a column entitled "T#of#max" (the time of the maximum). As for the first column, the magnitude gives the variable number in the output vector, and any minus sign means a reversal of polarity compared with the output vector. The display of "LEVEL" is transposed compared with this, with unlabeled columns corresponding to the plot variables. For the same three plot variables just shown, an illustration follows: Levels sought : 1st hit time : 1.50000E+00 1.54935E+00 -2.00000E+00 7.11894E-01 3.14000E-01 -9.99900E+03 "FOURIER"##is the gateway to interactive Fourier series computation. The basic mathematics and assumptions are identical to those of the "FOURIER#ON" option of batch-mode EMTP plotting (see Section XIV). Even the printed results will be the same: a table of harmonic content in the LUNIT6 window. But instead of the specification of parameters via a batch-mode plot card, within SPY "PLOT" the controls are interactive, via the keyboard. Also, at the end of any such interactive Fourier computation, the user can interactively plot the magnitudes of complex harmonics as a function of frequency in the form of a bar chart. This requires vector plotting, however (see "MODE"). One simple restriction to the use of "FOURIER" is that only one plot variable is allowed (i.e., the user can only find the harmonic content of a single signal at any one time). There are three prompts within the "FOURIER" subcommand, and this might be shown as minimal documentation: SEND T-beg, FREQ [ 0.0, 60. ] (END, PLOT, LIMIT) : SEND H-beg, H-end (END, <CR>) [ 0 9 ] : SEND V-max (<CR>, 0) [ 0.00000000E+00 ] : The first of these seeks to identify the cycle of interest in terms of a beginning time and the frequency. There may be a slight delay following the answer to this first prompt, as the Fourier series is computed, and the harmonic table is displayed in the LUNIT6 window. The second prompt asks for the beginning and ending harmonic numbers for the bar chart. If the user wants no such plot, he sends "END" to return to the first prompt. To exit the first prompt, use "END", which will return to the "PLOT:" prompt. The third and final prompt requests vertical-axis scaling information for the bar chart. 12 Rulebook ATP (junio 1996 - internet) H16 13 Provided the signal frequency is equal to the power frequency, and the first ten harmonics scaled to fill the vector plot window provide an adequate display, three carriage returns (<CR>) will respond to these three prompts. The use of "SPY" to exit is not recommended, since it may leave certain control parameters in an unnatural state, thereby adulterating the memory of "PLOT" (in case the user wants subsequent graphs). It is good practice to exit the Fourier computation using "END" ... always. "SHAFT"##is the gateway to interactive analysis of the loss-of-life of a generator shaft due to an applied torque. It is a new plotting function that is still undergoing experimentation and modification, so is not recommended for the general public. But the general operation is easy enough to summarize. Shaft torques can be predicted by the dynamic modeling of rotating machinery (see Sections VIII and IX), so such a signal is assumed to be available for plotting in the output vector when "SHAFT" is requested. Just as with "FOURIER", only one output variable can be analyzed at any one time, and the shaft analysis is provided in lieu of a plot. Normally the user will plot the torque first. Then, having that picture in front of him, he will request a second pass of the same data, during which loss of life is computed. With all diagnostic turned off, the result will be a single summary message in the LUNIT6 window having the following form: End of loss-of-life calculation for generator shaft torque. TOTLOL = 0.00000000E+00 Data used for this fatigue calculation follows. The number of points of the fatigue curve, which came from disk file SHAFT.DAT, is NPTLOL = 3. The torque tolerance (for ignoring relative extrema) is EPSLOL = 1.00000000E+01. The fatigue curve itself, (TORQUE(J), CYCLES(J), J=1, NPTLOL), follows: 1.00000E+05 1.00000E+00 1.00000E+03 1.00000E+01 1.00000E+00 1.00000E+02 As suggested by this output, there is an internal connection of a disk file named SHAFT.DAT, which must contain data describing the shaft of interest. This use of a fixed name and fixed I/O channel are temporary restrictions only, as experimentation continues. Once production usage begins, this can be generalized. But for now, the single disk file SHAFT.DAT must apply to the torque of interest, and it must begin with one miscellaneous data card containing two parameters: D13 (columns 1-8) EPSLOL is the torque scaling factor, with blank or zero is taken as unity; (columns 9-16) is the torque tolerance below which excursions are ignored. This first card is to be followed by the torque-cycles characteristic. consists of one point (a pair of numbers) per card, read as 2E16.0 data: TORQUE CYCLES This (columns 1-16) is the torque value of the next point on the loss-of-life characteristic; (columns 17-32) is the associated number of cycles to crack at this level of oscillation. Both of these values will always be positive. This characteristic is to be defined for monatonically-increasing TORQUE, for which the associated CYCLES value should be monatonically decreasing. The characteristic is to be terminated by a card with TORQUE = 9999. Rulebook ATP (junio 1996 - internet) H16 "X-Y#PLOT"##toggles the binary control variable that chooses between normal plotting as a function of time and the plotting of one variable against the other as time increases. Since the program begins with normal plotting, the first such use is a switch to X-Y plotting. For those with vector plotting capability, X-Y plotting should be possible. But there is not yet any such capability for the character mode of plotting. It could be provided upon demand, but thus far there has been no demand. Immediately after the switch to X-Y plotting, there will be a prompt for a horizontal axis title. The following illustrates this: PLOT: X-Y PLOT --- Toggle to "ON" SEND X-AXIS LABEL [ (X-Y plotting) ...] : The only other difference from a conventional plot will occur after the time span of interest is specified. At this point, the user will be prompted for limits of both the horizontal and vertical axes before the plot is produced. The following is illustrative: PLOT: TIME 0 4 REVISE X-min, REVISE Y-min, X-max Y-max [ ] (OLD) : -100 100 [ ] : -100 100 "CURSOR"##is the gateway to logic that allows for the experimental determination of ordinates and slopes of curves using some pointing and marking device. The logic was originally developed for the Tektronix 4014, which had horizontal and vertical lines ("cross hairs") that could be accurately positioned using two thumbwheels. Do not attempt to use this feature unless it is known that the capability has been implemented for the computer and vector-graphic display device of interest. XVI-C-5. Command Files: @K, FILES, COMMENT, VERIFY, TYPE Much the way modern computer operating systems allow interactive user commands to be built into disk files for execution as a group, so SPY allows the modularization of commands. Disk files of spy commands will be called "command files" (following the DEC VAX/VMS name). Such command files can be executed by preceding an identification of the file by the "@" symbol (again modeled after VAX/VMS). Alternatively, there is a batch-mode connection to such files, too (see $SPY of Section XVI-D). There are ten special, reserved command files that can be accessed by a single decimal digit (variable from 0 through 9). This is quicker than keying a typical file name. To check on the existence of one or more of these, use the "FILES" command, of which the following is an example: SPY: FILE File number : INCLSPY?.DAT: 1 X 2 X 3 X 4 5 X 6 7 X 8 X 9 0 X An "X" indicates existance of a given file, whereas a blank indicates nonexistence. This display also shows the real name of the disk files (the 5th would be named INCLSPY5.DAT). Command files can in fact be memory-stored rather than disk-stored, and this provides for faster input in case of repetive input (looping within the file, via the subcommand "GOTO" of the SPY command "APPEND"). One way to load card images from Disk to memory (the LUNT10 program card cache) is via the "COPY" sub-sub-command of the "CARD" subcommand of the "SPACE" command of SPY. Once in memory, a command file is executed by appending a slash ("/") in front of the file identification, and using a LUNT10 card index for the file identification. 14 Rulebook ATP (junio 1996 - internet) H16 15 For example, whereas "@2" will execute the disk-stored, second special command file (shown in the next paragraph), "@/6350" is the command to execute whatever command file begins in card number 6350 of the EMTP card cache (LUNT10). Although the input from most disk-stored command files will continue until an end-of-file is encountered (at which point control will be returned to the keyboard), a software end-of-file is also possible. This is simple enough: "EOF" in columns 1-3 of a command line. Such usage is mandatory in the case of memory-stored command files, of course. Usage of command files can not be nested (i.e., no such command file can itself contain an "@" command). But other user aids are allowed, including EMTP comment cards ("C#"). The SPY "COMMENT" command controls whether or not such lines are seen in the SPY window (the initial choice is for such echoing). In-line comments are also allowed, and are to be encouraged (they make the sequence of commands much more understandable to a human). The Apollo symbol "{" has been reserved for this role --- to mark the place where all input records will be truncated. For an example of such usage, see INCLSPY2.DAT in the next paragraph. In case the user is so sure of the correctness of both his program and his command file that he does not want to see commands as they are executed, he can use the command "VERIFY", which toggles the binary switch that controls such output. Finally, a pounds sign ("@#") can be used for reserved blanks, should such be needed. When a command file ends (usually when input is halted by a hardware end-offile, although the software construct "EOF" will accomplish the same termination), control is returned to the keyboard. But where? What should the prompt be? Because SPY is not smart enough to remember, it simply displays a good guess, namely the frequent "SPY:" prompt. Just remember that this may or may not be correct, depending upon where SPY control was at the instant data of the command file was exhausted. There may be one erroneous prompt. If "@" is to be the first SPY command, there is a more compact way of of beginning execution. As briefly mentioned in Section I-C, and illustrated in Section XVI-A, the user could respond to the original program input prompt with a character string following his "SPY" request, separated by one space. If the appendage begins with "@", it will be taken as input to SPY rather than a file name (as previously described in Section XVI-C-1). For example, EMTP begins. SPY @3 Send (SPY, file_name, DISK, HELP, GO, KEY) : is the same as first sending only "SPY", and then subsequently sending "@3" to SPY (for Apollo, this would be keyed in the separate SPY input window pane). "TYPE"##allows for the inspection of a command file before that file is executed. Actually, any ASCII disk file can so be inspected, including EMTP data files. But the most common use will be for command files. If there is any question about the content of a command file, it is better to find out before execution (i.e., before it may be too late to make a correction). An illustration of such usage follows: SPY: Line Line Line Line Line Line SPY: TYPE 2 1 : C Begin INCLSPY2.DAT SPY command file that illustrates 2 : C the use of an argument (albeit trivial). 3 : HELP 4 : %%%%%%%% { Argument is to be the SPY command of interest 5 : SPY { Exit the "HELP" command, returning to "SPY:" 6 : C Bottom of INCLSPY2.DAT; EOF comes next Rulebook ATP (junio 1996 - internet) H16 Note the argument (the 8 percent signs on line 4). If the user wants to obtain information about the "PLOT" command of SPY, he need only send "@2#HELP". This is particularly useful if the user has access to just a single terminal of a time-shared computer. For a more flexible workstation such as Apollo, the utility is limited because the operating system provides for multitasking, and the user could independently view the file via the system editor. As just illustrated, parameters or arguments of command files are allowed. Free-format input is used, with a comma (",") separator in the case of two or more. Temporary restrictions include a length limitation of 8 bytes for each argument, a maximum of 10 arguments, and a line length (for the "@" command) of not more than 80 columns. Within the command file, usage of arguments is marked by strings of eight percent signs ("%"). Of course, there must be a one-for-one correspondance between the arguments of the call (the "@" command) and the "% %%%%%%%" fields within the command file. XVI-C-6. EMTP Variables: EXAMINE, NAMES, ROLL, LIST, FIND, DEPOSIT Somewhat analogous to "symbolic debuggers" of modern computer systems, SPY can observe or modify any variable of EMTP tables of the solution overlays. It is the "EXAMINE" and "DEPOSIT" commands of SPY that allow this. Yet there are two fundamental differences: 1) the simulation can not be halted at an arbitary line of an arbitrary subroutine, and 2) only variables that are stored in COMMON blocks (not local variables) are accessible. In order to find where variables are stored, and what the names are, the commands "LIST" and "FIND" have been provided. The "EXAMINE" command began with keyboard orientation, but has since been converted into a structure that is better adapted for use within command files. For workstations having windows, this is no handicap, since a command file can be edited at the same time the program is executed. Specific rules of usage for "EXAMINE" could be figured out from the "HELP" text, of course. But for the casual user who wants to begin operation rapidly, it is easier just to copy and modify some established command file that already uses the feature. As an illustration, consider INCLSPY1.DAT, which contains considerable explanatory annotation. Most of this concerns definition of the variables that are to be observed ("EXAMINE" input). At the end, there is the command to display the variables ("NAMES"): C Begin EXAMINE CUT 0 ADD ISTEP TMAX LUNIT4 T NCHAIN TWOPI END TABLE FORM 1 6 2 8 3 7 -6 SHOW END INCLSPY1.DAT by building a fixed debugging table This SPY command enters the world of "EXAMINE" choices Reset table length to zero (in case of previous usage) Go into "append mode", adding to bottom of "EXAMINE" table First EMTP COMMON variable to be placed in "EXAMINE" table 2nd EMTP COMMON variable .... 3rd EMTP COMMON variable ... 4th EMTP COMMON variable .... 5th EMTP COMMON variable .... 6th EMTP COMMON variable .... Exit loop over EMTP variable names (back to choices) Display all variables of "EXAMINE" table now defined Process entries of "EXAMINE" table, so ready for later use 1st variable is to have its width expanded to 6 columns 2nd variable is to have its width expanded to 8 columns 3rd through 6th variables ..... expanded to 7 columns Confirm that these 5 modifications have been made correctly Break out of "FORM" loop, moving back to "EXAMINE" choices 16 Rulebook ATP (junio 1996 - internet) H16 17 SPY Back to "SPY:" prompt (done with "EXAMINE" usage) NAMES Display heading for variables, followed by current values C That's all there is; EOF comes next; Exit INCLSPY1.DAT next. Since the in-line comments explain most of this, such description will not be repeated here. However, this says little about the different SPY prompts to which these lines are responses. The result of "@2" should document the prompts better than words: SPY: EXAMINE CHOICE (TABLE, WIDTH, CUT, NEW, ADD, COPY, FORM, SHOW) : CUT 0 CHOICE (TABLE, WIDTH, CUT, NEW, ADD, COPY, FORM, SHOW) : ADD SEND EMTP VARIABLE: ISTEP SEND EMTP VARIABLE: TMAX SEND EMTP VARIABLE: LUNIT4 SEND EMTP VARIABLE: T SEND EMTP VARIABLE: NCHAIN SEND EMTP VARIABLE: TWOPI SEND EMTP VARIABLE: END CHOICE (TABLE, WIDTH, CUT, NEW, ADD, COPY, FORM, SHOW) : TABLE Row Name INTOUT LOCOUT IMIN IMAX 6 = NUMEX 1 ISTEP 1 45 1 1 2 TMAX 0 20 1 1 3 LUNIT4 1 119 1 1 4 T 0 18 1 1 5 NCHAIN 1 77 1 1 6 TWOPI 0 19 1 1 CHOICE (TABLE, WIDTH, CUT, NEW, ADD, COPY, FORM, SHOW) : FORM Triplets of (index, width, text). NUMEX = 6. 1 5 ISTEP 2 6 TMAX 3 6 LUNIT4 4 6 T 5 6 NCHAIN 6 6 TWOPI SEND K-index, K-width (END, SHOW; "-KEND use") : 1 6 SEND K-index, K-width (END, SHOW; "-KEND use") : 2 8 SEND K-index, K-width (END, SHOW; "-KEND use") : 3 7 -6 SEND K-index, K-width (END, SHOW; "-KEND use") : SHOW Triplets of (index, width, text). NUMEX = 6. 1 6 ISTEP 2 8 TMAX 3 7 LUNIT4 4 7 T 5 7 NCHAIN 6 7 TWOPI SEND K-index, K-width (END, SHOW; "-KEND use") : END CHOICE (TABLE, WIDTH, CUT, NEW, ADD, COPY, FORM, SHOW) : SPY SPY: NAMES ISTEP TMAX LUNIT4 T NCHAIN TWOPI 79 .1E20 -4 3.95 18 6.2832 { 1} It is only the final two lines that normally would be of interest to the user: output of the "NAMES" command. These show that the simulation is on time step number ISTEP#=#79, which corresponds to simulation time T#=#3.95 seconds. The end-time of the simulation will never be reached (TMAX = 1.E19 is set internally for all SPY usage). The overlay number NCHAIN is 18 (within the time-step loop), variable TWOPI is hardly a surprise, and LUNIT4 being negative means that plot data points are being held in memory rather than being written to I/O unit number LUNIT4. The number "1" within braces on the right is a line number. Here, only a single line was required, but for more variables, two or more lines might be required. SPY provides for this automatically. After the variable definition of "EXAMINE", the user can request the display of variable values at any later time. As already seen, this is done by the SPY command "NAMES", which results in a display of the variable headings as well as the current variable values. If only current variable values are wanted, a <CR> should be used instead. A final variation of observation is provided Rulebook ATP (junio 1996 - internet) H16 by the SPY command "ROLL", which "continuously" (at every SPY opportunity) watches the output variables, and only produces an output if one or more variables has changed since the last check. If one of the variables being examined is expected to change every time step, beware (the output can be fast and voluminous)! To cancel such "ROLL" operation, use "NOROLL" (which also will cancel any rolling plotting). Numbers of the "EXAMINE" output are optimally encoded within the available, user-controlled space. It is input to the "FORM" subcommand that defines the column width. So, if 12 decimal digits were wanted for TWOPI instead of the five that are shown, this could have been requested. The ability to tailor output precision to user needs is a powerful feature of the new "EXAMINE". Another advantage is the ability to make selective changes (e.g., a correction) without redefining the whole display. The "LIST" and "FIND" commands are useful in determining what the available variable names are, and where such data is stored in the computer memory. Consider first several lines of a representative "LIST" display: SPY: LIST Row Number 10 11 12 Symbol Word Name Address TCLOCK 1204348 ABUFF 1187434 CI1 1201032 Vector? (Yes=1) 1 0 0 Ascii? (Yes=1) 1 80 0 Next : 10,12 687 Symbols : The heading (lines 2 and 3) shows that 687 distinct symbols are available to the user. Had the user sent "ALL" instead of "10,12" in response to the prompt of the heading, he would have received all 687 rows instead of just rows 10 through 12. The "Word Address" column shows the result of memory location function "LOCINT" applied to the symbol in question. The next column distinguishes between vectors and scalars (note that only TCLOCK is a vector). Finally, there is a distinction between numeric and CHARACTER variables. The zero for CI1 signifies a numeric variable, whereas the unity of TCLOCK is a special positive symbol indicating ALPHANUMERIC (A6) usage. Positive values other than the special value of unity are byte lengths (note that ABUFF is for 80-column card images). But what if the user does not know where a symbol of interest is located? The "FIND" command will locate the row number, as shown by the following example: SPY: FIND Symbol index 11 657 Word address 1187434 1133096 Address change 1187434 -54338 Next symbol : ABUFF : KODEBR : The output is produced one row at a time, as the user requests a different symbol. The first request was for ABUFF, note, and the second was for KODEBR. The wild card "*" is honored here much as it is for VAX/VMS directory commands. So, if the user wanted to find all symbols that contained the character string "BUS", he should key "*BUS*". "DEPOSIT"##allows the user to change the contents of any cell of the EMTP tables. Of course, some changes to EMTP variables will be common enough that special code has been written for that purpose. An example is the SPY command "IOUT", which shows the user the current value of this variable at the same time it prompts him for a revised value. If such a dedicated command exists, and will perform the desired modification, it is preferable. But often no such specialized command exists, in which case "DEPOSIT" must be used. 18 Rulebook ATP (junio 1996 - internet) H16 19 Just as with "EXAMINE", the memory location or locations of interest are identified to "DEPOSIT" by means of a symbol name and a subscript range (allowing vector deposits). There is a lot of power here, so the user should be careful. Those who do not know much about the internal workings of the EMTP really should use this tool only after having been advised by some EMTP expert. In any case, an illustration follows: SPY: DEPOSIT SEND EMTP VARIABLE: IPRSUP=9 SEND EMTP VARIABLE: VOLTI(3:5)=0.0 SEND EMTP VARIABLE: Two operations are shown here: first a scalar change, and second a vector change (zeroing cells 3 through 5 of vector VOLTI). While most commonly subscripts will only be applied to a vector, no such program restriction exists. For example, if the user wants to see what integer is located one word beyond the scalar IPRSUP, he could examine IPRSUP(2). This works with either "EXAMINE" or "DEPOSIT". XVI-C-7. Table Dumping/Restoring: SAVE, RESTORE, SLEEP, WAKE, WHEN Table dumping is the saving of every state variable of an ongoing EMTP simulation. The subsequent reloading of the copy of variables into original locations in memory is called table restoration. Such table dumping and restoration can be accomplished interactively using the "SAVE" and "RESTORE" commands of SPY, which allow the user to back up time on the simulation clock (assuming that simulation time will advance between the time of saving and the time of restoration). Any interactive simulation that involves the repetitive solution of the same basic problem, only with some parameter (e.g., some control system gain) altered between successive solutions, will normally require such table dumping and restoring. After table restoration, but before the simulation is actually restared, the user normally will modify EMTP variables somehow (e.g., using the "DEPOSIT" command of SPY). After all, the user normally has no interest in solving the identical same problem twice. The just-mentioned "SAVE" and "RESTORE" commands of SPY are for use during a single program execution. The resulting storage of EMTP tables is volatile, and it will disappear if either execution is terminated, or if the computer crashes. Should the user want to save tables permanently, then it is the SPY "SLEEP" command that he should use. This is nothing more than an interactive connection to the batch-mode feature involving integer miscellaneous data parameter MEMSAV#=#1 (see Section II-B). To restart such a sleeping EMTP simulation, use the SPY "WAKE" command, which is the interactive equivalent of the batch-mode "START#AGAIN" request (see Section II-A). The "WHEN" command allows the user to delay table saving or restoring until some later, user-specified time. The user merely follows the request word by the time T-when in seconds, separated by one or more blanks. The following illustration is typical: SPY: when .150 Time of "SAVE/RESTORE" changed from 0.00000000E+00 to 1.50000000E-01 Note that the user keyed the command in lower-case, which was acceptable because KINSEN#=#1 of the STARTUP file instructs the program to convert all lower case to upper case. The confirmation line shows both the old and new values for the time of table handling T-when. The initialization value of zero (meaning no delay for table handling) will always be in effect unless the user modifies it as in this example. Rulebook ATP (junio 1996 - internet) H16 Illustrative usage of "SAVE" and "RESTORE" can be found in standard SPY command file number 3, which runs itself. Just send "@3" in the SPY window at the first opportunity, and sit back and watch the show. Just remember that it is an illustration, not a practical application: no variables are altered following table restoration. The speed of table dumping and restoration is highly dependent upon computer system. It is DEC#VAX for which we have found the ideal solution (a single block transfer from memory to memory for the dominant "LABCOM" portion of tables), so VAX is the model for other systems. Apollo is still slow, due to random ordering of the COMMON blocks of "LABCOM". More work is needed (we have ideas, but just have not found the time to do the work). For a system that is painfully slow, the interactive user of "SAVE" and "RESTORE" will want to minimize EMTP table size by carefully choosing his input List Sizes for "VARDIM" (see Section I-G). XVI-C-8. "DICE" for Statistical Tabulation of Monte Carlo Simulation The "DICE" command is meaningful only when the ongoing simulation is a Monte Carlo ("STATISTICS") study. If such a data case were to be executed without SPY, the requested number of energizations NENERG (integer miscellaneous data parameter of Section II-B) would be simulated, followed by statistical tabulation of the variables of interest (as requested by data of Section XII-B). But when using SPY, the number of energizations is set to infinity internally, so it is the user's responsibility to exit the tight loop when he believes answers are smooth enough for his needs. The "DICE" command allows the user to preview the statistical tabulations that normally would be delayed until all simulations are complete. Resulting statistical displays will, of course, be based only on those energizations that will have been completed at the instant of use, however. Variable selection and scaling information for the "DICE" display must be built into the data case just as would be required for batch-mode usage. In case changes to such data are desired during execution, edit the disk file of data cards in a separate window (assuming the user has a workstation such as Apollo), and then reload the file using "DATA". When doing this, just be careful not to add or remove any cards prior to the requests for statistical tabulation, since the card number of the first request for statistical tabulation must remain unchanged. The EMTP itself only provides for LUNIT6 character output of the statistical results. But users of a flexible workstation such as Apollo should have the nicer, vector-graphic alternative, thanks to the inspiration and research of Mr.#E.#J. Michelis of KEMA (Arnhem, The#Netherlands). This involves the simultaneous usage of a separate supporting program "STATPLOT", and "cut and paste" capability of the operating system software. For details, refer to the Apollo Section I-F-1. The termination of a Monte Carlo study will depend upon what more the user wants by way of output. Using SPY, the user will from time to time issue a "DICE" command, in order to see how smooth results have become. Once he is satisfied that distributions are close to assymptotic limits, it only remains to be decided how execution is to be terminated. The quickest way would be an operating system interrupt via the keyboard (e.g., VAX/VMS CTRL-Y or Apollo CTRLQ). Equally effective and nearly as quick is the "SPY" stop command. But either of these quick exits will result in a loss of the small character plots of switching times that normally conclude statistical tabulations. There also would be a loss of the case summary statistics. In order to avoid such a loss, the SPY command "DEPOSIT" should be used to set variable NENERG equal to the current energization number, thereby allowing a natural exit of the Monte Carlo loop 20 Rulebook ATP (junio 1996 - internet) H16 21 after completion of the current energization. This number should be one of the last outputs to LUNIT6 (at the end of the last line that begins: "Random switching times for energization number"). The final consideration is about possible table saving. Rather than ending execution definitively, one can put the Monte Carlo simulation into hibernation by setting MEMSAV#=#1 at the same time NENERG is altered, if the input data (integer miscellaneous data card) did not set this switch at the very start. XVI-C-9. Mathematics within Command Files: "APPEND" The "APPEND" command provides a gateway to mathematics at the SPY command level. Although much more is possible, and extensions may be more fully developed in the years ahead, the dominant present use is for counting, incrementing, comparing, and jumping --- the ingredients required for looping within command files, and the modification of EMTP data within such a loop. Even before considering what any of the details mean, it might be informative to look at a simple example. The standard command file INCLSPY8.DAT provides an illustration: APPEND { Issue SPY command to enter the world of "APPEND" subcommands MENU { Confirm we are inside "APPEND" by display of possible subcommands SET PRI=4 LEN=1 VAL=0.0 { Initialize REG(4), APPEND reg. number 4, to 0 SET PRI=5 VAL=1.0 { Initialize REG(5), APPEND register number 5, to 1 SET PRI=6 VAL=2 { Initialize REG(6), APPEND register number 6, to 2 ADD PRI=4 SEC=5 LEN=1 STN=3478 { Top of loop : REG(4) = REG(4) + REG(5) KEY PRI=2 MES=SEND_REG(2): { Pause for unused keyboard input to REG(2) LOOK PRI=1 LEN=12 { Display the contents of REG(1) through REG(12) IF PRI=4 .LT. SEC=6 { If REG(4) is less than REG(6), then GOTO LAB=3478 { loop back four lines (to top of loop to increment again) END { Exit "APPEND" command, returning to "SPY:" prompt TIME { Confirm that we have "SPY:" by issuing this simple SPY command The reader is encouraged to execute this file ("@8") on his own computer. There is a loop that will be traversed twice, and each time execution is halted to allow the user to key a number that will be deposited in register number 2. Use distinctive numbers (e.g., "98765"), so that they can be easily recognized in the subsequent display of register contents. Ideally, one would prefer FORTRAN-like capability for the mathematics of SPY. Eventually this may come, much as it already has for TACS (thinking of TACS supplemental variables). But SPY "APPEND" usage is just in its infancy, and something more like assembly language is all that is being provided now. Numerical values must be stored in one of a fixed number (presently 58) of special registers that are identified by a number. Arithmetic is performed only on one or more of these registers. Finally, conditional execution depends on the relative size of two register contents. Once inside the "APPEND" command, a list of the available subcommands can be generated by sending "MENU". The result is as follows: SPY: APPEND >: MENU IF LOAD INIT GOTO USE KILL UNUSED COMP ADD SUB CARD KEY END MUL TAGS LIB DIV MENU LOOK COPY MAP SET While this is an imposing list, it is possible to understand the overall idea rather quickly by means of a few examples and the summary description of a few general classes of operation. Rulebook ATP (junio 1996 - internet) H16 Whereas registers are referred to by number, most often only two registers are involved. For example, one can add the content of one register to another, or one asks whether one register is equal to another. For most such usage, the two registers of interest are referred to as primary and secondary registers, respectively. Symbols are used in that the user first defines these two registers using "tags" such as PRI=3 and SEC=4 (to have register number 3 be the primary register, and register number 4 be the secondary register. Other tags are possible, as illustrated by the following "APPEND" line that uses four tags to describe an addition operation: ADD PRI=34 SEC=44 LEN=3 INC=1 The "ADD" is the "APPEND" command for addition, with the four tags giving the location and extent of this operation. Vectors are involved, and the tag LEN=3 says that these are of length three. Just as FORTRAN DO-loops can skip cells, so can such vector operations, although such is not being done in this example (the tag INC=1 says that consecutive registers are involved. By definition of the addition command, the primary register is to have the secondary register added to it. Hence registers 44, 45, and 46 are to be added to registers 34, 35, and 36, respectively. Tags must be separated from the command (if any; here, from the "ADD") and from each other by one or more blanks. The command (if any) must come first, and must begin in column one. Thereafter, tags can be placed in any order, and are free-format (except that imbedded blanks within a tag are not allowed, since blanks terminate one tag and start another). "IF"##usage allows for the conditional execution of the following command, if and only if the content of the primary register is related to the content of the secondary register by the appropriate relational operator. Identical to FORTRAN, six relational operators are recognized: .LT. .LE. .NE. .EQ. .GE. .GT. and these must appear somewhere to the right of "IF" (a tag is not used for these operators, note). Just be sure that the relational operator has one or more blanks before and after it, and no imbedded blanks (between the bounding periods). As an illustration, consider: IF PRI=4 .LT. SEC=42 This is equivalent to the FORTRAN condition IF ( REG(PRI) .LT. REG(SEC) ) Should the condition of the relational operator not be satisfied, then the following "APPEND" command (line of the command procedure, usually) will be discarded. Unlike FORTRAN, the following statement which is to be conditionally executed must always occupy the following line (it can not be added to the line carrying the "IF", nor can it extend to several lines via continuation). "GOTO" provides for an unconditional transfer to another line of the command procedure that is being executed. But unlike the column 1-5 statement number of FORTRAN, the destination here need only be uniquely identified by an alphanumeric string of up to six characters. It is tag "LAB" which identifies the destination of the jump, whereas tag "STN" must appear on the line to which control is to be transferred. Take two such lines out of INCLSPY5.DAT: ADD PRI=4 SEC=5 STN=3478 GOTO LAB=3478 LEN=1 22 Rulebook ATP (junio 1996 - internet) H16 23 The first of these is the top of the loop, and is identified by the character string "3478". The line itself requests the addition of register number 5 to register number 4. The second line involves an unconditional transfer of SPY control to the first line. The tag "LEN=1" sets the vector length to unity for the just-described register addition. By combining integer counting with "IF" and "GOTO", one has a loop, of course. "ADD", "SUB", "MUL", and "DIV" are the basic arithmetic commands within "APPEND". Vector operations are involved (the "LEN=" tag defines the length), as is possible incrementation of indices by other than unity during the vector operation (use the tag "INC=" to control this). The four summary definitions in equivalent FORTRAN are, respectively: REG(PRI+K) = REG(PRI+K) + REG(SEC+K) REG(PRI+K) = REG(PRI+K) - REG(SEC+K) REG(PRI+K) = REG(PRI+K) * REG(SEC+K). REG(PRI+K) = REG(PRI+K) / REG(SEC+K). For scalar operations (the common case), "K" would be zero in these defintions, and there would be no loop incrementing it. "LIB"##is used to apply a library function to registers beginning with the primary register. The "LEN=" tag controls the number of registers in this vector application. As for the function, it is selected by a "FUN=" tag, with the following choices allowed to the right of the equal sign: "EXP" "SQRT" "RAN" "TIME" "COS" "PI" "ABS" "INT" ----------------- the EMTP library function "EXPZ" (exponential); the EMTP library function "SQRTZ" (square root); the EMTP library function "RANDNM" (random number); the current EMTP simulation time T in seconds; the EMTP library function "COSZ" (cosine); the circular constant, equal to 3.14159265 ... the EMTP library function "ABSZ" (absolute value); integer truncation (removal of fractional part). If the reader`s favorite function is missing, complain, since it is trivial to expand the set arbitrarily (only 2 lines of FORTRAN are required for each function). "SET"##allows the user to load registers with constants. This is a vector operation, beginning with the primary register. The value of the constant is defined using the "VAL=" tag. An illustration follows in the next paragraph. "COPY"##allows the user to transfer the contents of one append register to another. The transfer is from the primary to the secondary register, and a vector operation (tags "LEN=" and "INC=" are applicable). "LOOK"##provides observation of register contents. This is a vector operation, beginning with the primary register. As an illustration, consider the definition and observation of three registers: >: SET PRI=12 LEN=3 VAL=3.14 >: LOOK Register contents follow. 1st and last = 12 12 0.314000E+01 0.314000E+01 0.314000E+01 14 "KEY"##allows register definition from the keyboard. This would normally only be used in the middle of a command file. Three tags control the operation. First, "PRI=" and "LEN=" define the range of contiguous registers (a vector), Rulebook ATP (junio 1996 - internet) H16 and also the number of free-format values that are to be read from the keyboard. Finally, "MES=" defines a prompt of up to 80 columns, without any imbedded blanks. Without such a prompt, the EMTP user might not know that he was supposed to key some numbers. Or, in the case of two or more requests, he might not know which of the multiple inputs was involved. As a degenerate special case of "KEY" usage, rather than from the keyboard, the required input can be read from the following "APPEND" line (of a command file, normally). Use "MES=NONE" as special request for this in-line data, which may sometimes be simpler or clearer than the use of "SET" for loading registers with numerical values. "CARD"##allows the numeric modification of some data field of a group of EMTP data cards that currently is stored in the card cache of LUNT10. The six required integer parameters come from tags, as follows: PRI --SEC BEG END MOD LEN INC ------------- Number of the register that is to be used. The numeric contents of this are to be encoded on a data card. LUNT10 number of the card at which modifications begin. Beginning column number of the data field to be defined. Ending column number of the data field to be defined. Mode of the numeric encoding: 0=Real, 1=Integer. The number of consecutive cards to be so modified. To increment PRI in cases of LEN > 1, so that the number being deposited is varied as the card is. It is in conjunction with the "BEGIN" command of SPY that this "CARD" subcommand of "APPEND" will normally be used. The concept is simple enough. Whereas "DEPOSIT" allows the arbitrary tampering with EMTP tables, some network parameters are buried so as to be inaccessible within the time-step loop. As a result, it is not possible to change such parameters as a simulation is advancing. But it is possible to restart such a simulation at time zero with altered data. This can all be done automatically with a command file. Via arithmetic of "APPEND", the next desired value of some network parameter is computed. This value then is deposited on the card image of interest, after which the solution can be restarted. The result is quite arbitrary parametric studies --- an enormous extension over the one such specialized application that has been hard-coded into EMTP FORTRAN: Monte Carlo studies). As an example of practical interest, consider variation of the inductance of a smoothing reactor of an hvdc filter. An illustration has been built into INCLSPY5.DAT ("@5"). "MAP", "LOAD", "INIT", "KILL", "COMP", and "USE" all are commands that are associated with communication between append registers and the outside world (i.e., either EMTP tables, or a synchronized parallel process. Yet such usage is still highly experimental, and it is not simple. Further, it is dependent upon computer. As a consequence, it is not recommended for anyone other than program developers at the present time. On the other hand, it should be understood that such capability is seen as one possible way to improve the present CSP (concurrent sequential processing) capability of the present "TACS" command of SPY. Refer to Section XVI-C-12 for additional comment about the idea of CSP. XVI-C-10. "RAMP" and "SERIES" for Continuous Linear Variations Some EMTP variables can be changed instantly from one value to a completely different value without difficulty. An example would be the flashover voltage, or the closing time, of a switch. For such cases, the "DEPOSIT" command of SPY is appropriate, since this is the way it operates: instantly and discontinuously. On the other hand, there are variables that must only be altered slowly and smoothly. An example might be the inductance of some series R-L-C branch. In order to avoid abrupt changes, the "RAMP" command was devised. It allows the 24 Rulebook ATP (junio 1996 - internet) H16 25 user to specify an arbitrary number of beginning and ending times, and beginning and ending parameter values, for linear variations that will occur each time step. Storage for such usage is appended to the U.M.#working space after any normal machine storage, so any such intensive user might consider augmenting List Size#25. The "SERIES" command provides special logic to connect with the "RAMP" command for the variation of series R-L-C branches only. These are common and important enough to deserve special logic of their own. Although discontinuous variations are also allowed, the smooth, ramped change is the more useful and common, probably. At any point prior to overlay 12, the user must declare his intention to tamper with series R-L-C branches by issuing the "SERIES" declaration. Then the program will pause in overlay 12 to allow the user to select those branches that he might later want to vary. The help command provides more details of this high-level command. Yet before the potential user becomes too excited about the powerful idea of ramping EMTP parameters, it should be pointed out that many variables are effectively inaccessible to him. Although he can go through the motions of ramping such variables, the result will not be what it should be because other, unknown program variables that depend upon the ramped variables are not being modified at the same time. The classic case is the time-step size DELTAT, upon which many, many other variables depend. Do not try to ramp DELTAT as shown in a following example, since no good can come of it. Those who are not familiar with internal program structure (i.e., EMTP FORTRAN) are to be discouraged from using "RAMP" for any but the simplest case. Even the veteran developer may need to think a little, and use some trial and error. There are two supporting SPY commands that should be considered at the same time, namely "SERIES" and "YFORM". The first of these should always be used if the parameters of a series R-L-C branch are being ramped, since then the nodal admittance matrix [Y] will be appropriately modified each time step, and that matrix will also be retriangularized. Unfortunately, such quality support for other components is lacking, so if the user knows that [Y] formation and triangularization are required at each time step, he must request it himself, manually. A final potential peril might be mentioned. Actual ramping of variables is handled within SUBROUTINE ANALYT of "ANALYTICAL SOURCES USAGE" fame. But this is an installation-dependent (see Section I-E-1). Hence any intended user of "RAMP" should check that ramping logic has not been removed by those responsible for maintaining the program. There are three basis prompts of shown: "RAMP", and these are nested in the order SPY: RAMP SEND "T-begin", "T-end" (END, SHOW, REWIND) : SEND "F-begin", "F-end" (END) : SEND EMTP VARIABLE: Actually, the final prompt is from "DEPOSIT" to which this "RAMP" logic jumps in order to input and identify the variable. Just as with "DEPOSIT", a vector response is acceptable. An example would be "TX(3:5)", which would result in the simultaneous ramping of three consecutive cells of the TX vector. The order of nesting is intentional. Variables can be specified one after the other as long as both time (the outer loop) and ramp value (the middle loop) remain applicable. When this ceases to be true, send "END" in response to that inner-most prompt and there will be a return to the middle prompt for beginning and ending parameter values. If these "F" values are changed, there will be an Rulebook ATP (junio 1996 - internet) H16 26 automatic return to the inner level for more variables. On the other hand, if times must be changed, or if the user is done specifying ramps, sending "END" in response to the middle prompt will return to the outer prompt for times. To erase all previous usage, send "REWIND". To produce a summary table of all ramps, send "SHOW", of which the following is an illustration: Row 1 2 Name I-beg Length T-begin T-end F-begin F-end TX 3. 1. 0.15000E+01 0.25000E+01 0.50000E+07 0.70000E+07 DELTAT 1. 1. 0.75000E+00 0.90000E+00 0.50000E-01 0.75000E-01 No RAMPing before 7.50000000E-01 or after 2.50000000E+00 sec. It is always prudent to produce this output as the very last operation prior to returning to the "SPY:" prompt (by sending either "SPY" or "END"). This is because it is much easier to spot errors from such a table than it is by reviewing the voluminous input. Note that whereas the user inputs beginning and ending subscripts, the table show the beginning index (unity for a scalar) and the length of the vector that is being ramped. The final line reminds the user of when the first ramp will begin and the last ramp will end. XVI-C-11. Utilities: HEADING, TIME, SIZE, LIMIT, HONK, ECHO, WAIT, $, OS "HEADING"##is the command to produce a new heading for the time-step loop output in the LUNIT6 window. It may be that the user has many output variables, and can not remember which is which. Even if the window can be scrolled backward to find the normal heading, it may be more convenient just to regenerate the heading via this command. "TIME"##is primarily designed to show the current simulation time T (a variable of "BLKCOM"). But since this hardly requires a whole line, the timestep size, the end time TMAX of the study, and the wall-clock time, have all been appended. In case the user wants to check the responsiveness of SPY to keyboard inputs, or to reassure himself that SPY is still alive and well, this is a good, simple command to use. An example follows: SPY: TIME T = 0.200000E+00 TMAX = 0.1000E+20 DELTAT = 0.5000E-01 07.58.44 "SIZE"##and##"LIMIT"##are two simple utilities related to EMTP List Sizes (see Section I-G). Both result in displays of 27 numbers, with 10 numbers per row. The difference is that "SIZE" shows the current actual burden on EMTP tables, where as "LIMIT" shows the table dimensioning. Just as with case summary statistics, if no figure is available, a "-9999" should be displayed. The following illustration was produced during the solution of a slightly modified version of BENCHMARK DC-4: SPY: SIZE 5 5 18 9 0 0 SPY: LIMIT 252 300 50 50 100 150 6 -9999 6 2 -9999 1 9 -9999 -9999 0 0 -9999 695 0 -9999 0 0 1 23 10 0 500 5000 4000 100 -9999 3 2500 -9999 400 40 40 50 1375 4 50 1750 5 75 1600 160 660 "HONK"## is the SPY command that rings the bell of the computer monitor. The following integer, separated by at least one blank, indicates the amplitude of the alert. More detail about this is impossible due to the installationdependent nature of the servicing SUBROUTINE HONKER. An illustration follows: SPY: HONK 5 Rulebook ATP (junio 1996 - internet) SEND SEVERITY LEVEL OF ALERT (1 TO 10) : 3 Audible alarm began at 02-Apr-88 23.17.38 H16 5 27 bells. The convention is that zero produces no response, while 10 indicates a disaster (with this latter warning continuing indefinitely until suspended by a user-keyed interrupt). The user will normally avoid the use of ten, which was designed for internally-generated program alarms (e.g., when program storage for plot data has overflowed). As for the mode of usage of "HONK", it will almost always be in a command file, for those cases where there is a need or desire to attract the attention of the operator (who may not be looking at the monitor). "ECHO"##is designed to accumulate keyboard input during testing, so that once an interactive control sequence is perfected, a command file can be established without the necessity of rekeying all of the commands. Also, "ECHO" provides a very compact history of what the user has been doing. An illustration follows: SPY: ECHO SEND DESIRED OPERATION (BEGIN, FILE, SHOW) : SHOW Compacted listing (between "/") of 21 stored commands follows. / TIME / BRANCH / ALL / SPY / FILES / TYPE 1 / @1 / HEADING / LIST / 255,260 / SPY / SIZE / LIST / 1,5 / SPY / LIMIT / BREAK / -150 / GO / ECHO / SHOW SEND DESIRED OPERATION (BEGIN, FILE, SHOW) : In this case, "ECHO" was first requested some 21 SPY commands earlier, when SPY input began to accumulated. At that first usage, the response to the prompt was "BEGIN" --- to begin the accumulation. This time, the request was to "SHOW" the accumulation to date. To terminate such accumulation, send "FILE". There will be an opportunity to save the accumulation in a disk file, but this probably would never be most convenient for the worstation user having "cut and paste" capability. If no disk file is desired, send just a <CR> in response to the prompt for a file name. "$"##is the SPY command to send the input line into "CIMAGE" for processing as a conventional $-card of batch-mode usage (see Section I-D). Only the dollar sign in column 1 is mandatory, with all other characters of the line left for "CIMAGE" usage. For an illustration, use "@9" (INCLSPY9.DAT). The most common usage is to turn on DIAGNOSTIC printout via the $DEBUG command. "WAIT"##is the command for all aspects of program execution to hibernate for a fixed period of time. The user merely follows the request word by the desired delay T-delay in seconds, separated by one or more blanks. The following illustration is typical: SPY: WAIT 3 The "TDELAY" delay will be accomplished of FUNCTION RFUNL1. within installation-dependent function "OS"##is the command for the execution of an operating system command by SPY. It is highly installation-dependent, since not all computers allow such flexibility, and not all program versions provide for it. For example, the Apollo program version has no such feature, but needs none, since the operating system provides windows in which the user can execute any operating system command of interest as the EMTP executes. On the other hand, the SUN version is fully empowered, and seems able to execute any UNIX command via "OS". Similarly, the PC XT-compatible version using Lahey FORTRAN seems able to execute any MS-DOS command. If in doubt about the computer system of interest, consult the appropriate installation-dependent pages of Section I-F, or experiment with the Rulebook ATP (junio 1996 - internet) H16 feature (any computer having no such capability should display a message about unavailability). "DEBUG"##is the command to turn on the diagnostic printout of SPY only. This defines variable IPRSUP. The initial value comes from STARTUP. Although there is some overlap, note that in general diagnostic of SPY is different than diagnostic of the simulation half. To control the latter from SPY, send "$DEBUG level". "IOUT"##is the command to modify the printout frequency (which is stored in the FORTRAN variable of the same name). Follow this command by the desired new output frequency, separated from the command by one or more blanks. XVI-C-12. "TACS" : Gateway to Concurrent Sequential Processing (CSP) Although still the subject of research and experimentation, the concept of Concurrent Sequential Processing (CSP) is important enough to deserve mention. The SPY command that provides access to this feature is "TACS". The general concept of CSP is simple enough: Allow the user to send arbitrary EMTP variables to TACS each time step for processing as supplemental variables. Also allow him to bring back the TACS results each time step, and apply those results to arbitary variables. The use of such computation every time step explains the adjective "concurrent," and "sequential" comes from the fact that this is an inherent restriction of TACS supplemental variables. Entry to summarized: "TACS" reveals several options, which now will be briefly SPY: TACS SEND CONTROL (REWIND, SOURCE, SUPPLEMENTAL, PATCH, SHOW, END) : Sending "REWIND" will erase all previous such definitions, so that definitions will begin from level zero. If "SOURCE" is sent, all following input is assumed to be TACS source cards, until terminated by an "END" card. If "SUPPLEMENTAL" is sent, then all following input is assumed to be TACS supplemental variable/device data cards, also until an "END" card is encountered. The subcommand "PATCH" allows the user to connect any EMTP variables to his TACS sources (in order to define the inputs). It also allows the user to apply supplemental variable results to any EMTP variable. The "any" comes from the use of a memory address of the SPY commands "LIST" or "FIND", just as "EXAMINE" or "DEPOSIT" are quite unrestricted. There will be separate prompts for all such TACS input and output connections. When all such connections are complete, "SHOW" can be used to display a summary table of all TACS CSP input/output connections. The future of the "TACS" command depends in large measure on future evolutionary development. The "TACS" command has the advantage that it is universal, and requires no computer-dependent special features. On the other hand, the processing is limited by the rules of TACS supplemental variables, which are far less general than the FORTRAN compiler (e.g., TACS can not yet invert a matrix easily, or perform fast Fourier transformation, or compute with limited precision). As for the next generation of TACS (already being designed), who can be sure? One alternative to using TACS for CSP involves a synchronized, detached process, which provides much more flexibility for those computers that can handle the operation efficiently. Hence, the soon-to-be-improved "TACS" is a direct competitor for certain not-yet-fully-developed features of the "APPEND" command. In summary, it is clear that the concept of CSP will remain valid, and flexibility of the implementation will improve. But details of such future usage are quite unclear at the present time. 28 Rulebook ATP (junio 1996 - internet) XVI-C-13. Servicing [Y] Changes: YFORM, NOY, H16 FACTOR, 29 NOF Due to practical complications, the production user most likely will have no explicit, manual use for the four SPY commands of this present section (see the heading). They are associated with reforming the nodal admittance matrix [Y] of the time-step loop, and with retriangularizing it. In idealistic theory, whenever the user modifies the computer storage of some network parameter (e.g., by using "DEPOSIT", or CSP of "TACS", or a synchronized parallel process of "APPEND"), he should have [Y] reformed and also retriangularized. Then all would be well forever after, right? Right in theory, but wrong in practice today, unfortunately. Due to the dependence of other program variables on the one being changed by SPY, such reformation of [Y] can only be successful in certain cases. It will take a lot of reprogramming before the time step DELTAT can so be modified. So, only researchers should be using these functions explicitely for a while. Yet the production user may well be exploting the logic of these functions implicitely, without even knowing it. For example, the "RAMP" and "SERIES" commands connect with the code just mentioned. Hence there is no question about the possible removal of unused features. . Batch-Mode Execution of SPY Commands: $SPY and $SPYEND There is a batch-mode connection to SPY, for those users who can foresee all details of SPY input in advance, before EMTP execution begins. For example, a user otherwise might have no interest in interactive observation and control. However, SPY might provide some special control that might be needed for the data case of interest. A second example of usefulness is for the documentation of SPY capability using standard test cases. The user is referred to BENCHMARK DC-56 and DC-57 as illustrations. $SPY##(keyed in columns 1-4 of an EMTP data card) is the key that allows SPY commands to mixed with normal EMTP data. This request must precede a block of SPY commands, and $SPYEND must follow that block to mark the end. As an illustration of such usage, consider data cards extracted from BENCHMARK DC-56: 14GEN 70. .1591549 -1. $SPY { Request of "CIMAGE" ($-card) to begin batch-mode SPY connection $DEBUG, 0, { 1st SPY command is trivial, ineffective change of DIAGNOSTIC ===< < Etc. (some 56 lines have been omitted to save space) > >=== BREAK { It is the latter: no more "@" cards read until "BREAK" occurs TIME { Trivial SPY command just to demonstrate that we have "SPY:" prompt STOP { This SPY command will terminate execution of the data case $SPYEND { Bound on in-line SPY commands; back to batch-mode program data BLANK card ending all electric sources It is seen that a large block of SPY commands has been inserted after the last EMTP source card, before the blank card ending such sources. Although $SPY looks like a $-card that might be processed by "CIMAGE" (see Section I-D for details), this is not the case. Just as with $INCLUDE, $SPY is processed at the very beginning of execution, where the following happens. All card images following the initiation of $SPY, and preceding the termination of $SPYEND, are in fact removed from the EMTP data card cache of LUNT10, and are placed in a separate disk file named "SPYFILE1.DAT". This is a reserved name, so the user should avoid it and all related files (as the serialization digit preceding the dot varies from 1 through 9). The $SPY card is converted to the following: Rulebook ATP (junio 1996 - internet) $OPEN, UNIT=17 STATUS=OLD H16 FILE=SPYFILE1.DAT which will, of course, be serviced by "CIMAGE". This really is just a special connection for what otherwise would be a SPY command file ("@" usage) without arguments. Note the use of fixed I/O channel number#17 --- different from any other program usage (to avoid conflicts) provided the user avoids this number in his STARTUP file declarations for LUNIT1, etc. The location of $SPY usage within an EMTP data case is critical, since this defines the point at which the program begins reading the SPY commands. This does not imply that all SPY commands will be read at this point, however. The user generally will delay the input of other commands by some device such as a "BREAK" command followed by "WAIT" and "BREAK" (to inhibit further input until the break point has been reached). A good illustration is provided by BENCHMARK DC-56. It is possible to have multiple $SPY and $SPYEND declarations, if this proves to be necessary. The present program limit is nine, due to the single serialization digit that follows "SPYFILE" as explained above. There is no need to be sure that one group of SPY commands is exhausted before the next group is requested, since the program handles the transition by brute force. Prior to the connecting of a new "SPYFILE" in "CIMAGE", any old one is disconnected --whether or not all records have been read from the old file. An illustration of multiple $SPY declarations can be found in BENCHMARK DC-57. . Use of SPY "PLOT" Instead of Separate Program "TPLOT" A special, new, degenerate application of "SPY" has nothing to do with simulation. Rather, it concerns the plotting of preceding simulations -- a function that previously required a separate, special plotting program "TPPLOT". A separate program no longer is needed, and in many cases, is no longer desired. While the reader could learn this new usage of the EMTP on his own from the detailed information of Section XVI-C, it is important enough to deserve special mention in this special section. Usage of the EMTP just as a plotting program has the advantage of speedier response for the plotting of large data files. Rather than input data points of curves from disk as they are needed (which is the "TPPLOT" approach), the EMTP loads the contents of a ".PL4" plot file into memory at the very start. Then input is either from memory or via paging (virtual memory management), which is an order of magnitude faster than FORTRAN READ operations from an I/O unit. For big data cases, this can save a lot of time, so is worth considering. The really serious user may even want to create a special EMTP version in which the simulation code has been cut out in order to remove the burden of all that extra code and table space, thereby allowing the expansion of plotting space without further burdening the computer. Plotting via the EMTP is simple enough. Begin EMTP execution, and select SPY, of course. Then key the following SPY commands, in order: 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) DATA --- Request of EMTP for specification of disk file disk_file --- contains a single $OPEN card (see below) STEP --- Instruct SPY to halt the simulation everywhere GO --- Begin EMTP execution. Repeat this 4 times! SPACE --- SPY command allowing management of memory PLOT --- It is plot data storage that we will manage READ --- We want to read plot data points into memory ALL --- Time range of data to be loaded (the whole file) 1 --- Handle every N-th time step, where N = 1 here 0 --- No offset for memory storage of the plot data 30 Rulebook ATP (junio 1996 - internet) 11) SPY --- H16 31 After plot points are all loaded, exit to "SPY:" For an illustration of such execution that connects and loads the plot data of the file named DC3TO54.PL4 (created by solving BENCHMARK DC-3), send the SPY command "@0" as the first SPY input. That is, inspect and test the command file INCLSPY0.DAT, the last entry of the "FILES" display. The disk file that is named in step#2 contains just a single card: a $OPEN statement that connects the desired ".PL4" disk file of raw plot data points to unit LUNIT4. The multiple "GO" commands merely serve to step past unwanted SPY break points to where EMTP data normally should be read, in UTPF overlay number 1. The new-case heading should appear, and after it, the interpreted copy of the $OPEN card that is contained within the disk file of step#2. The remaining SPY commands serve to load this data from disk into the EMTP's virtual memory, and finally exit from the "SPACE" command (step#11). When execution of the command file ends, there will be a "SPY:" prompt to which the user can respond with "PLOT" as the plotting begins. Hereafter, details are no different than have already been documented in Section XVI-C-4. Under what circumstances might a user not want to do his plotting this way, using the EMTP? First, there is little or no speed incentive for small ".PL4" files. Since starting the big EMTP is slower than starting the small, separate program "TPPLOT", and since the EMTP requires special steps as just listed, use of the EMTP in such cases is probably more trouble than it is worth. Second, there may be a space problem for truly enormous ".PL4" files. Remember that "TPPLOT" has no limit on the size of the ".PL4" file, whereas the EMTP does (since all such points must be loaded into memory). If a properly dimensioned version of the EMTP is not immediately available, the resizing of tables represents an added complication. Third, the EMTP has no built-in hard copy connection using CalComp plots the way "TPPLOT" does (the "COPY" command). Whereas some computers may have hardware and an operating system that automatically provide hard copies of the screen, this is not universal, and usage of it may not be as convenient. In conclusion, SPY "PLOT" is a powerful new tool, but it is not a general replacement for other froms of EMTP plotting (including "TPPLOT") for all users in all cases. $OPEN##provides an alternate, newer, even more flexible form of such SPY plotting. Rather than burying the file-connection command in a separate file (see "disk_file" of step 2 above), this command can be sent directly through the SPY window. The $-command of SPY allows this more unified treatment. Otherwise, not much is changed. For an illustration, see INCLSPY9.DAT (try "@9"). Rulebook ATP (junio 1996 - internet) H17 1 XVII-A. JMARTI setup Purpose and applications The supporting routine JMARTI setup can generate only one model (travelling wave model) and is only valid for conventional overhead lines. In the travelling wave model, both the characteristic impedance Zc as well as the propagation function A1 are obtained using modal characteristics, calculated over a user defined frequency range, under the assumption of a constant transformation matrix (phase-mode transformation). Then, both Zi and Ai undergo a high-order rational function approximaiton. In the time domain, this fitting is represented by a sum of real exponentials, thus allowing usage of recursive convolution methods in the time domain. The order of fitting no longer equals two (like it was the case in Semlyen setup). Typical figures for the order are 5...10. The generated LUNIT7 punched card output immediately is in the proper input format to be used for a subsequent transient run, as explained in section IV-D-3. In order to allow the program to calculate the necessary modal characteristics for the conductor system under consideration, the JMARTI code imbeds the LINE CONSTANTS or CABLE CONSTANTS code. For an example using LINE CONSTANTS, we refer to benchmark DCNEW3, 2nd subcase of DCNEW4, DCNEW5 and DCNEW6. For CABLE CONSTANTS, results are considered to be unreliable because the assumption of constant transformation matrix all over the frequency range does not hold for cables. Input structure Input data cards for JMARTI setup involve an imbedded LINE CONSTANTS data case following the initial JMARTI declarations. 1. BEGIN NEW DATA CASE 2. JMARTI SETUP REQUEST 3. Optional special request cards BRANCH 4. A LINE CONSTANTS data case 5. JMARTI miscellaneous fitter specifications or DEFAULT card 6. BLANK card terminating JMARTI 7. BEGIN NEW DATA CASE 10. BLANK CARD terminating all cases Let us discuss the above card formats in more detail now. Whenever appropriate, distinction between the transposed and untransposed case will be clarified. BEGIN NEW DATA CASE JMARTI setup request Rulebook ATP (junio 1996 - internet) H17 151 Parameters: PDTO: controls possible reduction in the order of approximating rational functions. Default value = 1. Note: This parameter PDTO is not actually used by the fitter itself, but is merely passed along from the declaration card just shown to any branch cards that later are to be punched. Indeed, in the punched cards of section IV-D-3, parameter PDTO can be found back on cols. 33-38 and has the following meaning: The fitter always returns to LUNIT7 the full order of the approximating rational functions for Zc and A1. The higher the order, the more poles and zeroes are being calculated. During the transient run, the approximative functions are taken into account using recursive convolution and transfer from modal domain to phase domain. These calculations are very timeconsuming. - In order to speed up calculations during the transient run, the user can specify a threshold for the order reduction (i.e. reduce the number of poles and zeroes approximating Zc and A1). Usage is illustrated in DCNEW4 (first subcase versus second subcase). Optional BRANCH request 152 The node names should be placed in pairs (sending end, receiving end), phase per phase. When specified, these node names will also appear in the LUNIT7 punched output. When omitted, the user himself will have to enter the desired node names in the punched output file. 2 Rulebook ATP (junio 1996 - internet) H17 3 Next follows a LINE CONSTANTS data case As explained in section XXI, such input sequence typically looks as follows: a. b. c. d. e. f. g. LINE CONSTANTS request card unit specification card (ENGLISH or METRIC) conductor cards BLANK card ending conductor cards 2 or 3 frequency cards BLANK card ending frequency cards BLANK card ending LINE CONSTANTS imbedded usage Note regarding frequency cards: - Depending on whether or not the line is assumed to be transposed (MODALspecification; cols. 69-70) or not, the number of frequency cards differs. - For the untransposed case (MODAL = 1): - Three frequency cards are needed - The first card (transient frequency card) contains the single frequency FREQTRAN at which the transformation matrix should be calculated. Recall that in effect, such matrix is frequency dependent. Hence, FREQTRAN somehow should be related with thte frequency of the transient phenomena one wants to observe. For overhead lines, 5000 Hz is a typical value. Finally, also remark that via parameter TR, the user can specify details on the transformation matrix to be used. It is even possible to use a user-defined rather than a calculated transformation matrix. - The second card (steady state frequency card) bears the single frequency FREQSS at which the steady state values should be calculated. Typically, this is the frequency value of the type-14 sources. - The third card (frequency looping card) specifies the frequency range to loop over for the calculation of the modal parameters Zc and A1. Typically, the starting frequency FREQINIT is set to 0.01 Hz, the number of decades DEC equals 8 or 9 and one must take PNT = 10 points per decade. Via parameter TR, the user can specify details on the transformation matrix to be used. =0: blank or -2 (this option is recommended): the eigenvectors (= columns of the complex transormation matrix) will be rotated closer to the real axis, so that their imaginary part is assumed to become negligible. =-9:the full complex transformation matrix will be used. =-1: the user needs to define his own current transformation matrix, immediately following the first frequency card. - RHO, FCAR, DIST, ISEG and MODAL should be equal on all 3 cards. Hence, the card format looks as follows: 153 Rulebook ATP (junio 1996 - internet) H17 - For the transposed case (MODAL = 0): - Only two frequency cards needed. Recall that no transient frequency card is needed, because the transformation matrix in case of a transposed case is known a priori. Furthermore, in this special case, the matrix is constant throughout the frequency range. - The first card (steady state card) bears the single frequency FREQSS at which the steady state values should be calculated. Typically, this is the frequency value of the type-14 sources. - The second card (frequency looping card) specifies the frequency range to loop over for the calculation of the modal parameters Zc and A1. Typically, The starting frequency FREQINIT is set to 0.01 Hz, the number of decades DEC equals 8 or 9 and one must take PNT = 10 points per decade. - RHO, FCAR, DIST, ISEG and MODAL should be equal on all 2 cards. Hence, the card format looks as follows: 154 JMARTI miscellaneous fitter specifications - There are two possible ways to specify miscellaneous fitter specifications: using the DEFAULT option. In this case, only one card is needed. explicite definition of fitter parameters. In this case, three cards are needed. Let us discuss both possibilities in more detail now. 5.a Using the DEFAULT option 155 This is the only card one needs. the non-experienced user. Such request is generally recommended for 5.b Explicit definition of fitter parameters This option should be selected by the experienced user, who wants to have control over some (or all) of the individual fitting parameters. 4 Rulebook ATP (junio 1996 - internet) H17 5 Three different types of parameters can be specified on the different fitter cards: - miscellaneous data - parameters for Zc fitting - parameters for A1 fitting Let us discuss these three card formats in more detail now. 5.b.1 Miscellaneous data 156 Parameters: IDEBUG provides control of diagnostic printout during the JMarti fitting. A value of unity is recommended for normal production usage, since this will result in a display of the number of poles and zeroes, and the accuracy of the fit, for each iteration of the corners-allocation loop. Higher values (2, 3 or 4) result in more output. IPUNCH controls whether or not branch cards will be punched after the fitting. Value zero will produce JMarti branch cards, whereas unity will omit such output. KOUTPR controls visibility of JMarti input data card interpretation of the subsequent transient simulation. Recognized, distinct values of KOUTPR are zero, unity, and two. The user-keyed value is placed on resultant branch cards (if any) as variable SKIP. For further details, refer to this variable in Section IV-D-3, Rule 1. GMODE is the conductor conductance in the modal domain (the same as phase to ground conductance in the phase domain, if such conductance is assumed to be the same for all phases, and if there is no mutual conductance between phases. The default value is 3.E-8 mhos/km (equivalent to 4.8E-8 mhos/mile). The units of length should agree with those used within LINE CONSTANTS data. 5.b.2 Parameters for Zc fitting 157 NEXMIS will normally be left blank. A nonzero value indicates the mode number for which a different fitting card is to be supplied. A blank means that all modes of characteristic impedance Z c will use the same fitting card. Rulebook ATP (junio 1996 - internet) H17 A nonzero value gives the mode of interest. For example, NEXMIS = 3 means that the characteristic impedance of the third mode is to be fitted using parameters specified on a new fitting card. EPSTOL is the error tolerance for fitting, in percent. The fitting error is evaluated in a least-squares sense, and averaged over a range that excludes initial or final asymptotic regions (by 0.001%). The default value for blank or zero is 0.30%. NORMAX is the maximum order (maximum number of poles) to be allowed for the rational function approximation. Blank or zero is given a default value of 30. IECODE is a switch to determine the mode of fitting. If zero, EPSTOL is used to determine the order of the approximating function. If unity, then EPSTOL has no effect on the order. Instead, the best fit with an order less than or equal to NORMAX is determined. Of course, when using the EPSTOL criterion, it is possible that a fit within this tolerance is not possible. The user will be infored of such difficulty of fitting only if IDEBUG is positive. Increasing the value of NORMAX might in such cases allow the EPSTOL criterion to be met, but not always. Higher order does not guarantee greater accuracy, since the logic is imperfect. So use engineering judgement (moderation in all things). IFWTA controls tabular printout of the fitting. The value unity will result in the display of a table comparing the magnitude and phase angle of the rational approximation with the therortical values as a function of frequency (rows of the table). Zero will suppress such output. IFPLOT controls graphical printout. The value unity will produce a character (line printer) plot comparing the magnitude of the rational approximation with the theoretical value as a function of frequency. Zero will suppress such output. IFDAT controls possible tabular printout of transmission circuit parameters as a function of frequency. The value unity will result in such a display, whereas zero will suppress such output. INELIM is a switch controlling logic of the fitting process. The value zero means that order increases of the approximating function will end if and when the error becomes five times larger than the previous minimum. On the other hand, unity allows increases of order regardless of whether there is improvement. This is within limits represented by parameters NORMAX or EPSTOL, of course. 5.b.3 Parameters of A1 fitting 158 Parameters: 6 Rulebook ATP (junio 1996 - internet) H17 7 All variables except the first and the last have meanings that are identical to those for Zc (see preceding section XVII-B-2). The first, NEXMIS, differs in that a minus sign is required to indicate a mode of A1 rather than a mode of Zc. The final parameter is a new one in cols. 65-72 named AMINA1. Data points with magnitude less than AMINA1 will be discarded during the fitting process. Blank or zero is given a default value of 1/20. BLANK card terminating JMARTI BEGIN NEW DATA CASE BLANK card terminating all cases Output structure For a description of the output structure, output, we refer to section IV-D-3 (branch cards). more especially the LUNIT7 Example For examples, we refer to benchmarks DCNEW3, DCNEW4, DCNEW5 and DCNEW6. XXI. Supporting routines Supporting routines are used to translate some input data, which is known for the user, to some other output data which directly can be used in an EMTP application. One group of these supporting routines is treated in this chapter, while other supporting routines are treated in some separated chapters. Following supporting routines are treated in this chapter: 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) "XFORMER" to derive [R], [[Equation: omega]L] of single-phase transformers "OBSERVE PARALLEL MONTE CARLO" for parallel "STATISTICS" "BCTRAN" to derive [A], [R] or [R], [[Equation: omega]L] of multi-phase transformer "CHANGE SWITCH" to convert former switched R, L elements to type-99, -98 "OLD TO NEW ZNO" to update pre-"M39" ZnO data cards "DATA BASE MODULE" "SATURA" to derive ([Equation: psi],i) peakvalue curves "HYSDAT" to create type-96 hysteretic inductor characteristic "ZNO FITTER" to punch type-92 nonlinear branch cards Convert saturable transformer cards to linear equivalent [R], [L] Rulebook ATP (junio 1996 - internet) H19a 1 XIX.A "XFORMER" to derive [R], [wL] of single-phase transformers The supporting routine "XFORMER" can be used to derive a linear [R]-[wL] representation for single-phase transformers (both 2and 3-winding transformers), using test data of the excitation test and short-circuit test at the rated frequency. Excitation losses can't be taken into account by this model. On the other hand, these losses can be neglected for a single-phase transformer, recall. The shortcircuit losses can (and should) be taken into account, however. Stray capacitances are ignored in this representation, which therefore is only valid up to a few kHz. On the other hand, the model is not valid for extremely low frequencies either. The latter is mainly due to the fact that the XFORMER model uses admittances internally without first separating the resistive and inductive parts. At DC conditions, this mathematical manupulation then results in non-zero off-diagonal resistive elements, which indicate induced voltages in the secondary winding. At DC, of course, such voltage induction is physically impossible. Non-linear behaviour can't be included in the "XFORMER" model proper. Such behaviour (saturation or hysteresis) could be taken into account, however, by adding type 93, 96 or 98 elements, connected to the proper transformer terminals (i.e. those windings that are closest to the core) in the electrical network, during the steady-state or transient run. In such case, however, it would be mandatory to specify Iex = 0, since otherwise, the magnetizing inductance will be taken into account twice. On the other hand, of course, I ex = 0 is impossible, since this would result in an admittance matrix being singular. Hence, XFORMER will not be able to take saturation into account properly. Usage of BCTRAN is desirable in such case. Alternatively, for the two-winding transformer, this problem can be circumvented by using the saturable transformer component (which explicitely takes into account the saturation). In the 3-winding case, however, the saturable transformer component can become numerically instable for unknown reasons. Although this model uses the admittance notation internally, nevertheless it is mandatory that the magnetizing current certainly is not near-zero (or zero). Indeed, if the user specifies too little magnetizing current, the magnetizing impedance gets lost in the admittance matrix that becomes nearly singular, so that it can't be inverted any more to result in the desired [R]-[wL] matrices. Remark that the floating-point miscellaneous data parameter EPSLIN (see Section II-B) is used as a singularity tolerance. In cases with small magnetizing current, it is more appropriate to use the "BCTRAN" model of Section XIX-C. For a 2-winding transformer, the equivalent circuit as created by XFORMER looks as follows: 159 The punched card output of XFORMER can be used immediately as input branch cards for mutually coupled R-wL elements (TYPE 51, 52, ...) in the electrical network (Section IV-C). Do not forget to set the miscellaneous parameter XOPT (to be used during the transient run) equal to the value of the rated frequency used to Rulebook ATP (junio 1996 - internet) H19a 2 perform the excitation- and short-circuit test. Indeed, all input data are only valid at this implicit frequency. Further, note that it is impossible (even useless) to try to reset the value of this frequency!! The following will "XFORMER" cases. explain the input data-deck structure for all possible Rulebook ATP (junio 1996 - internet) H19a 3 XIX.A.1 Input data-deck structure for "XFORMER" The only differences between the input rules for a 2-winding and a 3-winding transformer are the following: - (point 4) Number of terminal nodes, mentioned on the "BRANCH" card. - (point 5) Number of cards "NC" in the grouping specifying the electrical parameters of the transformer. - (point 6) The output for a 2-winding transformer only contains TYPE 51-52 branch cards, whereas the output for a 3-winding transformer contains TYPE 51-53 branch cards. Suppose that a user wants to model a single-phase, 2- or 3-winding transformer using the XFORMER supporting routine. His data deck then should have the following structure: 1. BEGIN NEW DATA CASE 2. XFORMER - special-request word (transfers control to the proper overlay) 3. $ERASE - request (optional) (erase all card images that might exist in punch buffer) 4. BRANCH - card (optional) (name the terminal nodes of the transformer windings) 5. "NC" data cards (specify the electrical parameters of the transformer) NC = 2 for the 2-winding case NC = 4 for the 3-winding case 6. $PUNCH - request (optional) (flush contents of punch buffer of preceding XFORMER case) Remark that the data of points 4, 5 and 6 may be repeated as many times as desired. Each such grouping is a separate data case within the "XFORMER" setup, corresponding to a different transformer. 7. BLANK CARD ending all XFORMER cases 8. BEGIN NEW DATA CASE - card to begin new EMTP data case. As for an example of such input for a single-phase, 3-winding transformer, we refer to benchmark DC-15. Let's discuss the different card formats one by one, in closer detail now. 1. The "BEGIN NEW DATA CASE" card comes first. 160 Rulebook ATP (junio 1996 - internet) H19a 2. Next comes the "XFORMER" card, a special-request card which serves to transfer control to the overlay in question. 161 3. Next comes the optional "$ERASE" card, a special-request card which serves to reset the punch buffer (LUNIT7). 162 NOTE: This optional $ERASE card should be used whenever punchcard output is requested as input for the electrical network. 4. Next comes the optional "BRANCH" card, which serves to name the terminal nodes of the transformer windings. Thus, each winding will be interpreted as a branch between "BUS1" and "BUS2". Since all of these branches will be represented as TYPE-5x elements, mutual coupling can be taken into account. NOTE: This optional card should be used whenever punched card output is requested as input for the electrical network. The card format is slightly different for the 2- and 3-winding cases. In the FORMAT diagrams, "HV" stands for high voltage, "LV" stands for low voltage, and "MED" stands for medium voltage. a) The 2-winding case: 163 4 Rulebook ATP (junio 1996 - internet) H19a 5 b) The 3-winding case: 164 5. Following are data cards, specifying the electrical transformer. These cards can be split into two parts: parameters of the - The first card groups excitation data and the output specification request. This card is slightly different for both 2- and 3-winding transformers (parameter "NW" in column 1). - The second group of cards contains short-circuit data. The number of cards in this second grouping depends on the number of windings. For the 2-winding case, only one card will be needed, but for the 3-winding case, 3 cards are needed. 5.1. First comes one card, containing both the excitation data and the output specification request. The only difference between the 2- and 3-winding cases is the value of the parameter "NW". 165 Parameters: NW : Number of windings. =2 : 2-winding transformer =3 : 3-winding transformer IMAGN: The transformer magnetizing current (in percent). Use following formula: Rulebook ATP (junio 1996 - internet) IMAGN = I ex VOLT H19a 2 100 16 SBASE where Iex = measured excitation current VOLT2 = rated voltage of LV-winding SBASE = power base Note that the case of "IMAGN = 0" will result in an error message. In such case, the user is adviced to use the BCTRAN model (section XIX-C). Further, it is accurate enough to use the magnitude of the value of the exciting current rather than the exact (but smaller) magnetizing current. SBASE: Power base (in MVA), used for "IMAGN"-referencing 5.2. Cards containing short-circuit data. For the 2-winding case, only one card will be needed, but for the 3-winding case, 3 cards are needed. a) The 2-winding case: (only 1 card needed) 166 Parameters: VOLT1: Rated RMS voltage (in kV) of winding 1 (high voltage side). VOLT2: Rated RMS voltage (in kV) of winding 2 (low voltage side) PLOSS12: Short-circuit losses (in kW) at rated frequency. ZSC12: Magnitude of the short-circuit impedance (in percent) of the transformer between winding 1 and winding 2. Note that this percent value is implicitly frequency dependent, since it is measured at a very specific frequency: the rated frequency. Further following formula should be used: ZSC12 = U sh SBASE 2 1 100 I sh VOLT where Ish = nominal current Ush = short-circuit voltage SBASE = power base VOLT1 = rated voltage of HV winding 6 Rulebook ATP (junio 1996 - internet) H19a 7 SBASE: Power base (in MVA), used for "ZSC12"-referencing (e.g. the rated power of the transformer). b) The 3-winding case: (3 cards needed) 167 Parameters: VOLTi: Rated RMS voltage (in kV) of winding "i". PLOSSij: Short-circuit losses (in kW) at rated frequency. ZSCij: Magnitude of the short-circuit impedance (in percent) of the transformer between winding "i" and winding "j". Note that this percent value is implicitly frequency dependent, since it is measured at a very specific frequency: the rated frequency. Further, following formula should be used: ZSCij = U sh SBij I sh VOLTi2 where Ish = nominal current Ush = short-circuit voltage SBij = power base VOLTi = rated voltage of winding i SBij : Power base (in MVA), used for "ZSCij"-referencing (e.g. the rated power of the transformer) 6. Next comes the optional "$PUNCH" card, a special-request card which serves to activate the puncher (LUNIT7). 168 Rulebook ATP (junio 1996 - internet) NOTES: H19a 1) This optional card should be used whenever punched card output is desired. 2) Since both the resistance- and inductance matrix are in Ohms, at the rated frequency, one should use XOPT = "rated frequency" during transient runs using this punched output as branch card input. 3) This punched card output will use the high-accuracy free-format notation for TYPE -51-52-53 elements. As a consequence, the freeformat separation- and continuation characters (see Card 18 of the STARTUP file of Section I-E-2) will be used on all punched cards. Of course, the usage of such characters must be consistent between the "XFORMER" derivation and the subsequent usage as part of a simulation. Note that the data of points 4, 5 and 6 may be repeated as many times as desired. Each such grouping is a separate data case within the "XFORMER" setup, corresponding to a different transformer. 7. To end all "XFORMER" cases, a blank card is used. 8. If the user wants to shut off the EMTP at this point, a "BEGIN NEW DATA CASE" card, followed by a blank card should be entered next. XIX-A.2 Example of "XFORMER" data set up Consider a one-phase two-winding transformer with both primary and secondary winding grounded at one terminal. The other terminals are to be named "H1" and "L1" for high-voltage and low-voltage node, respectively. Finally, the following data were obtained by measurement (at 50 Hz) for this transformer: Power rating S Excitation losses Pex,loss Excitation current Iex Short-circuit losses Psh,loss Short-circuit current Ish Short-circuit voltage Ush Voltage rating Vprim/Vsec : : : : : : : 0.0063 MVA 0.065KW(not needed for XFORMER) 1,85 Amps 0.095 KW 16 Amps 8.3 Volts .220/.377KVolts The derived values for the other parameters are: per-unit magnetizing current: 1.85 * 220 = 0.0646pu 6300 short-circuit impedance: Z sh = 8.3 U sh = = 0.518 Ohms (at 50Hz) 20 16 I sh (6.46%) 8 Rulebook ATP (junio 1996 - internet) H19a 9 per unit short-circuit impedance: Z sh,pu = Z sh * S U 2HS = 0.02296pu (2.296%) The short circuit test was performed using 16 A rather than the normal HV current Inom. Hence the value for the losses should be modified: 2 Psh,nom 16.71 = 0.095* = 0.10363KW 16 where the index "nom" refers to nominal conditions and "m" refers to actual measuring conditions. I sh,nom = 6300 = 16.71A 377 we find 2 Psh,nom 16.71 = 0.095* = 0.10363KW 16 Further note that the resistance values can be tested by handcalculations: HV: R HV = 0. 3711 = 0.186 2 2 LV: R LV = 0. 3711 220 * = 0.063 377 2 These values can not be traced back in the punched results. This is because the full admittance matrix is inverted, resulting in non-zero off diagonal values in the resistance matrix. Further details can be found in the Theory Book. The card deck representing the XFORMER input, then would result in the following card sequence: BEGIN NEW DATA CASE C 1 2 3 4 5 6 7 8 C 3456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 XFORMER $ERASE BRANCH H1 L1 C C 2 windings, IMAG = 6.460 %, PBCUR = .0063 MVA C 2 6.460 .0063 C C .377/.220 voltage ratio, PLOSS12 = .10363 KW, ZSC12 = 2.296 %, PBZ12 = .0063 C Rulebook ATP (junio 1996 - internet) .377 .220 .10363 $PUNCH BLANK CARD ENDING XFORMER BLANK CARD ENDING ALL CASES 2.296 H19a .0063 XIX.A.3 Output data-deck structure For the sample input data of the preceeding paragraph, the output appears as follows: Comment card. NUMDCD = 1. Marker card preceding new EMTP data case. Comment card. NUMDCD = 3. Comment card. NUMDCD = 4. Request for transformer [R] +jw[L] computation. Erase all of 0 cards in the punch buffer. Node names for LUNIT7-punched branch cards. Comment card. NUMDCD = 8. Comment card. NUMDCD = 9. Comment card. NUMDCD = 10. New device. 2 6.460000E+00 6.300000E-03 Comment card. NUMDCD = 12. Comment card. NUMDCD = 13. Comment card. NUMDCD = 14. Wind. 0.377E+00 0.220E+00 0.104E+00 0.230E+01 |C data://C/GUIDO/XFORMER.IN |BEGIN NEW DATA CASE |C 1 2 3 4 5 6 7 8 |C 3456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 |XFORMER |$ERASE |BRANCH H1 L1 |C |C 2 windings, IMAG = 6.460 %, PBCUR = .0063 MVA |C |2 6.460 .0063 |C |C .377/.220 voltage ratio, PLOSS12 = .10363 KW, ZSC12 = 2.296 %, PBZ12 = .0063 |C |.377 .220 .10363 2.296 .0063 Single-phase, 2 -winding transformer. IMAGN = 6.46000000E+00 percent based on Voltage across winding Losses Impedance based on [ kV ] in [kW] [percent] [MVA] High 0.38 High -- Low 0.10 2.2960 0.006 6.30000000E-03 MVA. Impedance matrix as required for transient studies, with reactance X in ohms at the power frequency. R X R X R X High 0.9272619E-01 0.3493188E+03 Low -0.5411077E-01 0.2037411E+03 0.3157658E-01 0.1189555E+03 Short-circuit input impedances follow --- obtained from the just-printed impedance matrix by reverse computation. This represents sort of a check on the computation: High -- Low 0.37071 0.36138 Repeat the preceding calculation, only this time the starting point will be the impedance matrix with all elements rounded to approximately five decimal digits: High -- Low 0.37070 0.37938 Request for flushing of punch buffer. |$PUNCH A listing of 80-column card images now being flushed from punch buffer follows. =============================================================================== 1234567890123456789012345678901234567890123456789012345678901234567890123456789 =============================================================================== C <++++++> Cards punched by support routine on 17-Apr-89 10.34.43 <++++++> C XFORMER C $ERASE C BRANCH H1 L1 C C C C 2 windings, IMAG = 6.460 %, PBCUR = .0063 MVA C C C 2 6.460 .0063 C C C C .377/.220 voltage ratio, PLOSS12 = .10363 KW, ZSC12 = 2.296 %, PBZ12 = .0063 C C C .377 .220 .10363 2.296 .0063 51,H1 , , , , 0.9272618817281E-01 , 0.3493188082966E+03 , ,,,, 52,L1 , , , , -0.5411077293636E-01 , 0.2037410770117E+03 $ 0.3157657837292E-01 , 0.1189555285801E+03 , ,,,, =========< End of LUNIT7 punched cards as flushed by $PUNCH request >======= XIX.A.4 Usage of TYPE 51-52-53 punched output of "XFORMER" TYPE 51-52-53 punched output cards can be used immediately as branch cards representing the transformer. Don't forget to put XOPT (miscellaneous data card) equal to the value of the rated frequency (transformer testing frequency) during a transient simulation. Further, be sure that the free-fromat separation- and continuation characters are compatible between XFORMER and the transient run. For more details, see Section IV-C. Recall that XFORMER can not deal with non-linearities (such as saturation and hysteresis). This could only be done via external addition of a saturation 10 Rulebook ATP (junio 1996 - internet) curve. But in impossible. such case, XFORMER proper should H19a deal with I ex = 0, 11 wich is Rulebook ATP (junio 1996 - internet) 1. "OBSERVE PARALLEL MONTE CARLO" H19b 1 for Parallel "STATISTICS" The philosophy and theory behind OPMC is covered in Ref. [52], so such information will not be repeated here. Instead, the presentation here will be limited to an explanation of the interactive dialogue that is possible following the program prompt, which appears as follows: key (INIT, SHOW, END, ADD, EDIT, USE, WAIT, GO, SHOT, WIDTH, CARD, HELP, QUIT): User alternatives, most of which are shown in parentheses, will be explained one at a time in following paragraphs. "INIT" (short for "initialize") is the appropriate first command if no correctly-structured disk file PARALLEL.LIS already exists. Alternatively, it can be used to erase all history from such an existing, legal, history file. "SHOW" will produce a display having one row for each EMTP process that has submitted information since the previous initialization. For example: USERID Starting time Last-shot time KNT NENERG INDMCB Extrema and switch times stored here --> -------------------------------------------------------------------------------------------------1 Milano 11-Nov, 20.48 11-Nov, 20.54 26 750 600 //c/wsm/dc66lunit9.bin 2 London 09-Nov, 14.03 10-Nov, 01.39 142 200 146 //b/keep/process_2/Binary_Output.bin 4 Berlin 12-Nov, 19.45 12-Nov, 19.46 2 430 48 //c/wsm/Output.lis 5 Moscow 12-Nov, 19.45 12-Nov, 19.46 12 150 242 //a/BOB/Goodie_Goodie.bin The 6-byte USERID is from either the STARTUP file or a subsequent "USER IDENTIFICATION" declaration. Note that lower case is preserved. This label must be unique for any such parallel Monte Carlo simulation, since it identifies the process. The "Starting time" is the same figure that is a part of the heading that begins the LUNIT6 output of a simulation. The "Last-shot time" is the time at which a row of the table was last updated, at the completion of another energization. Variables KNT and NENERG show the number of the lastcompleted energization and the terminal number of such energizations. INDMCB is the index to RAM-based storage of the energizations. Finally, history of the energizations is stored in the disk file having the 40-byte name labeled "Extrema and switch ...", which was taken from the $OPEN card connecting this file to LUNIT2. Should the user want more information, he should send "SHOW ALL", which will append more information after the just-explained table. An illustration follows: Process JJFULL KNTSUM KSWTCH 182 6 created NTOT 25 "START AGAIN" tables named .. //c/wsm/Output.bin IBR NSTAT JJLAST LSIZ23 JJFULL 15 10 6 4000 2 Shown first is the file name of the "LABCOM" tables (normally there will be just one). About following integers, KNTSUM is the sum of all energizations (sum of rows in the KNT column), KSWTCH is the number of switches, NTOT is the number of nodes, IBR is the number of branches, NSTAT is the number of output variables, JJLAST is the last row of the table (visible only if it has not been made inactive by USE), LSIZ23 is the dimensioned limit to RAM-based storage of the energizations, and finally, JJFULL is the process number mentioned in the first line. The command "SHOW TOP" will display three hidden records at the beginning of the table. An illustration follows: Columns: 12345678901234567890123456789012345678901234567890123456789012345678901234567890 123456789012345678 Misc. data = 6 25 15 10 6 4000 2 //c/wsm/Output.bin File locks =1 11 1 Inactivity = 1 Should the user want to "EDIT" these rows, they are numbered -2 (miscellaneous data), -1 (file locking flags), and 0 (inactivity flags). If a number follows the "SHOW" command (e.g., "SHOW 5" or "SHOW ALL 5"), it will be Rulebook ATP (junio 1996 - internet) H19b interpreted as the repetition time in seconds for the display. The loop will continue until it is broken by the user-keyed interrupt of SPY. This assumes that the user-keyed interrupt is available for the computer of interest. If not, perhaps a computer-dependent interrupt of the process will be required. The "END" command will conclude either a single process, or all parallel processes, at the end of the on-going energization or energizations. For a single process, follow the command by the process number (e.g., "END 3" to put process number 3 to bed. By definition, the process number is the row number in the "SHOW" display. To put all processes to bed, send "END ALL". The response of OPMC is to reduce NENERG to KNT. The EMTP checks for such a change after each energization except the first, and it will modify NENERG accordingly, resulting in a premature end to the energizations and a beginning of statistical tabulations, if any. The "ADD" command will punch EMTP data cards for subsequent statistical tabulation of all energizations of all parallel processes. More precisely, it will create the cards to combine (hence, "ADD") all such raw data during a subsequent execution of EMTP. The user takes possession of these cards following a $PUNCH request. To the computer-created cards must be added the tabulation requests that are desired by the user, of course. This is done by manual editing prior to use of the data cards. The "EDIT" command allows the user manually to replace any single row of the central statistics file PARALLEL.LIS. Follow the command word by the process number (the row number of the "SHOW" display). There will be two prompts for the 99-column line in two parts. Send bytes 1-56 (through INDMCB) for line 6 : Send file name (bytes 59:98) to complete row : Note that the two blanks preceding the file name, columns 57 and 58, are not redefined. The "USE" command will toggle the activity status of a row of the central statistics file without affecting the associated process in any way. Follow the command by the process number (the row number of the "SHOW" display) that is to be modified. A subsequent "SHOW" will illustrate the modified status. A row that was visible will become missing (inactive), whereas a row that previously was missing will become visible (active). In the preceding illustration, row number 3 was missing because it had been made inactive by means of a "USE 3" command. The next time a new process would be added to the table, it would fill the last such inactive row before a brand new row would be appended to the end. "WAIT" is like "END" except that it results in process hibernation rather than termination. The hibernating status of a process is indicated in the "SHOW" display by a minus sign applied to the maximum number of energizations "End". To reactivate a hibernating process, use "GO". "GO" is like "END" except that it cancels the hibernation of "WAIT". Such activation may require a few seconds (up to five for Apollo) actually to take effect, however. "SHOT" is like "END" except that it allows the user to change the maximum number of energizations NENERG at the end of the on-going energization. There will be a subsequent prompt for the new NENERG (either one or a full vector for all processes). If "SHOT ALL" is used, a subsequent implied "SHOW" will confirm the modified NENERG for all processes. 2 Rulebook ATP (junio 1996 - internet) H19b 3 "WIDTH" allows the user to adjust the column width of the output. The command is to be followed by the maximum column width, which must not be less than 79 to avoid rejection. This is the same as the special-request word "TRUNCATE OUTPUT LINES". Without any such declaration, the truncation width is set equal to the output width KOL132 as defined by STARTUP at the start of a new data disk file (not by $STARTUP or $WIDTH, however). To see the full row of the "SHOW" table requires 102 columns, with any smaller figure truncating the 40byte file name on the right. The full width of "SHOW TOP" requires an extra 8 columns (i.e., 110). "CARD" results in the conversion of the UNFORMATTED output file of a process into 80-column FORMATTED output cards. Follow the command by either the process number (the row number of the "SHOW" display) or by the file name following the tag "FILE=" (e.g., "CARD FILE=binary.bin). This is the input. The output will be punched cards (access by $PUNCH). For the inverse operation (for FORMATTED input and UNFORMATTED output), use "CARD READ", after which the user must connect his own input and output files using $OPEN. As a prompt will clarify, these involve units 87 and 88, respectively, and these must be followed by "GO" to actually perform the conversion. The "CARD" command is useful if the Monte Carlo simulation has been split between two or more incompatible computers or operating systems. Of course, in FORMATTED form, results can be exchanged between any two EMTP computers, whereas UNFORMATTED output files generally can not be. Punched cards provide a universal medium of exchange, after which "CARD READ" restores the original, computer-dependent UNFORMATTED form. Also, the "CARD" command allows for easy human inspection and mechanical editing of output files, should this ever prove to be necessary or desirable. "HELP" produces explanation of the sort now being read. "QUIT" will exit "OPMC" in civilized fashion, returning to the opening EMTP prompt after the case-summary timing line that generally is of no interest (ignore it). Rulebook ATP (junio 1996 - internet) H19d 1 XIX-D. "CHANGE SWITCH" to Convert Former Switched-R,L Elements to Type-99, 98 Section II-A-42 explains the reason for the "CHANGE SWITCH" feature in considerable detail, and that introduction will not be repeated here. Nor will there be any explanation of former switched-R and switched-L element formats, which can be found in Rule Books printed earlier than the 1982 removal of such elements. Following the "CHANGE SWITCH" request, the user can place an old EMTP data in its entirety, if this is most convenient. What the program does is discard all input cards through the first blank card (for a complete data case, this would be the blank card ending branch cards). Then it reads cards that are assumed to be switch cards, until the blank card terminating these. All later cards, through the following "BEGIN NEW DATA CASE" separator card, are also ignored. So, it is only switch cards that are considered, and only the switchedR and switched-L elements among these are actually processed. Other switches are ignored. This illustrated by the second subcase of BENCHMARK DC-14, which contains informative comment information: BEGIN NEW DATA CASE C 2nd of 2 subcases converts old Type-91, 92, or 93 to pseudo-nonlinear. CHANGE SWITCH NODE1 NODE2 1.0 { Series R-L-C will be discarded, of course 91LEFT RIGHT 0.3E6 { From p. 20 example of 1980 Rule Book } 1 0.0 300. 0.3 200. 0.6 150. 1000. 150. 9999 91 NODE1 NODE2 COPYL COPYR .25E6 { Final card from p. 20 of 1980 Rule Book BLANK card ending program branch cards. This is flag that switches follow. C Type-92 switched-R element follows (to be converted): 92JDAYA LMONA 8.5 3.E5 3.5E5 3 C Type-93 switched-L element follows (to be converted): 93SENDA NEUTRL 4.2 2.5 0.7 3.3 1 BLANK card terminating program switch cards BEGIN NEW DATA CASE $PUNCH { Flush the punched-card output of equivalent pseudo-nonlinear elements BLANK Punched output includes the original switch cards on comment cards as documentation for the Type-98 and Type-99 elements that follow. Other comment cards label the new data. This is illustrated by the beginning of the punched output from BENCHMARK DC-14: Marker card preceding new EMTP data case. Comment card. NUMDCD = 63. Convert switched-R,L cards to pseudo-nonlinear. This code will read data types 91-Time-Dependent and punched as pseudo-nonlinear elements to meet Type-91: piecewise linear resistor Characteristic. 0.0 300. Characteristic. 0.3 200. Characteristic. 0.6 150. Characteristic. 1000. 150. Characteristic. 9999 Type-91: piecewise linear resistor Comment card. NUMDCD = 77. Comment card. NUMDCD = 78. Type-92: switched resistance Comment card. NUMDCD = 80. Type-93: Switched inductance Request for flushing of punch buffer. |BEGIN NEW DATA CASE |C 2nd of 2 subcases converts old Type-91, 92, or 93 to pseudo-nonlinear. |CHANGE SWITCH R, 92-Switched Resistance, and 93-Switched Inductor. Such old data will be converted, modern EMTP requirements. |91LEFT RIGHT 0.3E6 1 | 0.0 300. | 0.3 200. | 0.6 150. | 1000. 150. | 9999 |91 NODE1 NODE2 COPYL COPYR .25E6 |C Type-92 switched-R element follows (to be converted): |C 3456789012345678901234567890123456789012345678901234567890 |92JDAYA LMONA 8.5 3.E5 3.5E5 3 |C Type-93 switched-L element follows (to be converted): |93SENDA NEUTRL 4.2 2.5 0.7 3.3 1 |$PUNCH { Flush the punched-card output of equivalent pseudo-nonlinear elements Rulebook ATP (junio 1996 - internet) H19d A listing of 80-column card images now being flushed from punch buffer follows. =============================================================================== 1234567890123456789012345678901234567890123456789012345678901234567890123456789 =============================================================================== C 91LEFT RIGHT 0.3E6 91LEFT RIGHT 3333. C VSTART 0.3E6 C TR in sec. R(TR) in ohms C 0.0 300. 0.0 300. C 0.3 200. 0.3 200. C 0.6 150. 0.6 150. C 1000. 150. 1000. 150. C 9999 9999 : : =========< End of LUNIT7 punched cards as flushed by $PUNCH request >======= 2 Rulebook ATP (junio 1996 - internet) H19e 1 XIX-E. "OLD TO NEW ZNO" to update pre-"M39." ZnO data cards Section II-A-23 explains access to this supporting program by means of an "OLD TO NEW ZNO" request. Only those with ZnO branch cards predating "M39." program versions of the spring and summer of 1984 need be concerned, of course. Old ZnO branch cards are easily recognized, since data is split into two or more isolated groups. A Type-92 nonlinear element just reserved space for the ZnO arrester, and it involved a dummy characteristic. Parameters of the ZnO itself were read from special data cards immediately before the output-variable (usually node-voltage) specification cards of Section XII. The "OLD TO NEW ZNO" special request is to be followed by the complete, old data case. The conversion routine deals with variable classes, counting blank cards that terminate these, so be careful if other than a complete data case is supplied. As an illustration, consider the 2nd subcase of BENCHMARK DC-14. There is no printout at all while the program is executing, except for any comment cards. When the ZnO data conversion is complete, there will be a oneline message to this effect, as shown by the following output: C 1 2 3 4 5 6 7 C 34567890123456789012345678901234567890123456789012345678901234567890123456 C ------------------------------------------------|------------------------Request to convert old ZnO data to new formats. |OLD TO NEW ZNO { Spe Done with ZnO conversion in "SATURA" of overlay 24. Timing figures characterizing central processor (CP) solution speed. ------ It is the user's responsibility to pick up the punched cards (via $PUNCH request), since otherwise, there is no output. Rulebook ATP (junio 1996 - internet) H19g 1 XIX-G "SATURA" TO DERIVE (ψ,i) PEAKVALUE CURVES Purpose & Applications The specification of nonlinear inductors requires a (flux-current) saturation curve relating the total flux linkage to the element current. Such curve can be derived, either by using RMS (voltage, current) readings, or by using a (current, incremental inductance) characteristic. Both approaches are possible, and will be discussed separately, because of the differences in data entry. The punched results ([Equation: psi, i]) then can be used in the saturable transformer component model (section IV-E) or in the nonlinear inductor (type-98 pseudo-nonlinear reactor or type-93 nonlinear inductance) that can be added externally to linear transformer models obtained via BCTRAN (section XIX-C) or XFORMER (section XIX-A). Although the resulting saturation curve will be single-valued, hysteresis can be taken into account by manually displacement of the values of the current. These results than can be used for the type-96 pseudo-nonlinear hysteric reactor (section V-D). This solution is an alternative for the special supporting routine HYSDAT (section XIX-H). Input data deck structure for SATURA In general, an input data-deck for the supporting routine SATURA has the following structure: 1. BEGIN NEW DATA CASE 2. SATURA - special request to activate supporting routine SATURA (see section II-A3. $ERASE - request (optional) to clear punch buffer 4. Per unit base specification card 5. Card grouping, supplying (IRMS, VRMS) or (current, incremental inductance) break points, terminated by a special flag card 6. $PUNCH - request (optional) to activate punching Remark that the points 3 through 6 may be repeated as many times as desired. Each such grouping then is considered as a separate data case, corresponding to a different saturation curve. 7. BLANK CARD ending all saturation cases 8. BEGIN NEW DATA CASE 9. BLANK CARD ending all cases For an example of such input, the reader is referred to benchmark DC13 (first subcase) or to section XIX-G-3. Because of the possibility of two different approaches, two different data entries will be discussed next: - (IRMS, VRMS) data entry; - (I,L) data entry. Only card type 4 and 5 will be discussed. explanatory. All other cards are self- Rulebook ATP (junio 1996 - internet) H19g XIX-G-2.a. (IRMS, VRMS) data entry 169 With an impressed sinusoidal voltage, an RMS reading of the non-sinusoidal current into the winding is obtained. Supporting program "SATURA" is designed to convert from the user's RMS (v-i) curve to the peak values of a (ψ-i) curve needed for transient simulation. The user inputs his (v-i) curve (RMS values) as a sequence of points, with linear interpolation between these values assumed. The output (ψ-i) curve (peak values) is likewise piecewise-linear with the same number of points. Following approximations are made: 1. The use of linear interpolation in between points. 2. The use of finite-difference approximation to sinusoidal excitation. Onedegree step-size is used, along with trapezoidal-rule integration where needed. 3. Hysteresis is ignored. Let us discuss the data entry in more detail now. will be discussed here. Only card type 4 and 5 Card 4. The card format for the per unit base specification card : 170 2 Rulebook ATP (junio 1996 - internet) H19g 3 Parameters: FREQ: frequency (in Hz) of the impressed sinusoïdal voltage source. VBASE: single-phase base voltage (in kV) on which the input break points are based. SBASE: single-phase base power (in MVA) on which the input break points are based. KTHIRD: parameter controlling the type of output. = 0 : only first-quadrant output; = 1 : full curve (first- and third-quadrant output). Card 5. Next comes a card grouping, supplying the (IRMS,VRMS) break points : Only one breakpoint per card can be specified. One should start by specifying the break point closest to the origin (omitting point (0. ,0.), though), and then moving continuously away. The curve must be single-valued. Successive slopes should be non-decreasing. The slope defined by the last breakpoint will be extrapolated to infinity (cfr. fig. 1). Values are in per unit, based on the previously-specified single-phase base : S base (kA) 27 V base I RMS (pu) = I RMS (A) / I base (A) 28 I base = V RMS (pu) = V RMS (kV) / V base (kV) The card format to be used is as follows : 171 - The maximum number of breakpoints is limited to 100. - If the saturation curve is intended for a type-98 pseudo-nonlinear element, a maximum of five breakpoints is recommended, in order to avoid numerical tracking problems. - On the other hand, for a type-93 true nonlinear element, many breakpoints around the kneepoint of the saturation curve should be used whenever a smooth approximation of the nonlinear magnetizing current is of interest. This card grouping should be terminated by following special flag card : Rulebook ATP (junio 1996 - internet) H19g 172 XIX-G.2.b. (I,L) data entry Instead of an (IRMS, VRMS) characteristic, the user has the option of inputting a current versus incremental inductance characteristic. The trapezoidal rule of integration is then used in this case, to convert the inductance curve into the desired output curve of flux versus current : ψ (i) = ∫10 L(n)dn L + Lk - 1 }.( ik - ik - 1) ψ k = ψ k - 1+ { k 2 ψ1 = 0 k = 2,3,,,, 173 Card 4. The card format for the per unit base specification : 4 Rulebook ATP (junio 1996 - internet) H19g 5 174 Parameters: FLAG: = -1; special request flag for (I,L) data entry (as opposed to (I RMS, VRMS) data entry, explained in point 2.a). SCALI: multiplicator for the current coordinate of the input breakpoint, in order to obtain results in Amps. SCALL: muliplicator for the inductance coordinate of the input breakpoint, in order to obtain results in Henries. Note: If both SCALI and SCALL are blank or zero, the supplied characteristic is understood being specified in units of Amps and Henries, so that no conversion is necessary. KTHIRD: see point 2.a. Note: Although for the (I,L) data entry, the origin point (0. ,0) of the saturation curve appears in the printed output, this value will be omitted in the punched output. Card 5. Card grouping specifying a current versus an incremental inductance characteristic. The current breakpoints ik must be monotone increasing, starting with value zero. Values are in Amps (if SCALI = 0) or otherwise, i k * SCALI is in Amps. The incremental inductance values dψ 32 Lk = di i k all must be positive. Lk * SCALL is in Henries. Values are in Henries (if SCALL = 0) or otherwise, The card format to be used is as follows : 175 The same recommendations as in point 2.a. are valid. This card grouping should be terminated by the same special flag card, as explained in 2.a. 3. Example Rulebook ATP (junio 1996 - internet) H19g 6 Consider a five-leg core-type transformer with STAR-connected high-voltage winding with grounded neutral and DELTA-connected low voltage winding (YNd5). Rated power: 750 MVA Rated voltage: 420 kV/27 kV (line-line values) From the positive-sequence excitation test, following data are available : Table 1. where Uex Iex Pex KV A KW 22.76 8.20 206.2 24.29 11.35 240.26 25.64 15.50 270.13 27.00 21.16 311.00 27.50 24.68 323.03 28.47 31.63 355.48 29.10 38.30 385.41 32.50 80.97 560.00 Uex = excitation voltage (RMS, line-line value) Iex = excitation current (RMS, three-phase average) Pex = excitation loss (three-phase value) As a first approximation, the RMS excitation current Iex,w in a DELTA winding equals I ex ,w ≈ I ex / 3 (harmonics neglected) 33 Further, the RMS ma approximated by gnetizing current I m ,ω ≈ Hence, the characteristic : above measured I 2 ex,w Table Im,w in P - ex 3 U ex 1 the DELTA winding is 2 reduces to Table 2: Uex Imw KV A 0.8430 3.65 0.8996 5.66 0.9496 8.23 following saturation Rulebook ATP (junio 1996 - internet) H19g 1.000 11.60 1.019 13.70 1.054 17.78 1.078 21.66 1.204 46.40 7 When converting this characteristic into input data for supporting routine SATURA, we first need to convert to per unit values for the equivalent phase. Sbase = 750/3 = 250 MVA Vbase = 27 kV Ibase = 750/(3*27) = 9259A The input data (table 3) can be obtained from table 2, using the following conversion formulas : IRMS(pu) = IRMS(A) / Ibase(A) VRMS(pu) = VRMS(kV) / Vbase(kV) This finally results in following table : Table 3: VRMS(pu) IRMS(pu) 0.8430 0.3942 E-3 0.8996 0.6113 E-3 0.9496 0.8888 E-3 1.000 1.253 E-3 1.019 1.480 E-3 1.054 1.920 E-3 1.078 2.333 E-3 1.204 5.011 E-3 The input file for supporting routine SATURA then looks as follows: BEGIN NEW DATA CASE C input data for supporting routine SATURA C Excitation test results for 3-phase transformer C UBASE = 27 kv (RMS, equivalent phase) C SBASE = 750/3 = 250 MVA (equivalent phase) C Ibase = 250 / 27 = 9.26 kA C C 345678901234567890123456789012345678901234567890123456789012345678901234567890 C 1 2 3 4 5 6 7 8 $ERASE SATURATION 50.0 27.00 250.0 1 0 .3942 -3 .8430 .6113 -3 .8996 .8888 -3 .9496 1.253 -3 1.0 Rulebook ATP (junio 1996 - internet) 1.480 1.920 2.333 5.011 -3 -3 -3 -3 9999 H19g 1.019 1.054 1.078 1.204 $PUNCH BLANK LINE ending saturation data BEGIN NEW DATA CASE BLANK LINE ENDING ALL CASES The corresponding output looks as follows : Comment card. NUMDCD = 1. |C data://A/GUIDO/SATURA3.IN Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE Comment card. NUMDCD = 3. |C input data for supporting routine SATURA Comment card. NUMDCD = 4. |C Excitation test results for 3-phase transformer Comment card. NUMDCD = 5. |C UBASE = 27 kv (RMS, equivalent phase) Comment card. NUMDCD = 6. |C SBASE = 750/3 = 250 MVA (equivalent phase) Comment card. NUMDCD = 7. |C Ibase = 250 / 27 = 9.26 kA Comment card. NUMDCD = 8. |C Comment card. NUMDCD = 9. |C 345678901234567890123456789012345678901234567890123456789012345678901234567890 Comment card. NUMDCD = 10. |C 1 2 3 4 5 6 7 8 Erase all of 0 cards in the punch buffer. |$ERASE Request for magnetic saturation computation. |SATURATION Misc. const. 5.000E+01 2.700E+01 2.500E+02 0 |50.0 27.00 250.0 1 0 (I, V) point. 3.94200E-04 8.43000E-01 |.3942 -3 .8430 (I, V) point. 6.11300E-04 8.99600E-01 |.6113 -3 .8996 (I, V) point. 8.88800E-04 9.49600E-01 |.8888 -3 .9496 (I, V) point. 1.25300E-03 1.00000E+00 |1.253 -3 1.0 (I, V) point. 1.48000E-03 1.01900E+00 |1.480 -3 1.019 (I, V) point. 1.92000E-03 1.05400E+00 |1.920 -3 1.054 (I, V) point. 2.33300E-03 1.07800E+00 |2.333 -3 1.078 (I, V) point. 5.01100E-03 1.20400E+00 |5.011 -3 1.204 Special termination-of-points card. | 9999 Derived saturation curve gives peak current as a function of flux : Row Current [amp] Flux [volt-sec] 1 0.0000000000 0.0000000000 2 5.1618795027 102.4604983603 3 12.3418337241 109.3398153320 4 17.5040965216 115.4169504661 5 24.8062758133 121.5427026812 6 31.4592838067 123.8520140322 7 39.1754389519 128.1060086260 8 49.5865689002 131.0230334903 9 97.2627733421 146.3374140282 9999 Next, check the derived curve by independent reverse computation. Assuming sinusoidal voltage (flux) at the level of each point, rms current is found numerically. This curve should be equal to the original I-V points inputted. Row Current in P.U. Voltage in P.U. 2 0.00039420 0.84300000 3 0.00061130 0.89960000 4 0.00088880 0.94960000 5 0.00125300 1.00000000 6 0.00148000 1.01900000 7 0.00192000 1.05400000 8 0.00233300 1.07800000 9 0.00501100 1.20400000 Request for flushing of punch buffer. |$PUNCH A listing of 80-column card images now being flushed from punch buffer follows. =============================================================================== 1234567890123456789012345678901234567890123456789012345678901234567890123456789 =============================================================================== C <++++++> Cards punched by support routine on 29-Jun-89 09.04.57 <++++++> C SATURATION C 50.0 27.00 250.0 1 0 C .3942 -3 .8430 C .6113 -3 .8996 C .8888 -3 .9496 C 1.253 -3 1.0 C 1.480 -3 1.019 C 1.920 -3 1.054 C 2.333 -3 1.078 C 5.011 -3 1.204 C 9999 5.16187950E+00 1.02460498E+02 1.23418337E+01 1.09339815E+02 1.75040965E+01 1.15416950E+02 2.48062758E+01 1.21542703E+02 3.14592838E+01 1.23852014E+02 3.91754390E+01 1.28106009E+02 4.95865689E+01 1.31023033E+02 9.72627733E+01 1.46337414E+02 9999 =========< End of LUNIT7 punched cards as flushed by $PUNCH request >======= 8 Rulebook ATP (junio 1996 - internet) H19g 9 The resulting (ψ,i) characteristic looks as follows : 176 After the flux ψ(t) exceeds saturation flux [Equation: psi sub s], the last slope of the non-linearity is determined by the air-core inductance L air (the additional flux travels in air). The air-core inductance Lair can be approximated by the geometry of the corresponding winding (in this case the low voltage winding). 2 Lair ≈ µ 0 .ω . A / I where A = I = w = µ0 = cross-sectional area of the winding (17,925 cm2) winding length leg length (263 cm) number of turns (54) permeability of free space (1.256637 * 10-8 H/cm) For the transformer considered, Lair ≈ 0.0025 H. This value includes the leakage impedance of the low voltage winding. If we use the BCTRAN Matrix for the linear transformer model, the nonlinear elements are connected to the low voltage transformer terminals in addition to the linear transformer elements. (In this case it is not necessary to correct Lair by the winding leakage inductance) (By using the [A] [R] Matrix without excitation information, it is also not necessary to correct the nonlinear inductance elements by the linear magnetizing reactance). For the transformer in question ψs≈1.2ψr≈146Vs. If ψres=0.6ψr=72.9Vs in one leg, the flux in this winding at its first maximum becomes : 2 * 121.54 Vs + 0.6 * 121.54 Vs = 316 Vs. The air flux ψair= 316 Vs - 146 Vs = 170 Vs. The last point of the nonlinear characteristic can be calculated from : ∆Imw = 170Vs/0.0025H : 68000A Imw = 68000 A + 97 A = 68097 A Rulebook ATP (junio 1996 - internet) H19g 10 Rulebook ATP (junio 1996 - internet) H19h 1 XIX-H. "HYSDAT" to create type-96 hysteretic inductor characteristic 1. Purpose and applications The specification of remanent magnetism requires a (flux-current) hysteresis curve. Recall that the shape of the hysteresis loop for an inductor depends primarily on the material of the core, while the scaling of the hysteresis loop depends on geometry, the number of turns and other construction factors. What is actually stored in supporting routine HYSDAT is essentially the shape of the loop for a certain type of material. The user then should provide information for the actual reactor being specified, so that a correct scaling can be performed. Hence the data entry is very simple. The punched results ([Equation: psi, i]) can be used for the type-96 hysteretic inductor (section V-D). Up to now, only one curve shape (corresponding to ARMCO Mn) can be selected. With some care, supporting routine SATURA (section XIX-G) can be used to generate hysteresis loops for other materials, it should be noted. 2. Input data deck structure for HYSDAT In general, an input following structure : data deck for supporting routine HYSDAT has the 1. BEGIN NEW DATA CASE 2. HYSTERESIS - special request to activate supporting routine HYSDAT (see section II-A-45). 3. $ERASE - request (optional) to clear punch buffer 4. shape specification card 5. scale specification card 6. $PUNCH - request (optional) to activate punching. Remark that the points 4 through 6 may be repeated as many times as desired. Each such grouping then is considered as a separate data case, corresponding to a different hysteresis loop. 7. BLANK CARD ending all hysteresis loops 8. BEGIN NEW DATA CASE 9. BLANK CARD ending all cases For an example of such input, the reader is referred to benchmark 13 (third subcase). Only card 4 and 5 deserve a further explanation. All other cards are self-explanatory. Card 4. Shape specification card : Since the shape of the hysteresis loop for an inductor depends primarily on the material of the core, such core material specification should be possible. This can be obtained using following card format : Rulebook ATP (junio 1996 - internet) H19h 177 Parameters: ITYPE: type code specifying the magnetic core material of the inductor. = 1: ARMCO Mh oriented silicon steel (perhaps, other alternatives will be provided later). LEVEL: flag, specifying the desired level = 1: hysteresis loop represented in = 2: hysteresis loop represented in = 3: hysteresis loop represented in = 4: hysteresis loop represented in of accuracy. 4 to 5 points 10 points 15 points 20 to 25 points. Card 5. Scale specification card : The scaling of the hysteresis loop depends on the geometry, the number of turns and other factors of the actual construction. This scaling can be fully specified via the location of the positive saturation point. By definition, this is the point in the first quadrant where the hysteresis loop changes from being multivalued to being single-valued. Following card format allows you to specify this point : 178 Parameters: CURSAT: current (in A) of the positive saturation point. FLXSAT: flux (in Vs) of the positive saturation point. Note: By definition, the positive saturation point is the point of the first quadrant where the hysteresis loop changes from being multivalued to being single-valued. One suggested way of determining values for both these coordinates from normal or DC magnetizing curves is as follows. Beginning at the 2 Rulebook ATP (junio 1996 - internet) H19h 3 right (i.e. linear part) on the normal magnetization curve, a straight-edge is used to extrapolate this line back to the left. The point where this straight line and the actual curve first begin to diverge is then taken as the positive saturation point. It is recommended to use the DC magnetization curve, since this is more readily available than hysteresis loops. A hysteresis loop should be here 3. Example The following is an extract from DC13. The input looks as follows : 4BEGIN NEW DATA CASE HYSTERESIS C ITYPE LEVEL { Request Armco M4 oriented silicon steel -- only 1 available 1 2 { That was ITYPE=1. As for LEVEL=2, moderate accuracy output 500. 1.0 { Current and flux coordinates of positive saturation point $PUNCH BLANK card ending "HYSTERESIS" data cases The output looks as follows : Comment card. NUMDCD = 1. |C data://A/GUIDO/HYS.IN Marker card preceding new EMTP data case. |BEGIN NEW DATA CASE Request to make Type-96 hysteresis branch cards. |HYSTERESIS Comment card. NUMDCD = 4. |C ITYPE LEVEL { Request Armco M4 oriented silicon steel -- only 1 available Begin B-H generator. ITYPE = 1. LEVEL = 2. | 1 2 { That was ITYPE=1. As for LEVEL=2, moderate accuracy output CURSAT, FLXSAT = 5.0000E+02 1.0000E+00 | 500. 1.0 { Current and flux coordinates of positive saturation point Derived characteristic for Type-96 pseudo-nonlinear EMTP branch card follows. Current Flux -1.25000000E+02 -9.70588235E-01 -1.56250000E+01 -9.19411765E-01 9.37500000E+00 -8.47058824E-01 2.18750000E+01 -6.58823529E-01 4.21875000E+01 5.70588235E-01 6.56250000E+01 7.52941176E-01 1.12500000E+02 8.64705882E-01 2.07812500E+02 9.41176471E-01 5.00000000E+02 1.00000000E+00 6.87500000E+02 1.00588235E+00 9999. Request for flushing of punch buffer. |$PUNCH A listing of 80-column card images now being flushed from punch buffer follows. =============================================================================== 1234567890123456789012345678901234567890123456789012345678901234567890123456789 =============================================================================== C <++++++> Cards punched by support routine on 29-Jun-89 06.33.56 <++++++> C HYSTERESIS C C ITYPE LEVEL { Request Armco M4 oriented silicon steel -- only 1 availab C 1 2 { That was ITYPE=1. As for LEVEL=2, moderate accuracy outp C 500. 1.0 { Current and flux coordinates of positive saturation poi -1.25000000E+02 -9.70588235E-01 -1.56250000E+01 -9.19411765E-01 9.37500000E+00 -8.47058824E-01 2.18750000E+01 -6.58823529E-01 4.21875000E+01 5.70588235E-01 6.56250000E+01 7.52941176E-01 1.12500000E+02 8.64705882E-01 2.07812500E+02 9.41176471E-01 Rulebook ATP (junio 1996 - internet) 5.00000000E+02 1.00000000E+00 6.87500000E+02 1.00588235E+00 9999. =========< End of LUNIT7 punched cards as flushed by $PUNCH request >======= . "ZNO FITTER" to Punch Type-92 nonlinear branch cards H19h 4 Rulebook ATP (junio 1996 - internet) H19i 1 XIX-I-1 Purpose and application The supporting routine "ZNO FITTER" can be used to derive a true (as opposed to pseudo) non-linear representation (type 92 branch card) for a zinc-oxide surge arrester, starting from manufacturer's data for the surge arrester. The model can be used successfully to represent both gapless arresters as well as arresters equipped with series passive gaps or shunt passive gaps. Series active gaps (i.e. current limiting) can not be represented adequately by means of the ZNO model described here. There is some application of the present model to silicon carbide (SiC) arresters, although serious (perhaps unacceptable) approximations must be made. No dynamics of the gap can be provided. Hence the possibilities of such usage will not be emphasized. In essence, such usage represents the SiC block very accurately ("two exponential segments appear to provide a very adequate fit") while ignoring totally the dynamics of the gap (the gap modelling after flashover). In the original EMTP, a dedicated SiC surge arrester model (type 94 branches) did exist. Data acquisition was too complicated and not sufficiently documented. Hence, support of that model was terminated. The basic constraint equation for ZnO modelling is resistive, and is highly nonlinear (exponential): q v i = p 36 V ref where "i" is the arrester current, "v" is the arrester voltage, and "p", "V ref", and "q" are constants of the device. Typically one picks the reference voltage "Vref" to be twice the rated voltage, or something close to this. In theory, the choice is arbitrary (it is an extra parameter, note). However, a good choice of Vref normalizes the equation, and prevents numerical overflow during the exponentiation. Constants "p" and "q" are unique parameters of the device. Due to the extreme nonlinearity of ZnO characteristics, very little current is drawn for voltages that are substantially below the rated voltage (e.g., 0.5**30 = 9.E-10). So, in order to avoid the possibility of underflow during exponentiation, and also to speed the numerical solution, a linear model is actually used for low voltages and low currents (see AMIN; card number 2), the so-called leakage current region. But this is hidden, out of sight of the user, and it need not concern him. In physical terms, the solution is unaffected by such simplification. The nonlinear V-I arrester characteristic can be approximated by an arbitrary number of exponential segments. Both gapped and gapless arresters can be represented. The difference is made through the specification of VFLASH (see first miscellaneous data card) and A5 (see second miscellaneous data card). The gapped arrester requires the specification of two (I,V) characteristics (one before and one after flashover), while the gapless arrester requires only one such (I,V) characteristic (before flashover). The calculation of the exponentials fitting the user-specified (I,V) characteristics can be automated via the separate supporting routine ARRDAT. "ARRDAT" fits exponential curves in the log-log plane using the least-squares approach. There are two options for the determination of the number of exponentials (curve segments) that are to be used. Variable NEXP (miscellaneous data cards) is used as a flag to select between both options. Rulebook ATP (junio 1996 - internet) 1. 2. H19i the user may specify the number of exponentials or curve segments, and the boundaries of the segments. the program can determine the number of exponentials or curve segments automatically, based on the maximum permissible relative fitting error specified by the user. This is the more common case. An optional "BRANCH" card allows the user to name the terminal nodes for the Type-92 branch cards that will be punched. Punched results are immediately in the correct format to be used for nonlinear branches of type 92 (section V.E). For an example, we refer to DC39. XIX-I-2 Input data deck structure for ZNO FITTER In general, an input data deck structure for the supporting routine ARRDAT has the following structure: 1. BEGIN NEW DATA CASE 2. ZNO FITTER 3. $ERASE (optional) 4. BRANCH specification card (optional) 5. miscellaneous data cards 6. card grouping to specify the (I,V) characteristic, terminated by blank card 7. cards that specify the flashover behaviour, terminated by a blank card (only when A5 < 0 and VFLASH > 0) 8. BLANK card terminating ARRDAT usage 9. $PUNCH 10. BEGIN NEW DATA CASE 11. BLANK Let us discuss the above card sequence in more detail now. 1. BEGIN NEW DATA CASE 2. Request for supporting routine "ZNO FITTER" 179 3. $ERASE (optional) $ERASE request is optional, and serves to clear the punch buffer 4. BRANCH specification card (optional) 2 Rulebook ATP (junio 1996 - internet) H19i 3 180 Note: [SEND(i),REC(i)] are the terminal ends (sending end for phase i. The usual naming convention is used. indicates direct connection to ground. The number of by variable IPHASE on the miscellaneous data card number 1). and receiving end) A blank for a name phases is specified (see point 5, card 5. Miscellaneous data cards There are two such cards. The first one bears flag variables (to select the proper model) and fitting specifiers. The second one contains the base value specifications. Card Number 1: 181 Parameters: NEXP: flag to select between the two possible fitting options. <0: request for the automatic determination of the number of exponential segments. The user will specify the (I,V) characteristic (see point 6) >0: number of segments, requested by the user. He will specify both the (I,V) characteristics as well as the boundaries of each exponential segment manually (see point 6 data). IPHASE: the number of phases of the arrester bank for which branch cards are to be produced. If left blank or keyed with zero, the value will be changed to unity, meaning that a single arrester is to be modelled. If IPHASE > 1, only one phase will be punched explicitely. For all other phases, the reference branch option is used. Do not forget to use the optional BRANCH option, specially designed to allocate node names to the nonlinear branches in the punched output. ERRLIM: this value only has meaning when flag NEXP < 0. ERRLIM is the maximum relative error permitted during the automatic determination of the number of segments (assuming that the user has keyed NEXP negative). A blank or zero field will be converted to the default value of 1/20. The relative error is: ERROR = ABS (C1 - C2) / C1, by definition, where C1 is the value of the current as specified by the user, and C2 is the value of the current as predicted by the exponential approximation. Rulebook ATP (junio 1996 - internet) H19i IPRZNO: controls diagnostic printout. Suggested values are between zero and three. The amount of printout increases with the variable value. VREF: the reference voltage (RMS value) that will be used to scale the voltage data points (see point 6, card grouping that specifies the (I,V) characteristic). The idea is to produce numbers close to unity for exponentiation, thus avoiding numerical overflow. If left blank or keyed with zero, the value will be changed to twice A2 of card number 2 immediately below. Beware:1) VREF is used for all (I,V) characteristics, both before and after flashover. 2) When Vref is ill conditioned (i.e. V/Vref too far from unity), the fitter will redefine Vref, after giving the user a proper warning. VFLASH: the gap flashover voltage in units of [volts]. This is a peak (or crest) value, not an RMS (effective) value. Leave this field blank, or key with zero if the arrester is to be gapless. Card Number 2: 182 Parameters: A1: is a divider used for the scaling of voltage points. For example, A1 could be used for the voltage rating of the arrester upon which the input data are based, in order to convert the specified voltage points into perunit values. This is in units of [volts] RMS. A2: This really is just a multiplicative scaling factor for the voltage points, that can be used creatively in more than one way by the user. For example, A2 can be used to convert the arrester voltage points from perunit to [volts]. Alternatively, the user could produce the characteristic of an electrically similar arrester having a different voltage rating. The properties of similar arresters do not change with rating, provided a proportional number of blocks is used to obtain the new rating. Note that if VREF is maintained proportional to A2, then similar arresters will have identical parameters at all ratings. A3: is a multiplier used for the additional scaling of voltage points. For example, it can be used to obtain a minimum characteristic (maximum energy) from a maximum characteristic (maximum voltage). The most commonly used value is unity, however. A4: is a current multiplier that is used to obtain results for arresters with a number of columns that differs from that for which the data points are known. An even (homogeneous) current distribution is assumed among all columns. 4 Rulebook ATP (junio 1996 - internet) H19i 5 A5: is a flag signaling the existence (or lack of it) of additional data describing the arrester after flashover of the arrester passive gap. a) If zero or unity, the arrester is gapless, and no additional data follows; b) If negative, additional data follows (to represent dissimilar material for a shunt or a series passive gap). See point 7 (cards to specify the flashover behaviour). c) If positive but not unity, there is no further data. Instead, the original input data representing the situation before flashover are to be used to represent the characteristic after flahover, simply by multiplication of the voltages by A5. This is to represent similar material for a shunt or a series passive gap. AMIN: is the minimum current above which the exponential approximation of the arrester characteristic begins. For currents I < AMIN, a linear rather than an exponential approach is used in order to speed up the solution, and also in order to avoid numerical problems (underflow during exponentiation). Even if fitting a straight line that passes through the origin, do not leave AMIN blank or zero, since the logarithm of zero is not defined. 6. Card grouping that Specifies the (I,V) Characteristic Cards that specify the arrester characteristic before flashover come next. a) For the most common case of NEXP negative (see card 1 of miscellaneous data), the program automatically determines the number of segments, and there is to be only one data group, containing an arbitrary number of data pairs (I,V). A blank card will terminate the grouping that defines the non-linear characteristic. b) But for positive NEXP, there are to be NEXP segments. For each segment, a card grouping containing an arbitrary number of data pairs (I,V) is to be specified. Each such group is to be terminated by a blank card. In both cases, each card can contain only one data pair (I,V), using following format: 183 Points always must be in order of increasing current and voltage. The interpretation will confirm the unscaled (I, V) point, as specified by the user. 7. Cards that specify the flashover behaviour If VFLASH of miscellaneous data card number 1 was positive, also the characteristic after flashover needs to be specified by the user. Depending on whether the passive gap (shunt or series) is of similar or dissimilar material, different situations can occur: Rulebook ATP (junio 1996 - internet) H19i - gap is of similar material; A5 (second miscellaneous data card) is positive, but different from UNITY. Value A5 is used as a multiplication factor for the voltage points of the (I,V) characteristic. Because the gap is of similar material as the rest of the arrester, the same basic (I,V) characteristic is used before and after flashover. - gap is of dissimilar material, parameter A5 of miscellaneous data card number 2 is negative. In this case two additional items of information must be supplied to define the ZnO characteristic after flashover. First, there is to be another card number columns 1-12 will actually be read from the card are assumed to remain unchanged). This change his fitting option (user-specified automatic determination of the best number characteristic. 1, although only variable NEXP of card (all other parameters of the gives the user the opportunity to number of exponents to fit, or of exponents) for the flashover Second, there are to be cards specifying the arrester characteristic after flashover. The (I,V) pairs have the same format as previously described. Again, the number of segments depends on the (second) NEXP value. Again, each segment should be terminated by a blank card. 8. BLANK card terminating ARRDAT An indeterminate number of data cases can be stacked sequentially and solved in a single execution by the program. Each new case follows immediately the blank card terminating the data for the last segment of the preceding case. After the last such ZnO data case, one extra blank card then exits the supporting program "ARRDAT". 9. $PUNCH As with other supporting programs, $PUNCH is used to create the Type-92 branch cards that represent the ZnO arrester being processed. If the user wants such output, it is his responsibility to request it. Further, do not forget either to use the optional BRANCH specification card (see point 4), in order to be sure that the node names will be included in the created type-92 branch cards. The punched output is particularly valuable because it includes comment cards that label the Type-92 branch parameters. As an example, consider the punched output from the solution to the first subcase of BENCHMARK DC-39: A listing of 80-column card images now being flushed from punch buffer follows. ================================================================================ 12345678901234567890123456789012345678901234567890123456789012345678901234567890 ================================================================================ C Rating = 192000.0 V-mult = 9.62000E-01 I-mult = 3.00000E+00 Gapless 92RECA 5555. C V-reference V-flashover 4.1250000000000000E+05 9.2121212121212130E-01 C Multiplier Exponent V-min 2.9479544296115170E+04 2.6530262418533470E+01 5.4505063612285050E-01 9999 5.9605957177725360E+05 9999 92RECB RECA 92RECC RECA 2.6530262418533470E+01 10. BEGIN NEW DATA CASE 11. BLANK 5555. 5555. 4.8665227581674000E-01 6 Rulebook ATP (junio 1996 - internet) XIX-I-3 Illustrative Usage: The data of H19i 7 BENCHMARK DC-39 Consider a single-column ZnO arrester. The voltage points are known for a single-column ZnO arrester rated 1-KV (crest or peak value), maximum voltage characteristic. The current points are given in [amperes] (crest). The user wants parameters for a 192-KV (rms)(A2), 3-column arrester with a maximum energy characteristic. The conversion factor to this characteristic is 0.962 (A3), by assumption. The arrester is equipped with a shunt gap, and the shunted part is electrically similar (A5 should be positive, but different from unity) to the rest of the arrester. The shunt gap consists of 12% additional blocks. That is, after gap sparkover, the arrester contains 0.89286 (1/1.12 = 0.89286) of the original blocks, from which it follows that A5=0.89286 (crestfactor). A reference voltage equal to 412.5KV (V REF) was chosen, since this is the expected operating range of the 3-phase surge arrester. Finally, the arrester is assumed to be equipped with a shunt gap that flashes over at 380KV (VFLASH) (crest). For this basic data, three different EMTP representations are to be obtained, as summarized in the following three subsections. This information was used to construct BENCHMARK DC-39, so the user is referred to this standard test case to see the EMTP implementation. 1) DC-39 subcase 1: Single-Exponent Fit (NEXP = 1) According to the data provided above, the following values are assigned: 1) A1 = 1000 / [Equation: root 2] is the original rating of the arrester in [volts] (rms); 2) A2 = 192000 is the desired rating of the output in [volts] (rms); 3) A3 = 0.962 is the scaling factor for obtaining the desired maximum energy characteristic; 4) A4 = 3.0 since the original data are given for a single-column arrester, this factor of three will convert them to the desired 3-column device; 5) A5 = 0.89286 since the arrester before flashover contains 12% additional blocks; 6) AMIN = 1.E-3 [amperes] would be a common default choice, which is about the end of the leakage current region. 2) DC-39 subcase 2: Double Exponential Fit (NEXP = 2) Next, the characteristic described above is to be fitted with two exponentials. The border between the two segments has been determined graphically using log-log paper to lie between 100A and 200A. All other parameters on cards number 1 and number 2 remain unchanged. 3) DC-39 subcase 3: Automatic Segment Determination (NEXP = -1) Finally, the same data will be fitted with a relative current error of 1/20, which means that ERRLIM = 1/20. 4) Usage of punched output This model internally uses the compensation method. Unlike other situations using the compensation method for a multiphase ZnO surge arrester, the phases do NOT need to be separated by stub lines. Rulebook ATP (junio 1996 - internet) H19j 1 1. Convert saturable transformer cards to linear equivalent [R],[L] This supporting routine can be used to convert data lines for the SATURABLE TRANSFORMER model (IV.E) into a coupled [R],[L] equivalent (type 51,52,53 branches). The user should be carefull, however, because some inherent limitations exist for the conversion routine: - Although the SATURABLE TRANSFORMER component can take non-linear behaviour into account, the type 51,52,53 equivalent branches can not: they only provide a LINEAR equivalent. Of course, the user can add the non-linear behaviour as an external branch, but this is tricky (zero magnetizing current is not honored). - Although the SATURABLE TRANSFORMER component can process transformers with zero magnetizing current, type 51,52,53 can not. This situation is similar to the XFORMER model. Recall that only the BCTRAN model can process zero magnetizing current, because it has the AR-notation available. - The data lines for the SATURABLE TRANSFORMER model should be selfcontained (i.e. no reference component usage that copies the data of a preceding transformer). - For the ATP4 version, the punched output is not immediately usable because the free-format output form is incorrect with respect to the node names: the user himself should add separating commas inbetween the fields of the node names. Please refer to punched cards of this model with XFORMER punched cards for comparison. This is a bug that has to be cleared in next program releases (see section J.4). .1 Input data deck structure: Suppose a user wants to convert a self-contained (i.e. no reference branch usage) SATURABLE TRANSFORMER dataset into a linear equivalent [R],[L]-notation. For that reason he would use the supporting routine "CHANGE TRANSFORMER". The input data deck would look as follows: 1) 2) 3) 4) 5) 6) 7) 8) BEGIN NEW DATA CASE CHANGE TRANSFORMER $ERASE self-contained SATURABLE TRANSFORMER data case remark: - no reference component usage allowed - no zero magnetizing current allowed - specification of non-linear characteristic will not be taken into account in the final linear model. BLANK card ending CHANGE TRANSFORMER supporting routine $PUNCH BEGIN NEW DATA CASE BLANK CARD ENDING ALL CASES Remark that several point-4 data may be stacked one after the other, without the need to separate. For an example, we refer to the first subcase of DC67. The card formats to be used are so obvious that they do not need to be explained. .2 Example Rulebook ATP (junio 1996 - internet) H19j Following example is an extract of benchmark DC-67, where only the first subcase is used. BEGIN NEW DATA CASE CHANGE TRANSFORMER { Special-request word transfers to special conversion code $ERASE { Rewind (erase) buffer of punched cards as we prepare to punch more TRANSFORMER .005 30.TRANFF 1.E4 3 .005 30. { 1st point of (current, flux): characteristic .01 40. { 2nd point of (current, flux): characteristic .02 45. { 3rd point ... 0.1 50. { 4th point ... 5.0 100. { 5th and final point of (current, flux) char. 9999 { Special terminator bounds characteristic (current = 9999) 1GENT OPEN 5.0 5.E4 50. { 1st of 2 winding cards 2LOADOFF 20. 2.E5 100. { 2nd and final winding card BLANK card ends saturable TRANSFORMER components to be converted to [R], [L]. $PUNCH { Flush the punched-card output of just-created Type-51, 52, ... BEGIN NEW DATA CASE BLANK .3 Output data deck structure: A listing of 80-column card images now being flushed from punch buffer follows. =============================================================================== 1234567890123456789012345678901234567890123456789012345678901234567890123456789 =============================================================================== C <++++++> Cards punched by support routine on 29-Jan-91 16.20.46 <++++++> C CHANGE TRANSFORMER { Special-request word transfers to special conversion code C $ERASE { Rewind (erase) buffer of punched cards as we prepare to punch more C TRANSFORMER .005 30.TRANFF 1.E4 C .005 30. { 1st point of (current, flux): characterist C .01 40. { 2nd point of (current, flux): characterist C .02 45. { 3rd point ... C 0.1 50. { 4th point ... C 5.0 100. { 5th and final point of (current, flux) char. C 9999 { Special terminator bounds characteristic (current = 9999) C 1GENT OPEN 5.0 5.E4 50. { 1st of 2 winding cards C 2LOADFF 20. 2.E5 100. { 2nd and final winding card 51GENT OPEN 5.9066393442623E+03 , 1.2795081967213E+06 , ,,,, 52LOADFF 1.1803278688525E+04 , 2.4590163934426E+06 $ 2.3626557377049E+04 , 5.1180327868852E+06 , ,,,, =========< End of LUNIT7 punched cards as flushed by $PUNCH request >======= Note that the output is not in the legal free format: no separation by comma's in between node names. Following section shows how data should be modified. .4 Usage The first case is the representation of the saturable transformer as it appears in its normal form: BEGIN NEW DATA CASE $WIDTH, 79, { Request narrow, 80-column LUNIT6 output as an illustration BEGIN PEAK VALUE SEARCH, -1, { Time of -1 is request to read following card 0.5 1.5 2.5 3.5 { Limit extrema to these 2 subranges PRINTED NUMBER WIDTH, 10, 2, { Request max precision of 6 numbers in 80 bytes .010 6.0 1 1 1 1 1 -1 5 5 20 20 100 100 GEN GENT 1.E-3 3 LOADFF 1.0E0 3 TRANSFORMER .005 30.TRANFF 1.E4 .005 30. .01 40. .02 45. 0.1 50. 5.0 100. 9999 1GENT OPEN 5.0 5.E4 50. 2LOADFF 20. 2.E5 100. OPEN 1.E7 2 Rulebook ATP (junio 1996 - internet) H19j 3 BLANK card finishing all branch cards BLANK card ending non-existent switch cards 14GEN 200. .1591549 -1. BLANK card terminating program source cards 1 { Request for all node voltage outputs C PRINTER PLOT C 193 .5 0.0 4.0 LOAD GEN GENT BLANK card terminating plot cards $WIDTH, 132, { Done with 80 columns, so return to wide, 132-column LUNIT6 output BEGIN NEW DATA CASE BLANK The next case will show the same example, but now in the [R],[L] representation, with use of the punched card. There is a necessary manual manipulation needed, because of program bug. BEGIN NEW DATA CASE $WIDTH, 79, { Request narrow, 80-column LUNIT6 output as an illustration BEGIN PEAK VALUE SEARCH, -1, { Time of -1 is request to read following card 0.5 1.5 2.5 3.5 { Limit extrema to these 2 subranges PRINTED NUMBER WIDTH, 10, 2, { Request max precision of 6 numbers in 80 bytes .010 6.0 1 1 1 1 1 -1 5 5 20 20 100 100 GEN GENT 1.E-3 3 LOADFF 1.0E3 3 C 1 2 3 4 5 6 7 8 C 345678901234567890123456789012345678901234567890123456789012345678901234567890 51,GENT,OPEN,,, 5.9066393442623E+03,1.2795081967213E+06,,,,, {remark extra comma's 52,LOADFF,,,, 1.1803278688525E+04,2.4590163934426E+06$ {following type code and 2.3626557377049E+04,5.1180327868852E+06,,,,, {node names OPEN 1.E7 BLANK card finishing all branch cards BLANK card ending non-existent switch cards 14GEN 70. .1591549 -1. BLANK card terminating program source cards 1 { Request for all node voltage outputs C PRINTER PLOT C 193 .5 0.0 4.0 LOADFF GEN GENT BLANK card terminating plot cards $WIDTH, 132, { Done with 80 columns, so return to wide, 132-column LUNIT6 output BEGIN NEW DATA CASE BLANK Rulebook ATP (junio 1996 - internet) H25 1 XXV EMTP BENCHMARK CATALOGUE Following is a classification of all benchmarks, according to topics discussed in the Rule Book. A first division distincts between benchmarks illustrating supporting routines and benchmarks documenting simulation runs. Any remark that could contribute to the updating or improvement of this list greatly will be acknowledged. Supporting routines Further subdivisions are based on special request words as found in the Rule Book. JMARTI setup: DCN3,DCN5,DCN6,DCP20 LINE CONSTANTS: DC29,DC59,DC60,DCN3,DCN5,DCN6,DCP20 CABLE CONSTANTS: DC27,DC28 SEMLYEN setup: DC29,DC60 XFORMER: DC15 BCTRAN: DCN8 DATA BASE MODULE: DC36 SATURATION (CONVERT): DC13 HYSTERESIS: DC13 NETWORK EQUIVALENT: DC14 OLD to new ZnO: DC13 CHANGE SWITCH: DC14 ZnO FITTER: DC38,DC39 KILL CODES: DC13 Simulation part Rulebook ATP (junio 1996 - internet) H25 Further subdivisions are based on the models used in the network simulation. In most cases, these models are referred to, using special request words (as used in the Rule Book). TACS TACS HYBRID: DC1,DC2,DC8,DC19,DC20,DC22,DC30,DC33,DC37,DC38,DC43,DC45,DC47,DC57,DC63,DCN2, DCN10,DCP17 TACS STAND ALONE: DC18,DC19,DC20,DC21,DC23,DC46,DCP24 USAGE OF LINE MODELS CONSTANT PARAMETER MODEL (0,1,2) : DC1,DC2,DC3,DC4,DC5,DC6,DC7,DC9,DC10,DC12,DC16,DC19,DC20,DC22,DC24,DC25,DC26, DC30,DC31,DC32,DC34,DC35,DC38,DC41,DC42,DC43,DC44,DC45,DC47,DC48,DC50,DC51,DC 52,DC53,DC55,DC56,DC57,DC58,DC61,DC62,DC63,DCN1,DCN2,DCN4,DCN7,DCN9,DCN10,DCN 11,DCN12,DCP1,DCP10,DCP11,DCP13,DCP14,DCP15,DCP16,DCP17,DCP18,DCP19,DCP2,DCP2 1,DCP22,DCP26,DCP3,DCP4,DCP5,DCP6,DCP7,DCP8,DCP9 KCLEE MODEL (-1,-2,-3): DC1,DC2,DC7,DC12,DC16,DC24,DC31,DC32,DC37,DC38,DC41,DC47,DC50,DC52,DC61,DC62, DC63,DCN4,DCN7,DCP1,DCP10,DCP13,DCP18,DCP19,DCP6,DCP8 JMARTI MODEL: DCN4,DCN7 SEMLYEN MODEL: DC31,DC61 CASCADE PI: DC9,DC10,DCP25 USAGE OF TRANSFORMER MODELS SATURABLE TRANSFORMER: DC5,DC25,DC32,DC47,DC51,DC53,DCP11,DCP15,DCP21 PI-CIRCUIT: DC1,DC2,DC11,DC25,DC26,DC53,DC63,DCN9,DCN10,DCN11,DCP21,DCP26 USAGE OF NON-LINEAR ELEMENTS TYPE 91 DC22,DC38,DC42,DC43 TYPE 92 DC37,DC38 2 Rulebook ATP (junio 1996 - internet) H25 3 TYPE 93 DC4,DC7,DC45,DC56,DC58,DCP15,DCP22 TYPE 96 DC45 TYPE 97 DC42,DCP5 TYPE 98 DCN7,DCP15 TYPE 99 DCN7,DCP6 ZINC OXIDE DC37 USAGE OF SWITCHES TIME,VOLTAGE OR CURRENT-CONTROLLED SWITCHES: DC1,DC2,DC3,DC7,DC12,DC16,DC19,DC20,DC24,DC25,DC26,DC30,DC31,DC32,DC41,DC43,D C47,DC48,DC50,DC52,DC53,DC55,DC57,DC61,DC62,DC63,DCN2,DCN4,DCN7,DCN9,DCN10,DC N11,DCP1,DCP10,DCP12,DCP13,DCP17,DCP18,DCP19,DCP2,DCP21,DCP26,DCP6,DCP7, DCP8,DCP9 DIODES OR THYRISTORS (TYPE 11): DC1,DC2,DC30,DC32,DC57,DC63 Rulebook ATP (junio 1996 - internet) H25 SPARK GAP OR TRIAC (TYPE 12): no illustration found TACS CONTROLLED SWITCHES (TYPE 13): no illustration found STATISTIC SWITCH (TYPE 76): DC16,DC24,DC50,DCP13 MEASURING: DC33 USAGE OF SOURCES STATIC ELECTRIC NETWORK SOURCE FUNCTIONS: DC1,DC2,DC3,DC4,DC5,DC6,DC7,DC9,DC10,DC11,DC12,DC16,DC17,DC19,DC22,DC24,DC25 DC26,DC30,DC31,DC32,DC34,DC35,DC37,DC38,DC41,DC42,DC43,DC44,DC45,DC47,DC48, DC51,DC52,DC53,DC55,DC56,DC57,DC58,DC61,DC62,DC63,DCN1,DCN2,DCN4,DCN7,DCN9, DCN10,DCN11,DCN12,DCP1,DCP10,DCP11,DCP12,DCP13,DCP14,DCP15,DCP16,DCP17,DCP18 DCP19,DCP2,DCP21,DCP22,DCP25,DCP26,DCP3,DCP4,DCP5,DCP6,DCP7,DCP8,DCP9 TYPE 16: DC44 IDEAL TRANSFORMER (TYPE 18): DC25,DC55 TYPE 60: DC22 SM (TYPE 59): DC25,DC26,DC47,DC53,DCN9,DCN10,DCN11,DCP21,DCP26 UM (TYPE 19): DC34,DC35,DCN1,DCN2,DCN9,DCN10,DCN12,DCP16,DCP17,DCP21 FIX SOURCE (LOAD FLOW): DC25,DC26,DCP26 ANALYTIC SOURCE (TYPE 1-10): DC6,DC42 STATISTICAL TABULATION STATISTICAL SWITCH (TYPE 76): DC16,DC24,DC50,DCP13 STATISTICS DATA: DC24,DC40,DC48 OMIT BASE CASE: DCP13 4 Rulebook ATP (junio 1996 - internet) SPECIAL FEATURES START AGAIN: DC40,DC49 DISK PLOT DATA: DC3,DC45,DC54 SPY USAGE: DC57, DCP22 PEAK VOLTAGE MONITOR: DC61,DC62 $INCLUDE: DC8,DC17,DCP23 /-CARD USAGE: DC33 FOURIER ANALYSIS: DC42 POSTPROCESS PLOT FILE: DC46 REPLOT: DC54 BATCH MODE PLOTTING: DC42,DC46 Last edited 27/09/88 M. Ulens G. Empereur 1 H25 5 Rulebook ATP - Errata 1 LIST OF RULE BOOK ERRATA XXI - LINE CONSTANTS p7 - parameter FCAR - unusual usage! In derrogation to all other places in the Rule Book, blank and zero have a different meaning for parameter FCAR. This is because in the code (SUBR25), card image interpretation is using character string detection rather than the F10.6 format specifier. Moreover, blank and 1 have the same meaning in this particular case. Be carefull. This was maintained in order to stay compatible with older versions of LINE CONSTANTS. In order to avoid confusion, however, it is advisable not to use blank. p28 - Applications - additional remarks. This section refers to the creation of punched card output. In that case, one should not forget to specify the DIST-parameter in cols 45-52 of the frequency card. For a description of the DIST-parameter, we refer to p20. This modification must be added on following pages: p7, 12, 16, 24, 25 The Rule Book page p4D-2 depicts such set of punched cards for a K.C.Lee model. XXIII - CABLE CONSTANTS p15 - parameter ISYST - wrong description. ISYST = 0 : pipe in the air, touching the earth surface (rather than the wrong description: pipe of infinite thickness) p38 - general remark: - wrong description. X is XOPT C is (not in mH (not Ohm), for the specified section length, so use =0. (not FREQ). in µF (not micro mho) for the specified section length, so use COPT =0. FREQ). XIX-C - BCTRAN - some new guidelines p15: The note, near the end of the example becomes obsolete, because starting from ATP3, these shunt resistances are automatically taken into account. p20: similar remark for note 1. Note 2 (p21) still remains valid! p21: the specification of $UNITS and $VINTAGE is performed automatically since ATP3. Be carefull, however, since the $UNITS always is tricky (it has to be reset to the network value after the BCTRAN punched cards). 2 Rulebook ATP - Errata IV - Branch Cards The current Rule Book still refers to an option "USE AB". Since ATP1, however, this option was modified into "USE AR". Whereas for the old notation USE AB ===> A = L-1 B = R the meaning of parameters now is modified USE AR ===> A = L-1 R = R This request should be preceeded by the request $UNITS, 0.1591549, 0. the same way as used in BCTRAN. Keep this in mind when rading following Rule Book pages: 4B-4 4C-4 4D1-5