how to tune pid controller using genetic algorithm?
23 次查看(过去 30 天)
显示 更早的评论
Hi friends, I had designed longitudinal flight control system in simulink. In that model i want to tune PID controller by using Genetic algorithm.How can i get Kp,Ki,Kd values ?
anybody knows how to use GA in simulink, Pls help me...
0 个评论
回答(2 个)
Amirali Najafi
2020-5-20
Code credit to Steve Brunton
close all; clear all; clc
dt = 0.001;
PopSize = 25;
MaxGenerations = 10;
s = tf('s');
G = 1/(s*(s*s+s+1));
options = optimoptions(@ga,'PopulationSize',PopSize,'MaxGenerations',MaxGenerations);
[x,fval] = ga(@(K)pidtest(G,dt,K),3,-eye(3),zeros(3,1))
function J = pidtest(G,dt,parms)
s = tf('s');
K = parms(1) + parms(2)/s + parms(3)*s/(1+.001*s);
Loop = series(K,G);
ClosedLoop = feedback(Loop,1);
t = 0:dt:20;
[y,t] = step(ClosedLoop,t);
CTRLtf = K/(1+K*G);
u = lsim(CTRLtf,1-y,t);
Q = 1;
R = .001;
J = dt*sum(Q*(1-y(:)).^2+R*u(:).^2)
[y,t] = step(ClosedLoop,t);
plot(t,y,'LineWidth',2,'color','r')
drawnow
end
5 个评论
krishna
2023-10-31
Hi friends, I had designed model of 6DOF quadcopter control system in simulink i'm using cascade PID controller . In that model i want to tune PID controller by using Genetic algorithm.How can i get Kp,Ki,Kd values ? any one give me code for this for tuning PID controller.
Abdel Aziz
2024-11-14,13:37
Hello, im working on a 6DOF quadcopter for solar panel cleaning in Matlab simulink using simscape multibody, and i am already tuned Altitude and Yaw controller,but when i try to tune pitch/Roll controller my model become unstable , please i need help to tune my Quad
Abdel Aziz
2024-11-14,13:37
Hello, im working on a 6DOF quadcopter for solar panel cleaning in Matlab simulink using simscape multibody, and i am already tuned Altitude and Yaw controller,but when i try to tune pitch/Roll controller my model become unstable , please i need help to tune my Quad
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Genetic Algorithm 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!