Lecture_Buck Converter I
Page 1 of 1
Lecture_Buck Converter I
Buck Converter
รูปด้านล่างเป็นแนวคิด การต่อวงจร Buck Converter (วงจรทอนแรงดัน)
ซึ่งทำหน้าที่แปลงระดับแรงดันอินพุตให้ต่ำกว่าแรงดันเอาต์พุต
แหล่งจ่ายอาจจะเป็น Solar Cell, Fuel Cell, Battery หรือแหล่งจ่ายไฟตรงอื่น ๆ
CLICK Link
การทำงานในโหมดกระแสต่อเนื่อง (Continuous Conduction Mode:CCM)
มีสองสถานะคือ Switch ON (Closed) และ Switch OFF (Opened) แสดงดังรูปด้านล่าง
CLICK Link
รูปด้านล่างเป็นแนวคิด การต่อวงจร Buck Converter (วงจรทอนแรงดัน)
ซึ่งทำหน้าที่แปลงระดับแรงดันอินพุตให้ต่ำกว่าแรงดันเอาต์พุต
แหล่งจ่ายอาจจะเป็น Solar Cell, Fuel Cell, Battery หรือแหล่งจ่ายไฟตรงอื่น ๆ
วงจร Buck Converter เป็นวงจรพื้นฐาน นักศึกษาต้องเข้าใจการทำงานของวงจรเป็นอย่างดี
และจะเป็นพื้นฐานเพื่อศึกษาการทำงานของวงจรอื่นๆ ที่ยากขึ้น หรือศึกษาวงจรที่ Advance อื่นๆ ด้วยตนเองในอนาคต
หรือแม้แต่คิดค้นพัฒนาวงจรขึ้นมาเองก็ได้
และจะเป็นพื้นฐานเพื่อศึกษาการทำงานของวงจรอื่นๆ ที่ยากขึ้น หรือศึกษาวงจรที่ Advance อื่นๆ ด้วยตนเองในอนาคต
หรือแม้แต่คิดค้นพัฒนาวงจรขึ้นมาเองก็ได้
CLICK Link
การทำงานในโหมดกระแสต่อเนื่อง (Continuous Conduction Mode:CCM)
มีสองสถานะคือ Switch ON (Closed) และ Switch OFF (Opened) แสดงดังรูปด้านล่าง
CLICK Link
Last edited by Pompidou on Thu Jul 28, 2011 10:09 am; edited 6 times in total
วิธีการสวิตช์
วิธีการสวิตช์คือการควบคุมความกว้างของ Pulse ที่เราเรียกวิธีการนี้ว่า Pulse Width Modulation (PWM) แสดงแนวคิดการสร้างสัญญาณ PWM ดังรูปด้านล่าง
CLICK Link
หมายเหตุ: ไม่ได้มีใช้แต่เฉพาะวงจร Buck วงจร Switching อื่นๆ ในปัจจุบัน ก็ใช้วิธีการควบคุมการเปิดปิดสวิตช์แบบ PWM ทั้งหมด
วงจร Gate Drive ทำหน้าที่สองอย่างคือ
1). แปลงระดับไฟจากวงจรควบคุมไปขับขา Gate ของ Power Switch เช่นแปลงจาก Logic '1' => +15 V, Logic '0' => +0 V
2). แยก Ground จากวงจรควบคุมและวงจรกำลังออกจากกัน เพื่อป้องกันสัญญาณรบกวนและการลัดวงจร
หมายความว่า ถ้าไม่แยก Ground ระบบจะลัดวงจรมั่วไปหมดเลย
CLICK Link
หมายเหตุ: ไม่ได้มีใช้แต่เฉพาะวงจร Buck วงจร Switching อื่นๆ ในปัจจุบัน ก็ใช้วิธีการควบคุมการเปิดปิดสวิตช์แบบ PWM ทั้งหมด
วงจร Gate Drive ทำหน้าที่สองอย่างคือ
1). แปลงระดับไฟจากวงจรควบคุมไปขับขา Gate ของ Power Switch เช่นแปลงจาก Logic '1' => +15 V, Logic '0' => +0 V
2). แยก Ground จากวงจรควบคุมและวงจรกำลังออกจากกัน เพื่อป้องกันสัญญาณรบกวนและการลัดวงจร
หมายความว่า ถ้าไม่แยก Ground ระบบจะลัดวงจรมั่วไปหมดเลย
Last edited by Pompidou on Thu Jul 28, 2011 10:13 am; edited 3 times in total
สรุปสูตร
CLICK Link
จากสูตรด้านบนเราจะพบว่า ถ้า Switching Frequency fS สูงขึ้นค่า L และ C จะลดลง (ตัว L และ C จะตัวเล็กลง)
L จะกรองกระแส, ค่า L สูงขึ้นจะทำให้ Inductor Ripple Current ลดลง
C จะกรองแรงดัน, ค่า C สูงขึ้นจะทำให้ Output Ripple Voltage ลดลง
Last edited by Pompidou on Thu Jul 28, 2011 10:18 am; edited 4 times in total
Simulation Model
การจำลองการทำงาน (Simulation) มีโปรแกรมหลายตัวที่สามารถจำลองการทำงานของวงจร Power Electronics ได้
การ Simulation ใน Switching Power Electronics มี 3 Models คือ
1). Switching Model ซึ่งแสดงการทำงานเหมือนจริงทุกอย่าง
2). Averaged Model
3). Linear Model
ในที่นี้เราจะทำแต่ Switching Model ซึ่งมี Software Tool สำเร็จรูปหลายตัวเช่น
PSPICE, SABER, หรือ MATLAB/Simulalink/SimPowerSystems
ซึ่ง tool เหล่านี้คือหยิบตัว L, C, MOSFETs มาต่อ แล้วดูผลลัพธ์
ซึ่งเหมาะกับมือสมัครเล่น
ผมจะแสดงวิธีการสร้างสมการขึ้นมาเองจาก Switching State
(ซึ่งมืออาชีพเ [Professional] เขาทำกัน) ดังสมการด้านบนขณะ Switch ON/OFF
รูปด้านล่างเป็น Simulation Model ที่ทำใน MATLAB/Simulalink ของวงจร Buck Converter
CLICK Link
CLICK Link
CLICK Link
การ Simulation ใน Switching Power Electronics มี 3 Models คือ
1). Switching Model ซึ่งแสดงการทำงานเหมือนจริงทุกอย่าง
2). Averaged Model
3). Linear Model
ในที่นี้เราจะทำแต่ Switching Model ซึ่งมี Software Tool สำเร็จรูปหลายตัวเช่น
PSPICE, SABER, หรือ MATLAB/Simulalink/SimPowerSystems
ซึ่ง tool เหล่านี้คือหยิบตัว L, C, MOSFETs มาต่อ แล้วดูผลลัพธ์
ซึ่งเหมาะกับมือสมัครเล่น
ผมจะแสดงวิธีการสร้างสมการขึ้นมาเองจาก Switching State
(ซึ่งมืออาชีพเ [Professional] เขาทำกัน) ดังสมการด้านบนขณะ Switch ON/OFF
รูปด้านล่างเป็น Simulation Model ที่ทำใน MATLAB/Simulalink ของวงจร Buck Converter
CLICK Link
CLICK Link
CLICK Link
Last edited by Pompidou on Thu Jul 28, 2011 10:20 am; edited 4 times in total
PWM
ขั้นแรก แสดงการสร้างสัญญาณ PWM
วิธีการ run Program มี 3 step
1). run parameter
%Parameter for Buck Converter
fS = 20e3 %Switching Frequency [Hertz]
vPeak = 10 %Peak Volt of carrier signal [V]
L = 100e-6 %H
rL = 0.005 %Ohm
C = 10e-6 %F
CLICK Link
2). run Simulink Model
3). run Plot Graph
t_min = 0
t_max = 0.0005
figure(1)
subplot(2,1,1)
plot(time,vCarrier,'black','LineWidth',3);
grid on;
ylabel('PWM modulation [V]','FontSize',18);
xlabel('time [s]','FontSize',18);
axis ([t_min t_max 0 11]);
hold on
plot(time,vCont,'blue','LineWidth',5);
hold off
subplot(2,1,2)
plot(time,PWM,'red','LineWidth',3);
grid on;
ylabel('Gate Drive','FontSize',18);
xlabel('time [s]','FontSize',18);
axis ([t_min t_max 0 1.2]);
รูปด้านล่างเป็นการแสดงวิธีการปรับ duty cycle (D) จาก 50% ไปเป็น 80%
CLICK Link
วิธีการ run Program มี 3 step
1). run parameter
%Parameter for Buck Converter
fS = 20e3 %Switching Frequency [Hertz]
vPeak = 10 %Peak Volt of carrier signal [V]
L = 100e-6 %H
rL = 0.005 %Ohm
C = 10e-6 %F
CLICK Link
2). run Simulink Model
3). run Plot Graph
t_min = 0
t_max = 0.0005
figure(1)
subplot(2,1,1)
plot(time,vCarrier,'black','LineWidth',3);
grid on;
ylabel('PWM modulation [V]','FontSize',18);
xlabel('time [s]','FontSize',18);
axis ([t_min t_max 0 11]);
hold on
plot(time,vCont,'blue','LineWidth',5);
hold off
subplot(2,1,2)
plot(time,PWM,'red','LineWidth',3);
grid on;
ylabel('Gate Drive','FontSize',18);
xlabel('time [s]','FontSize',18);
axis ([t_min t_max 0 1.2]);
รูปด้านล่างเป็นการแสดงวิธีการปรับ duty cycle (D) จาก 50% ไปเป็น 80%
CLICK Link
Last edited by Pompidou on Thu Jul 28, 2011 11:24 am; edited 5 times in total
จำลองการทำงาน
กำหนด Spec. ของวงจร Buck Converter ดังนี้
Input Voltage vS = 24 V
L = 100 uH
rL = 0.005
C = 10 uF
Switching Frequency fS = 20 kHz
vPeak (vCarrier) = 10 V
fS = 20e3 %Switching Frequency [Hertz]
vPeak = 10 %Peak Volt of carrier signal [V]
L = 100e-6 %H
rL = 0.005 %Ohm
C = 10e-6 %F
ผลการจำลองการทำงานแสดงดังรูปด้านล่าง ที่ duty cycle คงที่ 50% (vCont = 5 V)
มีโหลดคือตัวต้านทานคงที่ R_Load = 0.5 Ohm
มี Matlab Code สำหรับ Plot กราฟคือ
t_min = 0
t_max = 0.001
figure(2)
subplot(3,1,1)
plot(time,PWM,'black','LineWidth',3);
grid on;
ylabel('PWM','FontSize',14);
axis ([t_min t_max 0 1.2]);
subplot(3,1,2)
plot(time,iL,'red','LineWidth',3);
grid on;
ylabel('iL [A]','FontSize',14);
axis ([t_min t_max 0 30]);
subplot(3,1,3)
plot(time,vO,'blue','LineWidth',3);
grid on;
ylabel('vO [V]','FontSize',14);
xlabel('time [s]','FontSize',18);
axis ([t_min t_max 0 15]);
t_min = 0.0008
t_max = 0.001
figure(3)
subplot(2,1,1)
plot(time,iL,'red','LineWidth',3);
grid on;
ylabel('iL [A]','FontSize',18);
axis ([t_min t_max 21 26]);
subplot(2,1,2)
plot(time,vO,'blue','LineWidth',3);
grid on;
ylabel('vO [V]','FontSize',18);
xlabel('time [s]','FontSize',18);
axis ([t_min t_max 11 13]);
CLICK Link
จากผลการ Simulation ด้านบน
จะสังเกตุเห็นได้ว่าก่อนการทำงานเรากำหนดให้ไม่มีพลังงานตกค้างใน L และ C
วงจรมีค่า duty cycle คงที่ที่ 50% วงจรเริ่ม start โดยที่ iL ค่อยๆ เพิ่มขึ้น
จาก O A ขึ้นไปเรื่อยๆ จนถึงจุด Steady-State ที่ค่า iL(AV) = 23.5 A
เช่นเดียวกันแรงดันเอาต์พุต vO ค่อยๆ ชาร์จเพิ่มขึ้นจาก 0 V จนถึงค่า
vO(AV) = 12 V ที่ได้ค่านี้เพราะ D = 50% (12 V = 0.5*24 V)
จากผลการคำนวณ Inductor Ripple Current = 3 A ซึ่งเท่ากับผลการ Simulation
ส่วนผลการ Simulation ได้ Output Ripple Voltage = 1.1 V
ซึ่งคลาดเคลื่อนจากคำนวณเล็กน้อย จงอธิบายว่าเกิดจากอะไร จึงเกิดการคลาดเคลื่อน?
แบบฝึกให้ที่ 1
จากผลการจำลองการทำงานของวงจรด้านบน เพื่อเข้าสู่ Steady-State วงจรใช้เวลาประมาณ 0.7 ms
ทำไมวงจรต้องใช้เวลา 0.7 ms ขึ้นอยู่กับตัวแปรอะไรบ้าง จงอธิบาย
Input Voltage vS = 24 V
L = 100 uH
rL = 0.005
C = 10 uF
Switching Frequency fS = 20 kHz
vPeak (vCarrier) = 10 V
fS = 20e3 %Switching Frequency [Hertz]
vPeak = 10 %Peak Volt of carrier signal [V]
L = 100e-6 %H
rL = 0.005 %Ohm
C = 10e-6 %F
ผลการจำลองการทำงานแสดงดังรูปด้านล่าง ที่ duty cycle คงที่ 50% (vCont = 5 V)
มีโหลดคือตัวต้านทานคงที่ R_Load = 0.5 Ohm
มี Matlab Code สำหรับ Plot กราฟคือ
t_min = 0
t_max = 0.001
figure(2)
subplot(3,1,1)
plot(time,PWM,'black','LineWidth',3);
grid on;
ylabel('PWM','FontSize',14);
axis ([t_min t_max 0 1.2]);
subplot(3,1,2)
plot(time,iL,'red','LineWidth',3);
grid on;
ylabel('iL [A]','FontSize',14);
axis ([t_min t_max 0 30]);
subplot(3,1,3)
plot(time,vO,'blue','LineWidth',3);
grid on;
ylabel('vO [V]','FontSize',14);
xlabel('time [s]','FontSize',18);
axis ([t_min t_max 0 15]);
t_min = 0.0008
t_max = 0.001
figure(3)
subplot(2,1,1)
plot(time,iL,'red','LineWidth',3);
grid on;
ylabel('iL [A]','FontSize',18);
axis ([t_min t_max 21 26]);
subplot(2,1,2)
plot(time,vO,'blue','LineWidth',3);
grid on;
ylabel('vO [V]','FontSize',18);
xlabel('time [s]','FontSize',18);
axis ([t_min t_max 11 13]);
CLICK Link
จากผลการ Simulation ด้านบน
จะสังเกตุเห็นได้ว่าก่อนการทำงานเรากำหนดให้ไม่มีพลังงานตกค้างใน L และ C
วงจรมีค่า duty cycle คงที่ที่ 50% วงจรเริ่ม start โดยที่ iL ค่อยๆ เพิ่มขึ้น
จาก O A ขึ้นไปเรื่อยๆ จนถึงจุด Steady-State ที่ค่า iL(AV) = 23.5 A
เช่นเดียวกันแรงดันเอาต์พุต vO ค่อยๆ ชาร์จเพิ่มขึ้นจาก 0 V จนถึงค่า
vO(AV) = 12 V ที่ได้ค่านี้เพราะ D = 50% (12 V = 0.5*24 V)
จากผลการคำนวณ Inductor Ripple Current = 3 A ซึ่งเท่ากับผลการ Simulation
ส่วนผลการ Simulation ได้ Output Ripple Voltage = 1.1 V
ซึ่งคลาดเคลื่อนจากคำนวณเล็กน้อย จงอธิบายว่าเกิดจากอะไร จึงเกิดการคลาดเคลื่อน?
แบบฝึกให้ที่ 1
จากผลการจำลองการทำงานของวงจรด้านบน เพื่อเข้าสู่ Steady-State วงจรใช้เวลาประมาณ 0.7 ms
ทำไมวงจรต้องใช้เวลา 0.7 ms ขึ้นอยู่กับตัวแปรอะไรบ้าง จงอธิบาย
Last edited by Pompidou on Thu Jul 28, 2011 12:39 pm; edited 3 times in total
ปรับค่า L
เพื่อพิสูจน์ทฤษฎี จะทดลองปรับค่า L
สมการของ Buck ถ้าค่า L สูงขึ้นจะทำให้
Inductor ripple current และ Output ripple voltage ลดลง
จากการ Simulation ก่อนหน้านี้ค่า L = 100 uH
เราจะทดลองปรับค่า L สูงขึ้นเป็น 200 uH ส่วน Parameter ตัวอื่นยังเท่าเดิม
กำหนด Spec. ของวงจร Buck Converter ดังนี้
Input Voltage vS = 24 V
L = 200 uH
rL = 0.005
C = 10 uF
Switching Frequency fS = 20 kHz
vPeak (vCarrier) = 10 V
vCont = 5 V (d = 0.5)
R_Load = 0.5 Ohm
%Parameter for Buck Converter
fS = 20e3 %Switching Frequency [Hertz]
vPeak = 10 %Peak Volt of carrier signal [V]
L = 200e-6 %H
rL = 0.005 %Ohm
C = 10e-6 %F
C = 10e-6 %F
มี Matlab Code สำหรับ Plot กราฟคือ
t_min = 0.0018
t_max = 0.002
figure(3)
subplot(2,1,1)
plot(time,iL,'red','LineWidth',3);
grid on;
ylabel('iL [A]','FontSize',18);
axis ([t_min t_max 21 26]);
subplot(2,1,2)
plot(time,vO,'blue','LineWidth',3);
grid on;
ylabel('vO [V]','FontSize',18);
xlabel('time [s]','FontSize',18);
axis ([t_min t_max 11 13]);
ได้ผลการจำลองการทำงานดังรูปด้านล่าง สังเกตุได้ว่า
Inductor ripple current และ Output ripple voltage ลดลงจริงเป็นไปตามทฤษฎี
CLICK Link
สมการของ Buck ถ้าค่า L สูงขึ้นจะทำให้
Inductor ripple current และ Output ripple voltage ลดลง
จากการ Simulation ก่อนหน้านี้ค่า L = 100 uH
เราจะทดลองปรับค่า L สูงขึ้นเป็น 200 uH ส่วน Parameter ตัวอื่นยังเท่าเดิม
กำหนด Spec. ของวงจร Buck Converter ดังนี้
Input Voltage vS = 24 V
L = 200 uH
rL = 0.005
C = 10 uF
Switching Frequency fS = 20 kHz
vPeak (vCarrier) = 10 V
vCont = 5 V (d = 0.5)
R_Load = 0.5 Ohm
%Parameter for Buck Converter
fS = 20e3 %Switching Frequency [Hertz]
vPeak = 10 %Peak Volt of carrier signal [V]
L = 200e-6 %H
rL = 0.005 %Ohm
C = 10e-6 %F
C = 10e-6 %F
มี Matlab Code สำหรับ Plot กราฟคือ
t_min = 0.0018
t_max = 0.002
figure(3)
subplot(2,1,1)
plot(time,iL,'red','LineWidth',3);
grid on;
ylabel('iL [A]','FontSize',18);
axis ([t_min t_max 21 26]);
subplot(2,1,2)
plot(time,vO,'blue','LineWidth',3);
grid on;
ylabel('vO [V]','FontSize',18);
xlabel('time [s]','FontSize',18);
axis ([t_min t_max 11 13]);
ได้ผลการจำลองการทำงานดังรูปด้านล่าง สังเกตุได้ว่า
Inductor ripple current และ Output ripple voltage ลดลงจริงเป็นไปตามทฤษฎี
CLICK Link
Last edited by Pompidou on Thu Jul 28, 2011 1:55 pm; edited 5 times in total
ปรับค่า C
เพื่อพิสูจน์ทฤษฎี จะทดลองปรับค่า C
จากสมการของ Buck Converter
ถ้าค่า C สูงขึ้นจะทำให้
Output ripple voltage ลดลง
แต่ไม่มีผลต่อ Inductor ripple current
จากการ Simulation ก่อนหน้านี้ค่า C = 10 uF
เราจะทดลองปรับค่า C สูงขึ้นเป็น 300 uF ส่วน Parameter ตัวอื่นยังเท่าเดิม
กำหนด Spec. ของวงจร Buck Converter ดังนี้
Input Voltage vS = 24 V
L = 100 uH
rL = 0.005
C = 300 uF
Switching Frequency fS = 20 kHz
vPeak (vCarrier) = 10 V
vCont = 5 V (d = 0.5)
R_Load = 0.5 Ohm
มี Matlab Code คือ
%Parameter for Buck Converter
fS = 20e3 %Switching Frequency [Hertz]
vPeak = 10 %Peak Volt of carrier signal [V]
L = 100e-6 %H
rL = 0.005 %Ohm
C = 300e-6 %F
ได้ผลการ Simulation ดังรูปด้านล่าง
CLICK Link
จากผลการ Simulation เราพบว่า ค่า C สูงขึ้น ทำให้ Output Ripple Voltage ลดลงจริง
และไม่มีผลต่อ Inductor Ripple Current
จากสมการของ Buck Converter
ถ้าค่า C สูงขึ้นจะทำให้
Output ripple voltage ลดลง
แต่ไม่มีผลต่อ Inductor ripple current
จากการ Simulation ก่อนหน้านี้ค่า C = 10 uF
เราจะทดลองปรับค่า C สูงขึ้นเป็น 300 uF ส่วน Parameter ตัวอื่นยังเท่าเดิม
กำหนด Spec. ของวงจร Buck Converter ดังนี้
Input Voltage vS = 24 V
L = 100 uH
rL = 0.005
C = 300 uF
Switching Frequency fS = 20 kHz
vPeak (vCarrier) = 10 V
vCont = 5 V (d = 0.5)
R_Load = 0.5 Ohm
มี Matlab Code คือ
%Parameter for Buck Converter
fS = 20e3 %Switching Frequency [Hertz]
vPeak = 10 %Peak Volt of carrier signal [V]
L = 100e-6 %H
rL = 0.005 %Ohm
C = 300e-6 %F
ได้ผลการ Simulation ดังรูปด้านล่าง
CLICK Link
จากผลการ Simulation เราพบว่า ค่า C สูงขึ้น ทำให้ Output Ripple Voltage ลดลงจริง
และไม่มีผลต่อ Inductor Ripple Current
Similar topics
» Lecture_Buck Converter II
» Lecture_Buck Converter III
» Lecture_Boost Converter I
» Lecture_Boost Converter II
» Lecture_Boost Converter III
» Lecture_Buck Converter III
» Lecture_Boost Converter I
» Lecture_Boost Converter II
» Lecture_Boost Converter III
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum
|
|