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

Coronaa

کاربر فعال
حالا فعلن که باید به حرف استادم گوش بدم. میگه چون داری با فرکشنال کار میکنی موضوع خوبیه! و فقط میخوایم مقایسه ای بین PID و FOPID داشته باشیم. اگه بخوام روی کنترلرهای کوادراتیک کار کنم باید بذارمشون واسه future works .
من برای PID هم باید با فضای حالت کار کنم دیگه. درسته؟
 

Coronaa

کاربر فعال
این موضوع رو فکر کنم قبلن هم برای شما فرستادم. سوالم اینه که با اینکه ربات چرخدار هم غیر خطی هست پس چرا گفته با fuzzy یا PID کار بشه؟ پروژه پیشنهادی ایشون بود.

[HKL04] Position and tracking control of wheeled mobile robots

The aim of this project is to design a fuzzy controller for wheeled mobile robot for position and tracking control. For position control, the wheeled mobile robot is driven to reach a target position. For tracking control, the wheeled mobile robot is driven to move along a pre-defined trajectory. This project can be broken down into the following tasks. 1) The dynamic model of the wheeled mobile robot is developed. Based on the model, various types of controllers, such as fuzzy controller, PID controller, linear state-feedback controller, will be employed to perform the control. 2) The system performance will be investigated and optimised by genetic algorithm (GA) or particle swarm optimization (PSO). 3) A path planning algorithm will be developed to find the shortest path to reach the target with the ability of obstacle avoidance. 4) A Matlab software with Graphic User Interface (GUI) will be implemented to facilitate computer simulations and control synthesis with animated output. 5) The system will be implemented physically using a Lego Mindstorm NXT kit. Hardware results will be recorded and compared. Student taking this project is required to be hardworking and self-motivated. Good Matlab programming skill and mathematical background are essential to this project.

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

ROBOTICS

کاربر فعال مهندسی رباتیک
حالا فعلن که باید به حرف استادم گوش بدم. میگه چون داری با فرکشنال کار میکنی موضوع خوبیه! و فقط میخوایم مقایسه ای بین PID و FOPID داشته باشیم.

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

همین را پایان نامه کن و مقاله بده

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

اگه بخوام روی کنترلرهای کوادراتیک کار کنم باید بذارمشون واسه future works .

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

من برای PID هم باید با فضای حالت کار کنم دیگه. درسته؟
درست است

مشکلتان چیست؟

این موضوع رو فکر کنم قبلن هم برای شما فرستادم. سوالم اینه که با اینکه ربات چرخدار هم غیر خطی هست پس چرا گفته با fuzzy یا PID کار بشه؟ پروژه پیشنهادی ایشون بود.

یک بار دیگر می گویم. من مسئول حرف های دیگران نیستم. هر حرفی که دیگری زد را که من قبول ندارم

در ضمن من مقالاتش را نگاه کردم. ایشان PID نرفته بود. فازی رفته بود

خطی سازی هم نکرده بود. آمده بود به صورت غیر خطی نوشته بود بعد فازی را استخراج کرده بود

در نهایت یک کنترل غیرخطی فازی بود.

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

PID که ربات چرخدار را ناپایدار می کند

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

ربات چرخدار خود صدها مدل دارد

مثلا رباتی شبیه خودروی سواری را در نظر بگیر
فرض کن خروجی مطلوب دقیقا در دو متری در راستای محور x است
بنابراین خطا در راستای x برابر ۲ و خطا در راستای y برابر صفر است.
آیا جهت ماشین تاثیری ندارد؟
مثلا اگر ربات در جهت x ها بود با وقتی که در خلاف جهت x ها بود شما یک ورودی را در نظر می گیرید؟
PID می گوید فقط خطا مهم است و نه جهت! برای همین در هر دو حالت می گوید شتاب بگیر. در این حالت یکی به مقصد می رسد (حالتی که این ها مقاله می کنند) در حالت دیگر هر چه می رود خطا بیشتر می شود و شتاب بیشتر می شود تا حدی که ربات به یا بترکرد یا به سمت بی نهایت برود
 

Coronaa

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

