วิธีการเรียนรู้การควบคุมแบบ PID


26

ฉันต้องการเรียนรู้การควบคุมแบบ PID (สัดส่วน - รวม - อนุพันธ์) ส่วนใหญ่สำหรับอุณหภูมิ

ฉันต้องการที่จะเรียนรู้อย่างยิ่งผ่านโครงการง่ายที่จะทำ

คุณช่วยแนะนำสิ่งที่จะใช้เวลาเรียนสองสามสัปดาห์?

แก้ไข:ฉันต้องการควบคุมอุณหภูมิของถังเก็บน้ำ ความร้อนจะทำโดยตัวต้านทาน


ฉันพยายามทำให้โครงการพื้นฐานที่บางคนเรียนรู้ได้ฉันคิดว่าคณิตศาสตร์ก็น่าสนใจ ผู้คนอุทิศชีวิตให้กับมัน
Kortuk

คุณต้องการควบคุมอุณหภูมิของอะไร
J. Polfer

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

1
จะถูกกำหนดโดยอุณหภูมิของถังเก็บน้ำที่จำเป็น หากเขาต้องการ 80C อุณหภูมิของสิ่งแวดล้อมจะเพียงพอถ้าเขาต้องการ 25C จากนั้นเขาจะมีปัญหา PID เมื่อทำการปรับอย่างเหมาะสมควรจะสามารถจัดการกับการสูญเสียอุณหภูมิที่ช้า
Kortuk

คำตอบ:


27

การควบคุมอุณหภูมิ (ขึ้นอยู่กับสื่อของคุณ) ไม่ยากอย่างยิ่ง นั่นเป็นโครงการแรกของฉันเมื่อฉันเริ่ม ให้อภัยฉันถ้าฉันทำซ้ำสิ่งที่คุณรู้อยู่แล้ว

ฉันคิดว่าคุณมีวิธีการควบคุมระบบอยู่แล้ว (เช่นฮีตเตอร์หรือตัวทำความเย็น) และวิธีรับฟังความคิดเห็นจากระบบ (เซ็นเซอร์อุณหภูมิเช่นเทอร์มิสเตอร์หรือบางอย่าง) คุณจะต้องใช้ทั้งการวนซ้ำ PID ซึ่งเป็นประเภทของการควบคุมวงปิด สิ่งที่คุณต้องทำหลังจากนั้นคือเขียนบิตของซอฟต์แวร์เพื่อส่งคำสั่งควบคุมอ่านคำติชมและตัดสินใจตามความคิดเห็นนั้น

ผมขอเริ่มต้นด้วยการอ่านPID โดยไม่ต้องปริญญาเอก เป็นบทความที่ฉันใช้เมื่อฉันต้องควบคุมอุณหภูมิในการทดลองวิทยาศาสตร์ครั้งแรก มันให้ภาพที่เข้าใจง่ายและโค้ดตัวอย่างที่ดี (ลูปพื้นฐานที่คุณสามารถปรับแต่งได้เพียง 30 บรรทัด) ที่อธิบายวิธีการควบคุม 'ต้นพืช' ของคุณ - ในกรณีนี้สิ่งที่คุณต้องการควบคุมอุณหภูมิของ .

ส่วนสำคัญของการควบคุมแบบ PID - สัดส่วน - แตกต่าง - คือการใช้ผลการดำเนินงานในอนาคตที่ผ่านมาทันทีและคาดการณ์ (ตามลำดับ) ของระบบเพื่อกำหนดวิธีการควบคุมระบบ ณ จุดที่กำหนดในเวลาที่ไปถึงจุดที่กำหนด ในหลายกรณีคุณจะต้องปรับแต่งปัจจัยการรับของอัลกอริทึมเพื่อให้ได้ประสิทธิภาพตามที่คุณต้องการ - อุณหภูมิจะสูงขึ้นเร็วเท่าไหร่คุณต้องการหลีกเลี่ยงการโอเวอร์โหลดมากเกินไป ฯลฯ คุณอาจพบว่า หรือแม้แต่การควบคุมที่สมบูรณ์เพื่อให้ได้ตำแหน่งที่คุณต้องการ!


จำไม่ได้ว่าลิงก์ไปยัง PID นั้นอยู่ที่ไหนโดยไม่ต้องเรียนปริญญาเอก ฉันลืมชื่อและจำไม่ได้ว่าฉันอ่านอะไรมานานแล้ว +1 ท่าน
Kortuk

3
PID ที่ไม่มีปริญญาเอกเป็นบทความที่ยอดเยี่ยม! อย่างไรก็ตาม, ดี, 8 บิตของฉันไมโครคอนโทรลเลอร์ไม่ชอบที่เลขคณิตจุดลอย ..
อับดุลลาห์ Kahraman

ยอดเยี่ยมมาก! PID ที่ไม่มี PHD นั้นสมบูรณ์แบบ ฉันมีปริญญาเอก แต่ฉันพยายามทำให้ดีที่สุดเพื่อให้ห่างจากทฤษฎีการควบคุม :) นอกจากนี้ยังรักผู้ติดตามสายย่อย

@Bistromath โปรดอย่าเพิ่ม "ขอบคุณ" เป็นคำตอบ เมื่อคุณมีชื่อเสียงเพียงพอคุณจะสามารถลงคะแนนคำถามและคำตอบที่คุณเห็นว่ามีประโยชน์
m.Alin

