Distributed Generation

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 - i.e., 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.

Solar PV

The solar PV class in GridLAB-D™ uses the solar parameters from the climate object in the model and the parameters specified in the object itself to generate a DC power value. To tie into the rest of the GridLAB-D™ simulation, this DC power needs to be converted to an AC value, either split phase as for a “house” object or three-phase for general distribution node. The solar PV class has parameters that are closer to first-principles than power engineers may be used to; instead of specifying a 5 kW installation the class asks for panel type, square-footage of the installation, efficiency, and normal operating cell temperature, among others.

Being so closely tied to the physics of the system, the model relies on three solar parameters to correctly calculate the effective solar radiation that is used by the panel to produce electrical energy. These values are defined in the climate object which must be included in the model (.glm); typically they are provided by TMY data though they could alternatively be defined with player files using an external data source.

There are two types of solar models used in GridLAB-D™: a solar tilt model and a solar power model. The tilt model is used to calculate the amount of solar radiation striking the face of the solar panel. GridLAB-D™ has two models, the default (based on B. Y. H. Liu and R. C. Jordan, “The interrelationship and characteristic distribution of direct, diffuse and total solar radiation,” Solar Energy, vol. 4, no. 3, pp. 1–19, 1960.) and SOLPOS; SOLPOS is used in NREL's PVWatts, has been validated against it, and is the preferred model.

The solar power model takes the power generated in the tilt model and adjusts it based on the thermal parameters of the solar panel. There are two power models in GridLAB-D™ , the default and the FLATPLATE, the later contains a more complex thermal model and is the slightly preferred model to use because of this.

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;
}
Table 1: Solar Parameters
Property Name Type Unit Description
generator_mode enumeration N/A Only operational in SUPPLY_DRIVEN at this time.
- UNKNOWN
- CONSTANT_V
- CONSTANT_PQ
- CONSTANT_PF
- SUPPLY_DRIVEN
generator_status enumeration N/A Default is ONLINE. Allows a user to dropout a generator.
- OFFLINE
- ONLINE
panel_type enumeration N/A Uses pre-defined panel technologies. Defines efficiency, Pmax_temp_coeff, and Voc_temp_coeff. SINGLE_CRYSTAL_SILICON (default)
- MULTI_CRYSTAL_SILICON
- AMORPHOUS_SILICON
- THIN_FILM_GA_AS (incomplete)
- CONCENTRATOR (incomplete)
power_type enumeration N/A Defines whether the connection is AC or DC. This variable is not currently used at this time as the connection method is determined from the connection device (meter vs. inverter).
- AC
- DC
INSTALLATION_TYPE enumeration N/A This variable is not currently used.
- ROOF_MOUNTED
- GROUND_MOUNTED
NOCT double degF Nominal operating cell temperature, typically designated by the manufacturer.
Tmodule double degF Calculated internal temperature of the PV module.
Tambient double degF Outside air temperature. Comes from a climate object, if available.
wind_speed double mph Outside wind speed. Comes from a climate object, if available.
Insolation double W/sf Solar radiation incident upon the solar panel. Comes from a climate object, if available.
Rinternal double Ohm Not currently used.
Rated_Insolation double W/sf Insolation level at which the cell is rated for. It is assumed that at rated insolation, power output will be at the rated maximum power output.
Pmax_temp_coeff double Coefficient for the effects of temperature changes on the actual power output. This is explained in further documentation.
Voc_temp_coeff double Coefficient for the effects of temperature changes on the DC terminal voltage. This is explained in further documentation.
V_Max complex V (DC) Defines the max operating voltage of the PV module. This is used for de-rating purposes and is not currently used as a generator cutoff.
Voc complex V (DC) Defines the open circuit voltage as specified by the PV manufacturer. It occurs when there is no current flowing throught the PV cell
efficiency double unit Defines the efficiency of power conversion from the solar insolation to DC power. Defines maximum power output.
area double sf Defines the surface area of the solar module. Defines maximum power output.
Rated_kVA complex kVA Not currently used.
P_Out complex kW Not currently used.
V_Out complex V DC voltage passed to the inverter object.
I_Out complex A DC current passed to the inverter object.
VA_Out complex VA Actual power delivered to the inverter.
FF double None The Fill Factor (FF) is essentially a measure of quality of the solar cell. It is calculated by comparing the maximum power to the theoretical power that would be output at both the open circuit voltage and short circuit current together. This variable is currently not implemented.

