Simple and Small Size Phase-Shifted Full-Bridge Converter By Using Arduino UNO

สำหรับการทดลองโครงงานนี้จะเป็นวงจรสวิตชิ่งโหมดเพาเวอร์ซัพพลายขนาดเล็ก ด้วยวงจรเฟสชิฟฟูลบริดจ์คอนเวอร์เตอร์ (Phase-Shifted Full-Bridge Converter : PSFB) อีกแบบหนึ่ง ซึ่งโดยปกติแล้ววงจรเฟสชิฟฟูลบริดจ์คอนเวอร์เตอร์นี้จะนิยมสร้างขนาดจะค่อนข้างใหญ่ ทั้งนี้เพราะความสามารถของโครงสร้างหลักวงจร (Topology) จะตอบสนองการจ่ายกำลังไฟฟ้าสูงๆ ได้ดี เมื่อเทียบกับโครงสร้างหลักที่เราคุ้นเคย เช่น ฟายแบก คอนเวอร์เตอร์ (Flyback converter), ฟอร์เวิร์ด คอนเวอร์เตอร์ (Forward converter), ฮาร์ฟบริดจ์ คอนเวอร์เตอร์ (Half-bridge converter) เป็นต้น และในโครงงานนี้เป็นการทดลองสร้างต้นแบบขนาดเล็ก (ประมาณ 100 วัตต์) เพื่อศึกษาการทำงานเบื้องต้น ซึ่งจะใช้วิธีการสร้างสัญญาณควบคุมด้วยบอร์ด Arduino UNO และทดลองด้วยระบบควบคุมการทำงานแบบเปิด (Open Loop Control) กันครับ.

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 1 จัดเตรียมอุปกรณ์สำหรับประกอบวงจร

รูปที่ 1 เริ่มเตรียมอุปกรณ์ต่างๆ สำหรับใช้ในการประกอบวงจร โดยในรูปจะเป็นอุปกรณ์ที่ใช้โดยหลักทั่วไป และในโครงงานจะเน้นเรื่องการใช้อุปกรณ์ที่สามารถหาซื้อได้ง่ายไม่เฉพาะหรือสามารถหาอุปกรณ์อื่นที่ทดแทนได้ง่าย

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 2 เริ่มประกอบวงจรบางส่วนก่อน

รูปที่ 2 เริ่มต้นประกอบอุปกรณ์บางส่วนก่อนที่เป็นหลัก เพื่อวางเลเอาต์อุปกรณ์บนบอร์ดทดลองให้เป็นระเบียบเรียบร้อย และสามารถเข้าใจลักษณะการทำงานของวงจรต่างๆ ได้ง่ายขึ้น

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 3 พันตัวเหนี่ยวนำทางด้านเอาต์พุต
Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 4 ลักษณะตัวเหนี่ยวนำทางด้านเอาต์พุตที่พันเสร็จแล้ว

รูปที่ 3 และรูปที่ 4 เป็นลักษณะตัวเหนี่ยวนำทางด้านเอาต์พุตที่พันเสร็จแล้ว ซึ่งจะใช้แกนสีดำขนาดเส้นผ่าศูนย์กลางวงนอกประมาณ 33mm พันด้วยลวดขนาดเบอร์ 21SWG ประมาณ 45 รอบ และจะได้ค่าประมาณ 180uH

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 5 มาพันหม้อแปลงสวิตชิ่งหลักต่อ

รูปที่ 5 เป็นลักษณะของหม้อแปลงสวิตชิ่งที่ใช้ โดยในโครงงานจะใช้แกนแบบ PQ-35 โดยพันขดลวดปฐมภูมิ (Primary winding) จำนวน 50 รอบ ด้วยลวดทองแดงเบอร์ 21SWG และพันขดลวดทุติยภูมิ (Secondary winding) แบบคู่ 7 รอบ

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 6 การนำลวดออกมาจากช่องด้านข้างหม้อแปลงสวิตชิ่ง

รูปที่ 6 แสดงการพันขดลวดปฐมภูมิและทุติยภูมิเรียบร้อยแล้ว ในบ๊อบบิ้น (Bobbin) จากนั้นจะนำลวดออกมาจากช่องด้านข้างหม้อแปลงสวิตชิ่ง

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 7 ลักษณะของหม้อแปลงสวิตชิ่งที่ทำเสร็จแล้ว

รูปที่ 7 เป็นลักษณะของตัวหม้อแปลงที่ทำเสร็จแล้วและสามารถนำไปประกอบวงจรใช้งานได้

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 8 ประกอบหม้อแปลงสวิตชิ่งบนบอร์ดหลัก

รูปที่ 8 แสดงลักษณะของการบัดกรีหม้อแปลงสวิตชิ่งและอุปกรณ์ต่างๆ เพิ่มเติม รวมทั้งตรวจสอบความถูกต้องของการประกอบอุปกรณ์ทั้งหมดไปควบคู่กัน

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 9 การเชื่อมต่อสายระหว่างบอร์ดควบคุมและบอร์ดขับกำลัง

รูปที่ 9 แสดงการเชื่อมต่อเข้าด้วยกันโดยใช้สายไฟขนาดเล็กระหว่างบอร์ดควบคุมและบอร์ดขับกำลัง ซึ่งจะมีด้วยกัน 3 ส่วนหลักคือ ส่วนแรกจะเป็นสัญญาณขับขาเกตให้วงจรฟลูบริดจ์คอนเวอร์เตอร์ 2 ช่อง ส่วนที่สองเป็นสัญญาณป้อนกลับค่ากระแสที่สำหรับหม้อแปลงสวิตชิ่ง และส่วนที่สามเป็นสัญญาณป้อนกลับเช่นกันเป็นค่าแรงดันทางด้านเอาต์พุต

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 10 บอร์ดควบคุมการทำงาน Arduino UNO
Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 11 ลักษณะการต่อไฟเลี้ยงสำหรับการทดลอง

รูปที่ 11 แสดงลักษณะของการทดลอง, การวัดสัญญาณในบอร์ดทดลอง และการจ่ายไฟเลี้ยงแรงดันต่ำสำหรับบอร์ดควบคุม รวมทั้งไฟเลี้ยงแรงดันสูงที่ส่วนของวงจรอินเวอร์เตอร์

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 12 ตัวต้านทานโหลดขนาดประมาณ 2.2 โอห์ม 60 วัตต์
Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 13 ลักษณะของการวัดกระแสเอาต์พุตในการทดลอง

รูปที่ 12 และรูปที่ 13 แสดงตัวต้านทานโหลดขนาดประมาณ 2.2 โอห์ม 60 วัตต์ ที่ใช้ในการทดสอบการจ่ายกำลังไฟฟ้าที่เอาต์พุต และลักษณะของการวัดกระแสทางด้านเอาต์พุตด้วยแคล้มมิเตอร์

imple and Small Size Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปแสดงแนวความคิดของการสร้างสัญญาณขับกำลัง Phase-Shifted Full-Bridge Converter : PSFB (Picture by : Ref.[3] P.44)

จากในรูปแสดงแนวความคิดของการส่งสัญญาณมายังตัวขับกำลังทั้ง 4 ตัว (Q1-Q4) ทำให้ทราบถึงช่วงเวลาการทำงานในแต่ละส่วนสำหรับคอนเวอร์เตอร์แบบ Phase-Shifted Full-Bridge Converter : PSFB เช่น Power หรือ Freewheel และการชิฟเฟสเพื่อปรับปริมาณการจ่ายกระแสให้กับขดลวดปฐมภูมิ (Np) ที่เกิดขึ้น

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 14 การทดลองที่ 1 ปรับเลื่อนเฟสสัญญาณระหว่างกันประมาณ 45 องศา

ในรูปที่ 14 เป็นการทดลองที่ 1 ด้วยการปรับการเฟสชิฟระหว่างสัญญาณด้านบนและด้านล่างให้ต่างกันประมาณ 45 องศา เพื่อสังเกตลักษณะการทำงานและผลที่ได้จากการทดลอง

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 15 ค่าแรงดันอินพุตสำหรับใช้ในการทดลอง

ในรูปที่ 15 เป็นค่าแรงดันอินพุตสำหรับใช้ในการทดลอง ซึ่งจะทดลองที่ประมาณ 150VDC ให้กับวงจรอินเวอร์เตอร์

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 16 ค่าแรงดันที่เอาต์พุตที่เกิดขึ้น

รูปที่ 16 ค่าแรงดันที่เอาต์พุตที่ได้ประมาณ 14.22V ซึ่งเกิดขึ้นจากการเฟสชิฟที่ 45 องศา

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 17 กระแสที่ไหลผ่านตัวต้านทานโหลด

รูปที่ 17 ค่ากระแสที่วัดได้ประมาณ 6.44A ตัวต้านทานโหลด จากการสังเกตในช่วงนี้การปรับชิฟเฟสที่ 45 องศา จะทำให้ปริมาณการจ่ายกำลังไฟฟ้าไปยังเอาต์พุตจะค่อนข้างสูง

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 18 แสดงลักษณะของการทดลองครั้งที่ 1
Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 19 การทดลองที่ 2 ปรับเลื่อนเฟสสัญญาณระหว่างกันประมาณ 90 องศา

ในรูปที่ 19 การทดลองที่ 2 ปรับชิฟเฟสสัญญาณระหว่างกันเพิ่มขึ้นมาที่ประมาณ 90 องศา จากนั้นสังเกตการทดลองที่เกิดขึ้นเพื่อเปรียบเทียบกับการทดลองครั้งที่ 1

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 20 ค่าแรงดันที่เอาต์พุตที่เกิดขึ้น

รูปที่ 20 ค่าแรงดันที่เอาต์พุตที่ได้จะมีค่าลดลง โดยจะมีค่า 8.43V โดยในการทดลองจะยังคงจ่ายไฟเลี้ยงที่ประมาณ 150VDC สำหรับวงจรอินเวอร์เตอร์เช่นเดิม

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 21 กระแสที่ไหลผ่านตัวต้านทานโหลดมีค่า 3.91A
Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 22 แสดงลักษณะของการทดลองครั้งที่ 2
Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 23 การทดลองที่ 3 ปรับเลื่อนเฟสสัญญาณระหว่างกันประมาณ 160 องศา

ในรูปที่ 23 เพิ่มการปรับชิฟเฟสของสัญญาณระหว่างกันประมาณ 160 องศา และสังเกตผลการทดลองอีกครั้ง

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 24 ค่าแรงดันที่เอาต์พุตที่เกิดขึ้นมีค่าลดลง
Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 25 กระแสที่ไหลผ่านตัวต้านทานโหลด

รูปที่ 25 แสดงปริมาณกระแสที่ลดลงตามสัดส่วน (ที่ไหลผ่านตัวต้านทานโหลด) จะมีค่าลดลงมาที่ 0.8A

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 26 แสดงลักษณะของการทดลองครั้งที่ 3

ในรูปที่ 26 จะแสดงลักษณะของการทดลองครั้งที่ 3 จากการทดลองพอจะสรุปเบื้องต้นได้ดังนี้คือ ปริมาณการจ่ายกำลังไฟฟ้าทางด้านเอาต์พุตจะขึ้นอยู่กับการชิฟเฟสของสัญญาณขับทั้ง 2 ส่วนโดย เมื่อเพิ่มการชิฟเฟสมากขึ้นจะเป็นผลให้การจ่ายกำลังไฟฟ้าทางด้านเอาต์พุตลดลง ในทางตรงข้ามเมื่อลดการชิฟเฟสลง การจ่ายกำลังไฟฟ้าทางด้านเอาต์พุตสูงขึ้น ซึ่งเป็นไปตามแนวความคิดของวงจรแบบนี้

Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 27 การอ่านค่าแรงดันเอาต์พุตและกระแสที่ไหลผ่านหม้อแปลงสวิตชิ่งที่เกิดขึ้น

รูปที่ 27 เป็นลักษณะของโปรแกรมที่ใช้ในการทดลอง โดยพัฒนาเพิ่มเติมเล็กน้อย ซึ่งใช้โปรแกรมอ้างอิงจากเว็บไซต์ลำดับที่ 11 โดยเพิ่มคำสั่งการแสดผลค่าแรงดันที่เอาต์พุตจาก ADC ช่อง A0 และค่ากระแสที่ไหลผ่านหม้อแปลงสวิตชิ่ง ADC ช่อง A1 แสดงในกรอบสีแดง

*** โปรแกรมอ้างอิง [Ref.11] สำหรับบอร์ด Arduino UNO : https://arduino.stackexchange.com/questions/51551/arduino-square-wave-phase-shift-by-270-degrees

void setup() {
  pinMode( 9 , OUTPUT );    // Arduino Pin  9 = OCR1A
  pinMode( 10 , OUTPUT );   // Arduino Pin 10 = OCR1B
  // Both outputs in toggle mode
  TCCR1A = _BV( COM1A0 ) |_BV( COM1B0 );
  // CTC Waveform Generation Mode
  // TOP=ICR1  
  // Note clock is left off for now
  TCCR1B = _BV( WGM13) | _BV( WGM12);
  OCR1A = 0;    // First output is the base, it always toggles at 0
}
// prescaler of 1 will get us 8MHz - 488Hz
// User a higher prescaler for lower freqncies

#define PRESCALER 1
#define PRESCALER_BITS 0x01
#define CLK 16000000UL    // Default clock speed is 16MHz on Arduino Uno

