วิธีใช้การตอบสนองตามขั้นตอนที่วัดได้เพื่อปรับแต่งระบบควบคุม


17

เราใช้การตอบสนองแบบขั้นตอนที่วัดได้เพื่อปรับรูปแบบการควบคุมแบบ PID หรือการบิดได้อย่างไร

ได้รับแรงบันดาลใจจากคำตอบนี้ *ฉันสนใจคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการใช้ระบบควบคุมตามการตอบสนองขั้นตอนที่วัดได้

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

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

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

มันทำงานยังไงกันแน่? PID การปรับแต่งเป็นเรื่องยาก ; ฉันถือว่า "การควบคุมการบิด" คือการใช้ฟังก์ชั่นโพล - ศูนย์หรือถ่ายโอน แต่ไม่เห็นวิธีการรับพารามิเตอร์อย่างชัดเจน

ที่เกี่ยวข้อง: การสร้างแบบจำลองระบบสำหรับระบบควบคุม
*ฟังก์ชั่นการถ่ายโอนการสร้างแบบจำลองของการลอยลูกปิงปองในหลอดเป็นสิ่งที่ทำให้ชื้น

คำตอบ:


23

บทนำ

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

ตัวอย่างปัญหาการควบคุม

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

โดยทั่วไปคุณมีปัญหาระบบควบคุม การตอบสนองแบบวนรอบนั้นสามารถทำซ้ำได้อย่างสมเหตุสมผลและมีสมการหนึ่งที่สร้างแบบจำลองนั้นดีพอ แต่ปัญหาคือมีจำนวนมากที่ไม่รู้ว่าคุณจะได้รับสมการนั้น

การควบคุมแบบพีไอดี

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

ระยะ P

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

สิ่งที่ฉันอธิบายไว้ข้างต้นคือส่วน P (proprotional) ของ PID เช่นเดียวกับที่คุณสามารถสร้างเอาต์พุตตามสัดส่วนกับสัญญาณข้อผิดพลาดคุณยังสามารถเพิ่มคำศัพท์เชิงบวกลงในอนุพันธ์เวลาและอินทิกรัลของข้อผิดพลาด สัญญาณ P, I และ D เหล่านี้แต่ละตัวมีอัตราขยายแยกต่างหากก่อนที่จะนำมารวมเข้าด้วยกันเพื่อสร้างสัญญาณเอาต์พุตควบคุม

ฉันพูด

I term อนุญาตให้เกิดข้อผิดพลาดเป็นโมฆะเมื่อเวลาผ่านไป ตราบใดที่มีข้อผิดพลาดในเชิงบวกใด ๆ คำว่าฉันจะยังคงสะสมในที่สุดก็เพิ่มการควบคุมการส่งออกไปยังจุดที่ข้อผิดพลาดโดยรวมหายไป ในตัวอย่างของเราหากอุณหภูมิต่ำอย่างคงที่จะเพิ่มพลังงานเข้าสู่ตัวต้านทานอย่างต่อเนื่องจนกว่าอุณหภูมิขาออกจะไม่ต่ำอีกต่อไป หวังว่าคุณจะเห็นว่าสิ่งนี้สามารถกลายเป็นความไม่แน่นอนได้เร็วกว่าคำว่า P ที่สูง คำศัพท์ AI โดยตัวมันเองสามารถทำให้เกิดการระเบิดได้ง่ายซึ่งทำให้เกิดการแกว่งได้ง่าย

คำศัพท์ D

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

ปรับ PID

พื้นฐานของการควบคุม PID นั้นค่อนข้างง่าย แต่การได้รับเงื่อนไขของ P, I และ D นั้นถูกต้องแล้วไม่ใช่ โดยทั่วไปแล้วจะมีการทดลองและปรับแต่งมากมาย เป้าหมายสูงสุดคือการได้รับระบบโดยรวมที่เอาต์พุตตอบสนองเร็วที่สุด แต่ไม่มีการโอเวอร์โหลดหรือเสียงเรียกเข้ามากเกินไปและแน่นอนว่ามันต้องมีเสถียรภาพ (ไม่เริ่มสั่นด้วยตนเอง) มีหนังสือหลายเล่มที่เขียนเกี่ยวกับการควบคุมแบบ PID วิธีเพิ่มรอยยับเล็ก ๆ ให้กับสมการ แต่โดยเฉพาะอย่างยิ่งวิธีการ "ปรับ" พวกเขา การปรับแต่งหมายถึงการหารค่า P, I และ D ที่เหมาะสม

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

