شما در حال مطالعه نسخه آفلاین یکی از مطالب «مجله فرادرس» هستید. لطفاً توجه داشته باشید، ممکن است برخی از قابلیتهای تعاملی مطالب، مانند امکان پاسخ به پرسشهای چهار گزینهای و مشاهده جواب صحیح آنها، نمایش نتیجه آزمونها، پاسخ تشریحی سوالات، پخش فایلهای صوتی و تصویری و غیره، در این نسخه در دسترس نباشند. برای دسترسی به نسخه آنلاین مطلب، استفاده از کلیه امکانات آن و داشتن تجربه کاربری بهتر اینجا کلیک کنید.
در آموزشهای قبلی مجله فرادرس، با رباتها و مفاهیم مربوط به آنها آشنا شدیم. در این آموزش، از روش لاگرانژ برای استخراج معادلات حرکت ربات با کمک جعبه ابزار نمادین متلب استفاده میکنیم. مدلهای ریاضیاتی نیز برای تقریب آنچه که سیستم اصلی انجام میدهد ارائه شدهاند. همه مدلهای ریاضیاتی با فرضیاتی برای سادهسازی همراه هستند و معمولاً این فرضیات در نمایش دینامیک سیستم رواج دارند. در نتیجه، روشهای دستی و نوشتن روی کاغذ برای به دست آوردن مدلهای نمایش دهنده دینامیک سیستمهای پیچیده کافی نیستند. تصویر زیر دو جمله از ماتریس اینرسی یا لختی یک ربات انساننما را نشان میدهد.
خوشبختانه میتوان متلب، پایتون و سایر زبانهای برنامهنویسی را در محاسبات نمادین برای استخراج این معادلات به کار برد. در این آموزش، معادلات حرکت یک بازوی رباتیک دو لینکی (یا همان آونگ دوگانه) را با استفاده از متلب به دست میآوریم.
مدل بازوی رباتیک دو لینکی
مدل یک بازوی ساده در شکل زیر نشان داده شده است. این پیکربندی را میتوان به عنوان آونگ دوگانه نیز در نظر گرفت.
فرض میکنیم طول لینکهای بدون جرم l1 و l2 بوده و به انتهای هریک از آنها، به ترتیب، جرمهای m1 و m2 متصل شده باشد. زوایای θ1 و θ2 مربوط به این لینکها در شکل زیر نشان داده شده است. فرض میکنیم برای هر مفصل یک موتور وجود داشته باشد.
شکل ۲: بازوی رباتیک دو لینکی ساده یا آونگ دوگانه
زاویههای θ1 و θ2 برای توصیف مناسب سیستم انتخاب شدهاند. زیرا در این نوع نمایش، به تعداد حداقل متغیرهای مستقل برای توصیف کامل سیستم نیاز است. میتوان از موقعیتهای x و y جرمها نیز برای به دست آوردن معادلات حرکت استفاده کرد. البته در این روش، محدودیتهای بیشتری را باید روی سیستم اعمال کرد تا تضمین شود طول لینکها ثابت میماند. چنین محدودیتها و قیودی با اعمال «محدودیتهای پفافی» (Pfaffin constraints) اعمال میشوند.
البته، در این آموزش به این موضوع نمیپردازیم. در سیستمهای رباتیک پیچیده یا شبیهسازیهای بیومکانیکی، موقعیت بردارها را میتوان با استفاده از «نظریه پیچها» (Screw Theory) یا پارامترهای «دناویت-هارتنبرگ» (Denavit–Hartenberg Parameters) به دست آورد. با استفاده از دستگاه مختصات مناسب، میتوان معادلات حرکت را بسیار ساده کرد. البته این کار شاید همیشه ممکن نباشد. برای مثال، مدل راه رفتن انسان با کف پای قوسی را نمیتوان با چشمپوشی از قیود موقعیت و سرعت بین پا و زمین مدل کرد.
شکل ۳: یک ربات دوپای هفتلینکی با پای قوسی
در ادامه، معادلات حرکت را با استفاده از روش لاگرانژ به دست خواهیم آورد.
محاسبه موقعیت و سرعت
اولین گام محاسبه موقعیت همه اجرام سیستم است. در اینجا، موقعیت جرمها را نسبت به مرکزی که به پایه بازو الصاق شده و برحسب زوایای θ1 و θ2 محاسبه میکنیم:
سپس سرعت را با استفاده از معادلات بالا به دست میآوریم:
v=dtdP=∂θ1∂Pθ˙1+∂θ2∂Pθ˙2
محاسبه انرژی جنبشی و انرژی پتانسیل سیستم
در این بخش، انرژی جنبشی و پتانسیل سیستم را محاسبه میکنیم. انرژی جنبشی به صورت زیر است:
KE=21m1v1Tv1+21m2v2Tv2
انرژی پتانسیل نیز به صورت زیر تعریف میشود:
PE=m1gP1,y+m2gP2,y
استخراج معادلات حرکت ربات
برای به دست آوردن معادلات حرکت، ابتدا لاگرانژین L را تشکیل میدهیم:
L=KE−PE
سپس، معادلات حرکت با کمک رابطه زیر به دست میآیند:
dtd(∂q˙∂L)−∂q∂L=τ
که در آن، q=[θ1,θ2]T بردار موقعیت و سرعت زاویهای است و τ بردار گشتاورهای اعمالی توسط موتورها در دو مفصل است. پس از مرتبسازی جملات، معادلات حرکت را میتوان به صورت زیر نوشت:
D(q)q¨+C(q,q˙)q˙+G(q)=τ
یا
q¨=D(q)−1(τ−C(q,q˙)q˙−G(q))
میتوانیم معادله بالا را به صورت زیر بازنویسی کنیم:
q¨=α(q,q˙)+β(q)τ
که در آن، α(q,q˙)=D(q)−1(−C(q,q˙)q˙−G(q)) و β(q)=D(q)−1.
این فرم معادله در کنترل بسیاری از سیستمهای غیرخطی معمول است. دستههای خاص سیستمهای بالا که در آنها ورودی یک جمله خطی اضافه دارد، «فرم کنترل-افاین» (Control-Affine Form) نامیده میشوند.
خطیسازی معادلات حرکت ربات
هرچند همه سیستمهای موجود در طبیعت غیرخطی هستند، اما میتوان سیستم را با یک سیستم خطی از معادلات تحت فرضیات مشخصی خطی کرد. یکی از فرضیات اصلی این است که اندازه موقعیت و سرعت سیستم کم است.
این مورد، در مثالهایی که پایدارسازی سیستم در برابر آشفتگیهای خارجی مورد نظر است، رواج دارد. برای مثال، اگر بخواهیم ربات با دو مفصل را در موقعیت مشخص q0 نگه داریم، آنگاه باید فرض کنیم که نتیجه آشفتگیهای خارجی کوچک است. بنابراین، میتوانیم از سری تیلور به صورت ماتریسی حول نقطه پایدار q0 استفاده کنیم. سیستم در q0، q˙=0 و q¨=0 در تعادل است. بنابراین، خواهیم داشت:
0=α(q0,0)+β(q0)τ0,
یا
τ0=−β(q0)−1α(q0,0).
از بسط تیلور برای یک تابع دومتغیره استفاده میکنیم:
محاسبات مربوط به معادلات حرکت ربات را نمیتوانیم به صورت دستی انجام دهیم. به همین دلیل، از جعبهابزار نمادین متلب برای انجام محاسبات بالا استفاده میکنیم. برنامه زیر، معادلات حرکت ربات را ارائه میکند.
سید سراج حمیدی دانشآموخته مهندسی برق است و به ریاضیات و زبان و ادبیات فارسی علاقه دارد. او آموزشهای مهندسی برق، ریاضیات و ادبیات مجله فرادرس را مینویسد.
با عرض سلام و خسته نباشید خدمت استاد گرامی شرمنده که مزاحمتون شدم ،آقای مهندس این راه حلی که طی کردین در واقع خطی سازی فیدبک هستش یا نه؟
سید سراج حمیدی
سلام.
همانگونه که در متن آموزش نیز اشاره شده، از سری تیلور برای خطیسازی استفاده شده است. برای آشنایی با خطیسازی، میتوانید به آموزش «خطی سازی سیستم های غیرخطی — از صفر تا صد (+ دانلود فیلم آموزش گام به گام)» مراجعه کنید. روش خطیسازی فیدبکی یکی از روشهای کنترل سیستمها غیرخطی است که در مطالب آینده مجله فرادس، آموزشی را درباره آن منتشر خواهیم کرد.
از همراهیتان با مجله فرادرس، بسیار خوشحالیم.
حسین
با سلام .ممنون از آموزش خوبتون.دو سوال داشتم.اول اینکه متغیر های سیستم (مختصه تعمیم یافته /درجات آزادی ) این سیستم در کدها 2 بود در صورتی که باید 4 باشه. همچنین امکان ترسیم انیمیشن نداشت.ایا انیمیشن ترسیم شده مربوط به این کد نیست؟ممنون میشم اگه پیوست کنید.
سید سراج حمیدی
سلام.
خروجی کد مورد نظر معادلات خطی شده ربات و در واقع ماتریسهای A و B معادلات حالت آن است. انیمیشن داخل متن ارتباطی به این کد ندارد.
از اینکه با مجله فرادرس همراه هستید، خوشحالیم.
شما در حال مطالعه نسخه آفلاین یکی از مطالب «مجله فرادرس» هستید. لطفاً توجه داشته باشید، ممکن است برخی از قابلیتهای تعاملی مطالب، مانند امکان پاسخ به پرسشهای چهار گزینهای و مشاهده جواب صحیح آنها، نمایش نتیجه آزمونها، پاسخ تشریحی سوالات، پخش فایلهای صوتی و تصویری و غیره، در این نسخه در دسترس نباشند. برای دسترسی به نسخه آنلاین مطلب، استفاده از کلیه امکانات آن و داشتن تجربه کاربری بهتر اینجا کلیک کنید.
با عرض سلام و خسته نباشید خدمت استاد گرامی شرمنده که مزاحمتون شدم ،آقای مهندس این راه حلی که طی کردین در واقع خطی سازی فیدبک هستش یا نه؟
سلام.
همانگونه که در متن آموزش نیز اشاره شده، از سری تیلور برای خطیسازی استفاده شده است. برای آشنایی با خطیسازی، میتوانید به آموزش «خطی سازی سیستم های غیرخطی — از صفر تا صد (+ دانلود فیلم آموزش گام به گام)» مراجعه کنید. روش خطیسازی فیدبکی یکی از روشهای کنترل سیستمها غیرخطی است که در مطالب آینده مجله فرادس، آموزشی را درباره آن منتشر خواهیم کرد.
از همراهیتان با مجله فرادرس، بسیار خوشحالیم.
با سلام .ممنون از آموزش خوبتون.دو سوال داشتم.اول اینکه متغیر های سیستم (مختصه تعمیم یافته /درجات آزادی ) این سیستم در کدها 2 بود در صورتی که باید 4 باشه. همچنین امکان ترسیم انیمیشن نداشت.ایا انیمیشن ترسیم شده مربوط به این کد نیست؟ممنون میشم اگه پیوست کنید.
سلام.
خروجی کد مورد نظر معادلات خطی شده ربات و در واقع ماتریسهای A و B معادلات حالت آن است. انیمیشن داخل متن ارتباطی به این کد ندارد.
از اینکه با مجله فرادرس همراه هستید، خوشحالیم.