نواصل سلسلة من المقالات حول أتمتة أداء الأيروبكس على الطائرات بدون طيار الصغيرة. تحتوي هذه المقالة ، أولاً وقبل كل شيء ، على هدف تعليمي: هنا نوضح كيفية إنشاء أبسط نظام تحكم آلي (ACS) باستخدام مثال مهمة أداء الأكروبات "البرميل" عند التحكم في طائرة فقط مع الجنيحات. هذه المقالة هي الثانية في سلسلة من المنشورات "Flight UAV" ، التي تحكي عن عملية بناء أجزاء الأجهزة والبرمجيات من البنادق ذاتية الدفع في شكل تدريب.

رابط المقال السابق للدورة:
1. "الرحلة بدون طيار. كيفية صنع برميل "المحتوى:
مقدمةنموذج الحركةمعلمات النموذج. لحظة الجمودمعلمات النموذج. مشتقات لحظة اللفالتحقق من النموذجتوليف التحكم لأداء البرميلتجربة الطيرانملاحظاتالاستنتاجاتمقدمة
لذا ، قررنا تنفيذ "البرميل" في الوضع التلقائي. من الواضح ، من أجل التنفيذ التلقائي للرقم ، من الضروري صياغة قانون الرقابة المطابق. ستكون عملية الاختراع أكثر إيلامًا وأسرع إذا استخدمت نموذجًا رياضيًا لحركة الطائرة. يتطلب اختبار قانون التحكم في تجربة الطيران ، على الرغم من الإمكان ، مزيدًا من الوقت ، ويمكن أن يكون أكثر تكلفة بكثير في حالة فقد الجهاز أو تلفه.
نظرًا لأن الزوايا الصغيرة للهجوم والانزلاق في الطائرة لا ترتبط حركة التدحرج عمليًا بالحركة في قناتين أخريين: المسار والطولي - لإكمال "برميل" بسيط ، سيكون كافياً لبناء نموذج حركة فقط حول محور واحد - محور
OX لمحطة SC المرتبطة. ولنفس السبب ، لن يتغير قانون التحكم في الجنيح بشكل كبير عندما يتعلق الأمر بإنشاء نظام تحكم كامل.
نموذج الحركة
معادلة حركة
الطائرة حول المحور الطولي
OX لـ SC المرتبط بسيطة للغاية:
أين
هي لحظة الجمود حول المحور
OX ، واللحظة
يتكون من عدة مكونات ، للحصول على وصف واقعي لحركة طائرتنا ، يكفي النظر في اثنين فقط:
أين
- اللحظة بسبب دوران الطائرة حول محور
OX (لحظة التخميد) ،
- اللحظة بسبب انحراف الجنيحات (لحظة التحكم). التعبير الأخير مكتوب بشكل خطي: لحظة اللف
يعتمد خطيا على السرعة الزاوية
وزاوية انحراف الجنيح
مع معاملات التناسب المستمرة
و
وفقًا لذلك.
كما تعلم (على سبيل المثال ، من
ويكي ) ، معادلة تفاضلية خطية
يتوافق مع الارتباط غير الدوري من الدرجة الأولى
أين
- وظيفة التحويل ،
- عامل التمايز ،
هل الوقت ثابت و
- كسب.
كيف تنتقل من معادلة تفاضلية إلى دالة تحويل؟في حالتنا ، من معلمات المعادلة إلى معلمات دالة التحويل ، يمكننا المضي قدمًا على النحو التالي (مع العلم أن المشتق
سلبي):
للارتباط غير الدوري ، ثابت الوقت
يساوي الوقت الذي تكون فيه كمية الإنتاج
مع تأثير خطوة واحدة لكمية الإدخال
يأخذ قيمة تختلف عن الحالة المستقرة بنسبة 5٪ تقريبًا ، والمكاسب
يساوي رقميًا قيمة الحالة المستقرة لقيمة المخرجات مع تأثير خطوة واحدة:
هناك معلمتان غير معروفتين في نموذج الحركة المركبة: الكسب
وثابت الزمن
. يتم التعبير عن هذه المعلمات من خلال خصائص النظام المادي: لحظة الجمود
وكذلك مشتقات لحظة لفة
و
:
وهكذا ، إذا كانت لحظة الجمود معروفة
بعد ذلك ، بعد تحديد معلمات النموذج ، من الممكن استعادة معلمات النظام منها.
معلمات النموذج. لحظة الجمود
تتكون طائراتنا من الأجزاء التالية: الجناح ، جسم الطائرة مع الريش ، المحرك ، البطارية (البطارية)
وإلكترونيات الطيران :

