Aggregating profiles in OpenDSS
OpenDSS incorporates a functionality for aggregating profiles to reduce the memory required for simulating models with many load shapes linked to the model’s loads. This could be the case when the model contains deatalied Ami data linked to every load in the model, which can represent a significant amount of memory if the load shapes contain high granularity data.
OpenDSS provides a command for aggregating the load profiles within the model by tearing the interconnected model into several sub-zones defined by the user. The tearing algorithm (MeTIS - http://glaros.dtc.umn.edu/gkhome/metis/metis/overview) objective is to balance the model partitioning trying to ensure that each zone will have the same number of buses. After tearing the model, OpenDSS will estimate an aggregate load profile for all the loads in each zone, assingning the new load profile to them.
Finally, OpenDSS will save the aggregated model into a folder called “Aggregated_model” within the original model’s folder. The new model includes only the new aggregated load profiles, reducing the size of the model in the hard drive and when loaded into memory.
Important: Before using this functionality, make sure that all the loads in the model have a yearly load shape linked, otherwise, it may lead to an error message.
The steps required for using this functionality are: Define the number of zones, call the command specifying the use of the load shape multiplier (Actual/pu). This can be achieve through the following commands:
set Num_SubCircuits=X
AggregateProfiles myUse
Where X is the number of zones in which the circuit will be torn and “myUse” is Actual or pu for enabling the flag UseActual when defining the new load shapes in the aggregated model. The following example aggregate profiles in pu using 10 zones:
Clear
New Circuit.ieee123
Redirect Vsource.dss
Redirect LineCode.DSS
Redirect LoadShape.DSS
Redirect GrowthShape.DSS
...
Redirect RegControl.DSS
Redirect EnergyMeter.DSS
MakeBusList
Redirect BusVoltageBases.dss ! set voltage bases
Buscoords buscoords.dss
set maxcontroliter=20
solve
set Num_SubCircuits=10
AggregateProfiles
get LinkBranches
In the previous example, the line “get LinkBranches” returns the list of PDE that were used as the head of the zone after tearing the model into n-zones. On the other hand, the following example aggregates the load profiles and adds the property “UseActual=true” when creating the new aggregated model.
Clear
New Circuit.ieee123
Redirect Vsource.dss
Redirect LineCode.DSS
Redirect LoadShape.DSS
Redirect GrowthShape.DSS
...
Redirect RegControl.DSS
Redirect EnergyMeter.DSS
MakeBusList
Redirect BusVoltageBases.dss ! set voltage bases
Buscoords buscoords.dss
set maxcontroliter=20
solve
set Num_SubCircuits=10
AggregateProfiles Actual
get LinkBranches