ROBOTICS

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

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

سیمولینک چه بلوک های معروفی دارد؟ گین + جمع کننده + ضرب کننده + انتگرل + توابع غیر خطی + ...

چه اجزایی در فضای حالت وجود دارد که سیمولینک ندارد؟؟؟



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

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

برید ابتدا مدل سازی یاد بگیرید

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

۱- مقاومت
۲- دیود
۳- ترانزیستور
۴- موتور دی سی با جاروبک
۵- موتور دی سی بدون جاروبک
۶- سیستم جرم و فنر و دمپر
۷- سیستم تعلیق
۸- آونگ معکوس (با خطی سازی)
۹- آونگ معکوس (مدل اصلی سعنی غیر حطی)
۱۰- بازوی دکارتی صفحه ای
۱۱- بازوی آرنجی

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

سپس موارد زیر را مدل کنید

۱۲- کنترلر PID برای سیستم تک ورودی تک خروجی (بدون در نظر گرفتن مدل)
۱۳- کنترلر PID برای سیستم دو ورودی تک خروجی (بدون در نظر گرفتن مدل)
۱۴- کنترلر PID برای سیستم تک ورودی دو خروجی (بدون در نظر گرفتن مدل)
۱۵- کنترلر PID برای سیستم دو ورودی دو خروجی (بدون در نظر گرفتن مدل)

وقتی این ۱۵ تا را مدل کردید و مفهومی یاد گرفتید. آن موقع فکر کنید. به راحتی می توانید آن ها را به یکدیگر وصل کنید. اگر باز هم نتوانستید بگویید

شما میتونید یه مثال ساده بزنید که چطوریه؟ (توی متلب)

خیر

چون شما ابتدا باید مدل سازی یاد بگیرید

سه لینک زیر مدل سیستم تعلیق و مدل موتور دی سی با جاروبک و مدل آونگ معکوس غیر خطی را توضیح داده

کد:
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition&section=SimulinkModeling

کد:
http://ctms.engin.umich.edu/CTMS/index.php?example=Suspension&section=SimulinkModeling

کد:
http://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum&section=SimulinkControl

سیمولینک کنترل PID آونگ معکوس در لینک زیر موجود است. (آونگ معکوس در فضای حالت است)

کد:
http://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum&section=SimulinkControl

سیمولینک کنترل دیجیتال موتور دی سی با جارویک در لینک زیر موجود است. (موتور دی سی با جارویک در فضای حالت است)

کد:
http://ctms.engin.umich.edu/CTMS/index.php?example=MotorPosition&section=SimulinkControl

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

کد:
http://ctms.engin.umich.edu/CTMS/index.php?example=Suspension&section=SimulinkControl
 

Coronaa

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

مازارو

عضو جدید
سلام
طرح یک سوال
شما که می خواهید با PID بازو رو کنترل کنید در فضای x,y وz ست پوینت(sp)همچنین سرعت و شتاب رو چگونه اعمال می کنید؟
با سپاس
 

Coronaa

کاربر فعال
سلام
طرح یک سوال
شما که می خواهید با PID بازو رو کنترل کنید در فضای x,y وz ست پوینت(sp)همچنین سرعت و شتاب رو چگونه اعمال می کنید؟
با سپاس
سلام دوست عزیز
من طبق گفته هام در پست قبلی عرض کردم که فعلن چیزی نمیدونم و اصلن نمیدونم چی میخوام و چیکار باید بکنم. انقدر اطلاعاتی هم که اینجا می بینید دوست عزیزمون جناب Robotic منو راهنمایی کردن. پس اجازه بدین ببینیم نظر ایشون چیه؟
در ضمن، خوشحال میشم که این سوال و جواب ها ادامه داشته باشه تا من به یه نتایجی برسم!
تشکر
 

ROBOTICS

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

اگر پست های قبلی را می خواندید گفته بودم که PID به درد نمی خورد

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

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

شما که روش های مد لغزشی می دانی چرا دنبال PID هستی؟

در فضای x,y وz ست پوینت(sp)همچنین سرعت و شتاب رو چگونه اعمال می کنید؟

