It can be very useful to give each process unit a special operation to represent on stream days to control availability and capacity. While originally designed as part of the blocked operation functionality, they are in fact very useful for modelling turn-down rates and shutdowns.

A unit with an on-stream control has an additional secondary operation to represent the total time that it is running. This operation is connected to the unit’s capacity controls, like so: (starting from the WT demo model.)

87 CDUOperationsStreamDays
You right-click on the intersection between the time vector and the limit, and choose the Set Blocked Operation option. You normally put a 0 in the cell to mark the intersection. (Scaling factors are also possible, but let’s not worry about that for now.).  If you are using TABLE based input, there will be a column $OPV in the 2xx.1 for the unit, as well as the 0 entries in the intersections. (See the Reference Manual and the Time demo model for examples.)

The process limits are entered as normal. The total time available is controlled by an additional limit – CDD in the example. There must be an upper limit on this control, or the unit will have infinite capacity.  Since process limits are normally expressed per day, the maximum on-stream time is 1 day per day.  If the unit should operate all the time, use a FIX limit as below.   (If you have your model set up with asymmetrical scaling so that your process limits are in ‘000s, then the maximum is 0.001 kilo-days. Or you could work in hours, by setting the control to 24 per day, and expressing the actually limits as hourly flows.)  

87 CDULimits

At least one of the capacities connected to the DAY vector must have an upper limit (max or fix), or the operations can run even when there is no time allocated. Using a FIX of 1 indicates that the unit is expected to run every day.

The process limit equations, i.e. CDU for maximum feed will change from

RRAACDUcrd1A  <= 525


RRAACDUcrd1A – 17500 x RRAACDUDAY_^ <= 0

(I've used "crd"  to stand for the set of available crudes, each having an operation that will be added up.)    Instead of calculating a total capacity for the month (17500 x 30 days and divided by 1000 as the RHS scaling factor), the daily limit becomes a co-efficient multiplied by the variable that counts the days-on-stream. In case you are wondering what happened to the RHS scaling, it is used in the limit that controls the days:

RRAACDUDAY_^ = 0.03 (that is 1 * 30/1000)

So that the total capacity available is still 525 kilo-tons.

If the DAY variable is 0, the unit cannot run, as any activity on any of the the Crude process vectors would then result in an infeasible positive value for the capacity equation.

Select the Process Utilization Report R1105, instead of R1100, for a better view of the operating days related to each control:

87 R1105

There are no incentives on the CDU limits because the unit is not running at full capacity.  I also added on-stream control to the VDU.   As this is running a maximum, there are incentives both on the Capacity (VDU) and the On-Stream Days (VDD). The value on the stream day control is so much larger because it represents the value of another entire day's production. As an approximation of the unit's operating margin, this is probably a more useful number - given the larger quantity of material it relates to - than the marginal value on the feed limit, which relates to just one incremental ton.

Turndown rates
For short-term planning, a FIX limit on days is probably what you usually want as you aren't going to ask operations to shutdown a tower for a couple of days at short notice just because the LP said the capacity wasn't needed.   However, If you happen to have a unit that can be optionally used or not  – or when working on longer term plans, like annual budgets and investment assessments, then a MAX of 1 day per day could be used so that the model can tell you you how much of the time the unit should be operating. Setting a MAX on the time control has the effect of making the minimum throughput behave like a semi-continuous bound. When DAY is active, the minimum applies – but if the time operation is at zero, then the minimum is ignored. This won't make any difference if the on-stream time is fixed to the duration of the period, but if it is possible to run the unit only on some days, then you will see that the minimum rate must be achieved for the days that have been allocated. This gives you a distinction between total capacity and througput rate.per on-stread day (instead of an average rate per planning day).   This rate per on-stream day is particularly useful if some aspect of the unit, such as the energy consumption, depends on the flow rate. (See the Reformer simulator in the Vol demo model if you have access to GRTMPS.)

Another useful aspect of this design is the ease with which you can assign service factors and down days to the unit.  With a traditional design, the limits are all independent. If the crude tower 3 down days scheduled, then I must remember to apply the reduction in capacity to all the limits, so that they are scaled proportionally.

87 TraditionalDWN

With the on-stream days control, I can apply a single down time, like so:

87 DayControlDWN

It looks a bit weird to have a down time that is bigger than the limit – just remember that the down is for the period and the max is per day.
Running only for the remaining 27 days of the month, the unit is now at full capacity and there is an incentive on the time available.

87 R1105DownDays

From Kathy's Desk. 

1st December 2022 

Comments and suggestions gratefully received via the usual e-mail addresses or here.
You may also use this form to ask to be added to the distribution list so that you are notified via e-mail when new articles are posted.