انتخاب ورودی­ ها باید به گونه ­ای باشد که مدهای مختلف حرکتی را فعال نماید. در این راستا مسیرهائی با سرعت و شتاب متغیر به شکل زیر انتخاب شده ­اند:
(۳-۷)
مسیرهای انتخابی همان مسیرهای پایدار طراحی شده ­اند که به دلیل پیچیدگی رابطه با دقت بالائی به وسیله­ توابع چندجمله­ای فیت زده شده ­اند. برای سایر مفاصل نیز توابعی چندجمله­ای به صورت مشابه انتخاب می­شوند. این مقادیر به صورت ورودی به توابع ماتریس­های جرمی، گرانش و ماتریس اجزای غیرخطی و کوریولیس داده می­شوند و بر اساس معادله­ حرکت مقداری عددی برای گشتاورها به دست می ­آید. همین ورودی­ ها به مدل ساخته شده در محیط Simulink نیز اعمال می­شوند. بلاک عملگر[۸] در جعبه ابزار SimMechanics این امکان را به ما می­دهد که از میان دو گزینه­ی اعمال نیرو و اعمال مسیر مطلوب یکی را به دلخواه انتخاب کنیم. در اینجا اعمال مسیر مطلوب مورد نظر است. در فصل شبیه­سازی توضیحات بیشتری در مورد نحوه­ مدل­سازی به کمک جعبه ابزار SimMechanics خواهد آمد.
(( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت nefo.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. ))

۳-۴-۲- نتایج صحه­گذاری
به منظور ثبت میزان گشتاورهای لازم جهت طی نمودن مسیر مورد نظر، سنسور[۹]هائی به هر مفصل متصل نموده­ایم. مقادیر خروجی از توابع حامل معادله­ حرکت با مقادیر خروجی سنسورها مقایسه می­ شود. نمودار (۳-۳-الف) میزان خطای موجود را نشان می­دهد. این میزان خطا در واقع و با توجه به پیچیدگی­ ترم­های مدل دینامیکی که به شدت غیرخطی است، صفر است. بنابراین می­توان گفت صحت مدل با دقت بالائی مورد تاًیید است. به عنوان نمونه میزان گشتاور مفصل مچ پای راست در شکل (۳-۳-ب)، شتاب در شکل (۳-۳-ج) و سرعت در شکل (۳-۳-د) آمده است. همچنین میزان گشتاور موجود در مفاصل ربات HRP جهت مقایسه در شکل (۳-۴) آمده است.

شکل (۳-۳-الف). خطای موجود در خروجی صحه گذاری شکل (۳-۳-ب). گشتاور عکس­العملی روی مچ پای راست

