Show/Hide Toolbars

HOMER Pro 3.16

Navigation: Design > Components Tab > Controller > MATLAB Link

Listing of simulation_parameters

Scroll Prev Top Next More

HOMER Logo


The following table contains a list of simulation parameters used with MATLAB.

Variable

Type

Description

simulation_parameters.generators(i).emissions_factor_CO

double

grams per unit of fuel (i.e. g/L, g/kg, or g/m3 depending on fuel)

simulation_parameters.generators(i).emissions_factor_NOx

double

simulation_parameters.generators(i).emissions_factor_PM

double

simulation_parameters.generators(i).emissions_factor_UHC

double

simulation_parameters.generators(i).emissions_sulfur_PM_ratio

double

simulation_parameters.generators(i).fuel.carbon_content

double

The mass based carbon content of the fuel [%]

simulation_parameters.generators(i).fuel.cost

double

cost per unit, i.e. $/L

simulation_parameters.generators(i).fuel.density

double

kg/m3

simulation_parameters.generators(i).fuel.

    initial_fuel_available

double

Total fuel available [L] if limit_consumption is true

simulation_parameters.generators(i).fuel.limit_consumption

bool

Indicates if consumption should be limited [T/F]

simulation_parameters.generators(i).fuel.lower_heating_value

double

MJ/kg

simulation_parameters.generators(i).fuel.name

string


simulation_parameters.generators(i).fuel.sulfur_content

double

The mass based sulfur content of the fuel [%]

simulation_parameters.generators(i).fuel_curve_intercept

double

The no-load fuel consumption of the generator divided by its rated capacity [L/hr/kW_rated]

simulation_parameters.generators(i).fuel_curve_slope

double

The marginal fuel consumption of the generator [L/hr/kW_output]

simulation_parameters.generators(i).lifetime_in_hours

double

Lifetime of the generator in operating hours [hr]

simulation_parameters.generators(i).minimum_load

double

%

simulation_parameters.generators(i).minimum_runtime

double

Minimum amount of time the unit must run [minutes]

simulation_parameters.generators(i).

    use_nonlinear_fuel_curve

bool

Nonlinear fuel curve equation:

nonlinear_x2 * x^2 + nonlinear_x1 * x + nonlinear_x0 = Q

 

where Q = fuel consumption in l/hr and x = power_output / generator_capacity [0,1]

simulation_parameters.generators(i).nonlinear_x0

double

simulation_parameters.generators(i).nonlinear_x1

double

simulation_parameters.generators(i).nonlinear_x2

double

simulation_parameters.generators(i).component_number

int

Unique index that is constant across all simulations

simulation_parameters.generators(i).cost.capital

double

Generator initial capital cost

simulation_parameters.generators(i).cost.

    operation_and_maintenance

double

Generator O&M [cost/hr]

simulation_parameters.generators(i).cost.replacement

double

Replacelemt cost

simulation_parameters.generators(i).is_AC

bool

Is the generator on the AC or DC bus in the schematic?

simulation_parameters.generators(i).name

string


simulation_parameters.primary_loads(i).name

string


simulation_parameters.primary_loads(i).peak_load

double

kW, peak for the year

simulation_parameters.primary_loads(i).is_AC

bool

Is this load on the AC bus or DC bus?

simulation_parameters.pvs(i).name

string


simulation_parameters.pvs(i).component_number

int

Unique index that is constant across all simulations in each run

simulation_parameters.pvs(i).cost.capital

double

PV initial capital cost

simulation_parameters.pvs(i).cost.operation_and_maintenance

double

PV maintenance cost, per year

simulation_parameters.pvs(i).cost.replacement

double

PV replacement cost

simulation_parameters.pvs(i).is_AC

bool

Is the PV on the AC bus or the DC bus?

simulation_parameters.pvs(i).lifetime_in_years

double


simulation_parameters.pvs(i).rated_capacity

double

PV capacity, kWp DC

