Skip to content

Running pumps at different speed #545

@elfjes

Description

@elfjes

Summary
The documentation states

Pump controls and patterns: Pumps have speed settings which are adjustable by controls and/or patterns. With the EpanetSimulator, controls and patterns adjust the actual speed. With the WNTRSimulator, pumps have a ‘base speed’ (similar to junction demand and reservoir head), controls adjust the base speed, and speed patterns are a multiplier on the base speed. Results from the two simulators can match by scaling speed patterns and using controls appropriately.

However, when I try to operate a head pump at a speed different from 1, I get the error
NotImplementedError("Pump speeds other than 1.0 are not yet supported.")

Is the documentation wrong in this case, or am I doing something wrong?

Example

wn = wntr.network.WaterNetworkModel()
wn.add_reservoir("R1", base_head=10)
wn.add_tank("T1", elevation=0, diameter=10, min_level=0, init_level=0, max_level=20, overflow=False)
wn.add_curve('Pu-curve', "HEAD", [(0.1, 3)])
wn.add_pump(
    "pump1",
    start_node_name="R1",
    end_node_name="T1",
    pump_type="HEAD",
    pump_parameter="Pu-curve",
)

wn.options.time.duration = 3600 * 5

action = wntr.network.ControlAction(wn.get_link('pump1'), 'base_speed', 1.1)
condition = wntr.network.SimTimeCondition(wn, '==', 3600 * 2)
control = wntr.network.Control(condition=condition, then_action=action)
wn.add_control('pump_base_speed', control)

sim = wntr.sim.WNTRSimulator(wn)
sim.run_sim() # raises NotImplementedError

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions