Constant Voltage Regulation Using Fuzzy Logic Control with Raspberry Pi Pico [LEP]

บทความตอนสุดท้ายของการทดลองใช้บอร์ด Raspberry Pi Pico มาควบคุมแรงดันให้คงที่ (Constant Voltage Regulation) โดยวิธีการควบคุมแบบฟัซซี่ลอจิก (Fuzzy Logic Control) จะเป็นการทดลองการทำงานของวงจรที่ออกแบบ การทดสอบโปรแกรมการทำงานแบบฟัซซี่ลอจิก และการตอบสนองต่อโหลดที่นำมาต่อทางด้านเอาต์พุต สำหรับสังเกตการทำงานและเป็นความรู้ในการนำไปประยุกต์ใช้งานต่างๆ ต่อไป

ในรูปที่ 1 แสดงลักษณะของวงจรที่ใช้ในการทดลอง โดยในการทดลองจะบอร์ด Raspberry Pi Pico จ่ายสัญญาณพัลซ์วิดธ์มอดูเลตชั่น (PWM) ออกมาที่ขา GP16 จากนั้นสัญญาณพัลซ์วิดธ์มอดูเลตชั่น จะถูกฟิลเตอร์ด้วยตัวต้านทาน R2 และตัวเก็บประจุ C1 ให้เป็นแรงดันไฟฟ้ากระแสตรงที่ตำแหน่งเอาต์พุต (Vo) จากนั้นจะป้อนกลับสัญญาณ (VFB) ด้วยตัวต้านทาน R1 เข้ามาที่ขา GP26 ซึ่งเป็นขารับสัญญาณอะนาลอก (A0) เพื่อประมวลผลให้ค่าแรงดันเอาต์พุตคงที่ตามที่กำหนด


ในรูปที่ 2 และรูปที่ 3 การทดลองที่ 1 แสดงลักษณะของการทดลองวงจรบนเบรดบอร์ดแบบง่าย จากนั้นจะวัดสัญญาณพัลซ์วิดธ์มอดูเลตชั่นที่ขา GP26 ขณะวงจรสแตนบายและสังเกตการทำงาน โดยความถี่สัญญาณพัลซ์วิดธ์มอดูเลตชั่นกำหนดไว้ที่ 35kHz สัญญาณพัลซ์วิดธ์ด้านบวกเท่ากับ 11.66uS และสัญญาณพัลซ์วิดธ์ด้านลบ 16.95uS และวัดค่าแรงดันเอาต์พุต (Vo) ได้ประมาณ 1.305V


ในรูปที่ 4 และรูปที่ 5 การทดลองที่ 2 เมื่อต่อตัวต้านทานโหลดเท่ากับ 3 กิโลโอห์มที่เอาต์พุตเพื่อสังเกตการตอบสนองการทำงานของสัญญาณพัลซ์วิดธ์ด้านบวก ซึ่งจะมีค่าเท่ากับ 13.03uS และค่าแรงดันเอาต์พุตยังคงเท่ากับ 1.305V


ในรูปที่ 6 และรูปที่ 7 การทดลองที่ 3 เมื่อเปลี่ยนตัวต้านทานโหลดเท่ากับ 1 กิโลโอห์มที่เอาต์พุตเพื่อสังเกตการตอบสนองการทำงานอีกครั้ง โดยขนาดของสัญญาณพัลซ์วิดธ์ด้านบวกจะมีค่าเท่ากับ 15.83uS และค่าแรงดันเอาต์พุตลดลงเล็กน้อยเท่ากับ 1.303V
// Pin Definitions const int SignalPWM = 16; // PIN 16 PWM // System Variables float targetVo = 80.0; // Desired Vo (e.g., in RPM or sensor ticks) float currentVo = 0.0; // Measured Vo from your sensor float currentPWM = 0.0; // Start at mid-range (0-255)
สำหรับการกำหนดค่าแรงดันเอาต์พุตให้ได้ตามที่ต้องการ สามารถเปลี่ยนค่าตัวแปรที่คำสั่ง float targetVo = 80.0; เช่น 100 หรือ 120 (โปรแกรมการทำงานทั้งหมดอยู่ในบทความนี้ คลิกที่นี่) โดยการกำหนดค่าตัวแปรเพิ่มขึ้นจะมีผลให้แรงดันเอาต์พุตเพิ่มขึ้นด้วยเช่นกัน ท้ายนี้ในการทดลองใช้บอร์ด Raspberry Pi Pico ควบคุมแรงดันให้คงที่ (Constant Voltage Regulation) โดยวิธีการควบคุมแบบฟัซซี่ลอจิก (Fuzzy Logic Control) คงพอจะเป็นแนวทางให้ผู้อ่านสามารถทดลองการทำงานด้วยตัวเองได้ง่ายขึ้นและนำไปประยุกต์ใช้งานต่างๆ ได้ตามความเหมาะสมครับ.
Reference
- https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html
- https://randomnerdtutorials.com/
- https://github.com/micropython/micropython/wiki
- https://pip-assets.raspberrypi.com/categories/610-raspberry-pi-pico/documents/RP-008355-DS-1-raspberry-pi-pico-python-sdk.pdf
- https://en.wikipedia.org/wiki/Fuzzy_control_system
- https://forum.arduino.cc/t/how-make-fuzzy-logic-coding-for-arduino-uno/282381/4
- https://github.com/alvesoaj/eFLL
- https://github.com/amimaro/FuzzyLibrary
- https://fuzzylite.com/
- https://fuzzylite.com/downloads/FuzzyLite-Libraries.pdf
- https://www.microjpm.com/products/ad52300/
- https://www.tinkercad.com/dashboard
- https://www.circuitbasics.com/arduino-thermistor-temperature-sensor-tutorial/
- https://gemini.google.com/