How can i tune a PID controller using PSO algorithm for an Automatic Generation Control system
4 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
denny
2017-2-17
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 PID Controller Tuning 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!