Weather Dependent Limits
The ability add weather-dependent limits was added in Version 23. The Weather Dependent Limits Dialog contains tabs for defining the various objects and references between objects making it easy to apply Weather Dependent Limits to the power system model. The relationship between the weather-related objects is described in the image below and this structure is generally described below. For more details follow the links below.
Load Areva Dynamic Line Ratings (DLR) (*.csv)
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. The help topic explains how these objects will create XYCurve, XYCurvePoint, XYCurveX and WeatherStation objects.
The object WeatherStation is the object that contains information about weather at a particular location. The WeatherStation has a Name to uniquely define it, a latitude and longitude, and various weather input information such as Temperature, DewPoint, CloudCoverPerc, WindSpeed, and Wind Direction. For more information see the WeatherStation help topic.
XYCurve, XYCurvePoint, and XYCurveX
The objects XYCurve, XYCurvePoint, and XYCurveX define an XY curve (X being the input value and Y being the output a function of x). The XYCurvePoints are points on a particular XYCurve and the XYCurve is the object that is referenced by Generator and Branch objects. The Branch objects can specify temperature dependent MVA limits (both Normal and Contingency limits), while the Generator objects can specify weather dependent MWMax and MWMin limits (for example wind speed or solar insolation percent). See the following topics for more information on these. The temperature is normally provided to the XYCurve by the WeatherStations objects associated with substation, branch or generator objects, but the temperature can also be provided directly using the XYCurveX objects.
Substation assignments to WeatherStation
Branches assignments to WeatherStation and XYCurve
Generator assignments to WeatherStation and XYCurve
These topics explain how to determine limits based on the XYCurve objects and the WeatherStation objects. The Branch and Generator object can show a column which performs a lookup of the present weather-dependent limit. The Branch first must determine which WeatherStation is associated with it to determine the present temperature. This is done either by assigning a WeatherStation to a branch, or the branch will determine will get WeatherStation assigned to the substation. Alternatively, separate XYCurveX objects can be assigned to an XYCurve and the temperature will come from those instead. This temperature is used as the X value applied to the XYCurve and the new limit in MVA is shown as the result of the XYCurve calculation.
Example Use of Temperature-Dependent MVA Limits for Branch objects
PowerWorld Corporation expects that Temperature-Dependent limits will be used by users as follows. There is more flexibility that this as will be seen below, but our expected use easier to understand. There are 15 limits available with each branch in PowerWorld's data structure. These limits are labels A, B, C, ..., M, N, O (the first 15 characters of the alphabet). With these 15 limits, we expect users will configure All Limit Monitoring settings for branches with temperature-dependent limits will be configured to use the same Rating Set. We expect that will be either A for Normal and B for Contingency, or maybe M for Normal and N for Contingency. The temperature dependent limits will then be copied right into these rating sets directly.
Example Procedure
-
User configures rating sets for branches they are interested in as follows.
-
Rating Sets D, E, F = Spring Seasonal Limits
-
Rating Sets G, H, I = Summer Seasonal Limits
-
Rating Sets J, K, L = Fall Seasonal Limits
-
Rating Sets M, N, O = Winter Seasonal Limits
-
-
User configures Limit Monitoring Settings to use the remaining unused 3 limits (A, B, C) as the "presently active limits"
-
A = Normal Limits
-
B = Contingency Limit
-
-
Assume that WeatherStation objects have been configured and populated with the present temperature at each one defined in the field TempC.
These WeatherStation objects have then either been assigned to a Substation or assigned to Branches.
In addition the Branch objects have had their TemperatureLimitNormalName and TemperatureLimitCTGName populated with references to XYCurve objects that represent the MVA limit of the branch as a function of the temperature in Celsius.
-
This means that the branch objects of interest now have a data field called TemperatureLimitNormal and TemperatureLimitCTG which will perform the lookup of the temperature-dependent MVA limit
-
-
With this configured, the case can be set to "Use Summer Limits" by doing the following either by using the Set All Values to Field feature of the case information displays by or via an AUX file script listed below.
-
Push Summer Seasonal Limits into active limits by copying the G and H limits onto the A and B limits. (We are assuming above the G and H represent the Summer Normal and Summer Contingency ratings)
SetData(Branch, [LimitMVAA,LimitMVAB], ["@LimitMVAG","@LimitMVAH"], "FilterNameforMyBranches");
-
Now branches that have a WeatherStation and XYCurves appropriately defined can overwrite the A and B limits with these values. This AUX file script or the Set All Values to Field feature is safe to use even for branches that do not have associated WeatherStation and XYCurve objects because for those branches the TemperatureLImitNormal and TemperatureLImitCTG fields will be blank. Pasting or typing a blank entry into the LimitMVAA and LImitMVAB fields will just leave those fields as their present numerical value which will be the entries copied from the G and H limits in the previous step.
SetData(Branch, [LimitMVAA,LimitMVAB], ["@TemperatureLimitNormal","@TemperatureLimitCTG"], "FilterNameforMyBranches");
-