Solar State of Development

This model is considered experimental and may not work as designed.

Reference Page

The full page on the solar generator model can be found here: Solar

Inverters

Since a solar PV installation is inherently DC and the electrical grid is AC, an inverter is needed to connect the two. The inverter is assumed to provide ideal maximum power-point tracking and be able to convert the maximum power from the solar installation that is supported by the conditions at a given point in time. When the inverter is commanded to produce less than this power it is assumed the solar PV panel is loaded in such a way as to provide this power and the potential power output of the panel is not fully realized.

As of the time of this writing, the inverter model is a mix of older legacy code that will likely be deprecated in the near future and newer, active development and maintenance code. The most up-to-date model sets the inverter_type to FOUR_QUADRANT; though this model has several different control modes, most don't work properly with solar panels. Leaving the four_quadrant_control_mode parameter unspecified (that is, not including it in the parameter definitions for that object), will default to an operating mode that transfers the maximum real energy possible from the solar panel at all times. We'll discuss some of the other operating modes of the inverter when we cover energy storage later.

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 >>
}
Table 2: Inverter Properties
Property Name Type Unit Description
inverter_type enumeration N/A Defines the type of inverter technology and the efficiency of the unit. NOTE: efficiency needs to be made a variable.
- TWO_PULSE
- SIX_PULSE
- TWELVE_PULSE
- PWM
generator_status enumeration N/A Allows user to define when the generator is in operation or not.
- ONLINE
- OFFLINE
generator_mode enumeration N/A Defines the control mode of the inverter. Only CONSTANT_PF has been validated to any degree and allows the user to adjust the power factor (and therefore the Q output) under the constraints of the rated output.
- UNKNOWN
- CONSTANT_V
- CONSTANT_PQ
- CONSTANT_PF
- SUPPLY_DRIVEN
V_In complex V DC voltage passed in by the DC object (e.g. solar panel or battery)
I_In complex A DC current passed in by the DC object (e.g. solar panel or battery)
VA_In complex VA \(VA_In = V_In * I_In\)
Vdc complex V Not used at this time.
phaseA_V_Out
phaseB_V_Out
phaseC_V_Out
complex V AC voltage coming from the interconnection point. This is not a user-definable variable, but is assigned by the powerflow node. In the case of a “meter”, this can be 1-, 2-, or 3-phase. In the case of a “triplex_meter”, phaseA_V_Out is used to hold the 240V phase voltage; B & C are not used in this case.
phaseA_I_Out
phaseB_I_Out
phaseC_I_Out
complex A AC current being delivered to the interconnection point. This is not a user-definable variable, but is calculated by the inverter/DC object. In the case of a “meter”, this can be 1-, 2-, or 3-phase. In the case of a “triplex_meter”, phaseA_I_Out is used to hold the 240V phase voltage; B & C are not used in this case.
power_A
power_B
power_C
complex VA Calculation of power delivered to interconnection node (e.g., power_A = phaseA_V_Out * ~phaseA_I_Out).
P_Out double VA Not used as this time.
Q_Out double VAr Not used as this time.
power_factor double unit Defines the desired power factor in CONSTANT_PF mode.
phases set N/A Not used at this time – phases are assumed from the interconnection point. inherited from power electronics – NOTE: Many of the PE capabilities are not currently fully functional.
Rated_kV double kV Used as the nominal voltage when no interconnection point is designated.
efficiency double unit Efficiency of the inverter. This is assigned by inverter_type and cannot be overridden at this time.

Inverter State of Development

This model is considered experimental and may not work as designed.

Reference Page

The inverter models used by GridLAB-D™ are described in further detail here: Inverter

