Fan speed using Fuzzy logic controller based on Arduino UNO

โครงงานนี้เป็นการควบคุมความเร็วของพัดลมขนาดเล็ก ที่เราจะเห็นคล้ายกับพัดลมในซีพียูคอมพิวเตอร์ทั่วไป ซึ่งมอเตอร์ลักษณะนี้จะเป็นมอเตอร์ไฟฟ้ากระแสตรงแบบไม่ใช้แปรงถ่าน (BLDC Motor) แต่ที่เป็นจุดเด่นอีกอย่างหนึ่งในตัวมอเตอร์นี้คือ จะมีสัญญาณที่เกิดขึ้นจากการหมุน (Tachogenerator signal) โดยจะเป็นสัดส่วนระหว่างความเร็วรอบต่อความที่ถี่เกิดขึ้นในลักษณะพัลซ์สี่เหลี่ยม และเราสามารถนำสัญญาณที่เกิดขึ้นนี้มาตรวจสอบความเร็วรอบ สำหรับการป้อนกลับ (Feedback Signal) เพื่อให้ตัวประมวลผลต่างๆ เช่น บอร์ด Arduino สามารถควบคุมความเร็วได้ตามต้องการ

Fan speed using Fuzzy logic controller based on Arduino UNO
รูปที่ 1 ลักษณะการต่อวงจรบนบอร์ดและอุปกรณ์ต่างๆ

จากรูปข้างบนที่ 1 จะเป็นลักษณะของบอร์ดทดลองและตัวพัดลมที่ใช้ในการทดลอง ซึ่งในการทดลองนี้จะใช้ตัวประมวลผล Arduino UNO และใช้วงจรขับกำลังให้กับพัดลม (บอร์ดทดลองอเนกประสงค์สีเหลือง) ด้วยเพาเวอร์มอสเฟตชนิด P-channel และใช้วิธีสวิตชิ่งที่ความถี่สูงเพื่อสร้างแรงดันเอาต์พุตให้สามารถความคุมความเร็วของตัวพัดลม

Fan speed using Fuzzy logic controller based on Arduino UNO
รูปที่ 2 แสดงพัดลมขนาดเล็กสำหรับทดลอง

รูปที่ 2 ตัวพัดลมที่ใช้จะเป็นแบบไม่ใช้แปรงถ่าน BLDC Motor ขนาด 12V/0.55A และมีสายไฟสำหรับให้เชื่อมต่อด้วยกัน 3 เส้น คือสีแดงจะเป็นไฟเลี้ยงขั้วบวก สายสีดำจะเป็นขั้วลบ ซึ่งทั้งสองเส้นนี้จะเป็นไฟเลี้ยงโดยตรงให้กับตัวมอเตอร์พัดลม และสายไฟเส้นสีขาวจะเป็นสายสัญญาณพัลซ์ จะต้องต่อกับตัวต้านทานพูลอัพประมาณ 1K-6.8K กับไฟเลี้ยง 5V เพื่อสร้างเป็นสัญญาณพัลซ์ให้เกิดขึ้น

Fan speed using Fuzzy logic controller based on Arduino UNO
รูปที่ 3 บอร์ดประมวลผล Arduino UNO

รูปที่ 3 สำหรับบอร์ด Arduino UNO ที่ใช้ในการประมวลผลนั้น จะทำหน้าที่รับสัญญาณพัลซ์ที่เกิดขึ้นจากตัวพัดลม ซึ่งเป็นสัญญาณป้อนกลับของระบบเข้าที่ขา PIN2 และจะจ่ายสัญญาณควบคุมกำลังในลักษณะของพัลซ์วิดมอดูเลต (PWM signal) ความถี่สูงเช่นกัน เพื่อปรับความเร็วของพัดลมให้ได้ค่าที่ต้องการ และไฟเลี้ยงของพัดลมนั้นจะนำมาจากจุดต่อที่ตำแหน่ง VIN จากตัวบอร์ดด้วยเช่นกัน

Fan speed using Fuzzy logic controller based on Arduino UNO
รูปที่ 4 บอร์ดควบคุมกำลังปรับความเร็วให้กับตัวพัดลม

