بلوک کنترل PID در سیمولینک
به نام خدا و سلام.
به جلسه چهاردهم از سری جلسات آموزش سیمولینک خوش آمدید. آموزش رایگان سیمولینک و متلب از وبسایت متلبپلاس ارائه میشود. در سیزده جلسه گذشته انواع مختلف بلوکهای سیمولینک معرفی شد. برای دانلود آموزش سیمولینک از منوی سمت راست 👉 لیست این صفحه اقدام نمائید. در این جلسه قصد داریم به معرفی بلوک PID و نحوه استفاده از آن در سیمولینک بپردازیم. در ادامه با جزئیات این بلوک بطور کامل آشنا میشویم.
با متلبپلاس همراه باشید.
بلوک PID در سیمولینک
یک کنترلر تناسبی-انتگرالی-مشتقی (Proportional-Integral-Derivative) یک حلقه کنترلی است که از بازخورد (فیدبک) سیستم استفاده کرده و رفتار آن را بهبود میبخشد. کنترلر PID به طور گسترده در سیستمهای کنترلی صنعتی استفاده میشود. از نظر عملی، کنترلر PID به طور خودکار یک تصحیح دقیق و پاسخگو را به یک تابع کنترلی اعمال میکند. یک مثال روزمره، کروز کنترل یک خودرو است. در کروز کنترل خودرو بسته به شرایط جاده، کنترلر با تغییر توان سرعت حرکت را ثابت نگه میدارد.
همان گونه که میدانید PID یکی از انواع کنترلرهای خطی است. منظور از طراحی کنترلر PID، محاسبه مقدار دقیق ضرایب این کنترلر براساس شرایط سیستم و خروجی موردنظر است. این فرآیند بسیار دقیق و طولانی بوده و انجام محاسبات آن بصورت دستی کاری طاقت فرساست. اما به کمک بخش PID Tuner سیمولینک، میتوان براحتی و در کسری از ثانیه یک کنترلر PID طراحی نمود. در ادامه ابتدا بلوک PID و نحوه استفاده از آن شرح داده میشود. پس از آن نیز اشارهای به نحوه استفاده از ابزار PID Tuner خواهیم داشت.
مطابق تصویر زیر، بلوک PID را میتوانید در کتابخانه سیمولینک و دربخش Continuous مشاهده کنید.
پس از اضافه کردن این بلوک به مدل، اگر روی آن دابل کلیک کنیم با شکل زیر مواجه خواهیم شد. در این تصویر به مهمترین تنظیماتی که در بلوک کنترل PID سیمولینک داریم اشاره شده است.
در بالای تصویر دیده میشود که امکان انتخاب نوع کنترلر برای ما وجود دارد. در واقع این بلوک میتواند کنترلرهای PID، PI، PD، P و I را ایجاد کند. با کلیک بر روی بخش Controller میتوان کنترلر موردنظر را از لیست انتخاب نمود. دقت کنید که با تغییر نوع کنترلر، ظاهر بخش ضرایب و فرم کنترلر نیز تغییر میکند. مطابق تصویر زیر.
در تصویر جزئیات بلوک PID بخش طراحی کنترلر (که با کادر آبی رنگ مشخص شده) نیز دیده میشود. در صورتی که بخواهیم متلب با استفاده از تیونینگ خود بهترین ضرایب را بدست آورد روی گزینه Tune کلیک میکنیم. در غیراینصورت میتوانیم ضرایب دلخواه خود را در بخش بالایی آن وارد کنیم. در نهایت با کلیک برروی گزینه OK ضرایب اعمال میشوند.
برای درک بهتر از نحوه استفاده و پیادهسازی کنترلر روی یک سیستم، به مثال زیر دقت کنید.
حل مثال از کنترلر PID در سیمولینک
در این مثال نحوه پیادهسازی یک کنترلر PID و اهمیت استفاده از آن را شرح میدهیم. ابتدا یک سیستم دینامیکی ساده با تابع حالت زیر درنظر میگیریم.
باتوجه به مکان قرارگیری قطب، میدانیم که این سیستم ناپایدار است. برای ایجاد این سیستم در سیمولینک از بلوک Transfer Fcn استفاده میکنیم. در جلسه دوازدهم آموزش کامل استفاده از بلوک Transfer Fcn در سیمولینک ارائه شد (برای مشاهده روی لینک قرمز بزنید). سپس یک ورودی پله بعنوان ورودی به این سیستم داده و خروجی آن را بررسی میکنیم. برای مشاهده نمودار خروجی نیز یک بلوک Scope به مدل اضافه میکنیم. در نهایت مدل بصورت زیر خواهد بود.
پس از اجرای این مدل و کلیک برروی بلوک Scope نمودار خروجی را خواهیم داشت:
همانطور که در تصویر فوق دیده میشود، پاسخ زمانی سیستم با افزایش زمان، به سمت بینهایت میل میکند. در نتیجه ناپایداری سیستم مشهود است. حال کنترلر PID را بصورت زیر به سیستم اضافه میکنیم. مدل بصورت زیر خواهد شد.
توجه داریم که علامت بلوک Sum برای فیدبک بایستی منفی باشد. ضرایب کنترلر PID نیز بطور حدس و خطا به ترتیب برابر با 40، 20 و 10 درنظر گرفته میشود. مطابق شکل زیر.
پس از اجرای این مدل و کلیک برروی بلوک Scope نمودار خروجی را خواهیم داشت:
همانطور که مشاهده میکنید سیستم پایدار شده و رفتار آن حول مقدار یک نوسان ناچیزی دارد. با مقایسه این نمودار با نمودار پاسخ در حالت بدون کنترلر، اهمیت وجود یک کنترلر در سیستم به خوبی درک میشود.
تیونینگ بلوک PID در سیمولینک (PID Tune)
در تصاویر ابتدای این جلسه هنگامی که صفحه جزئیات بلوک PID در سیمولینک معرفی شد، بخش Tune با کادر آبی مشخص شد. این ابزار (PID Tuner) یک محاسبهگر بسیار پیشرفته و سریع ضرایب کنترلر PID است. با استفاده از این ابزار میتوان در لحظه اثر تغییر هریک از ضرایب کنترلر را روی پاسخ نهایی سیستم مشاهده کرد. برای درک کاربرد این ابزار و آشنایی با نحوه راه اندازی آن، مثال قبل را درنظر بگیرید. در این مثال که یک سیستم کنترلی ساده را تشکیل میدهد، ضرایب کنترلر بصورت زیر تعریف شده بود.
این ضرایب کاملا دلخواه و بصورت حدس و خطا درنظر گرفته شده بود. حال میخواهیم از ابزار PID Tuner برای تعیین این ضرایب استفاده کنیم و اختلاف پاسخ سیستم را ببینیم. برای این کار در صفحه جزئیات بلوک PID روی گزینه Tune کلیک میکنیم. مطابق شکل زیر.
پس از کلیک روی Tune یک پنجره جدید به نام PID Tuner مطابق شکل زیر باز خواهد شد.
با تغییر ماژولهای بالای این پنجره میتوان رفتار سیستم را در لحظه تحلیل کرد. با تغییر این اهرمها، ضرایب و در نتیجه پاسخ سیستم تغییر میکند. به همین راحتی میتوان بهترین رفتار سیستم را بدست آورد. همچنین این ابزار بطور پیشفرض یک رفتار بهینه از سیستم ارائه میکند. نمودار این رفتار روی نمودار اولیه رسم شده و اختلاف آنها به وضوح دیده میشود. با کلیک روی گزینه Update Block، ضرایب محاسبه شده به بلوک اصلی در مدل سیمولینک اعمال میشوند. به این ترتیب طراحی یک کنترلر PID بدون انجام هیچگونه محاسباتی به اتمام میرسد.
جمعبندی
جلسه چهاردهم از مجموعه جلسات آموزش تخصصی سیمولینک در اینجا به پایان رسید. در این جلسه با بلوک PID در سیمولینک آشنا شدیم. بلوک PID برای پیادهسازی کنترلرهای PID، PI، PD، P و I بکار میرود. کافیست آن را به مدل اضافه کرده و نوع کنترلر را انتخاب کنیم. ضرایب کنترلر نیز میتوان بصورت دستی به سیمولینک وارد شده و یا بصورت خودکار محاسبه شود. در مثال اول، یک کنترلر PID ارائه شد که ضرایب آن بصورت دستی مشخص و وارد شد. در ادامه ابزار PID Tuner معرفی شد که به کمک آن میتوان محاسبات ضرایب را به سیمولینک واگذار کرد. این ابزار بسیار پرکاربرد و قدرتمند بوده و در کسری از ثانیه میتواند یک کنترلر PID را طراحی کند. کار با این ابزار گرافیکی بسیار ساده و لذتبخش است و در مثال دوم به آن پرداخته شد.
بدلیل کاربرد فراوان کنترلر PID، توصیه میشود که مباحث این جلسه را بطور کامل و دقیق مطالعه کنید. هدف تیم متلب پلاس ارائه محتوای آموزشی درجه یک برای شما عزیزان است. اگر سوال و ابهامی درباره مباحث این جلسه دارید در بخش نظرات (پایین همین صفحه) به ما بگید. از فهرست سمت راست👉 هم میتونید به محتوای بقیه جلسات آموزش سیمولینک متلب دسترسی داشته باشید.
6 Comments
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام و وقت بخیر_ جلسات را با دقت مطالعه نمودم و بسیار هم مفید بودند
بسیار متشکرم استاد گرامی
ممنون از اینکه نظرتون رو با ما به اشتراک گذاشتید.
موفق باشید
سلام و با تشکر از زحمات شما. عالی بود.
با سلان و عرض ادب
ممنون از اینکه نظرتون رو با ما به اشتراک گذاشتید.
موفق باشید.🙏
سلام…بدست اوردن ضرایب PID با ستفاده از Tuner خیلی کاربردیه ولی ضریب N که میده چی هست؟؟
آیا برای اعمال کنترلر PID از این ضریب هم استفاده میشه؟؟
سلام و عرض ادب
این ضریب فقط در تیونر متلب وجود داره و طبق اطلاعاتی که خود نرم افزار متلب به ما میده، N ضریب فیلتر هست و در رابطه PID هم شما میتونید نقش این ضریب رو به وضوح ببینید.
اگر به تصاویری که از محیط متلب در همین صفحه گذاشتیم دقت کنید، نام و فرمول N رو میتونید ببینید.
موفق باشید.