طراحی سخت افزار / نرم افزار و کد برای سیستم دنبال کننده جاده خودکار فازی

 

  1. مقدمه

دنبال کننده جاده خودمختار یکی از موضوعات مهم تحقیقاتی در زمینه وسایل نقلیه هوشمند است  [1] ، [2]. به طور کلی ، نیاز به دو مرحله اصلی دارد : استخراج ویژگی جاده و سرعت / کنترل فرمان وسایل نقلیه [3]. الگوریتم های کنترل باید به عنوان یک مسئله مهم در دنبال کننده جاده خودمختار برای اطمینان از سواری سالم و روان در نظر گرفته شوند . راننده های انسانی می تواند یک ماشین را با استفاده از تخصص و تجربه روان و مطمئن برانند ، نه از دانش در تئوری کنترل ماشین. این واقعیت ما را به راه حل منطق فازی راهنمایی می کند. کنترل منطق فازی به عنوان روش موثر و فعال در حل مشکلات مربوط به کنترل در چند دهه گذشته شناخته شده است. کنترل کننده های منطق فازی (FLCs) یک تبدیل از استراتژی کنترل زبانی بر اساس دانش حرفه ای را به استراتژی های کنترل اتوماتیک ارائه می دهند [4] ، [5].

پیاده سازی FLC را می توان به دو دسته تقسیم کرد : پیاده سازی پردازنده همه منظوره با رفتار فازی انعطاف پذیر و سخت افزار اختصاصی برای کاربردهای خاص [6]. پیاده سازی پردازنده همه منظوره می تواند به سرعت توسعه یافته و در زمینه های مختلف مورد استفاده قرار گیرد. این می تواند به اندازه کافی دستورالعمل فرآیند زمانی که کارهای خیلی پیچیده نیست. زمانی که کارها خیلی پیچیده نیستند این می تواند فرآیند راهنمای مناسبی باشد. با این حال ، زمانی که پیچیدگی وظایف در حال افزایش هستند و یا وقتی اجرای وظایف متعدد به صورت همزمان نیاز است پیاده سازی پردازنده همه منظوره نمی تواند پاسخ در زمان واقعی(real time) را تضمین کند. پیاده سازی سخت افزاری از FLC در مقایسه با تک پردازنده ها عملکرد بهتری را دارد. حتی از نظر سرعت اجرا و جواب دهی  پیاده سازی های نرم افزاری با سیستم های چند پردازنده به سختی می تواند با پیاده سازی های سخت افزاری رقابت کنند. با این حال ، پیاده سازی سخت افزاری نیاز به زمان توسعه طولانی تر دارد و تنها در زمینه های محدود استفاده می شود [7].

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

پیاده سازی های سخت افزاری معمولا عملکرد بهتری در زمان واقعی(real time) دارند ، اما هزینه بالاتر و زمان توسعه طولانی تر در مقایسه با پیاده سازی نرم افزاری دارند. امروزه ، سخت افزار / نرم افزار طراحی کد ، که هدف آن پیدا کردن رابطه بین سخت افزار ، نرم افزار ، طرح زمان بندی شده  از نظر عملکرد و بهینه سازی هزینه در طراحی سیستم های جاسازی شده مشترک است پارتیشن بندی سیستم به پیاده سازی سخت افزاری و نرم افزاری بستگی عمده به طراحی کد سخت افزاری / نرم افزاری دارد [8] ، [9].

در ضمینه پارتیشن بندی نرم افزار/ سخت افزار  کارهای زیادی انجام شده است . برخی از روش های پارتیشن بندی موجود عبارتند از : برنامه ریزی ریاضی ، اکتشافی حریصانه ، و بهبود روش های تکرار شونده. حضور یکپارچه پارتیشن بندی سخت افزار / نرم افزار و استراتژی زمان بندی شده ، که در آن فرایند پارتیشن بندی از اطلاعات راه حل های زمان بندی به عنوان یک راهنما استفاده می کند که توسط Huiqun و Wong [10]  ارائه شده است. ارنست و همکاران [11] از یک الگوریتم جستجوی دودویی (binary search) برای به حداقل رساندن قیمت سخت افزار و ارضاء محدودیت های دیگر استفاده کردند. برنامه نویسی ریاضی می تواند فقط برای نمونه های کوچکی از مشکل طراحی کد استفاده شود. الگوریتم های جستجو و الگوریتم های بهبود تکرار شونده زیر محدودیتی هستند که ممکن است در کمینه محلی به دام بیافتند. الگوریتم های ژنتیک (GA) راه حل شناخته شده ای برای موفقیت در جستجو در روش های جهانی هستند. الگوریتم های GA در سخت افزار / نرم افزار طراحی کد در [13] و [14] استفاده می شوند. با این حال ، [13] تنها به یک پردازنده اجازه می دهد ، در حالی که هزینه و زمان اجرای ارتباطات در نظر گرفته نشده باشد. Dick  و  Jha [14 ] از الگوریتم ژنتیک چند هدفه استفاده کردند، که نظریه بازی ها را از نظریه بهینه-  پارتو  قرض گرفته است. با این حال ، این روش همزمانی دو یا چند وظیفه را در نظر نمیگیرد. علاوه بر این ، به دلیل پیچیدگی این روش پارتیشن بندی ، منبع محاسبه مورد استفاده برای پارتیشن بندی احتمالا هزینه طراحی کد را  کلی بالا می برد.

در این مقاله ، یک سیستم مستقل دنبال کننده جاده خودمختار را برای وسایل نقلیه هوشمند را طراحی می کنیم. FLC برای کنترل فرمان خودرو توسعه داده خواهد شد. FLC پیشنهاد شده است بر روی بورد FPGA انجام می شود. با کمک ابزار اتوماسیون طراحی الکترونیکی (EDA) ، سرعت بسیار بالا برنامه مدارهای یکپارچه زبان تشريع سخت افزارى (VHDL) مدل های سیستم به طور مستقیم ساخت ، بازبینی و تایید ، و پیاده سازی می شوند [12]. علاوه بر این ، روش پارتیشن بندی با استفاده از GA توسعه داده شده است.  پیچیدگی های این روش ارائه شده بین پیچیدگی [13] و [14] است. این روش قادر به پیدا کردن رابطه و تعامل در میان عوامل ارزیابی تحت چند شرط محدودیت است. از کروموزوم های متعدد برای هر فرد ، به طوری که همزمانی چند وظیفه برای طراحی کد قابل قبول باشد استفاده می کند. علاوه بر این ، ارتباطات بین دستگاه های مختلف در شرایط طول می کشد ، بنابراین ، هزینه راه حل طراحی کد را می توان دقیق تر پیش بینی کرد. بقیه مقاله به شرح زیر سازمان دهی شده است : مدل ترکیب حرکتی وسیله نقلیه و راه اندازی آزمایشی در بخش دوم مورد مطالعه قرار گرفت. بخش سوم ارائه طراحی FPGA از FLC. بخش چهارم بهینه سازی سیستم با استفاده از پیاده سازی نرم افزار / سخت افزار طراحی کد را  نشان می دهد. شبیه سازی تجربی و نتایج به دست آمده در بخش پنجم نشان داده شده است. آخرین بخش از این مقاله شامل نتیجه گیری پژوهش است.

 

2. راه اندازی آزمایشی و مدل سازی خودرو

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

 

فرض کنیم  (x, y, φ, θ) مشخص کننده ی پیکربندی ربات ، پارامتر های محل چرخ های جلو باشند . مدل ترکیب حرکتی خودرو روباتیک می تواند به شرح زیر نمایش داده شود :

 

که در آن U3 سرعت رو به جلو خودرو و زاویه بدنه خودرو نسبت به خط افقی θ ، زاویه فرمان با توجه به بدنه خودرو φ ، (x, y) محل نقطه وسط بین چرخ های جلو ، و L طول بین چرخ جلو و عقب است.

راه اندازی آزمایشی سیستم دنبال کننده جاده به صورتی است که در شکل 2نشان داده شده است. سیستم دنبال کننده جاده به صورتی عمل می کند که وسیله نقلیه مبتنی بر بینایی می تواند در حالی که شبیه سازی حرکت بزرگراه اجرا شده است در میان دو خط باقی بماند. سخت افزار سیستم شامل یک دوربین با پردازنده تعبیه شده در آن ، یک FLC اجرا شده بر روی FPGA ، و ماشین کنترل رادیویی (RC) با کنترل کامل فرمان و سرعت سیستم است. این سیستم از دوربین برای پیدا کردن مرکز جاده استفاده می کند. سپس ، پردازنده داخلی دوربین از خطای e را محاسبه می کند، و آن را از طریق پورت RS-232 به FLC می فرستد. خطا متناسب با انحراف ارائه شده در پیکسل ها می باشد. FPGA تصمیم می گیرد چگونه وسیله نقلیه چرخش را انجام دهد و سیگنالهای پالس مدولاسیون عرض (PWM= pulse width modulation) را بر طبق مشخصات ماشین تولید می کند تا فرمان را کنترل کند. سرعت و فرمان خودرو توسط سیگنالهای مختلف PWM کنترل می شود. یک بورد Altera DE2 با یک سیلیکون Cyclone II EP2C35F672C6 FPGA  به عنوان رابط  بین دوربین و مدارات موجود در خودرو ، برای محاسبه زاویه فرمان استفاده شده است.

3. طراحی FLC

یک بلوک دیاگرام از FLC مشخص برای دنبال کننده جاده در شکل 3نشان داده شده است. در جهت گیری مطلوب خط وسط ماشین  باید با وسط جاده تراز قرار گیرد. خطا  زاویه بین خط وسط واقعی ماشین و خط وسط جهت گیری مطلوب است. خطا به صورت e = θd – θ نمایش داده می شود. برای کاهش خطا به صفر ، زاویه فرمان باید برابر φ شود. φ توسط FLC تعیین می شود. خطا و تغییر در خطا محاسبه شده و به FLC داده می شود. FLC اینگونه طراحی شده است که خروجی سیگنال های مربوط به کنترل گشتاور برای کنترل  موتور چرخ های جلو با زاویه φ فرمان را کنترل کند.

زمانی که خودرو در جاده حرکت می کند، بورد DE2  نصب شده بر روی ماشین اطلاعات خطا را از دوربین از طریق پورت سریال  RS-232  دریافت می کند.

 

 

 

 

 

معماری سخت افزار این مدار خاص دنبال کننده جاده در FPGA در شکل 4نشان داده شده است. در مجموع ، چهار شاخک I/O برای این سیستم وجود دارد : "clk" سیگنال 50 مگاهرتز کوارتز تولید شده توسط ساعت درونی نوسان ساز در FPGA. این سیگنال برای همزمان سازی ماژول های مختلف سیستم استفاده شده است ؛ " reset " سیگنال ورودی برای تنظیم مجدد سیستم استفاده می شود ، " RX" سیگنالی که دوربین از طریق پورت RS-232 فرستاده است ، وشاخک پورت خروجی " CTRL" که هدف کلی ورودی / خروجی (GPIO= general purpose input/output) است ، که سیگنال های PWMرا  به مدار کنترل خودرو که کنترل فرمان را در دست دارد می فرستد. مدار سیستم کنترل پیشنهادی شامل چهار ماژول اصلی است : 1) پردازش ماژول گیرنده / فرستنده ناهمگام جهانی (UART= universal asynchronous receiver/transmitter) ،  که فرآیندهای سیگنال سریال که از دوربین از طریق پورت RS-232 ارسال را انجام می دهد؛ 2) ماژول محاسبه تغییر در خطا ، که تغییر در مقدار خطا را بر اساس خطا قبلی و فعلی محاسبه می کند ؛ 3) ماژول FLC ، هسته مدارات طراحی ، که محاسبات را از منطق فازی برای تعیین زاویه فرمان انجام می دهد ؛ و 4) ماژول پردازش خروجی ، که سیگنال های کنترل فرمان چرخ با توجه به محاسبه FLC تولید می کند.

 

 

ماژول FLC هسته مدارات سیستم کنترل دنبال کننده جاده است. که از قسمت تبدیل کننده فازی (فازی ساز)، قسمت تصمیم گیری ، و قسمت غیر فازی ساز تشکیل شده است. قسمت فازی ساز  مقادیر خشک خطا را تغییر داده و به مقدارهای فازی تبدیل می کند. قسمت تصمیم گیری شامل قوانین پایه و موتور استنتاج است ، که در مورد زاویه فرمان بر اساس قوانین فازی تصمیم گیری می کند . در نهایت ، قسمت غیر فازی ساز مقدار های فازی حاصل را به مقادیر کریسپ و خشک تبدیل می کند. ورودی از این ماژول 16 بیت است ، که در آن 8 بیت نشان دهنده خطا و 8 بیت دیگر نشان دهنده تغییر در خطا است. خروجی 8 بیت است ، مقدار کریسپ  خروجی  را نشان می دهد. ورودی و خروجی در فرمت 8 - بیت حالت  بردار استاندارد هستند. مشخصات اجرایی FLC پیشنهادی به شرح زیر است :

 

 

 

 

1)    تعداد متغیرهای ورودی = 2 (خطای e و تغییر در خطای e’) ؛

2)    محدوده متغیرهای ورودی : [0 ، 100] (خطا و تغییر در خطا اعداد مبنای شانزده هستند (هگزادسیمال ، 8 بیت برای هر ورودی استفاده می شود)  ؛

3)    تعداد متغیرهای خروجی = 1 (زاویه فرمان φ) ؛

4)    محدوده متغیرهای خروجی : [0 ، 120] (متغیرهای خروجی اعداد مبنای شانزده ؛هگزادسیمال ، 8 بیت برای خروجی استفاده می شود) ؛

5)    شکل توابع عضویت (MFs): مثلث متساوی الساقین یا ذوزنقه؛

6)    تعداد مجموعه های فازی در هر متغیر ورودی = (5 ، 5) (5 برایe و5 برایe’) ؛

7)    تعداد مجموعه های فازی در متغیر خروجی = (5) ؛

8)    دقت ارزش های عضویت = 8 بیت (256 ارزش برای عضویت هر مقدار) ؛

9)    حداکثر تداخل بین دوMFs = 50٪.

1)فازی ساز :  این قسمت قضات هستند ، MFs ها یی که محاسبه ارزش عضویت در هر MF بر عهده دارند. معماری سخت افزار از این قسمت  در شکل 5نشان داده شده است. ورودی این قسمت 8 - بیت بردار خطا و 8 - بیت بردار تغییر در خطا که از ماژول تغییر در خطا محاسبه میشود هستند. 44 پین در مجموع برای پورت خروجی وجود دارد. "ue1" و "ue2" نشان دهنده ارزش های عضویت خطا در دو MFs هستند ، و "fe1" و "fe2" شاخص های فازی متناظر با  مقدار آنها هستند. "uce1" و "uce2" نشان دهنده ارزش های عضویت تغییر در خطا در دو MFs ، و "fce1" و "fce2" شاخص های  فازی متناظر با  مقدار آنها هستند. از آنجا که برای هر دو ورودی پنج MFs وجود دارد ، ما می توانیم برای نشان دادن این چهارمقدار فازی از بردار 3 - بیتی استفاده  کنیم(2^3=8>5). شکلهای  MFs ،و  نگاشت بین فاصله هر ورودی و مجموعه فازی در کد VHDL از پیش تعریف شده است. تعداد نگاشت های برای هر متغیر ورودی برابر است با تعداد مجموعه فازی (به عنوان مثال ، 5). هر متغیر ورودی ارزیابی شده  و به یک مجموعه فازی نگاشت می شود. سپس ، با توجه به ارزش این متغیر ، مقدار عضویت تخصیص داده می شود. از دو شاخص برای نشان دادن اینکه هر ورودی دردو MFs قابل تخصیص است استفاده می کنیم.

 

2) قسمت تصمیم گیری: شکل6 معماری این قسمت را نشان میدهد. که شامل قوانین پایه ، موتور استنتاج ، و سابقه بلوک سازگاری می باشد. قسمت تصمیم گیری ارزش های عضویت و شاخص های فازی قسمت فازی ساز را به عنوان ورودی می گیرد. با توجه به ارزش عضویت ورودی ها  و شاخص ها ، بر اساس پایگاه قوانین  فازی از پیش تعریف شده تصمیم گیری می کند.

 

از آنجا که اپراتور منطق فازی " AND"  برای گرفتن ارزش ها قبلی استفاده شده است ، " Min" بلوک هایی در شکل6 نشان داده شده، برای انتخاب حداقل ارزش عضویت قابل اجرا هستند. چهار ارزش عضویت از قسمت فازی ساز  ue1 ، ue2 ، uce1 ، و uce2 نسبت داده و با چهار مدار  " Min" 2 - به - 1 به منظور رسیدن به ارزش ها قبلی از قوانین فازی انتخاب می شوند.

چهار شاخص زبان فازی از زیر ماژول فازی ساز  به چهار ترکیب گروه بندی می شوند که هر یک شامل یک شاخص از هر یک از ورودی هستند. هر ترکیبی برای انتخاب کنترل بر اساس پایگاه قانون از پیش تعریف شده استفاده شده است. شاخص های زبان فازی و قوانین انتخاب شده با عبارات شرطی اگر-آنگاه فازی همراه هستند. در VHDL، این گروه به عنوان عبارات شعبه اگر-آنگاه تعریف شده ، که می تواند به صورت زیر بیان شوند :

IF (fe1 = PosL AND fce1 = PosL)

THEN R := RgtL;

ELSE IF (fe1 = Zero AND fce2 = Zero)

THEN R := Mid;

ELSE IF (fe2 = NegS AND fce1 = PosL)

THEN R := RgtS;

ELSE IF (fe2 = PosS AND fce2 = PosS)

THEN R := RgtL;

. . .;

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

3) قسمت غیر فازی ساز : روش غیر فازی ساز بر اساس مرکز ثقل روش ذکر شده در بخش قبلی است. ترکیب این زیر قسمت در شکل 7 نشان داده شده است. چهار قانون ایجاد شده و ارزش های قبلی متناظر با آنها از قسمت تصمیم گیری که به عنوان سیگنال های ورودی این قسمت استفاده می شوند صادر می شود.

 

 

 

4. بهینه سازی سیستم دنبال کننده جاده با سخت افزار/ نرم افزار  طراحی کد

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

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

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

 

الف) روش پیشنهادی

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

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

1) تعیین اندازه جمعیت؛

2) مقداردهی اولیه نسل 0 از جمعیت. تخمین انتساب دستگاه برای هر وظیفه به کروموزوم خود ؛

3) ارزیابی راه حل هر یک از پارتیشن بندی ها در جامعه؛

الف) اگر راه حل رضایت بخشی پیدا شد ، برو به مرحله 5؛

ب) اگر هیچ یک از راه حل ها در این نسل نیاز ها را برآورده نکرد، به مرحله 4؛

4) تولید نسل جدید؛

الف) مرتب کردن بر اساس مقدار تناسب؛

ب) انتخاب افراد خوب ؛

ج) دو رگه  crossover؛

د) تغییر دادن و گرفتن جدید نتاج،برو به مرحله 3 با نسل جدید؛

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

 

ب. تابع شایستگی

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

تابع شایستگی مدل به شرح زیر است :

 

 

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

 F1 مجموع نقض عملکرد در راه حل پارتیشن بندی از لحاظ مهلت از دست رفته است،

F2 نقض از نظر همزمانی است،

F3 کل زمان اجرای پیاده سازی پارتیشن بندی است،

F4 کل قیمت پیاده سازی طرح است،

و F5 کل مصرف برق است.

aj فاکتور وزن برای معیار ارزیابی jام است.

 

 

 

 

5. نتایج آزمایش

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

الف- نمایش نتایج آزمایش اجرای FPGA

پس از شبیه سازی، ساخت، و کامپایل، جریان پیکربندی این است که  برای آزمایش دنبال کننده جاده  بورد FPGA  برنامه ریزی شده است . ما ازیک راه ساختگي با دو خط برای راهنمای ناوبری خودرو هوشمند استفاده می کنیم. ماشین قادر است با سرعت 0.9 متر در ثانیه جاده را دنبال کند. سیگنال های Quartus برای ضبط داده ها تجربه از ضربه دوم منطق تجزیه و تحلیل استفاده کرده است ، در حالی که ماشین منحنی جاده را دنبال می کند. خطا (e)، تغییر در خطا (e’)، و کنترل خروجی FLC (Φ) آنها در شکل 8 ضبط و رسم شده است.  شکل 8 کنترل خروجی واقعی FLC با توجه به ورودی را نشان می دهد. این مشابه نتیجه شبیه سازی شده است . خط سیر واقعی از ماشین ضبط شده است و با مسیر مورد نظر، از خط وسط جاده در شکل. 9،  مقایسه شده است که مسیر واقعی به طور میانگین داده های پنج آزمایش است. خطای مطلق حداکثر بین مسیر مورد نظر و مسیر واقعی از وسیله نقلیه هوشمند 1.02 اینچ است. خطای مربع میانگین ریشه  0.56 اینچ است، که در مقایسه با عرض جاده که 8 اینچ نسبتا کوچک است .

 

ب- نمایش نتایج آزمایش پارتیشن بندی

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

فلوچارت وظیفه: اول عملکرد سیستم دنبال کننده جاده ی پیشنهاد شده به وظایف برخی از دانه دانه بودن تجزیه می شود. سطح تقسیم کردن باید با دقت انتخاب شود. اگر سطح تقسیم بندی خیلی عمیق باشد، عملکرد و هزینه ممکن است به دلیل تخریب ارتباطات اضافی کاهش پیدا کند ، و منابع مورد استفاده برای محاسبه پارتیشن بندی افزایش خواهد یافت. با این حال ، اگر سطح تقسیم بندی عمق کافی نداشته باشد، راه حل طراحی کد رضایت بخش را نمی توان یافت. فلوچارت کار از سیستم دنبال کننده جاده در شکل 10نشان داده شده است. قابلیت سیستم به 10 وظیفه شکسته می شود : وظیفهA : خواندن خطاها؛ وظیفه B : محاسبه تغییر در اشتباهات ؛  وظیفه C : فازی ساز برای خطا؛ وظیفهD  : فازی ساز برای تغییر در خطا؛  وظیفهE : انتخاب قواعد منطق فازی؛ وظیفه F : محاسبات ارزش اولیه؛ وظیفه G از طریق وظیفه I : محاسبه خروجی ترد(crisp)؛  وظیفه J : تولید سیگنال PWM برای کنترل خودرو. وظیفه C و وظیفه D را به عنوان وظایف همزمان تعریف می کنیم. آنها باید به صورت همزمان اجرا شوند.

2) بررسی سخت افزار / نرم افزار اجرا : محدودیت زمانی برای وظیفه A تعریف شده در نرخ علامت در ثانیه برای انتقال RS - 232 است. برای رسیدن به مشخصات مدار در خودرو، و برای تضمین قابلیت اطمینان سیستم وظیفه H باید ظرف 25 میلی ثانیه به پایان برسد ، تمام کارها باید ظرف 24 میلی ثانیه به پایان برسند. اگر چه همه کارهای باید ظرف 24 میلی ثانیه به پایان برسند ، هیچ محدودیت زمانی سخت برای هر وظیفه فرد وجود ندارد. از این رو، ما می توانیم محدودیت های زمانی قابل انعطاف در محدوده منطقی را برای انجام وظایف تعریف کنیم ، اما محدودیت زمانی محکم برای عملکرد کل باید در نظر بگیریم. محدودیت های زمانی در جدول I نشان داده شده است.

جدول II هزینه هر وظیفه در هر دستگاه و همچنین هزینه های ارتباطی را نشان می دهد . قیمت سخت افزار توسط تعداد عناصر منطقی مورد استفاده برای پیاده سازی منطقی تعریف شده توسط کاربر مورد بررسی قرار می گیرد. قیمت پیاده سازی نرم افزار را 0 در نظر می گیریم چون نرم افزار در حال حاضر وجود دارد و بدون هیچ هزینه اضافی افزوده خواهد شد ، اگر این کارها بر روی نرم افزار اجرا شوند. ارتباطات طوری در نظر گرفته شده است اگر دو کار متوالی بر روی دستگاه های مختلف اجرا شوند. در این حالت، ارتباطات می تواند در خروجی از وظیفهA به وظیفه I اتفاق بیافتد که هر کدام  بردار منطق هستند. ورودی / خروجی موازی (PIO) برای ارتباط بین FPGA و پردازنده  Nios II استفاده می شود. ماژول PIO جزء کتابخانه های موجود در کیت توسعه Nios است، که یک رابط حافظه نگاشت بین ماژول نرم افزار و ماژول سخت افزار را فراهم ساخته است. می توان از زمان ارتباط با ماژول های PIO در مقایسه با کارهای دیگر اجرا در نرم افزار صرف نظر کرد. مقدارهای کوچک برای برقراری ارتباط و قیمت مصرف قدرت هر کدام از PIO استفاده می شود. قیمت ارتباطات و مصرف انرژی بین کارها در برآورد تعداد PIO مورد استفاده قرار گرفته شده است.

نتیجه پارتیشن بندی با استفاده از الگوریتم ژنتیک پیشنهاد شده که در شکل 11نشان داده شده است. برای رسیدن به راه حل جمعیت در هر نسل 50 و 50 نسل تولید می شود. محدودیت زمانی و دوره قیمت ها به شدت وزن برای جلوگیری از نقض مهلت اجرای بالا و قیمت بستگی دارد. راه حل نهایی پارتیشن بندی برای اجرای وظیفهA در سخت افزار است، در حالی که وظایف دیگر را بر روی نرم افزار اجرا می کند. به این ترتیب ، ماژول سخت افزار اطلاعات از طریق پورت RS - 232 از دوربین دریافت کرده و داده ها را به بردار استاندارد منطق تبدیل می کند. ماژول نرم افزار تصمیم گیری با استفاده از FLC و تولید سیگنال PWM  فرمان را کنترل می کند. ماژول های سخت افزاری منطق تعریف شده توسط کاربر هستند. ماژول های نرم افزاری در Micrium ازمیکرو C/OS-II سیستم عامل را با پردازنده  Nios II با استفاده از زبان C اجرا شده است.  پیکربندی سخت افزار / اجرای نرم افزار طراحی کد در شکل 12نشان داده شده است.

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

 

6. نتیجه گیری

 

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

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


مطالب مشابه :


عناوین پروژه های پایان نامه آقای مهندس حسینی

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




پروژه با میکرو پرسسور

سخت افزار با سحر - پروژه با میکرو پرسسور - قدرت در ذهن شماست نه در امکانات




دانلود رایگان پروژه درس سخت افزار 2

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




تکنیک تولید قفل سخت افزاری و نرم افزاری وشکستن انها ( مقاله اول )

مقاله ، تحقیق ، پروژه ، پایان نامه - تکنیک تولید قفل سخت افزاری و نرم افزاری وشکستن انها




طراحی سخت افزار / نرم افزار و کد برای سیستم دنبال کننده جاده خودکار فازی

سفارش انجام پروژه های متلب - طراحی سخت افزار / نرم افزار و کد برای سیستم دنبال کننده جاده




مقاله,تحقیق, پروژه و پایان نامه کامپیوتر سخت افزار و نرم افزار

پروژه و سورس دانشجويي پروژه و پایان نامه کامپیوتر سخت افزار و نرم افزار.




درس سخت افزار

آموزش و پروژه های دانشجویی - درس سخت افزار - پروزه دانشجویی & مقاله آموزشی & برنامه نویسی




پروژه CD ROM كامپيـوتـر

سخت افزار - hardware شناخت درايوهاي CD ROM. تاريخچه CD Rom ها به اواخر دهه 80ميلادي بر مي گردد و با




پروژه ها و مطالب مربوط به درس اندازه گیری و کنترل رایانه ای استاد مرامی

سخت افزار کامپیوتر - پروژه ها و مطالب مربوط به درس اندازه گیری و کنترل رایانه ای استاد مرامی




سخت افزار های موجود در کلاس های خصوصی پی ال سی وان

HMI دلتا , پروژه plc , آموزش plc - سخت افزار های موجود در کلاس های خصوصی پی ال سی وان , این وبلاگ در




برچسب :