Hello,
It is great to hear that you have chosen OSeMOSYS for your master’s thesis. Modeling regional transitions from Net-Importer to Net-Exporter is an excellent and highly relevant scope, especially within the context of Sweden’s dynamic energy market.
Note: OSeMOSYS is not a simulation tool but rather an Optimization tool; you can use an optimization tool to run scenario simulations.
To answer your question: Yes, there is absolutely a way around this, and you do not have to limit yourself to a single annual cost value.
While it looks like parameters are purely annual at first glance, OSeMOSYS handles time-slice variability through its operational structure. Here is how you can model variable, month-by-month electricity import and export costs:
1. The Standard Approach: Define Fine-Grained Time Slices (TIMESLICE)
OSeMOSYS breaks down a year (YEAR) into smaller operational chunks called TIMESLICE. If you want monthly cost variations, you need to ensure your time-slice framework splits the year into at least 12 blocks (e.g., one for each month, or further split into day/night if you want to capture peak/off-peak pricing).
Once your time slices are defined, you cannot apply varying costs directly to the VariableCost parameter (as that is indeed defined at the annual level per technology). Instead, you use InputActivityRatio and OutputActivityRatio to map the costs dynamically:
- Create “Dummy” Fuel Commodities: Instead of importing a single generic ELC commodity, split your grid import commodity into monthly commodities (e.g., ELC_JAN, ELC_FEB, etc.).
- Vary the Capital/Operating Cost via Fuel Price: If you treat the external market grid as a set of separate supply technologies with an explicit VariableCost mapping to those specific months, OSeMOSYS will optimize based on those time-dependent price signals.
2. The Advanced (and Cleaner) Approach: Using TradeRoute or Time-Slice Dependent Costs
If you are using a newer flavor of OSeMOSYS (like OSeMOSYS-data or interfaces like MoManI/clover), check whether your specific version supports time-slice-dependent variable costs directly.
If it does not, the most common workaround in the standard GNU MathProg code is to introduce a specified fuel price matrix. You can assign an explicit cost to the energy carrier entering the system during specific time slices by manipulating the cost framework of the source technology (your IMPELC technology) relative to when it is active.
A Few Tips for Your Sweden Model:
- Export Pricing: Remember that for EXPELC, you are earning revenue rather than incurring a cost. In OSeMOSYS, you can model this by applying a negative variable cost to the export technology. This incentivizes the model to generate excess electricity and export it whenever the domestic marginal cost of production is lower than the export price.
- Historical Data: Since you are modeling a region in Sweden, you can pull excellent historical hourly or monthly spot price data from Nord Pool to calibrate your monthly variable cost curves for both imports and exports.
Good luck with the next steps!
Best regards,
Babukiika Fiona
Mentor EMP(OSeMOSYS)