
هناك الكثير من المقالات المختلفة حول مرشح Kalman ، لكن من الصعب العثور على المقالة التي تحتوي على شرح ، حيث تأتي جميع صيغ الترشيح. أعتقد أنه بدون فهم أن هذا العلم يصبح غير مفهوم تمامًا. في هذه المقالة سأحاول شرح كل شيء بطريقة بسيطة.
يعد Kalman filter أداة قوية جدًا لتصفية أنواع مختلفة من البيانات. الفكرة الرئيسية وراء ذلك هي أن الشخص يجب أن يستخدم معلومات عن العملية البدنية. على سبيل المثال ، إذا كنت تقوم بتصفية البيانات من عداد السرعة في السيارة ، فإن القصور الذاتي فيها يمنحك الحق في علاج الانحراف الكبير في السرعة كخطأ في القياس. مرشح كالمان مثير للاهتمام أيضًا لأنه الأفضل بطريقة ما. سنناقش بالضبط ماذا يعني ذلك. في نهاية المقال ، سأبيّن كيف يمكن تبسيط الصيغ.
التصفيات
في البداية ، دعونا نحفظ بعض التعاريف والحقائق من نظرية الاحتمالات.
متغير عشوائي
عندما يقول أحد أنه يتم إعطاء متغير عشوائي
xi ، وهذا يعني أنه قد يستغرق قيم عشوائية. القيم المختلفة تأتي مع احتمالات مختلفة. على سبيل المثال ، إذا أسقط شخص ما نردًا ، فستكون مجموعة القيم منفصلة
\ {1،2،3،4،5،6 \}\ {1،2،3،4،5،6 \} . عندما تتعامل مع سرعة تحريك الجسيمات ، فمن الواضح أنك يجب أن تعمل مع مجموعة مستمرة من القيم. القيم التي تظهر بعد كل تجربة (قياس) سوف نشير إليها
x1،x2،... ، لكن في بعض الأحيان نستخدم نفس الحرف الذي نستخدمه لمتغير عشوائي
xi . في حالة مجموعة القيم المستمرة ، يتميز المتغير العشوائي بوظيفة كثافة الاحتمال
rho(x) . توضح هذه الوظيفة احتمال وقوع المتغير العشوائي في حي صغير
dx من هذه النقطة
x . كما نرى في الصورة ، فإن هذا الاحتمال يساوي مساحة المستطيل الفقاعي أسفل الرسم البياني
rho(x)dx .

في كثير من الأحيان في حياتنا ، والمتغيرات العشوائية لها توزيع غاوس ، عندما تكون كثافة الاحتمالات
rho(x) sime− frac(x− mu)22 sigma2 .

