jsmith said:
hi,
is there any algorithm or software for setting parameters of PID
control ?
(
EXT double PID_dState ;
// Last position input
EXT double PID_iState,PID_iMax,PID_iMin;
// Integrator state , Maximum and minimum allowable integrator state
EXT double PID_iGain, PID_pGain, PID_dGain;
// integral gain, proportional gain, derivative gain
EXT double PID_Min,PID_Max;
// Maximum and minimum allowable PID output
)
If you do a bit of web searching you'll come back and ask "which of the
gazillions of algorithms that are out there is the right one for me?".
When you do you may want to cross-post to both this group and to
sci.engr.control.
For guidance you may want to check out my article on the Embedded.com
website -- it first appeared in Embedded Programming Magazine, and it's
still going strong. That article has a simple procedure that you can go
through to manually tune a loop, and works very well if the
environment's not too challenging. This link will get you there:
http://www.wescottdesign.com/articles/Sampling/pidwophd.html.
You may have read it already, and if you didn't then whoever wrote the
code very likely did -- the variable names you're using look _very_
familiar.
If you need to do a really good job or if you have a challenging plant
to control you'll need to get a copy of my book:
http://www.wescottdesign.com/actfes/actfes.html.
If you need to build a controller that tunes itself once, or every time
it wakes up you'll want to do a web search on "auto tune".
If you need to build a controller that tunes itself all the time, you'll
want to change jobs, or do a web search on "adaptive control".
--
Tim Wescott
Wescott Design Services
http://www.wescottdesign.com
Posting from Google? See
http://cfaj.freeshell.org/google/
Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" gives you just what it says.
See details at
http://www.wescottdesign.com/actfes/actfes.html