Beyond PID

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

การตอบสนองแรงกระตุ้น

ดังนั้นลืมเกี่ยวกับข้อ จำกัด ของอุปกรณ์อิเล็กทรอนิกส์อะนาล็อกและถอยกลับและคิดว่าเราจะควบคุมระบบให้กลับไปสู่หลักการแรกได้อย่างไร จะเกิดอะไรขึ้นหากเอาต์พุตควบคุมเล็ก ๆ น้อย ๆ เรารู้ว่าระบบจะทำอะไร เอาท์พุทการควบคุมอย่างต่อเนื่องเป็นเพียงการรวมกันของชิ้นเล็ก ๆ จำนวนมาก เนื่องจากเรารู้ว่าผลลัพธ์ของแต่ละชิ้นคืออะไรเราสามารถทราบได้ว่าผลลัพธ์ของการควบคุมเอาท์พุทใด ๆ ก่อนหน้านี้คืออะไร ตอนนี้สังเกตว่า "ชิ้นส่วนเล็ก ๆ " ของเอาต์พุตควบคุมนั้นเข้ากันได้ดีกับการควบคุมแบบดิจิตอล คุณกำลังจะคำนวณสิ่งที่เอาท์พุทการควบคุมที่ควรจะเป็นและตั้งค่าเป็นที่แล้วกลับไปและวัดอินพุตอีกครั้งคำนวณเอาท์พุทควบคุมใหม่จากที่และตั้งอีกครั้ง ฯลฯ คุณกำลังใช้อัลกอริทึมการควบคุมในวง และทำการวัดอินพุตและตั้งค่าเอาต์พุตควบคุมใหม่แต่ละลูปการวนซ้ำ อินพุตเป็น "ตัวอย่าง" ณ เวลาที่ไม่ต่อเนื่องและเอาต์พุตถูกตั้งค่าเป็นค่าใหม่ในช่วงเวลาคงที่เช่นเดียวกัน ตราบใดที่คุณสามารถทำสิ่งนี้ได้เร็วพอคุณสามารถคิดถึงสิ่งนี้ได้ในกระบวนการต่อเนื่อง ในกรณีของตัวต้านทานความร้อนซึ่งปกติใช้เวลาสองสามนาทีในการชำระแน่นอนหลายครั้งต่อวินาทีนั้นเร็วกว่าระบบตอบสนองโดยธรรมชาติในวิธีที่มีความหมายซึ่งการอัพเดตเอาต์พุตที่ 4 Hz จะดูต่อเนื่องกับระบบ นี่คือสิ่งเดียวกับเพลงที่บันทึกด้วยระบบดิจิตอลจริง ๆ แล้วเปลี่ยนค่าผลลัพธ์ในขั้นตอนไม่ต่อเนื่องในช่วง 40-50 kHz และเร็วมากจนหูของเราไม่สามารถได้ยิน คุณสามารถคิดสิ่งนี้เกิดขึ้นในกระบวนการต่อเนื่อง ในกรณีของตัวต้านทานความร้อนซึ่งปกติใช้เวลาสองสามนาทีในการชำระแน่นอนหลายครั้งต่อวินาทีนั้นเร็วกว่าระบบตอบสนองโดยธรรมชาติในวิธีที่มีความหมายซึ่งการอัพเดตเอาต์พุตที่ 4 Hz จะดูต่อเนื่องกับระบบ นี่คือสิ่งเดียวกับเพลงที่บันทึกด้วยระบบดิจิตอลจริง ๆ แล้วเปลี่ยนค่าผลลัพธ์ในขั้นตอนไม่ต่อเนื่องในช่วง 40-50 kHz และเร็วมากจนหูของเราไม่สามารถได้ยิน คุณสามารถคิดสิ่งนี้เกิดขึ้นในกระบวนการต่อเนื่อง ในกรณีของตัวต้านทานความร้อนซึ่งปกติใช้เวลาสองสามนาทีในการชำระแน่นอนหลายครั้งต่อวินาทีนั้นเร็วกว่าระบบตอบสนองโดยธรรมชาติในวิธีที่มีความหมายซึ่งการอัพเดตเอาต์พุตที่ 4 Hz จะดูต่อเนื่องกับระบบ นี่คือสิ่งเดียวกับเพลงที่บันทึกด้วยระบบดิจิตอลจริง ๆ แล้วเปลี่ยนค่าผลลัพธ์ในขั้นตอนไม่ต่อเนื่องในช่วง 40-50 kHz และเร็วมากจนหูของเราไม่สามารถได้ยิน แน่นอนว่าหลายครั้งต่อวินาทีนั้นเร็วกว่าระบบที่ตอบสนองโดยเนื้อแท้ด้วยวิธีที่มีความหมายซึ่งการอัปเดตเอาต์พุตที่ระดับ 4 Hz จะดูต่อเนื่องกับระบบ นี่คือสิ่งเดียวกับเพลงที่บันทึกด้วยระบบดิจิตอลจริง ๆ แล้วเปลี่ยนค่าผลลัพธ์ในขั้นตอนไม่ต่อเนื่องในช่วง 40-50 kHz และเร็วมากจนหูของเราไม่สามารถได้ยิน แน่นอนว่าหลายครั้งต่อวินาทีนั้นเร็วกว่าระบบที่ตอบสนองโดยเนื้อแท้ด้วยวิธีที่มีความหมายซึ่งการอัปเดตเอาต์พุตที่ระดับ 4 Hz จะดูต่อเนื่องกับระบบ นี่คือสิ่งเดียวกับเพลงที่บันทึกด้วยระบบดิจิตอลจริง ๆ แล้วเปลี่ยนค่าผลลัพธ์ในขั้นตอนไม่ต่อเนื่องในช่วง 40-50 kHz และเร็วมากจนหูของเราไม่สามารถได้ยิน

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

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

