اشتقاق نموذج نظام ديناميكي لمرشح Kalman المنفصل لنظام خطي تعسفي

يعد مرشح Kalman (FC) خوارزمية خطية مثالية لتصفية معلمات النظام الخطي الديناميكي في ظل وجود ملاحظات غير مكتملة وصاخبة. يستخدم هذا الفلتر على نطاق واسع في أنظمة التحكم التقنية لتقييم ديناميات التغييرات في مواقف الاقتصاد الكلي أو الرأي العام.

تهدف هذه المقالة إلى تعريف القارئ بنهج قياسي للانتقال من نموذج مستمر لنظام ديناميكي موصوف بنظام معادلات تفاضلية خطية تعسفية إلى نموذج منفصل.

النص المخفي
وكذلك توفير وقت للقارئ من خلال القضاء على محاولات اختراع دراجة وفضح الزملاء في ضوء قبيح. لا تكون مثل المؤلف

تهدف هذه المقالة أيضًا إلى تشجيع القارئ على استخدام FC في تلك المشكلات حيث يبدو للوهلة الأولى أن FC الخطي غير قابل للتطبيق ، ولكن في الواقع قد لا يكون كذلك.
لكتابة مقال للمؤلف ، حقيقة أنه على الرغم من بساطة الأشياء التالية في بحث Google ينتج باللغتين الروسية والإنجليزية (على الأقل في الصفحة الأولى) ، لم يتمكن المؤلف من العثور عليها.

نموذج ديناميكي لمرشح Kalman المنفصل


النص المخفي
بشكل أساسي ، هذا القسم ضروري من أجل تعريف القارئ بنظام التدوين المقبول ، والذي يختلف تمامًا من كتاب لآخر ومن مقال إلى آخر. توضيح معنى جميع الكميات المدرجة في المعادلات هو خارج نطاق هذه المقالة ، في حين أن من المفهوم أن الشخص الذي يأتي إلى النور لديه فكرة عن هذا. إن لم يكن ، مرحبا بكم هنا ، هنا وهنا .

يمكن إجراء FC في شكل منفصل ومستمر. تهم FC المنفصلة التي سيتم التأكيد عليها في هذه المقالة أهمية خاصة من وجهة نظر التنفيذ العملي على أجهزة الكمبيوتر الرقمية الحديثة.

يوصف FC الخطي المنفصل بواسطة التعبيرات التالية. دع نموذج النظام ممثلاً كما يلي:

عرض $$ $$ \ mathbf {x} _ {k} = F \ mathbf {x} _ {k-1} + \ Psi \ mathbf {u} _k + \ Gamma \ mathbf {w} _k $$ display $$

حيث $ مضمنة $ f $ مضمنة - مصفوفة الانتقال ، $ inline $ \ Psi $ inline $ - مصفوفة التحكم في الانتقال ، $ inline $ \ Gamma $ inline $ - مصفوفة اضطراب الانتقال ، $ inline $ \ mathbf {x} _k $ inline $ . $ inline $ \ mathbf {u} _k $ inline $ . $ inline $ \ mathbf {w} _k $ inline $ - ناقلات الحالة والتحكم والضوضاء (اضطراب) النظام على $ مضمنة $ k $ مضمنة هذه الخطوة. نموذج المراقبة:

عرض $$ $$ \ mathbf {z} _k = H \ mathbf {x} _k + \ mathbf {n} _k $$ عرض $$

حيث $ inline $ \ mathbf {z} _k $ inline $ . $ inline $ \ mathbf {n} _k $ inline $ - متجهات المراقبة وضوضاء المراقبة على $ مضمنة $ k $ مضمنة هذه الخطوة. 5 معادلات عمل FC في هذه المقالة ليست ذات أهمية ، وبالتالي ، في حالة احتياج أي شخص لهم يتم منحهم تحت المفسد.

النص المخفي
المرحلة الأولى ، استقراء:

عرض $$ $$ \ mathbf {x} _ {k | k-1} = F \ hat {\ mathbf {x}} _ {k-1} + \ mathbf {w} _k $$ عرض $$

عرض $$ $ P_ {k | k-1} = FP_ {k-1} F ^ T + Q_k $$ عرض $$

وتسمى هذه المرحلة الاستقراء. الخطوة التالية ، تسمى تصحيح:

عرض $$ $ K = PH ^ T (HP_ {k | k-1} H ^ T + R) ^ {- 1} $$ عرض $$

التقييم نفسه

عرض $$ $$ \ قبعة {\ mathbf {x}} _ {k} = x_ {k | k-1} + K (H \ mathbf {z} _k- \ mathbf {x} _ {k | k-1 }) $$ عرض $$

عرض $$ $ P_k = (E-KH) P_ {k | k-1} $$ عرض $$



فيما يلي ، نتحدث عن أنظمة ثابتة (مع معاملات ثابتة) والتي من أجلها المصفوفات $ مضمنة $ f $ مضمنة . $ inline $ \ Psi $ inline $ و $ inline $ \ Gamma $ inline $ مستقلة عن الرقم $ مضمنة $ k $ مضمنة .

نموذج نظام ديناميكي مستمر. مساحة الدولة.


في الغالبية العظمى من التطبيقات العملية ، تقوم FC بتصفية معلمات الأنظمة الديناميكية المستمرة الموصوفة بالمعادلات التفاضلية للوقت المستمر. يحدث حساب FC في هذه الحالة على كمبيوتر رقمي ، مما يجعل FC منفصلًا تلقائيًا ويجب أن يكون النموذج وفقًا لذلك. للحصول على نموذج منفصل لهذه الأنظمة المستمرة ، من الضروري أولاً تكوين ناقل الحالة نفسه (ناقل الطور) ، وهو نظام معادلة الحالة ، ثم تفكيكها ، وبالتالي الحصول على المصفوفات $ مضمنة $ f $ مضمنة . $ inline $ \ Psi $ inline $ و $ inline $ \ Gamma $ inline $ .

دع سلوك النظام يمكن وصفه بواسطة مجموعة من $ inline $ n $ inline $ معادلات تفاضلية من الدرجة الأولى:

عرض $$ $$ \ dot {\ mathbf {x}} (t) = A \ mathbf {x} (t) + B \ mathbf {u} (t) + G \ mathbf {w} (t) $$ عرض $$

هنا $ inline $ \ mathbf {x} $ inline $ - $ inline $ n $ inline $ -دولة الأبعاد متجه للنظام. متجه الحالة (يُعرف أيضًا باسم متجه الطور) هو متجه يحتوي على متغيرات تصف النظام ومشتقاته حتى الترتيب المطلوب. $ inline $ \ mathbf {u} $ inline $ - $ مضمنة $ r $ مضمنة $ - ناقل التحكم في الأبعاد للنظام الذي يصف التأثير المتحكم به على النظام.
$ inline $ \ mathbf {w} $ inline $ $ inline $ p $ inline $ متجه الأبعاد يحتوي على تأثير عشوائي غير المنضبط على النظام ، أو الضوضاء. $ inline $ a $ inline $ - مصفوفة حجم حالة النظام $ inline $ n \ times n $ inline $ . $ مضمنة $ B $ مضمنة - مصفوفة التحكم في الحجم $ inline $ n \ times r $ inline $ . $ مضمنة $ g $ مضمنة - مصفوفة اضطراب الحجم $ inline $ n \ times p $ inline $ . في هذا التعبير ، يتم حساب جميع المنتجات وفقًا لقواعد ضرب المصفوفة. في الحالة العامة ، فإن عناصر جميع المصفوفات هي وظائف زمنية ، ومع ذلك ، فإن الأنظمة الثابتة فقط يتم أخذها في الاعتبار في هذه المقالة ، حيث تكون العناصر مستقلة عن الوقت.

فيما يلي مثال للانتقال من وصف النظام باستخدام معادلة تفاضلية ذات ترتيب أعلى إلى وصف من خلال مساحة الدولة.

مثال
دع حركة نقطة على طول بعض المحور $ مضمنة $ ox $ مضمنة موصوفة بمعادلة تفاضلية من الدرجة الثانية:

عرض $$ $$ \ ddot {x} = - \ omega ^ 2 × $$ عرض $$

إذا لم يتذكر المرء ، يتم تمثيل حركة متذبذبة. ننتقل من معادلة من الدرجة الثانية إلى نظام من معادلتين عن طريق إدخال متغير جديد $ inline $ x_1 = \ dot {x} $ inline $ . الآن لدينا:

عرض $$ $$ \ بدء {محاذاة} \ dot {x} & = x_1 \\ \ dot {x} _1 & = - \ omega ^ 2 x \ end {محاذاة} $$ عرض $$

يمكن كتابة هذا النظام من المعادلات في شكل مصفوفة ، في حين أن ناقلات الحالة $ inline $ \ mathbf {x} = [x \، x_1] ^ T $ inline $ ، وسوف تكون مصفوفة الدولة

عرض $$ $$ A = \ start {bmatrix} 0 & 1 \\ - \ omega ^ 2 & 0 \ end {bmatrix} $$ عرض $$

دخلت متغير $ inline $ x_1 $ inline $ يلعب دور السرعة. قالب $ مضمنة $ B $ مضمنة و $ مضمنة $ g $ مضمنة في هذا المثال ، تكون صفرية ، نظرًا لعدم وجود تأثيرات تحكم ومثيرة للقلق.

الانتقال المنفصل


من أجل الانتقال الصحيح إلى المنطقة المنفصلة (وبعبارة أخرى ، تقديرية النموذج) ، نحتاج إلى تقديم مفهوم الأس . الأس المصفوفة هي وظيفة مصفوفة تم الحصول عليها عن طريق القياس مع توسيع الوظيفة الأسية في سلسلة تايلور في حقيقة ماكلورين :

عرض $$ $$ e ^ {At} = E + At + \، ... \، \ dfrac {A ^ nt ^ n} {n!} + \، ... \، = \ sum_ {k = 0 } ^ {\ infty} \ dfrac {A ^ nt ^ n} {n!} $$ عرض $$

حيث تحت $ مضمنة $ E $ مضمنة يعني مصفوفة وحدة.

يتطلب الانتقال الدقيق من نموذج مستمر في مساحة الدولة إلى نموذج منفصل البحث عن حل لنظام متجانس $ inline $ \ dot {\ mathbf {x}} (t) = A (t) \ mathbf {x} (t) $ inline $ ، ثم الانتقال إلى النظام الأصلي ، وإيجاد حل مشترك والتكامل من اللحظة الأولى $ inline $ t_0 $ inline $ لبعض $ مضمنة $ t $ مضمنة $ . يمكن العثور على استنتاج صارم في [1] ؛ هنا ، يتم تقديم النتيجة النهائية.

في حالة المركزية لنموذج ديناميكي مستمر (مستقل عن المصفوفات $ inline $ a $ inline $ . $ مضمنة $ B $ مضمنة . $ مضمنة $ g $ مضمنة من وقت) للحصول على نموذج منفصل ، يمكننا تقديم مصفوفة انتقال مساعدة للنظام $ inline $ \ Phi (t، \ tau) $ inline $ من اللحظة $ inline $ \ tau $ inline $ في الوقت الحالي $ مضمنة $ t $ مضمنة $ حيث $ inline $ t> \ tau $ inline $ :