simulation_parameters.wind_turbines(i).name

string


simulation_parameters.wind_turbines(i).component_number

int

Unique index that is constant across all simulations in each run

simulation_parameters.wind_turbines(i).cost.capital

double

Wind Turbine initial capital cost

simulation_parameters.wind_turbines(i).cost.operation_and_maintenance

double

Wind Turbine maintenance cost, per year

simulation_parameters.wind_turbines(i).cost.replacement

double

Wind Turbine replacement cost

simulation_parameters.wind_turbines(i).is_AC

bool

Is the Wind Turbine on the AC bus or the DC bus?

simulation_parameters.wind_turbines(i).power_curve

Nx1 matrix<int>

The power curve for the wind turbine.

simulation_parameters.wind_turbines(i).rated_power

simulation_parameters.wind_turbines(i).quantity

double

double

Wind Turbine rated power KW

Wind Turbine quantity in search space KW

simulation_parameters.batteries(i).name

string


simulation_parameters.batteries(i).component_number

int

Unique index that is constant across all simulations

simulation_parameters.batteries(i).cost.capital

double

Battery initial capital cost

simulation_parameters.batteries(i).cost.operation_and_maintenance

double

Maintenance cost per year

simulation_parameters.batteries(i).cost.replacement

double

Battery replacement cost

simulation_parameters.batteries(i).is_AC

bool

On the AC bus or the DC bus?

simulation_parameters.batteries(i).nominal_voltage

double

volts

simulation_parameters.batteries(i).nominal_capacity

double

kWh nominal

simulation_parameters.batteries(i).minimum_state_of_charge

double

%

simulation_parameters.batteries(i).fractional_charge_efficiency

double

Equals the square-root of the roundtrip efficiency

simulation_parameters.batteries(i).fractional_discharge_efficiency

double

simulation_parameters.batteries(i).wear_cost

double

Estimated cost per kWh for economic dispatch decisions

simulation_parameters.batteries(i).

    battery_bank_maximum_absolute_soc

double

kWh

simulation_parameters.batteries(i).

    battery_bank_minimum_absolute_soc

double

kWh

simulation_parameters.batteries(i).dedicated_converter.

    rectifier_capacity

double

kW

simulation_parameters.batteries(i).dedicated_converter.

    inverter_capacity

double

kW

simulation_parameters.batteries(i).dedicated_converter.

    lifetime_in_years

double

years

simulation_parameters.batteries(i).dedicated_converter.

    has_efficiency_tables

bool

If true, use efficiency tables to calculate converter losses. If false, use scalar vales rectifier_efficiency and inverter_efficiency

simulation_parameters.batteries(i).dedicated_converter.

    inverter_efficiency_table

matrix Nx2

First column is power level in kW, second column is corresponding efficiency in %

simulation_parameters.batteries(i).dedicated_converter.

    rectifier_efficiency_table

matrix Nx2

simulation_parameters.batteries(i).dedicated_converter.

    rectifier_efficiency

double

%

simulation_parameters.batteries(i).dedicated_converter.

    inverter_efficiency

double

%

simulation_parameters.batteries(i).has_dedicated_converter

bool

If false, do not apply the dedicated converter model

simulation_parameters.converters(i).name

string


simulation_parameters.converters(i).component_number

int

Unique index that is constant across all simulations

simulation_parameters.converters(i).cost.capital

double

Converter initial capital cost

simulation_parameters.converters(i).cost.

    operation_and_maintenance

double

Maintenance cost per year

simulation_parameters.converters(i).cost.replacement

double

Cost to replace converter at end of lifetime

simulation_parameters.converters(i).inverter_capacity

double

kW, maximum output power of inverter

simulation_parameters.converters(i).rectifier_capacity

double

kW, maximum output power of rectifier

simulation_parameters.converters(i).inverter_efficiency

double

Inverting efficiency, %

simulation_parameters.converters(i).rectifier_efficiency

