Req:sync check

= Application Concept = The sync_check class is being developed to enable the paralleling of two separated systems (e.g., microgrids, feeders, bulk power systems, etc.). The controller will be modeled in the sync_ctrl class. Thus, a hierarchical structure is utilized for flexibility and future expansion.

= Use Case = Both sync_check and sync_ctrl are mainly developed for enabling the paralleling capability, which can be utilized and/or improved in further simulations of several projects. For instance, the advanced synchronization controls (e.g., optimization and redispatch) are not included, but can be developed based on the basic implementations of sync_check and sync_ctrl.

= General Requirements = The sync_check class will allow the paralleling of two power systems. Its implementation should be aligned with the class switch_object. In addition, its settings should be flexible.

R1
Paralleling will only occur when the grid-alignment conditions are met.

R1.1
A voltage difference between the two grids, across the sync_check object, will be one metric for closure;

R1.2
The frequency difference between the two grids, on either side of the sync_check, will be another metric for closure;

R1.3
Both metrics need to be within a user-specified tolerance (in per unit) for a user-defined period (in secs), before a switch can be closed;

R1.4
Before sending the command, the status of a switch is checked. If the switch is already closed, a warning is displayed and no command will be sent.

R2
The sync_check needs a Boolean property that turns on/off its action functionality.

R3
The sync_check functionality will manipulate switch objects within GridLAB-D. Each sync_check object needs to set a switch object as its parent.

R3.1
The sync_check will be an add-on controller to the base switch object class;

R3.2
The sync_check will interact with the switch only in reading the current closure status and commanding a closure to occur.