คุณทำเชื่อมต่อเซ็นเซอร์ทั้งหมดเหล่านี้โดยตรงไปยังไมโครคอนโทรลเลอร์ ตัวกรองคาลมานไม่ใช่ตัวกรองอิเล็กทรอนิกส์เช่นตัวกรอง LRC ที่อยู่ระหว่างเซ็นเซอร์และไมโครคอนโทรลเลอร์ ตัวกรองคาลมานเป็นตัวกรองทางคณิตศาสตร์ที่ใช้เป็นรูทีนซอฟต์แวร์ภายในไมโครคอนโทรลเลอร์
เซ็นเซอร์ที่คุณระบุไว้ให้ไมโครคอนโทรลเลอร์ 14 หรือ 15 หมายเลขดิบทุกครั้งที่มีการอัปเดตทั้งหมด
เมื่อฉันบินเครื่องบินเล็ก ๆ สิ่งที่ฉันอยากรู้คือตำแหน่งและทิศทางของมันและระยะทางที่มันอยู่เหนือพื้นดิน - ตัวเลข 7 ตัว
ฉันต้องการบางอย่างที่ให้เลข 7 กับฉัน
โดยหลักการแล้วฉันต้องการการประมาณค่าใหม่ของตัวเลข 7 หมายเลขเหล่านี้ทุกครั้งผ่านลูปควบคุมของฉัน การอัปเดตครั้งละหนึ่งวินาทีที่ฉันได้รับจาก GPS ราคาถูกของฉันยังไม่เร็วพอ (ผู้คนที่ความถี่การอัพเดทควอด - เอาท์ - เอาท์พุท - เอาท์พุท - ความรู้สึกคำนวณความถี่ของฉันต้องการความเสถียรหรือไม่กำลังบอกฉันแม้แต่ 50 ครั้งต่อวินาทีก็ไม่เร็วพอ)
อย่างใดฉันจะต้องลดจำนวนดิบ 14 หรือ 15 ที่ฉันมีซึ่งบางครั้งเท่านั้นที่ได้รับการปรับปรุงเป็น (โดยประมาณ) ตัวเลข 7 ที่ฉันต้องการจริงๆ
ดังที่ Josh ชี้ให้เห็นมีวิธีการเฉพาะกิจหลายวิธีในการแปลงตัวเลขดิบเหล่านั้นเป็นข้อมูลที่ใช้งานได้ รูทีนใด ๆ ที่แปลง 15 หมายเลขเป็น 7 หมายเลขสามารถอธิบายได้ว่าเป็น "ตัวกรอง"
คุณไม่จำเป็นต้องใช้ตัวกรองที่ดีที่สุด แต่คุณจะใช้ตัวกรองบางประเภท - นั่นคือสิ่งที่แปลงจากข้อมูลดิบจำนวน 15 รายการที่คุณได้รับ (โดยประมาณ) ตัวเลข 7 ตัวที่คุณต้องการ
คาลมานกรองมีเงื่อนไขบางอย่างที่ "เหมาะสม" กรองวิธีที่ดีที่สุดของการแปลงว่าข้อมูลดิบให้เป็นหมายเลข 7 ที่ผมต้องการ
การทำงานในส่วนของคุณใช้ตัวกรองคาลมานน้อยกว่าที่คนอื่นได้เขียนและดีบั๊กแล้วกว่าจะเขียนตัวกรองอื่น ๆ ตั้งแต่เริ่มต้น debug มันและทำการเพิ่มสิ่งต่าง ๆ ลงไปเรื่อย ๆ จนกว่ามันจะใช้งานได้ - ตัวกรองที่จะ กลายเป็นสิ่งที่ไม่เหมาะสมอย่างหลีกเลี่ยงไม่ได้