Load Areva Dynamic Line Ratings (DLR) (*.csv) as Weather Dependent LImits
Ability to load these files was adding starting in the September 15, 2023 patch of Version 23
On the Tools Ribbon Tab in Simulator under the Other Tools, Weather drop-down there is an option to Load Areva Dynamic Line Rating (DLR) (*.csv). Choose this option to read a CSV file containing DYNELE, SEG, SEGWST, RATING, and WST objects from the CSV. This help topic explains how these objects will create XYCurve, XYCurvePoint, XYCurveX and WeatherStation objects and how the DYNELE object will describe the mapping to PowerWorld Branch objects.
As of September 2023, the Areva patten file needed to export a CSV file using hdbexport from the Dynamic Line Ratings database in Areva was as follows.
DYNELE,%SUBSCRIPT,LN,ZBR,XF,NAME1,NAME2,FRST,TOST,ACTRTGI1,ACTRTGI2,ACTRTGI3
SEG,%SUBSCRIPT,P__DYNELE,ENTMP
RATING,%SUBSCRIPT,P__SEG,ID,RTG1,RTG2,RTG3,I__TEMPPT
SEGWST,%SUBSCRIPT,P__SEG,I__WST
WST,%SUBSCRIPT,ID,TELTEMP,MANUAL,MANTEMP
RATING and WST records have fields that specify a temperature (RATING.ID and WST.ID) . There is a global setting that must be set before reading the CSV to specify whether these values are in Fahrenheit or Celsius. This can be set in the Simulator Options under File Management\hdbexport Files on the File Management Options. The option can also be set using the following AUX file using either SCRIPT or DATA section as follows.
SCRIPT
{
SetData(Sim_Environment_Options_Value, [Option,Value], [HDBExportTempUnits, Fahrenheit]);
}
Sim_Environment_Options_Value (Option,Value)
{
"HDBExportTempUnits" "Fahrenheit"
}
The relationship of DLR records to PowerWorld Simulator object data structures is depicted in the image below and a detailed description of each object follows. In general the objects in the EMS DLR Database represent objects in Simulator as follows.
-
DYNELE records provide information which is used to map the SEG records to the LN, XF, and ZBR records in the NETMOM database . Thus the DYNELE will map to a particular Branch object in PowerWorld Simulator
-
SEG records represent a temperature dependent rating curve (XYCurve in PowerWorld)
-
RATING records represent a particular point on the rating curve (XYCurvePoint in PowerWorld)
-
WST records represent weather stations which contain the temperature values (WeatherStation in PowerWorld)
-
SEGWST records map the SEG to WST (XYCurveX in PowerWorld)
DYNELE Records provide mapping to PowerWorld Branch Objects
DYNELE objects provide a mapping to the Branch objects (or the LN, XF, and ZBR records in the EMS NETMOM database). The mapping of DYNELE objects is done differently depending on the Booleans LN, ZB, and XF.
If LN=T then Simulator will find the PowerWorld Branch that was read as a LN record (EMSType = 'LN') and find the branch for which EMSLineID =NAME1 and EMSID=NAME2
If ZB=T then Simulator will find the PowerWorld Branch that was read as a ZBR record (EMSType = 'ZBR') and find the branch for which EMSLineID=NAME1 and EMSID=NAME2
If XF=T then Simulator will find the PowerWorld Branch that was read as a XF record (EMSType = 'XF') and find the branch for which SubNameFrom=FRST and EMSID=NAME1
When reading the file, PowerWorld will keep track of SEG records that actually have some RATING records which refer to the SEG record. We will then keep track of DYNELE records that have at least one SEG object with RATING records. If the DYNELE doesn’t have any viable SEG records then no error message is written to the message log when loading the CSV file (because we weren’t getting any XYCurve to associated with a Branch anyway). If however we can not find the object associated above then a warning is written to the message log.
The fields which PowerWorld recognizes in the DLR database for the DYNELE record are as follows.
Field Header |
Field Type |
Description of Field |
%SUBSCRIPT |
Integer |
Integer used to lookup DYNELE from the SEG object |
LN |
T or F |
T if it represents a LN record, else F |
ZB |
T or F |
T if it represents a ZBR record, else F |
XF |
T or F |
T if it represents a XF record, else F |
NAME1 |
String |
If LN=T OR ZB=T, then this represents the LINE record ID field. This is stored in PowerWorld’s Branch object as the EMSLINEID field If XF=T, this is the XF record ID field which is stored in PowerWorld’s Branch object as the EMSID field |
NAME2 |
String |
If LN=T OR ZB=T, then this represents the LN or ZBR record ID field. This is stored in PowerWorld’s Branch object as the EMSID field If XF=T we do not used this field for mapping, but it stores the XFMR record ID field which would also be stored in PowerWorld’s Branch object as the EMSLINEID field. |
FRST |
String |
This is the From side substation of the object. This will be used for mapping XF records. |
TOST |
String |
This is the To side substation of the object. This is not used for anything in PowerWorld but just included for convenience. |
ACTRTGI1 |
Float |
When reading this DYNELE, if we successfully map to a Branch in Simulator as described above we will set the LimitMVAA value to this |
ACTRTGI2 |
Float |
When reading this DYNELE, if we successfully map to a Branch in Simulator as described above we will set the LimitMVAB value to this |
ACTRTGI3 |
Float |
When reading this DYNELE, if we successfully map to a Branch in Simulator as described above we will set the LimitMVAC value to this |
SEG Records provide mapping to PowerWorld XYCurve
When reading the file, PowerWorld will keep track of SEG records that actually have some RATING records which refer to the SEG record. If a SEG record does not have any RATING records then the SEG record is ignored and a count of the number of SEG records skipped because of this is written to the message log. If the SEG record does have RATING records, but the SEG record P__DYNELE integer references the %SUBSRIPT of DYDNELE for which the associated Branch object could not be found, then we skip the SEG records and do not write a warning to the log (the DYNELE would have already written a warning message).
If all these things are good however, then for each SEG record, PowerWorld Simulator will create 2 XYCurve objects whose name will depend on the the XF, ZB, and LN booleans.
If LN=T, names will be “LN NAME1 NAME2 NORMAL” and “LN NAME1 NAME2 CTG”
If ZB=T, names will be “ZBR NAME1 NAME2 NORMAL” and “ZBR NAME1 NAME2 CTG”
If XF=T, names will be “XF FRST NAME1 NORMAL” and “ZBR FRST NAME1 CTG”
When reading the file, PowerWorld will keep track of SEG records that actually have some RATING records which refer to the SEG record. We will then keep track of DYNELE records that have at least one SEG object with RATING records. If the DYNELE doesn’t have any viable SEG records then no error message is written to the message log when loading the CSV file (because we weren’t getting any XYCurve to associated with a Branch anyway). If however we can not find the object associated above then a warning is written to the message log.
The fields which PowerWorld recognizes in the DLR database for the SEG record are as follows.
Field Header |
Field Type |
Description of Field |
%SUBSCRIPT |
Integer |
Integer used to lookup SEG record from RATING and SEGWST records |
P__DYNELE |
Integer |
Integer that points at the DYNELE record %SUBSCRIPT |
ENTMP |
T or F |
Set the PowerWorld XYCurve.Enabled field Boolean |
The other fields of the XYCurve are always set as follows
XYCurve.IntermediateType = Interpolate
XYCurve.PointTol = 0.05
XYCurve.XType = Max for XYCurves. This means that if the SEG record has multiple SEGWST records associated with it representing multiple WeatherStation temperatures associated with the same SEG we will take the maximum temperature of those available.
RATING Records provide mapping to PowerWorld XYCurvePoint
Each RATING record points at the SEG record to which it belongs using the P__SEG integer (references the %SUBSCRIPT of the SEG object).
The fields which PowerWorld recognizes in the DLR database for the RATING record are as follows.
Field Header |
Field Type |
Description of Field |
%SUBSCRIPT |
Integer |
Integer ID for the RATING record |
P__SEG |
Integer |
Integer that points at the SEG record %SUBSCRIPT |
ID |
Float |
This is the temperature of this point. There is a global option in PowerWorld Simulator which we use to designate if this temperature is in Fahrenheit or Celsius in File Management Options of the Simulator Options. PowerWorld requires that temperature-dependent Branch LimitMVA curves are in Celsius always. If this global setting specifies Fahrenheit, we will convert this floating point value as (ID-32)*5/9 (to convert to Celsius) |
RTG1 |
Float |
This is the Normal rating in MVA. An XYCurvePoint will be created with X based on the ID and Y=RTG1. This point will be assigned to the XYCurve with a name that ends in “NORMAL” |
RTG2 |
Float |
This is the Emergency rating in MVA. An XYCurvePoint will be created with X based on the ID and Y=RTG2. This point will be assigned to the XYCurve with a name that ends in “CTG” |
RTG3 |
Float |
This is the Load-Shed rating in MVA and PowerWorld Simulator ignores this. |
I__TEMPPT |
Integer |
The RATING records in the DLR database have 2 uses: temperature-dependents limits and also seasonal limits. This is handled by 2 fields with the RATING object called I__TEMPPT and I__COSESN. If I__TEMPPT > 0 then this means it represents a temperature-dependent limit. If I__COSESN > 0 then it means it represents a company’s seasonal limit. We are only trying to read the temperature dependent limit, so we have written PowerWorld’s CSV reader so we read the I__TEMPPT field. If it is not given at all then we assume it’s a temperature-dependent limit. If I__TEMPPT is provided and the value is <= 0 then we ignore the RATING record. |
WST Records provide mapping to PowerWorld WeatherStation
WST records represent a WeatherStation which contains the telemetered or manual temperature values.
The fields which PowerWorld recognizes in the DLR database for the WST record are as follows.
Field Header |
Field Type |
Description of Field |
%SUBSCRIPT |
Integer |
Integer ID for the WST record |
ID |
String |
This is used to as the name of the WeatherStation that is created from the WST records. |
TELTEMP |
Float |
If is a number, then we will set PowerWorld’s WeatherStation field TempF or TempC depending on the global setting indicating what units the Temperatures in the CSV file are in. |
MANUAL |
T or F |
If T, then we will consider using the MANTEMP |
MANTEMP |
Float |
If MANUAL=T and MANTEMP is a number, then we will set PowerWorld’s WeatherStation field TempF or TempC depending on the global setting indicating what units the Temperatures in the CSV file are in. |
SEGWST Records provide mapping to PowerWorld XYCurveX
SETWST Records represent the specification of which temperature (or multiple temperatures) the SEG should use. In PowerWorld Simulator we had assumed that a Branch would normally obtain a temperature from the terminal substations. This provides another location to specify the temperature at. In PowerWorld Simulator the SEGWST become an XYCurveX object. This means that it provide the X coordinate to the XYCurve lookup. We allow multiply XYCurveX objects to be assigned to the same XYCurve to support the multiple SEGWST records assigned to a single SEG record. When reading SEGWST records, an XYCurveX object will be created which points at the appropriate XYCurve (based on P__SEG) and then points at the appropriate WeatherStation (based on I__WST).
The fields which PowerWorld recognizes in the DLR database for the WST record are as follows.
Field Header |
Field Type |
Description of Field |
%SUBSCRIPT |
Integer |
Integer ID for the SEGWST record |
P__SEG |
Integer |
Integer that points at the SEG record %SUBSCRIPT. The XYCurveX.Name will point to the XYCurve created for the respective SEG record |
I__WST |
Integer |
Integer that points at the WST record %SUBSCRIPT. The XYCurveX.Object will point to the WeatherStation created for the respective WST record. Also, the XYCurveX.ObjectField will always be set to TempC to indicate the lookup is done with Celsius. Not that the global option can be specified that values on RATING and WST are given in Fahrenheit in which case the RATING and WST values are converted to Celsisus for PowerWorld’s use. Thus PowerWorld will always set this ObjectField to TempC. |