This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Finding the most cost effective pump schedule with multiple constraints

Hi,

I have modelled a borefield that consists of about 10 different pumps that deliver water to a treatment plant. The pumps each draw water from different bores where abstraction quotas and sensitivity limits (preference to draw from deeper bores) apply. Each of the pumps are also subjected to a few different electricity tariffs. It is also preferred that the pumps are started only once a day.

What is the best way or setup to find the most cost effective pump schedule using Darwin Scheduler given these constraints?

Parents
  • Here’s what I’ve done so far.

    In my model, I have set up the pumps and applied the relevant pump definitions and tariffs. The treatment plant is represented as a demand node.

    To mimic the abstraction quotas that apply to the wells, I have represented the wells by tanks , where the tank volumes represent the quotas. I have also set up controls to make the pumps stop once the tanks are empty.

    In scheduler, under constraints, I have specified up the following:

    Pump starts = 1 for all pumps
    Tank levels for all the “tanks”

    Under objective elements, I have set up the energy pricing appropriate to the pump site.

    I then ran Darwin scheduler but the results don’t seem to converge. The pumps still deliver water even though the tanks are empty, in order to meet the demand specified at the node representing the treatment plant. The fitness values are really high, around 2,000,000.

    Can anyone offer me any ideas on how to solve this?
  • Hi Debbie,

    The pump start constraint of 1 seems correct as does the energy pricing specific to pump site, so that’s two out of four issues taken care of.

    Re: “To mimic the abstraction quotas that apply to the wells, I have represented the wells by tanks , where the tank volumes represent the quotas. I have also set up controls to make the pumps stop once the tanks are empty.”

    I don’t think that the controls will work here since if you designate a pump to be a Scheduler decision, it will ignore controls and the pump’s status will be controlled by the optimization algorithm. I would make the tanks larger than required (in terms of vertical range) and then use tank level constraints in Scheduler to penalize the optimization when the levels go outside those ranges. So a tank minimum level constraint should prevent drawing down the well too much. This is likely the cause of the issues you are currently running into (the high fitness values).

    Assuming I have understood your posts correctly, then there is one remaining issue.

    1. You want to prefer the use of pumps that draw from deeper wells.

    A surrogate for might be to artificially increase the tariffs for wells with more shallow wells, to make the deeper wells more favorable. That would in fact allow you to quantify how much money it's worth for you to prefer the deeper wells. There must be some point at which you would use the shallow wells, in terms of cost. This approach allows you to embody that requirement into the optimization in quantitative terms.


    Kind Regards,

    Wayne.



    Answer Verified By: Debbie Chua 

  • Hi,

    Thanks for the reply. Those are really good ideas. I am in the process of setting up the artificial tariffs.

    I have further questions regarding the tanks though.

    Re: "I would make the tanks larger than required (in terms of vertical range)."

    1. If the tank specified in the model with a 3 ML volume and a larger vertical range, by having a smaller vertical range in Scheduler, does the volume of the tank in Scheduler decrease? Or would it have the same volume, but compensates for the changes by changing the diameter? But the diameter does not need to be specified when using the "Variable Area" tank option.

    2. If the pump stops when the tank goes below the minimum level, does this mean the tank has run out of the 3ML?
  • Re #1: You would want to adjust your tank definitions so the volume does not change within the expected control range of the tank. That is add additional "fake" volume below the tank, so that when Scheduler exceeds that limit (by drawing too much volume) then the tank is not closed off by the hydraulic simulation, but the cost penalty for breaching that lower limit is applied to the optimization.

    Re #2: The pump stopping will be controlled by Scheduler, so in that sense it will stop when the penalty accrued by drawing the well down too far is not effective in the optimization. If the lower level limit is not reached then it is simply not cost effective to fully draw down that particular well.


    Please let me know if you need any additional clarification.

    Regards,
    Wayne



  • Hi Wayne,

    Thanks for your reply.

    Can you please clarify your first statement, Re #1, in particular, adjusting tank definitions?
    I understand the intentions, but I don't understand how to set this up.

    Regards,
    Debbie
  • Hi Debbie,

    I assume for #1 you have set up tanks with a specific vertical range (max level --> min level) that is associated with a specific volume (the maximum draw down). I am guessing by what you have written above, you have set these tanks up as Variable Area tanks with a "Volume Full (Input)" equal to the maximum drawn down volume. Your cross-section curve is likely just a 1:1 relationship like this:

    Depth Ratio (%) Volume Ratio (%)
    0 0
    100 100

    So, to keep the calculations trivial, let's say your current tank max level is 6 feet and the current minimum is 3 feet and your "Volume Full (Input)" is 1000 gallons.

    When the tank level drops to 3 feet right now, the tank becomes closed (0% full) which causes issues high fitness values in Scheduler due to the hydraulic network becoming disconnected. So to avoid this you can make the minimum tank level, 0 feet say, and simply double the "Volume Full (Input)" figure.

    So now we have a tank with max level 6 feet, minimum level 0 feet, and a volume of 2000 gallons.

    We know that 3 feet is really the effective bottom level in the tank (max draw down), so you would then put a Scheduler tank minimum level constraint at 3 feet. This penalizes Scheduler for going below the level you want to go below, but without the hydraulic side-effects of the model thinking that the tank has run dry.

    You have a valid Scheduler solution when it abides by the tank minimum level constraint.

    Hope this helps.

    Regards,
    Wayne.



    Answer Verified By: Sushma Choure 

  • Thanks Wayne. I'll give this a go.
Reply Children
No Data