double

Rectifying efficiency, %

simulation_parameters.converters(i).lifetime_in_years

double

After specified duration, the replacement cost is incurred

simulation_parameters.converters(i).

    able_to_parallel_with_ac_generator

bool

If false, inverter does not have grid-following capability, and can't operate simultaneously with the grid or AC generators.

simulation_parameters.flywheels(i).name

string


simulation_parameters.flywheels(i).component_number

int

Unique index that is constant across all simulations

simulation_parameters.flywheels(i).cost.capital

double

Flywheel initial capital cost

simulation_parameters.flywheels(i).cost.operation_and_maintenance

double

Maintenance cost per year

simulation_parameters.flywheels(i).cost.replacement

double

Cost to replace flywheel at end of lifetime

simulation_parameters.flywheels(i).is_AC

bool

True if flywheel is on the AC bus

simulation_parameters.flywheels(i).charge_discharge_capacity

double

kW operating capacity added to system whenever flywheel is on

simulation_parameters.flywheels(i).parasitic_load

double

kW load required by the flywheel

simulation_parameters.flywheels(i).quantity

int

Number of flywheels in the system

simulation_parameters.flywheels(i).lifetime_in_years

double

After the lifetime elapses, the replacement cost is incurred

simulation_parameters.custom_components(i).name

string


simulation_parameters.custom_components(i).component_number

int

Unique index that is constant across all simulations

simulation_parameters.custom_components(i).cost.capital

double

Flywheel initial capital cost

simulation_parameters.custom_components(i).cost.operation_and_maintenance

double

Maintenance cost per year

simulation_parameters.custom_components(i).cost.replacement

double

Cost to replace flywheel at end of lifetime

simulation_parameters.custom_components(i).is_AC

bool

True if flywheel is on the AC bus

simulation_parameters.custom_components(i).capacity

double

kW operating capacity added to system whenever flywheel is on

simulation_parameters.emissions.emissions_penalty_CO

double

Tariff for carbon monoxide emission per ton

simulation_parameters.emissions.emissions_penalty_CO2

double

Tariff for carbon dioxide emission per ton

simulation_parameters.emissions.emissions_penalty_NOx

double

Tariff for nitrogen oxides emission per ton

simulation_parameters.emissions.emissions_penalty_PM

double

Tariff per ton of particluate matter emitted

simulation_parameters.emissions.emissions_penalty_SO2

double

Tariff per ton of sulfur dioxide emission

simulation_parameters.emissions.emissions_penalty_UHC

double

Tariff per ton of unburned hydrocarbon emitted

simulation_parameters.emissions.max_emissions_CO

double

Limit on carbon monoxide emissions (kg/yr)

simulation_parameters.emissions.max_emissions_CO2

double

Limit on carbon dioxide emissions (kg/yr)

simulation_parameters.emissions.max_emissions_NOx

double

Limit on emission of nitrogen oxides (kg/yr)

simulation_parameters.emissions.max_emissions_PM

double

Limit on particulate matter emissions (kg/yr)

simulation_parameters.emissions.max_emissions_SO2

double

Limit on sulphur dioxide emissions (kg/yr)

simulation_parameters.emissions.max_emissions_UHC

double

Limit on unburned hydrocarbon emission (kg/yr)

simulation_parameters.emissions.use_max_emissions_CO

bool

Is the carbon monoxide emission limit used?

simulation_parameters.emissions.use_max_emissions_CO2

bool

Is the carbon dioxide emission limit enforced?

simulation_parameters.emissions.use_max_emissions_NOx

bool

Is the nitrogen oxide emission limit in use?

simulation_parameters.emissions.use_max_emissions_PM

bool

Is the particulate matter emission limit used?

simulation_parameters.emissions.use_max_emissions_SO2

bool

Use the limit on emission of sulfur oxides?

simulation_parameters.emissions.use_max_emissions_UHC

bool