کلا ست پوینت را تنظیم نمی کنیم

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

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


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

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

مازارو

عضو جدید
دوست عزیز اگر صحبت شما رو قطع کردم ببخشید امیدوارم راهنمایی های دوست گرامی شما رو به هدفتون برسونه اما یک نکته به اقای دکتر هدف از کنترل نزدیک کردن میزان خطا به صفر در طی مسیر خواسته شده است.ما با توجه به قانون Denavit-Hartenberg وسرعت و شتاب دلخواه که به بازوها میتونیم بدیم وزمانهای نمونه برداری می تونیم ست پوینت یاgها رو برای طی مسیر خواسته شده از موقعیت کنونی تا نقطه هدف رو محاسبه کنیم و در هر لحظه یعنی k,k+1,k+.... اعمال کنیم یعنی ست پوینتها در هر لحظه تغییر میکنند و کنترل نیز رساندن میزان خطای gهای درهر لحظه به gهای محاسبه شده است.
امیدوارم دوست عزیز به هدف خود برسه.
با سپاس
 

Coronaa

کاربر فعال
کلا ست پوینت را تنظیم نمی کنیم

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

ROBOTICS

کاربر فعال مهندسی رباتیک
هدف از کنترل نزدیک کردن میزان خطا به صفر در طی مسیر خواسته شده است.ما با توجه به قانون Denavit-Hartenberg وسرعت و شتاب دلخواه که به بازوها میتونیم بدیم وزمانهای نمونه برداری می تونیم ست پوینت یاgها رو برای طی مسیر خواسته شده از موقعیت کنونی تا نقطه هدف رو محاسبه کنیم و در هر لحظه یعنی k,k+1,k+.... اعمال کنیم یعنی ست پوینتها در هر لحظه تغییر میکنند و کنترل نیز رساندن میزان خطای gهای درهر لحظه به gهای محاسبه شده است.

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

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

۲- اگر منظورتان این است که در هر لحظه ما بیاییم شتاب لازم برای جبران سازی را برای بازه ای کوچک حساب کنیم و آن را به عنوان ست پوینت موتور تعیین کنیم:
ایده ی بسیار قشنگی است و تا حالا بهش فکر نکرده بودم و این گونه شما مسئله کنترل بازو را به مسئله کنترل موتور (که خطی و ساده است) تبدیل کردید
روشی که گفتید نسبت به تغییرات پارامتر های بازو نظیر جرم طول و ... مقاوم نیست چگونه آن را مقاوم می کنید؟ اگر نتوانید آن را مقاوم کنید همچنان روش مد لغزشی برتری محسوسی دارد
شما برای کنترل امپدانس در راستای xyz چه کار می کنید؟
اما روش شما یک اشکال اساسی نیز دارد و آن بحث اورشوت است. می دانید که در رباتیک (اکثر موارد) اورشوت باید صفر باشد

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

درست است


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

کاملا متوجه شدید

حالا من با کدوم بازو کار کنم بهتره؟ مکانیکی یا روباتیکی؟ برای کنترل فرقی میکنه؟

در قسمت طراحی کنترل این دو یکی هستند

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

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

Coronaa

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

Coronaa

کاربر فعال
دوست عزیز اگر صحبت شما رو قطع کردم ببخشید امیدوارم راهنمایی های دوست گرامی شما رو به هدفتون برسونه اما یک نکته به اقای دکتر هدف از کنترل نزدیک کردن میزان خطا به صفر در طی مسیر خواسته شده است.ما با توجه به قانون Denavit-Hartenberg وسرعت و شتاب دلخواه که به بازوها میتونیم بدیم وزمانهای نمونه برداری می تونیم ست پوینت یاgها رو برای طی مسیر خواسته شده از موقعیت کنونی تا نقطه هدف رو محاسبه کنیم و در هر لحظه یعنی k,k+1,k+.... اعمال کنیم یعنی ست پوینتها در هر لحظه تغییر میکنند و کنترل نیز رساندن میزان خطای gهای درهر لحظه به gهای محاسبه شده است.
امیدوارم دوست عزیز به هدف خود برسه.
با سپاس
جناب مازاروی عزیز!
از اینکه این بحث در این تاپیک به چالش کشیده میشه بسیار خوشحالم و من هم میتونم به هدفم برسم.
با توجه به سوالاتی که مطرح می کنید، یعنی با خود اصل موضوع که آیا با کنترلر Fuzzy-PID کار بشه یا خیر، مشکلی ندارید؟
 

