Program Name: 3ic

Description: Converts data records from one set of models to another in a PSLF dynamics data (dyd) file. Performs data correctness and consistency checks on all converted data records. Performs conversion and data checking on all converted data records or on records selected by bus number

Prerequisites: The dyd file must exist

Invocation: 3ic <dydfile> <sfile> <outfile> <logfile> <chfile> <tcmin>

<dydfile> Name of the WECC dyd file to be converted

<sfile> Name of bus selection file or all.

<outfile> Name of the converted 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:

  1. The conversions to be made by 3ic are specified by the file rule.txt and a set of Model Conversion Data Files (MCDF).

  2. The MCDF files must reside in the directory lib. This directory must be a sub-directory of of the working directory in which 3ic 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>

  3. 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.

  4. The recording level and generator base mva entries may be present but are not required.

  5. The parameter name feature of the dyd file may be used but is not required.

  6. The selection file can specify a list of bus numbers for which data records are, or are not, to be converted.

    To specify buses for which data records ARE to be converted, the file MUST be named include. When the selection file name is include records are converted ONLY for buses whose numbers are in the include file.

    To specify buses for which data records ARE NOT to be converted, the file MUST be named exclude. When the selection file name is exclude records are converted for all buses EXCEPT those whose numbers are in the exclude file.

    The include and exclude files must contain one bus number per line like this:

    58290
    26030
    41231
    
  7. The use of the generator selection list can be suppressed by entering a file name of all for <sfile>. If <sfile> is all the program converts all models for which a translation is specified in the rule.txt file.

  8. 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.

  9. Complete output records produced by conversions that produced data checks are written to the parameter changes file <chfile>.

  10. 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

    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.

  11. 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