XYCurve, XYCurvePoint, XYCurveX Objects
The ability add XYCurve and XYCurvePoint objects was added in Version 23.
The ability to define XYCurveX objects was added beginning in the September 15, 2023 patch of Version 23.
XYCurve and XYCurvePoint objects are used as part of the Weather-Dependent Limits which are accessed on the Weather-Dependent Limits dialog.
A XYCurve and XYCurvePoint objects represents any a generic XYCurve. They represent a function that takes one input and provides one output.
Normally we expect that objects using an XYCurve will provide the X-axis value to use with the XYCurve and XYCurvePoint objects to perform the lookup function based on the provided X. For example a Branch using weather-dependent MVA limits will provide the temperature in Celsisus as the X-Value itself. The temperature will come from the WeatherStation assigned to branch for example. This normal behavior can be overridden by creating XYCurveX objects and assigning them to the XYCurve. The XYCurveX object will then refer to an Object and ObjectField which provides the X-Value to the XYCurve. For the purposes of weather-related limit we would expect that Object to be a WeatherStation and the ObjectField to be a temperature, wind speed, or other weather-related value.
XYCurve Objects
XYCurve objects have the following 3 fields, and then also store a list of XYCurvePoint objects associated with them which are also described below.
Field |
Type |
Input |
Type |
Name |
String (KEY field) |
Key Field Identifier |
Name of the curve. This is the unique identifier (Key Field) for the XYCurve. |
Information |
String |
User Input |
Informational string about equipment that results in this curve being used. It is possible that one device in the power system model will have multiple curves associated with it. For example: a line may also have current transformer associated with it that has a different lower rating than the line. |
Enabled |
String |
User Input |
Set to either YES or NO. If set to NO then any calls to this XYCurve by other objects will not be used and thus ignored. For example, a Branch that is configured to us an XYCurve with Enabled=NO will not use the weather-dependent limit. |
XType
Option added beginning in the September 15, 2023 patch of Version 23. |
Discrete Options Ignore Max Min EvalMax EvalMin |
User Input |
Specifies how to interpret multiple XYCurveX objects associated with this XYCurve. Ignore means that XYCurveX objects are ignored and the XYCurve will use whatever XValue is provided from the calling object (such as a Branch providing a temperature). Max or Min will take the maximum or minimum of all the XCurveX values. EvalMax or EvalMin will evalute the XYCurve for all XCurveX values and then return either the maximum or minimum of those evaluations |
IntermediateType |
Discrete Options AtOrAbove AtOrBelow Closest Interpolate |
User Input |
Specifies how to handle any lookup when the temperature falls between X values. See the image below for AtOrAbove means the limits are at or above the specified temperature AtOrBelow means the limits are at or below the specified temperature Closest means use the limit based on the closest temperature Interpolate means we will linearly interpolate between points These options are depicted in the next image. The XYCurvePoints are represented by the black dots in the image below.
|
XYCurvePoint Objects
Each XYCurvePoint object represents one point on the XYCurve. The XYCurvePoint object has the following fields.
Field |
Type |
Input |
Type |
Name |
String (KEY field) |
Key Field Identifier |
Name of the XYCurve to which this point belongs. |
X |
Single Float (KEY field) |
Key Field Identifier |
Single float storing temperature (tolerance would be 0.01. Thus 10.223 and 10.218 are both considered to be 10.22 degrees). The unit of this field will depend on what object is using the curve, so the curve itself does not know the units. This is assumed to be Celsius for temperature dependent curves. |
Info1, Info2, Info3 Info4, Info5 |
String |
User Input |
Informational strings about device that results in this value being used. There may be processing done outside of PowerWorld that creates a curve where each point in the curve represents a different piece of equipment. This may be done instead of defining a separate curve for each piece of equipment |
Y |
Single Float |
User Input |
Function Output at this temperature. The unit will depend on what object is using this curve, so the curve itself does not know the units. This is assumed to be MVA for temperature dependent Branch rating curves. |
XYCurveX Objects added beginning in the September 15, 2023 patch of Version 23.
Each XYCurveX object represents one possible X-Value that would be provided to its XYCurve to perform a lookup.
Field |
Type |
Input |
Type |
Name |
String (KEY field) |
Key Field Identifier |
Name of the XYCurve to which this point belongs. |
Object |
String (KEY field) |
Key Field Identifier |
Object from which the XYCurveX obtains its XValue. The string is of the same format as the ObjectID field used in AUX files starting with an ObjectType following by either primary key fields, secondary key fields or a label identifier. |
ObjectField |
String (KEY field) |
Key Field Identifier |
Variablename from which the XYCurve obtains its XValue from its Object. |