PID from GPC

The provided MATLAB script calculates the parameters of a two-degree-of-freedom PID controller tuned to achieve performance similar to Generalized Predictive Control (GPC) for systems with dead time. The script supports models such as first-order plus dead time (FOPDT), integrating plus dead time (IPDT), and unstable first-order plus dead time (UFOPDT).

This user-friendly tool is ideal for control engineers aiming to implement a PID control strategy for processes with dead time. It provides the gains Kp, Ki, Kd, N for a discrete-time PID controller in the form Ceq(z) = Kp + Ki Ts*z/(z-1) + Kd/(Npid + Ts*z/(z-1)) , along with a reference filter Feq(z).

A detailed explanation of the method can be found in the following publication:

Lucian R. da Silva, Rodolfo C.C. Flesch, Julio E. Normey-Rico, and Leonardo Colussi. ‘PID tuning based on GPC for dead time processes approximated by simplified models’, in: Proceedings of the CBA 2024.

You can freely download the MATLAB script for non-commercial use here.