Tulipa's user workflow is a work-in-progress. For now, you can export the complete raw solution to CSV files using TulipaEnergyModel.export_solution_to_csv_files.
Below is a description of the exported data. Files may be missing if the associated features were not included in the analysis.
Pages = ["55-outputs.md"]
Depth = [2, 3]
There are two types of outputs:
-
Variables: All tables/files starting with
var_show the values of variables in the optimal solution, with leading columns specifying the indices of eachsolutionvalue. -
Duals: All tables/files starting with
cons_show the dual value in the optimal solution for each constraint, with leading columns specifying the indices of eachdualvalue. Remember that the dual represents the incremental change in the optimal solution per unit increase in the right-hand-side (bound) of the constraint - which in a minimal cost optimisation corresponds to an increase in cost.
!!! note "Units" TulipaEnergyModel is inherently unitless, meaning the units are directly taken from the input data. For example, if all costs are given in thousands of euros, then the objective function is also in thousands of euros. So a "change in the objective function" would mean a €1k increase/decrease.
Each output table has three types of columns:
- Indices: Parameters on which the output variable or dual is indexed, including:
asset: Unique name of the asset.from_asset: For a flow, the origin asset.to_asset: For a flow, the terminal asset.milestone_year: Year of investment and operation decisions.commission_year: Commissioning year of an asset (used for unique asset identification).rep_period: Number of the representative period.time_block_start: Start of the time block of the representative period.time_block_end: End of the time block of the representative period.period_block_start: Start of the time block of the timeframe (mostly relevant for seasonal storage).period_block_end: Start of the time block of the timeframe (mostly relevant for seasonal storage).
- Associated [input parameters](@ref table-schemas): Listed per table below
Solutionordual_constraint_name: Value of the variable or dual in the solution, described below.
For a storage asset with storage_method_energy = 'optimize_storage_capacity' commissioned in commission_year, the optimal decommissioning (decrease) of asset capacity storage energy in milestone_year, expressed in the same units as capacity_storage_energy of asset.
Associated input parameters: investment_integer_storage_energy, capacity_storage_energy
For an asset commissioned in commission_year, the optimal decommissioning (decrease) of asset capacity in milestone_year, expressed in the same units as capacity of asset.
Associated input parameters: decommissionable, initial_units, investment_integer, capacity
For a storage asset with storage_method_energy = 'optimize_storage_capacity', the optimal investment (increase) in asset capacity storage energy in milestone_year, expressed in the same units as capacity_storage_energy of asset.
Associated input parameters: investable, investment_integer_storage_energy, capacity_storage_energy, investment_limit_storage_energy
For an asset, the optimal investment (increase) in asset capacity in milestone_year, expressed in the same units as capacity of asset.
Associated input parameters: investable, investment_integer, capacity, investment_limit
For a flow, the optimal flow (of energy) during a particular rep_period between time_block_start and time_block_end, expressed in the same units as capacity of flow.
For a transport flow commissioned in commission_year, the optimal decommissioning (decrease) of flow capacity in milestone_year, expressed in the same units as capacity of flow.
Associated input parameter: decommissionable, investment_integer, capacity
For a transport flow, the optimal investment (increase) in flow capacity in milestone_year, expressed in the same units as capacity of flow.
Associated input parameters: investable, investment_integer, capacity, investment_limit
For a storage asset in a specific milestone_year and between period_start and period_end, the optimal storage level BETWEEN representative periods, expressed in the same units as capacity_storage_energy of asset.
For a storage asset in a specific milestone_year and between period_start and period_end, the optimal storage level WITHIN representative periods, expressed in the same units as capacity_storage_energy of asset.
For an asset, the optimal dispatch (operation) during a particular rep_period between time_block_start and time_block_end, expressed in the same units as capacity of asset.
Associated input parameter: unit_commitment_integer
dual_balance_consumer: Dual of the constraint "balance constraint for consumers".
dual_balance_conversion: Dual of the constraint "balance constraint for conversion assets".
dual_balance_storage_inter_period: Dual of the constraint "inter-period constraint for storage balance".dual_max_storage_level_inter_period_limit: Dual of the constraint "inter-period constraint for maximum storage level limit"dual_min_storage_level_inter_period_limit: Dual of the constraint "inter-period constraint for minimum storage level limit"
dual_balance_storage_rep_period: Dual of the constraint "rep-period constraint for storage balance".dual_max_storage_level_rep_period_limit: Dual of the constraint "rep-period constraint for maximimum storage level limit"dual_min_storage_level_rep_period_limit: Dual of the constraint "rep-period constraint for minimum storage level limit"
dual_max_input_flows_limit: Dual of the constraint "maximum input flows limit".
dual_max_output_flows_limit: Dual of the constraint "maximum output flows limit".
dual_limit_units_on: Dual of the constraint "limit to the units on variable".
Associated input parameter: unit_commitment_integer
dual_max_output_flow_with_basic_unit_commitment: Dual of the constraint "maximum output flow above the minimum operating point".
dual_max_ramp_up_with_unit_commitment: Dual of the constraint "maximum ramp-up rate limit WITH unit commitment".dual_max_ramp_down_with_unit_commitment: Dual of the constraint "maximum ramp-down rate limit with unit commitment".
dual_min_output_flow_with_unit_commitment: Dual of the constraint "minimum output flow above the minimum operating point".
dual_min_output_flow_without_unit_commitment_aggregated_vintage_method: Dual of the constraint "minimum output constraints without unit commitment".
dual_min_output_flow_without_unit_commitment_compact_vintage_method: Dual of the constraint "minimum output constraints without unit commitment".
dual_max_transport_flow_limit: Dual of the constraint "maximum transport flow limit".dual_min_transport_flow_limit: Dual of the constraint "minimum transport flow limit".
Associated parameter: var_flow_id: Unique flow ID used internally by TulipaEnergyModel.