A self-tuning PID demonstration GPL software using genetic algorithm.
Demonstration video here : https://www.youtube.com/watch?v=cK6kWN9K_do
The process of finding these values is referred to as “tuning.” When a PID controller is tuned optimally, the device minimizes deviation from the set point, and responds to disturbances or set point changes quickly but with minimal overshoot. This White Paper from OMEGA. Auber “Autotune” Instructions Your Auber PID comes pre-tuned, so to get the best performance for your Smokin-It ® smoker, we recommend you perform an autotune. This will set the PID unit to your smoker and give you consistent results. Autotuning sets the “P,” “I”. A Control Design reader writes: I often have difficulty tuning PID loops, especially for tem- perature control applications and servo-motor motion applications. If I use a temperature controller, the auto-tune built into the device often works well if I follow the manufacturer’s. Arduino PID Autotune Library At long last, I’ve released an Autotune Library to compliment the Arduino PID Library. When I released the current version of the PID Library, I did an insanely extensive series of posts to get people comfortable with what was going on inside. PID Control Tutorial PID Control Tutorial Download (34 KB) Overview. PID is an acronym for proportional band, integral and derivative. This control action allows a measurement (process variable) to be controlled at a desired set point by continuously adjusting a control output. For example, a flow controller may have an input range of 0 to.
Auburn Auto Tune Pid Controller Parts
Explanation here : https://kevinjoly25.wordpress.com/2015/01/13/pid-controller-auto-tuning-using-genetic-algorithm/
Tavis scott auto tune key. No install method has been provided yet. However, you can run the software from the build directory:$ ./pid-autotune
There is 4 dock widgets in this software:
Motor: enable the user to choose a motor to use and test it in closed on opened loop.
Controller : enable the user to choose a controller to use with the motor (check 'Use controller'). The controller parameters can be set in this widget for test purpose.
Graph settings : enable the user to change the axes scale by setting the min and max to be displayed.
Genetic : enable the user to control the genetic algorithm parameters such as:
input : value of the input applied on the system.
min/max Kx : boundary values of each PID action.
Evaluation time : system running time when evaluating fitness.
Population size : size of the genetic algorithm's population.
Mutation ratio : probability to mutate the offspring's variable.
Crossover ratio : probability to crossover two parents.
Overshoot penalty : ratio which multiply the error when an overshoot occurs. If you don't want any overshoot, set this to the maximum.
Elite num : Number of best parents kept in the next generation of population.The start button launch the genetic process. Pause stop the process, press start to launch it again without any loss. Reset enable the user to generate a new random population by deleting the old one.
Example
Under 'Motor' : choose the DummyMotor.
Under 'Graph settings' : set xMax to 0.1 and yMax to 2.0.
Under 'Genetic' : set maxKp to 1.0, maxKd to 2.0, maxKi to 0.1.
Hit start button and enjoy the dance of a self-tuning PID! ;)
More on GAs..
The fitness function is using the sum of squarred error to evaluate the generated PID.Thanks to this fitness function, tournament selection can be used in order to select parents of the next PID population.The genetic algorithm implemented in Genetic.cpp uses arithmetic crossover and gaussian mutation to generate the new population.Elitism can be used.
Auber Pid Kit
This software is using the GPL software QCustomPlot from Emanuel Eichhammer.