Example - Basic Solar PV Installation

The file dist_gen_solar_single.glm contains the feeder model we've been using up to this point with a single added solar installation. Measuring the net power flow at b1m1_house_node, upstream of both the solar PV installation, its inverter, and the house load itself, we can see the impact of the solar PV installation on the total residential load. During some portion of the day, when the air-conditioner is off, the solar power output is greater than the house load, leading to reverse power flow back into the distribution system.

Single solar output
Figure 1: Single solar output

Example - Large Solar PV Installation and Impact on Feeder

The file "dist_gen_solar_all.glm" uses the same architecture and adds solar PV installations to all the houses on our small feeder model. Looking at the total power flow up at the feeder head, we can see that adding solar power to each of the houses dramatically reduces the total feeder load during the sunny part of the day, again leading to a few moments where the total feeder power is negative. During these times the feeder is effectively acting as a generator and feeding power back to the bulk power system as a whole (which we haven't included in our model).

Distributed generator solar comparison
Figure 2: Distributed generator solar comparison

Battery Energy Storage

Confusingly, GridLAB-D™ contains two classes that both look like they could be used for adding energy storage to a GridLAB-D™ model: energy_storage and battery. A quick look at the energy_storage object and source code reveals that this class type is not fully implemented, forcing us to use the battery class instead. 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. Unfortunately, like the inverter class, there is a mix of legacy and modern code and models. The most modern and maintained branch of this class sets use_internal_battery_model to TRUE. This enables a simple battery model with only a few parameters such as efficiency and energy and power ratings.

The bulk of the capability when using the battery model comes from the inverter that is paired with it. Again, just like we did with the solar panel, setting inverter_type to FOUR_QUADRANT uses the most current model and unlike with a solar PV installation, the four_quadrant_control_mode parameter is fully functional and opens up a wide variety of control modes.

  • CONSTANT_PQ Sets the output of the battery to the specified constant real and reactive power levels. This mode in particular lends itself to using player files or schedules to control the battery, allowing the charge and discharge time to be scheduled.

  • CONSTANT_PF This is the default controller mode with the power factor set to unity. With a solar panel installation this works wonderfully as the inverter will generate as much real power as the panel provides.

  • VOLT_VAR Uses the reactive power capability of the inverter to regulate the voltage at the point of common coupling. This mode allows the user to input a voltage vs reactive power curve to define how aggressively the inverter attempts to regulate the voltage.

  • LOAD_FOLLOWING Allows the inverter to use the energy from the battery to regulate the load at a user-definable point on the feeder. The user defines a charge/discharge hysteresis curve to dictate how the battery/inverter combination will operate.

Default Battery

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

Table 3: Battery Parameters
Property Name Type Unit Description
generator_status enumeration N/A Allows user to define when the generator is in operation or not.
- ONLINE
- OFFLINE
generator_mode enumeration N/A Defines the control mode of the inverter. Only CONSTANT_PF has been validated to any degree and allows the user to adjust the power factor (and therefore the Q output) under the constraints of the rated output. Do not set when using the internal battery model.
- UNKNOWN
- CONSTANT_V
- CONSTANT_PQ
- CONSTANT_PF
- SUPPLY_DRIVEN
use_internal_battery_model Boolean N/A A boolean to use the internal battery model which is used when the battery's parent is an inverter. Default is FALSE.
battery_type enumeration N/A The battery type applies a voltage vs. SOC performance curve for the internal battery model to use. Default is UNKNOWN.
- UNKNOWON
- LI_ION
- LEAD_ACID
nominal_voltage double V The nominal open circuit dc voltage for the battery. Used by the internal battery model.
rated_power double W The rated output power of the battery. It is used by the internal battery model. The rated_output is set by the parent inverter's power rating and efficiency.
battery_capacity double Wh The rated capacity of the battery. It is used by the internal battery model.
round_trip_efficiency double pu The round trip efficiency of the battery used by the internal battery model.
state_of_charge double pu The state of charge of the battery used by the internal battery model.
reserve_state_of_charge double pu The reserve state of charge that the battery is not allowed to go below. It is used by the internal battery model and is used by the parent inverter. Default is 0.
battery_load double W The current output power of the battery. It is set by the parent inverter and used in the internal battery model.
rfb_size enumeration N/A Presets for batter ratings and capacity.
- HOUSEHOLD:
  - nominal_voltage = 260 V
  - rated_power = 3.6 kW
  - battery_capacity = 23.4 kWh
  - round_trip_efficiency = 0.9
SMALL:
  - nominal_voltage = 75.2 V
  - rated_power = 18.8 kW
  - battery_capacity = 160 kWh
  - round_trip_efficiency = 0.7
- MED_COMMERCIAL:
  - nominal_voltage = 115 V
  - rated_power = 50 kW
  - battery_capacity = 175 kWh
  - round_trip_efficiency = 0.8
- MED_HIGH_ENERGY:
  - nominal_voltage = 115 V
  - rated_power = 50 kW
  - battery_capacity = 400 kWh
  - round_trip_efficiency = 0.8
- LARGE:
  - nominal_voltage = 8 kV
  - rated_power = 240 kW
  - battery_capacity = 5.76 MWh
  - round_trip_efficiency = 0.9

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. TODO - Update - 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;
}

