Modeling A Pump Start-Up Transient Event In Bentley HAMMER V8i and CONNECT Edition

(3276 False)
Applies To 
Product(s): HAMMER
Version(s): 10.00.xx.xx, 08.11.xx.xx
Area:  Modeling
Original Author: Jesse Dringoli, Bentley Technical Support Group



This TechNote describes the process by which a user can model a pump startup transient event in HAMMER CONNECT Edition and HAMMER V8i. It also provides an example model file for demonstration.



In older version of HAMMER (V8 XM), a lengthy procedure was required to model a pump startup: (See Modeling a Pump start-up transient event in Bentley HAMMER V8 XM) The user needed to first obtain the rated operating point of the pump by turning it on, then turn the pump off, copy the initial conditions to the user defined fields and enter the rated head/flow, along with valve initial status. This can be cumbersome in some situations. For this reason, HAMMER V8i introduced a new transient pump type called "Pump Start - variable speed/torque". This allows the user to specify the rated head and flow of the pump without having to specify initial conditions. This can greatly simplify the steps need to model a pump startup event.


Setting up the Model for a Pump Start-up


Before performing these steps, ensure that the demands, physical properties and other settings in the model describe the condition that you would like to represent. Meaning, if you would like to see the transient effects of the pump turning on during high demands and low tank level, ensure that the demands and tank level are adjusted as such. Ensure that the efficiency and transient rotational speed in your pump definition represent the "nominal" conditions. Meaning, the speed should be the speed at which the pump produces the flow/head seen when the pump in question is on (usually full speed), and the efficiency should be the efficiency at that nominal flow/head.

This walk-through also assumes a steady-state analysis for the initial conditions and that you have storage downstream of the pump in question, or other pumps, either of which could supply the demands you have entered when the pump in question is off.


1. First, turn the pump on by selecting "On" as the "Status (Initial)" under the Initial settings section of its properties.

2. Go to Analysis > Compute Initial conditions. This invokes the pressure engine to allow us to see the point where it would operate on its characteristic curve, when it turns on.

3. Double click the pump in question to view the properties. Under the "Results" section, you will see the pump operating point. Write down the values seen for "Flow (Total)" and "Pump Head". We will use these later on.

If you have any active valves in the model (TCV, GPV, PRV, PSV, FCV, PBV), in places where the flow is zero or near zero in the initial conditions, you will need to find the correct discharge coefficient during this step. To do so, either check for the computed discharge coefficient in the results section of the properties, or temporarily select "true" for "specify initial conditions?" in the transient calculation options, click the valve, then go to Tools > Copy Initial Conditions, choose "selection", then OK - you will now see the discharge coefficient in the "transient (initial)" section of the properties. Record this value and set the "specify initial conditions?" calculation option back to "false". For any valves that you need to do this, morph them into a TCV, choosing "discharge coefficient" as the type, "Active" as the initial status, then enter the discharge coefficient that you recorded. If you do not do this, then HAMMER may use a discharge coefficient that will be inaccurate for higher flow rates once the pump turns back on. (since it will be based on zero or near-zero flow).

4. Under the "Transient (Operational)" section of the pump properties, select "Pump start - variable speed/torque" as the "Pump type (transient)" and enter the appropriate diameter. If the pump has a built-in check valve, enter "0" for the "Time (for valve to operate)", else enter the time that it takes for the built in valve to open (5 sec, 10 sec, 30 sec, etc...). To simulate a pump with no check valve enter a very small number like 0.1 seconds, so the valve is open immediately. Most likely you will enter zero for this. This is an important consideration - please read this article for more.

5. Enter the pump flow and pump head found in step 3, in the "Flow (nominal)" and "Head (nominal)" fields.

6. Change the pump's Status (Initial) under the initial settings to "off" and re-compute initial conditions.

7. Now we must define when and how fast the pump starts up. Go to Components > Patterns to open the Pattern manager. Right click on "Operational (Transient, pump)" select "new" and enter a name. On the right side of this window, enter zero for the starting multiplier, since the starting speed multiplier should be zero (meaning the pump is off.) In the bottom-right table, define the pattern of time versus speed multiplier. 

IMPORTANT NOTE: the multipliers you enter here multiply against either the speed or the electrical torque, depending on the selection you make for the pump's "Control Variable". If you choose Speed (the default), the multipliers multiply against the full speed entered in the pump definition, so 1.0 means full speed. This means that you cannot simply "flip the switch" in the pattern and have it go instantly from zero to 1.0 (or within a very small time frame) as it would normally take some time for the pump to "ramp up" to full speed. In the example below, the speed jumps from zero to 1.00 (full speed) between 6 and 7 seconds, and then stays on for the duration of the simulation. If the pump takes longer to "ramp up", then the pattern needs to be adjusted.


8. Close the pattern manager and select the pattern that you just created, from the "Operating Rule" dropdown in the pump properties. At this point, the pump properties should look similar to this:


9. The model is now correctly set up and you can compute the transient simulation. Go to Analysis > Compute.

Note: If your pump is a variable speed pump ("Is variable speed pump?" = "True"), then you may encounter a notification stating that the rotational speed must be greater than zero. If you encounter this problem, you will need to re-run the initial conditions with the VSP turned on, note the computed relative speed factor, enter it as the "relative speed factor (initial)", set the initial status back to "off", set "Is variable speed pump?" to "false", re-compute initial conditions, then compute the transient simulation.

Viewing the Results 

The results of this model can be viewed just like any other transient simulation. Go to Analysis > Transient Results Viewer. To view a graph of head and flow for the pump, you may want to select a time history for the pipe end adjacent to the pump:


As you can see, when the pump starts up, a transient occurs. After about 40 seconds, the head/flow stabilize to the nominal conditions. Note that in many cases, you may not see flow start to occur through the pump until the speed has increased enough so that the downstream head can be overcome.

You can also select a transient profile and click the "animation" button:


As you can see, there are some problems with vapor pockets forming upstream of the pump when it starts up. A surge tank may be required in this case.

Note that you can also view extended data specific to the pump, by entering a number for the "report period" attribute of its properties. For example, "10" would mean that extended data will be reported every 10 time steps. You can view this report by going to Report > Transient Analysis Reports > Transient Analysis detailed report. At the very bottom of this text report, you will see the table of flow, speed, upstream and downstream head:


Modeling a pump startup followed by shutdown, or shutdown followed by startup

To model a pump start up followed by a shut down, follow the same steps above, but configure your transient operating rule to drop the multiplier back down to zero at the time when the pump shuts down (after some delay). See more here:

Modeling a pump startup and shutdown transient event in the same simulation

