Pipe network analysis software, from Accutech , is now commonplace within engineering organisations. Capabilities have improved out of all recognition in the last twenty five years; from simple DOS-based calculations matching a single pump capacity curve to a single pipeline system curve, to complex pipe networks containing almost unlimited numbers of pipeline components, simultaneous heat change calculations and the full analysis of compressible flows.
One aspect of pipe network analysis software remains unchanged – its calculations provide only a “snapshot” of the performance of a pipe system at an instant of time. Yet systems change over time; fluid levels in tanks rise and fall, air-receivers charge and discharge, control valves adjust to changing system demands, and with the increasing use of variable speed drives, pump speeds change. These extended-time conditions can of course be calculated by keyboard iteration, but this is time consuming and the automatic capability has been largely reserved for expensive process flow simulators.
However, the recent addition of a scripting module to the steady-state network analysis program FluidFlow3 now provides the option of extended-time simulation. Scripts are written in a Pascal-based language specifically developed for the software and allow repetitive or iterative type calculations to be performed, based for instance on a time increment. A simple example might be to determine how long the liquid level in a tank takes to fall due to discharge via gravity flow through a pipe. The script would include a simple “repeat-until” constructor based on a selected time increment. At the start level in the tank the steady-state flow is calculated and this volumetric flow rate multiplied by the time increment gives the volume of fluid discharged from the tank. Knowing the surface area of the tank (from data input to the steady-state model) the incremental fall in liquid level can be calculated and process repeated between set maximum and minimums, the script then returning the time taken. This simple example could easily be extended to include pump start and stop when minimum and maximum liquid levels are achieved, perhaps for the purpose of determining pump starts per hour.
The scripting language provides commands to access all the equipment items or elements used in the flowsheet-type schematic of the pipe network. For instance, the command ‘Network.Get’ followed by appropriate parameters (identifier, property) returns the value of that property for the specified element. The command NodeFlow := Network.Get (1, ‘Flow’) returns the flowrate through element number 1 on the flowsheet;
Network.Set (4, ‘BoosterOperatingSpeed’, ‘PumpSpeed) sets the speed of a pump, element no.4, to the value contained in the variable PumpSpeed.