عرض $$ $$ \ Phi (t، \ tau) = e ^ {A (t- \ tau)} = \ sum_ {k = 0} ^ {\ infty} \ dfrac {A ^ nt ^ n} {n! عرض $$ $

علاوة على ذلك ، باستخدام هذه المصفوفة المساعدة ، يمكن الحصول على المصفوفات اللازمة لنموذج منفصل:

عرض $$ $ F = \ Phi (t + T، t) = e ^ {AT} = E + AT + \ dfrac {A ^ 2T ^ 2} {2!} + \ \ dfrac {A ^ 3T ^ 3} {3!} + ... $$ عرض $$

عرض $$ $$ \ Gamma = \ int_ {kT} ^ {(k + 1) T} \ Phi (t_ {k + 1} ، \ tau) G (\ tau) d \ tau $$ عرض $$

عرض $$ $$ \ Psi = \ int_ {kT} ^ {(k + 1) T} \ Phi (t_ {k + 1} ، \ tau) B (\ tau) d \ tau $$ عرض $$

هنا تحت $ inline $ B (\ tau) $ inline $ و $ inline $ G (\ tau) $ inline $ نعني المصفوفات من المعادلات المستمرة ، من خلال $ inline $ \ Psi $ inline $ و $ inline $ \ Gamma $ inline $ المصفوفات المطلوبة من نموذج منفصل.

أمثلة عملية


النص المخفي
لسوء الحظ ، لن تحتوي الأمثلة على بعض الانحرافات في المصفوفة $ مضمنة $ f $ مضمنة ، نظرًا لأن المؤلف كسول جدًا بحيث لا يخترع أمثلة من خلال إجراءات التحكم ، وبشكل عام ، كجزء من أطروحته ، فإنه يتعامل مع مشكلات التنقل حيث لا توجد إجراءات تحكم. علاوة على ذلك ، مع المعرفة البدائية للتحليل الرياضي ، بعد تحليل الأمثلة ، لا ينبغي لهذه الإجراءات أن تسبب مشاكل. للحصول على أمثلة غير صفرية $ inline $ \ Gamma $ inline $ و $ inline $ \ Psi $ inline $ يمكن أن تذهب إلى [2].

لتوضيح الرياضيات أعلاه ، فكر في مثالين. أحدها الاحماء ، والثاني توضيحي ، لإظهار قدرات الطريقة الموصوفة.

تافه


دع الكائن يتحرك على طول المحور $ مضمنة $ ox $ مضمنة مع السرعة الأولية $ inline $ v_0 $ inline $ وتسارع مستمر $ inline $ a $ inline $ . ثم يمكن تمثيل نموذجه على النحو التالي:

عرض $$ $$ \ ddot {x} = عرض $$ $$

نحن نمثل هذا النموذج في شكل نظام من المعادلات التفاضلية المتجانسة. للقيام بذلك ، نقسم المعادلة إلى نظام من ثلاثة أجهزة تحكم عن بعد:

عرض $$ $$ \ بدء {محاذاة} \ dot {x} & = v_x \\ \ dot {v} _x & = a_x \\ \ dot {a} _x & = 0 \ end {محاذاة} عرض $$ $

عند كتابة أنظمة المعادلات ، تتم إضافة المشتقات التالية هناك حتى الآن ، ما يلي مطلوب لحساب المعادلة الحالية. ثم في النظام الحالي ، لا يمكنك التوقف عند $ inline $ v_x $ inline $ ، لأن الحساب يتطلب $ inline $ a_x $ inline $ . في الوقت نفسه لحساب $ inline $ a_x $ inline $ مشتق $ inline $ \ dot {a} _x $ inline $ غير مطلوب ، لذلك ، لإدخال مشتقات النظام أعلاه $ inline $ a_x $ inline $ في ناقل الدولة لا معنى له.

الجمع بين ثلاثة متغيرات في ناقل الدولة $ inline $ \ mathbf {x} = [x \، v_x \، a_x] ^ T $ inline $ واكتب نظام المعادلات في شكل مصفوفة للانتقال إلى نموذج مساحة الحالة:

عرض $$ $$ \ dot {\ mathbf {x}} = A \ mathbf {x} $$ عرض $$

اين المصفوفة

عرض $$ $ A = \ start {bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \ end {bmatrix} $$ عرض $$

يمكننا الآن حساب مصفوفة الانتقال للنظام الديناميكي المنفصل الذي يقابل المتواصل قيد الدراسة:
$ inline $ \ تبدأ {align} F = E + A \ cdot T + A \ times A \ cdot \ dfrac {T ^ 2} {2} = \ تبدأ {bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \ end {bmatrix} + \ start {bmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 0 & 0 & 0 \ end {bmatrix} \ cdot T + \\ \ تبدأ {bmatrix} 0 & 0 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \ end {bmatrix} \ cdot \ dfrac {T ^ 2} {2} = \ تبدأ {bmatrix} 1 & T & T ^ 2/2 \\ 0 & 1 & T \\ 0 & 0 & 1 \ end {bmatrix} \ end {align} $ inline $
يمكن للقارئ التحقق من ذلك $ مضمنة $ A ^ 3 $ مضمنة وما فوق هو مصفوفة الصفر.
بهذه الطريقة ، تم الحصول على مصفوفة انتقال معروفة للجميع ، والتي تم استنتاجها دون تطبيق أي افتراضات.

مثال غير بديهي


نحن نفترض أن جسمنا يتحرك في الفضاء ثلاثي الأبعاد مع سرعة خطية ثابتة معينة (modulo) وبسرعة زاويّة ممثلة بواسطة pseudovector:

عرض $$ $$ \ omega = [\ omega_x \، \ omega_y \، \ omega_z] ^ T $$ عرض $$

تحتاج أولاً إلى تعويض معادلات مساحة الدولة. نكتب التسارع عندما تتحرك في جميع أنحاء الدائرة. من دورة الفيزياء لفصل دراسي واحد ، من المعروف أن تسارع الجاذبية هو نتاج متجه للسرعات الزاوية والخطية:

عرض $$ $ \ dot {v} = \ omega \ times v عرض $ $

هنا ناقل السرعة هو $ inline $ v = [v_x \، v_y \، v_z] ^ T $ inline $ .
سنقوم بكتابة المنتج الموجه بمزيد من التفاصيل:

عرض $$ $ \ omega \ times v = \ تبدأ {bmatrix} \ omega_x \\ \ omega_y \\ \ omega_z \ end {bmatrix} \ times \ تبدأ {bmatrix} v_x \\ v_y \\ v_z \ end {bmatrix} = \ تبدأ {bmatrix} \ omega_yz- \ omega_zy \\ \ omega_zx- \ omega_xz \\ \ omega_xy- \ omega_yx \ end {bmatrix} $$ عرض $$

الآن نكتب نظام المعادلات

عرض $$ $ \ تبدأ {محاذاة} \ dot {x} & = v_x \\ \ dot {y} & = v_y \\ \ dot {z} & = v_z \\ \ dot {v} _x & = \ omega_yz - \ omega_zy \\ \ dot {v} _y & = \ omega_zx- \ omega_xz \\ \ dot {v} _z & = \ omega_xy- \ omega_yx \ end {align} $$ عرض $$

عند الانتقال إلى شكل المصفوفة ، المصفوفة $ inline $ a $ inline $ سيكون:

عرض $$ $ A = \ start {bmatrix} 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 & \ 0 & 0 & 0 & 0 & - \ omega_z & \ omega_y \\ 0 & 0 & 0 & \ omega_z & 0 & - \ omega_x \\ 0 & 0 & 0 & - \ omega_y & \ omega_x & 0 \ end { bmatrix} $$ عرض $$



بعد ذلك ، ننتقل إلى المصفوفة $ مضمنة $ f $ مضمنة بواسطة التعبير المقابل. منذ شفويا ضرب المصفوفات حسب الحجم $ مضمنة $ 6 \ مرة 6 $ مضمنة ثلاث مرات أمر صعب للغاية ، واحتمال الخطأ كبير ، وهذه ليست مسألة ملكية ، ثم سنكتب نصًا باستخدام مكتبة sympy Python:
from sympy import symbols, Matrix, eye x, y, z, T = symbols('xyz T') vx, vy, vz = symbols('v_x v_y v_z') wx, wy, wz = symbols('w_x w_y w_z') A = Matrix([ [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1], [0, 0, 0, 0, -wz, wy], [0, 0, 0, wz, 0, -wx], [0, 0, 0, -wy, wx, 0] ]) F = eye(6) + A*T + A*A*T**2/2 from sympy import latex print(latex(F)) 

وتشغيله ، نحصل على شيء مثل هذا:

النص المخفي
 \left[\begin{matrix}1 & 0 & 0 & T & - \frac{T^{2} w_{z}}{2} & \frac{T^{2} w_{y}}{2}\\0 & 1 & 0 & \frac{T^{2} w_{z}}{2} & T & - \frac{T^{2} w_{x}}{2}\\0 & 0 & 1 & - \frac{T^{2} w_{y}}{2} & \frac{T^{2} w_{x}}{2} & T\\0 & 0 & 0 & \frac{T^{2} \left(- w_{y}^{2} - w_{z}^{2}\right)}{2} + 1 & \frac{T^{2} w_{x} w_{y}}{2} - T w_{z} & \frac{T^{2} w_{x} w_{z}}{2} + T w_{y}\\0 & 0 & 0 & \frac{T^{2} w_{x} w_{y}}{2} + T w_{z} & \frac{T^{2} \left(- w_{x}^{2} - w_{z}^{2}\right)}{2} + 1 & \frac{T^{2} w_{y} w_{z}}{2} - T w_{x}\\0 & 0 & 0 & \frac{T^{2} w_{x} w_{z}}{2} - T w_{y} & \frac{T^{2} w_{y} w_{z}}{2} + T w_{x} & \frac{T^{2} \left(- w_{x}^{2} - w_{y}^{2}\right)}{2} + 1\end{matrix}\right] 


يتحول ذلك بعد تأطير العلامات المناسبة ولصقها في الكود المصدري للمادة إلى:

عرض $$ $ F = \ left [\ start {matrix} 1 & 0 & 0 & T & - \ frac {T ^ {2} w_ {z}} {2} & \ frac {T ^ {2} w_ {y}} {2} \\ 0 & 1 & 0 & \ frac {T ^ {2} w_ {z}} {2} & T & - \ frac {T ^ {2} w_ {x}} {2 } \\ 0 & 0 & 1 & - \ frac {T ^ {2} w_ {y}} {2} & \ frac {T ^ {2} w_ {x}} {2} & T \\ 0 & 0 & 0 & \ frac {T ^ {2} \ left (- w_ {y} ^ {2} - w_ {z} ^ {2} \ right)} {2} + 1 & \ frac {T ^ {2} w_ {x} w_ {y}} {2} - T w_ {z} & \ frac {T ^ {2} w_ {x} w_ {z}} {2} + T w_ {y} \\ 0 & 0 & 0 & \ frac {T ^ {2} w_ {x} w_ {y}} {2} + T w_ {z} & \ frac {T ^ {2} \ left (- w_ {x} ^ {2} - w_ {z} ^ {2} \ right)} {2} + 1 & \ frac {T ^ {2} w_ {y} w_ {z}} {2} - T w_ {x} \\ 0 & 0 & 0 & \ frac {T ^ {2} w_ {x} w_ {z}} {2} - T w_ {y} & \ frac {T ^ {2} w_ {y} w_ {z}} {2} + T w_ {x} & \ frac {T ^ {2} \ left (- w_ {x} ^ {2} - w_ {y} ^ {2} \ right)} {2} + 1 \ end {matrix} \ اليمين] $$ عرض $$


وبالتالي ، يمكن اشتقاق مصفوفة انتقال مرشح Kalman للحركة الدائرية.
على عكس الحالة السابقة ، نتيجة البناء $ inline $ a $ inline $ إلى قوة أعلى من 3 ليست مصفوفة الصفر.

على سبيل المثال <math> $ inline $ A ^ 3 $ inline $ </math>

عرض $$ $ \ left [\ start {matrix} 0 & 0 & 0 & - w_ {y} ^ {2} - w_ {z} ^ {2} & w_ {x} w_ {y} & w_ {x } w_ {z} \\ 0 & 0 & 0 & w_ {x} w_ {y} & - w_ {x} ^ {2} - w_ {z} ^ {2} & w_ {y} w_ {z} \ \ 0 & 0 & 0 & w_ {x} w_ {z} & w_ {y} w_ {z} & - - w_ {x} ^ {2} - w_ {y} ^ {2} \\ 0 & 0 & 0 & 0 & w_ {x} ^ {2} w_ {z} - w_ {z} \ left (- w_ {y} ^ {2} - w_ {z} ^ {2} \ right) & - w_ {x} ^ {2} w_ {y} + w_ {y} \ left (- w_ {y} ^ {2} - w_ {z} ^ {2} \ right) \\ 0 & 0 & 0 & - w_ {y} ^ {2} w_ {z} + w_ {z} \ left (- w_ {x} ^ {2} - w_ {z} ^ {2} \ right) & 0 & w_ {x} w_ {y} ^ { 2} - w_ {x} \ left (- w_ {x} ^ {2} - w_ {z} ^ {2} \ right) \\ 0 & 0 & 0 & w_ {y} w_ {z} ^ {2 } - w_ {y} \ left (- w_ {x} ^ {2} - w_ {y} ^ {2} \ right) & - w_ {x} w_ {z} ^ {2} + w_ {x} \ left (- w_ {x} ^ {2} - w_ {y} ^ {2} \ right) و 0 \ end {matrix} \ right] $$ عرض $$



أو <math> $ inline $ A ^ 4 $ inline $ </math>

عرض $$ $ \ left [\ start {matrix} 0 & 0 & 0 & 0 & w_ {x} ^ {2} w_ {z} - w_ {z} \ left (- w_ {y} ^ {2} - w_ {z} ^ {2} \ right) & - w_ {x} ^ {2} w_ {y} + w_ {y} \ left (- w_ {y} ^ {2} - w_ {z} ^ { 2} \ right) \\ 0 & 0 & 0 & - w_ {y} ^ {2} w_ {z} + w_ {z} \ left (- w_ {x} ^ {2} - w_ {z} ^ { 2} \ right) & 0 & w_ {x} w_ {y} ^ {2} - w_ {x} \ left (- w_ {x} ^ {2} - w_ {z} ^ {2} \ right) \ \ 0 & 0 & 0 & w_ {y} w_ {z} ^ {2} - w_ {y} \ left (- w_ {x} ^ {2} - w_ {y} ^ {2} \ right) & - w_ {x} w_ {z} ^ {2} + w_ {x} \ left (- w_ {x} ^ {2} - w_ {y} ^ {2} \ right) & 0 \\ 0 & 0 & 0 & - w_ {y} \ left (- w_ {x} ^ {2} w_ {y} + w_ {y} \ left (- w_ {y} ^ {2} - w_ {z} ^ {2} \ right ) \ right) + w_ {z} \ left (w_ {x} ^ {2} w_ {z} - w_ {z} \ left (- w_ {y} ^ {2} - w_ {z} ^ {2} \ right) \ right) & w_ {x} \ left (- w_ {x} ^ {2} w_ {y} + w_ {y} \ left (- w_ {y} ^ {2} - w_ {z} ^ {2} \ right) \ right) & - w_ {x} \ left (w_ {x} ^ {2} w_ {z} - w_ {z} \ left (- w_ {y} ^ {2} - w_ { z} ^ {2} \ right) \ right) \\ 0 & 0 & 0 & - w_ {y} \ left (w_ {x} w_ {y} ^ {2} - w_ {x} \ left (- w_ {x} ^ {2} - w_ {z} ^ {2} \ right) \ right) & w_ {x} \ left (w_ {x} w_ {y} ^ {2} - w_ {x} \ left ( - w_ {x} ^ {2} - w_ {z} ^ {2} \ right) \ right) - w_ {z} \ left (- w _ {y} ^ {2} w_ {z} + w_ {z} \ left (- w_ {x} ^ {2} - w_ {z} ^ {2} \ right) \ right) & w_ {y} \ left (- w_ {y} ^ {2} w_ {z} + w_ {z} \ left (- w_ {x} ^ {2} - w_ {z} ^ {2} \ right) \ right) \\ 0 & 0 & 0 & w_ {z} \ left (- w_ {x} w_ {z} ^ {2} + w_ {x} \ left (- w_ {x} ^ {2} - w_ {y} ^ {2 } \ right) \ right) & - w_ {z} \ left (w_ {y} w_ {z} ^ {2} - w_ {y} \ left (- w_ {x} ^ {2} - w_ {y} ^ {2} \ right) \ right) & - w_ {x} \ left (- w_ {x} w_ {z} ^ {2} + w_ {x} \ left (- w_ {x} ^ {2} - w_ {y} ^ {2} \ right) \ right) + w_ {y} \ left (w_ {y} w_ {z} ^ {2} - w_ {y} \ left (- w_ {x} ^ {2 } - w_ {y} ^ {2} \ right) \ right) \ end {matrix} \ right] $$ عرض $$



لذلك ، تمثيل مثل هذه المصفوفة هو ممكن مع دقة محدودة. ومع ذلك ، متى $ inline $ \ omega T \ ll 1 $ inline $ سلسلة تم الحصول عليها في عناصر المصفوفة $ مضمنة $ f $ مضمنة تتلاقى بسرعة كبيرة. للاستخدام العملي ، ما يكفي من الأعضاء إلى الدرجة الثانية ، ونادرا ما إلى الثالثة وحتى أكثر إلى الرابعة.

بالإضافة إلى ذلك ، نوضح تشغيل المصفوفة $ مضمنة $ f $ مضمنة يسأل ناقلات $ inline $ \ omega $ inline $ . $ inline $ \ bf {x} _0 $ inline $ . $ inline $ \ bf {v} _0 $ inline $ وتسلسل تكرار النموذج:

عرض $$ $$ \ mathbf {x} _k = F \ mathbf {x} _ {k-1} $$ عرض $$

نحن نحسب هذا التسلسل تكرار ل $ inline $ \ omega T \ approx \ frac {1} {100} $ inline $

رمز بايثون
 import numpy as np from numpy import pi T = 1 wx, wy, wz = 0, 2*pi/100/2**.5, 2*pi/100/2**.5 vx0 = 10 A = np.array([ [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 1, 0], [0, 0, 0, 0, 0, 1], [0, 0, 0, 0, -wz, wy], [0, 0, 0, wz, 0, -wx], [0, 0, 0, -wy, wx, 0] ]) F = np.eye(6) + A * T + A @ A * T**2/2 + A @ A @ A * T**3/6 X = np.zeros((6, 101)) X[:, 0] = np.array([0, 0, 0, vx0, 0, 0]) for k in range(X.shape[1] - 1): X[:, k + 1] = F @ X[:, k] import matplotlib as mpl import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.gca(projection='3d') ax.plot(X[0, :], X[1, :], X[2, :]) ax.set_xlabel('X') ax.set_ylabel('Y') ax.set_zlabel('Z') plt.show() 

اسمحوا لي أن أذكرك أنه بالنسبة للنوع np.array ، يشير الرمز "@" إلى ضرب المصفوفة. تقاس المسافات والسرعات في الببغاوات ، السرعة الزاوية في rad / s. من الضروري أيضًا تذكر أنه من أجل الحصول على دائرة ، من الضروري أن تكون متجهات السرعة والسرعة الزاوية متعامدة ، وإلا ستظهر لولبية بدلاً من الدائرة.

نتيجة لذلك ، عند تحديد موقع مبدئي معين ، والسرعة والسرعة الزاوية ، يمكن للمرء الحصول على مثل هذا المسار

يمكن الحصول على دقة تزامن النقطتين الأولى والأخيرة كـ
 >>> print(X[:3, 0] - X[:3,-1]) [-0.00051924 -0.0072984 0.0072984 ] 

مع دائرة نصف قطرها تحول من 150 وحدة ، الخطأ النسبي لا يتجاوز قيم الطلب $ inline $ 5 \ cdot 10 ^ {- 5} $ inline $ . هذه الدقة كافية تمامًا لطراز FC الذي يراقب هدف الدوران.

استنتاج


إذا تم استخدام FC سابقًا بشكل أساسي لحل مشكلات التنقل ، حيث حقق استخدام نماذج الحركة الخطية نتيجة جيدة ، فمع تطور التطبيقات الحديثة مثل الروبوتات ورؤية الكمبيوتر وما إلى ذلك ، زادت الحاجة إلى نماذج أكثر تعقيدًا لحركة الكائنات. علاوة على ذلك ، فإن تطبيق النهج أعلاه يجعل من الممكن تجميع نموذج FC منفصل دون تكلفة معينة ، مما سيسهل مهمة المطورين. القيد الوحيد لهذا النهج هو أن النموذج المستمر للنظام الديناميكي يجب أن يوصف بمجموعة من المعادلات الخطية ، أو على الأقل خطية ، في فضاء الدولة.

بإيجاز ما سبق ، يمكننا إعطاء خوارزمية لتوليف مصفوفة الانتقال FC:

  1. كتابة المعادلة التفاضلية للنظام
  2. الانتقال إلى متجه الدولة ومساحة الدولة
  3. الخطي إذا لزم الأمر
  4. تمثيل المصفوفة الانتقالية في شكل الأس المصفوفة واقتطاع السلسلة إذا لزم الأمر
  5. حساب المصفوفات المتبقية مع مراعاة المصفوفة الانتقالية

يرحب المؤلف بالنقد البناء فيما يتعلق بالأخطاء التي ارتكبت ، والأخطاء ، والتركيبات غير الصحيحة ، والطرق غير المذكورة ، وأكثر من ذلك. شكرا لاهتمامكم!

الأدب المستخدم


[1] Medic J. التقديرات والتحكم الخطي الأمثل من الناحية الإحصائية. العابرة. من الانجليزية إد. AS شاتالوفا موسكو. دار النشر "الطاقة" ، 1973 ، 440 ص.
[2] Matveev V.V. أساسيات بناء نظم القصور الذاتي بالقصور الذاتي في سان بطرسبرغ: مركز أبحاث الدولة في الاتحاد الروسي OJSC Concern TsNII Elektribribor ، 2009. - 280 ثانية. ISBN 978-5-900180-73-3

Source: https://habr.com/ru/post/ar474150/


All Articles