Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There are at least 6 classes of approaches [1] for controller tuning. But they all involve the following: (1) starting with some initial guesses for tuning parameters (2) fine-tuning them in real-life.

If you have a (rough) model of the system e.g. a transfer function, you can invert the model to get some initial parameters, and then fine-tune by hand.

If you don't have a model but are able to run tests [0] to collect data, you can apply any number of heuristic methods to systematically perturb the system to collect data to aid in tuning. Then fine-tune by hand.

Difficult loops e.g. MIMO (multiple input multiple output) loops that are larger than 2x2 where there's interaction between the variables (i.e. you move one variable, others move as well) require more analysis with loop-pairing techniques like RGA (relative gain analysis).[3]

For really difficult loops (or loops that have degraded over time), you can use software like Loop Pro [2]. This only makes sense if you're controlling something valuable and where loop degradation could lead to safety or performance issues. You probably don't need software to tune the PID in your espresso maker.

--

[0] Some systems are "open-loop unstable", which means they can go haywire if you perturb too much in the wrong direction. Simply blindly perturbing these types of systems is inadvisable. Process understanding/analysis is needed to avoid unstable situations.

[1] https://sites.chemengr.ucsb.edu/~ceweb/faculty/seborg/teachi...

[2] https://controlstation.com/pid-tuning/

[3] For really large MIMO systems, PID is no longer the right control mechanism. Advanced control techniques like MPC are used, where a computer repeatedly solves an numerical optimization problem at some frequency to calculate the next control moves. MPC is usually used to control chemical plants with hundreds/thousands of control variables. PID is used in local loops, whereas MPC sits on top as an optimizing layer.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: