필터 지우기
필터 지우기

How can i tune a PID controller using PSO algorithm for an Automatic Generation Control system

조회 수: 2 (최근 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.

답변 (1개)

denny
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

카테고리

Help CenterFile Exchange에서 PID Controller Tuning에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by