ดังนั้นคำตอบอีกต่อไปของฉันด้านล่างจะถือว่าบอร์ดจะได้รับการเร่งความเร็วและในช่วงเวลานี้คุณยังจำเป็นต้องวัดระยะห่างระหว่างการหมุนและการหันเหของคุณภายในระยะเวลาอันสั้น หากคณะกรรมการจะอยู่กับที่ทุกการวัดคำตอบของ Mahendra Gunawardena จะทำงานได้อย่างสมบูรณ์แบบสำหรับคุณ หากสิ่งนี้กำลังเข้าสู่อุปกรณ์อย่างเช่นเซกเวย์หรือโมเดลเครื่องบินหรือมัลติมอเตอร์หรืออะไรก็ตามที่เคลื่อนที่ไปมาคุณอาจต้องการอ่านต่อไป โพสต์นี้เกี่ยวกับวิธีการใช้เซ็นเซอร์ทั้งสามตัวแม้ว่าวิธีการที่เรียกว่าฟิวชั่นเซ็นเซอร์ การรวมเซ็นเซอร์ช่วยให้คุณได้รับจุดแข็งของแต่ละเซ็นเซอร์และลดผลกระทบจากจุดอ่อนของเซ็นเซอร์แต่ละตัว
ลักษณะและพื้นหลังของเซ็นเซอร์
ก่อนอื่นให้ทำความเข้าใจว่ามาตรวัดความเร่งจะวัดแรงทั้งหมดที่ใช้กับมันไม่ใช่แค่แรงโน้มถ่วง ดังนั้นในโลกที่สมบูรณ์แบบที่มีมาตรวัดความเร่งในตำแหน่งที่ไม่มีการสั่นสะเทือนคุณสามารถกำหนดได้อย่างสมบูรณ์แบบว่าการใช้ตรีโกณมิติพื้นฐานตามที่แสดงโดยคำตอบของ Mahendra Gunawardena อย่างไรก็ตามเนื่องจาก accelerometer จะรับแรงทั้งหมดการสั่นสะเทือนใด ๆ จะส่งผลให้เกิดเสียง ควรสังเกตว่าหากคณะกรรมการเร่งคุณไม่สามารถใช้ตรีโกณมิติอย่างง่ายได้เพราะแรงที่ accelerometer รายงานนั้นไม่เพียง แต่แรงโน้มถ่วงของโลก แต่ยังเป็นแรงที่ทำให้คุณเร่งความเร็วด้วย
แมกเนโตมิเตอร์นั้นตรงไปตรงมามากกว่านั้นก็คือ accelerometer การเคลื่อนไหวจะไม่ทำให้เกิดปัญหา แต่สิ่งต่าง ๆ เช่นเหล็กและแม่เหล็กอื่น ๆ จะจบลงที่มีผลต่อการส่งออกของคุณ หากแหล่งที่มาที่ก่อให้เกิดสัญญาณรบกวนนี้คงที่ไม่ใช่เรื่องยากที่จะจัดการ แต่ถ้าแหล่งเหล่านี้ไม่คงที่มันจะสร้างเสียงจำนวนมากที่เป็นปัญหาในการลบ
ในบรรดาเซ็นเซอร์ทั้งสามตัวไจโรสโคปสามารถพิสูจน์ได้ว่าเชื่อถือได้มากที่สุดและโดยปกติแล้วพวกเขาจะวัดความเร็วในการหมุนได้ดีมาก มันไม่ได้รับผลกระทบจากสิ่งต่าง ๆ เช่นแหล่งเหล็กและการเร่งความเร็วโดยทั่วไปจะไม่มีผลกระทบต่อความสามารถในการวัดความเร็วรอบการหมุน พวกเขาทำงานได้ดีมากในการรายงานความเร็วที่อุปกรณ์หันมาอย่างไรก็ตามเนื่องจากคุณกำลังมองหามุมที่แน่นอนคุณต้องรวมความเร็วเพื่อให้ได้ตำแหน่ง การทำเช่นนี้จะเป็นการเพิ่มข้อผิดพลาดของการวัดครั้งล่าสุดให้กับข้อผิดพลาดของการวัดใหม่เนื่องจากการรวมกันนั้นเป็นผลรวมของค่าในช่วงแม้ว่าข้อผิดพลาดสำหรับการวัดเพียงครั้งเดียวจะมีค่าเพียง 0.01 องศาต่อวินาที สามารถปิดได้ 1 องศาโดยการวัด 1,000 ครั้งคุณสามารถปิดได้ 10 องศา หากคุณทำการวัดหลายร้อยครั้งต่อวินาที คุณสามารถเห็นสิ่งนี้ทำให้เกิดปัญหา โดยทั่วไปเรียกว่าไจโรดริฟท์
เซ็นเซอร์ฟิวชั่น
ตอนนี้ความงามของการมีเซ็นเซอร์ทั้งหมดนี้ทำงานร่วมกันคือคุณสามารถใช้ข้อมูลจากมาตรวัดความเร่งและมาตรวัดแม่เหล็กเพื่อยกเลิกการเลื่อนไจโร สิ่งนี้จะช่วยให้คุณให้ความแม่นยำและความเร็วของไจโรโดยไม่มีข้อผิดพลาดร้ายแรงของการเลื่อนไจโร
การรวมข้อมูลจากเซ็นเซอร์สามตัวนี้สามารถทำได้มากกว่าหนึ่งวิธีฉันจะพูดถึงการใช้ตัวกรองเสริมเนื่องจากมันจะง่ายกว่าตัวกรองคาลมานและตัวกรองคาลมานจะกินทรัพยากรมากขึ้นในระบบฝังตัว บ่อยครั้งที่ตัวกรองเสริมนั้นดีพอง่ายต่อการปรับใช้ (สมมติว่าคุณไม่ได้ใช้ไลบรารีที่สร้างไว้ล่วงหน้า) และช่วยให้คุณสามารถประมวลผลข้อมูลได้เร็วขึ้น
ตอนนี้เข้าสู่กระบวนการ ขั้นตอนแรกที่คุณต้องทำคือการรวมเอาท์พุทไจโรสโคปเพื่อแปลงความเร็วเชิงมุมเป็นตำแหน่งเชิงมุม คุณมักจะต้องใช้ตัวกรองความถี่ต่ำผ่าน accelerometer และ magnetometer เพื่อจัดการกับเสียงรบกวนในเอาต์พุต ตัวกรอง FIR อย่างง่ายอย่างที่แสดงด้านล่างใช้งานได้ที่นี่ ด้วยตรีโกณมิติบางตัวคุณสามารถหาระยะพิทช์และหมุนด้วยมาตรวัดความเร่งและหันเหด้วยแมกนิโทมิเตอร์
filteredData = (1-weight)*filteredData + weight*newData
น้ำหนักเป็นค่าคงที่ที่สามารถปรับได้ขึ้นอยู่กับว่าคุณต้องจัดการกับเสียงรบกวนมากเท่าใดเสียงยิ่งมีค่าน้ำหนักมากขึ้นเท่าใด ตอนนี้การรวมข้อมูลจากเซ็นเซอร์สามารถทำได้โดยบรรทัดของรหัสต่อไปนี้
fusedData = (1-weight)*gyroData + weight*accelMagData
ควรสังเกตว่าข้อมูลนั้นเป็นเวกเตอร์ของพิทช์ม้วนและหันเห คุณสามารถใช้ตัวแปรสามตัวในการทำเช่นนี้แทนการใช้อาร์เรย์ถ้าคุณต้องการ สำหรับการคำนวณนี้ไจโรให้ตำแหน่งเป็นองศาในพิทช์, หมุนและหันเห, สนามแม่เหล็กให้มุมสำหรับหันเหขณะที่ accelerometer ให้ตัวเลขของตัวเองสำหรับพิทช์และม้วน
หากคุณยังต้องการข้อมูลเพิ่มเติมคุณสามารถ google "ฟิวชั่นเซ็นเซอร์พร้อมตัวกรองเสริม" มีบทความมากมายเกี่ยวกับเรื่องนี้