ROBOTICS

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

شما باید خروجی مطلوب را در شبیه سازی ها بدهید

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

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

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

Coronaa

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

اگر به مقالات کنترلی نگاه کنید خروجی های مطلوب پله ، سینوس ، دایره و ... را بررسی می کنند
استراکچر شبیه سازی من در متلب باید به این صورت باشه؟
و اینکه، یک خروجی مطلوب مثل پله رو باید در قسمت Desired Plant قرار بدم تا با خروجی سیستم من مقایسه بشه؟
درست متوجه شدم؟
 

ROBOTICS

کاربر فعال مهندسی رباتیک
استراکچر شبیه سازی من در متلب باید به این صورت باشه؟
و اینکه، یک خروجی مطلوب مثل پله رو باید در قسمت Desired Plant قرار بدم تا با خروجی سیستم من مقایسه بشه؟
درست متوجه شدم؟

ساختمان شما را نمی دانم چیست

اما می دانم که به جای r باید خروجی مطلوب قرار بدهید نه جای دیگر
 

Coronaa

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

یعنی الآن جایی که desired plant قرار داره اشتباهه؟ من میخواستم داخل این بلوک یک تابع تبدیل درجه دو قرار بدم که overshoot تقریبن کمتر از 1 درصد و مثلن rise time کمتر از 0.5 ثانیه باشه (بعنوان خروجی مطلوب). بعد با خروجی سیستم مقایسه بشه که اختلافش میشه همون خطای ما که وارد بلوک فازی میشه!
اینطور نیست؟ آیا روش من اشتباهه؟
 
آخرین ویرایش:

ROBOTICS

کاربر فعال مهندسی رباتیک
ساختاری که میخوام طراحی کنم انقدر هم گنگ نیست که شما نمی دانید!

شما بگو
۱- FLS چیست؟
۲- چگونه FLS ساختار FOPID را تغییر می دهد؟
3- چرا FLS ساختار FOPID را تغییر می دهد؟
۴- Desierd Plant چیست؟

آیا ساختار یک کنترل کننده fuzzy fractional PID به این صورت هست یا خیر؟؟

خیر

یعنی الآن جایی که desired plant قرار داره اشتباهه؟

شما گفتید این ساختار شما است
ساختار کسی اشتباه نیست
هر کسی می تواند برای خودش ساهتار بدهد و اسم خودش را روی ساختار بگذارد
مثلا ساختار جک - ساختار بابک - ساختار جیانگ لی
شما هم ساختار رضا روحی ارئه کردید. در ساختار شما واحدی به نام desired plant وجود دارد و جایش آن جا است. درست و اشتباه ندارد که


من میخواستم داخل این بلوک یک تابع تبدیل درجه دو قرار بدم که overshoot تقریبن کمتر از 1 درصد و مثلن rise time کمتر از 0.5 ثانیه باشه (بعنوان خروجی مطلوب). بعد با خروجی سیستم مقایسه بشه که اختلافش میشه همون خطای ما که وارد بلوک فازی میشه!

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

وقتی هم پایان نامه نوشتید باید خروجی های مطلوب معروف را تک تک قرار دهید و نتایج را بگذارید

خروجی های معروف:

۰- خط راست
۱- بیضی و دایره
۲- مستطیل و مربع
۳- سینوس
۴- هشت لاتین
۵- سیکلوئید

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


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

بستگی دارد به هدفت

اگر هدفت pid فازی باشد ، آری خطا (نه آن خطایی که از خودتان ساختید) باید وارد بلوک فازی شود
اگر هدفت چیز دیگری است باید بنویسید تا بررسی شود که روشتان درست است یا خیر
 

Coronaa

کاربر فعال
شما بگو
۱- FLS چیست؟
۲- چگونه FLS ساختار FOPID را تغییر می دهد؟
3- چرا FLS ساختار FOPID را تغییر می دهد؟
۴- Desierd Plant چیست؟
1- منظور از FLS همون Fuzzy Logic Controller هست که قوانین فازی بصورت GUI نوشته شده و اسم اون فایل در این بلوک قرار میگیره.
2- همانطور که گفتم، ورودی بلوک فازی میشه خطا و خروجی اون میشه ضرایب و مرتبه های PID (یعنی Kp , Ki , Kd , lambda , mu)
3- هدف من از اینکار روش fuzzy-PID بود که بتونم با اینکار عمل self-tuning انجام بدم که ظاهرن هنوز متقاعد نشدین.
4- من مدلی (ربات) که دارم درجه دو هست، پس باید یه مدل مطلوب درجه دوم طراحی کنم با معیارهایی که خودم میخوام. یعنی اوورشوت و رایزتایم کم. که بعنوان پاسخ مطلوب من باشه تا با پاسخ واقعی که در خروجی میگیرم مقایسه بشه و اختلافشون بعنوان خطا وارد بلوک فازی بشه و ضرایب PID تنظیم بشه و این عمل هی تکرار بشه و هی ضرایب PID دقیقتر بشه تا به پاسخ مطلوب برسه. (یعنی خطا به صفر میل کنه).
چیزی که از اول برای طراحی این نوع کنترلر تو ذهنم بود به این صورته. حالا نمیدونم کجاش مشکل داره که شما نمی پذیرید. احتمالن همون چیزی هست که قبلن گفتم. شاید ایده های من و شما فرق داشته باشه.
 

ROBOTICS

کاربر فعال مهندسی رباتیک
1- منظور از FLS همون Fuzzy Logic Controller هست که قوانین فازی بصورت GUI نوشته شده و اسم اون فایل در این بلوک قرار میگیره.

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

درستش می شود

FIS

Fuzzy Inference System

3- هدف من از اینکار روش fuzzy-PID بود که بتونم با اینکار عمل self-tuning انجام بدم که ظاهرن هنوز متقاعد نشدین.

شما کار خودتان را بکنید. اما در نام گذاری دقت کنید.

fuzzy-PID یک چیز دیگر است

چیزی را که توضیح دادید نامش می شود
Reference Model Fuzzy Adaptive Control
RMFAC


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


4- من مدلی (ربات) که دارم درجه دو هست، پس باید یه مدل مطلوب درجه دوم طراحی کنم با معیارهایی که خودم میخوام. یعنی اوورشوت و رایزتایم کم.

شما باید فراجهش (اورشوت) را صفر کنید. نه این که کم کنید


چیزی که از اول برای طراحی این نوع کنترلر تو ذهنم بود به این صورته. حالا نمیدونم کجاش مشکل داره که شما نمی پذیرید.

۰- ابتدا نام گذاری های شکلتان و سپس نام گذاری روشتان باعث شد من جور دیگری فکر کنم. باز هم می گویم در نام گذاری ها دقت کنید. شما یک روش دیگری را توصیح می دهید بعد نام روش دیگری را روش می گذارید!!!

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

احتمالن همون چیزی هست که قبلن گفتم. شاید ایده های من و شما فرق داشته باشه.

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

مشکل شما این است که هنوز معنی سیستم غیر خطی را نفهمیدید.

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

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

Coronaa

کاربر فعال
سعی کن از کلمات رایج برای بلوک هایت استفاده کنیدرستش می شودFIS
این اسمی هست که توی خود سیمولینک متلب بود. من تغییرش ندادم فقط مخففش رو نوشتم.
چیزی را که توضیح دادید نامش می شودReference Model Fuzzy Adaptive Control RMFAC
الآن پس PID کجای کار هست؟
شما یک روش دیگری را توصیح می دهید بعد نام روش دیگری را روش می گذارید!!!
منم از مقالاتی که ارائه شده استفاده میکنم دیگه. از خودم که در نمیارم. هر مقاله ای هم که دیدم به همین صورت بود ساختارش.دوتا مقاله برای شما قبلن فرستاده بودم . من این ساختار رو از اونجا گرفتم. شما هم که نظرتون این بود این مقالات اشتباهه. دیگه منم نمیدونم چیکار کنم!باید بیشتر مطالعه کنم.میشه شما اون ساختاری که برای Fuzzy-PID تو ذهنوتون هست اینجا بذارید یا یه مقاله ای که اون چیزی که شما میگین رو انجام داده باشه معرفی کنید؟ من که هر چی گشتم و دیدم به همون صورت بود!تا اینجا ممنونم از بابت همکاری و راهنماییتون.مرسی
 
آخرین ویرایش:

ROBOTICS

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

بعد از این از اسم های رایج استفاده کن

الآن پس PID کجای کار هست؟

هیچ جای کار

هر چیزی که ضرایب Kp , Ki , Kd داشت که PID نیست

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

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

اگر در آن چیزی که توضیح داید به جای سیستم استنتاج فازی از بلوک غیر فازی استفاده می شد اسمش می شد

Reference Model Adaptive Control
RMAC


در شکلی که شما گذاشتی فقط قسمت تنظیم ضرایب ، فازی بود برای همین دقیقا قبل کلمه اداپتیو باید واژه فازی اضافه کرد

Reference Model Fuzzy Adaptive Control
RMFAC


این اسمس هست که توی خود سیمولینک متلب بود. من تغییرش ندادم فقط مخففش رو نوشتم.

بعد از این از اسم های رایج استفاده کن

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

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

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

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

اثبات یک چیزی به صورت ریاضی از میلیارد ها مقاله بدون اثبات با ارزش تر است
 

Coronaa

کاربر فعال
میشه شما اون ساختاری که برای Fuzzy-PID تو ذهنوتون هست اینجا بذارید یا یه مقاله ای که اون چیزی که شما میگین رو انجام داده باشه معرفی کنید؟
 

ROBOTICS

کاربر فعال مهندسی رباتیک
میشه شما اون ساختاری که برای Fuzzy-PID تو ذهنوتون هست اینجا بذارید یا یه مقاله ای که اون چیزی که شما میگین رو انجام داده باشه معرفی کنید؟

مقاله زیر Fuzzy-PD است

کد:
http://www.iaeng.org/publication/WCECS2007/WCECS2007_pp855-858.pdf

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

مقاله زیر نیز Fuzzy-PD است. اما شکلش کمی ایراد دارد

کد:
http://www.ijcset.net/docs/Volumes/volume1issue6/ijcset2011010610.pdf

بلوک تاخیر اضافه است. همچنین بلوک اسکیل را باید به داخل کنترلر فازی برد. قوانینش را هم بد نوشته. ولی کلیت قوانین همین شکلی است

تذکر: من فقط شکل و قوانین این دو مقاله را نگاه کردم. یعنی خط به خط نخواندم. بنابراین کلیه نوشته هایش را تایید نمی کنم

کنترلر Fuzzy-PID نیز شبیه Fuzzy-PD است با این تفاوت که انتگرال خطا نیز به عنوان ورودی سوم بلوک فازی در نظر گرفته می شود. بنابراین به جای یک جدول قوانین چندین جدول لازم است
 

Coronaa

کاربر فعال
ممنونم.
توی مقاله اولی که از کنترلر PID استفاده کرد که! و ضمن اینکه فقط از خطا و مشتق خطا استفاده کرد!
نکنه بخاطر اینکه انتگرال خطا مقدار ناچیزی هست ازش صرف نظر میکنن. آخه تو بیشتر این ساختارها فقط از همین دو مولفه استفاده میکنن.
 

ROBOTICS

کاربر فعال مهندسی رباتیک
توی مقاله اولی که از کنترلر PID استفاده کرد که! و ضمن اینکه فقط از خطا و مشتق خطا استفاده کرد!
نکنه بخاطر اینکه انتگرال خطا مقدار ناچیزی هست ازش صرف نظر میکنن. آخه تو بیشتر این ساختارها فقط از همین دو مولفه استفاده میکنن.

دو تا کنترلر را مقابسه کرده
یکی PID شکل ۱
دیگری PD فازی شکل ۶

چون PD هست دیگر انتگرال ندارد

در PID نمی شود از انتگرال صرف نظر کرد هر چند کوچک باشد. اگر صرف نظر کنی تبدیل به PD می شود

به طور کلی:
وقتی P جواب می دهد کسی دنبال PD نمی رود
وقتی PD جواب می دهد کسی دنبال PID نمی رود
وقتی PID جواب می دهد کسی دنبال اداپتیو ... نمی رود
وقتی سیستم حطی هست کسی مدل لغرشی نمی زند
وقتی ... کسی ...


گفتم که تمام مقالات ضعف هایشان را نمی گویند و ....
مثلا در همین مقاله (اول) کنترلر P به تنهایی جواب می دهد. ایشان از همین قضیه سو استفاده کرده و ...
رای این که ادعا کند PD فازی اش از PID بهتر کار می کند در تعیین ضرایب PID از قضایای سرانگشتی رفته و نیامده بهترین را انتخاب کند و ...

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

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

Coronaa

کاربر فعال
پس تازه فهمیدم. وقتی می گفتین ساختار شما fuzzy-PID نیست بخاطر عدم وجود انتگرال خطا بود؟ یعنی اگه یه انتگرال خطا به ورودی فازی اضافه کنم و Desired Plant رو حذف کنم که پاسخ مطلوب رو از r(t) بدم، ساختارم درست میشه؟
در شکل 6 که میگین fuzzy-PD هست، چرا خروجی فازی به کنترلر PD داده نشد؟ به نظر من این ساختار یک کنترلر فازی ساده هست و ترکیبی نیست! آخه توی این مقاله هیچ صحبتی از PD نشده و هدف نویسنده مقایسه بین PID و Fuzzy بوده ظاهراً!
 
آخرین ویرایش:

Coronaa

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

ROBOTICS

کاربر فعال مهندسی رباتیک
وقتی می گفتین ساختار شما fuzzy-PID نیست بخاطر عدم وجود انتگرال خطا بود؟

خیر

به علت این که ضرایب Kp , Ki , Kd تغییر می کردند و ثابت نبودند

یعنی اگه یه انتگرال خطا به ورودی فازی اضافه کنم و Desired Plant رو حذف کنم که پاسخ مطلوب رو از r(t) بدم، ساختارم درست میشه؟

ساختار قبلی شما غلط نبود فقط اسمش fuzzy-PID نبود. اسمش Reference Model Fuzzy Adaptive Control بود
روش Reference Model Fuzzy Adaptive Control بسیار بهتر و پیشرفته تر از fuzzy-PID است
همان طور که روش Reference Model Adaptive Control بسیار بهتر و پیشرفته تر از PID است تفاوتشان را در کنترل سیستم های غیرخطی یک به یک و اکیدا صعودی (یا نزولی) متوجه می شوی

اگر شما تغیرات بدهید نام ساختارتان عوض می شود

در شکل 6 که میگین fuzzy-PD هست، چرا خروجی فازی به کنترلر PD داده نشد؟

برای این که نباید به PD داده شود

خروجی کنترلر باید مستقیم به سیستم برود

دقیقا همین کاری که کرده

به نظر من این ساختار یک کنترلر فازی ساده هست و ترکیبی نیست!

دقیقا ساختار یک فازی PD است.

اگر ترکیبی کنی با چیز دیگری، اسمش عوض می شود

تغییر اسم به معنای غلط شدن نیست

آخه توی این مقاله هیچ صحبتی از PD نشده و هدف نویسنده مقایسه بین PID و Fuzzy بوده ظاهراً!

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

انواع اقسام کنترلر فازی وجود دارد. ایشان از روش فازی PD استفاده کرده. می توانست فازی P برود. می توانست فازی PID برود. می توانست فازی حلقه باز برود و ....

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

تئوری: پیوسته
عملی: گسسته

اصلن فرقی میکنه که با کدوم طراحی کنیم؟

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

Similar threads

بالا