Code covered by the BSD License  

Highlights from
Learning PID Tuning III: Performance Index Optimization

5.0

5.0 | 3 ratings Rate this file 77 Downloads (last 30 days) File Size: 41.6 KB File ID: #18674
image thumbnail

Learning PID Tuning III: Performance Index Optimization

by

 

08 Feb 2008 (Updated )

A tool and tutorial to perform optimal PID tuning

| Watch this File

File Information
Description

Most PID tuning rules are based on first-order plus time delay assumption of the plant hence cannot ensure the best control performance. Using mordern optimization techniques, it is possible to tune a PID controller based on the actual transfer function of the plant to optimize the closed-loop performance.

This submission contains a function to perform optimal PID design based on four different performance indices, e.g. the ISE, the IAE, the ITSE and the ITAE. A published m-file provides two 4th-order examples to explain the usage and to show impact of using different performance indices.

The example file requires the znpidtuning function, which can be downloaded from http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objectId=18561&objectType=FILE

Acknowledgements

Learning Pid Tuning I: Process Reaction Curve and Learning Pid Tuning Ii: Stability Margin inspired this file.

Required Products Control System Toolbox
Optimization Toolbox
MATLAB release MATLAB 7.5 (R2007b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (6)
18 Dec 2012 Roberto Lopez

We have tried this powerful tool at a University in Ecuador, where I come from. We would like to include the code applied for the Transfer Function of our Engineering Graduation Project, respecting all what says in the licensing file. But we also would like to know if there is more information behind the "optimPID" function development, so we can also include it as a reference.
Thank you very much!

18 Dec 2012 Roberto Lopez  
18 Mar 2012 robert howrd

Why your program hangs when I do this?

EDU>> clear all
EDU>> s=tf('s');
EDU>> sys=1/(10*s^2+s+1);
EDU>> sys2=optimPID(sys,1,1)

it now hangs. I am using Matlab 2011a

Robert

22 Dec 2009 Arkadiy Turevskiy

Thanks for an interesting submission. If you are interested in designing and tuning PID controllers in MATLAB and Simulink, please take a look at new PID tuning capabilities shipped in Simulink Control Design in R2009b:
http://www.mathworks.com/products/simcontrol/

There is also a webinar on the subject:
http://www.mathworks.com/company/events/webinars/wbnr38619.html?id=38619&p1=636028070&p2=636028082

and MATLAB Digest article:
http://www.mathworks.com/matlabcentral/fileexchange/22150-pid-controller-matlab-code

05 Apr 2009 V. Poor  
30 Mar 2008 AKIN YILMAZ  

Contact us