// Output phase shifted wave forms on Arduino Pins 9 & 10
// freq = freqnecy in Hertz (  122 < freq <8000000 )
// shift = phase shift in degrees ( 0 <= shift < 180 )
// Do do shifts 180-360 degrees, you could invert the OCR1B by doing an extra toggle using FOC
/// Note phase shifts will be rounded down to the next neared possible value so the higher the frequency, the less phase shift resolution you get. At 8Mhz, you can only have 0 or 180 degrees because there are only 2 clock ticks per cycle.  
int setWaveforms( unsigned long freq , int shift ) {
  // This assumes prescaler = 1. For lower freqnecies, use a larger prescaler.
  unsigned long clocks_per_toggle = (CLK / freq) / 2;    // /2 becuase it takes 2 toggles to make a full wave
  ICR1 = clocks_per_toggle;
  unsigned long offset_clocks = (clocks_per_toggle * shift) / 180UL; // Do mult first to save precision
  OCR1B= offset_clocks;
  // Turn on timer now if is was not already on
  // Clock source = clkio/1 (no prescaling)
  // Note: you could use a prescaller here for lower freqnencies
  TCCR1B |= _BV( CS10 ); 
}
// Demo by cycling through some phase shifts at 50Khz  
void loop() {
  setWaveforms( 40000 , 0 );
  delay(1000); 
  setWaveforms( 40000 , 90 );
  delay(1000); 
  setWaveforms( 40000 , 160 );
  delay(1000); 
}
Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 28 วงจรที่ออกแบบในส่วนของการขับกำลังเฟสชิฟฟูลบริดจ์คอนเวอร์เตอร์
Simple and Small Phase-Shifted Full-Bridge Converter By Using Arduino UNO
รูปที่ 29 วงจรในส่วนของบอร์ดควบคุม Arduino UNO

สำหรับโครงงานสวิตชิ่งโหมดเพาเวอร์ซัพพลายแบบเฟสชิฟฟูลบริดจ์คอนเวอร์เตอร์นี้ เป็นวงจรพื้นฐานแบบง่ายที่ใช้ในการทดลองและเรียนรู้เบื้องต้น เราจะสังเกตเห็นในการทดลองว่า การจ่ายกำลังทางด้านเอาต์พุตจะขึ้นอยู่กับการชิฟเฟสของสัญญาณขับไปที่ค่าต่างๆ ซึ่งจะต่างจากคอนเวอร์เตอร์แบบฟูลบริดจ์ทั่วไปจะใช้การปรับความกว้างของสัญญาพัลซ์วิดมอดูเลชั่นแทน และจากการที่แอดมินได้ทำการทดลองให้วงจรจ่ายกำลังไฟฟ้าที่ประมาณ 100 วัตต์ (ต่อเนื่อง) ความร้อนที่เกิดขึ้นกับตัวขับกำลังสวิตชิ่งค่อนข้างน้อย (เพาเวอร์มอสเฟตทั้ง 4 ตัว) ทั้งนี้รูปแบบการทำงานของคอนเวอร์เตอร์ในโครงงานจะเป็นสวิตชิ่งแบบ Zero Voltage Switching : ZVS ลักษณะหนึ่ง ซึ่งในการทดลองคงพอจะเป็นแนวทางเบื้องต้นสำหรับผู้อ่านได้บ้างนะครับ.

Reference

  1. https://www.ti.com/lit/an/slua107a/slua107a.pdf?ts=1630852518706&ref_url=https%253A%252F%252Fwww.google.com%252F
  2. https://www.ti.com/lit/ug/tidu248/tidu248.pdf?ts=1632393656043&ref_url=https%253A%252F%252Fwww.google.com%252F
  3. https://powersimtech.com/resources/application-notes/phase-shifted-full-bridge-dc-dc-power-supply/
  4. https://www.psma.com/sites/default/files/uploads/files/10%20PSMA%20PTR%202014_10_02%20Power%20Converter%20Topology%20Trends%20Mappus%20Fairchild.pdf
  5. https://www.mouser.com/pdfdocs/2-12.pdf
  6. https://www.vishay.com/docs/69747/answitch.pdf
  7. https://www.infineon.com/dgdl/Infineon-ReferenceDesign_REF_XDP_1000W_GAN_PSFB-ApplicationNotes-v01_00-EN.pdf?fileId=5546d462766cbe86017684fe578d548f
  8. https://www.mdpi.com/1996-1073/11/11/2868/pdf-vor
  9. https://www.microchip.com/stellent/groups/SiteComm_sg/documents/DeviceDoc/en550457.pdf
  10. https://www.youtube.com/watch?v=drfENwvTdvY
  11. https://forum.arduino.cc/t/phase-shift-pwm-signals/152633/7
  12. https://arduino.stackexchange.com/questions/51551/arduino-square-wave-phase-shift-by-270-degrees
  13. https://www.psma.com/sites/default/files/uploads/tech-forums-magnetics/presentations/is015-transformerdesignconsiderationforfullbridgephaseshift.pdf
  14. https://www.infineon.com/dgdl/Infineon-ApplicationNote_EVAL_800W_ZVS_CFD7-AN-v01_00-EN.pdf?fileId=5546d4625f96303e015fdaa8ad107208
  15. https://embedds.com/8-bit-timercounter0-operation-modes-part1/
  16. https://runtimemicro.com/Forums/RTM_TimerCalc/Examples-and-Tips/Arduino-Timer-Phase-Shifted-Square-Waves