ดังนั้นคุณอาจจะคิดว่าเป็นเรื่องง่ายเพียงแค่ให้มันใหญ่และดูว่ามันทำอะไร ใช่ว่าจะใช้งานได้ในทางทฤษฎี แต่ในทางปฏิบัติแล้วมักจะไม่ได้ นั่นเป็นเพราะตัวอย่างควบคุมอย่างใดอย่างหนึ่งแม้แต่ขนาดใหญ่นั้นมีขนาดเล็กมากในรูปแบบโดยรวมของสิ่งต่าง ๆ ที่ระบบแทบจะไม่มีการตอบสนองที่วัดได้เลย และจำไว้ว่าแต่ละตัวอย่างควบคุมมีให้มีขนาดเล็กในรูปแบบของสิ่งเพื่อให้ลำดับของตัวอย่างควบคุมความรู้สึกอย่างต่อเนื่องกับระบบ ดังนั้นไม่ใช่ว่าแนวคิดนี้จะไม่ทำงาน แต่ในทางปฏิบัติการตอบสนองของระบบนั้นเล็กมากจนถูกฝังอยู่ในเสียงการวัด ในตัวอย่างตัวต้านทานการกดตัวต้านทานด้วย 100 W สำหรับ 100 ms จะไม่ทำให้เกิดการเปลี่ยนแปลงอุณหภูมิที่เพียงพอในการวัด

การตอบสนองขั้นตอน

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

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

การควบคุมการบิด

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

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

ตัวอย่างโลกแห่งความจริง

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

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

จากนี้คุณคิดว่าจะเป็นการลบค่าการตอบสนองต่อเนื่องเพื่อรับการตอบสนองแบบอิมพัลส์ ถูกต้องในทางทฤษฎี แต่ในทางปฏิบัติคุณจะได้รับเสียงการวัดและการนับจำนวนมากเนื่องจากระบบมีการเปลี่ยนแปลงเพียงเล็กน้อยใน 500 ms:

สังเกตขนาดเล็กของค่าด้วย กระตุ้นการตอบสนองจะแสดงให้เห็นว่าการปรับสัดส่วน 10 6

ความแตกต่างที่ชัดเจนระหว่างบุคคลหรือแม้แต่การอ่านเพียงเล็กน้อยนั้นเป็นเพียงเสียงรบกวนดังนั้นเราจึงสามารถกรองความถี่ต่ำเพื่อกำจัดความถี่สูง (เสียงรบกวนแบบสุ่ม) ซึ่งหวังว่าจะช่วยให้เราเห็นการตอบสนองที่ช้าลง นี่คือความพยายามครั้งเดียว:

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

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

ดังนั้นตอนนี้หยุดและคิดเกี่ยวกับความหมายของการตอบสนองของแรงกระตุ้นที่แท้จริงนี้ ก่อนอื่นให้สังเกตว่ามันจะแสดงขึ้น 1 ครั้งดังนั้นจุดสูงสุดคือ 0.000240 ของเต็มสเกล ซึ่งหมายความว่าในทางทฤษฎีแล้วหากระบบขับเคลื่อนด้วยพัลส์เต็มสเกลเดี่ยวสำหรับหนึ่งในช่วงเวลา 500 มิลลิวินาทีเท่านั้นนี่จะเป็นอุณหภูมิที่เกิดขึ้นเมื่อเทียบกับการปล่อยทิ้งไว้ตามลำพัง การมีส่วนร่วมจากระยะเวลาหนึ่ง 500 มิลลิวินาทีมีขนาดเล็กมากตามความเหมาะสม นี่คือเหตุผลที่การวัดการตอบสนองต่อแรงกระตุ้นไม่ทำงานโดยตรงเนื่องจาก 0.000240 ของขนาดเต็ม (ประมาณ 1 ส่วนใน 4000) ต่ำกว่าระดับเสียงรบกวนของเรา

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

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

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


4
ไม่. เกินไป. โทรม.
NickHalden

4
ฉันคิดว่าหัวเรื่องบางส่วนอาจมีค่าจริงๆที่นี่ แต่น่ากลัวใช้
Kortuk

ฉันไปงานปาร์ตี้ช้า แต่ก็ยัง: คำตอบที่น่าประทับใจแลง! :)
bitsmack

7

ตัวกรอง FIR และ IIR อย่างที่ Jon กล่าวไว้เป็นตัวกรองดิจิทัลที่ใช้การตอบสนองแบบอิมพัลส์โดยตรงตามชื่อ (Finite \ Infinite Impulse Response)

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

ในตัวกรองดิจิตอลการตอบสนองต่อแรงกระตุ้นจะลดลงเป็นค่าสัมประสิทธิ์จำนวนคงที่ซึ่งจะทวีคูณสัญญาณในบางจุด คะแนนจะถูกคั่นด้วยความล่าช้าการได้รับว่า0คูณมูลค่าของสัญญาณทันทีในขณะที่kคูณสัญญาณเดียวกันหลังจากkหน่วงเวลาหน่วย

ป้อนคำอธิบายรูปภาพที่นี่

รูปแสดงการตอบสนองแบบอิมพัลส์ของตัวกรองทั่วไป (low-pass ในกรณีนี้) ซึ่งค่าสัมประสิทธิ์สำหรับ 13-taps (จำนวนของความล่าช้า) ตัวกรอง FIR ได้รับ

ในการรับฟังก์ชั่นการถ่ายโอนบางอย่างตัวกรอง FIR จะต้องใช้ค่าสัมประสิทธิ์จำนวนอนันต์: ในกรณีเหล่านี้จะใช้การป้อนกลับเพื่อรับตัวกรอง IIR (Infinite Impulse Response) ตัวกรองเหล่านี้ช่วยให้ได้รับฟังก์ชั่นการถ่ายโอนที่ดีขึ้น (เช่นการเปลี่ยนผ่านที่แคบกว่าระหว่างแถบความถี่และแถบที่ถูกระงับในตัวกรอง) แต่สามารถสร้างความไม่เสถียรได้ในขณะที่ตัวกรอง FIR มีความเสถียรโดยการก่อสร้าง

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

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