Why is the Transient Simulation not Settling Exactly on the Nominal Head/Flow I entered?

    1. In some cases, once the pumps turn on in the transient simulation, they may not settle exactly on the nominal head/flow that you saw when you ran a steady state with the pumps on. This can be due to many reasons:

  1. If you're not ramping the pumps up to full speed but instead a relative speed factor other than 1.00, make sure the initial relative speed you entered is correct. The nominal head/flow are the pump head/flow corresponding to the relative speed value you put for "relative speed (initial)", even if the initial status if off. Their values should be equal to the values seen if that pump were to be turned on (at the same initial relative speed factor). For example, say you want a pump to start in the off position, then ramp up to 50% of full speed. First, set the initial relative speed factor to 0.5, initial status to off and transient pump type to pump startup. The nominal head/flow are set to the values seen in a steady state run at 0.5 relative speed. The transient pump pattern then goes from 0.0 to 1.0 multiplier. With that configuration, HAMMER understands that the nominal head/flow values correspond to a relative speed of 0.5. From the transient pump type, it knows that the pump will be initially off (zero flow/head) and that multipliers in the pattern multiply against the initial relative speed factor. This way, 0.0 represents the pump still being off and 1.0 represents the pump being at the initial relative speed factor, which corresponds to the nominal head/flow values.
  2. If you have any valves (GPV, TCV, PBV, FCV, PRV, PSV) that are active in the initial conditions, but in a location where there is zero flow due to the pumps being off, the calculated discharge coefficient (which the transient calculation engine uses) may not be an accurate reflection of that valve, when higher flow occurs. As seen earlier in this TechNote, you may need to compensate for any occurrences of this by finding the discharge coefficient in a steady state run with the pump(s) on, then replacing the valve with a TCV using that same discharge coefficient. Otherwise, the headloss across the valve in the transient simulation when the pump turns on will likely not match the steady state run that you based the nominal head/flow on. 
  3. The biggest cause of this difference is with HAMMER's handling of friction coefficients. The transient calculation engine needs to use Darcy Weisbach friction factors (f), so a conversion is sometimes done. So, differences can occur if you use another method such as Hazen-Williams. This conversion is always done, even if you're using the Darcy-Weisbach method for the initial conditions, since the coefficient you enter for each pipe is the roughness height (e), not the friction factor (f). In pipes with non-zero initial flow, the Darcy Weisbach coefficient is calculated based on the headloss across the pipe. In pipes that have zero flow in the initial conditions (which may be the case for many of them, since the pump is off), the Darcy Weisbach coefficient will be computed based on the entered Hazen-Williams or Darcy-Weisbach coefficient. However, calculation 'noise' can sometimes occur in the initial conditions, causing the flow in a pipe to be near-zero instead of exactly zero. In your transient calculation options, you will see the tolerance that HAMMER uses to determine pipes that have zero flow, to account for this situation. In some cases, you may need to either make the "accuracy" value smaller in your steady state calculation options, or increase the flow tolerance value in the transient calculation options. Similar to the valve discharge coefficient item, if the flows are near zero but above the flow tolerance, the coefficient that HAMMER computes to use for that pipe may be unreasonable (since it's based on a tiny headloss), especially when higher flows occur when the pumps are on. This situation can happen even if your pipe has a 'real', non-zero flow that is relatively small. To check HAMMER's computed friction coefficients, open the "Output log" under Report > Transient Analysis Reports, and scroll down to the section titled "Pipe Information". Note that even if the zero flow pipes are correctly identified, the Darcy Weisbach friction factor that is computed based on the user entered friction coefficient may still differ from that of the ones based off a positive flow pipe's start and stop head. To check for this difference, run the transient simulation with the pump on and check the aforementioned Output log. If they differ by a lot, you may consider the "Unsteady - Vitkovsky" Transient friction method in the transient calculation options. Another approach to handle this would be to run the initial conditions with the pump on, record the friction factors from the output log, set the "specify initial conditions?" calculation option to "true", run the initial conditions with the pump off, use the "copy initial conditions" tool from the tools menu, then modify the transient initial flows so they are zero (when they should be) and initial friction factor (f) to the values seen in the output log with the pump on. This will force the pipes to use the correct friction factors. Note that version and below of HAMMER have a known issue with the way that the friction factors are computed for zero flow pipes. A patch set is available for this version, which will be incorporated into future versions.
  4. Similar to the last item, if you have significant minor loss coefficients on pipes that have zero flow in the initial conditions, you may need to account for them with a different method. The reason is because those pipes will have their friction factor computed based on the entered friction factor only and will not account for the minor loss coefficient. Headloss across the pipe during the transient simulation will be based on the friction factor only. So, the pump may operate at a higher flow and lower head than you would expect, since it doesn't have as much losses to overcome once the pump is on. In this case, you may need to insert a TCV node and enter the headloss coefficient or insert an Orifice Between Pipes element and enter the flow and headloss seen during the initial conditions when the pump was on.
  5. If you have any tanks in your model, make sure their hydraulic grade is correct in the steady state run that you retrieved the pump nominal head/flow from. For example, you may want to choose "true" for "treat as junction" for a hydropneumatic tank, so the HGL at that tank in your pump=on steady state will be the value that it would settle on. Then, in the pump=off steady state run that your transient simulation starts with, either keep the tank treated as a junction, with the correct initial gas volume entered, or choose not to treat it as a junction, but enter the hydraulic grade that it would settle on when the pump is off.
  6. It is important to understand that HAMMER uses a special four-quadrant pump characteristic curve during the transient simulation, not the pump definition you entered for the initial conditions. These four-quadrant curves are based on your specific speed selection in the transient tab of the your pump definition and allow a pump to operate in all four quadrants (which can sometimes happen in a transient). The values from these curves are relative to your nominal head/flow, so for relative speed factors other than the one used for your nominal head/flow, it can result in slight differences. Since a pump startup case will be settling on the nominal head/flow, this should not make for a significant difference. However, a small difference could occur if the nominal operating point doesn't fall exactly on the four quadrant curve.
  7. In the pump properties, check the value for "Time (for valve to operate)". For pumps with zero initial flow, this represents the time to OPEN the valve. So, either enter a small number or enter zero, to represent a check valve. If you accidentally entered a large number here, the pump won't operate at the expected point since it will be working against a closed or partially closed valve.

If all else fails, you could consider starting your transient simulation with the pumps on, then use the variable speed transient pump type to have them turn off then turn back on again. You can use the "Report history after" transient calculation option to have the transient reports begin after the pumps have settled in their off position.


My pump operating rule is not be followed as expected

See below article - this may be due to the "Time (for valve to operate)"

Operating Rule not being followed after computing pump shutdown or start up

Flow from pump is delayed after pump startup

See below article - it typically takes some time for the pump to overcome the discharge hydraulic grade before is can pass flow.

Flow from pump is delayed after pump startup

Startup appears to occur too quickly / Initial surge too high

If the pump appears to start up too quickly and the initial positive pressure spike appears to be higher than expected, it could be related to the Control Variable and the Operating Rule. See below article.

Pump Startup occurs too quickly / initial upsurge too severe

Error about pressure less than vapor pressure at high points

If there are high points in the system, the initial conditions may not reflect the true system conditions with the pump off. See below article:

"Initial pressure less than vapor pressure. At the pipe end(s), the elevation(s) or head(s) are incorrect"

Example Model

The below model is an example of a pump startup in HAMMER. Note:

  • This example is included in recent versions of HAMMER, in the "Samples" folder within the installation folder
  • The link below is to a version that can be opened in HAMMER V8i build and above. 
  • Additional information can be found in the Project Properties
  • You must be signed in to download the file. The link will not work if you are not signed in.
  • This model is for illustrative purposes only

Click to Download

See Also

Modeling a pump shut down event in Bentley HAMMER

Operating Rule not being followed after computing pump shutdown or start up

Pump Startup occurs too quickly / initial upsurge too severe

Modeling a pump startup and shutdown transient event in the same simulation

Modeling a Pump start-up transient event in Bentley HAMMER V8 XM