Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • B backbone
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 41
    • Issues 41
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and 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
  • #107
Closed
Open
Issue created Nov 18, 2019 by Juha Kiviluoma@juha_kOwner

Generic constraints between inputs and outputs of a unit

Current equations q_outputRatioFixed and q_outputRatioConstrained allow to constraint two outputs (e.g. CHP unit). However, the formulation is not generic - it's not possible to add third output or to mix with inputs. Also, there are no constants that could be applied.

How to do this: Any number of units v_gen can be added to a constraint. Each of them has a co-efficient. In the simple case the co-efficients fix the relation between outputs.

Q_unitConstraintFix(unit, constraint, ft(f, t)) .. 
sum[input_output, v_gen(grid, input_output, unit, f, t) * p_unitConstraintCoEff(grid, input_output, unit, constraint)]
+ p_unitConstraintConstant(unit, constraint)
=E=
0

E.g. CHP unit has co-efficient of 1 for electricity (stays in the left hand side of the equation) and a co-efficient of -0.8 for heat (goes to right hand side). In this case increasing electricity output with 1 forces to also increase heat output by 1.25.

One should also be able to use greater than or less than constraints. And they should include possibility for a constant.

In addition we need to consider reserves. For units that have fixed ratio between two outputs, reserve implies that the non-electrical output has to change if the unit will provide reserve. The user implicitly allows this when setting a reserve for such units. In the case of units with non-equality constraint, then there is an area where the unit is allowed to operate. In principle reserve can be offered up to the highest electrical output in this area - however, other outputs might need to change to get there. Another alternative is to say that the unit can only change the electrical output when providing reserves, which gives a more restricted operating range for the reserve. In principle both are valid forms of operation, but it can be bit complicated to understand (in picture below, the unit has a bit complicated operating area where red shows the reserve potential if not allowed to change heat output and green shows the reserve potential if allowed).

image

A note about the current situation: We have 'conversionFactor' and 'cV' which both are kind of doing the same thing, but neither does it properly.

  • 'conversionFactor' is used in two constraints that fix or constrain two outputs, but it does not affect reserve provision.
  • 'cV' on the other hand appears in q_maxUpward and q_maxDownward and is used to constraint reserve provision, but it is not used elsewhere.

Will address:

  • issue #95 (closed).
  • issue #92 (closed), although bit indirectly (closing issue #92 (closed)).
  • parts of issue #104 (closed).
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.