توضیحات
طراحی کنترلر فرمان برای خودرویی که باید میان دو خط جاده بماند، به رابطهای میان خطای مسیر و زاویه فرمان نیاز دارد که با یک فرمول ساده به دست نمیآید. این پروژه، شبیهسازی کنترلر فازی دنبالکننده جاده در متلب و سیمولینک را بر پایه مقاله Fu و همکاران (IEEE، ۲۰۱۰) ارائه میکند: یک سیستم استنتاج فازی ۲۵ قانونی که از خطا و تغییر خطای مسیر، زاویه فرمان را میسازد، در کنار مدل سینماتیکی خودرو و اسکریپتی که مدل را اجرا و نتایج را نمایش میدهد.
توضیحات
شبیهسازی کنترلر منطق فازی (FLC) سیستم دنبالکننده خودکار جاده در متلب/سیمولینک
Hardware/Software Codesign for a Fuzzy Autonomous Road-Following System
این محصول شامل مدل سیمولینک، فایل سیستم استنتاج فازی، اسکریپت اجرا و گزارش ۳۸ صفحهای است و در MATLAB R2024b ساخته و اجرا شده است. مقاله مرجع در نشریه IEEE Transactions on Systems, Man, and Cybernetics—Part C: Applications and Reviews، جلد ۴۰، شماره ۶، نوامبر ۲۰۱۰ منتشر شده است.
ترجمه تخصصی چکیده
در این پژوهش، یک کنترلر منطق فازی (Fuzzy Logic Controller, FLC) برای دنبالکردن خودکار جاده مبتنی بر بینایی (vision-based) طراحی شده است. به دلیل سرعت پاسخ بالا، قابلیت حمل و انعطافپذیری، از آرایه گیت برنامهپذیر میدانی (Field Programmable Gate Array, FPGA) برای پیادهسازی این سیستم کنترل استفاده شده است. علاوه بر این، روشی نوین برای افراز سختافزار/نرمافزار (hardware/software partitioning) با استفاده از الگوریتم ژنتیک (Genetic Algorithm, GA) توسعه داده شده است. این روش میتواند در شرایط قیدهای سخت (hard constraints)، بین چند عامل ارزیابی مصالحه (tradeoff) برقرار کند. یک خودروی هوشمند کوچکمقیاس که توانایی دنبالکردن خودکار جاده را دارد ساخته شده و کنترلر پیشنهادی در محیط واقعی آزمایش شده است. آزمایشهای مربوط به پیادهسازی سختافزاری و پیادهسازی همطراحی (codesign) ارائه و با یکدیگر مقایسه شدهاند.
توضیحات شبیهسازی کنترلر فازی دنبالکننده جاده در متلب/سیمولینک
سیستم آزمایشی مقاله از یک خودروی کنترل از راه دور (RC) کوچک، یک دوربین و یک FLC پیادهسازیشده روی FPGA تشکیل شده است. دوربین مرکز جاده را پیدا میکند و خطای مسیر را برای FLC میفرستد. FLC با دریافت خطا و تغییر خطا، زاویه فرمان را تعیین میکند و خروجی آن به صورت سیگنال مدولاسیون عرض پالس (Pulse Width Modulation, PWM) به مدار فرمان خودرو میرسد.
شبیهسازی این پروژه، هسته کنترلی مقاله را در سیمولینک بازسازی میکند. مدل سینماتیکی خودرو بر اساس معادله (۱) مقاله ساخته شده و خطا مانند مقاله، اختلاف زاویه جهت مطلوب و جهت واقعی خودرو تعریف شده است. تغییر خطا از اختلاف دو نمونه متوالی به دست میآید و کنترلر فازی با ورودی گرفتن این دو کمیت، زاویه فرمان را میدهد. با زاویه فرمان، مدل خودرو مکان و جهت جدید را میسازد و این وضعیت دوباره برای محاسبه خطا به مدل برمیگردد.
مدل سیمولینک با بلوکهای کتابخانه Simulink و Fuzzy Logic Toolbox ساخته شده و به پنج بخش رنگی تقسیم شده است: Sensor (محاسبه خطا و تغییر خطا)، Fuzzy Logic Controller، Delay and Steering Angle (تأخیر و تبدیل خروجی کنترلر به زاویه فرمان)، Vehicle Kinematic Model (مدل سینماتیکی خودرو) و Data Logging (ثبت داده). هر بخش در گزارش همراه پروژه، همراه با پارامترهای بلوکها و مراحل ساخت شرح داده شده است.