شکل (۳-۳- ج). شتاب زاویه­ای مفصل مچ پای راست شکل (۳-۳-د). سرعت زاویه­ای مفصل مچ پای راست
در صفحه بعد تصویری از محیط Simulink که در آن صحه­گذاری دینامیک انجام شده آمده است. مدل ربات در بالا و توابع حامل ماتریس­های جرمی گرانش و سرعت­ها در پائین آمده است.
فصل چهارم
طراحی شیوه ی حرکت پایدار ربات
۴-۱- مقدمه
در این پروژه، بهینه­سازی­ حرکت ربات با بهره گرفتن از الگوریتم ژنتیک انجام می­ شود. توضیحات مربوط به چگونگی و نحوه­ ورود الگوریتم ژنتیک به بحث، در بخش مربوط به طراحی مسیر آورده می­ شود. ابتدا به طور مختصر به روند کاربرد و اجزاء و مفاهیم پایه­ این الگوریتم می­پردازیم.
۴-۲- الگوریتم ژنتیک
الگوریتم ژنتیک، روشی برای جستجو و بهینه­سازی است که مبتنی بر احتمالات می­باشد. روش کار در الگوریتم ژنتیک از فرایند تکامل بیولوژیکی و انتخاب طبیعی در طبیعت الهام گرفته شده است. مفاهیم اولیه الگوریتم ژنتیک اولین بار توسط هلند[۱۰] [۳۲] معرفی شده و پس از آن مقالات بسیاری در این زمینه ارائه شد. با پیشرفت کامپیوترها و افزایش سرعت آنها، امروزه استفاده از الگوریتم ژنتیک در مسائل مهندسی رواج یافته و مسائل پیچیده­ای توسط الگوریتم ژنتیک حل شده است. روش­های بهینه­سازی معمولاً به دو دسته کلی تقسیم می­شوند: روش­های مبتنی بر گرادیان و روش­های مستقل از گرادیان. در روش­های بهینه­سازی مبتنی بر گرادیان، برای بدست آوردن نقطه بهینه از مشتق یا گرادیان تابع نسبت به متغیرها استفاده می­ شود، لذا نیاز است که مشتق تابع هدف محاسبه شود. روش­های نیوتن، شیب نزولی و حداقل مربعات از این دست می­باشند. اما در روش­های مستقل از گرادیان به اطلاعات مربوط به مشتق یا گرادیان تابع هدف نیازی نیست و این روش­ها معمولاً با بهره گرفتن از ارزیابی مکرر تابع هدف، نقاط بهینه را می­یابند. الگوریتم ژنتیک و جستجوی تصادفی در زمره این روش­ها هستند.
در الگوریتم ژنتیک هر نقطه، که شامل متغیرهای مسأله در بازه مورد نظر است و می ­تواند یک جواب برای مسأله باشد، به صورت یک کد (معمولاً به صورت باینری) درمی­آید. به این عمل کدگذاری گفته می­ شود و هر یک از نقاط کدگذاری شده یک کروموزوم یا یک شخص نامیده می­ شود. هر کروموزوم شامل تمامی متغیرها یا پارامترهای مسأله بصورت کدگذاری ­شده می­باشد. هر یک از این متغیرهای کدگذاری­شده ژن نامیده می­ شود. در واقع در فرایند بهینه­سازی در الگوریتم ژنتیک، نقاط از فضای متغیرهای مسأله به فضای ژن­ها و کروموزوم­ها نگاشته می­شوند و عملیات روی این کروموزوم­ها انجام می­ شود. در پایان فرایند بهینه­سازی نقطۀ بهینۀ به دست آمده کدبرداری شده به فضای متغیرهای مسأله برگردانده می­ شود. برخلاف اکثر روش­های بهینه­سازی که کار را با یک نقطه آغاز می­ کنند در الگوریتم ژنتیک یک مجموعه از نقاط به عنوان شروع در نظر گرفته می­ شود و عملیات بر روی تمامی این نقاط بصورت موازی انجام می­ شود. به این مجموعه که شامل نقاطی در فضای جواب مسأله است، یک نسل گفته می­ شود. یعنی هر نسل شامل تعداد معینی از اشخاص یا کروموزوم­ها می­باشد. در طول فرایند بهینه­سازی در الگوریتم ژنتیک با بهره گرفتن از یک نسل و اعمال عملگرهای ژنتیکی، نسل بعدی تولید می­ شود و به همین دلیل معمولاً از الگوریتم ژنتیک به عنوان روش بهینه­سازی مبتنی بر نسل یاد می­ شود. برای شروع فرایند بهینه­سازی در الگوریتم ژنتیک به یک نسل اولیه نیاز است. این نسل اولیه معمولا به صورت تصادفی در بازه مورد نظر متغیرهای مسأله، با توزیع یکنواخت انتخاب می­ شود. چنانچه اطلاعاتی راجع به مسأله موجود باشد که به انتخاب اولیه جواب­ها کمک کند، بهتر است از این اطلاعات در تولید نسل اولیه استفاده کرد و به این ترتیب روند همگرایی الگوریتم ژنتیک را تسریع کرد. وقتی که نسل اولیه ایجاد شود برای تولید نسل بعدی نیاز است که عملکرد هر یک از اشخاص نسل کنونی ارزیابی شود. برای این کار از تابع شایستگی استفاده می­ شود. با بهره گرفتن از این تابع به هر نقطه یک مقدار شایستگی اختصاص داده می­ شود که عملکرد نقطه مورد نظر را نشان می­دهد. روند بهینه­سازی در الگوریتم ژنتیک بگونه­ای است که تابع شایستگی کلی در طول نسل­ها افزایش یابد. این کار با انتخاب اشخاص شایسته­تر در هر نسل و اعمال عملگرهای ژنتیکی، برای تولید نسل بعد صورت می­گیرد. اجزای اصلی الگوریتم ژنتیک در ادامه شرح داده می شود.
۴-۲-۱- کدگذاری
کدگذاری عبارت است از نگاشت نقاط از فضای پارامترها یا متغیرهای مسأله به فضای دیگری که قابل استفاده توسط الگوریتم ژنتیک باشد. معمول­ترین نوع کدگذاری استفاده از کدهای باینری می­باشد. برای مثال فرض کنید که نقطه (۹ ۶ ۱۱) یک نقطه در فضای پارامترهای مسأله باشد. با بهره گرفتن از کدگذاری باینری می­توان این نقطه را به صورت یک شخص یا کروموزوم به شکل زیر نمایش داد:
(۴-۲)
که در آن هر یک از متغیرها بصورت یک ژن متشکل از چهار بیت کدگذاری شده است. انواع دیگر کدگذاری نیز وجود دارد که از آن جمله می­توان به کدگذاری خاکستری و کدگذاری با بهره گرفتن از اعداد طبیعی و اعداد حقیقی اشاره کرد. کدگذاری با بهره گرفتن از اعداد حقیقی در بسیاری از مسائل مورد استفاده قرار گرفته است و مزایایی نیز نسبت به کدگذاری باینری دارد[۳۳].
۴-۲-۲- تابع شایستگی
برای ارزیابی هر نقطه یا شخص در فرایند بهینه­سازی با الگوریتم ژنتیک، از تابع شایستگی استفاده می­ شود. با بهره گرفتن از این تابع به هر نقطه یک مقدار شایستگی اختصاص داده می­ شود و در انتهای فرایند بهینه­سازی نقطه­ای که بیشترین مقدار شایستگی را داشته باشد به عنوان نقطۀ بهینه معرفی می­ شود. در واقع روند بهینه­سازی در الگوریتم ژنتیک مبتنی بر یک قاعده است: شایسته­ترین­ها باقی می­مانند، یعنی در یک نسل اشخاصی که شایستگی بیشتری داشته باشند برای زنده ماندن و نیز برای مشارکت در تولید نسل بعد از بخت بیشتری برخوردارند. روند کار در الگوریتم ژنتیک بصورتی است که شایستگی کلی از یک نسل به نسل بعد، افزایش یابد. هنگامی که هدف مسأله پیدا کردن ماکزیمم باشد تابع شایستگی همان تابع هدف است و زمانی که هدف پیدا­کردن مینیمم باشد، باید تابع شایستگی بصورتی تعریف شود که وقتی تابع هدف مینیمم است تابع شایستگی ماکزیمم باشد مثلاً می­توان تابع شایستگی را عکس تابع هدف در نظر گرفت.
۴-۲-۳- انتخاب
پس از ارزیابی اشخاص موجود در نسل حاضر، باید نسل جدیدی با بهره گرفتن از نسل حاضر تولید شود. انتخاب، مکانیزمی است که تعیین می­ کند کدامیک از اشخاص موجود در نسل حاضر باید برای تولید نسل بعد برگزیده شوند و یا اینکه هر یک از این اشخاص چه مقدار در تولید نسل بعد مؤثر باشند. این انتخاب با توجه به میزان شایستگی اشخاص موجود در نسل حاضر صورت می­گیرد و باید بگونه­ای باشد که اشخاص با شایستگی بیشتر نسبت به اشخاص با شایستگی کمتر شانس بیشتری برای مشارکت در، تولید نسل بعد داشته باشند[۳۴و ۳۵]. معمولاً انتخاب اشخاص برای تولید نسل بعد متناسب با مقدار شایستگی آنها صورت می­گیرد. معمول­ترین نوع این انتخاب­ها بگونه­ای است که احتمال انتخاب یک شخص برای مشارکت در تولید نسل بعد از رابطه زیر محاسبه می­ شود:
(۲-۴)
که در آن نشان­دهنده شخص یا کروموزوم ام، تابع شایستگی و تعداد اشخاص موجود در نسل می­باشد[۳۴].
۴-۲-۴- آمیزش
در فرایند تولید مثل، فرزندان خصوصیات ژنتیکی والدین خود را به ارث می­برند، بدین معنی که برخی خصوصیات بیولوژیکی فرزند شبیه خصوصیات بیولوژیکی پدر و برخی مانند خصوصیات بیولوژیکی مادر است. در الگوریتم ژنتیک، این فرایند توسط عملگر آمیزش شبیه­سازی می­ شود. آمیزش عبارتست از تبادل اطلاعات ژنتیکی بین دو کروموزوم انتخاب شده (والدین) و تولید دو کروموزوم جدید (فرزندان). این عملگر ابزاری قدرتمند است که با بهره گرفتن از آن می­توان اشخاصی با خصوصیات ژنتیکی جدید ایجاد کرد و گستردگی اطلاعات ژنتیکی را حفظ کرد. ویژگی مهم این عملگر این است که والدین با میزان شایستگی بالا می­توانند فرزندانی با همان میزان شایستگی و یا حتی میزان شایستگی بالاتر تولید کنند. این امر موجب می­ شود شایستگی کلی از نسلی به نسل بعد افزایش یابد. آمیزش معمولاً به کروموزوم­های انتخاب شده بصورت احتمالی اعمال می­ شود که میزان این احتمال، توسط نرخ آمیزش، تعیین می­ شود. برای اعمال عملگر آمیزش در الگوریتم ژنتیک، روش کار به این صورت است که کروموزوم­های انتخاب شده بطور تصادفی شکسته می­شوند و قسمت­ های مختلفشان با هم مبادله می­ شود. در ساده­ترین نوع آمیزش، دو کروموزوم از یک نقطه که بطور تصادفی انتخاب می­ شود (نقطۀ آمیزش)، به دو قسمت شکسته می­شوند و قسمت­هایشان را با هم مبادله می­ کنند. این نوع آمیزش که آمیزش تک نقطه­ای نامیده می­ شود، در شکل (۲-۱) نشان داده شده است:

شکل (۴-۱)- آمیزش تک نقطه­ای
چنانچه به جای یک نقطه، کروموزوم­ها از دو نقطه شکسته شوند آمیزش دونقطه­ای حاصل می­ شود.
۴-۲-۵- جهش
با بهره گرفتن از عملگر آمیزش اطلاعات ژنتیکی اشخاص موجود در نسل حاضر مبادله می­ شود، اما چنانچه نسل حاضر شامل تمام اطلاعات ژنتیکی لازم برای حل مسأله نباشد، عملگر آمیزش به جواب نهایی مسأله منجر نخواهد شد. لذا عملگر دیگری که جهش نام دارد معرفی شده است. جهش عبارتست از تغییر ژنتیکی در یک شخص، که بطور تصادفی و با احتمالی برابر نرخ (احتمال) جهش اتفاق می­افتد. در عالم واقع نیز جهش ژنتیکی به دلیل تأثیرات محیطی، مانند رادیواکتیو، در یک فرد اتفاق می­افتد. در الگوریتم ژنتیک عملگر جهش معمولا با تغییر یک بیت، که بصورت تصادفی از یک کروموزوم انتخاب می­ شود، اعمال می­ شود (شکل (۴-۲)).

شکل (۴-۲)- جهش تک نقطه­ای
تاثیر مثبت عملگر جهش این است که گستردگی ژنتیکی حفظ می­ شود و مانع از گیر افتادن در نقاط بهینه محلی می­ شود.
۴-۲-۶ روند بهینه­سازی با الگوریتم ژنتیک
تا اینجا به شرح مهمترین اجزاء الگوریتم ژنتیک پرداخته شد و حالا می­توان روند کلی بهینه­سازی با الگوریتم ژنتیک را توضیح داد. الگوریتم ژنتیک یک الگوریتم تکراری است که می­توان آن را به صورت زیر فرمول­بندی کرد:
۱- ایجاد نسل اولیه
۲- محاسبه مقادیر شایستگی برای هر یک از اشخاص نسل حاضر
۳- انتخاب اشخاص شایسته برای تولید نسل بعد
۴- اعمال عملگر آمیزش
۵- اعمال عملگر جهش
۶- تولید نسل جدید
۷- تکرار مراحل دو تا شش تا زمانی که شرط اتمام حلقه ارضاء شود.
شرط اتمام حلقه معمولاً حداکثر تعداد نسل­ها در نظر گرفته می­ شود، هر چند که می­توان میزان تغییرات همگرایی جواب را نیز به عنوان شرط اتمام حلقه در نظر گرفت. فلوچارت الگوریتم ژنتیک در شکل (۴-۳) مشاهده می شود. با توجه به مطالب گفته شده ملاحظه می­ شود که الگوریتم ژنتیک روشی کاملاً متفاوت با روش­های مرسوم بهینه­سازی است. این روش نقاط قوت و ضعفی دارد که هنگام استفاده از آن باید مورد توجه قرار گیرند. خصوصیات الگوریتم ژنتیک را می­توان به صورت زیر خلاصه کرد[۳۳ و ۳۵ و ۳۶]:

شکل (۴-۳)­- روند بهینه­سازی با الگوریتم ژنتیک
– الگوریتم ژنتیک به اطلاعات مربوط به مشتق یا گرادیان نیازی ندارد و فقط از تابع هدف و تابع شایستگی برای تعیین مسیر جستجو استفاده می­ کند.
– الگوریتم ژنتیک بر روی تعدادی (نسلی) از نقاط به صورت موازی عمل می­ کند، نه بر روی یک نقطه منفرد.
– در الگوریتم ژنتیک عملیات روی کدها انجام می­ شود نه روی خود پارامترها.

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...