ปรับปรุง

OP ถามเกี่ยวกับขั้นตอนและการตอบสนองต่อแรงกระตุ้น ดีอย่างที่แลงและจอนกล่าวว่าการตอบสนองต่อแรงกระตุ้นเป็นอนุพันธ์ของการตอบสนองขั้นตอนและเห็นได้ชัดว่าการตอบสนองขั้นตอนนั้นเป็นส่วนสำคัญของการตอบสนองต่อแรงกระตุ้น

การตอบสนองขั้นตอนมีการใช้กันอย่างแพร่หลายในระบบควบคุมเพราะมันแสดงสิ่งที่สำคัญที่สุดเกี่ยวกับพวกเขา: ความเร็วในการตอบสนองต่อการเปลี่ยนแปลงอย่างรวดเร็วของอินพุตและถ้าพวกมันเสถียรและสามารถลดข้อผิดพลาดได้ตลอดเวลา

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

นี่คือพลังของตัวกรองดิจิทัล: พวกมันใช้การตอบสนองแบบอิมพัลส์โดยตรงและไม่ว่าเราต้องการสร้างการตอบสนองแบบขั้นตอน (ในกรณีของระบบควบคุม) หรือฟังก์ชั่นการถ่ายโอน (ในกรณีของตัวกรอง) สืบทอดการตอบสนองของแรงกระตุ้นและดึงค่าสัมประสิทธิ์สำหรับ FIR


คำตอบที่ดี! เมื่อต้องการทำให้เสร็จคุณสามารถรวมวิธีรับการตอบสนองของแรงกระตุ้นจากขั้นตอนได้หรือไม่ (ฉันเห็นในคำตอบของ @ JonWatte)
tyblu

4

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


@JohWatte เป็นตัวอย่าง?
Kortuk

1
หรือสิ่งที่ฉันได้ทำคือการใช้ low pass filter กับสัญญาณควบคุม เป็นขั้นตอนที่ให้ผลตอบแทนที่ดี แต่เป็นไปไม่ได้ทางร่างกายเนื่องจากผลลัพธ์จะต้องไม่มีที่สิ้นสุด คุณกรองอินพุตควบคุมเพื่อให้อินพุตขั้นตอนเปลี่ยนเป็นสิ่งที่คุณสามารถตระหนักได้นั่นหมายถึงค่าคอนโวลูชั่นจะไม่เกินสิ่งที่ไดรฟ์ส่งออกของคุณสามารถผลิต โดยเฉพาะอย่างยิ่งค่าลบมักเป็นไปไม่ได้ ตัวอย่างเช่นหากคุณกำลังควบคุมอุณหภูมิด้วยเครื่องทำความร้อนที่มีความต้านทานคุณจะไม่สามารถสร้างความร้อนที่เป็นลบได้ (ด้วย Peltier ที่คุณสามารถทำได้
Olin Lathrop

คุณจะกลับคำตอบขั้นตอนได้อย่างไร "สัญญาณตอบกลับ" เป็นเอาต์พุตที่ต้องการหรือไม่?
tyblu

สั้น ๆ ถ้าฉันจำได้อย่างถูกต้อง: คุณแปลงการตอบสนองแบบขั้นตอนเป็นการตอบสนองแบบอิมพัลส์ จากนั้นคุณลบการตอบสนองต่อแรงกระตุ้น (โดยนำแรงกระตุ้นออก) ที่สัมพันธ์กับสัญญาณอินพุตจากสัญญาณเอาต์พุต มันเป็นการโน้มน้าวใจที่เพิ่มความล่าช้าของกลุ่ม (ความล่าช้า) ฉันจำได้ว่าเห็นการอ้างอิงที่ดีเมื่อสิบปีก่อนที่เกี่ยวข้องกับไมโครโฟนและการสร้างแบบจำลองห้องใน DSP เสียง
Jon Watte

2

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

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

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

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

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

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