ویژگی متمایزکننده این پروژه آن است که سیستم فازی در یک فایل FIS ذخیره شده و بلوک Fuzzy Logic Controller مستقیماً آن را میخواند. با ویرایش توابع عضویت و قواعد در Fuzzy Logic Designer، رفتار مدل بدون تغییر در ساختار سیمولینک عوض میشود. اسکریپت اجرا (main.m) فایل FIS را میخواند، مدل را برای دو شرایط اولیه اجرا میکند و مسیر خودرو، خطا، انحراف جانبی و سطح کنترلی را نمایش میدهد.
خطا و تغییر خطا پیش از ورود به کنترلر، طوری مقیاس میشوند که صفر به عدد ۵۰ (وسط بازه ورودی FIS) نگاشته شود و حاصل در بازه [0, 100] بماند. خروجی کنترلر در بازه [0, 120] است و عدد ۶۰ نشاندهنده فرمان مستقیم است؛ با کم کردن ۶۰ از آن، زاویه فرمان بر حسب درجه به دست میآید و با یک محدودکننده به حد مجاز فرمان میرسد. سرعت پیشروی خودرو ۰٫۹ متر بر ثانیه و عرض جاده ۸ اینچ است که هر دو از مقاله گرفته شدهاند.
اسکریپت اجرا دو سناریو را اجرا میکند. در سناریوی اول خودرو روی خط مرکز جاده شروع میکند و توانایی کنترلر در دنبالکردن مسیر خمیده بررسی میشود. در سناریوی دوم خودرو ۲ اینچ از خط مرکز فاصله دارد تا جبران انحراف اولیه دیده شود. برای هر سناریو، RMS انحراف جانبی، بیشینه انحراف و بیشینه زاویه فرمان محاسبه و چاپ میشود.
بخش عملی و اکسپریمنتال مقاله، شامل ساخت خودرو، پیادهسازی روی FPGA، الگوریتم ژنتیک و آزمایشهای واقعی (از جمله شکلهای ۸ و ۹ مقاله)، قابل شبیهسازی نیست و در این پروژه نیامده است.
موضوعات مورد بررسی در پروژه
- طراحی سیستم استنتاج فازی (Fuzzy Inference System, FIS) ممدانی با دو ورودی (خطا و تغییر خطا) و یک خروجی (زاویه فرمان)
- تعریف پنج تابع عضویت مثلثی با همپوشانی ۵۰٪ برای هر متغیر، مطابق مشخصات مقاله
- پایگاه ۲۵ قاعدهای با عملگر AND به صورت کمینه و غیرفازیسازی به روش مرکز ثقل
- مدل سینماتیکی خودرو بر پایه معادله (۱) مقاله با انتگرالگیرهای گسستهزمان
- محاسبه خطا و تغییر خطا و تبدیل آنها به ورودیهای کنترلر فازی
- تبدیل خروجی کنترلر به زاویه فرمان همراه با تأخیر یکگامی و محدودیت زاویه
- اجرای دو سناریو: شروع از خط مرکز جاده و شروع با ۲ اینچ انحراف از آن
- بررسی مسیر خودرو، انحراف جانبی و سطح کنترلی کنترلر فازی
- ثبت دادههای شبیهسازی در Workspace و استخراج معیارهای RMS و بیشینه انحراف
مشخصات فنی پروژه
- نرمافزار: MATLAB R2024b همراه با Simulink و Fuzzy Logic Toolbox
- g14_fuzzy.fis: سیستم استنتاج فازی ممدانی با دو ورودی در بازه [0, 100]، یک خروجی در بازه [0, 120]، پنج تابع عضویت مثلثی برای هر متغیر و ۲۵ قاعده. روش AND کمینه و روش غیرفازیسازی مرکز ثقل است. این مشخصات با بخش III مقاله همخوان است.
- g14_fuzzy_road_following.slx: مدل سیمولینک با گام ثابت گسسته. مدل خودرو بر اساس معادله (۱) مقاله با انتگرالگیرهای Forward Euler، بلوک Sensor از نوع MATLAB Function، بلوک Fuzzy Logic Controller، بلوک تأخیر واحد و بلوکهای ثبت داده.
- main.m: تعریف پارامترها، خواندن فایل FIS، اجرای مدل برای دو سناریو، رسم نمودارها، ذخیره شکلها و چاپ جدول معیارها.
- پارامترهای شبیهسازی: گام زمانی ۰٫۰۲۵ ثانیه، زمان شبیهسازی ۳٫۲ ثانیه، طول جاده ۱۰۰ اینچ، عرض جاده ۸ اینچ و سرعت پیشروی ۰٫۹ متر بر ثانیه. مقادیر همه پارامترها در بخش Parameters فایل main.m قابل تغییرند.
- گزارش: آموزش گامبهگام طراحی FIS، ساخت مدل در Simulink، توضیح اسکریپت اجرا و تحلیل نتایج در ۳۸ صفحه.
این شبیهسازی برای چه کسانی مناسب است؟
- پژوهشگران کنترل فازی که ساختار یک کنترلر دومتغیره با خطا و تغییر خطا را بررسی میکنند
- مهندسان و پژوهشگران حوزه خودروهای هوشمند و دنبالکننده مسیر
- متخصصان رباتیک متحرک که به مدل مرجع کنترل جهتگیری نیاز دارند
- علاقهمندان به آموزش ساخت مدل سینماتیکی و کنترلر فازی در سیمولینک
- مدرسان درسهای سیستمهای فازی و کنترل هوشمند که مثال مستند میخواهند
فایلهای موجود در پروژه
- main.m: اسکریپت اجرا و نمایش نتایج
- g14_fuzzy_road_following.slx: مدل سیمولینک
- g14_fuzzy.fis: سیستم استنتاج فازی
- گزارش آموزشی Word (۳۸ صفحه)
نتایج قابل مشاهده
مسیر خودرو، شروع از خط مرکز

خودرو روی مسیر S شکل جاده به طول ۱۰۰ اینچ و عرض ۸ اینچ حرکت میکند و مسیر مطلوب را بدون نزدیک شدن به خطوط کناری دنبال میکند.
خطا، تغییر خطا و خروجی کنترلر، شروع از خط مرکز

تا ورود نقطه هدف به بخش خمیده جاده، خطا صفر و خروجی کنترلر ۶۰ (فرمان مستقیم) است. پس از آن خطا حدود ±۷ درجه نوسان میکند و خروجی کنترلر بین حدود ۴۶ و ۷۴ تغییر میکند.
انحراف جانبی، شروع از خط مرکز

بیشینه انحراف جانبی ۰٫۲۸۶ اینچ، RMS انحراف ۰٫۱۵۳ اینچ و بیشینه زاویه فرمان ۱۳٫۹۲ درجه است.
مسیر خودرو، شروع با ۲ اینچ انحراف

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

خطای اولیه حدود ۱۴ درجه و خروجی کنترلر حدود ۸۷ است؛ با کم شدن خطا، خروجی بهسرعت به حدود ۵۰ میرسد. بیشینه زاویه فرمان ۲۷٫۳۴ درجه است.
انحراف جانبی، شروع با ۲ اینچ انحراف

انحراف از ۲− اینچ در حدود ۰٫۴۵ ثانیه به کمتر از ۰٫۱ اینچ میرسد. پس از ۰٫۵ ثانیه، انحراف از ±۰٫۳۳ اینچ بیشتر نمیشود. RMS انحراف در کل مسیر ۰٫۵۶۰ اینچ است.
سطح کنترلی کنترلر فازی

