سه شنبه, خرداد 5, 1405
ادامه منو
    خانهاموزش ساخت کوادروتوراشنایی با قطعات کوادروتورآشنایی با فلایت کنترلر در مولتی روتورها و پهپادها

    آشنایی با فلایت کنترلر در مولتی روتورها و پهپادها

    در این پست از سایت اِمیک, یک پست آموزشی با عنوان آشنایی با فلایت کنترلر در مولتی روتورها و پهپادها قرار داده شده است. در این پست با مفهوم فلایت کنترلر در پهپادها و مولتی روتورها آشنا می شویم و نقش آن در کنترل و پایداری پرواز را بررسی می کنیم. همچنین ساختار کلی سیستم کنترل پرواز، سنسورهای مورد استفاده و نحوه ترکیب داده های آن ها برای تخمین وضعیت پرنده توضیح داده می شود. در ادامه به الگوریتم های کنترل پرواز مانند PID و نمونه هایی از فلایت کنترلرهای رایج نیز پرداخته خواهد شد.

    مقدمه

    در سال های اخیر استفاده از وسایل پرنده بدون سرنشین (Unmanned Aerial Vehicles یا UAV) به طور قابل توجهی گسترش یافته است. این پرنده ها در حوزه های مختلفی مانند تصویربرداری هوایی، نقشه برداری، کشاورزی هوشمند، عملیات امداد و نجات، بازرسی خطوط انتقال نیرو و حتی کاربردهای نظامی مورد استفاده قرار می گیرند. یکی از رایج ترین انواع این پرنده ها، پهپادهای چند ملخه یا مولتی روتور هستند که به دلیل ساختار ساده تر، قدرت مانور بالا و قابلیت پرواز پایدار، محبوبیت زیادی پیدا کرده اند.

    مولتی روتورها معمولا از چند موتور و ملخ تشکیل شده اند که با تغییر سرعت چرخش آن ها می توان حرکت و جهت پرواز پرنده را کنترل کرد. با این حال، کنترل پایدار چنین سیستمی به صورت دستی بسیار دشوار است، زیرا کوچک ترین تغییر در سرعت موتورها می تواند باعث تغییر سریع در وضعیت پرنده شود. به همین دلیل وجود یک سیستم کنترلی هوشمند برای حفظ تعادل و هدایت پرنده ضروری است.

    فلایت کنترلر (Flight Controller) به عنوان مغز اصلی پهپاد عمل می کند. این واحد الکترونیکی با دریافت اطلاعات از سنسورهای مختلف، وضعیت لحظه ای پرنده مانند زاویه، شتاب و جهت حرکت را تشخیص می دهد و سپس با پردازش این اطلاعات، فرمان های مناسب را برای تنظیم سرعت موتورها ارسال می کند. در نتیجه فلایت کنترلر نقش اساسی در پایداری، کنترل و هدایت دقیق مولتی روتور ایفا می کند.

    آشنایی با فلایت کنترلر در مولتی روتورها و پهپادها

    در این پست ابتدا به معرفی مولتی روتورها و ساختار کلی آن ها پرداخته می شود، سپس اجزای اصلی فلایت کنترلر و سنسورهای مورد استفاده در آن بررسی می شوند. در ادامه نحوه ارتباط بین اجزای مختلف سیستم و روش های ترکیب داده های سنسورها برای کنترل پایدار پرواز توضیح داده خواهد شد.

    آشنایی با مولتی روتور‌ها

    مولتی روتور یا پهپاد چندملخه به نوعی از پرنده های بدون سرنشین گفته می شود که نیروی لازم برای بلند شدن، حرکت و کنترل جهت آن توسط چند موتور و ملخ تأمین می شود. این پرنده ها برخلاف هواپیماهای بال ثابت که نیاز به باند برای برخاستن و فرود دارند، قادر هستند به صورت عمودی از زمین بلند شوند (Vertical Take-Off and Landing یا VTOL) و در یک نقطه ثابت در هوا بایستند (Hover).

    ویژگی اصلی مولتی روتور ها این است که برخلاف هلی کوپترهای معمولی، از چندین ملخ کوچک استفاده می کنند. استفاده از چند ملخ به جای یک ملخ بزرگ باعث افزایش پایداری، کاهش پیچیدگی مکانیکی و افزایش قدرت کنترل می شود.

    انواع مولتی روتور

    مولتی روتور‌ها بر اساس تعداد بازوها (Arms) و تعداد موتورهایشان طبقه بندی می شوند. مهمترین انواع آن عبارت اند از:

    • کوادکوپتر (Quadcopter)

    رایج ترین و ساده ترین نوع مولتی روتور که دارای 4 موتور است. دو موتور در جهت عقربه های ساعت (CW) و دو موتور در خلاف جهت آن (CCW) می چرخند. این آرایش باعث خنثی شدن گشتاورهای متقابل و پایداری در yaw (چرخش حول محور عمودی) می شود.

    مزایا: ساختار ساده، هزینه کمتر، وزن پایین

    معایب: در صورت خرابی یک موتور کنترل پرنده از دست می رود، توان حمل بار محدود است

    کاربردها: آموزش، پروژه های تحقیقاتی، تصویربرداری و کاربردهای عمومی

    • هگزاکوپتر (Hexacopter)

    نوعی مولتی روتور با 6 موتور است که معمولا سه موتور در جهت عقربه های ساعت (CW) و سه موتور در خلاف جهت آن (CCW) می چرخند. تعداد موتورهای بیشتر باعث افزایش پایداری پرواز و توان تولید نیروی بالابر می شود.

    مزایا: پایداری بیشتر نسبت به کوادکوپتر، توان حمل بار بیشتر، ایمنی بالاتر در پرواز

    معایب: هزینه و مصرف انرژی بیشتر، ساختار پیچیده تر

    کاربردها: فیلم برداری حرفه ای، نقشه برداری هوایی، حمل دوربین ها و سنسورهای سنگین تر

    • اکتوکوپتر (Octocopter)

    این نوع مولتی روتور دارای 8 موتور است که معمولا چهار موتور در جهت عقربه های ساعت (CW) و چهار موتور در خلاف جهت آن (CCW) می چرخند. تعداد موتورهای زیاد باعث افزایش پایداری و توان حمل بار در پرواز می شود.

    مزایا: پایداری بسیار بالا، توان حمل بار زیاد، اطمینان بیشتر در ماموریت های حساس

    معایب: هزینه ساخت بالا، وزن بیشتر، مصرف انرژی زیاد

    کاربردها: فیلم برداری سینمایی، کاربردهای صنعتی، حمل تجهیزات سنگین مانند سیستم های نقشه برداری یا سنسورهای پیشرفته

    نحوه تولید نیرو در مولتی روتورها

    در مولتی روتور ها نیروی لازم برای بلند شدن، پایین آمدن، حرکت به جلو یا عقب، چرخش به چپ یا راست فقط از طریق تغییر سرعت چرخش موتورها ایجاد می شود. یعنی خبری از پره های متغیر یا مکانیزم های پیچیده هلی کوپتر نیست. همین موضوع سیستم را ساده تر اما کنترل آن را کاملاً وابسته به فلایت کنترلر می کند. به عنوان مثال:

    • اگر سرعت همه موتور ها یکسان زیاد شود، پرنده به سمت بالا می رود
    • اگر سرعت موتورهای جلو کم و پشت زیاد شود، پرنده به جلو حرکت می کند
    • اگر سرعت موتورهای راست و چپ نامتقارن شود، پرنده حول محور خود می چرخد

    نحوه پرواز و حرکت یک مولتی روتور emic

    این تغییرات بسیار ظریف و سریع باید انجام شوند و انسان نمی تواند چنین کنترل دقیقی را دستی انجام دهد. در نتیجه تمام این وظایف توسط فلایت کنترلر صورت می گیرد.

    معماری کلی سیستم یک مولتی روتور (با تمرکز بر کوادکوپتر)

    یک مولتی روتور (به عنوان مثال کوادکوپتر) معمولی از چند جزء اصلی تشکیل شده است که هر کدام نقش مشخصی در ایجاد توان، کنترل و پایداری پرواز دارند. این اجزا در کنار یکدیگر یک سیستم کامل پروازی را تشکیل می دهند و هماهنگی دقیق میان آن ها برای پرواز پایدار ضروری است. اجزای اصلی شامل فریم، فلایت کنترلر، اسپید کنترلرها (ESC)، موتورها، ملخ ها، سیستم رادیو کنترل و باتری می باشند.

    فریم (Frame) ساختار فیزیکی و اسکلت اصلی پرنده است که تمامی قطعات روی آن نصب می شوند. طراحی فریم باید سبک، مقاوم و متقارن باشد تا توزیع وزن بین بازوهای مختلف به درستی انجام شود و مولتی روتور در حین مانورهای مختلف تعادل خود را حفظ کند.

    فلایت کنترلر (Flight Controller) مهم ترین بخش مولتی روتور و مرکز پردازش کنترل پرواز است. این قطعه ورودی های کاربر و داده های سنسورها را دریافت کرده و با اجرای الگوریتم های کنترلی، فرمان های لازم را برای تنظیم سرعت موتور ها صادر می کند. پایداری پرواز، واکنش سریع به تغییرات و جبران اغتشاشات همگی توسط فلایت کنترلر مدیریت می شوند.

    اسپید کنترلرها (ESC) واسطه بین فلایت کنترلر و موتورها هستند. هر موتور یک ESC اختصاصی دارد که فرمان های کنترلی فلایت کنترلر را به سیگنال های مناسب برای کنترل دقیق سرعت موتور تبدیل می کند. کیفیت ESC مستقیماً بر پاسخ دینامیکی پرنده و توانایی آن در حفظ پایداری اثر می گذارد.

    موتورهای براشلس (Brushless Motors) نیروی لازم برای چرخش ملخ ها و در نتیجه ایجاد نیروی برا را تأمین می کنند. این موتورها سبک، پربازده و مناسب برای تغییرات سریع سرعت هستند که جزو نیازهای اساسی پرواز محسوب می شود. ملخ ها (Propellers) نیز با جا به جایی حجم قابل توجهی از هوا در جهت پایین، باعث تولید نیروی لازم برای بلند شدن و کنترل حرکات پرنده می شوند.

    سیستم رادیو کنترل (Radio Controller / Receiver) وظیفه دریافت دستورات خلبان و ارسال آن ها به فلایت کنترلر را بر عهده دارد. این سیستم تضمین می کند که خلبان بتواند در هر لحظه فرمان هایی مانند کنترل ارتفاع، حرکت یا چرخش را به مولتی روتور اعمال کند.

    باتری (Battery) منبع تأمین انرژی کل سیستم است و معمولاً از نوع لیتیوم پلیمر (Li-Po) با چگالی انرژی بالا انتخاب می شود تا با کمترین وزن، بیشترین توان را فراهم کند.

    با کنار هم قرار گرفتن این اجزا، یک مولتی روتور قادر خواهد بود حرکت کند، پایدار بماند و به دستورات کاربر پاسخ دهد. با این حال، قلب اصلی این معماری فلایت کنترلر است که تمام فرآیندهای کنترلی و تصمیم گیری را بر عهده دارد. به همین دلیل، در ادامه این پست تمرکز اصلی بر بررسی ساختار فلایت کنترلر، نقش آن در پایداری پرواز و نحوه عملکرد آن خواهد بود.

    دلایل نیاز به فلایت کنترلر در مولتی روتورها

    مولتی روتورها از نظر دینامیکی سیستم هایی ناپایدار محسوب می شوند. به این معنی که برای حفظ تعادل، باید به طور مداوم نیروی تولید شده توسط موتورهای آن ها تنظیم شود. در یک مولتی روتور چند موتور به طور همزمان نیروی بالابر تولید می کنند و تعادل پرنده به هماهنگی دقیق سرعت این موتورها وابسته است. اگر سرعت یکی از موتورها حتی کمی تغییر کند، تعادل نیروها به هم می خورد و پرنده شروع به کج شدن یا چرخش در یکی از محورهای حرکتی می کند.

    از طرف دیگر، مولتی روتورها برخلاف هواپیماها و هلیکوپترها فاقد سطوح کنترلی مکانیکی مانند سکان یا بالک هستند که بتوانند به صورت طبیعی به حفظ تعادل کمک کنند. در این پرنده ها تمام کنترل پرواز تنها از طریق تغییر سرعت موتور ها انجام می شود.

    به همین دلیل برای پایدار نگه داشتن پرنده، لازم است سرعت موتور ها به صورت بسیار سریع و دقیق تنظیم شود. این کار توسط فلایت کنترلر انجام می شود. فلایت کنترلر با استفاده از اطلاعات سنسورها وضعیت پرنده را تشخیص داده و با تنظیم سرعت موتور ها، تعادل آن را در حین پرواز حفظ می کند.

    یکی از مهم ترین وظایف فلایت کنترلر حفظ تعادل پرنده در سه محور اصلی حرکتی است. این محورها شامل محور رول (Roll)، پیچ (Pitch) و یاو (Yaw) هستند که به ترتیب به چرخش پرنده حول محور طولی، عرضی و عمودی اشاره دارند. کوچک ترین اختلال در هر یک از این محورها می تواند باعث انحراف پرنده از وضعیت پایدار شود. فلایت کنترلر با استفاده از داده های سنسورها این تغییرات را تشخیص داده و با تنظیم سرعت موتورها، تعادل پرنده را به سرعت بازیابی می کند.

    علاوه بر حفظ تعادل، فلایت کنترلر وظایف مهم دیگری نیز بر عهده دارد. این سیستم اطلاعات مربوط به وضعیت پرنده را از سنسورهای مختلف دریافت کرده و پس از پردازش آن ها، فرمان های کنترلی مناسب را برای موتورها ارسال می کند. به این ترتیب حرکت های مختلفی مانند بالا رفتن، پایین آمدن، حرکت به جلو یا عقب، حرکت به طرفین و چرخش حول محور عمودی امکان پذیر می شود.

    همچنین فلایت کنترلر امکان اجرای قابلیت های پیشرفته تری مانند حفظ ارتفاع، حفظ موقعیت مکانی با استفاده از GPS، بازگشت خودکار به نقطه شروع و پرواز در مسیرهای از پیش تعیین شده را فراهم می کند. بدون وجود چنین سیستمی، کنترل دقیق و پایدار یک مولتی روتور تقریباً غیرممکن خواهد بود.

    در واقع می توان گفت فلایت کنترلر به عنوان مغز اصلی سیستم پروازی عمل می کند که با دریافت اطلاعات از محیط، تصمیم گیری مناسب را انجام داده و فرمان های لازم را برای کنترل حرکت پرنده صادر می کند.

    معماری کلی سیستم کنترل پرواز در مولتی روتور

    برای اینکه یک مولتی روتور بتواند پرواز پایدار و کنترل شده داشته باشد، باید یک چرخهٔ کنترلی مشخص و منظم بین اجزای مختلف آن برقرار باشد. این چرخه معمولا شامل مراحل زیر است:

    1. دریافت اطلاعات خام از سنسورها
    2. پردازش و ترکیب داده ها برای تخمین وضعیت پرنده
    3. تصمیم گیری و تولید فرمان کنترلی
    4. ارسال فرمان به موتورها برای اصلاح وضعیت

    این فرایند با سرعت بسیار بالا (معمولا ۲۰۰ تا ۱۰۰۰ بار در ثانیه) انجام می شود تا پرنده بتواند در برابر کوچک ترین تغییرات محیطی واکنش سریع نشان دهد.

    اجزای اصلی چرخه کنترل پرواز

    برای درک بهتر، این معماری را می توان در چهار بخش اصلی خلاصه کرد:

    ۱. سنسورها (Sensors)

    این بخش اطلاعات اولیه مورد نیاز برای درک وضعیت پرنده را فراهم می کند. مهم ترین داده ها شامل:

    • ژیروسکوپ : سرعت چرخش پهپاد را می سنجد
    • شتاب سنج : جهت گرانش و شتاب را می سنجد
    • مگنتومتر : جهت شمال را مشخص می کند
    • بارومتر : ارتفاع را تخمین میزند

    این سنسورها معمولا نویز دارند و فقط اطلاعات خام می دهند و اطلاعاتشان به تنهایی قابل اعتماد نیست.

    ۲. تخمین وضعیت (State Estimation)

    در این مرحله فلایت کنترلر داده های مختلف سنسورها را با هم ترکیب می کند تا وضعیت واقعی پرنده (زاویه ها، سرعت ها، ارتفاع و…) به دست آید.

    این کار با استفاده از روش هایی مانند «فیلتر مکمل» یا «فیلتر کالمن» انجام می شود.

    این بخش بسیار کلیدی است زیرا:

    • داده ها خام و پر از نویزند
    • هر سنسور به تنهایی ناقص است و فقط بخشی از اطلاعات را می دهند
    • برای کنترل دقیق، باید وضعیت واقعی پرنده کاملاً مشخص باشد

    ۳. الگوریتم کنترل (Control Algorithm)

    وقتی وضعیت پرنده شناسایی شد، مرحلهٔ بعد تصمیم گیری است. مهم ترین بخش این مرحله «کنترل کننده PID» است.

    این الگوریتم اختلاف بین وضعیت فعلی و وضعیت مطلوب را محاسبه کرده و تصمیم می گیرد هر موتور باید چقدر تغییر سرعت بدهد.

    مثال ساده، اگر سمت راست پرنده به سمت پایین کج شده باشد کنترل کننده PID تشخیص می دهد باید سرعت موتورهای سمت راست را زیاد کند و سمت چپ را کمتر کند تا تعادل دوباره برقرار شود.

    ۴. عملگرها (Actuators): تنظیم سرعت موتورها

    نتیجه تصمیم گیری الگوریتم کنترل، به صورت دستور به موتور‌ها ارسال می شود. فلایت کنترلر خودش مستقیم موتورها را کنترل نمی‌کند. این کار از طریق ESCها (اسپید کنترلرها) صورت می گیرد که وظیفه دارند سرعت موتورهای براشلس را تنظیم کنند. ESC فرمان فلایت‌کنترلر را می‌گیرد و سرعت موتور براشلس را تنظیم می‌کند.

    در نهایت موتورهای پرنده با سرعت های متفاوت می چرخند تا وضعیت پرنده حفظ یا تغییر کند.

    چرخه کلی کنترل (Control Loop)

    می‌توان کل فرایند را به شکل زیر خلاصه کرد:

    سنسورها ← پردازش و تخمین وضعیت ← الگوریتم کنترل ← ESCها ← موتورها

    این چرخه دائماً و با سرعت بسیار بالا تکرار می شود. اگر این حلقه حتی برای کمتر از یک ثانیه قطع شود، پرنده معمولاً تعادل خود را از دست می دهد.

    اجزای اصلی فلایت کنترلر

    فلایت کنترلر به عنوان هسته اصلی سیستم کنترل پرواز در مولتی روتور، از چندین بخش سخت افزاری تشکیل شده است که هر کدام وظیفه مشخصی در دریافت داده ها، پردازش اطلاعات و ارسال فرمان های کنترلی دارند. این اجزا به صورت هماهنگ عمل می کنند تا امکان پایش وضعیت پرنده و کنترل پایدار آن در طول پرواز فراهم شود. مهم ترین اجزای تشکیل دهنده فلایت کنترلر در ادامه معرفی می شوند.

    APM2.8-emic

    میکروکنترلر (Microcontroller)

    میکروکنترلر مهم ترین بخش فلایت کنترلر محسوب می شود و نقش واحد پردازش مرکزی سیستم را ایفا می کند. تمامی داده های دریافتی از سنسورها ابتدا توسط میکروکنترلر دریافت و پردازش می شوند. سپس الگوریتم های تخمین وضعیت و کنترل پرواز بر روی آن اجرا شده و در نهایت فرمان های کنترلی مناسب برای موتور ها تولید می شود.

    در بسیاری از فلایت کنترلرهای مدرن از میکروکنترلرهای سری STM32 استفاده می شود که به دلیل توان پردازشی مناسب، مصرف انرژی پایین و وجود واحدهای جانبی متعدد، گزینه ای مناسب برای کاربردهای پروازی محسوب می شوند.

    واحد اندازه گیری اینرسی (IMU)

    یکی از مهم ترین بخش های فلایت کنترلر، واحد اندازه گیری اینرسی یا IMU (Inertial Measurement Unit) است. این واحد معمولا شامل دو نوع سنسور اصلی است:

    • ژیروسکوپ (Gyroscope)
    • شتاب سنج (Accelerometer)

    ژیروسکوپ نرخ چرخش پرنده حول محورهای مختلف را اندازه گیری می کند، در حالی که شتاب سنج میزان شتاب وارد شده به سیستم را اندازه گیری می کند. ترکیب اطلاعات این دو سنسور امکان تخمین زاویه و وضعیت حرکتی پرنده را فراهم می کند. داده های IMU نقش بسیار مهمی در پایدارسازی پرواز دارند.

    قطب نما یا مگنتومتر (Magnetometer)

    مگنتومتر یا قطب نما برای اندازه گیری میدان مغناطیسی زمین استفاده می شود و از آن برای تعیین جهت پرنده نسبت به شمال مغناطیسی بهره گرفته می شود. این اطلاعات به ویژه در سیستم های ناوبری و کنترل جهت (Yaw) کاربرد دارد و در ترکیب با داده های سایر سنسورها می تواند دقت تخمین وضعیت را افزایش دهد.

    فشارسنج یا بارومتر (Barometer)

    بارومتر سنسوری است که برای اندازه گیری فشار هوا به کار می رود. از آنجا که فشار هوا با ارتفاع تغییر می کند، می توان از داده های بارومتر برای تخمین ارتفاع پرنده استفاده کرد. این سنسور به ویژه در حالت هایی مانند حفظ ارتفاع (Altitude Hold) اهمیت زیادی دارد.

    مدار تغذیه (Power Management)

    فلایت کنترلر برای عملکرد صحیح به ولتاژ پایدار و مناسب نیاز دارد. به همین دلیل در طراحی آن از مدارهای تنظیم ولتاژ استفاده می شود تا ولتاژ باتری به سطح مناسب برای میکروکنترلر و سنسورها تبدیل شود. این بخش معمولا شامل رگولاتورهای ولتاژ و فیلترهای الکترونیکی است که باعث کاهش نویز و افزایش پایداری سیستم می شوند.

    حافظه (Memory)

    در بسیاری از فلایت کنترلرها از حافظه های داخلی یا خارجی برای ذخیره برخی اطلاعات استفاده می شود. این حافظه ها می توانند برای ذخیره تنظیمات پرواز، داده های کالیبراسیون سنسورها یا ثبت داده های پروازی (Flight Log) به کار روند.

    رابط های ارتباطی (Communication Interfaces)

    فلایت کنترلر برای ارتباط با سنسورها، ماژول ها و سایر اجزای سیستم پروازی از چندین رابط ارتباطی استفاده می کند. این رابط ها معمولا به صورت واحدهای جانبی در داخل میکروکنترلر پیاده سازی شده اند و امکان تبادل داده بین بخش های مختلف سیستم را فراهم می کنند. مهم ترین این رابط ها عبارت اند از:

    • UART که برای ارتباط با ماژول هایی مانند GPS، تله متری یا برخی گیرنده های رادیویی استفاده می شود.
    • I²C که معمولا برای ارتباط با برخی سنسورها مانند قطب نما یا فشارسنج به کار می رود.
    • SPI که یک رابط سریع تر برای انتقال داده با سرعت بالا بین میکروکنترلر و برخی سنسورها است.
    • PWM یا پروتکل های دیجیتال که برای ارسال فرمان از فلایت کنترلر به ESC ها و کنترل سرعت موتورهای براشلس استفاده می شوند.

    وجود این رابط های ارتباطی باعث می شود فلایت کنترلر بتواند به سادگی با سایر اجزای سیستم پروازی ارتباط برقرار کرده و کنترل دقیق پرنده را امکان پذیر سازد.

    سنسورهای مورد استفاده در فلایت‌کنترلر

    برای کنترل پایدار یک مولتی روتور، فلایت کنترلر باید به طور مداوم از وضعیت حرکتی و موقعیت پرنده آگاه باشد. این اطلاعات توسط مجموعه ای از سنسورها فراهم می شود که هر کدام بخشی از وضعیت پرنده را اندازه گیری می کنند. داده های این سنسورها پس از پردازش و ترکیب در فلایت کنترلر، برای اجرای الگوریتم های کنترلی مورد استفاده قرار می گیرند. مهم ترین سنسورهای مورد استفاده در سیستم های کنترل پرواز در ادامه معرفی می شوند.

    ژیروسکوپ (Gyroscope)

    ژیروسکوپ یکی از مهم ترین سنسورهای فلایت کنترلر است که نرخ چرخش زاویه ای پرنده را حول محورهای اصلی اندازه گیری می کند. این سنسور مشخص می کند که مولتی روتور با چه سرعتی حول محورهای سه گانه زیر در حال چرخش است:

    • محور Roll (چرخش به چپ و راست)
    • محور Pitch (خم شدن به جلو و عقب)
    • محور Yaw (چرخش حول محور عمودی)

    خروجی ژیروسکوپ تغییرات سریع و لحظه ای جهت گیری را با دقت بالا ثبت می کند و به فلایت کنترلر امکان می دهد هرگونه چرخش ناخواسته یا ناپایداری را فوراً تشخیص دهد. نقش ژیروسکوپ در پایدارسازی پرواز کاملاً حیاتی است، زیرا کنترلر از این داده ها برای واکنش سریع و اعمال تصحیحات مناسب روی سرعت موتور ها استفاده می کند.

    البته اندازه گیری های ژیروسکوپ در بلندمدت دچار «جمع شدن خطا» (Drift) می شوند. به همین دلیل این سنسور معمولا همراه با شتاب سنج استفاده می شود.

    شتاب سنج (Accelerometer)

    شتاب سنج سنسوری است که شتاب خطی وارد بر پرنده را در سه محور اندازه گیری می کند و یکی از مهم ترین مؤلفه هایی که حس می کند، شتاب ناشی از گرانش زمین است. چون گرانش همیشه وجود دارد، فلایت کنترلر می تواند با بررسی میزان سهم گرانش روی هر محور، زاویه تقریبی پرنده نسبت به افق را تخمین بزند.

    در شرایطی که پرنده ثابت است یا با سرعت یکنواخت حرکت می کند، جهت و مقدار گرانش اندازه گیری شده به طور مستقیم با وضعیت (Roll و Pitch) مرتبط است. بنابراین شتاب سنج در این حالت اطلاعات بسیار مفیدی برای تشخیص کج شدن یا خم شدن پرنده فراهم می کند.

    اما هنگام شتاب گیری یا انجام مانورها، شتاب ناشی از حرکت با گرانش ترکیب می شود و داده های شتاب سنج دیگر نشان دهندهٔ زاویه واقعی نیستند. به همین دلیل شتاب سنج به تنهایی قابل اعتماد نیست و باید همراه با ژیروسکوپ استفاده شود.

    مگنتومتر (Magnetometer)

    مگنتومتر در واقع یک قطب نمای دیجیتال است که میدان مغناطیسی زمین را اندازه گیری می کند. با استفاده از این سنسور، فلایت کنترلر می تواند تشخیص دهد که پرنده نسبت به جهت شمال مغناطیسی در چه سمتی قرار دارد. به بیان ساده تر، این سنسور مشخص می کند که جلوی پهپاد رو به کدام جهت جغرافیایی است.

    این اطلاعات مخصوصاً برای کنترل جهت حرکت (Yaw) و همچنین در سیستم های ناوبری مانند حرکت خودکار، دنبال کردن مسیر و بازگشت به نقطه شروع (Return to Home) اهمیت زیادی دارد. زیرا برای اینکه پرنده بتواند مسیر مشخصی را طی کند، باید بداند دقیقا به کدام سمت در حال حرکت است.

    با این حال، مگنتومتر نسبت به میدان های مغناطیسی اطراف حساس است. تجهیزاتی مانند موتورها، سیم های جریان بالا، باتری و قطعات الکترونیکی می توانند روی اندازه گیری آن اثر بگذارند و باعث ایجاد خطا شوند. به همین دلیل معمولا این سنسور را در جایی دور از منابع نویز نصب می کنند و داده های آن همراه با اطلاعات سایر سنسورها مانند ژیروسکوپ و شتاب سنج پردازش می شود تا جهت پرنده با دقت بیشتری مشخص شود.

    بارومتر (Barometer)

    بارومتر سنسوری است که فشار هوا را اندازه گیری می کند. از آنجا که فشار هوا با افزایش ارتفاع کاهش می یابد، می توان از تغییرات فشار برای تخمین ارتفاع پرنده استفاده کرد.

    در بسیاری از مولتی روتورهای امروزی از داده های بارومتر برای پیاده سازی قابلیت هایی مانند حفظ ارتفاع (Altitude Hold) استفاده می شود.

    GPS

    در برخی از مولتی روتورها از سیستم موقعیت یابی جهانی (GPS) نیز استفاده می شود. این ماژول اطلاعاتی مانند موقعیت جغرافیایی، سرعت حرکت و ارتفاع تقریبی پرنده را در اختیار فلایت کنترلر قرار می دهد.

    داده های GPS معمولا در قابلیت هایی مانند موارد زیر استفاده می شوند:

    • حفظ موقعیت (Position Hold)
    • بازگشت به نقطه شروع (Return to Home)
    • ناوبری و حرکت خودکار در مسیرهای از پیش تعیین شده

    با این حال، سرعت به روزرسانی داده های GPS نسبت به سنسورهایی مانند ژیروسکوپ و شتاب سنج کمتر است. برای مثال، بسیاری از ماژول های GPS اطلاعات موقعیت را فقط چند بار در ثانیه ارسال می کنند، در حالی که سنسورهای IMU می توانند صدها بار در ثانیه داده تولید کنند. به همین دلیل GPS برای تشخیص تغییرات سریع حرکت مناسب نیست و معمولا در کنار داده های IMU استفاده می شود. در این حالت، IMU تغییرات سریع حرکت و وضعیت پرنده را تشخیص می دهد و GPS موقعیت کلی آن را مشخص می کند؛ ترکیب این اطلاعات باعث می شود فلایت کنترلر بتواند موقعیت و حرکت پرنده را با دقت بیشتری کنترل کند.

    ترکیب داده سنسورها و تخمین وضعیت

    برای کنترل دقیق یک مولتی روتور، فلایت کنترلر باید در هر لحظه از وضعیت مکانی و زاویه ای پرنده (Roll، Pitch و Yaw) یک تخمین دقیق داشته باشد. اما هیچ سنسوری به تنهایی قادر به ارائه این اطلاعات با دقت و پایداری کافی نیست. هر سنسور محدودیت ها، نویزها و خطاهای مخصوص به خود را دارد. بنابراین برای دستیابی به یک تخمین پایدار و قابل اعتماد، باید داده های چند سنسور با یکدیگر ترکیب شوند. این فرایند «Sensor Fusion» یا «تخمین وضعیت» نام دارد و به صورت نرم افزاری روی میکروکنترلر فلایت کنترلر اجرا می شود.

    ژیروسکوپ نرخ چرخش حول محورهای اصلی را با دقت بالا اندازه گیری می کند و در پاسخ به حرکات سریع عملکرد بسیار خوبی دارد، اما به دلیل جمع شدن خطاهای کوچک در طول زمان دچار انحراف تدریجی (Drift) می شود.

    در مقابل، شتاب سنج با اندازه گیری مولفه های شتاب گرانش بر روی محورهای مختلف، امکان تخمین زاویه پرنده نسبت به سطح زمین را فراهم می کند، اما هنگام مانورها و شتاب گیری های واقعی، خروجی آن به شدت تحت تاثیر شتاب های حرکتی قرار می گیرد. مگنتومتر نیز جهت میدان مغناطیسی زمین را اندازه می گیرد و برای تعیین سمت (Yaw) مفید است، اما می تواند به اختلالات مغناطیسی محیط حساس باشد.

    با ترکیب این سنسورها، نقاط ضعف هر یک توسط نقاط قوت دیگری پوشش داده می شود و فلایت کنترلر می تواند یک تخمین دقیق و پایدار از وضعیت لحظه ای پرنده تولید کند. ابزار اصلی برای این کار، فیلترهای ترکیب کننده سنسورها هستند. در سیستم های فلایت کنترلر، فیلترها معمولاً الگوریتم های نرم افزاری هستند که روی میکروکنترلر اجرا می شوند و یک قطعه سخت افزاری جداگانه نیستند. دو نمونه رایج و مهم آن فیلتر مکمل (Complementary Filter) و فیلتر کالمن (Kalman Filter) می باشند.

    فیلتر مکمل (Complementary Filter)

    فیلتر مکمل یکی از ساده ترین روش ها برای ترکیب داده های سنسورها در سیستم های کنترلی است. ایدهٔ اصلی آن این است که از ویژگی های مثبت هر سنسور در بازه های مختلف زمانی استفاده شود. ژیروسکوپ در تشخیص تغییرات سریع زاویه بسیار دقیق است، اما در بلندمدت دچار Drift می شود. در مقابل، شتاب سنج با اندازه گیری مولفه های شتاب گرانش می تواند زاویه پرنده نسبت به سطح زمین را تخمین بزند، اما نسبت به لرزش و شتاب های حرکتی حساس است.

    در فیلتر مکمل، زاویهٔ به دست آمده از ژیروسکوپ به عنوان تخمین اصلی در نظر گرفته می شود و سپس مقدار کوچکی از اطلاعات شتاب سنج برای اصلاح تدریجی آن اضافه می شود. به این ترتیب، ژیروسکوپ پاسخ سریع سیستم را تامین می کند و شتاب سنج به مرور خطای آن را اصلاح می کند. سادگی محاسبات و نیاز کم به منابع پردازشی باعث شده است این روش در بسیاری از فلایت کنترلرهای ساده و پروژه های آموزشی مورد استفاده قرار گیرد.

    فیلتر کالمن (Kalman Filter)

    فیلتر کالمن یک روش پیشرفته تر برای تخمین وضعیت سیستم های دینامیکی است که در بسیاری از سامانه های ناوبری و کنترل استفاده می شود. این فیلتر با استفاده از یک مدل ریاضی از حرکت سیستم، وضعیت آینده را پیش بینی می کند و سپس آن را با داده های واقعی سنسورها مقایسه می کند. اگر بین مقدار پیش بینی شده و اندازه گیری شده اختلافی وجود داشته باشد، فیلتر مقدار تخمین را به گونه ای اصلاح می کند که خطای کلی سیستم حداقل شود.

    به بیان ساده، فیلتر کالمن به طور مداوم دو منبع اطلاعات را با هم ترکیب می کند: پیش بینی مدل سیستم و اندازه گیری واقعی سنسورها، نتیجهٔ این فرایند یک تخمین دقیق تر از وضعیت پرنده است. این فیلتر توانایی مدیریت نویز سنسورها و ترکیب اطلاعات چندین منبع مختلف مانند IMU، مگنتومتر و GPS را دارد، اما در مقایسه با فیلتر مکمل به محاسبات بیشتری نیاز دارد و پیاده سازی آن پیچیده تر است.

    در بسیاری از فلایت کنترلرهای مدرن از نسخه ای توسعه یافته از این روش به نام Extended Kalman Filter (EKF) استفاده می شود که برای سیستم های غیرخطی مانند پهپادها مناسب تر است و دقت بالاتری در تخمین وضعیت و ناوبری پرنده فراهم می کند.

    الگوریتم های کنترلر در فلایت کنترلر

    پس از آنکه فلایت کنترلر با استفاده از داده های سنسورها و الگوریتم های Sensor Fusion وضعیت فعلی پرنده را تخمین زد (مثلاً زاویه Roll = 3°، Pitch = –2°، Yaw = 45°)، مرحله بعدی کنترل حرکت پرنده است. در این مرحله، سیستم باید اختلاف بین وضعیت مطلوب پرنده و وضعیت واقعی آن را تشخیص داده و با تنظیم توان موتور ها، این اختلاف را به حداقل برساند.

    به بیان دیگر، فلایت کنترلر به طور مداوم بررسی می کند که آیا پرنده در زاویه یا موقعیت مورد نظر قرار دارد یا خیر، اگر اختلافی وجود داشته باشد، با افزایش یا کاهش توان موتور ها تلاش می کند پرنده را به وضعیت مطلوب بازگرداند. این فرآیند توسط الگوریتم های کنترلی انجام می شود.

    در بسیاری از سیستم های پروازی، متداول ترین روش برای این کار کنترل کننده PID است. این کنترل کننده به دلیل سادگی، سرعت بالا و کارایی مناسب در سیستم های بلادرنگ، در اغلب فلایت کنترلرهای پهپاد و مولتی روتور استفاده می شود.

    کنترل کننده PID

    کنترل کننده PID یک حلقه فیدبک است که بر اساس سه مؤلفه اصلی عمل می کند تا خطای بین وضعیت مطلوب (Setpoint) و وضعیت واقعی پرنده را به حداقل برساند.

    در این سیستم ابتدا مقدار خطا محاسبه می شود:

    e(t)=r(t)y(t)

    • e(t) : خطای سیستم در زمان t
    • r(t) : مقدار مطلوب یا Setpoint (مثلاً زاویه مطلوب پرنده)
    • y(t) : مقدار واقعی اندازه گیری شده توسط سنسورها

    به عنوان مثال :

    • وضعیت مطلوب (Setpoint) ← مثلاً Roll = 0°
    • وضعیت واقعی پرنده ← مثلاً Roll = 3°
      • خطای سیستم در زمان t برابر است با اختلاف این دو یعنی 3

    کنترل کننده PID این خطا را با سه روش مختلف پردازش می کند که شامل بخش تناسبی، انتگرالی و مشتقی می باشد.

    1. بخش تناسبی (Proportional – P)

    بخش تناسبی ساده ترین قسمت کنترل کننده PID است و مستقیماً به خطای لحظه ای سیستم واکنش نشان می دهد. در این روش، مقدار خروجی کنترل متناسب با اندازه خطا تولید می شود. بنابراین هرچه خطا بزرگ تر باشد، پاسخ کنترلی نیز قوی تر خواهد بود.

    فرمول این بخش به صورت زیر است:

    Pout=Kpe(t)

    • Pout : خروجی بخش تناسبی
    • Kp : بهره تناسبی (Proportional Gain) که شدت واکنش سیستم به خطا را تعیین می‌کند
    • e(t) : خطای لحظه‌ای سیستم در زمان t

    اثر این بخش در سیستم کنترل پرواز آن است که پرنده را با سرعت بیشتری به سمت وضعیت مطلوب هدایت می کند. با این حال اگر تنها از بخش تناسبی استفاده شود، ممکن است سیستم در نزدیکی نقطه مطلوب متوقف شود و مقدار کمی خطا باقی بماند که به آن خطای ماندگار (Steady‑State Error) گفته می شود.

    1. بخش انتگرالی (Integral – I)

    بخش انتگرالی برای رفع خطاهایی استفاده می شود که در طول زمان باقی می مانند. این بخش با جمع آوری خطاهای گذشته، تلاش می کند اثر خطاهای کوچک ولی پایدار را نیز در کنترل سیستم در نظر بگیرد.

    فرمول این بخش به صورت زیر است:

    PID-Integral-emic

    • Iout : خروجی بخش انتگرالی
    • Ki : بهره انتگرالی (Integral Gain)
    • e(τ) : مقدار خطا در زمان τ
    • t : زمان فعلی
    • : انتگرال خطا از زمان شروع تا زمان فعلی

    اثر این بخش در کنترل پرواز آن است که اگر برای مدتی خطایی در سیستم باقی بماند، مقدار خروجی کنترل افزایش می یابد تا این خطا به طور کامل حذف شود. به همین دلیل این بخش در حذف خطای ماندگار نقش مهمی دارد.

    با این حال اگر مقدار Ki بیش از حد بزرگ انتخاب شود، مقدار انتگرال خطا ممکن است به سرعت افزایش یابد و باعث ناپایداری سیستم شود. این پدیده به نام Integrator Windup شناخته می شود.

    1. بخش مشتقی (Derivative – D)

    بخش مشتقی به جای مقدار خطا، نرخ تغییرات خطا را بررسی می کند. این بخش در واقع رفتار آینده سیستم را پیش بینی می کند و به همین دلیل می تواند از افزایش سریع خطا یا عبور سیستم از مقدار مطلوب جلوگیری کند.

    فرمول این بخش به صورت زیر است:

    PID-Derivative-emic

    • : خروجی بخش مشتقی
    • Kd : بهره مشتقی (Derivative Gain)
    • e(t) : خطای سیستم
    • de(t)/dt : نرخ تغییرات خطا نسبت به زمان

    اثر این بخش در سیستم کنترل پرواز کاهش نوسانات و افزایش پایداری سیستم است. بخش مشتقی مانند یک عامل میرایی (Damping) عمل می کند و از عبور بیش از حد سیستم از نقطه مطلوب جلوگیری می کند. با این حال این بخش نسبت به نویز سنسورها بسیار حساس است و معمولاً نیاز به فیلتر شدن داده ها دارد.

    خروجی نهایی کنترل‌کننده PID

    خروجی نهایی کنترل کننده PID مجموع سه مؤلفه فوق است:

    u(t)=Pout+Iout+Dout

    • u(t) : سیگنال کنترلی نهایی در زمان t
    • Pout : خروجی بخش تناسبی
    • Iout : خروجی بخش انتگرالی
    • Dout : خروجی بخش مشتقی

    در فلایت کنترلرها این سیگنال کنترلی برای تنظیم سرعت موتور ها استفاده می شود. با تغییر توان هر موتور، گشتاورهای لازم برای اصلاح زاویه های Roll، Pitch و Yaw تولید شده و پرنده به سمت وضعیت مطلوب هدایت می شود.

    تنظیم ضرایب PID

    عملکرد مناسب کنترل کننده PID به شدت به مقادیر ضرایب Kp و Ki و Kd وابسته است. انتخاب نامناسب این ضرایب می تواند منجر به رفتارهای نامطلوبی مانند نوسانات شدید، پاسخ بسیار کند، یا حتی ناپایداری کامل سیستم شود.

    به همین دلیل تنظیم این ضرایب (PID Tuning) یکی از مراحل مهم در طراحی و راه اندازی سیستم های کنترل پرواز محسوب می شود. این تنظیم می تواند به روش های مختلفی انجام شود، از جمله:

    • روش های تجربی و آزمون پرواز
    • روش های کلاسیک مانند زیگلر–نیکولز (Ziegler–Nichols)
    • استفاده از شبیه سازی های دینامیکی
    • الگوریتم های بهینه سازی در سیستم های پیشرفته

    نمونه هایی از فلایت کنترلرهای رایج

    در این بخش چند نمونه از فلایت کنترلرهای معروف و پر استفاده معرفی می شوند تا با ساختار، قابلیت ها و کاربردهای آنها آشنا شویم.

    فلایت کنترلر Pixhawk

    Pixhawk یکی از پرکاربردترین فلایت کنترلرها در پهپادهای صنعتی، تحقیقاتی و نقشه برداری است. این کنترلر بر پایه میکروکنترلرهای قدرتمند خانواده STM32 (معمولاً STM32F4 یا STM32H7) ساخته می شود که توان پردازشی بالا و قابلیت مدیریت هم زمان چند سنسور را فراهم می کنند. Pixhawk معمولاً به صورت داخلی مجهز به مجموعه ای از سنسورها شامل ژیروسکوپ، شتاب سنج، مگنتومتر و بارومتر است و در بسیاری از مدل ها از چند سنسور مشابه به صورت تکراری (Redundant Sensors) برای افزایش قابلیت اطمینان و ایمنی سیستم استفاده می شود. این فلایت کنترلر امکان اتصال به ماژول های GPS، تله متری، سنسورهای فاصله سنج (LiDAR/Ultrasonic)، قطب نماهای خارجی و انواع ماژول های توسعه را دارد. وجود پورت های متعدد مانند UART، I2C، CAN و SPI باعث شده که Pixhawk یک پلتفرم بسیار انعطاف پذیر برای طراحی سامانه های پروازی پیشرفته باشد.

    فلایت کنترلر APM 2.8 (ArduPilot Mega 2.8)

    APM 2.8 یکی از نسخه های قدیمی تر فلایت کنترلرهای ArduPilot است که همچنان در بسیاری از پروژه های آموزشی و نیمه حرفه ای مورد استفاده قرار می گیرد. این برد مبتنی بر میکروکنترلر ATmega2560 و پردازنده کمکی ATmega32U2 است. برد APM 2.8 شامل سنسورهای IMU داخلی (ژیروسکوپ و شتاب سنج)، بارومتر و قابلیت اتصال به مگنتومتر خارجی است. زیرا معمولاً قطب نما در کنار ماژول GPS قرار می گیرد تا نویزهای مغناطیسی موتور و سیم ها کاهش یابد. این فلایت کنترلر از اتصال GPS، ماژول تله متری و انواع سنسورهای پایه پشتیبانی می کند. هرچند توان پردازشی آن نسبت به نسل های جدید مانند Pixhawk کمتر است، اما به دلیل قیمت مناسب و راه اندازی ساده، همچنان گزینه ای رایج در پروژه های آموزشی و تجربی است.

    فلایت کنترلر KK2

    KK2 یک فلایت کنترلر ساده و کم هزینه است که بیشتر برای مولتی روتورهای مبتدی و پروژه های آموزشی مناسب است. این برد مبتنی بر میکروکنترلر ATmega644PA بوده و از سنسورهای داخلی ژیروسکوپ و شتاب سنج برای اندازه گیری حرکت و وضعیت پرنده استفاده می کند. برخلاف فلایت کنترلرهای پیشرفته تر، KK2 فاقد مگنتومتر و بارومتر است و از GPS پشتیبانی نمی کند. به همین دلیل قابلیت هایی مانند تثبیت موقعیت، حرکت خودکار در مسیر و بازگشت خودکار را ندارد. وجود یک نمایشگر LCD و دکمه های کنترلی روی برد، تنظیم و کالیبراسیون را بدون نیاز به رایانه امکان پذیر می کند و این موضوع KK2 را برای شروع یادگیری کنترل پرواز مناسب می سازد.

    جمع بندی و نتیجه گیری

    مولتی روتورها به دلیل ساختار مکانیکی خاص خود، ذاتاً سیستم هایی ناپایدار هستند و بدون وجود یک سیستم کنترلی دقیق قادر به پرواز پایدار نخواهند بود. فلایت کنترلر به عنوان مغز اصلی پرنده، با دریافت داده های سنسورها، تخمین وضعیت پرنده و اجرای الگوریتم های کنترلی، نقش اساسی در حفظ تعادل و هدایت پرواز ایفا می کند.

    در این پست ابتدا ساختار کلی مولتی روتورها و ضرورت استفاده از فلایت کنترلر بررسی شد. سپس اجزای اصلی فلایت کنترلر شامل سنسورها، واحد پردازشی و رابط های ارتباطی معرفی گردید. در ادامه، روش های ترکیب داده های سنسورها و تخمین وضعیت مانند فیلتر مکمل و فیلتر کالمن مورد بررسی قرار گرفت. همچنین الگوریتم های کنترلی به ویژه کنترل کننده PID که به طور گسترده در سیستم های پروازی استفاده می شود، توضیح داده شد.

    در نهایت چند نمونه از فلایت کنترلرهای واقعی موجود در بازار معرفی شد. با پیشرفت فناوری حسگرها، پردازنده ها و الگوریتم های کنترلی، انتظار می رود فلایت کنترلرهای آینده دارای دقت بالاتر، قابلیت های هوشمندتر و سطح ایمنی بیشتری باشند.

    نظر یادتون نره…

    عابد رازانی
    عابد رازانیhttps://emic.ir/
    فارغ التحصیل کارشناسی الکترونیک از دانشکده باهنر شیراز و علاقمند به برنامه نویسی و طراحی مدارات الکترونیکی, در حال حاضر به تولید محتوای آموزشی و طراحی و انجام پروژه مشغول هستم.

    ارسال دیدگاه

    لطفا نظر خود را وارد کنید!
    لطفا نام خود را اینجا وارد کنید

    spot_img