Peter Nachtwey
Member
No! MPC has no gains! It does require an accurate model. MPC estimates the MV or control outputs for each iteration N times in the future. The control outputs are determine by minimizing the SSE between a desired SP and the PV or response N iteration into the future. For temperature systems N most be enough iterations to see past the dead time. So if if the temperature does an iteration every second, the MPC must do 30 calculations or look 0.5 minutes in the future because the dead time is .354 minutes. This allows the MPC to see past the dead time. This will keep the MPC from over saturating the control output. This is quite CPU intensive at first but after a good fit is found the next iteration will go much faster since N-1 MVs can be shifted down and the last MV is still a pretty good start for the next iteration.If you are constantly updating the model and subsequently the gains, it's almost a sudo MPC.
Now think about this. If there are 30 MVs to optimize, N-M requires N+1 initial guesses. That is a lot. This is where some other method of optimizing might be better like Levenberg_Marquardt.
As the dead time increases, so does the number of iterations one much look into the future or maybe you can cut that in half if each iteration is 2 seconds instead of 1. It would also save on processing time.
[/quote]
There are plenty of options for future features. Nelder-Mead, it has been the most consistent.[/QUOTE]
Have you tried Levenberg-Marquardt. The package is called lmfit.py lmfit is much different from the standard packages in scipy.optimize.