code for pid tuning using genetic algorithm in matlab
can i get matlab coding for tuning of PID controller....
Posts: 14,118
Threads: 61
Joined: Oct 2014
How can I tune PID controller using GENETIC ALGORITHM.......????
Asked by RAJEEV KUMAR on 15 Nov 2012
Latest activity Commented on by lithika on 26 Feb 2014
num=6;
den=[48 44 12 1];
gp=tf(num,den); % PLANT TRANSFER FUNCTION
%% OVERALL TRANSFER FUNCTION
gpgcr=gp*gcr;
sysy4=feedback(gpgcr,1);
%% BY GENETIC ALGORITHM
N=5; % NO OF POPULATION
M=4;
iter=12; % no.of iterations
maxiter=1;
%% initialization of pbest and gbest
for i=1:N
for j=1:iter
for k=1:M
pbest(i,j,k)=rand;
gbest(i,j,k)=rand;
end
end
end
%% initialization of kp,kd,ki and calculation of ISE
for i=1:N
for j=1:iter
for k=1:M
kp(i,j,k)=rand;
kd(i,j,k)=rand;
ki(i,j,k)=rand;
%% controller transfer function
numgc=[kd(i,j,k),kp(i,j,k),ki(i,j,k)];
dengc=[1,0];
gc=tf(numgc,dengc); % controller T.F
g=gp*gc;
GCL=feedback(g,1); % gives c(s)/r(s)
[num,den] = tfdata(GCL,'v'); % 'V' return the numerator and denominator directly as
......row vectors rather than as cell arrays
GCL1=1-GCL; % GIVES e(s)/r(s)
[nume,dene]=tfdata(GCL1,'v');
dene1=[dene,0]; % for e(s)
[r,p,k1]=residue(nume,dene1);
n=length(p);
for y=1:n
h(y)=ilaplace(r(y)/(s-p(y)));
end
h;
q=0;
for z=1:n
q=h(1,z)+q; % gives e(t)
end
q;
q=vpa(q,5); % Variable-precision arithmetic
qsq=q^2;
lqsq=laplace(qsq); % to get laplace transform
isee=limit(lqsq,s,0);
ise=vpa(isee,5);
x(i,j,k)=ise %CAN WE TAKE IT AS FITTNESS FUNCTION..??
end
end
end
how can i merge matlab code with simulink and how can i fix fitness value and minimization function
how can i merge genetic code with matlab simulink and what can i choose for minimization