Demo

This is a recorded run of the app, replayed in your browser. Nothing is computed here: the page plays back what the server sent during the run.

A membrane bioreactor is driven by two controllers side by side:

  • PeriodicOptimal starts with nine fixed cycles, fits its internal model on them, then switches to optimal control and keeps refitting.
  • Periodic starts with the same nine cycles, then keeps the best fixed filtration/backwash split for this plant.

The scenario is read-only, and the values of the plant's parameters are not published. Use Replay, Pause and the speed slider to play the run; the tabs and the Show chips change what is plotted.

Open the demo in a full page

What to look at

  • The first cycles are identical. Both controllers run the same warm-up schedule. It gives PeriodicOptimal the data it needs to fit its model.
  • Then the commands diverge. Look at the u panel after the warm-up: PeriodicOptimal no longer follows a fixed schedule.
  • The estimate follows the truth. On the x1 panel, the fouling estimated by PeriodicOptimal is drawn next to the true one, which the controller never measures.
  • The Metrics tab compares the two strategies cycle by cycle: filtration/backwash ratio, net production rate, and share of successful refits.

See Concepts for what each term means.