Reference Page

The full page on the energy storage generator model can be found here: Energy Storage

Example - Load-Following for a Single Residence

As an example of how to use a battery in GridLAB-D™, we are going to demonstrate how to use the inverter load-following mode, a mode that uses an energy storage device to peak-shave and valley-fill the load at a specified point in the distribution feeder. The model file is "dist_gen_load_following.glm" and it has been changed by:

  • Adding module generators to the list of specific modules GridLAB-D™ needs to load as a part of running a simulation of this model.

  • Installing a separate triplex line and meter on b1m1 so that the energy from the battery can be uniquely measured and not conflated with the load from the house.

  • Installing the inverter and battery downstream of the new triplex line and meter.

  • To support the LOAD_FOLLOWING mode on the inverter we need to define a node upstream of the inverter and house that will be used as a reference point. We already had a node (b1m1_house_node) and changing it to a meter will open up some measurement parameters that will be convenient to use.

With the new objects added to the model, the only tricky part now is setting up the LOAD_FOLLOWING mode correctly in the object parameter list. LOAD_FOLLOWING works by charging when the reference load is low enough and discharging when that load is too high. To add extra flexibility, hysteresis is included; for example, charge_on_threshold is power below which the inverter will begin to charge the battery and charge_off_threshold is the power above which the inverter will stop charging the battery. Since this is a hysteresis operation, charge_on_threshold must be lower than charge_off_threshold. A similar definition exists for the discharge operation when the load gets too high.

The power levels that the inverter will reference in making these control decisions are defined by the sense_object parameter. This object must be upstream of the inverter; that is, the power produced by the inverter must flow through this meter for LOAD_FOLLOWING to work. Lastly, a pause time in seconds between the end of the charge and discharge operation (charge_lockout_time and discharge_lockout_time, respectively) can also be defined.

Running this simulation produces a few warnings (not errors, which would halt the simulation). The first is a reminder that in LOAD_FOLLOWING, the sense_object must be upstream, as previously discussed.

Looking at the file "b1h1_house_data.csv" and comparing it to how the system behaved prior to the installation of the battery and inverter, we can see that the load-following is set-up correctly to fill the low points in the residential load and shave the peaks when that load gets too high.

Distributed generator battery load following
Figure 3: Distributed generator battery load following

Except not all the time. Towards the end of the day we can see that the state-of-charge of the battery reaches zero, at which point it is no longer able to discharge, eliminating its ability to shave the peak. The battery stays in this depleted state until the load at the reference meter falls below the charge_on_threshold value of 1.5 kW, at which point the battery begins to charge, partially restoring the state of charge. Compared to where the battery started the day though, the ending state-of-charge is pretty low and its easy to see that attempts to shave the peak on the following day probably will also fall short, perhaps even earlier in the day.