Is the unburned hydrocarbons limit enforced?

simulation_parameters.operating_reserve.peak_load_requirement

double

Required operating reserve as a percentage of the annual peak load (%)

simulation_parameters.operating_reserve.solar_requirement

double

Required operating reserve as a percentage of solar pv power output in the current timestep (%)

simulation_parameters.operating_reserve.timestep_requirement

double

Required operating reserve as a percentage of the load in the current timestep (%)

simulation_parameters.operating_reserve.wind_requirement

double

Required operating reserve as a percentage of wind turbine power output in the current timestep (%)

Total operating reserve required in each time step is the sum of the above quantities and is provided in simulation_state.ac_bus.operating_capacity_requested and simulation_state.dc_bus.operating_capacity_requested.

simulation_parameters.

          maximum_annual_capacity_shortage

double

If the capacity shortage as a % of cumulative total operating capacity requested over the year is greater than specified here, the system is infeasible (%)

simulation_parameters.

          minimum_renewable_fraction

double

Simulations that have cumulative renewable production fraction of total load supplied less than specified here are infeasible.

simulation_parameters.

          timestep_size_in_seconds

int

Number of seconds per simulation time step

simulation_parameters.number_of_timesteps

int

Time steps in the one-year simulation

simulation_parameters.has_generator

bool

True if the system includes one or more generators

simulation_parameters.has_battery

bool

True if there are one or more batteries in the system

simulation_parameters.has_pv

bool

True if the system includes PV

simulation_parameters.has_wind_turbine

bool

True if the system includes a wind turbine

simulation_parameters.has_converter

bool

True if the microgrid includes a system converter

simulation_parameters.has_flywheel

bool

True if a flywheel is present in the system

Grid: Scheduled rates

simulation_parameters.grids(i).technical_model.model_type

"SCHEDULED"

If model_type is set to the string "SCHEDULED", the grid prices use scheduled (time-of-use) rates

simulation_parameters.grids(i).technical_model.demand_rate(j).demand_rate

double

Charge for the peak grid purchases (kW) that occur each month while this demand rate is in effect, cost per kW (i.e. $/kW)

simulation_parameters.grids(i).technical_model.demand_rate(j).grid_label

string

Descriptive name of demand rate

simulation_parameters.grids(i).technical_model.demand_rate(j).grid_state

GridState (see definition below)

Several options that the user can choose to adjust the operation of the system when this demand rate is in effect

simulation_parameters.grids(i).technical_model.demand_rate_index

Nx1 matrix<int>

List of the scheduled demand rates for all time steps in the simulation. The length of the list equals the number of time steps in the simulation. The number is the index of the demand rate in the demand_rate list

simulation_parameters.grids(i).technical_model.grid_rate(j).grid_label

string

Descriptive name of rate

simulation_parameters.grids(i).technical_model.grid_rate(j).grid_state

GridState (see definition below)

Several options that the user can choose to adjust the operation of the system when this rate is in effect

simulation_parameters.grids(i).technical_model.grid_rate(j).power_price

double

Cost per kWh of purchasing energy from the grid while this rate is in effect

simulation_parameters.grids(i).technical_model.grid_rate(j).sellback_rate

double

Revenue per kWh (i.e. $/kWh) for grid sales while this rate is in effect

simulation_parameters.grids(i).technical_model.grid_rate_index

Nx1 matrix<int>

List of the scheduled rates for all time steps in the simulation. The length of the list equals the number of time steps in the simulation. The number is the index of the rate in the grid_rate list

Grid: Real time rates

simulation_parameters.grids(i).technical_model.model_type

"REAL_TIME"

If model_type is set to the string "REAL_TIME", the grid prices are specified by time series data imported by the user

simulation_parameters.grids(i).technical_model.demand_rate(j).demand_rate

double

Charge for the peak grid purchases (kW) that occur each month while this demand rate is in effect, cost per kW (i.e. $/kW)

