Control a nonlinear water tank
Compare fixed and scheduled PI control across changing water levels.
Does one controller remain useful when the plant changes with its operating level?
Use A*dh/dt=q-0.5*sqrt(h) with A=2 m², height h in metres, and inlet q in m³/s. Limit inlet to 0 to 1.2 m³/s and height to nonnegative values. The CSV is a synthetic open-loop Euler experiment at dt=0.1 s. Develop local models around h0=0.25,1,4 m, then test controllers on the nonlinear plant.
Build it, step by step
- 01
Derive each equilibrium flow and local gain and time constant. Check the 1.2 m³/s cap against every requested height.
- 02
Tune a fixed PI at 1 m. Add feedforward equal to the equilibrium outflow and anti-windup.
- 03
At each operating level, test a 10% upward and downward reference change. Aim for less than 5% final error and no height below zero. Choose and justify a settling target before tuning.
- 04
Build a schedule using local pole matching with zeta=0.8 and wn=0.3 rad/s. Preserve integral command during schedule changes.
- 05
Compare fixed and scheduled control on level ramps and a 20% outlet-coefficient change. Halve the numerical step to check convergence.
Your project checklist
- Correct local models and operating-point assumptions.
- Nonlinear validation with flow and height bounds.
- Bumpless transition logic and convergence evidence.
- A fair fixed-versus-scheduled comparison with uncertain outflow.
Free, open and run by a nonprofit.
This page is part of Control Engineering, a free course of 20 modules and 60 lessons in the engineering.fit( ) Learning Lab. The Learning Lab is built and run by engineering.fit( ), a nonprofit founded by Abdullateef Opeyemi Bakare that helps African engineering students gain research experience. You do not need an account or pay a fee to learn.