การกรองค่าเฉลี่ยเคลื่อนที่ในการควบคุมสัญญาณแอนะล็อกของ DCS และ PLC
ตัวกรองค่าเฉลี่ยเคลื่อนที่คือเครื่องมือทำให้สัญญาณเรียบแบบหน้าต่างเลื่อนที่วิศวกรเครื่องมือวัดส่วนใหญ่นำไปใช้กับเส้นทางสัญญาณแอนะล็อกใน DCS และ PLC ต่อไปนี้ค...
เปิดเส้นทางสัญญาณแอนะล็อกของ DCS หรือ PLC แล้วคุณมักจะพบฟังก์ชันบล็อกที่ไม่ได้ทำอะไรหรูหราไปกว่าการหาค่าเฉลี่ย มันเก็บตัวอย่างห้าค่าล่าสุด นำมาบวกกัน หารด้วยห้า แล้วเขียนผลลัพธ์นั้นเป็นค่า PV ที่ PID ใช้งานจริง บล็อกนี้คือฟิลเตอร์ค่าเฉลี่ยเคลื่อนที่ ซึ่งเป็นตัวปรับให้สัญญาณเรียบแบบหน้าต่างเลื่อนที่วิศวกรเครื่องมือวัดมักเลือกใช้เป็นอันดับแรก เพราะคำนวณได้ชัดเจนและมีความหน่วงที่คาดการณ์ได้
มันไม่ใช่การตั้งค่าหน่วงของทรานสมิตเตอร์ และไม่ใช่ฟิลเตอร์ลำดับหนึ่งแบบป้อนกลับ (PT1) ทั้งหมดมีหน้าที่เหมือนกันคือกำจัดสัญญาณรบกวนและทำให้ตัวแปรกระบวนการยังใช้งานได้ แต่ใช้อัลกอริทึมต่างกัน และมีต้นทุนด้านความหน่วงต่างกัน
Honeywell Experion PKS C300 ในตู้ Series C: ตัวควบคุม DCS ประเภทที่มักปรับสัญญาณ PV แอนะล็อกให้เรียบในบล็อกฟังก์ชันของ Control Execution Environment ก่อนส่งเข้า PID
หน้าต่างเลื่อน ไม่ใช่หน่วยความจำแบบป้อนกลับ
เก็บตัวอย่าง N ค่าล่าสุด ในแต่ละรอบสแกนใหม่ ให้ลบค่าที่เก่าที่สุดออก เพิ่มค่าล่าสุดเข้าไป แล้วส่งออกค่าเฉลี่ยเลขคณิตของค่าที่เหลือ:
Y(n) = [X(n) + X(n−1) + … + X(n−N+1)] / N
หากอินพุตแอนะล็อกถูกสแกนทุกหนึ่งวินาที และ N = 10 ผลลัพธ์แต่ละค่าคือค่าเฉลี่ยของสิบวินาทีล่าสุด ความกว้างของหน้าต่างคงที่ ตัวอย่างหนึ่งค่าเข้ามาและตัวอย่างหนึ่งค่าออกไป นี่คือกลไกทั้งหมด
ฟิลเตอร์ลำดับหนึ่งเป็นแบบป้อนกลับ: ผลลัพธ์ของรอบสแกนนี้ขึ้นอยู่กับผลลัพธ์ก่อนหน้า บวกกับสัดส่วนหนึ่งของตัวอย่างใหม่ แต่ค่าเฉลี่ยเคลื่อนที่ไม่ใช่เช่นนั้น มันพิจารณาเฉพาะประวัติข้อมูลดิบในหน้าต่างเท่านั้น นั่นทำให้อธิบายให้พนักงานควบคุมแผงเข้าใจได้ง่ายกว่า และทำให้เหมาะกับ DCS หรือ PLC ที่มีหน่วยความจำสำหรับเก็บค่าแอนะล็อก N ค่าอยู่แล้ว
ABB AC500 (รวม I/O ด้านความปลอดภัย AC500-S): โดยทั่วไปค่าเฉลี่ยแบบหน้าต่างเลื่อนเดียวกันนี้จะอยู่ในรูปฟังก์ชันบล็อกหรือโค้ด ST ใน Automation Builder ไม่ใช่เมนูลับในทรานสมิตเตอร์
ปุ่มปรับสองตัว: ความยาวหน้าต่างและเวลาแซมเพิล
ความแรงของฟิลเตอร์ไม่ได้ขึ้นอยู่กับ N เพียงอย่างเดียว เวลาตอบสนองคือ N × คาบการแซมเพิล หาก N = 10 ที่ 1 วินาที จะได้หน้าต่างสิบวินาที ค่า N เดิมที่ 100 มิลลิวินาทีจะเท่ากับหนึ่งวินาที ต้องพิจารณาสองค่านี้ควบคู่กัน มิฉะนั้นคุณอาจคัดลอกการตั้งค่า “ที่ดี” จากลูปหนึ่งไปใช้อีกลูป แล้วสงสัยว่าทำไมวาล์วจึงเคลื่อนที่ช้าลง
ค่า N ที่มากขึ้นจะกำจัดสัญญาณรบกวนได้มากขึ้น แต่เพิ่มความหน่วงด้วย หลังจากค่าที่วัดได้เปลี่ยนแบบสเต็ปอย่างแท้จริง ค่า PV ที่ผ่านฟิลเตอร์ต้องใช้ตัวอย่าง N ค่าเพื่อเปลี่ยนตามค่าระดับใหม่อย่างเต็มที่ สำหรับเทอร์โมเวลล์ที่ตอบสนองช้า เรื่องนี้มักยอมรับได้ แต่สำหรับลูปความดันหรืออัตราการไหลที่ต้องรับมือกับการเปลี่ยนแปลงโหลด หน้าต่างที่ยาวเกินไปจะทำให้ PID ดูเฉื่อย ทั้งที่ตัวการคือความหน่วงจากฟิลเตอร์
สัญญาณรบกวนแบบเป็นคาบเป็นกรณีเดียวที่คุณสามารถกำหนดขนาดหน้าต่างได้อย่างมีเป้าหมาย หากสัญญาณรบกวนเกิดซ้ำประมาณหนึ่งครั้งต่อวินาที และคุณสแกนทุก 100 มิลลิวินาที ค่า N = 10 จะครอบคลุมครบหนึ่งคาบพอดีและหาค่าเฉลี่ยให้ริปเปิลเข้าใกล้ศูนย์ นี่คือจุดที่ค่าเฉลี่ยเคลื่อนที่ทำงานได้ดีที่สุด: จับคู่หน้าต่างกับคาบของสิ่งรบกวน ไม่ใช่เลือกตัวเลขกลม ๆ ที่ดู “เรียบดี” บนเทรนด์
| ตัวเลือก | สิ่งที่ได้ | สิ่งที่ต้องแลก |
|---|---|---|
| N ขนาดเล็ก | ติดตามการเปลี่ยนแปลงจริงของกระบวนการได้เร็วขึ้น | มีสัญญาณรบกวนตกค้างใน PV มากขึ้น |
| N ขนาดใหญ่ | เทรนด์เรียบขึ้นและปฏิเสธสัญญาณพุ่งแหลมได้ดีขึ้น | ความหน่วงมากขึ้น การตอบสนองของ PID ช้าลง |
| จับคู่ N กับคาบของสัญญาณรบกวน | ลดทอนสัญญาณของคาบนั้นได้มาก | ใช้ไม่ได้หากความถี่ของสัญญาณรบกวนเปลี่ยน |
| แซมเพิลเร็วขึ้นโดยใช้ N เท่าเดิม | ได้หน้าต่างเวลาจริงที่สั้นลง | ใช้ CPU และบัฟเฟอร์มากขึ้น |
ค่าเฉลี่ยเคลื่อนที่กับฟิลเตอร์ลำดับหนึ่ง (PT1)
ทั้งสองแบบเป็นเครื่องมือกรองความถี่ต่ำ ค่าเฉลี่ยเคลื่อนที่มองเห็นภาพได้ชัดกว่า: คุณสามารถชี้ไปยังตัวอย่าง N ค่าล่าสุดได้ นอกจากนี้ยังต้องใช้หน่วยความจำมากกว่าและต้องบวกค่าหลายครั้งต่อรอบสแกน ส่วนฟิลเตอร์ลำดับหนึ่งใช้การคูณเพียงไม่กี่ครั้ง จึงประหยัดพอสำหรับทรานสมิตเตอร์หรือโมดูล I/O แบบฝังตัวขนาดเล็กที่ไม่สามารถเก็บข้อมูลเป็นหน้าต่างได้
สำหรับ DCS หรือ PLC ขนาดเต็ม เหตุผลด้านหน่วยความจำนี้แทบไม่ใช่ปัจจัยชี้ขาด โปรเซสเซอร์ Honeywell Experion PKS C300 ในฮาร์ดแวร์ Series C C300 และ CPU ของ ABB AC500 ใน ตระกูล PLC ของ ABB มีพื้นที่เหลือเฟือสำหรับเก็บประวัติสัญญาณแอนะล็อกช่วงสั้น ๆ ตั้งค่าตัวปรับสัญญาณให้เรียบในจุดที่มองเห็นได้ จัดทำเอกสารระบุ N และอัตราการสแกนไว้ข้าง PID และตั้งค่าการหน่วงของทรานสมิตเตอร์ให้เป็นค่าที่ทราบแน่ชัด ซึ่งโดยปกติควรมีค่าน้อย เพื่อไม่ให้กรองต่ออนุกรมซ้ำสองชั้นโดยไม่รู้ตัว
สิ่งที่ฟิลเตอร์นี้ทำไม่ได้
ความหน่วงคือราคาที่ต้องจ่ายสำหรับตัวปรับสัญญาณให้เรียบทุกชนิด อุณหภูมิมักรับความหน่วงนี้ได้ แต่ลูปความดันและอัตราการไหลโดยทั่วไปไม่เป็นเช่นนั้น หากกรอง PV เหล่านี้มากเกินไป ตัวควบคุมจะต่อสู้กับกระบวนการที่ตอบสนองล่าช้า
ค่าพุ่งแหลมจะถูกลดลงจากค่าเฉลี่ยในหน้าต่างได้ค่อนข้างดี แต่การเปลี่ยนแปลงอย่างช้า ๆ ไม่ได้หายไป ฟิลเตอร์ความถี่ต่ำจะติดตามสัญญาณแบบไล่ระดับ เพียงแต่ช้ากว่า หากปัญหาคือจุดศูนย์เลื่อนหรือท่ออิมพัลส์อุดตัน ให้แก้ไขระบบวัด อย่าซ่อนปัญหาด้วยการเพิ่มความยาวหน้าต่าง
ค่าเฉลี่ยเคลื่อนที่แบบธรรมดายังไม่มีการกระตุกเพิ่มเติมที่ขอบหน้าต่าง เพราะทุกตัวอย่างในบัฟเฟอร์มีน้ำหนักเท่ากัน ค่าเฉลี่ยเคลื่อนที่แบบถ่วงน้ำหนัก (ให้ตัวอย่างใหม่กว่ามีน้ำหนักมากกว่า) จะติดตามการเปลี่ยนแบบสเต็ปได้เร็วขึ้นเล็กน้อยและต้องใช้การคำนวณมากขึ้น ใช้แบบถ่วงน้ำหนักเมื่อปัญหาคือความหน่วงในลูปความเร็วสูงและคุณยังต้องการการหาค่าเฉลี่ย แต่ให้ใช้แบบน้ำหนักเท่ากันเมื่อคุณต้องการพฤติกรรมที่เข้าใจได้ชัดเจนสำหรับกะกลางคืนถัดไป
เกี่ยวกับผู้เขียน
Elena Vargas | วิศวกรเครื่องมือวัดกระบวนการ
Elena Vargas ทำงานด้านเส้นทางสัญญาณแอนะล็อกสำหรับโรงงานกระบวนการ ครอบคลุมการตั้งค่าทรานสมิตเตอร์ การกรองสัญญาณใน DCS/PLC และการตอบสนองของลูปบนแพลตฟอร์ม Experion PKS และ PAC งานภาคสนามของเธอส่วนใหญ่เกี่ยวข้องกับลูปความดัน อัตราการไหล และอุณหภูมิ ซึ่งฟิลเตอร์ที่กำหนดขนาดไม่เหมาะสมจะแสดงออกเป็นความหน่วง ไม่ใช่เทรนด์ที่ดูเรียบร้อย