وتشمل إلكترونيات الطيران: لوحة الطيار الآلي ،
ولوحة استقبال
SNA ، ولوحة مودم الراديو ، ولوحة الاستقبال للإشارة من معدات التحكم ، ومنظمين للجهد ، ومنظم سرعة المحرك ، وكذلك توصيل الأسلاك.

بسبب الوزن المنخفض لإلكترونيات الطيران ، يمكن إهمال مساهمتها في إجمالي لحظة الجمود.
كيف تم تقدير لحظة الجمود؟تقدير لحظة الجمود
يمكن القيام به على النحو التالي. دعونا نلقي نظرة على المستوى على طول المحور
OX :

ثم تخيلها في شكل النموذج المبسط التالي:
مخطط لحساب لحظة الجمود . في أعلى اليسار - البطارية ، أسفل اليمين - المحرك. يقع المحرك والبطارية على محور جسم الطائرةيمكن ملاحظة أنه لإنشاء النموذج ، تم التخلص من العارضة والذيل الأفقي والمسمار وإلكترونيات الطيران. في هذه الحالة ، بقي: جسم الطائرة ، الجناح ، البطارية ، المحرك. من خلال قياس الكتل والأبعاد المميزة لكل جزء ، يمكننا حساب لحظات القصور الذاتي لكل جزء نسبة إلى المحور الطولي للجسم:
- الجناح (قضيب رفيع):
- جسم الطائرة (اسطوانة جوفاء):
- البطارية (اللوحة):
- المحرك (القرص):
يتم الحصول على القيمة الإجمالية للحظة القصور الذاتي للطائرة بالنسبة للمحور
OX عن طريق إضافة لحظات القصور الذاتي للأجزاء:
تقدير مساهمة كل جزء من أجزاء الطائرة في إجمالي لحظة الجمود
اتضح ما يلي:
- الجناح - 96.3٪ ،
- جسم الطائرة - 1.6٪ ،
- المحرك والبطارية - 2٪ ،
يمكن ملاحظة أن المساهمة الرئيسية في إجمالي لحظة الجمود
يجعل الجناح. هذا يرجع إلى حقيقة أن الجناح لديه حجم عرضي كبير إلى حد ما (امتداد الجناح - 1 م):

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

في تجربة الطيران ، كان من الممكن الحصول على بيانات حول زاوية انحراف الجنيحات والسرعة الزاوية لدوران الطائرة. قام الطيار بتشغيل الطائرة في الوضع اليدوي ، وحلقت في دائرة ، واستدارت و "براميل" ، وسجلت المعدات على متن الطائرة وأرسلت المعلومات اللازمة إلى المحطة الأرضية. ونتيجة لذلك ، تم الحصول على التبعيات اللازمة:
(درجة / ق) و
(ب / ع). القيمة
يمثل زاوية انحراف الجنيح المقيس: قيمة 1 تقابل أقصى انحراف ، وقيمة −1 تقابل الحد الأدنى:

كيف تحدد الآن
و
من البيانات المستلمة؟ الجواب هو قياس المعلمات العابرة على الرسوم البيانية.
و
.
كيف تم تحديد المعاملين k و T؟ربح
تم تحديده من خلال تعيين قيمة قيمة الحالة الثابتة للسرعة الزاوية إلى قيمة الانحراف الجنيح:
اعتماد على زاوية انحراف الجنيح وسرعة اللف الزاوي على الوقت الذي تم الحصول عليه في تجربة الطيرانفي الشكل السابق ، تتطابق أقسام قيمة الحالة المستقرة للسرعة الزاوية تقريبًا ، على سبيل المثال ، مع الأجزاء القريبة من الغرسات الزمنية 422 و 425 و 438 ثانية (مميزة باللون الأحمر الداكن في الشكل).
ثابت الزمن
تحدد من نفس الرسوم البيانية. لهذا ، تم العثور على أجزاء من تغير حاد في زاوية انحراف الجنيح ، ثم تم قياس الوقت الذي تأخذ فيه السرعة الزاوية قيمة تختلف عن قيمة الحالة المستقرة بنسبة 5 ٪.
نتيجة تحديد قيم ثابت الوقت والكسب هي كما يلي:
،
. هذه القيم من المعاملات ذات القيمة المعروفة للحظة القصور الذاتي
تتوافق القيم التالية لمشتقات الزخم الزاوي:
التحقق من النموذج
لذا ، بعد بناء نموذج ، أساسه ارتباط غير دوري
يمكن التحقق من ذلك عن طريق تطبيق إشارة على الإدخال
تم الحصول عليها من تجربة الطيران ومقارنة إشارة خرج النموذج بالقيمة
حصل أيضا في التجربة.
كيف تم المحاكاة؟لقد اخترنا أداة النمذجة ، في المقام الأول ، بناءً على إمكانية تكرار النتائج من قبل مجموعة واسعة من القراء: وهذا يعني في المقام الأول أن البرنامج يجب أن يكون في المجال العام. من حيث المبدأ ، يمكن حل مشكلة نمذجة سلوك الارتباط غير الدوري من الدرجة الأولى عن طريق إنشاء أداتك الخاصة من البداية. ولكن نظرًا لأن النموذج في المستقبل سيصبح أكثر تعقيدًا ، يمكن أن يؤدي إنشاء أداتك الخاصة إلى تشتيت الانتباه عن المهمة الرئيسية - إنشاء البنادق ذاتية الدفع. نظرًا لمبدأ انفتاح الأداة ، اخترنا
JSBsim .
في القسم السابق ، حصلنا على قيم المعامل
و
. نستخدمها لمحاكاة حركة الطائرة. من المقالة
الأخيرة ، نتذكر أن تكوين نموذج الطائرة في
JSBsim يتم تعيينه باستخدام ملف
XML . إنشاء نموذجك الخاص:
<?xml version="1.0"?> <fdm_config name="OP1" version="2.0" release="BETA"> <metrics> <wingarea unit="M2"> 0.2 </wingarea> <wingspan unit="M"> 1.0 </wingspan> <chord unit="M"> 0.2 </chord> <htailarea unit="M2"> 0.03 </htailarea> <htailarm unit="M"> 0.5 </htailarm> <vtailarea unit="M2"> 0.03 </vtailarea> <vtailarm unit="M"> 0.5 </vtailarm> <location name="AERORP" unit="M"> <x> -0.025 </x> <y> 0 </y> <z> 0.05 </z> </location> </metrics> <mass_balance> <ixx unit="KG*M2"> 0.018 </ixx> <iyy unit="KG*M2"> 0.018 </iyy> <izz unit="KG*M2"> 0.018 </izz> <emptywt unit="KG"> 1.2 </emptywt> <location name="CG" unit="M"> <x> 0 </x> <y> 0 </y> <z> 0 </z> </location> </mass_balance> <ground_reactions> </ground_reactions> <propulsion> </propulsion> <flight_control name="FCS: OP1"> <channel name="Pitch"> </channel> <channel name="Roll"> <summer name="Roll Trim Sum"> <input>fcs/aileron-cmd-norm</input> <clipto> <min>-1</min> <max>1</max> </clipto> </summer> </channel> <channel name="Yaw"> </channel> </flight_control> <aerodynamics> <axis name="DRAG"> </axis> <axis name="SIDE"> </axis> <axis name="LIFT"> </axis> <axis name="ROLL" unit="N*M"> <function name="aero/coefficient/Clp"> <description>Roll_moment_due_to_roll_rate</description> <product> <property>velocities/p-aero-rad_sec</property> <value>-0.24</value> </product> </function> <function name="aero/coefficient/Clda"> <description>Roll_moment_due_to_aileron</description> <product> <property>fcs/aileron-cmd-norm</property> <value> 2.4 </value> </product> </function> </axis> <axis name="PITCH"> </axis> <axis name="YAW"> </axis> </aerodynamics> <output name="OP1.csv" rate="60" type="CSV"> <property> velocities/vc-kts </property> <property> aero/alphadot-deg_sec </property> <property> aero/betadot-deg_sec </property> <property> fcs/throttle-cmd-norm </property> <simulation> OFF </simulation> <atmosphere> OFF </atmosphere> <massprops> OFF </massprops> <aerosurfaces> ON </aerosurfaces> <rates> ON </rates> <velocities> ON </velocities> <forces> OFF </forces> <moments> OFF </moments> <position> ON </position> <coefficients> OFF </coefficients> <ground_reactions> OFF </ground_reactions> <fcs> ON </fcs> <propulsion> OFF </propulsion> </output> </fdm_config>
نظرًا لأننا نبني نموذجًا لحركة الجهاز على طول اللفة فقط ، فسوف نترك العديد من أقسام الملفات فارغة. يتم تعيين الخصائص التالية بشكل تسلسلي في ملف النموذج.
يتم تحديد الأبعاد الهندسية للطائرة في قسم
المقاييس : منطقة الجناح ، جناحيها ، طول الوتر الديناميكي المتوسط ، منطقة الذيل الأفقي ، كتف الذيل الأفقي ، منطقة الذيل العمودي ، كتف الذيل العمودي ، موضع التركيز الديناميكي الهوائي.
يتم تحديد خصائص الكتلة للطائرة في قسم
توازن الكتلة : موتر القصور الذاتي للطائرة ، الوزن الفارغ ، موضع مركز الكتلة.
تجدر الإشارة إلى أن المواضع المطلقة للتركيز الديناميكي الهوائي ومركز كتلة الطائرة لا تشارك في حساب ديناميكيات الجهاز ، فموقعها النسبي مهم.
تصف الأقسام التالية خصائص معدات هبوط الطائرات ومحطة توليد الطاقة الخاصة بها.
في القسم التالي ، المسؤول عن
نظام التحكم ، سنقوم بتعبئة القناة المسؤولة عن التحكم في اللف:
سنشير إلى المدخلات الوحيدة
fcs / aileron-cmd-norm ، والتي سيتم تطبيع قيمتها من -1 إلى 1.
يتم تعيين
الخصائص الديناميكية الهوائية في قسم
الديناميكا الهوائية : يتم تعيين القوى في نظام إحداثيات عالي السرعة ، ويتم تعيين اللحظات في نظام مزدوج. نحن مهتمون بلحظة لفة. في قسم
اسم المحور = "ROLL" ، يتم تحديد الدالات التي تحدد لحظة القوى من المكونات المختلفة لإسقاط لحظة القوى الديناميكية الهوائية على محور
OX لنظام الإحداثيات المرتبط. هناك نوعان من هذه المكونات في نموذجنا. المكون الأول هو لحظة التخميد ، التي تساوي ناتج السرعة الزاوية بالمعامل المحدد مسبقًا
. المكون الثاني هو اللحظة من الجنيحات بسرعة طيران ثابتة: فهي تساوي منتج المعامل المحدد مسبقًا
بمقدار انحراف الجنيحات.
تجدر الإشارة إلى أنه عند تحديد المعامل
تم استخدام قيمة الأبعاد
. في بيانات رحلاتنا ، تم قياس السرعة الزاوية بالدرجات في الثانية ، بينما يستخدم
JSBSim راديان في الثانية ، وبالتالي فإن المعامل
يجب تقليل البعد المطلوب ، أي مقسومًا على 180 درجة وضربه في
راديان. نكتب هذه المكونات في لحظة القوى الديناميكية الهوائية داخل وظائف
المنتج المنتج . عند النمذجة ، يتم تلخيص نتيجة جميع الوظائف ويتم الحصول على قيمة إسقاط العزم الديناميكي الهوائي على المحور المقابل.
يمكنك التحقق من النموذج الذي تم إنشاؤه على البيانات التجريبية التي تم الحصول عليها أثناء اختبارات الطيران. للقيام بذلك ، قم بإنشاء برنامج نصي يحتوي على المحتويات التالية:
<?xml version="1.0" encoding="utf-8"?> <runscript> <use aircraft="ownPlane1" initialize="scripts/airborne"/> <run start="0" end="51" dt="0.01"> <event name="Trims"> <condition> sim-time-sec ge 0.0 </condition> <set name="simulation/do_simple_trim" value="5"/> </event> <event name="Time Notif" continuous="true"> <description>Provide a time history input for the aileron</description> <condition> sim-time-sec ge 0</condition> <set name="fcs/aileron-cmd-norm" > <function> <table> <independentVar lookup="row">sim-time-sec</independentVar> <tableData> 0 0.00075 0.1 0.00374 0.2 -0.00075 0.3 -0.00075 0.4 -0.00075 0.5 -0.00075 0.6 0.00075 0.7 0.00075 ... 48.8 -0.00075 48.9 0.00000 49 -0.00075 </tableData> </table> </function> </set> </event> </run> </runscript>
حيث تشير النقاط إلى البيانات المفقودة. في ملف البرنامج النصي المألوف لنا من المقالة السابقة ، ظهر نوع جديد من الأحداث (
"Time Notif" ) ، والذي يسمح لك بتعيين تغيير مستمر للمعلمة في الوقت المناسب. يتم تعيين اعتماد المعلمة على الوقت بواسطة دالة الجدول.
يقوم JSBSim باستكمال خطي لقيمة الوظيفة بين البيانات المجدولة. يتكون إجراء التحقق من نموذج حركة اللف من تنفيذ هذا البرنامج النصي على النموذج الذي تم إنشاؤه ومقارنة النتائج مع تلك التجريبية.
تظهر نتيجة التحقق في الشكل:

كما يتبين من الشكل ، فإن تزامن النموذج مع الواقع أقل قليلاً من الاكتمال.
توليف التحكم لأداء البرميل
بعد استلام النموذج ، من السهل تحديد المقدار والمدة اللازمة لتحويل الانحراف من أجل استكمال "البرميل". أحد الخيارات هو خوارزمية الانحراف التالية:
- : يبدأ الجنيحون في الانحراف عن موقف محايد ؛
- : الجنيحات مرفوضة بنسبة 50٪.
- : يبدأ الجنيحون في الانحراف إلى وضع محايد ؛
- : الجنيحات في محايد.
يحاكي وجود أجزاء مدتها 0.1 ثانية في بداية ونهاية خوارزمية انحراف الجنيح القصور الذاتي لمحرك الأقراص المؤازر ، والذي لا يمكن أن يحرف الأسطح على الفور. يوضح النموذج أنه مع مثل هذا القانون للانحراف الجنيح ، يجب على الطائرة إكمال دورة واحدة كاملة حول محور
OX ، تحقق؟
تجربة الطيران
تمت برمجة قانون التحكم في الجنيح الناتج في طيار آلي مثبت على متن طائرة. فكرة التجربة بسيطة: أدخل الطائرة في رحلة أفقية ، ثم استخدم قانون التحكم الذي تم الحصول عليه. إذا كانت الحركة الحقيقية للطائرة على طول اللفة تتوافق مع النموذج الذي تم إنشاؤه ، فيجب على الطائرة تنفيذ "برميل" - ثورة واحدة كاملة بزاوية 360 درجة.
نعرب عن امتناننا لطيارنا المخلص لعمله واحترافه وجذعه المريحة على عربة عالمية!
خلال التجربة ، أصبح من الواضح أن نموذج اللفة قد تم بناؤه بنجاح - قامت الطائرة بعمل "برميل" تلو الآخر بمجرد تفعيل الطيار لقانون التحكم المبرمج. يوضح الشكل التالي السرعة الزاوية
سجلت أثناء التجربة وتم الحصول عليها من نتائج المحاكاة ، وكذلك زاوية الكعب والنغمة من تجربة الطيران:

ويوضح الشكل التالي الإشارات المسجلة في تجربة الطيران للجنيحات والمصاعد (RV) والدفة (RN):

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