How can i tune a PID controller using PSO algorithm for an Automatic Generation Control system
5 views (last 30 days)
Show older comments
I need to optimize a PID controller for a 2 area automatic generation control system using PSO algorithm. I am not able to understand the implementation of the algorithm.
0 Comments
Answers (1)
denny
on 17 Feb 2017
You can read the matlab help, like the following matlab commands:
set_param('somesimulink/constant','Value',num2str(kp))
sim('somesimulink.slx')
and the simulink model:
to workspace
and the code as following : % options=gaoptimset('Generations',maxGenerations,'PopulationSize',maxPopulationSize,'Display','iter','TimeLimit',6000,'PlotFcn',@myplot_forga);%ga gaplotbestf
options=gaoptimset('Generations',maxGenerations,'PopulationSize',maxPopulationSize,'Display','iter','PlotFcn',@myplot_forga);%ga gaplotbestf
for ii=1:numofmean
every_gen_bestvalues=[];
disp(['--------------------------------------------ga ' num2str(ii) '/' num2str(numofmean)]);
tic
[thelast_x,thelast_f]=ga(@fitness_allothers,8,[],[],[],[],LB,UB,[],[],options);% fitness_test fitness_allothers
usetime=toc;
every_gen_bestvalues=every_gen_bestvalues(2:end-1);
end
disp(['--1-------------------------------------------------------------------------------------------------']);
function y =fitness_allothers(x)
%x vars: Ki_Te Kp_Te
%% set data
set_param('somesimulink/RSC1','Ki_Te',num2str(x(1)))
set_param('somesimulink/RSC1','Kp_Te',num2str(x(2)))
sim('somesimulink');
y=my_fitnessdata(end);% my_fitnessdata is a toworkspace model in the simulink model.
end
0 Comments
See Also
Categories
Find more on PID Controller Tuning in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!