อัลกอริทึมที่ดีที่สุดสำหรับการจำแนกข้อมูลมอเตอร์อนุกรมเวลา


9

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

กระแสมอเตอร์ - ใช้งานได้ดี กระแสมอเตอร์ - ติดขัดเมื่อสิ้นสุดการใช้งาน


อาจเหมาะสมกว่าสำหรับไซต์สถิติ SE เนื่องจากเกี่ยวข้องกับการตรวจจับความผิดปกติและการสร้างแบบจำลองทางสถิติของอนุกรมเวลา การวิเคราะห์ความอยู่รอดอาจมีบทบาทแม้ว่ามันจะไม่ชัดเจนจากคำถาม
Iterator

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

1
+1 นี่เป็นแนวคิดสำคัญ: ใช้ความรู้เฉพาะแอปพลิเคชันเพื่ออธิบายลักษณะการทำงาน มันจะเกี่ยวข้องและมีพลังมากกว่าเทคนิคทางสถิติใด ๆ ที่เป็นไปได้ สถิติสามารถเสนอวิธีเปรียบเทียบข้อมูลกับ "พื้นฐาน" หรือชุดข้อมูลอุดมคติ
whuber

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

@ ไอริชฉันคิดว่ามันไม่ง่ายเลย มีรูปร่างที่เป็นลักษณะเฉพาะของการบริโภคในปัจจุบัน: เข็มเริ่มต้นอย่างรวดเร็ว, การลดลงของเลขชี้กำลัง (exponential?), พื้นที่ยาวของ (หวังว่า) กระแสคงที่, ตามด้วยการย่อหย่อนสุดท้าย (ซึ่งถือว่าเป็นรูปร่างลักษณะ) ในตอนท้าย . รายละเอียดจะแตกต่างกัน แต่การแยกความแตกต่างของรูปแบบปกติจากการเปลี่ยนแปลง "ไม่ดี" คือกุญแจ ความกังวลคือสิ่งต่าง ๆ เช่นความสูงสัมพัทธ์ของเข็มเริ่มต้นและเวลาที่ใช้ในการปรับระดับ โปรดจำไว้ว่าวัตถุประสงค์คือเพื่อระบุปัญหาและสิ่งเหล่านั้นบางอย่างอาจมีความละเอียดกว่าการวิเคราะห์มาตรฐานที่จะแสดง
whuber

คำตอบ:


4

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

  1. การตรวจจับว่ามี / การโจมตีของพัลส์ / การเลื่อนระดับ / แนวโน้มเวลาท้องถิ่นเช่นการเปลี่ยนแปลงค่าเฉลี่ยของข้อผิดพลาดเมื่อเวลาผ่านไป
  2. ตรวจจับการปรากฏตัว / การโจมตีของการเปลี่ยนแปลงในพารามิเตอร์ในช่วงเวลา
  3. ตรวจจับการปรากฏตัว / การโจมตีของการเปลี่ยนแปลงในความแปรปรวนของสารตกค้างในช่วงเวลา

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


4

ผมขอแนะนำให้คุณเชื่อมโยงนี้ที่เกี่ยวข้องกับการจัดอนุกรมเวลา: http://www.r-bloggers.com/time-series-analysis-and-mining-with-r/


3

โมเดลมาร์คอฟที่ซ่อนอยู่

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

http://www.cs.ubc.ca/~murphyk/Software/HMM/hmm.html

ตัวกรองคาลมาน

อีกวิธีที่เกี่ยวข้องกับตัวกรองคาลมานอีกเล็กน้อย วิธีการนี้มีประโยชน์อย่างยิ่งหากข้อมูลของคุณมีเสียงดังมาก ไลบรารีโอเพ่นซอร์สที่ดีคือ Kalman Filter Toolbox สำหรับ Matlab

http://www.cs.ubc.ca/~murphyk/Software/Kalman/kalman.html

แบบจำลองเบย์

วิธีการทั้งสองนี้ถือเป็นแบบจำลองแบบเบย์ ห้องสมุดโอเพ่นซอร์สที่ดีคือ Bayes Net Toolbox สำหรับ Matlab

http://code.google.com/p/bnt

ฉันหวังว่าสิ่งนี้จะได้ผลสำหรับคุณ

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