الگوریتم کنترلی پایدر کننده کوادروتور
الگوریتم کنترلی پایدر کننده کوادروتور
مقدمه
دامنه مبحث کنترل در مورد عمود پرواز ها بسيار وسيع است. کنترل کننده پرنده بسته به شرح ماموريت می تواند محدود به کنترل وضعيت (Attitude) باشد و در موارد پيچيده تر شامل کنترل موقعيت نيز باشد. در اين پروژه هدف طراحی و پياده سازی يک کنترل کننده وضعيت برای پرنده عمود پرواز است.
برخی پرنده های عمود پرواز همچون هليکوپتر معمولی را ميتوان با یک کنترل کننده ابتدایی به پرواز در آورد. چرا که هليکوپتر ذاتا يک وسيله پايدار است و اين بخاطر اين است که نيروي تراست تنها توسط يک روتور ايجاد ميشود. اما در مولتي روتورها چند روتور وجود که نقش هرکدام در توليد تراست مانند ساير روتورها است و به عبارت بهتر توليد تراست وابسته به اين روتورها است. و به اين دليل که معمولا تراست ايجاد شده توسط هر موتور با ساير موتورها متفاوت است، پرنده ذاتا دارای ناپايداری است. بنابراين کنترل مولتي روتورها بسيار مشکلتر از هليکوپتر است. بنابراين يکی ديگر از علتهای انتخاب مولتی روتور بعنوان فريمورک اين است که کنترل کننده ای که بتواند يک مولتي روتور را کنترل کند، با ايجاد تغييرات مناسب قادر خواهد بود که هر نوع عمودپروازی را کنترل کند.
درباره هليکوپتر به اين مطلب اشاره شد که اين وسيله ذاتا پايدار است. اما اين بدان معنا نيست که نياز به کنترل کننده ندارد. چرا که با ايجاد انحراف در وضعيت پرنده، ناپايدار خواهد شد و امکان پرواز برای آن وجود نخواهد داشت. در واقع در محيطهاي داخلي (indoor) ميتوان هليکوپتر را بدون کنترل کننده به پرواز درآورد اما در محيط بيرون (outdoor) اين امکان وجود ندارد.
بنابراين مشخص شد که براي انجام ماموريتهای جدی، هر عمود پروازی نياز به سامانه ای دارد که وضعيت آن را در نقطهاي دلخواه کنترل کند. شرايطی که ممکن است وضعيت پرنده را از تعادل خارج کند، دو گونه اند: شرايط خارجی مانند باد و ساير اغتشاشات، شرايط داخلي که به ساختار پرنده بستگی دارند مانند عدم قرارگيری مرکز جرم در نقطه مناسب. يک کنترلر مناسب بايد قادر باشد بر انواع اين شرايط غلبه کرده و وضعيت پرنده را پايدار کند.
تا بحال روشهای کنترلی خطي و غير خطي بسياري براي کنترل وضعيت پرنده ارائه شده است. از اين روشها ميتوان به روشهاي PID، LQR، H∞، منطق فازي، شبکه هاي عصبي اشاره کرد. برخي از اين روشها همچون روش LQR، وابستگي بسيار زيادي به معادلات حرکت پرنده دارند. با کوچکترين تغيير در ساختار پرنده، اين معادلات بايد مجددا بررسی و محاسبه گردند. از طرفي برخي از اين روشها محاسبات زيادي دارند که انجام آن از عهده ميکروکنترلرهای با توان پايين ساخته نيست. در اين ميان کنترلر PID از اين ويژگی برخوردار است که محاسبات زيادي ندارد و به سادگي قابل پياده سازی است. همچنين اين کنترلر به معادلات حرکت، حداقل وابستگي را دارد. با تغيير در ساختار پرنده نيازی به کارهایی همچون اندازهگيری وزن و ابعاد پرنده، يافتن مدلی برای تراست ملخ ها برحسب دور و يافتن مرکز جرم پرنده نيست. بلکه با تغيير پارامترهای کنترل کننده بصورت آزمون و خطا ميتوان الگوريتم را به راحتی تنظيم (Tune) کرد. بنابراين ويژگيها، کنترل کننده PID به عنوان روش پايدارسازي در اين پروژه برگزيده شده است.
کنترل کننده PID (Proportional–Integral–Derivative)
کنترل کننده PID يک روش شناخته شده و پر استفاده در انواع زمينه های تحقيقاتی و صنعتی است. اين کنترل کننده يک کنترل کننده حلقه بسته (Closed-loop) و بازخوردی است. اين کنترل کننده ، ابتدا خطا (Error) را که عبارت است از اختلاف بين مقدار اندازه گيری شده متغير و نقطه مطلوب متغير (setpoint) محاسبه ميکند. سپس ضريبی از اين خطا و ضريبی از مشتق خطا و ضريبي از انتگرال خطا با يکديگر جمع شده و فرمانِ داده شده به سيستم را تشکيل ميدهند. در مورد عمودپرواز اين متغير ميتواند زاويه پرنده نسبت به افق يا نرخ تغييرات زاويه باشد که براي پايداری بيشتر از هر دو متغير استفاده ميشود. درحالی که برای پايداری ابتدایی، متغير ميتواند تنها نرخ تغييرات زاويه باشد اما زاويه به تنهايي هرگز نميتواند بعنوان اين متغير در نظر گرفته شود.
براي پايدار سازي پرنده به اعمال اين الگوريتم در هر سه محور Roll ، Pitch و Yaw به صورت جداگانه داريم. البته در شرايطي که ساختار پرنده متقارن باشد، مقادير يافته شده براي ترمهاي P ، I و D در يکي از محورهاي Roll و Pitch قابل اعمال بروي محور ديگر ميباشد.
کنترل وضعیت با یک حلقه
اگر متغير مورد نظر نرخ تغييرات زاويه باشد، يک حلقه PID براي کنترل کافي است. مقدار اندازهگيري شده از سيستم در واقع همان خروجي ژيروسکوپ و نقطه مطلوب (setpoint) ميتواند توسط اپراتور داده شده باشد و يا حاصل پردازش لايه های کنترلی بالاتر همچون کنترل کننده موقعيت باشد.
تصویر زیر کنترل کننده PID را نمایش می دهد درحالیکه نرخ تغییرات زاویه بعنوان متغیر انتخاب شده باشد.
اين الگوريتم قادر است در برابر اغتشاشاتی که درصدد برهم زدن سرعت زاويه ای پرنده اند مقابله کرده و به جبران آن بپردازد. اما در برابر ايجاد انحراف در زاويه پرنده نميتواند عکس العملی از خود نشان دهد. اين الگوريتم معمولا براي کنترل پرنده هایی استفاده ميشود که ماموريت آنها مانورهای سريع ميباشد و نياز به داشتن حرکاتی چابک هستند.
کنترل وضعیت با حلقه های تودرتو
براي کنترل بهتر استفاده از دو متغير زاويه و نرخ تغييرات زاويه پيشنهاد ميشود. دراين صورت دو حلقه کنترلی داخلی و خارجی و به عبارت بهتر حلقه های تودرتو (nested) خواهيم داشت. حلقه کنترلی اصلی (حلقه داخلی) همان حلقه کنترل نرخ تغييرات زاويه است که به آن اشاره شد و حلقه خارجی وظيفه کنترل زاويه را به عهده دارد و همچنين مقدار setpoint را براي حلقه داخلی تعيين ميکند. درباره چگونگی ساختار حلقه های تودرتو کارهای بسياری انجام گرفته و انواع ساختار براي اين حلقه ها پيشنهاد شده است و اين بدان معناست که الگوريتم واحدی براي کنترل وضعيت وجود ندارد و هرکدام از اين روشها با توجه به ساختار پرنده و شرح ماموريت آن ميتواند موثر باشد.
اين الگوريتمها معمولا برای پرنده هایی استفاده ميشوند که ماموريت آنها معلق ماندن در يک نقطه ثابت است. مانند تصويربرداری هوايی. همچنين اين الگوريتمها قادرند که در برابر انحرافات داخلي همچون نامناسب بودن مکان مرکز جرم نيز وضعيت پرنده را پايدار کنند. در اينجا به رايجترين اين الگوريتمها اشاره خواهيم کرد.
الگوریتم اول
در اين مدل ابتدا روش PID بروي زاويه اعمال شده و حاصل آن بطور مستقيم ورودی PID حلقه داخلي را تشکيل ميدهد. در حقيقت با اعمال PID در حلقه خارجی مشخص ميشود که پرنده براي رسيدن به وضعيت تعادل بايد با چه سرعت زاويه ای دوران کند که در روش قبلي اين سرعت زاويه ای مطلوب بوسيله کاربر يا کنترل کننده لايه بالاتر اعمال ميشد.
برخي ضرايب در اين مدل قابل صرف نظر هستند. براي مثال وجود دو ضريب I در الگوريتم معمولا باعث نوسان ميشود. بنابراين معمولا بسته به ساختار پرنده و شرح ماموريت يکی از ضريبهای I حذف ميشود. همچنين براي پرنده هايی که از نظر مکانيکی کاملا متعادل و متقارن هستند ميتوان از هر دو ضريب I صرف نظر کرد. حذف ضرايب D نيز در برخی شرايط امکان پذير است.
الگوریتم دوم
در اين الگوريتم نقطه مورد نظر برای سرعت زاويه ای حلقه خارجی، تنها نتيجه اعمال ضريب P در حلقه خارجی ميباشد. جملات I و D مستقيما خروجی را تحت تاثير قرار ميدهند. در اين الگوريتم نيز همانند الگوريتم اول ميتوان بسته به شرايط ساختاری پرنده و شرح ماموريت از برخی ضرايب صرف نظر کرد.
نتایج
در اين پروژه روش PID با حلقه داخلی و همچنين با حلقه تودرتو – مدل دوم آزمايش شد و نتايج خوبی حاصل شد. در اين بخش نتايج حاصل از الگوريتم PID ارائه خواهد شد.
کنترل کننده PID با حلقه های تو در تو
همانطور که قبلا اشاره شد هدف از بکار گيري روش PID با حلقه هاي تو در تو، کنترل سرعت زاويه اي و همچنين زاويه است.
آزمون 1 : ایجاد انحراف در سرعت زاویه ای
با توجه به شکل زیر ملاحظه ميشود که با ايجاد انحراف در سرعت زاويه ای در محور Roll به ميزان حدودا 240 درجه بر ثانيه، پرنده چگونه وضعيت خود را پايدار ميکند. حدودا 1600 ميلی ثانيه طول ميکشد که پرنده وضعيت خود را پايدار کند. در اولين شکل تغيیرات زاويه و در شکل دوم تغييرات سرعت زاويه اي به تصوير کشيده شده است.
آزمون 2 : ایجاد انحراف در زاویه
با توجه به شکل زیر ملاحظه ميشود که با ايجاد انحراف زاويه در محور Roll به ميزان حدودا 80 درجه، پرنده چگونه وضعيت خود را پايدار ميکند. حدودا 1600 ميلی ثانيه طول ميکشد که پرنده وضعيت خود را پايدار کند. در اولين شکل تغيیرات زاويه و در شکل دوم تغييرات سرعت زاويه ای به تصوير کشيده شده است.
کنترل کننده PID با یک حلقه
همانگونه که قبلا اشاره شد، هدف از اعمال روش PID با يک حلقه تنها کنترل سرعت زاويه ای مي باشد. در اين حالت نقش اپراتور بسيار مهم است و بايد انحرافات زاويه را جبران کند. اين روش براي پرواز با هدف قدرت مانور بالا بکار گرفته مي شود. نهايتا با اطمينان از عملکرد الگوريتم کنترل، پرنده به پرواز در آمد. شکل زیر يکی از اين پروازها را نشان ميدهد.
لینک های مفید:
دیدگاهتان را بنویسید