Skip to content

Time On/Off Controller ​

Programmable time-based cycling control

Overview ​

The Time On/Off Controller implements programmable cycling with multiple phases. Each phase has a defined duration and output value, enabling complex time-based control sequences like intermittent aeration or batch operations.

When to Use ​

  • Intermittent aeration: Nitrification/denitrification cycling
  • Batch processes: SBR phase sequencing
  • Energy optimization: Off-peak operation
  • Scheduled operations: Periodic chemical dosing

Common Applications ​

ApplicationOn TimeOff TimePurpose
Intermittent DO2-4 hours1-2 hoursN removal
SBR aeration2-3 hours0.5-1 hourCycle phases
Sludge wasting1 hour7 hoursSRT control
Chemical feed30 min2 hoursPhosphorus removal

Control Theory ​

Concept ​

mermaid
graph LR
    subgraph Cycle
        P1[Phase 1: ON] --> P2[Phase 2: OFF]
        P2 --> P3[Phase 3: RAMP]
        P3 --> P1
    end

Time-Based Sequencing ​

Output
100% ─────┐     ┌─────┐     ┌─────
          │     │     │     │
 50% ─────│─────│─────│─────│─────
          │     │     │     │
  0% ─────└─────┘     └─────┘

Time   0   1   2   3   4   5   6
      |--On--|--Off--|--On--|--Off--|

Cycle Calculation ​

$$t_{cycle} = \sum_{i=1}^{n} t_{phase_i}$$

$$phase_{current} = \left\lfloor \frac{t_{elapsed} \mod t_{cycle}}{\sum_{j=1}^{i} t_{phase_j}} \right\rfloor$$

Parameters ​

ParameterUnitRangeDefaultDescription
Phases-1-102Array of phase definitions
Phase.name--"On"/"Off"Phase identifier
Phase.durationdays0.001-10.25Phase length
Phase.output%0-100variesOutput during phase
Phase.rampTimedays0-duration0Ramp to output
Repeat-true/falsetrueRepeat cycle
Cycle Count-0-∞0 (infinite)Number of cycles
Start Offsetdays0-10Delay before start

Phase Definition ​

json
{
  "phases": [
    {
      "name": "Aeration",
      "duration": 0.125,
      "output": 100,
      "rampTime": 0.01
    },
    {
      "name": "Anoxic",
      "duration": 0.0625,
      "output": 10,
      "rampTime": 0.005
    }
  ]
}

Time Conversion:

  • 0.125 days = 3 hours
  • 0.0625 days = 1.5 hours
  • 0.01 days = ~15 minutes

Tuning Guidelines ​

Cycle Timing ​

  1. Consider process dynamics: Cycle longer than response time
  2. Match biological kinetics: Nitrifier growth rates
  3. Account for lag: Allow time for DO to respond

Intermittent Aeration Timing ​

ProcessOn TimeOff TimeTotal Cycle
Nitrification only4 h2 h6 h
SND process3 h1.5 h4.5 h
Enhanced N removal2 h2 h4 h
Energy saving3 h3 h6 h

Configuration ​

Example: Intermittent Aeration ​

json
{
  "id": "intermittent-aeration-1",
  "type": "TimeOnOff",
  "enabled": true,
  "targetNodeId": "aerobic-reactor-1",
  "manipulatedVariable": "aerationMode",
  "phases": [
    {
      "name": "Aerobic",
      "duration": 0.125,
      "output": 100,
      "rampTime": 0.01
    },
    {
      "name": "Anoxic",
      "duration": 0.0625,
      "output": 10,
      "rampTime": 0.005
    }
  ],
  "cyclePeriod": 0.1875,
  "repeat": true,
  "cycleCount": 0,
  "startOffset": 0,
  "mode": "auto"
}

Example: SBR Cycle ​

json
{
  "id": "sbr-cycle-1",
  "type": "TimeOnOff",
  "enabled": true,
  "targetNodeId": "sbr-reactor-1",
  "manipulatedVariable": "phaseOutput",
  "phases": [
    { "name": "Fill", "duration": 0.042, "output": 0 },
    { "name": "React-Aero", "duration": 0.125, "output": 100 },
    { "name": "React-Anox", "duration": 0.042, "output": 10 },
    { "name": "Settle", "duration": 0.042, "output": 0 },
    { "name": "Decant", "duration": 0.042, "output": 0 }
  ],
  "cyclePeriod": 0.293,
  "repeat": true,
  "cycleCount": 0,
  "startOffset": 0,
  "mode": "auto"
}

Integration Example ​

Simultaneous Nitrification-Denitrification (SND) ​

Scenario: Cycle between aerobic and anoxic conditions

Aeration  ON ─────┐     ┌─────┐     ┌─────
                  │     │     │     │
         OFF ─────└─────┘     └─────┘

DO (mg/L) 2.0 ─────┐
                   └─→ drops during anoxic
          0.5 ──────────┐
                        └─→ rises during aerobic

NH4      High ─────┐     ┌────
                   └─────┘    (oxidizes during aerobic)

NO3            ┌────┐
         Low ──┘    └──── (reduces during anoxic)

Benefits:

  • Single reactor handles N removal
  • Energy savings from reduced aeration
  • Flexible timing adjustment

Best Practices ​

  1. Start with proven timing

    • Literature values for similar processes
    • Conservative cycles initially
  2. Monitor during transitions

    • DO lag after aeration stops
    • Ammonia/nitrate response
  3. Consider ramp times

    • Gradual equipment changes
    • Process settling time
  4. Allow process adaptation

    • Biomass needs time to adjust
    • Start with longer cycles
  5. Coordinate with other equipment

    • Mixers may need to run during anoxic
    • Chemical feed timing

Troubleshooting ​

IssueCauseSolution
Incomplete nitrificationOn time too shortIncrease aerobic phase
Poor denitrificationOff time too shortIncrease anoxic phase
Rising ammoniaCycle too longShorten total cycle
Equipment stressNo ramp timeAdd ramp transitions
Out of syncStart offset wrongAdjust start offset

Advanced Features ​

Ramp Transitions ​

Smooth transitions between phases:

Output
100% ────────────┐        ╭────────
                 │      ╭─╯
                 │    ╭─╯
                 │  ╭─╯
 10% ────────────└──╯

     |--Aero--|Ramp|--Anox--|Ramp|

Multiple Cycles ​

Run specific number of cycles then stop:

json
{
  "repeat": true,
  "cycleCount": 4
}

After 4 cycles, controller stops at last phase output.

References ​

  1. Tchobanoglous, G. et al. "Wastewater Engineering" (5th Edition)
  2. Grady, C.P.L. "Biological Wastewater Treatment" (3rd Edition)
  3. WEF "Nutrient Removal" (MOP 34)