کنترل بازوی آرنجی

ROBOTICS

کاربر فعال مهندسی رباتیک
یه چیزی که همش برام مبهمه اینه که فرض کنیم فضای حالت یک سیستم رو داریم. حالا میخواد ربات باشه یا هر چیزی دیگه.
چطوری اینو باید با کنترلر تطبیقش بدیم؟ من تا حالا کنترلری که طراحی میکردم واسه یه تابع تبدیل بود. خیلی معمولی و بصورت زیر :
http://www.uplooder.net/img/image/82/d7bf78cb4c552caff1fd7e4a0748bfe0/tf1.jpg
حالا اگه فضای حالت سیستم رو داشته باشیم چی؟(البته غیر خطی!)

۱- اول شما درس کنترل مدرن را بخوان. این درس مربوط به سیستم های خطی با فضای حالت است. چون اگر خطی را ندانی ، غیر خطی را نخواهی فهمید

کتاب «کنترل مدرن» نوشته ی دورف را بخوان. این کتاب مخصوص سیستم های خطی است. هم تابع تبدیل را توضیح داده هم فضای حالت

اگر سیستم خطی باشد شکلش به همان صورتی که گذاشتید می شود. یعنی مهم نیست تابع تبدیل باشد یا فضای حالت

در سیستم های خطی شما باید با چهار مورد زیر آشنا باشی

الف) جایابی قطب ها
ب) LQR
ج) رویت گر ها
د) LQG

۲- یعد از آن نوبت سیستم های غیر خطی می شود که در درس کنترل غیر خطی ۱ تا ۳ تدریس می شود. که سخت ترین درس کنترل است

در این مورد کتاب «کنترل غیرخطی کاربردی» نوشته ژان ژاک اسلوتین و وایپینگ لی را بخوان
جزوه ی کنترل غیرخطی (تایپ شده) دانشگاه خواجه نصیر هم خوب است

شما باید در موارد زیر بدانید

الف) پایداری لیاپانوف
ب) مد لغزشی (اسلایدینگ مد)
ج) مد لغزشی بدون چترینگ
د) مد لغزشی بدون چترینگ تطبیقی (مد لغزشی بدون چترینگ وفقی)

۳- معادلات حالتی که نوشتی، مروبط به بازوی آرنجی با موتور ایده آل (تخیلی) بود. یعنی بدون موتور الکتریکی!
مکانیکی ها برای این که با موتور های الکتریکی آشنایی کافی را ندارند از گشتاوری که نوشتی استفاده می کنند. مقاله و پایان نامه هم می دهند
اگر خواسنی می توانی ترم گشتاور را با معادلات موتور جایگزین کنی و ورودی سیستم شما ولتاژ بشود. مانند بازوی واقعی که ورودی اش ولتاژ الکتریکی است
این کار باعث می شود معادلات شما غیر خطی تر ، مرتبه بالاتر و بسیار سخت تر شود. و واقعا کنترلش سخت شود

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


نتیجه ۳ و ۴
بنابراین شما تا حالا از ساده ترین نوع معادلات استفاده کردید. که کار شما در مقابل آن ها هیچ به حساب می آید
 

Coronaa

کاربر فعال
اول اینکه ممنونم از اینکه حوصله میکنی و به دقت و با حوصله جواب میدی.

جزوه ی کنترل غیرخطی (تایپ شده) دانشگاه خواجه نصیر هم خوب است
توی سایت خاصی وجود داره؟ هرچی گشتم پیدا نکردم!

کتاب «کنترل مدرن» نوشته ی دورف را بخوان. این کتاب مخصوص سیستم های خطی است. هم تابع تبدیل را توضیح داده هم فضای حالت
فقط اومده فضای حالت رو توضیح داده و چند نمونه رو مثال زده یا مثالی هم داره که چطوری فضای حالت توی یک سیستم کنترلی قرار میگره؟ آخه مشکل من توی خود matlab هست که نمیدونم یک کنترلر مثل PID چطوری میاد پارامترهای فضای حالت رو میگیره و پاسخ نهایی رو توی خروجی میده!
توی مبحث تابع تبدیل اینطوری بود که تابع تبدیل کنترلر مثلا PID که می شد (Kp+Kds+Ki/s) ، با تابع تبدیل سیستم ضرب می شد و خروجی میتونستیم پاسخش رو مشاهده کنیم. حالا منظور من اینه که کنترلر ما که از نوع تابع تبدیل هست و سیستم ما که از نوع فضای حالت نمایش داده شده چطوری با هم ضرب میشن؟ یعنی وقتی فضای حالت سیستم رو بدست آوردیم باید اون رو به تابع تبدیل، تبدیل کنیم و سپس با کنترلر ضرب کنیم؟
 

ROBOTICS

کاربر فعال مهندسی رباتیک
توی سایت خاصی وجود داره؟ هرچی گشتم پیدا نکردم!

من کی گقتم توی سایتی وجود دارد

باید پاشی بری خواجه نصیر و بگی برایت یک نسخه کپی بگیرند


آخه مشکل من توی خود matlab هست که نمیدونم یک کنترلر مثل PID چطوری میاد پارامترهای فضای حالت رو میگیره و پاسخ نهایی رو توی خروجی میده!
توی مبحث تابع تبدیل اینطوری بود که تابع تبدیل کنترلر مثلا PID که می شد (Kp+Kds+Ki/s) ، با تابع تبدیل سیستم ضرب می شد و خروجی میتونستیم پاسخش رو مشاهده کنیم. حالا منظور من اینه که کنترلر ما که از نوع تابع تبدیل هست و سیستم ما که از نوع فضای حالت نمایش داده شده چطوری با هم ضرب میشن؟ یعنی وقتی فضای حالت سیستم رو بدست آوردیم باید اون رو به تابع تبدیل، تبدیل کنیم و سپس با کنترلر ضرب کنیم؟

۱- شما اول برو ببین PID چی هست بعد بگو

وقتی خود PID به طور کلی (ابتدا)در حوزه زمان تعریف شده است و بعدا به صورت حوزه فرکانس (تابع تبدیل) نوشته شده ، و فضای حالت هم در حوزه زمان است. می توانی کلش را در حوزه زمان بنویسی

الف) PID یک سیستم تک ورودی تک خروجی به صورت زیر است

کد:
u = (Kd D + Kp + Ki / D ) e

که D اپراتور مشتق نسبت به زمان است

وقتی تبدیل لاپلاس یگیری D تبدیل به S می شود.

ب) PID یک سیستم دو ورودی دو خروجی (مثل بازوی آرنجی) به صورت زیر است

کد:
u1 = (Kd11 D + Kp11 + Ki11 / D ) e1 + (Kd12 D + Kp12 + Ki12 / D ) e2
u2 = (Kd21 D + Kp21 + Ki21 / D ) e1 + (Kd22 D + Kp22 + Ki22 / D ) e2

که D اپراتور مشتق نسبت به زمان است.

وقتی تبدیل لاپلاس یگیری D تبدیل به S می شود.

ج) PID یک سیستم m ورودی n خروجی به صورت زیر است

کد:
U = (KD D + KP + KI / D ) E

که D اپراتور مشتق نسبت به زمان است.

وقتی تبدیل لاپلاس یگیری D تبدیل به S می شود.

U بردار m سطری است. E بردار n سطری است

KD و KP و KI ماتریس های m سطری و n ستونی هستند

۲- شما اول باید درس محاسبات عددی پاس کنی و ببینی که چگونه مشتق و انتگرال (مخصوصا روش رانج کوتا) به صورت عددی حل می شود و بعد کد آن را در هر زبانی بنویسی

اگر درس را پاس کردی و باز هم مشکل داری :

سوال خود را در تالار کامپیوتر در زیر تالار برنامه نویسی مطرح کن. و بپرس چگونه مشتق و انتگرال را به صورت عددی کد بزنی

۳- چرا PID؟
PID یک کنترل نامناسب برای بازوی آرنجی ( و سایر سیستم های غیر خطی) است
 
آخرین ویرایش:

Coronaa

کاربر فعال
من کی گقتم توی سایتی وجود دارد

باید پاشی بری خواجه نصیر و بگی برایت یک نسخه کپی بگیرند
اگه منظورت به همین جزوه هست که دارم. وگرنه من شمال زندگی میکنم و برام مقدور نیست.
بهر حال دستتون درد نکنه آقای دکتر.
شما اول برو ببین PID چی هست بعد بگو
من فعلن دارم با سیمولینک کار میکنم. و خود PID رو جدا طراحی کردم و از بلوک آماده اون استفاده نکردم. عکسی که پایین میذارم. قسمت PID هست که ضرایبش میتونه با هر الگوریتمی تنظیم بشه :
http://www.uplooder.net/img/image/39/54922c19210a16e0753ad2994e1a9dad/pid1.jpg
کد نویسی بهتره یا با سیمولینک؟
من دارم با fractional PID کار میکنم و فعلن برای اینکه ساختار شبیه سازیم رو کامل کنم دارم با PID کار میکنم تا یاد بگیرم و بعدن بجای اون از fractional استفاده کنم. fractional PID هم نامناسبه؟
 

ROBOTICS

کاربر فعال مهندسی رباتیک
من فعلن دارم با سیمولینک کار میکنم. و خود PID رو جدا طراحی کردم و از بلوک آماده اون استفاده نکردم. عکسی که پایین میذارم. قسمت PID هست که ضرایبش میتونه با هر الگوریتمی تنظیم بشه :
http://www.uplooder.net/img/image/39/54922c19210a16e0753ad2994e1a9dad/pid1.jpg
شما از بلوک آماده pid و یا بلوک تابع تبدیل استفاده نکن
حودت با استفاده از بلوک های مشتق گیر و انتگرال گیر و بهره (گین) و جمع کننده ، pid را بساز


کد نویسی بهتره یا با سیمولینک؟

کد نویسی بهتر است چون سرعت اجراش بهتر است و دستت در نحوه اجرای هر زیربرنامه (معادل بلوک) بازتر است

اما من خودم از سیمولینک استفاده می کنم چون راحت تر است و باگ گیری آن آسان تر است

در کار شما تاثیر خاصی ندارد. با هر کدام راحت تری با همان کار کن

اما وقتی خواستی ربات را بسازی (کار عملی) باید با زبان سی (خالص) کد بزنی و متلب را بندازی سطل آشغال

fractional PID هم نامناسبه؟

این هم نامناسب است

سیستم ، که خطی نیست بخواهید از این روش ها استفاده کنید.

شما اول PID بزن به نتبجه ای که گفتم می رسی
بعد fractional PID برن باز هم به نتبجه ای که گفتم می رسی. شاید حتی بدتر از PID عمل کند (مطمئن نیستم این قسمت را)

لازم نیست من بگویم ، خودتان در شبیه سازی ها به این نتایج خواهید رسید

حداقل روشی که لازم است بروید مد لغزشی معمولی (یعنی با چترینگ) است.
بازوهای مکانیکی (شامل آرنجی) چون کاربرد عملی دارند ، مشتری از شما توقع دارد که فراجهش (اورشوت) یا چترینگ (ارتعاش) نداشته باشد
بنابراین از نظر عملی (نه تئوری و مقالات) حداقل کنترل می شود مد لغرشی بدون چترینگ

اگر قرار بود سیستم ها کارشان با یک PID حل شود که دیگر باید گرایش کنترل از رشته های مکانیک ، برق ، شیمی و ... حذف می شد و کلش در یک درس سه واحدی کارشناسی خلاصه می شد.
 

Coronaa

کاربر فعال
خب منم که از بلوک آماده PID استفاده نکردم! مگه عکسی که گذاشتم اشباهه سیمولینکش؟ یه مشتق گیر و یه انتگرال گیر خودم گذاشتم و بعد جمعشون کردم.
حالا من که پایان نامه ام در مورد فرکشنال هست بیاد با همین PID کار کنم. اون مقاله ای هم که براتون فرستادم و مدل بازوی ربات توش بود هم با fractional PID کار کرده بود. البته با ترکیب فازی! پس چرا اون نتایج خوبی گرفت؟
شما فرکشنال کار کردین؟
 

Coronaa

کاربر فعال
آقای دکتر، توی انتگرال گیر فرکشنال دو تا پارامتر باید تنظیم بشه. یکی Ki (ضریب انتگرال گیر) و دیگری لاندا (مرتبه انتگرال گیر که کسری هم هست).
طبق عکسی که اینجا گذاشتم، من چطوری میتونم مقدار لاندایی که از یه جای دیگه میاد رو به درجه (مرتبه) s اختصاص بدم تا بصورت self-tuning کار کنه؟
آیا بلوکی وجود داره که وقتی ضرب در بلوک انتگرال گیر شد بتونیم تغییراتی روی درجه ی s اعمال کنیم؟
خلاصه ی کلام :
من چطوری لاندا رو به بلوک انتگرال گیر وصل کنم تا بتونم درجه s رو تغییر بدم. یعنی هر مقداری که لاندا داره جایگزین درجه s بشه!
 

ROBOTICS

کاربر فعال مهندسی رباتیک
اون مقاله ای هم که براتون فرستادم و مدل بازوی ربات توش بود هم با fractional PID کار کرده بود. البته با ترکیب فازی! پس چرا اون نتایج خوبی گرفت؟
شما فرکشنال کار کردین؟

من بر خلاف شما ، مقالات را آیات آسمانی نمی بینم

من نمی دانم که نویسنده اشتباه کرده یا عمدی تغییر داده یه عبارتی عدد سازی کرده (مثلا دادن یک خروجی مطلوب خاص) ، یا عمدا (این مورد آخر حتی از معتبر اساتید نیز سر می زند) با چیزی که می داند نامناسب است مقایسه کرده

شایدم واقعا کار کرده

شما فرکشنال کار کردین؟

خیر
من رشتم کنترل نیست
و نه می خواهم روی مواردی که از قبل می دانم نامناسب است وقت بگذارم
من کلا تا وقتی برای تئوری ارش قائلم که بدانم نتیجه عملی دارد
فرض کن آمد و جواب داد اما در مقایسه با مد لغزشی بدون چترینگ بسیار ضعیف تر
در این صورت شما پایان نامه می نویسید و نمره می گیرید و مقاله می دهید و با چیزی که می دانید نامناسب است مانند pid مقایسه می کنید. مقاله اتان هم چاپ شد. یک تعدادی هم برای سواستفاده به مقاله تان ارجاع کردند
آخرش چی؟ باید برود کنار میلیون مقاله و پایان نامه که نوشته شده اند که خاک بخورند و بعدا به سطل آشغال
آیا نتیجه عملی دارد؟ آیا کمکی به بازو های موجود در صنعت می کند؟

آقای دکتر، توی انتگرال گیر فرکشنال دو تا پارامتر باید تنظیم بشه. یکی Ki (ضریب انتگرال گیر) و دیگری لاندا (مرتبه انتگرال گیر که کسری هم هست).
طبق عکسی که اینجا گذاشتم، من چطوری میتونم مقدار لاندایی که از یه جای دیگه میاد رو به درجه (مرتبه) s اختصاص بدم تا بصورت self-tuning کار کنه؟
آیا بلوکی وجود داره که وقتی ضرب در بلوک انتگرال گیر شد بتونیم تغییراتی روی درجه ی s اعمال کنیم؟
خلاصه ی کلام :
من چطوری لاندا رو به بلوک انتگرال گیر وصل کنم تا بتونم درجه s رو تغییر بدم. یعنی هر مقداری که لاندا داره جایگزین درجه s بشه!

من تا حالا به این مورد نیاز نداشتم. اگر درجه انتگرالی شما گسسته و متناهی است می توانی از بلوک switch case استفاده کنی
در غیر این صورت من راهش را نمی دانم. در تالار کامپیوتر زیر تالار برنامه نویسی زیرزیر تالار متلب سوال بپرس
 

Coronaa

کاربر فعال
خب آقای دکتر، من فعلن مجبورم که در حد همین تئوری کار کنم و یه مقاله!
تو سطح آکادمیک ، فعلن برام مهم نیست که بصورت عملی پیاده سازی بشه یا خیر. جواب خوب بده یا نه!
در ضمن، چرا شما همش فکر می کنید که روشی که انجام میدیم حتمن باید از روش های قبلی بهتر باشه؟
ممکنه من با همین fractional PID جواب خوبی نگیرم. حداقل اینو میشه فهمید برای چنین سیستمی fractional PID خوب جواب نمیده و کسی دیگه اشتباه منو تکرار نمیکنه. PID رو با شما موافقم که یه کار بیهوده ای میتونه باشه ولی برای فرکشنال خودم مشتاقم ببینم جواب خوب میگیرم یا بد! شما که هنوز امتحان نکردین. پس فعلن نمیشه نظر داد.
حالا بعد از اینکار میتونم با sliding mode هم امتحان کنم.
[/QUOTE]
من تا حالا به این مورد نیاز نداشتم. اگر درجه انتگرالی شما گسسته و متناهی است می توانی از بلوک switch case استفاده کنی
اول یه سوال :
معادلات روباتی که دارم، با دو درجه آزادی هست. با توجه به معادلات میشه حدس زد تابع تبدیلی که بدست میاد حد اکثر از درجه چند میتونه باشه؟
از اینکه میگین گسسته و متناهی هست، باید بگم نه! توی یه رنجی میتونه قرار داشته باشه ولی چون تنظیم درجه بصورت self-tuning است نمیشه از swich case استفاده کرد.
[/QUOTE]
در تالار کامپیوتر زیر تالار برنامه نویسی زیرزیر تالار متلب سوال بپرس
من مشکلم توی سیمولینک متلب هست. فکر نکنم کاری از دست برنامه نویسا بر بیاد!
 
آخرین ویرایش:

ROBOTICS

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

من این طوری فکر نمی کنم. در کار تئوری نه تنها بد نمی دانم بلکه مفید می دانم. اما در کار عملی وقتی به این نتیجه رسیدی که نتایج از بقیه روش ها ضعیف تر است محصول را به بازار نمی دهی.

اما اساتید این گونه فکر می کنند یا به علت همرنگ جماعت شدن این را می گویند

وقتی آمدی هر چیزی را (نه فقط کنترلر) با چیز بهتر مقایسه کردی و نتیجه گرفتی روشت خوب نبوده چه می شود؟

۱- مقاله ات رد می شود
۲- کمترین نمره پایان نامه را در دانشکده می گیری حتی اگر از همه بیشتر کار کرده باشی و نتیجه ات درست باشد.
۳- آبروی استاد راهنمایت جلوی بقیه اساتید می رود و تا سال ها نقل زبان ها می شود

من با این جو مخالفم. اما نظر من هیچ تاثیری در دنیا ندارد

ممکنه من با همین fractional PID جواب خوبی نگیرم. حداقل اینو میشه فهمید برای چنین سیستمی fractional PID خوب جواب نمیده و کسی دیگه اشتباه منو تکرار نمیکنه. PID رو با شما موافقم که یه کار بیهوده ای میتونه باشه ولی برای فرکشنال خودم مشتاقم ببینم جواب خوب میگیرم یا بد! شما که هنوز امتحان نکردین. پس فعلن نمیشه نظر داد.
حالا بعد از اینکار میتونم با sliding mode هم امتحان کنم.

اگر خودت را دوست داری ، در پایان نامه و مقالات نتیجه ات را فقط با موارد ضعیف تر مقایسه کن!
اکر مشتاق هستی می توانی اسلایدینگ مد لغزشی را برای دل خودت پیاده کنی وقتی نمره ات را گرفتی بیای این جا یا هر فروم دیگر یا سایت دیگر بگویی این روش مناسب نیست


معادلات روباتی که دارم، با دو درجه آزادی هست. با توجه به معادلات میشه حدس زد تابع تبدیلی که بدست میاد حد اکثر از درجه چند میتونه باشه؟

تابع تبدیل دقیقا از مرتبه دو به دست می آید. چون دینامیک ربات تا مشتق مرتبه دوم وجود داشت
این ربطی به درجات آزادی ندارد.
حتی اگر ربات هقت درجه آزادی نیز در نظر بگیری باز هم تابع تبدیلش دقیقا مرتبه دو هست

اگر به جای موتور خیالی که با گشتاور T نشان داده شده، از موتور الکتریکی واقعی با ورودی ولتاژ V استفاده کنی تابع تبدیل دقیقا از مرتبه چهار به دست می آید و باز هم ربطی به درجات آزادی ندارد
 

Coronaa

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

Coronaa

کاربر فعال
تابع تبدیل دقیقا از مرتبه دو به دست می آید. چون دینامیک ربات تا مشتق مرتبه دوم وجود داشت
اگه دقیقا درجه دو بدست میاد پس فرکشنال برای چی هست؟ یعنی مثلاً با مرتبه 1.95 نمیشه جواب بهتری گرفت؟
 

ROBOTICS

کاربر فعال مهندسی رباتیک
اگه دقیقا درجه دو بدست میاد پس فرکشنال برای چی هست؟

این سوال را شما باید جواب بدهید

یعنی مثلاً با مرتبه 1.95 نمیشه جواب بهتری گرفت؟

یک بار دیگر می گویم بازوی آرنجی یک سیستم غیر خطی است. کلا pid و مشتقاتش جواب خوبی نمی دهند و یا شاید اصلا جواب ندهند. حالا شاید با یکی از درجات به طوری نسبی بهتر از یکی دیگر جواب بدهد. ا

دایره ، یک منحنی غیر خطی است. حالا شما بگو کدام خط بهتر با آن پوش می شود!
بیضی یک منحنی درجه دوم است. حالا بگو کدام چندجمله ای x بهترین پوش را دارد؟ درجه یک (خط) درجه دو یا درجه چهار یا درجه ...

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

اگر کنترلر را انسان می گذاشتیم و موتور را نیروی دست انسان ، انسان به خطای در راستای x , y نمی آمد ضریب دبدهد و نیرو وارد کند.
یعنی انسان عاقل برای خطای یکسان اما در مکان های مختلف گشتاور یکسان وارد نمی کند

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

یک مثال برای روشن شدن
شما نمودار x به توان ۲ را در محور مثبت ها در نظر بگیر
فکر کن این نمودار ، یک کوهی است که می خواهی بالا بروی
اگر شما در موقعیت صفر باشید و بخواهید به موقعیت یک بروید به اندازه یک واحد زور لازم دارید = خطا یک و زور یک
اما اگر شما در موقعیت یک بشید و بخواهید به موقعیت دو برید به اندازه سه واحد زور نیاز دارید = خطا یک و زور سه
اگر شما کنترل pid داشته باشید به شما در هر دو موقعیت زور یکسانی پیشنهاد می دهد
آیا واقعا زحمت رفتن از صفر به یک با زحمت رفتن از یک به دو رفتن یکسان است؟
زحمت از یک به دو رفتن با زحمت از ده به یازده رفتن چطور؟
آیا هنوز هم فکر می کنید باری خطای یکسان باید زور یکساان داشت

یک مثال دیگر
فکر کنید یک جاده هایی کاملا مستقیم (بدون پیچ) و یک طرفه و بدون ترافیک داریم که می تواند شیب داشته باشد
شما سوار ماشین هستید و می خواهید فاصله ۱۰۰ کیلومتری بین دو شهر را در ۲ ساعت بروید
آیا اگر جاده سرازیر داشت و با وقتی جاذه سربالایی بود و با وقتی که جاده شیب سینوسی داشت شما یکسان عمل می کنید؟
خطا در این جا می تواند سرعت ماشین باشد یا می تواند فاصله تا مقصد باشد
pid در خطای یکسان می گوید یکسان عمل کنید
آیا شما آن را عقلانی می دانید؟
اگر عقلانی می دانید پس چرا در جاده سرازیر و سربالایی با خطای یکسان پدال گاز و ترمز را متفاوت فشار می دهید؟

و مثال از این دست بسیار است
 
آخرین ویرایش:

Coronaa

کاربر فعال
ممنونم از راهنماییت.
PID برای همه ی قسمت های ربات جواب نمیده یا فقط برای بازوی آرنجی اینطوریه؟
چه قسمتی از ربات یا چه مدل رباتی رو میتونم با Fractional PID کار کنم؟
 

ROBOTICS

کاربر فعال مهندسی رباتیک
ممنونم از راهنماییت.
PID برای همه ی قسمت های ربات جواب نمیده یا فقط برای بازوی آرنجی اینطوریه؟
چه قسمتی از ربات یا چه مدل رباتی رو میتونم با Fractional PID کار کنم؟

اکثر ربات ها غیر خطی اند

ربات کارتزین (دکارتی) یک ربات خطی است

روابط دینامیک بازوی دکارتی صفحه ای در چند صفحه قبل از همین بازوی آرنجی (در کتاب معرفی شده) آمده است

این معادلات ذاتا خطی است و نیاز به هیچ خطی سازی ندارد. کنترل PID روش خوب جواب می دهد.

معادلات بازوی کارتی فضایی (سه بعدی ، سه درجه آزادی) نیز کاملا خطی است. که معادلات دینامیکش در کتاب نیامده و خودت باید به دست بیاوری

اگر نگاه کنی هیج سینوس و کسینوسی نمی بینی

اگر در مورد آن سوال داری تاپیک جدا بزن
 

Coronaa

کاربر فعال
ب) PID یک سیستم دو ورودی دو خروجی (مثل بازوی آرنجی) به صورت زیر است

کد:
u1 = (Kd11 D + Kp11 + Ki11 / D ) e1 + (Kd12 D + Kp12 + Ki12 / D ) e2
u2 = (Kd21 D + Kp21 + Ki21 / D ) e1 + (Kd22 D + Kp22 + Ki22 / D ) e2

که D اپراتور مشتق نسبت به زمان است.

وقتی تبدیل لاپلاس یگیری D تبدیل به S می شود.
سلام آقای دکتر!
در اینجا، u1 و u2 همون t1 و t2 (گشتاور)، خروجی سیستم ما هستن؟
یه جایی هم ذکر کردین که خروجی ما x و y هستند.
یکمی گیج شدم. میشه بگین من توی شبیه سازیهام باید چه ورودی هایی و چه خروجی هایی داشته باشم؟
 

ROBOTICS

کاربر فعال مهندسی رباتیک
در اینجا، u1 و u2 همون t1 و t2 (گشتاور)، خروجی سیستم ما هستن؟
یه جایی هم ذکر کردین که خروجی ما x و y هستند.
یکمی گیج شدم. میشه بگین من توی شبیه سازیهام باید چه ورودی هایی و چه خروجی هایی داشته باشم؟

در اینجا، u1 و u2 همان T1 و T2 (گشتاور)، هستند. اما این دو تا ورودی هستند
خروجی x و y هستند

به زبان رباتیک:
ورودی = گشتاور موتور ها = T1 و T2
خروجی = موقعیت انتهای بازو = مختصات Px و Py
که P همان نام نقطه ی انتهای بازو (به اصلاح مجری نهایی) است

به زبان کنترل:
ورودی = u1 و u2
خروجی = y1 و y2

در عمل کنترل ، این ها مشتی اعداد هستند و مفهومی ندارند و شما هر نامی می توانید بگذارید. برای همین است که تمام ورودی ها را با u و تمام خروجی ها را با y و تمام حالت ها را با x و تمام مود ها را با ξ نشان می دهند
اما در علم رباتیک ، هر کدام از این متغیر ها یک مفهوم فیزیکی هستند که اهمیت دارند. مثلا T ابتدای کلمه ی Torque به معنای گشتاور است و P ابتدای کلمه ی Position به معنای موقعیت است

در علم کنترل شما می توانید u را تابع ضربه (دلتای دیراک) قرار بدهید و هیچ مشکلی هم نیست، تازه مورد علاقه ی کنترلی ها است
در علم رباتیک اگر گشتاور تابه ضربه باشد محور موتور شما می شکند و بازو خراب می شود

شما یا فقط از نام گذاری های رباتیکی ها استفاده کن و یا فقط از نام گذاری های کنترلی ها ، تا گیج نشوی
 
آخرین ویرایش:

Coronaa

کاربر فعال
1- چه فرقی بوجود میاد که T1 و T2 رو ورودی یا خروجی بگیریم؟
توی مقاله ای که برای شما فرستادم این دو تا رو خروجی گرفت. فرقش چیه؟
2- اگه واقعاً توی عمل به ورودی، تابع ضربه بدیم، محور موتور میشکنه پس چرا کنترلیا اینطوری شبیه سازی می کنند؟
3- منظورتون از اینکه میگین u رو تابع ضربه قرار بدهیم، یعنی بجای کدی که بالا گذاشتین حذف میشه و فقط سمت راست معادله تابع ضربه قرار میگیره؟؟ یا اینکه تابع ضربه ضرب در رابطه سمت راست میشه؟
 

ROBOTICS

کاربر فعال مهندسی رباتیک
1- چه فرقی بوجود میاد که T1 و T2 رو ورودی یا خروجی بگیریم؟
توی مقاله ای که برای شما فرستادم این دو تا رو خروجی گرفت. فرقش چیه؟
2- اگه واقعاً توی عمل به ورودی، تابع ضربه بدیم، محور موتور میشکنه پس چرا کنترلیا اینطوری شبیه سازی می کنند؟
3- منظورتون از اینکه میگین u رو تابع ضربه قرار بدهیم، یعنی بجای کدی که بالا گذاشتین حذف میشه و فقط سمت راست معادله تابع ضربه قرار میگیره؟؟ یا اینکه تابع ضربه ضرب در رابطه سمت راست میشه؟

شما می خواهی سیستم یعنی بازوی آرنجی را کنترل کنی یا چیز دیگری را

اگر می خواهی بازوی آرنجی را کنترل کنی باید ورودی را همان که گفتم بگیری

مثلا کسی که می خواهد شدت روشنایی لامپ را کنترل کند
ولتاژ را ورودی و شدت روشنایی را خروجی می گیرد
حالا شما بگو چه می شود اگر شدت روشنایی را ورودی بگیریم و ولتاژ را خروجی!!!

می خواهی مسئله را حل کنی یا می خواهی صورت مسئله عوض کنی؟

۲- دو حالت دارد
الف) تعداد کثیری از کنترلی ها نمی دانند فیزیک چیست یا به طور کلی نمی دانند سیستم چیست.
سیستم را به صورت فرمول ریاضی می گیرند و بقیه اش را تحلیل می کنند
ب) تعداد اندکی هم که می دانند فیزیک چیست ، آن را بی اهمیت می دانند
از نظر این افراد اصل ریاضی است. اگر چیزی با ریاضیات ثابت شود ارزش دارد و بقیه موارد باد هوا است

اگر غیر از این دو حالت بود اصلا کنترلی نمی شدند

۳- من نگفتم شما تابع ضربه قرار بده
جمله من کلی بود
یک مثال زدم که ببینی کنترلی ها چه کار های ... می کنند. نام گذاری متغییر هایشان هم مانند کار های ... است
شما (مانند هر کنترلی دیگر) به جای u باید کنترلرتان را قرار بدهید مثلا همان pid
 

Coronaa

کاربر فعال
ما کنترلیا رو با خاک یکسان کردی دیگه!
دست شما درد نکنه :)
 

Coronaa

کاربر فعال
آقای دکتر!
1- وقتی میگیم خروجی ما x و y هستن، یعنی من باید توی شبیه سازیهام، فقط دو تا مقدار عددی داشته باشم؟ پس این نمودارا و پاسخ پله و اورشوت و این چیزا چیه؟ مگه من خروجی نباید اینا رو بررسی کنم؟
2- اینطوری که میگم درسته ؟ :
من میخوام ضرایب pid رو با فازی تعیین کنم.
دو تا ورودی بعنوان خطا (e1 و e2) به فازی میدیم و خروجی سه تا (Kp, Ki, Kd ) میگیریم و بعد میدیم به مدل سیستم؟
خطای e1 برابر است با x مطلوب، منهای x واقعی
و e2 برابر است با y مطلوب، منهای y واقعی.
حالا من x و y مطلوب رو چه مقدار و چطوری باید توی شبیه سازیهام در نظر بگیرم؟
 
آخرین ویرایش:

ROBOTICS

کاربر فعال مهندسی رباتیک
1- وقتی میگیم خروجی ما x و y هستن، یعنی من باید توی شبیه سازیهام، فقط دو تا مقدار عددی داشته باشم؟
خیر. شما باید همه چیز را داشته باشید
ولی این دو ومورد باید به سمت خروجی مطلوب میل کنند


پس این نمودارا و پاسخ پله و اورشوت و این چیزا چیه؟ مگه من خروجی نباید اینا رو بررسی کنم؟

برای چی پاسخ ضربه و پله را حساب کنید؟

اورشوت را که باید که حساب شود. سیستم رباتیک نباید اورشوت داشته باشد


2- اینطوری که میگم درسته ؟ :
من میخوام ضرایب pid رو با فازی تعیین کنم.
دو تا ورودی بعنوان خطا (e1 و e2) به فازی میدیم و خروجی سه تا (Kp, Ki, Kd ) میگیریم و بعد میدیم به مدل سیستم؟
خطای e1 برابر است با x مطلوب، منهای x واقعی
و e2 برابر است با y مطلوب، منهای y واقعی.
حالا من x و y مطلوب رو چه مقدار و چطوری باید توی شبیه سازیهام در نظر بگیرم؟

شما ۱۲ تا ضریب دارید
چهار تا kd چهار تا kp و چهار تا Ki
سه ضرب در چهار می شود دوازده

روش همین است. اما من نفهمیدم چرا ضرایب pid را باید با فازی تعیین کرد!!!
 

Coronaa

کاربر فعال
برای چی پاسخ ضربه و پله را حساب کنید؟
ببخشید اشتباه گفتم. اینا میتونن ورودی باشن.

شما ۱۲ تا ضریب دارید
چهار تا kd چهار تا kp و چهار تا Ki
سه ضرب در چهار می شود دوازده
اینو من نفهمیدم چرا دوازده تا!!! البته اینو میدونم که از همون PID یک سیستم دو ورودی دو خروجی گفتین!
میشه بیشتر توضیح بدین؟

چرا ضرایب pid را باید با فازی تعیین کرد!!!
یه جورایی از اون چیزی که تو ذهنم بود داره سخت تر میشه. یا شایدم ایده هامون فرق میکنه و من دارم به سمت انجام ایده ی شما میرم!
من میخواستم یک کنترلر fuzzy-PID طراحی کنم که بصورت self-tuning باشه. یعنی ضرایب توسط فازی تعیین بشه و بعد وارد کنترلر PID بشه.
و فکر میکردم که دو تا ورودی بعنوان خطا میدیم و سه تا خروجی بعنوان ضرایب PID ازش میگیریم و وارد کنترلر PID میکنیم. و چون فعلاً داشتم این کنترلر PID روبر روی یک تابع تبدیل تست میکردم، فقط سه تا پارامتر (Kp, Ki, Kd) نیاز داشتم.نه 12 تا. واسه همین گفتم سه تا خروجی.
به این صورت. البته خطاها رو فعلن ثابت گرفتم. و این شبیه سازی خیلی ناقصه. فقط خواستم ساختارش رو در بیارم.
روش من اشتباهه؟
حالا شما اون چیزی که توی ذهن شما هست رو میگین؟
 
آخرین ویرایش:

ROBOTICS

کاربر فعال مهندسی رباتیک
ببخشید اشتباه گفتم. اینا میتونن ورودی باشن.

این که همان شد.

ببخشید اشتباه گفتم. اینا میتونن ورودی باشن.


اینو من نفهمیدم چرا دوازده تا!!! البته اینو میدونم که از همون PID یک سیستم دو ورودی دو خروجی گفتین!
میشه بیشتر توضیح بدین؟

پس چند تا

تعداد پارامتر در کنترلر pid برابر است با

سه ضرب در تعداد ورودی ضرب در تعداد خروجی

سه ضرب در دو ضرب در دو مساوی است با دوازده

شما ابتدا تعریف کنترل pid را به زبان فارسی (نه فرمول) بنویس.
بعد سعی کن تعریف را به صورت ریاضی بنویسی

یه جورایی از اون چیزی که تو ذهنم بود داره سخت تر میشه. یا شایدم ایده هامون فرق میکنه و من دارم به سمت انجام ایده ی شما میرم!
من میخواستم یک کنترلر fuzzy-PID طراحی کنم که بصورت self-tuning باشه. یعنی ضرایب توسط فازی تعیین بشه و بعد وارد کنترلر PID بشه.
و فکر میکردم که دو تا ورودی بعنوان خطا میدیم و سه تا خروجی بعنوان ضرایب PID ازش میگیریم و وارد کنترلر PID میکنیم. و چون فعلاً داشتم این کنترلر PID روبر روی یک تابع تبدیل تست میکردم، فقط سه تا پارامتر (Kp, Ki, Kd) نیاز داشتم.نه 12 تا. واسه همین گفتم سه تا خروجی.
به این صورت. البته خطاها رو فعلن ثابت گرفتم. و این شبیه سازی خیلی ناقصه. فقط خواستم ساختارش رو در بیارم.
روش من اشتباهه؟
حالا شما اون چیزی که توی ذهن شما هست رو میگین؟

اگر می خواهی ضرایب pid را self-tuning کنی. لازم است این ضرایب تابع حالت باشد نه تابع خطا
یعنی شما باید ۱۲ تا سیسم فازی دو ورودی تک خروجی داشته باشی
هر سیستم دو ورودی زاویه را بدهی و یک خروجی معادل یکی از دوازده تا پارامتر pid
اسم این روش دیگر pid نیست. اسمش fuzzy-PID هم نیست. fuzzy-PID چیز دیگری است


مشکل شما این است که تابع تبدیل را اسکالر گرفتید
مگر سیستم تک ورودی تک خروجی است که تابع تبدیلش اسکالر باشد؟
سیستم دو ورودی دو خروجی تابع تبدیل ماتریس دو در دو است
سیستم m ورودی n خروجی تابع تبدیلش ماتریس n سطری و m ستونی است
 
آخرین ویرایش:

f.sh67

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

Coronaa

کاربر فعال
آقای دکتر، ممنونم از راهنمائیت.
ببخشید که انقدر سوال میپرسم. من توی این سوال و پرسش هست که دارم کنترل یاد میگیرم و یا چیزایی که خوندم یاداوریم میشه.
تشکر
شما ابتدا تعریف کنترل pid را به زبان فارسی (نه فرمول) بنویس.
بعد سعی کن تعریف را به صورت ریاضی بنویس
من فقط میدونم که PID یک کنترلری هست که در یک سیستم، با تابع تبدیل سیستم ما ضرب میشه و یک تابع تبدیل جدیدی بدست میاد که خود این کنترلر رو میتونیم طوری طراحی کنیم(یعنی ضرایب PID رو تنظیم کنیم) که مثلا اورشوت ما کمتر بشه و یا بتونیم Rise Time رو هم کم کنیم تا سرعت سیستم ما هم زیاد بشه نسبت به حالت قبل از وجود کنترلر!
یعنی یه مقدار ثابت ، یه انتگرال گیر و یک مشتق گیر به سیستم اضافه کنیم.
و تا حالا هم که با PID کار کردم بر روی یک تابع تبدیل بود و نمیدونم روی تابع حالت چطوری میشه استفاده کرد.
اگر می خواهی ضرایب pid را self-tuning کنی. لازم است این ضرایب تابع حالت باشد نه تابع خطا
یعنی شما باید ۱۲ تا سیسم فازی دو ورودی تک خروجی داشته باشی
هر سیستم دو ورودی زاویه را بدهی و یک خروجی معادل یکی از دوازده تا پارامتر pid
اسم این روش دیگر pid نیست. اسمش fuzzy-PID هم نیست. fuzzy-PID چیز دیگری است
منظور از تابع خطا چیه؟ من که ضرایب pid رو به تابع خطا نمیدم!
این روشی که شما میگین اسمش چیه و روش fuzzy-pid پس چطوریه؟ من مقالاتی که دیدم fuzzy-pid کار کردن همینطوری بود و من هم به همین خاطر از این الگو استفاده کردم!
مشکل شما این است که تابع تبدیل را اسکالر گرفتید
بله اصلاً حواسم نبود که یک سیستم چند متغیره هست. پس تابع تبدیل ما 2 در 2 میشه.
راستی! شما گفته بودین که برای بازوی آرنجی خوب نیست که از تابع تبدیل استفاده کنید و بهتره با فضای حالت کار کنید.
حالا اگه من با فضای حالت کار کنم باز همین مراحل وجود داره و باید 12 تا پارامتر رو پیدا کنم؟
 
آخرین ویرایش:

ROBOTICS

کاربر فعال مهندسی رباتیک
من توی این سوال و پرسش هست که دارم کنترل یاد میگیرم و یا چیزایی که خوندم یاداوریم میشه.

برای یادگیری بهتر است کتاب بخوانید

البته نه کتاب کنترل خطی

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

شما اکنون فقط و فقط با «سیستم تک ورودی تک خروجی خطی و نامتغییر با زمان» به اصطلاح SISO LTI آشنایی داری و از سایر سیستم ها چیزی نمی دانی.
بدان که خودت را بسیار و بسیار محدود کردی

من فقط میدونم که PID یک کنترلری هست که در یک سیستم، با تابع تبدیل سیستم ما ضرب میشه و یک تابع تبدیل جدیدی بدست میاد که خود این کنترلر رو میتونیم طوری طراحی کنیم(یعنی ضرایب PID رو تنظیم کنیم) که مثلا اورشوت ما کمتر بشه و یا بتونیم Rise Time رو هم کم کنیم تا سرعت سیستم ما هم زیاد بشه نسبت به حالت قبل از وجود کنترلر!
یعنی یه مقدار ثابت ، یه انتگرال گیر و یک مشتق گیر به سیستم اضافه کنیم.

دقیقا مشکل شما همین است که نمی دانید PID چیست

شما کنترل PID را فقط برای یک تابع تبدیل اسکالر دیدید و بدون این که مفهومش را یاد بگیرید خواستید مسئله را حل کنید یا نمره ای بگیرید و ...
این که PID در سیستم تک ورودی تک خروجی خطی و نامتغییر با زمان به اصطلاح SISO LTI دارد ربطی به مفهوم و تعریف PID ندارد

شما اول تعریف PID را یاد بگیر

PID یعنی کنترلری که مقدار ورودی سیستم را برابر تابع خطی از مشتق خطا و خود خطا و انتکرال خطا می گذارد
تفسیر PID این است که مقدار ورودی سیستم نباید تابعی از وضعیت فعلی سیستم (به اصطلاح حالت سیستم) داشته باشد
PID یک مفهوم است و ربطی به تایع تبدیل ، فضای حالت و ... و حتی روش های آینده ندارد

حالا اگر در حوزه زمان (فضای حالت) بنویسیم می شود

کد:
Kd D + Kp + Ki /D

در حوزه فرکانس به صورت زیر نوشته می شود

کد:
Kd S + Kp + Ki /S

که Kd و Kp و Ki ضرایب ثابت هستند
که برای سیستم تک ورودی تک خروجی می شوند عدد اسکالر و ثابت
و برای سیستم چند ورودی تک خروجی می شوند بردار سطری ثابت
برای سیستم تک ورودی چند خروجی می شوند بردار عمودی ثابت
برای سیستم m ورودی n خروجی می شوند ماتریس n سطری و m ستونی با درایه های ثابت

اگر Kd و Kp و Ki نسبت به هر چیزی غیر از زمان تغییر کنند دیگر اسمش PID نیست
اگر Kd و Kp و Ki نسبت به زمان تغییر کنند اسمش می شود PID متغییر با زمان. که کاربردش سیستم های خطی متغییر با زمان است


و تا حالا هم که با PID کار کردم بر روی یک تابع تبدیل بود و نمیدونم روی تابع حالت چطوری میشه استفاده کرد.

تابع حالت؟؟؟!!!

شما تابع تبدیل اسکالر استفاده کردی
حا من گفتم تابع تبدیل ماتریس بگیر

هر چیزی که ماتریس است که حالت نیست

ربات های خطی (آرنجی غیر حطی است) را اگر بخواهند با PID حل کنند آن جا تابع تبدیل ماتریس است
با این که این گونه ربات ها ذاتا خطی هستند و باز هم تابع تبدیلشان هیچ شباهتی به فضای حالت آن ندارد
تنها شباهت آن است که به صورت ماتریسی نوشته می شوند. یعنی تمام درایه هایشان فرق دارد


منظور از تابع خطا چیه؟ من که ضرایب pid رو به تابع خطا نمیدم!
این روشی که شما میگین اسمش چیه

فکر کردم شما می خواهی ضرایب PID را با سیستم خارجی (مثل فازی) در حین حرکت تغییر بدی
که دیگر بهش PID نمی گویند چون دیگر ضرایب ثابت نیست و متغییر هستند.
فراموشش کن. چون شما بیشتر گیج می شود


روش fuzzy-pid پس چطوریه؟

همان طور که گفتم شما تعریف PID را به زبان فارسی می نویسی بعد آن را به فضای فازی بازنویسی می کنی

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

سپس باید منطق فازی بلد باشی و به توانی عبارت های زبانی را به صورت تاکگی-سوگینو بنویسی

تا این دو را بلد نباشی هزان مقاله هم بخوانی چیزی در ایم مورد یاد نمی گیری

من مقالاتی که دیدم fuzzy-pid کار کردن همینطوری بود و من هم به همین خاطر از این الگو استفاده کردم!

کسی که با مفاهیم اولیه آشنایی نداشته باشد و مقاله بخواند
مقالات برایش تبدیل به آفت مغز می شود
شما ابتدا PID سپس فازی را از کتاب یاد بگیر
سپس برای کاربر می توانی ببینی مقالات چه کار کردند. کجا هایش ایراد دارد چه روش هایی رفتند که شما بهش فکر نکرده بودی


راستی! شما گفته بودین که برای بازوی آرنجی خوب نیست که از تابع تبدیل استفاده کنید و بهتره با فضای حالت کار کنید.
حالا اگه من با فضای حالت کار کنم باز همین مراحل وجود داره و باید 12 تا پارامتر رو پیدا کنم؟

مهم نیست از چه فضایی استفاده می کنید در هر صورت PID تعریف یکسان دارد و تعداد پارامتر یکسان
فضای حالت ، فضای فرکانس (تابع تبدیل) ، فضای فازی ، فضای ...
شما در آینده اگر فضای جدیدی هم معرفی کنید باز هم تعداد ضرایب یکی است
چون تعریف PID یکسان است و مستقل از روش و فضای کاری
 

Coronaa

کاربر فعال
ممنونم که با حوصله جواب میدی :)
من فازی رو پاس کردم.
من ترم بعد، کلاً وقت دارم روی پایان نامه کار کنم و میتونم وقت بذارم براش. فعلاً چون درگیر درسام هستم زیاد وارد جزئیاتش نشدم و دارم تحقیقات اولیه انجام میدم و همچنان تمایل دارم که روی همین مدل کار کنم.
حالا باز باید با استادم صحبت کنم تا ببینم نظر ایشون چیه!
من باز مطالعه میکنم و مزاحم شما میشم.
با سپاس
 

Coronaa

کاربر فعال
سلام آقای دکتر
اگه بخوام روی ربات های چرخدار کار کنم چطوریه؟
منظورم اینه که معادلاتش باز به همین صورت غیر خطی و مشکل سازه؟
راستی، روابط زیر رو از کدوم مرجع گرفتین که من برم بیشتر مطالعه کنم؟

ب) PID یک سیستم دو ورودی دو خروجی (مثل بازوی آرنجی) به صورت زیر است

u1 = (Kd11 D + Kp11 + Ki11 / D ) e1 + (Kd12 D + Kp12 + Ki12 / D ) e2
u2 = (Kd21 D + Kp21 + Ki21 / D ) e1 + (Kd22 D + Kp22 + Ki22 / D ) e2
که D اپراتور مشتق نسبت به زمان است.
 
آخرین ویرایش:

ROBOTICS

کاربر فعال مهندسی رباتیک
اگه بخوام روی ربات های چرخدار کار کنم چطوریه؟
منظورم اینه که معادلاتش باز به همین صورت غیر خطی و مشکل سازه؟

ربات چرخدار نیز غیر خطی و مشکل ساز است. حتی مشکلش از بازو هم بیشتر است

مشکل دیگری مختض شما است ، من تا حالا ندیدم کتابی معادلات دینامیکش را به صورت صریح نوشته باشد. شاید هم نوشته باشد اما تو مدتی که من جست و جو می کردم چیزی پیدا نکرده بودم.

همچنین زاویه ربات هم مهم است. که بستگی به مدل ربات یا یکی به تعداد درجه آزادی اضافه می شود (سه درجه) و یا یک قید به حرکت اضافه می شود.


راستی، روابط زیر رو از کدوم مرجع گرفتین که من برم بیشتر مطالعه کنم؟

ب) PID یک سیستم دو ورودی دو خروجی (مثل بازوی آرنجی) به صورت زیر است

u1 = (Kd11 D + Kp11 + Ki11 / D ) e1 + (Kd12 D + Kp12 + Ki12 / D ) e2
u2 = (Kd21 D + Kp21 + Ki21 / D ) e1 + (Kd22 D + Kp22 + Ki22 / D ) e2
که D اپراتور مشتق نسبت به زمان است.

گفتم که تو رباتیک ارزشی برای PID قائل نیستم و روش وقت نمی گذاریم
این شما هستید که گیر دادید به PID
حتی اگر سیستم خطی باشد ما آن را در فضای حالت می نویسیم و از کنترلر های کوداراتیک خطی یعنی LQT یا LQR یا LQG استفاده می کنیم.
این معادلات را یکی از اساتید فقط پای تخته نوشت که اگر شخصی انجام داد ما دیده باشیم و سریع از آن رد شد
بنابراین مرجعی ندارم که معرفی کنم

من کلا توصیه می کنم ار PID بیا بیرون. حتی اگر سیستم خطی باشد روش های بهتر مخصوص خطی وجود دارد
 

Similar threads

بالا