Generators Module Guide

The generator, or DG, model within GridLAB-D has never been fully developed. The multitude of control algorithms, different technologies, and implementations available and the various levels of model complexity, make it difficult to fully represent the DG models that are available. Instead, the goal has been to create a very open environment, where users can create their own models, including their own controls and algorithms. Within the auspices of DOE, some models have been created for specific uses ( a simple solar model, a specific wind turbine model, various battery control models ), and should be thought of as examples in how DGs are modeled within GridLAB-D.

Essentially, the DG models can be thought of as negative loads (or in the case of batteries that are charging, normal loads). They are connected to the powerflow solution through triplex meters or meters (or in some cases, in series through an inverter to a meter or triplex meter), and act as a load on the system using components of a ZIP model. The internal DG models are required to calculate their ZIP components as a function of the user's/model's desired inputs - ie solar panels use the system voltage and solar radiation. These components are then posted back to the powerflow solution via the meters as either a pure current injection or as a combinatorial ZIP model. As the generators are a separate module from powerflow, they are required to have the meter interface and must post their load information rather than being calculated directly within the powerflow solution (as would be with a load object).

The following will describe the available models within GridLAB-D and how they interface with the powerflow module. Additionally, it will offer ideas/plans for future development.

= Generators Objects =

Battery Model
The battery object is in a state of flux, containing some legacy models and some new models. In early versions of GridLAB-D (pre-v3.0), it was assumed that the model included both the battery and the inverter; the battery was connected directly to a meter (or triplex_meter) object. Post-v3.0, the inverter model has been separated from the battery object. In this case, the battery is connected as a child of an inverter object and the inverter is then connected to the meter object. This may cause some confusion - development of new models will focus on a full separation of the inverter and battery models, but legacy code still exists for those that are still using it.

The battery model does not explicitly represent a specific battery chemistry, but rather is a generic energy storage device; the parameters can be set to represent a fairly simplistic representation of a wide variety of chemistries and technologies.

Default Battery
Because of the multiple models and wide variety of parameters, there is no "default" battery.

Battery State of Development
This model has only been tested when using the internal battery model. All other modes are considered experimental and may not work as designed. An example of setting up the inverter and battery for load following is shown below. The load following control mode currently only operates at unit power factor. A similar control mode for reactive load following is slated for 3.2 release in summer of 2015.

object inverter { name load_follow_inverter; inverter_type FOUR_QUADRANT; //Must be in FOUR_QUADRANT to use the load following control scheme. four_quadrant_control_mode LOAD_FOLLOWING; //The only mode that works with the battery object. parent meter1; //parent must be a triplex_meter or meter object. sense_object substation_transformer; //the sense_object must be a meter, triplex_meter, or transformer. rated_power 3000.0; //The per phase power output rating of the inverter in VA.    inverter_efficiency 0.95; charge_on_threshold 5.0 kW; //when the load at the sense_object drops below this value the inverter starts to charge the battery. charge_off_threshold 7.0 kW; //when the battery is charging and the load at the sense_object rises above this value the inverter stops charging the battery. discharge_off_threshold 7.5 kW; //when the battery is discharging and the load at the sense_object drops below this value the inverter stops discharging the battery. discharge_on_threshold 9.0 kW; //when the load at the sense_object rises above this value the inverter starts to discharge the battery. max_discharge_rate 1 kW; //The maximum power output to demand from the battery when discharging. max_charge_rate 1 kW; //The maximum power input to the battery when charging. } object battery { name batt_test; parent load_follow_inverter; use_internal_battery_model true; battery_type LI_ION; battery_capacity 20.0 kWh; round_trip_efficiency 1.0; state_of_charge 0.5; generator_mode SUPPLY_DRIVEN; }

Diesel DG Model
The three phase synchronous generator is with classical model for power flow computation. In which, $$\bar E_f$$ is induced voltage of generator; $$\bar V$$ is terminal bus voltage; $$\bar I$$ is terminal bus current. $$\bar E_f$$, $$\bar V$$ and $$\bar I$$ are denoted as complex numbers. They satisfy: $$ \begin{align} \bar E_{f_A} & = \bar V_A - \left ( R + j X_S \right ) \bar I_A - \left ( R_g + j X_g \right ) \left ( \bar I_A + \bar I_B + \bar I_C \right ) \\ \bar E_{f_B} & = \bar V_B - \left ( R + j X_S \right ) \bar I_B - \left ( R_g + j X_g \right ) \left ( \bar I_A + \bar I_B + \bar I_C \right ) \\ \bar E_{f_C} & = \bar V_C - \left ( R + j X_S \right ) \bar I_C - \left ( R_g + j X_g \right ) \left ( \bar I_A + \bar I_B + \bar I_C \right ) \end{align} $$

Diesel State of Development
This model is considered experimental and may not work as designed.

Energy Storage State of Development
This model is considered experimental and may not work as designed.

Inverter Model
A minimal model could be defined by:

object inverter { phases AS; generator_mode CONSTANT_PF; generator_status ONLINE; inverter_type PWM; power_factor 1.0; parent triplex_meter2; << implied child that provides a DC power input >> }

Inverter State of Development
This model is considered experimental and may not work as designed.

Microturbine State of Development
This model is considered experimental and may not work as designed.

Power Electronics State of Development
This model is considered experimental and may not work as designed.

Rectifier State of Development
This model is considered experimental and may not work as designed.

Default Solar
A minimal model could be created via:

object solar { generator_mode SUPPLY_DRIVEN; generator_status ONLINE; panel_type SINGLE_CRYSTAL_SILICON; efficiency 0.2; parent inverter1; area 2500 sf; }

Solar State of Development
This model is considered experimental and may not work as designed.

Wind Turbine DG Model
A minimal model could be created via:

object windturb_dg { parent my_meter1; phases ABCN; name windturb1; Rated_VA 10000; turbine_height 40; } or using one of the generic turbines: object windturb_dg { parent my_meter1; phases ABCN; name windturb1; Turbine_Model GEN_TURB_POW_CURVE_1_5MW; }

Default Wind Turbine
When unspecified, turbine_height and Rated_VA default to the following:

Default Rated_VA: 100,000 W

Default turbine_height: 37 m

These defaults are loaded when the wind turbine is defined without specifying the minimally required parameters. For example: object windturb_dg { parent my_meter1; phases ABCN; name windturb1; }

The wind turbine object is allowed to have the following parents:

Meter

Triplex meter

Inverter (for power curve-based implementation only)

Wind Turbine State of Development
The power curve-based implementation is included in the GridLAB-D v4.3 Release. The previous versions only support the coefficient of performance based model. This model is considered experimental and may not work as designed.

Model testing



 * Note: The matlab code ready but is waiting for Generator data.