จะระบุแต่ละส่วนประกอบจากสัญญาณเสียงได้อย่างไร

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

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

ใครมีความคิดดีๆ บ้าง? มีงาน/เอกสารที่เกี่ยวข้องมาแนะนำบ้างไหม?


person WWH98932    schedule 10.06.2019    source แหล่งที่มา
comment
คุณสามารถจัดเตรียมสเปกโตรแกรมของการหมุนสองสามครั้ง โดยควรระบุเวลาที่แต่ละเบลดผ่านได้หรือไม่   -  person Jon Nordby    schedule 27.12.2019


คำตอบ (2)


ดี...

หากเพลาของคุณหมุนที่ 1200 RPM หรือ 20 Hz เสียงที่สำคัญทั้งหมดที่เกิดจากการหมุนนั้นควรจะอยู่ที่ฮาร์โมนิค 20 Hz

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

พลังงานที่ฮาร์โมนิคอื่นๆ 20 เฮิร์ตซ์ เช่น 20, 40, 80, 100 ฯลฯ ซึ่งอยู่เหนือพื้นเสียงรบกวนโดยทั่วไปจะเป็นผลมาจากความแตกต่างระหว่างเบลด

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

person Matt Timmermans    schedule 11.06.2019

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

1) ประเมินตำแหน่งเบลดแต่ละอัน และแยกเสียงของเบลดแต่ละอัน

2) เปรียบเทียบสัญญาณจากแต่ละเบลดกับแต่ละเบลด ตรวจสอบว่ารายการใดรายการหนึ่งแตกต่างกันมากพอที่จะถือเป็นความผิดปกติหรือไม่

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

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

person Jon Nordby    schedule 26.12.2019
comment
ขอบคุณครับ ในที่สุดผมก็คิดออก อันดับแรก ฉันพบวิธีแยกคุณลักษณะที่แสดงถึงพลังงานของสัญญาณดั้งเดิมจากเมทริกซ์ของ STFT ซึ่งดูเหมือนสัญญาณคาบที่มีจุดสูงสุดและจุดต่ำสุด ดังนั้น หากคุณสามารถค้นหาตำแหน่งของรางจริงทั้งหมดได้ ดัชนีจะ เป็นการแบ่งส่วนของคุณ อัลกอริธึมการค้นหาสูงสุดบางอย่างสามารถช่วยได้ หลังจากรับสัญญาณจากเบลดแต่ละอันแล้ว สิ่งที่ฉันต้องทำคือค้นหาอัลกอริธึมการตรวจจับความผิดปกติที่ไม่ได้รับการดูแลซึ่งเหมาะสมกับสถานการณ์นี้ ฉันไม่รู้วิธีโพสต์ตัวเลขหรือฉันสามารถแสดงผลลัพธ์ให้คุณได้ดู ขอบคุณนะ! - person WWH98932; 13.01.2020
comment
ยอดเยี่ยม! AutoEncoder จะเป็นตัวเลือกทั่วไปสำหรับการตรวจจับความผิดปกติ เป็นไปได้ว่าหากคุณป้อน STFT (หรืออาจลดความละเอียดความถี่ผ่านธนาคารตัวกรอง) จาก 3 ส่วนก็จะสามารถเรียนรู้ได้ว่านี่คือความแตกต่างที่สำคัญ คุณยังสามารถทดลองโดยการคำนวณผลต่างของคู่ทั้งสอง หรือผลต่างของค่ากลางหรือค่ามัธยฐาน - person Jon Nordby; 13.01.2020