simulation_parameters.grids(i).technical_model.demand_rate(j).grid_label

string

Descriptive name

simulation_parameters.grids(i).technical_model.demand_rate(j).grid_state

GridState (see definition below)

Several options that the user can choose to adjust the operation of the system when this rate is in effect

simulation_parameters.grids(i).technical_model.demand_rate_index

Nx1 matrix<int>

List of the scheduled demand rates for all time steps in the simulation. The length of the list equals the number of time steps in the simulation. The number is the index of the demand rate in the demand_rate list

simulation_parameters.grids(i).technical_model.realtime_power_price

Nx1 matrix<double>

Cost per kWh of purchasing energy from the grid for all time steps in the simulation, in chronological order

simulation_parameters.grids(i).technical_model.realtime_sellback_rate

Nx1 matrix<double>

Revenue per kWh (i.e. $/kWh) for grid sales for all time steps in the simulation

Grid: GridState

grid_state.grid_is_down

bool

Current timestep is an outage. This property is only used in simulation_state.grid(i).grid_state

grid_state.maintain_state_of_charge

bool

Is maintain_state_of_charge_percent in effect? Not used in simulation_parameters.grids(i).technical_model.grid_rate(j).grid_state

grid_state.maintain_state_of_charge_has_ended

bool

true if maintain_state_of_charge was true last time step and false this time step. This property is only used in simulation_state.grid(i).grid_state

grid_state.maintain_state_of_charge_percent

double

Battery state of charge to maintain if maintain_state_of_charge is true. Not used in simulation_parameters.grids(i).technical_model.grid_rate(j).grid_state

grid_state.prohibit_any_battery_charging

bool

If true, battery is not allowed to charge this time step. Not used in simulation_parameters.grids(i).technical_model.demand_rate(j).grid_state

grid_state.prohibit_any_grid_sales

bool

If true, grid sales are not allowed this time step. Not used in simulation_parameters.grids(i).technical_model.demand_rate(j).grid_state

grid_state.prohibit_battery_from_discharging

bool

If true, battery is not allowed to discharge this time step. Not used in simulation_parameters.grids(i).technical_model.demand_rate(j).grid_state

grid_state.prohibit_grid_from_charging_battery

bool

If true, battery is not allowed to charge if power is being purchased from the grid in the current time step. Not used in simulation_parameters.grids(i).technical_model.demand_rate(j).grid_state

grid_state.prohibit_grid_sales_from_battery

bool

If true, grid sales are not allowed if the battery is discharging in the current time step. Not used in simulation_parameters.grids(i).technical_model.demand_rate(j).grid_state

The GridState class defined in the table above is used in three places:

Grid rates, as in simulation_parameters.grids(i).technical_model.grid_rate(j).grid_state

Demand rates, as in simulation_parameters.grids(i).technical_model.demand_rate(j).grid_state

simulation_state.grid(i).grid_state

The properties grid_is_down and maintain_state_of_charge_has_ended are only set in simulation_state.grid(i).grid_state; you can ignore them in the grid rate or demand rate definitions in simulation_parameters. In the demand rates defined in simulation_parameters, only maintain_state_of_charge and maintain_state_of_charge_percent are used. You can ignore the rest of the properties for data in a GridState structure that is inside the demand_rate property. Similarly, in grid rates in simulation_parameters, only the following properties apply: prohibit_any_battery_charging, prohibit_any_grid_sales, prohibit_battery_from_discharging, prohibit_grid_from_charging_battery, and prohibit_grid_sales_from_battery.

While only some properties are used in simulation_parameters.grids(i).technical_model.grid_rate(j).grid_state and others are used in simulation_parameters.grids(i).technical_model.demand_rate(j).grid_state, all of the properties of the GridState object are set for each time step in simulation_state, based on which grid rate and demand rate are currently in effect, and whether there is a grid outage.

All of the values in simulation_parameters are read-only.

See also

Controller

MATLAB Link