Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • B backbone
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 39
    • Issues 39
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • backbone
  • backbone
  • Issues
  • #157
Closed
Open
Created Oct 07, 2021 by Niina Helistö@nhniinaMaintainer

Annual energy constraints

Is someone using p_groupPolicy(group, 'energyMax'), p_groupPolicy(group, 'energyMaxVgenSign'), p_groupPolicy(group, 'energyShareMax'), and p_groupPolicy(group, 'energyShareMin')? Is there a way to make them easier to use and maintain in the code?

I'm thinking of converting the constraints from q_energyMax(group) to q_energyLimit(group, min_max) and from q_energyShareMax(group) to q_energyShareLimit(group, min_max). The user would define p_groupPolicy(group, x), where x is 'energyMax', 'energyMin', 'energyShareMax', and/or 'energyShareMin'. Or, the user would define p_groupDirectionPolicy(group, min_max, x) (which would be a new parameter in the input GDX!) where x is 'energyLimit' or 'energyShareLimit'. In min_max, the options are 'min' and 'max'.

This way, the parameter names would hopefully be a little bit clearer and there would be no need to maintain the other "share" equation in the model code. At least now I'm thinking that by multiplying the whole sum(msft) with -1, the equation can be changed from a max limit constraint to a min limit constraint. (Though I'm still a bit doubtful because this did not seem possible before...)

First, I was thinking the following method, but it does not seem too logical anymore:

I would rename p_groupPolicy(group, 'energyMax') to p_groupPolicy(group, 'energyLimit') and p_groupPolicy(group, 'energyMaxVgenSign') to p_groupPolicy(group, 'energyMaxMinSign'). For a maximum energy constraint, the user would give a positive MWh value for p_groupPolicy(group, 'energyLimit') and p_groupPolicy(group, 'energyMaxMinSign') = 1. For a minimum energy constraint, the user would also give a positive MWh value for p_groupPolicy(group, 'energyLimit') but p_groupPolicy(group, 'energyMaxMinSign') = -1.

In addition, I would change p_groupPolicy(group, 'energyShareMax') and p_groupPolicy(group, 'energyShareMin') to p_groupPolicy(group, 'energyShareLimit') and add a parameter p_groupPolicy(group, 'energyShareMaxMinSign'). For a maximum energy share constraint, the user would give a positive p.u. value for p_groupPolicy(group, 'energyShareLimit') and p_groupPolicy(group, 'energyShareMaxMinSign') = 1. For a minimum energy constraint, the user would also give a positive p.u. value for p_groupPolicy(group, 'energyShareLimit') but p_groupPolicy(group, 'energyShareMaxMinSign') = -1. If you have used both maximum and minimum energy share constraints for one group, that would not work anymore with this change.

Other suggestions for parameter names and methods to create the constraints are welcome!

Edited Oct 08, 2021 by Niina Helistö
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking

This system is mainly used for VTT projects and partners in those projects. Default permission does not allow user to create projects / groups. If you are VTT person, please contact Kimmo Ahola for getting permissions.