Example - Solar PV and Battery Combination

Combining solar PV and energy storage can create an effective solution for regulating the load. The model defined in the file "dist_gen_battery_solar.glm" has such an example. To the same house that already had energy storage installed, a solar PV installation was added. As before, it is the inverter that controls the power flow from the solar panels and the control mode CONSTANT_PF defaults to only producing real power, passing all the available energy generated by the solar PV installation onto the grid.

You'll also notice that the solar PV installation has its own triplex line, meter and inverter. Despite the fact that it generally possible to connect solar panels and batteries to the same inverter in real-world installations, GridLAB-D™ has no solver for DC powerflow and thus requires separate AC connections through inverters. This doesn't mean that the solar panels won't charge the batteries, we'll see that they do in a moment. Rather, it means that the energy flows through the AC network and as a consequence, is available for separate metering.

Looking at the definition of the solar object, you'll see that the parameters provided are derived from a physics-level perspective. Area of solar panel installation, efficiency, panel type, panel orientation, power production models (among others), all are used to define how this installation will generate energy as the solar conditions change throughout the day (and year). This particular installation produces more than 1 kW during peak solar conditions.

Running this simulation and looking at the data in the file "b1h1_house_data.csv" shows that the addition of solar greatly increases the effectively of the peak-shaving. Not only does the battery get close to full capacity before it's called-on mid-morning, the battery is far from empty when the end of the peak-shaving activity for the day is over, using only a third of its capacity. By having the energy storage work in parallel with the solar PV installation, the early morning solar energy production is effectively stored for use later in the day when it is needed to limit the demand of this residential load.

Battery Load-Following with Solar
Figure 4: Battery Load-Following with Solar

If we wanted to try to align the peak of the solar generation better with the peak of the residential load we can change the orientation of the solar PV panels so that they are pointed more southwest, rather than directly south. Change the orientation_azimuth to 230 and re-run the simulation.

Battery Load-Following with Solar Updated Orientation to 230 Azimuth
Figure 5: Battery Load-Following with Solar Updated Orientation to 230 Azimuth

Adjusting the angle again so the panels face directly west produces the following:

Battery Load-Following with Solar Updated Orientation: West-facing
Figure 6: Battery Load-Following with Solar Updated Orientation: West-facing

A few important notes from this:

  • Total solar energy output - 14.1 kWh generated when facing southwest vs 14.4 kWh when facing directly south and 12.9 kWh when facing directly west.

  • Total net battery energy transacted - 1.5 kWh of net load when facing southwest vs 1.9 kWh when facing directly south and 0.25 kWh when facing directly west.

