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) กันครับ.

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

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


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

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

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

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

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

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


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


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

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

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

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

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

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


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

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



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


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

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

รูปที่ 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); }


สำหรับโครงงานสวิตชิ่งโหมดเพาเวอร์ซัพพลายแบบเฟสชิฟฟูลบริดจ์คอนเวอร์เตอร์นี้ เป็นวงจรพื้นฐานแบบง่ายที่ใช้ในการทดลองและเรียนรู้เบื้องต้น เราจะสังเกตเห็นในการทดลองว่า การจ่ายกำลังทางด้านเอาต์พุตจะขึ้นอยู่กับการชิฟเฟสของสัญญาณขับไปที่ค่าต่างๆ ซึ่งจะต่างจากคอนเวอร์เตอร์แบบฟูลบริดจ์ทั่วไปจะใช้การปรับความกว้างของสัญญาพัลซ์วิดมอดูเลชั่นแทน และจากการที่แอดมินได้ทำการทดลองให้วงจรจ่ายกำลังไฟฟ้าที่ประมาณ 100 วัตต์ (ต่อเนื่อง) ความร้อนที่เกิดขึ้นกับตัวขับกำลังสวิตชิ่งค่อนข้างน้อย (เพาเวอร์มอสเฟตทั้ง 4 ตัว) ทั้งนี้รูปแบบการทำงานของคอนเวอร์เตอร์ในโครงงานจะเป็นสวิตชิ่งแบบ Zero Voltage Switching : ZVS ลักษณะหนึ่ง ซึ่งในการทดลองคงพอจะเป็นแนวทางเบื้องต้นสำหรับผู้อ่านได้บ้างนะครับ.
Reference
- https://www.ti.com/lit/an/slua107a/slua107a.pdf?ts=1630852518706&ref_url=https%253A%252F%252Fwww.google.com%252F
- https://www.ti.com/lit/ug/tidu248/tidu248.pdf?ts=1632393656043&ref_url=https%253A%252F%252Fwww.google.com%252F
- https://powersimtech.com/resources/application-notes/phase-shifted-full-bridge-dc-dc-power-supply/
- https://www.psma.com/sites/default/files/uploads/files/10%20PSMA%20PTR%202014_10_02%20Power%20Converter%20Topology%20Trends%20Mappus%20Fairchild.pdf
- https://www.mouser.com/pdfdocs/2-12.pdf
- https://www.vishay.com/docs/69747/answitch.pdf
- https://www.infineon.com/dgdl/Infineon-ReferenceDesign_REF_XDP_1000W_GAN_PSFB-ApplicationNotes-v01_00-EN.pdf?fileId=5546d462766cbe86017684fe578d548f
- https://www.mdpi.com/1996-1073/11/11/2868/pdf-vor
- https://www.microchip.com/stellent/groups/SiteComm_sg/documents/DeviceDoc/en550457.pdf
- https://www.youtube.com/watch?v=drfENwvTdvY
- https://forum.arduino.cc/t/phase-shift-pwm-signals/152633/7
- https://arduino.stackexchange.com/questions/51551/arduino-square-wave-phase-shift-by-270-degrees
- https://www.psma.com/sites/default/files/uploads/tech-forums-magnetics/presentations/is015-transformerdesignconsiderationforfullbridgephaseshift.pdf
- https://www.infineon.com/dgdl/Infineon-ApplicationNote_EVAL_800W_ZVS_CFD7-AN-v01_00-EN.pdf?fileId=5546d4625f96303e015fdaa8ad107208
- https://embedds.com/8-bit-timercounter0-operation-modes-part1/
- https://runtimemicro.com/Forums/RTM_TimerCalc/Examples-and-Tips/Arduino-Timer-Phase-Shifted-Square-Waves