40
ตารางท4่ี .1 แสดงค่าพารามเิ ตอร์ผลตอบสนองชวั่ ขณะของมอเตอร์กระแสตรงแบบไร้แปรงถ่าน
วิธีการหาค่าคงที่ ค่าพงุ่ เกิน(%) ช่วงเวลาขาข้ึน ช่วงเวลาเขา้ สู่สมดุล คา่ ความคลาดเคลอื่ น
ทเ่ี หมาะสม ในสภาวะคงตวั (%)
WOA
0.3 0.0032 0.0056
0
IWOA 0 0.0014 0.0026 0
ZN 0 0.0044 0.032 0
จากตารางท่ี 4.1 พบวา่ ทค่ี ่าพงุ่ เกิน ซ่ึงเป็นค่าที่บอกถึงความคลาดเคลอื่ นของสญั ญาณอินพตุ และ
สญั ญาณ เอาตพ์ ตุ ชว่ั ขณะซ่ึงวิธีการ IWOAกบั ZN น้นั มคี า่ เทา่ กบั 0 ซ่ึงนอ้ ยกว่าวธิ ีการWOA ท่ีค่าช่วงเวลาขา
ข้นึ ซ่ึงเป็นช่วงเวลาทแี่ สดงถงึ ความเร็วของการตอบสนองของระบบ โดยวธิ ีการทีม่ ีค่านอ้ ยทส่ี ุดซ่ึงแสดง
ถงึ ความไวทมี่ ากท่สี ุดของระบบ โดยที่วิธีการ IWOA มคี า่ ไวและดกี ว่าวธิ ีการ WOA และ ZN ค่าช่วงเวลาเขา้
สู่สมดุล ซ่ึงเป็นช่วงเวลาท่รี ะบบกาลงั เขา้ ทีห่ รือเขา้ ใกล้ ผลตอบสนองในสภาวะคงถา้ หากค่านอ้ ยน้นั
แสดงถึงความไวในการเขา้ ทขี่ องระบบ โดยวิธีการทีม่ ีค่านอ้ ยที่สุดคอื วิธีการ IWOA ซ่ึงดีกว่าวิธีการ WOA
และ ZN คา่ ความคลาดเคลื่อนในสภาวะคงตวั ซ่ึงเป็นค่าท่บี อกถึงความผิดพลาดระหว่างสญั ญาณอนิ พุต
กบั สัญญาณเอาตพ์ ตุ โดยทีถ่ า้ มคี า่ นอ้ ยถอื ว่า ระบบมปี ระสิทธิภาพเพราะมคี วามคลาดเคลอื่ นของสัญญาณ
เอาตพ์ ตุ นอ้ ยโดยที่วิธีการท้งั 3มีค่าเทา่ กบั 0 เทา่ กนั จากผล การวิเคราะห์ผลตอบสนองขณะและ |error| พบว่า
วิธีการ IWOA มคี า่ ประสิทธิภาพของผลตอบสนอง ชวั่ ขณะดีกว่า วิธีการ WOA และ ZN
41
5. อภปิ รายและสรุปผล
งานวิจยั น้ีตอ้ งการนาเสนอวธิ ีการหาค่าคงทท่ี ี่เหมาะสมดว้ ยวิธีการพฒั นาการหาค่าคงท่ที ่ีเหมาะสมแบบวาฬ
ของระบบควบคุมแบบพีไอดีสาหรับควบคุมระบบมอเตอร์กระแสตรงแบบไร้แปรงถ่าน โดยทาการ
เปรียบเทยี บหาผลการหาคา่ คงท่ขี องระบบควบคมุ แบบพไี อดีสาหรับระบบมอเตอร์กระแสตรงแบบไร้แปรง
ถา่ น กบั วธิ ีการหาค่าคงท่ีที่เหมาะสมแบบวาฬ , วิธีการซีเกลอร์-นิโคลส์ ซ่ึงจะวิเคราะห์ผลการ ดาเนินงาน
จากผลตอบสนองชวั่ ขณะ Objective space และ|error| ค่า Kp, Ki และ ที่ไดจ้ ากการออกแบบแบบจาลอง
ระบบโดยทาการประมวลผลผ่านโปรแกรม MATLAB เพื่อแสดงประสิทธิภาพซ่ึงสามารถอภิปรายผลการ
ดาเนินงานไดด้ งั น้ี
5.1สรุปผลการทดลอง
จากการออกแบบ แบบจาลองแบบ พีไอดีสาหรับควบคุมระบบมอเตอร์กระแสตรงแบบไร้แปรงถ่าน โดยใช้
วิธีการซีเกลอร์-นิโคลส์ (ZN) การหาค่าคงท่ีที่เหมาะสมแบบวาฬ (WOA) และการพฒั นาการหาค่าคงที่ที่
เหมาะสมแบบวาฬ (IWOA) และทาการเลือกใช้งาน ITAE เป็ นฟังก์ช่ันวัตถุประสงค์เพ่ือช่วยลดการ
กระเพื่อมของ Over Shoot ในระบบ และ Setting Time, Steady State Error ให้มีค่าน้อย ทาให้ได้ ผลลพั ธ์
ของ ผลตอบสนองช่ัวขณะและคา่ เสถียรภาพของระบบ ดงั ตารางที่4.1,รูปที่ 4.7,รูปท่ี 4.8,รูปที่ 4.9 พบว่าค่า
, , อตั ราการตอบสนองชวั่ ขณะที่ไดจ้ ากตารางท่ี 4.1 และค่า Objective space ที่ต่าท่ีสุด โดยท่ีมี ค่า
, , ท่ีไดจ้ าก IWOAน้นั ส่ง ผลลพั ธ์ให้ ค่า Objective space ที่ไดจ้ าก IWOA มีค่านอ้ ยกว่า WOA และ
IWOA มีค่าSetting time ค่า Rise time และค่า Overshoot น้อยกว่า WOA และZN รวมท้ังค่า steady state
error ของท้ัง3ค่ามีค่าเท่ากนั ทาให้สรุปไดว้ ่าจากผลลัพธ์ค่าObjective space ค่าอตั ราขยาย , , และ
ผลลพั ธ์จากอตั ราการตอบสนองชัว่ ขณะจากตารางที่ 4.1 พบว่า การพฒั นา IWOAโดยการนา WOA พฒั นา
ร่วมกับ Momentum และStochastic Gradient Descent มีประสิทธิภาพ ที่ดีกว่าเมื่อเปรียบเทียบกับ WOA
และZN โดยจากการประเมนิ ผลตอบสนองสามารถสรุปและแสดงค่า พารามเิ ตอร์ไดด้ งั ตารางท่ี 5.1 ดงั น้ี
42
ตารางท่ี 5.1 แสดงค่าพารามเิ ตอร์ผลตอบสนองชว่ั ขณะโดยสรุป
วิธีการหาคา่ คงที่
ท่เี หมาะสม
0.0032 0.0056 0 49.9 0.8 0.15
WOA 0.3 0.0014 0.0026 0 64.8 1.6 30
0.0044 0.032 0 19.2 0.4 0.11
IWOA 0
ZN 0
5.2 ปัญหาและอุปสรรคในการดาเนนิ งาน
1.การพฒั นาวิธีการหาคา่ คงทท่ี ี่เหมาะดว้ ยวธิ ีการแบบวาฬ ค่อนขา้ งซบั ซอ้ นในการเลือกใชเ้ ครื่องมอื ที่
เหมาะสมเขา้ มาในการพฒั นา
2.วิธีการหาค่าคงทที่ ่เี หมาะดว้ ยวิธีการแบบวาฬ เป็นวธิ ีการมกี ารประมวลผลที่มีความซบั ซอ้ น และมขี ้นั
ตอนในการอพั เดตคา่ ตาแหน่งหลายวธิ ีการ ทาให้การประมวลดว้ ยโปรแกรม MATLAB คอ่ นขา้ งลา่ ชา้
3.เพ่อื ให้ไดค้ วามเร็วในการประมวลผลผา่ นโปรแกรม MATLAB ควรทางานดว้ ยคาสัง่ ในการประมวลผล
เต็มประสิทธิภาพ
5.3 ข้อเสนอแนะ
1. สามารถนาวิธีการการพฒั นาวิธีการหาคา่ คงท่ที เี่ หมาะแบบวาฬ ไปประยกุ ตใ์ ชง้ านกบั ระบบอืน่ ๆทมี่ คี วาม
ซบั ซ้อนของระบบได้
2. สามารถนาวธิ ีการการพฒั นาวิธีการหาค่าคงทท่ี ีเ่ หมาะแบบวาฬ ไปใช้ในระบบทต่ี อ้ งการลดการเกิดปัญหา
การตดิ กบั ในพ้ืนท่เี ฉพาะแห่งได้
3. สามารถพฒั นาให้วธิ ีการแบบวาฬ ให้ใชเ้ วลาในการ ประมวลผลนอ้ ยลง
43
เอกสารอ้างองิ
[1] Ziegler,J. G. and Nichols,N.B., 1942, “Optimum Settings for Automatic Controllers”,
Transactions of the ASME, Vol.64, pp. 759-768.
[2] Panda, S., Sahu, B.K. and Mohanty, P.K., 2012, “Design and performance analysis of PID
controller for an automatic voltage regulator system using simplified particle swarm
optimization”, Journal of The Franklin Institute, Vol. 349, No. 8, 3 July 2012, pp. 2609-2625.
[3] Nasiri, J. and Khiyabani, F.M., 2018, “A whale optimization algorithm (WOA) approach for
clustering”, Cogent Mathematics & Statistics, Vol.5,8 May2018, pp. 1-13.
[4] Oguntoyinbo, O.J., 2009, “PID Control of Brushless DC Motor and Robot Trajectory Planning
and Simulation with MATLAB/SIMULINK”, Technology and Communication.
[5] สมเกียรติ แสงศรี, 2560, การออกแบบตวั ควบคุม PID อย่างเหมาะสมสาหรับตัวคุมค่าแรงดนั
อตั โนมตั ิด้วยการค้นหาแบบนกกาเหว่า, วิทยานิพนธป์ ริญญาวิศวกรรมศาสตรมหาบณั ฑติ
สาขาวชิ าวศิ วกรรมไฟฟ้าบณั ฑติ วิทยาลยั มหาวิทยาลยั เอเชียอาคเนย,์ หนา้ 1- 50
[6] สุพล กนั สิทธ์ิ, 2558, การปรับปรุงตัวควบคุมแบบพไี อดีให้เหมาะสมสาหรับระบบปรับ
แรงดันไฟฟ้าอัตโนมัติด้วยวิธีการ PSOGSA, วทิ ยานิพนธ์ปริญญาวศิ วกรรมศาสตรมหาบณั ฑติ
สาขาวชิ าวิศวกรรมไฟฟ้าและสารสนเทศ คณะวิศวกรรมศาสตร์ มหาวิทยาลยั เทคโนโลยี พระจอม
เกลา้ ธนบรุ ี, หนา้ 1 - 100.
[7] วภคพรรณ ป้องพาล, 2562, การปรับปรุงตัวควบคุมแบบพีไอดีให้เหมาะสมสาหรับระบบปรับ
แรงดันไฟฟ้าอัตโนมัติ ด้วยวิธีการ PSO/WOA, วิทยานิพนธ์ปริญญาวิศวกรรมศาสตรมหาบณั ฑิต
44
สาขาวชิ าวิศวกรรมไฟฟ้าและสารสนเทศ คณะวศิ วกรรมศาสตร์ มหาวิทยาลยั เทคโนโลยี พระจอม
เกลา้ ธนบุรี, หนา้ 12 - 26.
[8] คณาวุฒิ โพธิยา, 2562, เทคนิคข้ันตอนวิธีการหาค่าเหมาะสมท่ีสุดด้วยวิธีหมากรุก, วิทยานิพนธ์
ปริญญาวิศวกรรมศาสตรมหาบณั ฑิต สาขาวิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัย
มหาสารคาม, หนา้ 1- 90.
[9] Mohammed, H.M., Umar, S.U. and Rashid, T.A., 2019, “A Systematic and Meta-Analysis Survey
of Whale Optimization Algorithm”, Hindawi Computational Intelligence and Neuroscience,
Vol. 2019, 28 April 2019, pp. 1-25.
[10]Mirjali, S. and Lewis, S., 2016, “The Whale Optimization Algorithm”, Advances in Engineering
Software Journal, Vol. 95, 26 February 2016, pp. 51-67.
45
ภาคผนวก ก
Improve Whale Optimization Algorithm
46
1.คาส่ัง Main ของวิธีการการพฒั นาวธิ ีการหาค่าคงท่ที เี่ หมาะสมแบบวาฬ IWAO
clear all
% close all
clc
%hold on
SearchAgents_no=10; % Number of search agents is 50
Function_name='F1'; % Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper)
Max_iteration=18; % Maximum numbef of iterations
% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
lu=0;ub=30;
lr=[0 0.01];
for j=1:size(lr,2)
for i=1:1
[Best_score,Best_pos,WOA_cg_curve,WOA_Kp,WOA_Ki,WOA_Kd,best_pos_per_iter]=WOA(SearchA
gents_no,Max_iteration,lb,ub,dim,fobj,lr(j));
str_Round = int2str(0);
docname = strcat("WOA_Convergence",".txt");
fileID = fopen(docname,'w');
fprintf(fileID,'Cost : %f, \n ', WOA_cg_curve);
Kp(i,j)=WOA_Kp;
Ki(i,j)=WOA_Ki;
Kd(i,j)=WOA_Kd;
47
2. คาสั่งของวิธีการการพฒั นาวิธกี ารหาค่าคงท่ีทเ่ี หมาะสมแบบวาฬ IWAO
function
[Leader_score,Leader_pos,Convergence_curve,KP,KI,KD,best_pos_per_iter]=WOA(SearchAgents_no,M
ax_iter,lb,ub,dim,fobj,lr)
% initialize position vector and score for the leader
Leader_pos=zeros(1,dim);
Leader_score=inf; %change this to -inf for maximization problems
%Initialize the positions of search agents
Positions=initialization(SearchAgents_no,dim,ub,lb);
Convergence_curve=zeros(1,Max_iter);
t=1;
v_sgd=zeros(size(Positions,1),dim);
% Main loop
while t<Max_iter+1
for i=1:size(Positions,1)
% Return back the search agents that go beyond the boundaries of the search space
Flag4ub=Positions(i,:)>ub;
Flag4lb=Positions(i,:)<lb;
Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;
Positions(isnan(Positions))=0;
if sum(isnan(Positions))
flag=1;
end
% Calculate objective function for each search agent
[fitness,KP, KI, KD]=costfcn_WOA(Positions(i,:));
fitness_agent(i)=fitness;
if fitness < 5
48
Convergence_curve(i*t) = fitness;
% Convergence_curve(i*t) = fitness_agent(i);%????????
else
Convergence_curve(i*t) = 0;
end
% % Update the leader
if fitness<Leader_score % Change this to > for maximization problem
Leader_score=fitness; % Update alpha
Leader_pos=Positions(i,:);
end
end
a=2-t*((2)/Max_iter); % a decreases linearly fron 2 to 0 in Eq. (2.3)
% a2 linearly dicreases from -1 to -2 to calculate t in Eq. (3.12)
a2=-1+t*((-1)/Max_iter);
% Update the Position of search agents
for i=1:size(Positions,1)
r1=rand(); % r1 is a random number in [0,1]
r2=rand(); % r2 is a random number in [0,1]
A=2*a*r1-a; % Eq. (2.3) in the paper
C=2*r2; % Eq. (2.4) in the paper
b=1; % parameters in Eq. (2.5)
l=(a2-1)*rand+1; % parameters in Eq. (2.5)
p = rand(); % p in Eq. (2.6)
for j=1:size(Positions,2)
49
if p<0.5
if abs(A)>=1
rand_leader_index = floor(SearchAgents_no*rand()+1);
X_rand = Positions(rand_leader_index, :);
D_X_rand=abs(C*X_rand(j)-Positions(i,j)); % Eq. (2.7)
Positions(i,j)=X_rand(j)-A*D_X_rand+v_sgd(i,j); % Eq. (2.8)
v_sgd(isnan(v_sgd))=0;
if sum(isnan(Positions))
flag=1;
end
elseif abs(A)<1
D_Leader=abs(C*Leader_pos(j)-Positions(i,j)); % Eq. (2.1)
Positions(i,j)=Leader_pos(j)-A*D_Leader+v_sgd(i,j); % Eq. (2.2)
v_sgd(isnan(v_sgd))=0;
if sum(isnan(Positions))
flag=1;
end
end
elseif p>=0.5
distance2Leader=abs(Leader_pos(j)-Positions(i,j));
% Eq. (2.5)
Positions(i,j)=distance2Leader*exp(b.*l).*cos(l.*2*pi)+Leader_pos(j)+v_sgd(i,j);
v_sgd(isnan(v_sgd))=0;
if sum(isnan(Positions))
flag=1;
end
end
end
50
end
best_pos_per_iter(:,t)=Leader_pos;
Position_agent_per_iter(:,:,t)=Positions;
fitness_agent_per_iter(:,t)=fitness_agent(:);
% fitness_agent_per_iter(t,:)=fitness;
if t>=2
num=(-1*(fitness_agent_per_iter(:,t)-fitness_agent_per_iter(:,t-1)));
den=(Position_agent_per_iter(:,:,t)-Position_agent_per_iter(:,:,t-1));
% v_sgd=lr*num./den;
v_sgd=(0.1*v_sgd)+lr*num./den;
if lr == 0;
v_sgd(i,j)=0;
end
v_sgd(isnan(v_sgd))=0;
if sum(isnan(v_sgd))
flag=1;
end
end
t=t+1;
Convergence_curve(t)=Leader_score;
[t Leader_score];
end
51
ภาคผนวก ข
Whale Optimization Algorithm
52
1.คาส่ัง Main ของวิธีการการหาค่าคงทที่ เี่ หมาะสมแบบวาฬWAO
clear all
% close all
clc
hold on
SearchAgents_no=100; % Number of search agents
Function_name='F1'; % Name of the test function that can be from F1 to F23 (Table 1,2,3 in the paper)
Max_iteration=18; % Maximum numbef of iterations
% Load details of the selected benchmark function
[lb,ub,dim,fobj]=Get_Functions_details(Function_name);
for j=1:size(lr,2)
for i=1:1
[Best_score,Best_pos,WOA_cg_curve,best_pos_per_iter]=WOA(SearchAgents_no,Max_iteration,lb,ub,di
m,fobj);
semilogy(WOA_cg_curve,'Color','b')
% semilogy(WOA_cg_curve,'Color','r')
title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');
%
axis tight
grid on
box on
legend('WOA')
best_optimal(i,j)=Best_score;
53
display(['The best optimal value of the objective funciton found by IWOA is : ',
num2str(Best_score)]);
end
end
54
2. คาส่ังของวิธกี ารการหาค่าคงทท่ี เ่ี หมาะสมแบบวาฬWAO
function [Leader_score,Leader_pos,Convergence_curve,KP, KI,
KD,best_pos_per_iter]=WOA(SearchAgents_no,Max_iter,lb,ub,dim,fobj)
% initialize position vector and score for the leader
Leader_pos=zeros(1,dim);
Leader_score=1; %change this to -inf for maximization problems
%Initialize the positions of search agents
Positions=initialization(SearchAgents_no,dim,ub,lb);
Convergence_curve=zeros(1,Max_iter);
t=1;% Loop counter
% Main loop
while t<Max_iter
for i=1:size(Positions,1)
% Return back the search agents that go beyond the boundaries of the search space
Flag4ub=Positions(i,:)>ub;
Flag4lb=Positions(i,:)<lb;
Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb;
% Calculate objective function for each search agent
[fitness,KP, KI, KD]=costfcn_WOA(Positions(i,:))
if fitness < 5
Convergence_curve(i*t) = fitness;
else
Convergence_curve(i*t) = 0;
55
end
% Upd
% Update the leader
if fitness<Leader_score % Change this to > for maximization problem
Leader_score=fitness; % Update alpha
Leader_pos=Positions(i,:);
end
end
a=2-t*((2)/Max_iter); % a decreases linearly fron 2 to 0 in Eq. (2.3)
% a2 linearly dicreases from -1 to -2 to calculate t in Eq. (3.12)
a2=-1+t*((-1)/Max_iter);
% Update the Position of search agents
for i=1:size(Positions,1)
r1=rand(); % r1 is a random number in [0,1]
r2=rand(); % r2 is a random number in [0,1]
A=2*a*r1-a; % Eq. (2.3) in the paper
C=2*r2; % Eq. (2.4) in the paper
b=1; % parameters in Eq. (2.5)
l=(a2-1)*rand+1; % parameters in Eq. (2.5)
p = rand(); % p in Eq. (2.6)
for j=1:size(Positions,2)
if p<0.5
56
if abs(A)>=1
rand_leader_index = floor(SearchAgents_no*rand()+1);
X_rand = Positions(rand_leader_index, :);
D_X_rand=abs(C*X_rand(j)-Positions(i,j)); % Eq. (2.7)
Positions(i,j)=X_rand(j)-A*D_X_rand; % Eq. (2.8)
elseif abs(A)<1
D_Leader=abs(C*Leader_pos(j)-Positions(i,j)); % Eq. (2.1)
Positions(i,j)=Leader_pos(j)-A*D_Leader; % Eq. (2.2)
end
elseif p>=0.5
distance2Leader=abs(Leader_pos(j)-Positions(i,j));
% Eq. (2.5)
Positions(i,j)=distance2Leader*exp(b.*l).*cos(l.*2*pi)+Leader_pos(j);
end
end
end
t=t+1;
%Convergence_curve(t)=Leader_score;
best_pos_per_iter(t,:)=Leader_pos;
[t Leader_score]
end
57
ภาคผนวก ค
แบบจาลองผลตอบสนองชวั่ ขณะ
58
คาส่ังของแบบจาลองผลตอบสนองช่ัวขณะ
Amplifier_Num = [10];
Amplifier_den = [0.1 1];
Amplifier = tf(Amplifier_Num,Amplifier_den);
Exciter_Num = [1];
Exciter_den = [0.4 1];
Exciter = tf(Exciter_Num,Exciter_den);
Generator_Num = [1];
Generator_den = [1 1];
Generator = tf(Generator_Num,Generator_den);
Sensor_Num = [1];
Sensor_den = [0.01 1];
Sensor = tf(Sensor_Num,Sensor_den);
KP_IWOA= Kp(2);
KI_IWOA= Ki(2);
KD_IWOA= Kd(2);
% KP = Kp;
% KI = Ki;
% KD =Kd;
% KP = 40.8449;
% KI = 0.8631;
% KD = 10.1289;
%%%%%%%%%%%%%%%%%%%%%%%%
KP = 1.2/rand();
Temp = rand()
KI = 2*Temp();
KD = Temp/2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
59
KP_pso = 0.6198;
KI_pso = 0.1485;
KD_pso = 0.7817;
KP_WOA = Kp(1);
KI_WOA = Ki(1);
KD_WOA = Kd(1);
TF_Num = [13.11];
TF_Den = [0.00000266 0.0171 1];
TF = tf(TF_Num,TF_Den);
%%%%%%%%%%%%%%%%%%%
Transfer1 = series(Amplifier,Exciter);
Transfer2 = series(Transfer1,Generator);
%%%%%%%%%%IWAO%%%%%%%%%%%%%%%
PID_Num_IWOA = [KI_IWOA KP_IWOA+KD_IWOA];
PID_Den_IWOA = [1 0];
%%%%%%%%%%WOA%%%%%%%%%%%%%%%%%
PID_Num_WOA = [KI_WOA KP_WOA+KD_WOA];
PID_Den_WOA = [1 0];
%%%%%%%%%%ZN%%%%%%%%%%%%%%%%
PID_Num = [KI KP+KD];
PID_Den = [1 0];
%%%%%%%%%%%PSO%%%%%%%%%%%%%%%%
%PID_Controller = KP + KD*s + KI/s; %%% PID transfer function
PID_Controller_IWOA = tf(PID_Num_IWOA,PID_Den_IWOA);
PID_Controller_WOA = tf(PID_Num_WOA,PID_Den_WOA);
PID_Controller = tf(PID_Num,PID_Den);
%Openloop = series(PID_Controller,Transfer2);
Openloop_IWOA = series(PID_Controller_IWOA,TF);
Openloop_WOA = series(PID_Controller_WOA,TF);
Openloop = series(PID_Controller,TF);
60
AVR_tf_IWOA = feedback(Openloop_IWOA,1);
AVR_tf_WOA = feedback(Openloop_WOA,1);
AVR_tf = feedback(Openloop,1);
dt = 0.0005; %%% Step time division
t = 0:dt:0.01; %%% Total time interval
figure(1);
step(t,AVR_tf_IWOA,'b-',AVR_tf_WOA,'r--',AVR_tf,'y-.')
legend('IWOA','WOA','ZN','PSO')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Erra_IWOA = 0;
Erra_WOA = 0;
Erra = 0;
sta_IWOA = step(AVR_tf_IWOA,t);
sta_WOA = step(AVR_tf_WOA,t);
sta = step(AVR_tf,t);
for k_IWOA = 1:1:((0.01/dt)+1)
Erra_IWOA(k_IWOA)=abs(sta_IWOA(k_IWOA)-1);
end
for k_WOA = 1:1:((0.01/dt)+1)
Erra_WOA(k_WOA)=abs(sta_WOA(k_WOA)-1);
end
for k = 1:1:((0.01/dt)+1)
Erra(k)=abs(sta(k)-1);
end
figure(2)
plot(t,Erra_IWOA,'b-',t,Erra_WOA,'r--',t,Erra,'y-.')
title('|Error|')
xlabel('Time(sec)');
ylabel('Magnitude');
legend('IWOA','WOA','ZN','PSO')
61
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%
figure(3)
step(t,AVR_tf_IWOA,'b-')
legend('IWOA')
figure(4)
plot(t,Erra_IWOA,'b-')
title('|Error|')
xlabel('Time(sec)');
ylabel('Magnitude');
legend('IWOA')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(5);
step(t,AVR_tf_WOA,'r')
legend('WOA')
figure(6);
plot(t,Erra_WOA,'r-')
title('|Error|')
xlabel('Time(sec)');
ylabel('Magnitude');
legend('WOA')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(7);
step(t,AVR_tf,'y-')
legend('ZN')
figure(8);
plot(t,Erra,'y-')
title('|Error|')
xlabel('Time(sec)');
ylabel('Magnitude');
legend('ZN')
62
ประวัตผิ ้วู ิจัย
ชื่อ – สกุล นาย กรกฤต วติ ตินานนท์
วัน เดือน ปี เกิด 23 ตุลาคม 2538
ประวัตกิ ารศึกษา ประโยคมธั ยมศึกษาตอนปลาย.
ระดบั มธั ยมศึกษา โรงเรียนสวนกหุ ลาบวทิ ยาลยั นนทบุรี ปี การศึกษา 2557
ระดบั ปริญญาตรี วศิ วกรรมศาสตรบณั ฑติ
สาขา วิศวกรรมไฟฟ้าอตุ สาหากร
ระดบั ปริญญาโท มหาวิทยาลยั ธรรมศาสตร์ ศูนย์ รงั สิต การศกึ ษาปี 2560
วศิ วกรรมศาสตรมหาบณั ฑิต
สาขา วิศวกรรมไฟฟ้าและสารสนเทศ
มหาวิทยาลยั เทคโนโลยีพระจอมเกลา้ ธนบุรี การศึกษาปี 2564
ผลงานท่ไี ด้รับการตพี มิ พ์ รอสมั มนา วนั ท่ี 12-14 พฤษภาคม 2564