As the panel points more and more westward, the total solar energy production goes down and its ability to recharge the battery is reduced. The big advantage of facing somewhat westward, though, is that it tends to line up the load on the system as air-conditioners run heavily in the late afternoon and early evening. This is particularly beneficial for residential customers that pay different rates during different times of the day but that gets into the economics of energy and that we won't get into that right now.

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)
Table 4: Wind Turbine Parameters
Property Name Type Unit Description COEFF_OF_PERFORMANCE Implementation
air_density double kg/m^3 Estimated air density.
blade_diam double meters Specifies the diameter of the blades.
cut_in_ws double m/sec Minimum wind speed for generator operation.
cut_out_ws double m/sec Maximum wind speed for generator operation.
Cp_max double p.u. Maximum coefficient of performance.
Cp_rated double p.u. Rated coefficient of performance.
Cp double p.u. Calculated coefficient of performance.
Gen_mode enumeration N/A Control mode that is used for the generator output.
- CONSTANTE
- CONSTANTP
- CONSTANTPQ
Gen_status enumeration N/A Allows a user to dropout a generator.
- OFFLINE
- ONLINE
Gen_type enumeration N/A Allows the user to specify the type of generator.
- INDUCTION
- SYNCHRONOUS
Max_Vrotor double (p.u.)*V Induction generator maximum induced rotor voltage in p.u., e.g. 1.2.
Min_Vrotor double (p.u.)*V Induction generator minimum induced rotor voltage in p.u., e.g. 0.8.
Max_Ef double (p.u.)*V Synchronous generator maximum induced rotor voltage in p.u., e.g. 1.2.
Min_Ef double (p.u.)*V Synchronous generator minimum induced rotor voltage in p.u., e.g. 0.8.
power_curve_csv string N/A Specifies the name of .csv file containing user defined power curve
power_curve_pu Boolean N/A - TRUE indicates that the user provided power curve has power values in p.u.
- FALSE
pf double p.u. Desired power factor in CONSTANTP mode.
phases set N/A Specifies which phases to connect to. Triplex mode is only supported for the POWER_CURVE implementation.
- ABCN
- AS
- BS
- CS
R_stator double (p.u.)*Ohm Induction generator primary stator resistance in p.u.
R_rotor double (p.u.)*Ohm Induction generator primary rotor resistance in p.u.
R_core double (p.u.)*Ohm Induction generator primary core resistance in p.u.
Rated_V double V Rated generator terminal voltage.
Rated_VA double VA Rated wind turbine generator power output.
- 100 kW.
roughness_length_factor double N/A European Wind Atlas unitless correction factor for adjusting wind speed at various heights above ground and terrain types,
- 0.055.
Rs double (p.u.)*Ohm Synchronous generator primary stator resistance in p.u.
Rg double (p.u.)*Ohm Synchronous generator grounding resistance in p.u.
turbine_height double meters Specifies the height of the wind turbine hub above the ground.
- 37 m.
Turbine_Model enumeration N/A Allows the use of one of the pre-defined generic turbines.
- GENERIC_DEFAULT.
- GENERIC_SYNCH_SMALL
- GENERIC_SYNCH_MID
- GENERIC_SYNCH_LARGE
- GENERIC_IND_SMALL
- GENERIC_IND_MID
- GENERIC_IND_LARGE
- VESTAS_V82
- GE_25MW
- BERGEY_10kW
- GEN_TURB_POW_CURVE_2_4KW
- GEN_TURB_POW_CURVE_10KW
- GEN_TURB_POW_CURVE_100KW
- GEN_TURB_POW_CURVE_1_5MW
Turbine_implementation enumeration N/A Allows the user to specify the type of implementation for the wind turbine model.
- POWER_CURVE
- COEFF_OF_PERFORMANCE
Wind_speed_source enumeration N/A Allows the user to specify the source of wind speed.
- BUILT_IN, a wind speed of 8 m/s (at 5-15m level) is used.
- WIND_SPEED
- CLIMATE_DATA
WSadj double m/sec Speed of wind at hub height. This is an output.
Wind_Speed double m/sec Wind speed at 5-15m level (typical measurement height). This is an output.
wind_speed_hub_ht double m/sec User-specified wind speed at hub height with a default value of 10 m/s. This is an input. Requires setting the parameter Wind_speed_source to WIND_SPEED.
ws_rated double m/sec Rated wind speed for generator operation.
ws_maxcp double m/sec Wind speed at which generator reaches maximum Cp.
X_stator double (p.u.)*Ohm Induction generator primary stator reactance in p.u.
X_rotor double (p.u.)*Ohm Induction generator primary rotor reactance in p.u.
X_magnetic double (p.u.)*Ohm Induction generator primary core reactance in p.u.
Xs double (p.u.)*Ohm Synchronous generator primary stator reactance in p.u.
Xg double (p.u.)*Ohm Synchronous generator grounding reactance in p.u.

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.

Reference Page

The full page on the wind turbine generator model can be found here: Windturb_dg

Diesel DG Model

Generator internal electrical model
Figure 7: Generator internal electrical model

The three phase synchronous generator is implemented with the classical model for power flow computation. In this implementation, \(\bar E_f\) is induced voltage of generator; \(\bar V\) is terminal bus voltage; and \(\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.

Model testing

Generator testing model
Figure 8: Generator testing model

Note

The matlab code is ready but is waiting for Generator data.

Reference Page

The full page on the diesel generator model can be found here: diesel_dg