PID tuning / optimization usig machine learning/deep learning algorithm

Hello, I would like to ask about PID tuning using ML/DL algorithms. is there any article available in mathworks to do PID tuning using Machine learning for the optimization of the function. IF anyone did same thing, could you please help me?
I have created a model in Simulink. I want to do optimization to minimize the error. for that I want to do PID tuning.

 Accepted Answer

Hi Avdhut,
You could use the blocks that are shipped with the Reinforcement Learning Toolbox to tune a PID controller. An example application is also shipped with the documentation of the Reinforcement Learning Toolbox.
Please find the link to the same here - https://www.mathworks.com/help/reinforcement-learning/ug/tune-pi-controller-using-td3.html. This example shows how to tune the two gains of a PI controller using the twin-delayed deep deterministic policy gradient (TD3) reinforcement learning algorithm.You may adapt the workflows used in the above application (which tunes a PI controller) to your PID controller.

9 Comments

Thank you for your answer, However I would like to do PID tuning with Genetic algorithm. GA for PID tuning is not available in MATLAB forum. is it possible to guide me with how to do PID tuning using GA.
if possible please guide me through sequence which I should follow to do it, Since I don't have previous experience of PID tuning.
Thank you in advance!
Regards,
Avdhut
I'm not entirely sure, but perhaps @Raghava S N can assist you. However, I believe it might be quite challenging for you to tune PID gains with a genetic algorithm (GA) if you don't have any experience in mathematically tuning PID gains using formulas. Let's consider a double integrator system as an example.
Can you tune the PID controller using textbook knowledge?
Gp = tf(1, [1 0 0])
Gp = 1 --- s^2 Continuous-time transfer function.
Hello Sam,
I tried Genetic algorithm by method mentioned on youtube, however I am getting following error. Could you please help me to rectify this.
Hello Sam,
I used integral time absolute error (ITAE) for optimization and directly took its value from simulink model as shown in figure. I have 5 controllers in my model so i added ITAE of all controllers and called it to workspace.
Hi @Avdhut Machchhindra, The error message suggests that you have passed a time series data to ga(), which I assume originates from your Simulink model. The value of the cost function should indeed be a scalar. Is that the case in your implementation?
Hello Sam,
Thank you so much for your response. Issue has been resolved. I selected time series data type in 'to workspace' block, Now I changed data type to array.
Don't mention it, @Avdhut Machchhindra. I'm glad you sorted it out. One question though.
Would this one more compact?
cost = ITAE(end);
instead of
cost = ITAE(length(ITAE));
Hello,
Both of them are giving same output.

Sign in to comment.

More Answers (0)

Products

Release

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!