หุ่นยนต์เดินตามเส้น P Control ตอนที่ 2 นะออเจ้า

        การนำเซนเซอร์มาใช้งานและวิธีการเขียนโปรแกรมเพื่อสั่งงานหุ่นยนต์ให้เดินตามเส้นโดยใช้เทคนิค P Control


อ้างอิงจาก https://i.ytimg.com/vi/ZQjmUt3_ffM/maxresdefault.jpg

หุ่นยนต์เดินตามเส้นโดยใช้ P Control 
        การทำให้หุ่นยนต์เดินตามเส้นเราจะใช้เซนเซอร์แบบอนาล็อกซึ่งมี 2 ตัวเลือกคือ
❶ อินฟาเรดเซนเซอร์(Infrared sensor) 

❷ เซนเซอร์วัดความสว่างของแสง(LDR Sensor)

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


สูตรในการหา error 
error = ค่าตรงกลางระหว่างขาวกับดำ-ค่าที่วัดได้จากเซนเซอร์
ค่าตรงกลางระหว่างขาวกับดำ = ค่าที่อ่านจากดำ+(ค่าที่อ่านจากขาว - ค่าที่อ่านจากดำ/2)


โปรแกรมเพื่อสั่งงานหุ่นยนต์ให้เดินตามเส้นโดยใช้เทคนิค P Control

        ปรับจูนระบบให้หุ่นยนต์ทำงานให้ดียิ่งขึ้นโดยการใส่เทอม I และ D เข้าไปในสมการด้วย เทอม I จะเป็นการนำเอา Error สะสมของระบบเข้ามาคำนวณด้วย ส่วนเทอม D ช่วยให้ลดการแกว่งของระบบทำให้ระบบทำงานแบบมีเสถียรภาพมากขึ้น

*** การประยุกต์ใช้งานบางครั้งอาจใช้เพียงหนึ่งถึงสองรูปแบบ ขึ้นอยู่กับกระบวนการเป็นสำคัญ PID บางครั้งจะถูกเรียกว่าการควบคุมแบบ PI, PD, P หรือ I ขึ้นอยู่กับว่าใช้รูปแบบใดบ้าง

ในการปรับจูนระบบต้องปรับค่า Kp, Ki และ Kd ให้อยู่ในเกณฑ์ที่เหมาะสมเพื่อให้ระบบทำงานได้อย่างมีเสถียรภาพ 

เทคนิคในการปรับจูน PID
(อ้างอิงจาก https://th.wikipedia.org/wiki/ระบบควบคุมพีไอดี)
        ถ้าระบบยังคงทำงาน ขั้นแรกให้ตั้งค่า Ki และ Kd เป็นศูนย์ เพิ่มค่า Kp จนกระทั่งสัญญาณขาออกเกิดการแกว่ง (oscillate) แล้วตั้งค่า Kp ให้เหลือครึ่งหนึ่งของค่าที่ทำให้เกิดการแกว่งสำหรับการตอบสนองชนิด "quarter amplitude decay" แล้วเพิ่ม Ki จนกระทั่งออฟเซตถูกต้องในเวลาที่พอเพียงของกระบวนการ แต่ถ้า Ki มากไปจะทำให้ไม่เสถียร สุดท้ายถ้าต้องการ ให้เพิ่มค่า Kd จนกระทั่งลูปอยู่ในระดับที่ยอมรับได้ แต่ถ้า Kd มากเกินไปจะเป็นเหตุให้การตอบสนองและโอเวอร์ชูตเกินยอมรับได้ ปกติการปรับจูน PID ถ้าเกิดโอเวอร์ชูตเล็กน้อยจะช่วยให้เข้าสู่จุดที่ต้องการเร็วขึ้น แต่ในบางระบบไม่สามารถยอมให้เกิดโอเวอร์ชูตได้ และถ้าค่า Kp น้อยเกินไปก็จะทำให้เกิดการแกว่ง 

        บทความนี้เขียนขึ้นมาโดยใช้ความรู้ความเข้าใจของผู้เขียน ที่เคยทำการศึกษาและทดลองใช้งานมา หากมีข้อผิดพลาดประการไดสามารถเสนอแนะมาได้เลยนะครับ

สารบัญบทความ คลิกที่นี่เพื่ออ่านบทความอื่นๆ
ลิงค์ไปที่หน้าหลักรักการเขียนโค้ด คลิกที่นี่

แหล่งอ้างอิง
https://th.wikipedia.org/wiki/ระบบควบคุมพีไอดี

สอบถามข้อมูลเพิ่มเติม
Facebook: รักการเขียนโค้ด ดอทคอม 
Tell: 091-47827899

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ทำ Web server เพื่อรับข้อมูลจาก Sensor และควบคุมอุปกรณ์ต่างๆ ตอนที่ 2 ส่งข้อมูลจากบอร์ด NodeMCU ขึ้น Web Server

การควบคุมมอเตอร์ Brushless ด้วย Arduino

เรียนรู้การออกแบบวงจรอิเล็กทรอนิกส์พื้นฐาน และใช้งานบอร์ด Arduino ตอนที่ 1 ทำความรู้จักกับโปรแกรม Tinkercad Circuits