سطح سهبعدی خروجی کنترلر را بر حسب خطا و تغییر خطا نشان میدهد. بهطور کلی با افزایش هر یک از دو ورودی، خروجی کاهش مییابد.
علاوه بر این، تمامی متغیرهای اصلی سیستم (مکان و زاویه خودرو، خطا، تغییر خطا، خروجی کنترلر، زاویه فرمان و انحراف جانبی) در متغیر logs در Workspace ذخیره میشوند و میتوانید برای مطالعات تکمیلی از آنها استفاده کنید.
پرسشهای متداول
این شبیهسازی با چه نسخهای از متلب ساخته و اجرا شده است؟
با MATLAB R2024b. اجرای آن در نسخههای دیگر آزمایش نشده است.
چه Toolboxهایی لازم است؟
Simulink و Fuzzy Logic Toolbox. بلوک Fuzzy Logic Controller و ویرایش فایل FIS به Fuzzy Logic Toolbox نیاز دارد.
آیا نتایج مقاله بازتولید میشود؟
خیر. بخش عملی و اکسپریمنتال مقاله، از جمله شکلهای ۸ و ۹ که نتایج آزمایش روی خودروی واقعیاند، قابل شبیهسازی نیست. این پروژه کنترلر فازی و مدل سینماتیکی مقاله را شبیهسازی میکند.
ترتیب اجرا چگونه است؟
سه فایل main.m، g14_fuzzy_road_following.slx و g14_fuzzy.fis را در یک پوشه قرار دهید، آن پوشه را Current Folder کنید و در Command Window دستور main را اجرا کنید. مدل را بهتنهایی اجرا نکنید، چون متغیرهای مورد نیاز آن را main.m تعریف میکند.
چگونه پارامترها یا قواعد فازی را تغییر دهم؟
پارامترهای شبیهسازی (سرعت، طول خودرو، گام زمانی، شرایط اولیه و …) در بخش Parameters فایل main.m هستند. توابع عضویت و قواعد را در Fuzzy Logic Designer روی فایل g14_fuzzy.fis ویرایش کنید. شکل مسیر جاده در بلوک Sensor قرار دارد.
گزارش شامل چه بخشهایی است؟
گزارش ۳۸ صفحهای شامل مروری بر مقاله، آموزش طراحی FIS در Fuzzy Logic Designer، ساخت مدل در Simulink با پارامترهای هر بلوک، توضیح main.m و تحلیل نتایج است.
شکل مسیر جاده را چگونه عوض کنم؟
خط مرکز جاده با تابع road_yc داخل بلوک Sensor تعریف شده است. با ویرایش این تابع در MATLAB Function Editor میتوانید مسیر دیگری تعریف کنید. گزارش همراه پروژه، این تابع و رابطه ریاضی آن را توضیح داده است.
مزایای پروژه
- مشخصات FIS (بازهها، تعداد و شکل توابع عضویت، همپوشانی، عملگرها و تعداد قواعد) با بخش III مقاله همخوان است.
- فایل FIS مستقیماً توسط بلوک Fuzzy Logic Controller استفاده میشود و ویرایش توابع عضویت و قواعد بدون تغییر مدل ممکن است.
- مدل خودرو با بلوکهای استاندارد Simulink ساخته شده و بخشهای مدل با رنگ و نام از هم جدا هستند.
- یک اسکریپت، مدل را برای دو سناریو اجرا میکند، نمودارها را رسم و ذخیره میکند و جدول معیارها را چاپ میکند.
- گزارش ۳۸ صفحهای، مراحل ساخت مدل، توضیح اسکریپت اجرا و تحلیل نتایج را بهصورت آموزشی شرح میدهد.
- همه سیگنالهای اصلی مدل در یک متغیر ذخیره میشوند و برای رسم نمودارهای دلخواه یا تحلیلهای بعدی در دسترساند.
نکات مهم
- این پروژه بازسازی سیستم مقاله در سیمولینک با استفاده از مدل سینماتیکی، تعریف خطا و کنترلر فازی مقاله است.
- بخش عملی و اکسپریمنتال مقاله، شامل ساخت خودرو و دوربین، پیادهسازی روی FPGA با VHDL، الگوریتم ژنتیک برای تقسیم سختافزار/نرمافزار و آزمایشهای واقعی، قابل شبیهسازی نیست. شکلهای ۸ و ۹ مقاله نتایج آزمایش عملیاند و در این پروژه نیامدهاند.
- پارامترهایی که در مقاله وجود نداشت، با فرض و آزمون و خطا تعیین شدهاند. بنابراین نتایج عددی این پروژه با نتایج آزمایشی مقاله قابل مقایسه نیست.
- مقاله فقط چهار قاعده فازی را نمونه میآورد و جدول کامل ۲۵ قاعده را نمیدهد. پایگاه قوانین این پروژه با ساختار متقارن تکمیل شده است.
- مقاله نحوه تبدیل زاویه خطا به ورودی کنترلر را شرح نمیدهد؛ در این پروژه از مقیاسگذاری مشخصی استفاده شده که در گزارش آمده است.
- در مقاله ورودی و خروجی کنترلر روی FPGA با ۸ بیت نمایش داده میشوند، ولی متلب محاسبات را با دقت اعشاری انجام میدهد.
- مدل سیمولینک بهتنهایی قابل اجرا نیست و باید از طریق main.m اجرا شود. تغییر پارامترها در مدل از طریق main.m انجام میشود.
- فایلها فقط با MATLAB R2024b ساخته و اجرا شدهاند.
شبیهسازی کنترلر منطق فازی (FLC) سیستم دنبالکننده خودکار جاده در متلب/سیمولینک
طبق توضیحات فوق توسط کارشناسان سایت متلبی تهیه شده است و به تعداد محدودی قابل فروش میباشد.
سفارش انجام پروژه مشابه
درصورتیکه این محصول دقیقاً مطابق خواسته شما نمیباشد،
با کلیک بر روی کلید زیر پروژه دلخواه خود را سفارش دهید.







