Model Parameters
The optimization model parameters with the input data must follow the schema below for each table. To create these tables we currently use CSV files that follow this same schema and then convert them into tables using TulipaIO, as shown in the basic example of the Tutorials section.
The schemas can be found in the input-schemas.json
. For more advanced users, they can also access the schemas at any time after loading the package by typing TulipaEnergyModel.schema_per_table_name
in the Julia console. Here is the complete list of model parameters in the schemas per table (or CSV file):
The following tables/files are allowed to be missing: "assets_rep_periods_partitions", "assets_timeframe_partitions", "assets_timeframe_profiles", "flows_rep_periods_partitions", "group_asset", "profiles_timeframe".
- For the partitions tables/files, the default value are
specification = uniform
andpartition = 1
for each asset/flow and year - For the profiles tables/files, the default value is a flat profile of value 1.0 p.u.
- If no group table/file is available there will be no group constraints in the model
Table 1 : asset
asset
Description: Unique identifier with the name of the asset.
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
capacity
Description: Capacity for one unit of the asset (is therefore multiplied by number of existing plus number of invested assets).
Type:
DOUBLE
Unit of measure:
MW
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
capacity_storage_energy
Description: Capacity of one storage unit.
Type:
DOUBLE
Unit of measure:
MWh
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
consumer_balance_sense
Description: Is the sense of the consumer balance constraint, equal to, greater than or less than.
Type:
VARCHAR
Unit of measure:
No unit
Default:
==
Constraints | Value |
---|---|
oneOf | Any["==", ">=", "<="] |
discount_rate
Description: e.g. 0.05 is 5 %. discount rate for the annuity calculation.
Type:
DOUBLE
Unit of measure:
ratio
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
economic_lifetime
Description: Economic lifetime of the unit for annuity calculation.
Type:
INTEGER
Unit of measure:
years
Default:
1
Constraints | Value |
---|---|
minimum | 0 |
energy_to_power_ratio
Description: Fixed ratio between the energy storage capacity [MWh] and the discharge/charge capacity [MW] for energy storage investments where
storage_method_energy = false
.Type:
DOUBLE
Unit of measure:
h
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
group
Description: Group to which the asset belongs to (null/empty/missing -> no group).
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
investment_integer
Description: Whether investment decisions are using integer variables.
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
investment_integer_storage_energy
Description: Whether investment for storage energy is integer or continuous. It only applies for energy storage investments where
storage_method_energy = true
.Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
investment_method
Description: How investments are treated.
Type:
VARCHAR
Unit of measure:
No unit
Default:
none
Constraints | Value |
---|---|
oneOf | Any["none", "simple", "compact"] |
is_seasonal
Description: Whether seasonal storage (e.g., hydro) or not (e.g., battery)
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
max_ramp_down
Description: Maximum ramping down rate as a portion of the capacity of asset.
Type:
DOUBLE
Unit of measure:
p.u./h
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
max_ramp_up
Description: Maximum ramping up rate as a portion of the capacity of asset.
Type:
DOUBLE
Unit of measure:
p.u./h
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
min_operating_point
Description: Minimum operating point or minimum stable generation level defined as a portion of the capacity of asset.
Type:
DOUBLE
Unit of measure:
p.u.
Default:
0
Constraints | Value |
---|---|
maximum | 1 |
minimum | 0 |
ramping
Description: Whether asset has ramping constraints or not.
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
storage_method_energy
Description: Whether there is independent investment on storage capacity or not. If false, the investment on storage capacity uses the energytopower_ratio as a constant fixed value.
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
technical_lifetime
Description: Technical lifetime of the unit to determine for how long the capacity is considered from the commission year.
Type:
INTEGER
Unit of measure:
years
Default:
1
Constraints | Value |
---|---|
minimum | 0 |
type
Description: Type of energy asset.
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints | Value |
---|---|
oneOf | Any["producer", "consumer", "storage", "conversion", "hub"] |
unit_commitment
Description: Whether asset has unit commitment constraints or not
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
unit_commitment_integer
Description: Whether the unit commitment variables are integer or not.
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
unit_commitment_method
Description: Which unit commitment method to use (null/empty/missing -> no unit commitment method).
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints | Value |
---|---|
oneOf | Any[nothing, "basic"] |
use_binary_storage_method
Description: Whether to use an extra binary variable for the storage assets to avoid charging and discharging simultaneously (null/empty/missing -> no binary).
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints | Value |
---|---|
oneOf | Any[nothing, "binary", "relaxed_binary"] |
Table 2 : asset_both
asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
commission_year
Description: Year of commissioning
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
decommissionable
Description: Whether the asset can be decomission or not.
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
initial_storage_units
Description: Number of existing storage units
Type:
DOUBLE
Unit of measure:
number
Default:
0
Constraints: No constraints
initial_units
Description: Number of existing units
Type:
DOUBLE
Unit of measure:
number
Default:
0
Constraints: No constraints
milestone_year
Description: Year of investment and operation decisions in the optimization.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
Table 3 : asset_commission
asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
commission_year
Description: Year of commissioning.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
fixed_cost
Description: Fixed annual cost for the asset capacity.
Type:
DOUBLE
Unit of measure:
CUR/MW/year
Default:
No default
Constraints: No constraints
fixed_cost_storage_energy
Description: Fixed annual cost for the asset storage capacity
Type:
DOUBLE
Unit of measure:
CUR/MWh/year
Default:
No default
Constraints: No constraints
investment_cost
Description: Investment cost for the asset capacity.
Type:
DOUBLE
Unit of measure:
CUR/MW
Default:
No default
Constraints: No constraints
investment_cost_storage_energy
Description: Investment cost for the asset energy storage capacity.
Type:
DOUBLE
Unit of measure:
CUR/MWh
Default:
No default
Constraints: No constraints
investment_limit
Description: Maximum capacity for the asset investment. If the initial value is null, empty, or missing, it will be no limit.
Type:
DOUBLE
Unit of measure:
MWh
Default:
No default
Constraints: No constraints
investment_limit_storage_energy
Description: Maximum capacity for the asset storage investment. If the initial value is null, empty, or missing, it will be no limit.
Type:
DOUBLE
Unit of measure:
MWh
Default:
No default
Constraints: No constraints
Table 4 : asset_milestone
asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
initial_storage_level
Description: The initial storage level at the beginning of the optimization. The final storage level needs to be above this initial value. If the initial value is null, empty, or missing, it will be optimized using a cycling constraint that links the last period to the initial period.
Type:
DOUBLE
Unit of measure:
MWh
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
investable
Description: Whether there is an investment variable created for the asset or not.
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
max_energy_timeframe_partition
Description: The maximum amount of energy across the timeframe (e.g., a year) that the asset must produce. If the initial value is null, empty, or missing, it will be no limit.
Type:
DOUBLE
Unit of measure:
MWh
Default:
No default
Constraints | Value |
---|---|
minimum | 0 |
milestone_year
Description: Year of investment and operation decisions in the optimization.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
min_energy_timeframe_partition
Description: The minimum amount of energy across the timeframe (e.g., a year) that the asset must produce. If the initial value is null, empty, or missing, it will be no limit.
Type:
DOUBLE
Unit of measure:
MWh
Default:
No default
Constraints | Value |
---|---|
minimum | 0 |
peak_demand
Description: Value that multiplies the demand profile time series.
Type:
DOUBLE
Unit of measure:
MW
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
storage_inflows
Description: Value that multiplies the inflow profile time series.
Type:
DOUBLE
Unit of measure:
MWh/year
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
units_on_cost
Description: Cost of keeping unit online for one hour or the objective function coefficient on
units_on
variable. e.g., no_load cost or idling costType:
DOUBLE
Unit of measure:
CUR/p.u./h
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
Table 5 : assets_profiles
asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
commission_year
Description: Year of commissioning
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
profile_name
Description: Name of profile, used to determine data inside the DuckDB table
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
profile_type
Description: Type of profile, used to determine DuckDB table with source profile
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints | Value |
---|---|
oneOf | Any["availability", "demand", "inflows", "max_storage_level", "min_storage_level"] |
Table 6 : assets_rep_periods_partitions
asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
partition
Description: Partition or temporal resolution in the representative periods. For example, for a
uniform
specification1
is hourly,2
is every two hours.Type:
VARCHAR
Unit of measure:
No unit
Default:
1
Constraints: No constraints
rep_period
Description: Number of the representative period
Type:
INTEGER
Unit of measure:
number
Default:
No default
Constraints: No constraints
specification
Description: Partition (or temporal resolution) specification in the representative periods.
Type:
VARCHAR
Unit of measure:
No unit
Default:
uniform
Constraints | Value |
---|---|
oneOf | Any["uniform", "explicit", "math"] |
year
Description: Milestone year.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
Table 7 : assets_timeframe_partitions
asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
partition
Description: Partition or temporal resolution in the timeframe. For example, if a period is equivalent to a day then for a
uniform
specification1
is per day,2
is every two days.Type:
VARCHAR
Unit of measure:
No unit
Default:
1
Constraints: No constraints
specification
Description: Partition (or temporal resolution) specification in the timeframe.
Type:
VARCHAR
Unit of measure:
No unit
Default:
uniform
Constraints | Value |
---|---|
oneOf | Any["uniform", "explicit", "math"] |
year
Description: Milestone year.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
Table 8 : assets_timeframe_profiles
asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
commission_year
Description: Year of commissioning
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
profile_name
Description: Name of profile, used to determine data inside the DuckDB table
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
profile_type
Description: Type of profile, used to determine DuckDB table with source profile
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints | Value |
---|---|
oneOf | Any["max_storage_level", "min_storage_level", "max_energy", "min_energy"] |
Table 9 : flow
capacity
Description: Capacity for one unit of the transport flow (is therefore multiplied by number of existing plus invested number of transport assets).
Type:
DOUBLE
Unit of measure:
MW
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
carrier
Description: Energy carrier
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
discount_rate
Description: e.g. 0.05 is 5 %. discount rate for the annuity calculation.
Type:
DOUBLE
Unit of measure:
ratio
Default:
0
Constraints | Value |
---|---|
minimum | 0 |
economic_lifetime
Description: Economic lifetime of the transport asset for annuity calculation.
Type:
INTEGER
Unit of measure:
years
Default:
1
Constraints | Value |
---|---|
minimum | 0 |
from_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
investment_integer
Description: Whether investment decisions are using integer variables.
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
is_transport
Description: Whether a transport flow or not. Transport assets can have flows in both directions and can be invested in.
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
technical_lifetime
Description: Technical lifetime of the transport asset to determine for how long the capacity is considered from the commission year.
Type:
INTEGER
Unit of measure:
years
Default:
1
Constraints | Value |
---|---|
minimum | 0 |
to_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
Table 10 : flow_both
commission_year
Description: Year of commissioning
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
decommissionable
Description: Whether the transport asset can be decomission or not.
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
from_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
initial_export_units
Description: Number of existing units in
from_asset
->to_asset
directionType:
DOUBLE
Unit of measure:
number
Default:
0
Constraints: No constraints
initial_import_units
Description: Number of existing units in
to_asset
->from_asset
directionType:
DOUBLE
Unit of measure:
number
Default:
0
Constraints: No constraints
milestone_year
Description: Year of investment and operation decisions in the optimization.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
to_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
Table 11 : flow_commission
commission_year
Description: Year of commissioning
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
efficiency
Description: Efficiency of transfer in
from_asset
->to_asset
directionType:
DOUBLE
Unit of measure:
ratio
Default:
1
Constraints | Value |
---|---|
minimum | 0 |
fixed_cost
Description: Fixed annual cost for the transport asset capacity.
Type:
DOUBLE
Unit of measure:
CUR/MW/year
Default:
No default
Constraints: No constraints
from_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
investment_cost
Description: Investment cost for the transport asset capacity.
Type:
DOUBLE
Unit of measure:
CUR/MW
Default:
No default
Constraints: No constraints
investment_limit
Description: Maximum capacity for the transport asset investment. If the initial value is null, empty, or missing, it will be no limit.
Type:
DOUBLE
Unit of measure:
MWh
Default:
No default
Constraints: No constraints
to_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
Table 12 : flow_milestone
from_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
investable
Description: Whether there is an investment variable created for the asset or not.
Type:
BOOLEAN
Unit of measure:
No unit
Default:
false
Constraints: No constraints
milestone_year
Description: Year of investment and operation decisions in the optimization.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
to_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
variable_cost
Description: Variable cost for the flow.
Type:
DOUBLE
Unit of measure:
CUR/MWh
Default:
0
Constraints: No constraints
Table 13 : flows_profiles
from_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
profile_name
Description: Name of profile, used to determine data inside the DuckDB table
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
profile_type
Description: Type of profile, used to determine DuckDB table with source profile
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints | Value |
---|---|
oneOf | Any["availability"] |
to_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
year
Description: Milestone year.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
Table 14 : flows_rep_periods_partitions
from_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
partition
Description: Partition or temporal resolution in the representative periods. For example, for a
uniform
specification1
is hourly,2
is every two hours.Type:
VARCHAR
Unit of measure:
No unit
Default:
1
Constraints: No constraints
rep_period
Description: Number of the representative period
Type:
INTEGER
Unit of measure:
number
Default:
No default
Constraints: No constraints
specification
Description: Partition (or temporal resolution) specification in the representative periods.
Type:
VARCHAR
Unit of measure:
No unit
Default:
uniform
Constraints | Value |
---|---|
oneOf | Any["uniform", "explicit", "math"] |
to_asset
Description: Name of the asset. Same as the one in the
asset
table.Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
year
Description: Milestone year.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
Table 15 : group_asset
invest_method
Description: true -> activate group constraints; false -> no group investment constraints
Type:
BOOLEAN
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
max_investment_limit
Description: MW (Missing -> no limit)
Type:
DOUBLE
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
milestone_year
Description: Year of investment and operation decisions in the optimization.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
min_investment_limit
Description: MW (Missing -> no limit)
Type:
DOUBLE
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
name
Description: Name of the Group
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
Table 16 : profiles_rep_periods
profile_name
Description: Profile name.
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
rep_period
Description: Representative period number.
Type:
INTEGER
Unit of measure:
No unit
Default:
1
Constraints: No constraints
timestep
Description: Timestep number.
Type:
INTEGER
Unit of measure:
No unit
Default:
1
Constraints: No constraints
value
Description: Value of the profile.
Type:
DOUBLE
Unit of measure:
p.u.
Default:
No default
Constraints: No constraints
year
Description: Milestone year.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
Table 17 : profiles_timeframe
period
Description: Period.
Type:
INTEGER
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
profile_name
Description: Profile name.
Type:
VARCHAR
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
value
Description: value of the profile.
Type:
DOUBLE
Unit of measure:
p.u.
Default:
No default
Constraints: No constraints
year
Description: Milestone year.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
Table 18 : rep_periods_data
num_timesteps
Description: Number of timesteps
Type:
INTEGER
Unit of measure:
No unit
Default:
8760
Constraints: No constraints
rep_period
Description: Representative period number.
Type:
INTEGER
Unit of measure:
number
Default:
1
Constraints: No constraints
resolution
Description: Duration of each timestep
Type:
DOUBLE
Unit of measure:
hours
Default:
1
Constraints: No constraints
year
Description: Milestone year.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
Table 19 : rep_periods_mapping
period
Description: Period number.
Type:
INTEGER
Unit of measure:
No unit
Default:
1
Constraints: No constraints
rep_period
Description: Representative period number.
Type:
INTEGER
Unit of measure:
No unit
Default:
1
Constraints: No constraints
weight
Description: Hours
Type:
DOUBLE
Unit of measure:
No unit
Default:
1
Constraints: No constraints
year
Description: Milestone year.
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
Table 20 : timeframe_data
num_timesteps
Description: Number of timesteps of the representative period.
Type:
INTEGER
Unit of measure:
No unit
Default:
8760
Constraints: No constraints
period
Description: Period.
Type:
INTEGER
Unit of measure:
No unit
Default:
No default
Constraints: No constraints
year
Description: Unique identifier (currently, the year itself)
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints
Table 21 : year_data
is_milestone
Description: Whether the year is a milestone year or a vintage year
Type:
BOOLEAN
Unit of measure:
No unit
Default:
true
Constraints: No constraints
length
Description: How many hours in a year, e.g., 8760
Type:
INTEGER
Unit of measure:
No unit
Default:
8760
Constraints: No constraints
year
Description: Unique identifier (currently, the year itself)
Type:
INTEGER
Unit of measure:
No unit
Default:
2000
Constraints: No constraints