Appearance
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
| Application | On Time | Off Time | Purpose |
|---|---|---|---|
| Intermittent DO | 2-4 hours | 1-2 hours | N removal |
| SBR aeration | 2-3 hours | 0.5-1 hour | Cycle phases |
| Sludge wasting | 1 hour | 7 hours | SRT control |
| Chemical feed | 30 min | 2 hours | Phosphorus removal |
Control Theory
Concept
mermaid
graph LR
subgraph Cycle
P1[Phase 1: ON] --> P2[Phase 2: OFF]
P2 --> P3[Phase 3: RAMP]
P3 --> P1
endTime-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
| Parameter | Unit | Range | Default | Description |
|---|---|---|---|---|
| Phases | - | 1-10 | 2 | Array of phase definitions |
| Phase.name | - | - | "On"/"Off" | Phase identifier |
| Phase.duration | days | 0.001-1 | 0.25 | Phase length |
| Phase.output | % | 0-100 | varies | Output during phase |
| Phase.rampTime | days | 0-duration | 0 | Ramp to output |
| Repeat | - | true/false | true | Repeat cycle |
| Cycle Count | - | 0-∞ | 0 (infinite) | Number of cycles |
| Start Offset | days | 0-1 | 0 | Delay 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
- Consider process dynamics: Cycle longer than response time
- Match biological kinetics: Nitrifier growth rates
- Account for lag: Allow time for DO to respond
Intermittent Aeration Timing
| Process | On Time | Off Time | Total Cycle |
|---|---|---|---|
| Nitrification only | 4 h | 2 h | 6 h |
| SND process | 3 h | 1.5 h | 4.5 h |
| Enhanced N removal | 2 h | 2 h | 4 h |
| Energy saving | 3 h | 3 h | 6 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
Start with proven timing
- Literature values for similar processes
- Conservative cycles initially
Monitor during transitions
- DO lag after aeration stops
- Ammonia/nitrate response
Consider ramp times
- Gradual equipment changes
- Process settling time
Allow process adaptation
- Biomass needs time to adjust
- Start with longer cycles
Coordinate with other equipment
- Mixers may need to run during anoxic
- Chemical feed timing
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| Incomplete nitrification | On time too short | Increase aerobic phase |
| Poor denitrification | Off time too short | Increase anoxic phase |
| Rising ammonia | Cycle too long | Shorten total cycle |
| Equipment stress | No ramp time | Add ramp transitions |
| Out of sync | Start offset wrong | Adjust 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.
Related Controllers
- Deadband-Controller - PV-triggered on/off
- Switch-Controller - Smooth PV-based transitions
- Cascade-Controller - DO control during aerobic phase
References
- Tchobanoglous, G. et al. "Wastewater Engineering" (5th Edition)
- Grady, C.P.L. "Biological Wastewater Treatment" (3rd Edition)
- WEF "Nutrient Removal" (MOP 34)