10

ใช่. รับเทอร์มิสเตอร์และตัวต้านทาน เลือกความต้านทานที่สามารถดึงกระแสที่มีขนาดใหญ่พอสมควร (> 100mA)

ใช้วางความร้อนระหว่างพวกเขาและเทปพวกเขาพร้อมกับเทป เชื่อมวงจรเทอร์มิสเตอร์กับไมโครคอนโทรลเลอร์ผ่าน ADC ใช้ทรานซิสเตอร์เพื่อควบคุมตัวต้านทานและควบคุมสิ่งนี้ด้วย PWM

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

แจ้งให้เราทราบหากรายละเอียดเพิ่มเติมจะช่วยได้

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

สิ่งนี้สามารถทำได้ด้วย LED และโฟโต้ทรานซิสเตอร์


นี่เป็นคำแนะนำที่ดีในการพยายามหลีกเลี่ยงพฤติกรรมของ PID ที่วนซ้ำ
J. Polfer



1

เพียงแค่เพิ่ม 2 เซ็นต์ของฉันไปที่การตอบสนองที่ดีอยู่แล้ว

การใช้งาน PID ในทางปฏิบัติสำหรับการควบคุมอุณหภูมิมักจะมีพฤติกรรมที่ไม่เป็นเชิงเส้นหากการตรวจจับข้อผิดพลาดของอุณหภูมินั้น จำกัด

พิจารณาตัวควบคุมเปิด - ปิด ระบบจะมีเวลาแฝงนับจากเวลาที่มีการนำความร้อนมาใช้และตรวจพบการเปลี่ยนแปลงของอุณหภูมิ ซึ่งไม่มี PID loop เวลาแฝงนี้สร้างการวนลูปที่ไม่เสถียรและหากมี hystereis ใด ๆ กำลังรอบจะมีเสียงรบกวน (On-Off-On) อย่างไรก็ตามการได้รับสูงมาก (เช่นตัวเปรียบเทียบ) ส่งผลให้เกิดข้อผิดพลาดของอุณหภูมิที่เหลือเล็กน้อย เวลาแฝงส่งผลต่อรอบเวลาและการโอเวอร์โหลด

หากมีการรบกวนจากภายนอกเช่นหลอดถังซึ่งอาจเพิ่มความร้อนอย่างมีนัยสำคัญผู้ควบคุมเครื่องทำความร้อนจะต้องตอบสนองทันทีที่ตรวจพบอุณหภูมิที่เพิ่มขึ้นจากความร้อนของหลอดไฟ หากหลอดไฟของคุณไม่ได้เป็นส่วนหนึ่งของลูป PID จะไม่สามารถ "คาดการณ์" ผลกระทบ (ผลตอบรับเชิงอนุพันธ์) ได้อย่างชัดเจนหากหลอดไฟเกิดความร้อนมากเกินไปอุณหภูมิจะไม่สามารถควบคุมได้และจะเกินกว่าที่กำหนดไว้

การควบคุมความร้อนของคุณด้วยการควบคุมแบบ PID อาจจะต้องมี inoput สำหรับสถานะสวิตช์หลอดไฟและการควบคุมการส่งออกเพื่อควบคุมพลังงานแสงเป็นแหล่งความร้อนสำรองอีกครั้งถ้ามากเกินไป

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

นอกเหนือจากประสบการณ์

ประสบการณ์ครั้งแรกของฉันที่ใช้เครื่องทำน้ำร้อนคือช่วงยุคน้ำของปี 70 เมื่อตอนที่ฉันยังเป็นนักเรียนฉันได้ออกแบบตัวควบคุมอุณหภูมิของตัวเองโดยใช้เทอร์มิสเตอร์เทอร์มิสเตอร์วงจรควบคุมและสวิตช์ Triac ข้ามศูนย์ไปยังเครื่องทำความร้อน ฉันเริ่มต้นด้วยการควบคุมเปรียบเทียบและพบการตอบสนองที่ผิดปกติจากการกระโดดบนเตียง ดังนั้นฉันจึงเพิ่มการควบคุมแบบสัดส่วนโดยใช้เสียงที่ไม่กรองบนเซ็นเซอร์เพื่อให้ฉันมีสัดส่วน "รอบที่ขาดหายไป" เมื่อ ZCS triac เปิดอยู่ใกล้กับเพดาน ฉันสามารถควบคุมอุณหภูมิภายใน 0.1'C การตอบสนองนั้นนิ่มนวล แต่ผลลัพธ์ก็เหมือนกัน

ฉันพบข้อผิดพลาดที่ใหญ่ที่สุดคือในตำแหน่งและการเปลี่ยนแปลงเล็ก ๆ ของแรงดันน้ำในเซ็นเซอร์ (ตอนนั้นฉันตัวเล็กมากแค่ 185 ปอนด์ แต่อยู่บนเตียงน้ำ 2,000 ปอนด์ <การเปลี่ยนแปลงของแรงดันน้ำเล็ก ๆ 10%)

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

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

(เรียนรู้บทเรียนอย่าละเลยแหล่งที่มาของสิ่งรบกวนและผลกระทบต่อข้อผิดพลาดของระบบควบคุม)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.