Program Name: 4ia
Description: 4ia is a single-machine special prupose version of the 3ic conversion program. It converts data records from one set of models to another for a single machine or for all machines at a single bus, 4ia performs data checking on all converted data records, and produces a small 'dyd' file ready for use by the PSLF dynamics data checking programs b.p and cc.p.
4ia produces a PSLF dyd file as follows:
- the original, unaltered, set of models is attached to bus 1, with the bus name "ONE " and basekv=13.8
- the converted set of models is attached to bus 2, with the bus name "TWO " and basekv=13.8
- plnow and gthev models are attached to bus 100
Prerequisites: The dyd file must exist
Invocation:
4ia <dydfile> <bus> <"id"> <outfile> <logfile> <chfile> <tcmin>
<dydfile> Name of the WECC dyd file to be converted
<bus> Number of bus at which the machine of interest is connected.
<"id"> Machine identifier of the machine of interest, or "CC" for a cross-compound
machine represented by a pair of GENCC models.
<outfile> Name of the extracted dyd file to be created
<erfile> Name of the error message file
<chfile> Name of the parameter changes file
<tcmin> Minimum allowable value of subtransient time constants
Notes:
-
This program extracts all data records whose bus numbers and machine identifiers match those specified in the invocation. The output dyd file contains two records for each record found
in the input file, one that is an exact copy of the input record and one record translated in accordance with the translations specified by the rule.txt file. If no translation is specified for a data record the second in the output file is the same as the first.
-
The machine identifier entered in the command line must be that of the single generator of intererest, except in the case of cross compound machines whose generators are represented by a pair of GENCC models. To extract the data records for a cross compound machine the machine identifier must be entered as "CC". Note that the generator records in the dyd file produced when the identifier is entered as "CC" must be reordered manually so that the records for the high pressure and low pressure generators are properly adjacent to one another.
-
For single-shaft machines the bus numbers and machine identifiers in the output file are changed from the original values to 1 and 2 for bus numbers and "1 " and "1 " for the identifiers. For cross compound machines the bus numbers are changed to 1 and 2 but the H/L generator identifiers are retained. The numbering coordinates with the EPCL programs b.p and cc.p.
-
The conversions to be made by 4ia are specified by the file rule.txt and a set of Model Conversion Data Files (MCDF).
-
The MCDF files must reside in the directory lib. This directory must be a sub-directory of of the working directory in which 4ia is executed.
The model conversions (and corresponding MCDFs that are to be used) are specified by entries in the file rule.txt. This file must be in the working directory. Each line of rule.txt activates one conversion. A # character in the first character of a line in rule.txt makes the line a comment; comment lines are ignored.
Each line (other than comments) of rule.txt must have the form
<imod> <omod>
where <imod> is the name of a PSLF dynamic model that is to be replaced and <omod> is the name of the model that is to replace it.
An MCDF must exist for each active entry in rule-text and must have the name
<imod-omod>
- In the input dyd file the identifier stanza for each generator must be complete.
The model name, bus number, bus name, base voltage, and unit identifier must all
be present. The following is an identifier in correct form:
gensal 79200 "NAV1 " 13.80 "1 " :
There must be no leading blank ahead of the model name.
- The recording level and generator base mva entries may be present but are not
required.
- The parameter name feature of the input dyd file may be used but is not required.
- Messages identifying errors and inconsistencies in the input records are written to the error message file <erfile>. If the <erfile> argument is omitted from the command line the error messages are sent to the terminal.
- Complete output records produced by conversions that produced data checks are written to the parameter changes file <chfile>.
-
Sample records of the error message file are shown below (with commas and spaces suppressed for clarity).
Model Bus Name Bkv ID Param Value RVal c Check Replace
exdc2a 16508 "SUNDTGE2" 13.80 "1 " $tb 1.00 * ($tb==0)||(($tb>=@tc)&&($tb>0));
exdc2a 16508 "SUNDTGE2" 13.80 "1 " $tc 2.50 * ($tc>=0)&&($tc<=$tb);
exac1 24162 "ALAMT7 G" 16.00 "7 " $vrmax 1.20 7.10 # $vrmax>=2; $vrmax=@vamax;
exac1 24162 "ALAMT7 G" 16.00 "7 " $vrmin 0.00 -7.10 # $vrmin<=-1; $vrmin=@vamin;
These records show
- output model name
- bus number
- bus name
- base voltage
- unit identifier
- output parameter name
- output parameter value from assignment stage of translation, or blank
- output parameter value after checking, and replacement value where replacement statement is present
- check/error code
- check statement
- replacement statement
A check/error code of * indicates that the check statement evaluates to FALSE and that the output parameter value is suspect, but that the suspect value was not replaced because no replacement statement as provided in the MCDF.
A check/error code of # indicates that the check statement evaluates to FALSE and that the value shown is the replacement made in accordance with the replacement statement.
-
The stanzas from the parameter changes file corresponding to the first two lines of the error messages file are shown below. The * flags in the first stanza indicates that the values of tb and tc are suspect but have not been changed. The # flags in the second stanza indicate that the values of the parameters vrmax and vrmin have been changed; the original and new values are shown in the error messages file.
exdc2a 16508 "SUNDTGE2" 13.80 "1 " $tb 1.0000 1.0000 * ($tb==0)||(($tb>=@tc)&&($tb>0));
exdc2a 16508 "SUNDTGE2" 13.80 "1 " $tc 2.5000 2.5000 * ($tc>=0)&&($tc<=$tb);
$tr 0.0100
$ka 220.0000
$ta 0.0100
$tb 1.0000 * ($tb==0)||(($tb>=@tc)&&($tb>0));
$tc 2.5000 * ($tc>=0)&&($tc<=$tb);
$vrmax 5.0300
$vrmin -4.5100
$ke 0.2540
$te 1.1000
$kf 0.0350
$tf 1.0000
$spdmlt 0.0000
$e1 2.0000
$se1 0.0500
$e2 3.0000
$se2 0.6700
$uelin 0.0000
$exclim 0.0000
exac1 24162 "ALAMT7 G" 16.00 "7 " $vrmax 1.20 7.10 # $vrmax>=2; $vrmax=@vamax;
exac1 24162 "ALAMT7 G" 16.00 "7 " $vrmin 0.00 -7.10 # $vrmin<=-1; $vrmin=@vamin;
$tr 0.0000
$tb 0.0000
$tc 0.0000
$ka 400.0000
$ta 0.0500
$vamax 7.1000
$vamin -7.1000
$te 0.8000
$kf 0.0300
$tf 1.0000
$kc 0.0000
$kd 0.0000
$ke 1.0000
$e1 2.8425
$se1 0.5000
$e2 3.7900
$se2 0.8600
$vrmax 7.1000 # $vrmax=@vamax;
$vrmin -7.1000 # $vrmin=@vamin;
$spdmlt 0.0000