รูปที่ 4 ลักษณะการต่อวงจรบนบอร์ดอเนกประสงค์ในส่วนของการควบคุมกำลังให้กับตัวพัดลม และส่วนของการสร้างสัญญาณพัลซ์จากตัวพัดลม (Tachogenerator signal) สำหรับป้อนกลับให้กับตัวประมวลผล

Fan speed using Fuzzy logic controller based on Arduino UNO
รูปที่ 5 วงจรที่ออกแบบและใช้ในการทดลอง

ในรูปที่ 5 แสดงวงจรในการทดลองจะเป็นการต่อใช้งานสำหรับปรับความเร็วให้กับตัวพัดลม โดยจะใช้ไฟเลี้ยง (VCC) ให้กับวงจรที่ 12V/2A และจะสังเกตว่าที่ตัวมอสเฟต Q2, D1, L1 และ C1 จะต่อกันในลักษณะของวงจรลดทอนแรงดัน (Buck Converter) โดยค่าแรงดันที่เอาต์พุตจะถูกกำหนดด้วยสัญญาณพัลซ์วิดธ์มอดูเลตชั่น (PWM Signal) จากบอร์ดประมวลผล Arduino ที่ขา 3

Fan speed using Fuzzy logic controller based on Arduino UNO
รูปที่ 6 ผลการทดลองครั้งที่ 1 กำหนดค่า Setpoint = 70

จากในรูปที่ 6 จะผลการทดลองของการควบคุมความเร็วของพัดลมโดยปรับค่า SP (Setpoint) เท่ากับ 70 ค่าสัญญาณป้อนกลับ PV (Process Value) มีค่าใกล้เคียง 70 และค่าความผิดพลาด Err ที่เกิดขึ้นเมื่อระบบกำลังทำงาน

Fan speed using Fuzzy logic controller based on Arduino UNO
รูปที่ 7 ผลการทดลองครั้งที่ 2 กำหนดค่า Setpoint = 100

รูปที่ 7 ถัดมาเป็นการเปลี่ยนค่า SP (Setpoint) ใหม่เป็น 100 เพื่อทดสอบการในลักษณะเดิมและสังเกตการตอบสนองของระบบ ซึ่งจะเห็นค่า Err มีค่าผิดพลาดไม่เกิน 2%

Fan speed using Fuzzy logic controller based on Arduino UNO
รูปที่ 8 ผลการทดลองครั้งที่ 3 กำหนดค่า Setpoint = 125

รูปที่ 8 ในลักษณะเดียวกันด้วยการเปลี่ยนค่า SP (Setpoint) ใหม่เป็น 125 ซึ่งค่านี้จะทำให้ความเร็วรอบของพัดลมจะเพิ่มสูงขึ้น โดยสังเกตจากค่า PWM ที่อยู่ใกล้กับค่า Err ส่วนข้างล่างนี้จะเป็นวิดีโอแสดงการทดสอบการทำงานต่างๆ ที่เกิดขึ้น

Referance

  1. https://www.mouser.de/pdfdocs/BuckConverterDesignNote.pdf
  2. https://www.baldengineer.com/pwm-3-pin-pc-fan-arduino.html
  3. https://www.site.uottawa.ca/~petriu/Fuzzy-tutor.PDF
  4. https://www.researchgate.net/publication/225872318_Fundamentals_of_Fuzzy_Logic_Control_-_Fuzzy_Sets_Fuzzy_Rules_and_Defuzzifications
  5. https://research.iaun.ac.ir/pd/naghsh/pdfs/UploadFile_4810.pdf
  6. https://en.wikipedia.org/wiki/Fuzzy_control_system
  7. http://www.eletrica.ufpr.br/graduacao/e-books/Fuzzy%20Logic.pdf
  8. https://cse.iitkgp.ac.in/~dsamanta/courses/sca/resources/slides/FL-04%20FLC.pdf
  9. https://www.youtube.com/watch?v=R4TPFpYXvS0
  10. https://www.youtube.com/watch?v=ZirxWdOcn8c
  11. https://www.youtube.com/watch?v=OnJRw2EP3_g
  12. https://www.youtube.com/watch?v=w846DgOGAW8&t=4s
  13. https://www.youtube.com/watch?v=RDJWlMiPSWQ&t=83s