پایان نامه ارشد : منابع کارشناسی ارشد در مورد کنترل ربات دو پا در حال ... - منابع مورد نیاز برای پایان نامه : دانلود پژوهش های پیشین |
انتخاب ورودی ها باید به گونه ای باشد که مدهای مختلف حرکتی را فعال نماید. در این راستا مسیرهائی با سرعت و شتاب متغیر به شکل زیر انتخاب شده اند:
(۳-۷)
مسیرهای انتخابی همان مسیرهای پایدار طراحی شده اند که به دلیل پیچیدگی رابطه با دقت بالائی به وسیله توابع چندجملهای فیت زده شده اند. برای سایر مفاصل نیز توابعی چندجملهای به صورت مشابه انتخاب میشوند. این مقادیر به صورت ورودی به توابع ماتریسهای جرمی، گرانش و ماتریس اجزای غیرخطی و کوریولیس داده میشوند و بر اساس معادله حرکت مقداری عددی برای گشتاورها به دست می آید. همین ورودی ها به مدل ساخته شده در محیط Simulink نیز اعمال میشوند. بلاک عملگر[۸] در جعبه ابزار SimMechanics این امکان را به ما میدهد که از میان دو گزینهی اعمال نیرو و اعمال مسیر مطلوب یکی را به دلخواه انتخاب کنیم. در اینجا اعمال مسیر مطلوب مورد نظر است. در فصل شبیهسازی توضیحات بیشتری در مورد نحوه مدلسازی به کمک جعبه ابزار SimMechanics خواهد آمد.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت nefo.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))
۳-۴-۲- نتایج صحهگذاری
به منظور ثبت میزان گشتاورهای لازم جهت طی نمودن مسیر مورد نظر، سنسور[۹]هائی به هر مفصل متصل نمودهایم. مقادیر خروجی از توابع حامل معادله حرکت با مقادیر خروجی سنسورها مقایسه می شود. نمودار (۳-۳-الف) میزان خطای موجود را نشان میدهد. این میزان خطا در واقع و با توجه به پیچیدگی ترمهای مدل دینامیکی که به شدت غیرخطی است، صفر است. بنابراین میتوان گفت صحت مدل با دقت بالائی مورد تاًیید است. به عنوان نمونه میزان گشتاور مفصل مچ پای راست در شکل (۳-۳-ب)، شتاب در شکل (۳-۳-ج) و سرعت در شکل (۳-۳-د) آمده است. همچنین میزان گشتاور موجود در مفاصل ربات HRP جهت مقایسه در شکل (۳-۴) آمده است.
شکل (۳-۳-الف). خطای موجود در خروجی صحه گذاری شکل (۳-۳-ب). گشتاور عکسالعملی روی مچ پای راست
شکل (۳-۳- ج). شتاب زاویهای مفصل مچ پای راست شکل (۳-۳-د). سرعت زاویهای مفصل مچ پای راست
در صفحه بعد تصویری از محیط Simulink که در آن صحهگذاری دینامیک انجام شده آمده است. مدل ربات در بالا و توابع حامل ماتریسهای جرمی گرانش و سرعتها در پائین آمده است.
فصل چهارم
طراحی شیوه ی حرکت پایدار ربات
۴-۱- مقدمه
در این پروژه، بهینهسازی حرکت ربات با بهره گرفتن از الگوریتم ژنتیک انجام می شود. توضیحات مربوط به چگونگی و نحوه ورود الگوریتم ژنتیک به بحث، در بخش مربوط به طراحی مسیر آورده می شود. ابتدا به طور مختصر به روند کاربرد و اجزاء و مفاهیم پایه این الگوریتم میپردازیم.
۴-۲- الگوریتم ژنتیک
الگوریتم ژنتیک، روشی برای جستجو و بهینهسازی است که مبتنی بر احتمالات میباشد. روش کار در الگوریتم ژنتیک از فرایند تکامل بیولوژیکی و انتخاب طبیعی در طبیعت الهام گرفته شده است. مفاهیم اولیه الگوریتم ژنتیک اولین بار توسط هلند[۱۰] [۳۲] معرفی شده و پس از آن مقالات بسیاری در این زمینه ارائه شد. با پیشرفت کامپیوترها و افزایش سرعت آنها، امروزه استفاده از الگوریتم ژنتیک در مسائل مهندسی رواج یافته و مسائل پیچیدهای توسط الگوریتم ژنتیک حل شده است. روشهای بهینهسازی معمولاً به دو دسته کلی تقسیم میشوند: روشهای مبتنی بر گرادیان و روشهای مستقل از گرادیان. در روشهای بهینهسازی مبتنی بر گرادیان، برای بدست آوردن نقطه بهینه از مشتق یا گرادیان تابع نسبت به متغیرها استفاده می شود، لذا نیاز است که مشتق تابع هدف محاسبه شود. روشهای نیوتن، شیب نزولی و حداقل مربعات از این دست میباشند. اما در روشهای مستقل از گرادیان به اطلاعات مربوط به مشتق یا گرادیان تابع هدف نیازی نیست و این روشها معمولاً با بهره گرفتن از ارزیابی مکرر تابع هدف، نقاط بهینه را مییابند. الگوریتم ژنتیک و جستجوی تصادفی در زمره این روشها هستند.
در الگوریتم ژنتیک هر نقطه، که شامل متغیرهای مسأله در بازه مورد نظر است و می تواند یک جواب برای مسأله باشد، به صورت یک کد (معمولاً به صورت باینری) درمیآید. به این عمل کدگذاری گفته می شود و هر یک از نقاط کدگذاری شده یک کروموزوم یا یک شخص نامیده می شود. هر کروموزوم شامل تمامی متغیرها یا پارامترهای مسأله بصورت کدگذاری شده میباشد. هر یک از این متغیرهای کدگذاریشده ژن نامیده می شود. در واقع در فرایند بهینهسازی در الگوریتم ژنتیک، نقاط از فضای متغیرهای مسأله به فضای ژنها و کروموزومها نگاشته میشوند و عملیات روی این کروموزومها انجام می شود. در پایان فرایند بهینهسازی نقطۀ بهینۀ به دست آمده کدبرداری شده به فضای متغیرهای مسأله برگردانده می شود. برخلاف اکثر روشهای بهینهسازی که کار را با یک نقطه آغاز می کنند در الگوریتم ژنتیک یک مجموعه از نقاط به عنوان شروع در نظر گرفته می شود و عملیات بر روی تمامی این نقاط بصورت موازی انجام می شود. به این مجموعه که شامل نقاطی در فضای جواب مسأله است، یک نسل گفته می شود. یعنی هر نسل شامل تعداد معینی از اشخاص یا کروموزومها میباشد. در طول فرایند بهینهسازی در الگوریتم ژنتیک با بهره گرفتن از یک نسل و اعمال عملگرهای ژنتیکی، نسل بعدی تولید می شود و به همین دلیل معمولاً از الگوریتم ژنتیک به عنوان روش بهینهسازی مبتنی بر نسل یاد می شود. برای شروع فرایند بهینهسازی در الگوریتم ژنتیک به یک نسل اولیه نیاز است. این نسل اولیه معمولا به صورت تصادفی در بازه مورد نظر متغیرهای مسأله، با توزیع یکنواخت انتخاب می شود. چنانچه اطلاعاتی راجع به مسأله موجود باشد که به انتخاب اولیه جوابها کمک کند، بهتر است از این اطلاعات در تولید نسل اولیه استفاده کرد و به این ترتیب روند همگرایی الگوریتم ژنتیک را تسریع کرد. وقتی که نسل اولیه ایجاد شود برای تولید نسل بعدی نیاز است که عملکرد هر یک از اشخاص نسل کنونی ارزیابی شود. برای این کار از تابع شایستگی استفاده می شود. با بهره گرفتن از این تابع به هر نقطه یک مقدار شایستگی اختصاص داده می شود که عملکرد نقطه مورد نظر را نشان میدهد. روند بهینهسازی در الگوریتم ژنتیک بگونهای است که تابع شایستگی کلی در طول نسلها افزایش یابد. این کار با انتخاب اشخاص شایستهتر در هر نسل و اعمال عملگرهای ژنتیکی، برای تولید نسل بعد صورت میگیرد. اجزای اصلی الگوریتم ژنتیک در ادامه شرح داده می شود.
۴-۲-۱- کدگذاری
کدگذاری عبارت است از نگاشت نقاط از فضای پارامترها یا متغیرهای مسأله به فضای دیگری که قابل استفاده توسط الگوریتم ژنتیک باشد. معمولترین نوع کدگذاری استفاده از کدهای باینری میباشد. برای مثال فرض کنید که نقطه (۹ ۶ ۱۱) یک نقطه در فضای پارامترهای مسأله باشد. با بهره گرفتن از کدگذاری باینری میتوان این نقطه را به صورت یک شخص یا کروموزوم به شکل زیر نمایش داد:
(۴-۲)
که در آن هر یک از متغیرها بصورت یک ژن متشکل از چهار بیت کدگذاری شده است. انواع دیگر کدگذاری نیز وجود دارد که از آن جمله میتوان به کدگذاری خاکستری و کدگذاری با بهره گرفتن از اعداد طبیعی و اعداد حقیقی اشاره کرد. کدگذاری با بهره گرفتن از اعداد حقیقی در بسیاری از مسائل مورد استفاده قرار گرفته است و مزایایی نیز نسبت به کدگذاری باینری دارد[۳۳].
۴-۲-۲- تابع شایستگی
برای ارزیابی هر نقطه یا شخص در فرایند بهینهسازی با الگوریتم ژنتیک، از تابع شایستگی استفاده می شود. با بهره گرفتن از این تابع به هر نقطه یک مقدار شایستگی اختصاص داده می شود و در انتهای فرایند بهینهسازی نقطهای که بیشترین مقدار شایستگی را داشته باشد به عنوان نقطۀ بهینه معرفی می شود. در واقع روند بهینهسازی در الگوریتم ژنتیک مبتنی بر یک قاعده است: شایستهترینها باقی میمانند، یعنی در یک نسل اشخاصی که شایستگی بیشتری داشته باشند برای زنده ماندن و نیز برای مشارکت در تولید نسل بعد از بخت بیشتری برخوردارند. روند کار در الگوریتم ژنتیک بصورتی است که شایستگی کلی از یک نسل به نسل بعد، افزایش یابد. هنگامی که هدف مسأله پیدا کردن ماکزیمم باشد تابع شایستگی همان تابع هدف است و زمانی که هدف پیداکردن مینیمم باشد، باید تابع شایستگی بصورتی تعریف شود که وقتی تابع هدف مینیمم است تابع شایستگی ماکزیمم باشد مثلاً میتوان تابع شایستگی را عکس تابع هدف در نظر گرفت.
۴-۲-۳- انتخاب
پس از ارزیابی اشخاص موجود در نسل حاضر، باید نسل جدیدی با بهره گرفتن از نسل حاضر تولید شود. انتخاب، مکانیزمی است که تعیین می کند کدامیک از اشخاص موجود در نسل حاضر باید برای تولید نسل بعد برگزیده شوند و یا اینکه هر یک از این اشخاص چه مقدار در تولید نسل بعد مؤثر باشند. این انتخاب با توجه به میزان شایستگی اشخاص موجود در نسل حاضر صورت میگیرد و باید بگونهای باشد که اشخاص با شایستگی بیشتر نسبت به اشخاص با شایستگی کمتر شانس بیشتری برای مشارکت در، تولید نسل بعد داشته باشند[۳۴و ۳۵]. معمولاً انتخاب اشخاص برای تولید نسل بعد متناسب با مقدار شایستگی آنها صورت میگیرد. معمولترین نوع این انتخابها بگونهای است که احتمال انتخاب یک شخص برای مشارکت در تولید نسل بعد از رابطه زیر محاسبه می شود:
(۲-۴)
که در آن نشاندهنده شخص یا کروموزوم ام، تابع شایستگی و تعداد اشخاص موجود در نسل میباشد[۳۴].
۴-۲-۴- آمیزش
در فرایند تولید مثل، فرزندان خصوصیات ژنتیکی والدین خود را به ارث میبرند، بدین معنی که برخی خصوصیات بیولوژیکی فرزند شبیه خصوصیات بیولوژیکی پدر و برخی مانند خصوصیات بیولوژیکی مادر است. در الگوریتم ژنتیک، این فرایند توسط عملگر آمیزش شبیهسازی می شود. آمیزش عبارتست از تبادل اطلاعات ژنتیکی بین دو کروموزوم انتخاب شده (والدین) و تولید دو کروموزوم جدید (فرزندان). این عملگر ابزاری قدرتمند است که با بهره گرفتن از آن میتوان اشخاصی با خصوصیات ژنتیکی جدید ایجاد کرد و گستردگی اطلاعات ژنتیکی را حفظ کرد. ویژگی مهم این عملگر این است که والدین با میزان شایستگی بالا میتوانند فرزندانی با همان میزان شایستگی و یا حتی میزان شایستگی بالاتر تولید کنند. این امر موجب می شود شایستگی کلی از نسلی به نسل بعد افزایش یابد. آمیزش معمولاً به کروموزومهای انتخاب شده بصورت احتمالی اعمال می شود که میزان این احتمال، توسط نرخ آمیزش، تعیین می شود. برای اعمال عملگر آمیزش در الگوریتم ژنتیک، روش کار به این صورت است که کروموزومهای انتخاب شده بطور تصادفی شکسته میشوند و قسمت های مختلفشان با هم مبادله می شود. در سادهترین نوع آمیزش، دو کروموزوم از یک نقطه که بطور تصادفی انتخاب می شود (نقطۀ آمیزش)، به دو قسمت شکسته میشوند و قسمتهایشان را با هم مبادله می کنند. این نوع آمیزش که آمیزش تک نقطهای نامیده می شود، در شکل (۲-۱) نشان داده شده است:
شکل (۴-۱)- آمیزش تک نقطهای
چنانچه به جای یک نقطه، کروموزومها از دو نقطه شکسته شوند آمیزش دونقطهای حاصل می شود.
۴-۲-۵- جهش
با بهره گرفتن از عملگر آمیزش اطلاعات ژنتیکی اشخاص موجود در نسل حاضر مبادله می شود، اما چنانچه نسل حاضر شامل تمام اطلاعات ژنتیکی لازم برای حل مسأله نباشد، عملگر آمیزش به جواب نهایی مسأله منجر نخواهد شد. لذا عملگر دیگری که جهش نام دارد معرفی شده است. جهش عبارتست از تغییر ژنتیکی در یک شخص، که بطور تصادفی و با احتمالی برابر نرخ (احتمال) جهش اتفاق میافتد. در عالم واقع نیز جهش ژنتیکی به دلیل تأثیرات محیطی، مانند رادیواکتیو، در یک فرد اتفاق میافتد. در الگوریتم ژنتیک عملگر جهش معمولا با تغییر یک بیت، که بصورت تصادفی از یک کروموزوم انتخاب می شود، اعمال می شود (شکل (۴-۲)).
شکل (۴-۲)- جهش تک نقطهای
تاثیر مثبت عملگر جهش این است که گستردگی ژنتیکی حفظ می شود و مانع از گیر افتادن در نقاط بهینه محلی می شود.
۴-۲-۶ روند بهینهسازی با الگوریتم ژنتیک
تا اینجا به شرح مهمترین اجزاء الگوریتم ژنتیک پرداخته شد و حالا میتوان روند کلی بهینهسازی با الگوریتم ژنتیک را توضیح داد. الگوریتم ژنتیک یک الگوریتم تکراری است که میتوان آن را به صورت زیر فرمولبندی کرد:
۱- ایجاد نسل اولیه
۲- محاسبه مقادیر شایستگی برای هر یک از اشخاص نسل حاضر
۳- انتخاب اشخاص شایسته برای تولید نسل بعد
۴- اعمال عملگر آمیزش
۵- اعمال عملگر جهش
۶- تولید نسل جدید
۷- تکرار مراحل دو تا شش تا زمانی که شرط اتمام حلقه ارضاء شود.
شرط اتمام حلقه معمولاً حداکثر تعداد نسلها در نظر گرفته می شود، هر چند که میتوان میزان تغییرات همگرایی جواب را نیز به عنوان شرط اتمام حلقه در نظر گرفت. فلوچارت الگوریتم ژنتیک در شکل (۴-۳) مشاهده می شود. با توجه به مطالب گفته شده ملاحظه می شود که الگوریتم ژنتیک روشی کاملاً متفاوت با روشهای مرسوم بهینهسازی است. این روش نقاط قوت و ضعفی دارد که هنگام استفاده از آن باید مورد توجه قرار گیرند. خصوصیات الگوریتم ژنتیک را میتوان به صورت زیر خلاصه کرد[۳۳ و ۳۵ و ۳۶]:
شکل (۴-۳)- روند بهینهسازی با الگوریتم ژنتیک
– الگوریتم ژنتیک به اطلاعات مربوط به مشتق یا گرادیان نیازی ندارد و فقط از تابع هدف و تابع شایستگی برای تعیین مسیر جستجو استفاده می کند.
– الگوریتم ژنتیک بر روی تعدادی (نسلی) از نقاط به صورت موازی عمل می کند، نه بر روی یک نقطه منفرد.
– در الگوریتم ژنتیک عملیات روی کدها انجام می شود نه روی خود پارامترها.
فرم در حال بارگذاری ...
[شنبه 1401-04-18] [ 12:09:00 ق.ظ ]
|