• Formulation question: binary to indicate a value has gone from 0 to any

    From AC@21:1/5 to All on Wed Jun 21 19:33:40 2017
    Hello

    I would like help with formulating the binaries for a problem we are looking at.

    In a given period a unit can either be off (0 output) or on (>0 output).

    I would like a binary to indicate that a unit has gone from the off state (0 output) into an on state (>0 output) - ie the unit started up.

    I know how to do this if I also have a binary that indicates if the unit is on or off in any period. Something like:

    output(i) <= binaryOn(i) x _some_output_limit_
    binaryOn(i) <= output(i) x _bigM_
    binaryOn(i+1) <= binaryOn(i) + binaryStartUp(i+1)

    A startup incurs a cost so I think the model will naturally turn binaryStartUp to 0 when a startup hasn't happened.


    MY QUESTION

    Is there a way to do this without needing binaryOn? We only care about tracking the binary startups, so if there was any way to reduce the binaries in the model that would be awesome.


    Thanks
    AndyC

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Paul@21:1/5 to All on Sat Jun 24 15:02:01 2017
    If the minimum possible output level M1 of a running unit exceeds the maximum possible single-period output increase M2 for a unit already running, and if those limits are enforced elsewhere in the model, then yes, you can skip the binaryOn variables.
    You just need output(i) - output(i - 1) <= M2 + (M1 - M2) binaryStartUp(i). Otherwise, I think you need both sets of variables, but there's some good news. The binaryStartUp variables do not actually need to be binary; they can be continuous (and
    continuous variables are relatively cheap in the scheme of things). If binaryOn (which remains binary) changes from 0 to 1, the continuous start up variable will be forced to be >= 1 (and hence = 1 to minimize cost). If the machine stays off, stays on or
    shuts off, the continuous start up variable (which must be declared nonnegative) will be allowed to take value 0 (and will do so).

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)