يمكننا أن نرى أن وظيفة على شكل جرس
rho(x) تتمحور في هذه النقطة
mu وعرضها المميز موجود
سيجما .
نظرًا لأننا نتحدث عن التوزيع الغوسي ، فمن الخطيئة ألا نذكر من أين أتت. وكذلك العدد
e و
pi يتم اختراقها بشدة في الرياضيات ويمكن العثور عليها في أكثر الأماكن غير المتوقعة ، وبالتالي فإن Gaussian Distribution له جذور عميقة في نظرية الاحتمالات. يشرح البيان التالي الملحوظ جزئيًا وجود توزيع Gauss في العديد من العمليات:
دع متغير عشوائي
xi له توزيع تعسفي (في الواقع هناك بعض القيود على التعسف ، لكنها ليست تقييدية على الإطلاق). دعونا أداء
ن التجارب وحساب المبلغ
xi1+...+ xin من القيم الساقطة. دعونا نجعل الكثير من التجارب. من الواضح أننا في كل مرة نحصل على قيمة مختلفة للمبلغ. بمعنى آخر ، هذا المبلغ هو متغير عشوائي مع قانون التوزيع الخاص به. اتضح أنه كبير بما فيه الكفاية
ن ، يميل قانون توزيع هذا المبلغ إلى توزيع غوسي (بالمناسبة ، العرض المميز للجرس ينمو مثل
sqrtn . اقرأ المزيد في
نظرية الحد المركزي . في الحياة الواقعية ، هناك الكثير من القيم التي تمثل مجموعًا كبيرًا من المتغيرات العشوائية المستقلة والموزعة بشكل متطابق. لذلك هذه القيم لها توزيع غاوس.
قيمة المعنى
بحكم التعريف ، القيمة المتوسطة لمتغير عشوائي هي القيمة التي نحصل عليها في الحد إذا قمنا بإجراء المزيد والمزيد من التجارب وحساب متوسط القيم الساقطة. يتم الإشارة إلى القيمة المتوسطة بطرق مختلفة: يشير علماء الرياضيات إلى
E xi (التوقع) ، الفيزيائيين تدل عليه
overline xi او
< xi> . سوف نشير إليها كما يفعل علماء الرياضيات.
على سبيل المثال ، قيمة متوسطة للتوزيع الغوسي
rho(x) sime− frac(x− mu)22 sigma2 يساوي
mu .
الفرق
بالنسبة لتوزيع Gaussian ، نرى بوضوح أن المتغير العشوائي يميل إلى الوقوع في منطقة معينة من قيمته المتوسطة
mu . دعونا نستمتع بالتوزيع الغوسي مرة أخرى:

في الصورة ، قد يرى المرء أن هناك عرضًا مميزًا لمنطقة تقع فيها القيم في الغالب
سيجما . كيف يمكننا تقدير هذا العرض لمتغير عشوائي تعسفي؟ يمكننا رسم رسم بياني لوظيفة الكثافة الاحتمالية وتقييم مدى الخصائص بصريًا. ومع ذلك ، سيكون من الأفضل اختيار طريقة جبرية دقيقة لهذا التقييم. قد نجد متوسط طول الانحراف عن القيمة المتوسطة:
E| xi−E xi| . هذه القيمة هي تقدير جيد للانحراف المميز لل
xi . ومع ذلك ، فنحن نعرف جيدًا مدى صعوبة استخدام القيم المطلقة في الصيغ ، وبالتالي نادراً ما تستخدم هذه الصيغة في الممارسة.
الطريقة الأكثر بساطة (بسيطة من وجهة نظر الحساب) هي الحساب
E( xi−E xi)2 .
هذه القيمة تسمى التباين ويشار إليها بواسطة
sigma xi2 . الجذر التربيعي للاختلاف هو تقدير جيد للانحراف المميز للمتغير العشوائي. يطلق عليه الانحراف المعياري.
على سبيل المثال ، يمكن للمرء حساب ذلك للتوزيع الغوسي
rho(x) sime− frac(x− mu)22 sigma2 الفرق يساوي
سيجما2 وبالتالي فإن الانحراف المعياري هو
سيجما . هذه النتيجة يتوافق مع حدسنا الهندسي. في الواقع يتم إخفاء الغش صغير هنا. في الواقع في تعريف التوزيع غاوس ترى الرقم

في قاسم التعبير
− frac(x− mu)22 sigma2 . هذا

يقف هناك في الغرض ، للانحراف المعياري
sigma xi أن تكون مساوية بالضبط ل
سيجما . لذلك فإن صيغة توزيع غاوس مكتوبة بطريقة تضع في اعتبارك أن أحدها يحسب انحرافها المعياري.
متغيرات عشوائية مستقلة
متغيرات عشوائية قد تعتمد على بعضها البعض أم لا. تخيل أنك تلقي إبرة على الأرض وقياس إحداثيات طرفيها. يعد هذا الإحداثيين متغيرين عشوائيين ، لكنهما يعتمدان على بعضهما البعض ، لأن المسافة بينهما يجب أن تساوي دائمًا طول الإبرة. تكون المتغيرات العشوائية مستقلة عن بعضها البعض إذا كانت نتائج أول واحد لا تعتمد على نتائج الثاني. لاثنين من المتغيرات المستقلة
xi1 و
xi2 متوسط منتجهم مساوٍ لمنتج الوسط:
E( xi1 cdot xi2)=E xi1 cdot xi2دليلعلى سبيل المثال ، أن يكون لديك عيون زرقاء وتنهي مدرسة ذات مرتبة شرف أعلى ، فهي متغيرات عشوائية مستقلة. دعنا نقول أن هناك
20\٪=0.2دولا من الناس مع عيون زرقاء و
5\٪=0.05 من الناس مع مرتبة الشرف العليا. لذلك هناك

من الناس مع عيون زرقاء وتكريم أعلى. هذا المثال يساعدنا على فهم ما يلي. لاثنين من المتغيرات العشوائية المستقلة
xi1 و
xi2 التي تعطى من كثافتها الاحتمالية
rho1(x) و
rho2(ذ) ، كثافة الاحتمال
rho(x،y) (المتغير الأول يقع في
x والثاني في
ذ ) يمكن من خلال إيجاد من الصيغة
rho(x،y)= rho1(x) cdot rho2(y)
هذا يعني ذلك
startarrayl displaystyleE( xi1 cdot xi2)= intxy rho(x،y)dxdy= intxy rho1(x) rho2(y)dxdy= displaystyle intx rho1(x)dx inty rho2(y)dy=E xi1 cdotE xi2 endarray
كما ترى ، يتم إجراء الاختبار للمتغيرات العشوائية التي لها طيف مستمر من القيم ويتم الحصول عليها من خلال كثافة دالة الاحتمال. الدليل مشابه للحالة العامة.
مرشح كالمان
بيان المشكلة
واسمحوا دلالة بواسطة
xk القيمة التي نعتزم قياسها ثم التصفية. يمكن أن يكون تنسيق ، السرعة ، التسارع ، الرطوبة ، درجة الحرارة ، الضغط ، إلخ
فلنبدأ بمثال بسيط ، يقودنا إلى صياغة المشكلة العامة. تخيل أن لديك سيارة لعبة تحكم راديو يمكن أن تعمل فقط للأمام والخلف. من خلال معرفة كتلته وشكله ومعلماته الأخرى للنظام ، قمنا بحساب الطريقة التي يعمل بها ذراع التحكم المتحكم في سرعة السيارة
vk .

فإن تنسيق السيارة من خلال الصيغة التالية
xk+1=xk+vkdt
في واقع الحياة لا يمكننا ذلك ، لا يمكننا الحصول على صيغة دقيقة للإحداثيات لأن بعض الاضطرابات الصغيرة التي تعمل على السيارة مثل الرياح ، المطبات ، الحجارة على الطريق ، وبالتالي فإن السرعة الحقيقية للسيارة تختلف عن السرعة المحسوبة . لذلك نضيف متغير عشوائي
xik إلى الجانب الأيمن من المعادلة الأخيرة:
xk+1=xk+vkdt+ xik
لدينا أيضًا مستشعر GPS على السيارة يحاول قياس إحداثيات السيارة
xk . بالطبع يوجد خطأ في هذا القياس ، وهو متغير عشوائي
etak . إذن من المستشعر سنحصل على بيانات خاطئة:
zk=xk+ etak
هدفنا هو العثور على تقدير جيد للتنسيق الحقيقي
xk ، معرفة بيانات جهاز استشعار خاطئ
zk . هذا التقدير الجيد سوف نشير به
xopt .
بشكل عام تنسيق
xk قد تعني أي قيمة (درجة الحرارة ، الرطوبة ، ...) والعضو المسيطر الذي نشير إليه
uk (في المثال مع سيارة
uk=vk cdotdt ) فيما يلي معادلات الإحداثيات وقياسات المستشعر:

(1)
دعونا نناقش ، ماذا نعرف في هذه المعادلات.
- uk هي قيمة معروفة والتي تتحكم في تطور النظام. نحن نعرف ذلك من نموذج النظام.
- المتغير العشوائي xi يمثل الخطأ في نموذج النظام والمتغير العشوائي eta هو خطأ في أجهزة الاستشعار. قوانين التوزيع الخاصة بهم لا تعتمد على الوقت (على مؤشر التكرار ك )
- وسائل الأخطاء تساوي الصفر: E etak=E xik=0 .
- قد لا نعرف قانون توزيع المتغيرات العشوائية ، لكننا نعرف تبايناتها sigma xi و sigma eta . لاحظ أن الفروق لا تعتمد على الوقت (على ك ) منذ قوانين التوزيع المقابلة لا.
- نفترض أن جميع الأخطاء العشوائية مستقلة عن بعضها البعض: الخطأ في ذلك الوقت ك لا يعتمد على الخطأ في ذلك الوقت ك′دولا .
لاحظ أن مشكلة الترشيح ليست مشكلة تنعيم. هدفنا هو عدم تحسين بيانات المستشعر ، فنحن نريد فقط الحصول على القيمة القريبة قدر الإمكان للتنسيق الحقيقي
xk .
خوارزمية كالمان
سوف نستخدم الحث. تخيل ذلك في الخطوة
ك لقد وجدنا بالفعل قيمة المستشعر المصفى
xopt وهو تقدير جيد للتنسيق الحقيقي
xk . أذكر أننا نعرف المعادلة التي تتحكم في الإحداثيات الحقيقية:
xk+1=xk+uk+ xik
لذلك قبل الحصول على قيمة المستشعر ، قد نذكر أنه سيُظهر القيمة التي تكون قريبة من
xopt+uk . لسوء الحظ حتى الآن لا يمكننا قول شيء أكثر دقة. ولكن في هذه الخطوة
ك+1دولا سيكون لدينا قراءة غير دقيقة من المستشعر
zk+1 .
فكرة كالمان هي التالية. للحصول على أفضل تقدير للتنسيق الحقيقي
xk+1 يجب أن نحصل على وسط ذهبي بين قراءة المستشعر غير الدقيق
zk+1 و
xopt+uk - توقعاتنا ، ما توقعنا رؤيته على المستشعر. سوف نعطي وزنا
K إلى قيمة أجهزة الاستشعار و
(1−K) إلى القيمة المتوقعة:
xoptk+1=K cdotzk+1+(1−K) cdot(xoptk+uk)
المعامل
K يسمى معامل كالمان. يعتمد ذلك على مؤشر التكرار ، وبصراحة ، يجب أن نكتب بالأحرى
Kk+1 . ولكن للحفاظ على الصيغ في شكل لطيف ، سنحذف مؤشر
K .
يجب أن نختار معامل كالمان بالطريقة التي يقدر بها الإحداثي
xoptk+1 سيكون أقرب ما يمكن للتنسيق الحقيقي
xk+1 .
على سبيل المثال ، إذا علمنا أن مستشعرنا دقيق للغاية فسنثق في قراءته ونمنحه وزنًا كبيرًا (
K قريب من واحد). إذا لم يكن المستشعر دقيقًا على الإطلاق ، فسنعتمد على القيمة المتوقعة نظريًا
xoptk+uk .
في الحالة العامة ، يجب علينا تقليل خطأ تقديرنا:
ek+1=xk+1−xoptk+1
نستخدم المعادلات (1) (تلك الموجودة على إطار أزرق) ، لإعادة كتابة المعادلة للخطأ:
ek+1=(1−K)(ek+ xik)−K etak+1
دليل\ تبدأ {array} {l} {e_ {k + 1} = x_ {k + 1} -x ^ {opt} _ {k + 1} = x_ {k + 1} -Kz_ {k + 1} - (1-K) (x ^ {opt} _k + u_k) = \\ = x_k + u_k + \ xi_k-K (x_k + u_k + \ xi_k + \ eta_ {k + 1}) - (1-K) (x ^ {{ opt} _k + u_k) = \\ = (1-K) (x_k-x_k ^ {opt} + \ xi_k) -K \ eta_ {k + 1} = (1-K) (e_k + \ xi_k) -K \ eta_ {k + 1}} \ end {array}
الآن حان الوقت للمناقشة ، ماذا يعني تعبير "لتقليل الخطأ"؟ نحن نعلم أن الخطأ هو متغير عشوائي لذلك في كل مرة يستغرق قيم مختلفة. في الواقع لا توجد إجابة فريدة على هذا السؤال. وبالمثل ، كان في حالة تباين متغير عشوائي ، عندما كنا نحاول تقدير العرض المميز لوظيفة الكثافة الاحتمالية. لذلك سوف نختار معيار بسيط. سنقلل من متوسط المربع:
E(e2k+1) rightarrowmin
دعنا نعيد كتابة التعبير الأخير:
E(e2k+1)=(1−K)2(E2k+ sigma2 xi)+K2 sigma2 eta
مفتاح الإثباتمن حقيقة أن جميع المتغيرات العشوائية في المعادلة ل
ek+1 لا تعتمد على بعضها البعض والقيم المتوسطة
E etak+1=E xik=0 ، يتبع ذلك جميع المصطلحات في
E(e2k+1) تصبح أصفار:
E( xik etak+1)=E(ek xik)=E(ek etak+1)=0.
في الواقع على سبيل المثال
E(ek xik)=E(ek)E( xik)=0.لاحظ أيضًا أن الصيغ الخاصة بالفروق تبدو أبسط بكثير:
sigma2 eta=E eta2k و
sigma2 eta=E eta2k+1 (منذ ذلك الحين
E etak+1=E xik=0 )
يأخذ التعبير الأخير قيمته الدنيا ، عندما يكون اشتقاقها صفراً. لذلك عندما:
displaystyleKk+1= fracEe2k+ sigma2 xiEe2k+ sigma2 xi+ sigma2 eta
نكتب هنا معامل كالمان برفقته ، لذلك نؤكد أن ذلك يعتمد على خطوة التكرار. نحن بديلا عن المعادلة لخطأ مربع يعني
E(e2k+1) معامل كالمان
Kk+1 مما يقلل من قيمتها:
displaystyleE(e2k+1)= frac sigma2 eta(Ee2k+ sigma2 xi)Ee2k+ sigma2 xi+ sigma2 eta
لذلك قمنا بحل مشكلتنا. حصلنا على الصيغة التكرارية لحساب معامل كالمان.
مثال
يوجد على المؤامرة من بداية هذا المقال مسند مُصفى من مستشعر GPS الخيالي ، مثبت على السيارة الخيالية ، التي تتحرك مع تسارع مستمر
دولا .
xt+1=xt+على cdotdt+ xit
انظر إلى النتائج التي تمت تصفيتها مرة أخرى: تحليل
إذا نظر المرء إلى كيفية معامل كالمان
Kkدولا يتغير من التكرار
ك ، فمن الممكن أن نرى أنه يستقر على قيمة معينة
Kstab . على سبيل المثال ، إذا كان المربع يعني أخطاء المستشعر ونموذج الاحترام لبعضهما البعض من عشرة إلى واحد ، فإن مؤامرة معامل كالمان للاعتماد على خطوة التكرار ستكون كما يلي:

في المثال التالي سوف نناقش كيف يمكن تبسيط حياتنا.
المثال الثاني
في الممارسة العملية يحدث أننا لا نعرف أي شيء تقريبًا من النموذج المادي ما نقوم بالتصفية. تخيل أنك قررت تصفية تلك القياسات من مقياس التسارع المفضل لديك. في الواقع أنت لا تعرف إلى الأمام كيف سيتم نقل التسارع. الشيء الوحيد الذي قد تعرفه هو تباين خطأ المستشعر
sigma2 eta . في هذه المشكلة الصعبة ، قد نضع كل المعلومات غير المعروفة من النموذج المادي إلى المتغير العشوائي
xik :
xk+1=xk+ xik
بالمعنى الدقيق للكلمة ، لا يلبي هذا النوع من النظام الشرط الذي فرضناه على المتغير العشوائي
xik . لأنه يحمل المعلومات مجهولة بالنسبة لنا فيزياء الحركة. لا يمكننا القول أنه في أوقات مختلفة ، تكون الأخطاء مستقلة عن بعضها البعض وأن وسائلها تساوي الصفر. بمعنى آخر ، فهذا يعني أنه بالنسبة لهذا النوع من الحالات ، لا يتم تطبيق نظرية كالمان. ولكن على أي حال ، يمكننا محاولة استخدام آلية نظرية كالمان بمجرد اختيار بعض القيم المعقولة
sigma xi2 و
sigma eta2 للحصول على مجرد رسم بياني لطيف من المسند المصفاة.
ولكن هناك طريقة أبسط بكثير. رأينا ذلك مع زيادة الخطوة
ك معامل كالمان يستقر دائما إلى قيمة معينة
Kstab . لذلك بدلا من تخمين قيم المعاملات
sigma2 xi و
sigma2 eta وحساب معامل كالمان
Kkدولا بواسطة الصيغ الصعبة ، يمكننا أن نفترض أن هذا المعامل ثابت وحدد فقط هذا الثابت. لن يؤثر هذا الافتراض كثيرًا على تصفية النتائج. في البداية ، على أي حال ، لا تنطبق آلية كالمان على مشكلتنا ، وثانياً ، يستقر معامل كالمان بسرعة إلى الثابت. في النهاية يصبح كل شيء بسيطًا جدًا. لا نحتاج إلى أي صيغة تقريبًا من نظرية كالمان ، بل نحتاج فقط إلى تحديد قيمة معقولة
Kstab وأدخله في الصيغة التكرارية
xoptk+1=Kstab cdotzk+1+(1−Kstab) cdotxoptk
على الرسم البياني التالي ، يمكنك رؤية المرشح بطريقتين مختلفتين للقياسات من جهاز استشعار وهمي. الطريقة الأولى هي الطريقة الصادقة ، مع كل الصيغ من نظرية كالمان. الطريقة الثانية هي الطريقة المبسطة.

نرى أنه لا يوجد فرق كبير بين طريقتين. هناك تباين صغير في البداية ، عندما لا يزال معامل كالمان غير مستقر.
مناقشة
لقد رأينا أن الفكرة الرئيسية لفلتر كالمان هي اختيار المعامل
K بطريقة القيمة التي تمت تصفيتها
xoptk+1=Kzk+1+(1−K)(xoptk+uk)
في المتوسط سيكون أقرب ما يمكن من التنسيق الحقيقي
xk+1 . نرى أن القيمة التي تمت تصفيتها
xoptk+1 هي وظيفة خطية من قياس المجس
zk+1 والقيمة التي تمت تصفيتها السابقة
xoptk . لكن القيمة التي تمت تصفيتها السابقة
xoptk هي نفسها وظيفة خطية لقياس أجهزة الاستشعار
zk وقيمة ما قبل السابقة تصفيتها
xoptk−1 . وهلم جرا حتى نهاية السلسلة. وبالتالي فإن القيمة التي تمت تصفيتها تعتمد بشكل خطي على قراءات جميع أجهزة الاستشعار السابقة:
xoptk+1= lambda+ lambda0z0+ ldots+ lambdak+1zk+1
هذا هو السبب في أن مرشح كالمان يسمى مرشح خطي. من الممكن إثبات أن مرشح Kalman هو الأفضل من بين جميع المرشحات الخطية. الأفضل بمعنى أنه يقلل من متوسط مربع الخطأ.
حالة متعددة الأبعاد
من الممكن تعميم كل نظرية كالمان على الحالة متعددة الأبعاد. تبدو الصيغ هناك أكثر تفصيلاً بعض الشيء ولكن فكرة اشتقاقها لا تزال كما هي في بعد واحد. على سبيل المثال ، في هذا
الفيديو الجميل يمكنك رؤية المثال.
الأدب
المقال الأصلي الذي كتبه كالمان يمكنك تحميله هنا:
http://www.cs.unc.edu/~welch/kalman/media/pdf/Kalman1960.pdf