در این نوشتار، ضمن آشنایی با پارامترهای کنترلکننده PID و کاربرد هر یک از این پارامترها، به معرفی مرحله به مرحله تیونینگ کنترلرهای PID و نحوه پیادهسازی آن در اتوماسیون پروژههای صنعتی هم در زمان راهاندازی و هم در دوره بهرهبرداری میپردازیم. همچنین استفاده از روش زیگلر-نیکولز در تیونینگ سیستمهای کنترلی حلقهبسته را بهصورت عملی شرح خواهیم داد.
در صورتی که تمایل دارید تا به جای مطالعه موارد زیر، فیلم آن را ببینید، ویدئوی زیر از کانال آپارات “مسیر مهندسی” را مشاهده نمایید:
مقدمه:
در نوشتار مربوط به سیستمهای کنترل حلقه بسته یا Closed Loop Control Systems، با ارائه مثالی از نحوه کنترل اتوماتیک سطح آب داخل یک مخزن، به معرفی مفاهیم و اجزای مختلف یک حلقه کنترلی پرداختیم.
مطالعه نوشتار مذکور در سایت ما، کمک زیادی به مفیدتر بودن این مقاله آموزشی، برای شما عزیزان “مسیرمهندسی” خواهد نمود.
*** در صورت تمایل به مشاهده نوشتار “سیستمهای کنترل حلقه بسته”، اینجا کلیک نمایید. ***
شکل زیر یک حلقه کنترل PID استاندارد را نمایش میدهد. E یا Error یا خطای سیستم معادل اختلاف بین PV (Process Variable و SP (Set Point) میباشد.
فانکشن کنترلر PID استاندارد که مجموع سه عملکرد تناسبی، انتگرالی و مشتقگیر P(Proportional) + I (Integral) + D (Derivative) میباشد را به صورت U(t) یا خروجی کنترلر برابر است با حاصلضرب بهره کنترلی Kc در مجموع (خطای سیستم یا e(t) و عکس ثابت زمانی انتگرالگیر (Ti) ضرب در انتگرال خطا و نهایتا ضرب ثابت زمانی مشتقگیر (Td) در مشتق خطای سیستم) در نظر میگیریم.
بنابراین قدم اول در تنظیم کنترلر، این است که با مراجعه به Instruction Manual و یا Help سیستم کنترل با فرمول استفاده شده در آن آشنا شوید تا در ادامه مراحل تیونینگ با خطا مواجه نشوید.
استفاده میکنیم و بنابراین شما باید بر اساس فرمول استفادهشده در کنترلر خودتان، مقادیری که ما به دست میآوریم را متناظرا تبدیل به اعداد تعریف شده در آن بنمایید.
مرحله دوم، تعیین جهت کنترلر:
و اما مرحله دوم، مشخص کردن جهت عملکرد کنترلر میباشد:
اگر در زمانهایی که PV بزرگتر از SP و افزایشی میباشد، برای اصلاح آن، نیاز به افزودن خروجی کنترلر باشد، کنترلر را Direct Acting می گوییم. مثلا وقتی مانند تصویر سمت چپ شکل زیر، کنترل سطح یک مخزن را با شیرکنترلی در خروجی آن کنترل میکنیم، برای مقادیر PV یا سطح واقعی مایع در تانک که بالاتر از SP باشد، شیرکنترل خروجی باید میزان بیشتری باز نماید تا PV به سمت SP برگشت نماید.
برعکس عملکرد فوق، برای Reverse Acting میباشد که در همان کنترل سطح مخزن، اینبار اگر شیرکنترل در مسیر آب ورودی به تانک قرار داشته باشد، مشابه تصویر سمت راست در شکل فوق، وقتی PV یعنی سطح واقعی مایع داخل مخزن از SP بیشتر شود، شیرکنترل ورودی مخزن بایستی که آب کمتری را تزریق نماید.
بنابراین به عنوان دومین قدم در تیونینگ، بر اساس آرایش تجهیزات و فرایند مربوطه مقدار پارامتر مربوط به Dir/Rev را بر روی کنترلر، برنامه PLC یا فانکشن بلاک مربوطه در DCS مشخص نمایید.
قدم سوم، اطمینان از صحت Set -Point:
قدم سوم این است که از صحت SP درج شده در کنترلر، اطمینان حاصل نمایید تا چنانچه کنترلر قبل از اتمام تیونینگ سهوا یا به هر دلیلی در شرایط Auto قرار گرفت، وضعیت ناخواستهای را شاهد نباشید.
به عنوان مثال مشاهده شده در یک حلقه کنترل فشار که SP مطلوب ۴۰ bar بوده است، به علت اینکه کنترلر از زمان تنظیمات کارخانه، با SP صفر تنظیم شده بوده است، به محض قرار دادن کنترلر در شرایط اتوماتیک، خروج اضطراری واحد را باعث شده است.
قدم چهارم، تخمین پارامترهای اولیه:
در این مرحله، ما سعی خواهیم نمود تا تخمین اولیهای از پارامترهای Kc, Ti, Td داشته باشیم. داشتن اعداد اولیه به این معناست که سیستم، تیونینگ مقدماتی شده است، اما در ادامه نیاز به تیونینگ نهایی وجودخواهد داشت. در هر صورت عدم دسترسی به اعداد اولیه تیونینگ، ممکن است کار تیونینگ شما را دچار تاخیر بسیار زیاد و حتی عدم توفیق در حصول نتیجه بنماید.
به چند روش مختلف میتوان به اعداد مقدماتی تیونینگ دسترسی پیدا کرد:
۱- سازندگان پکیجها، بر اساس تجربیات خود از پکیجهای مشابه قبلی راهاندازی شده خود، اعداد اولیه برای ضرایب لوپهای کنترلی بخشهای مختلف سیستم خود را در مدارک مهندسی پکیج ارائه میکنند.
۲- طراح سیستم با استفاده از مدلینگ سیستم، پارامترهای اولیه P و I و D را توسط نرمافزاری مثل MATLAB محاسبه نموده و در مدارک مهندسی پروژه ارائه مینماید.
۳- اگر سیستم کنترل شما از فانکشن Auto Tuning پشتیبانی میکند، استفاده از آن میتواند اعداد اولیه تیونینگ را در اختیار شما قرار دهد.
۴- استفاده از روش های متداول شناسایی پارامترهای اولیه که رایجترین و کاربردیترین روش در این زمینه، روش زیگلر-نیکولز میباشد. به گونهای که امروزه مهندسان زیادی در کشور خودمان هم در زمان راهاندازی سیستمهای مختلف از روش زیگلر-نیکولز (Ziegler-Nichols Method) استفاده مینمایند و ما در ادامه این روش مفید را شرح خواهیم داد:
برای انجام این روش، ابتدا کنترلر را در شرایط فقط تناسبی قرار دهید. یعنی ضمن حفظ Kc بر روی یک عدد منطقی (مثلا ۴ در مثال ما)، Ti را در بیشترین مقداری که در سیستم میتوان تعریف نمود (مثلا ۹۹۹) و Td را هم معادل صفر قرار دهید.
حال با ایجاد مقدار کمی اختلاف بین SP و PV، برای نخستین بار کنترلر را در شرایط اتوماتیک قرار دهید.
چنانچه با فرایند مربوطه و شرایط اضطراری آن آشنایی ندارید، از یک اپراتور خبره بخواهید که در کنار شما باشد تا چنانچه مورد غیرقابل پیشبینی حادث شد، بلافاصله با Manual نمودن کنترلر، سیستم را در اختیار وی قرار دهید تا به صورت دستی اوضاع را کنترل و شرایط را مجددا نرمال نماید.
حال با کم و زیاد نمودن Kc، به شرایطی باید برسید که PV با یک دامنه ثابت نوسان نماید. توجه کنید که اگر نوسان به صورت کاهشی باشد، باید Kc را بیشتر نمایید (مثلا Kc را از ۴ به ۸ تغییر بدهید) و اگر نوسان به صورت افزایشی باشد، باید Kc را کمتر نمایید (مثلا آن را برابر ۶ قرار بدهید) تا به عدد مناسب برای Kc برسید که موجب نوسان با دامنه ثابت بشود.
در این حالت، مقدار عددی Kc را به عنوان Ku یادداشت میکنیم و زمان تناوب نوسان ایجادشده سینوسی را نیز به عنوان Tu یادداشت مینماییم. سپس کنترلر را مجددا Manual نموده و در اختیار بهرهبردار قرار دهید.
اکنون بسته به نوع کنترلی که میخواهیم داشته باشیم، از جدول زیر مقادیر Kc و Ti و Td را محاسبه نموده و در سیستم وارد میکنیم.
بدیهی است که شما بایستی یکی از دو کنترلر PI و یا کنترلر PID را استخراج و استفاده نمایید و امروزه با استفاده از سیستمهای دیجیتالی، استفاده از کنترلر P تنها، دیگر منسوخ شده است.
چنانچه مراحل گفته شده را به درستی انجام داده باشید، با قرار دادن کنترلر در حالت اتوماتیک از حصول نتیجه شگفتزده خواهید شد.
و اما سوال مهمی که حتما برای خیلی از شما پیش میآید این است که اگر جهت مهیا نمودن نوسان برای روش زیگلر-نیکولز، شرایط فرایند تحت کنترل، اجازه نوسان در سیستم را ندهد، چگونه باید شرایط خواسته شده در این روش را ایجاد نمود؟
در این صورت چنانچه به سایر روشهای دستیابی به پارامترهای اولیه PID دسترسی ندارید، روش کار به این صورت است که روش زیگلر نیکولز را تا جایی که سیستم تحت کنترل به شما اجازه میدهد، ادامه دهید و زمانی که احساس کردید که هنوز باید Kc را افزایش دهید تا نوسان شما از حالت کاهشی به حالت ثابت برسد، اما دامنه نوسان بیشتر برای بهرهبردار قابل تحمل نیست، ادامه کار را برآورد نمایید.
در واقع با تغییراتی که در مقادیر کمتر Kc داشتهاید و اثر تغییرات در دامنه و پریود نوسان، یک برآورد تقریبی نموده و اعداد Ku و Tu را بر اساس آن درج نمایید. میدانید که یکی از ویژگیهای هر مهندس خوبی، انجام برآورد نزدیک به واقعیت بر اساس حداقل اطلاعات مورد نیاز میباشد.
در هر صورت بدون نگرانی، برآورد خود از Ku و Tu را با توضیحات فوق انجام و در جدول قرار دهید تا اعداد Kc و Ti و Td را استحصال و در کنترلر PID درج نمایید. سپس کنترلر را در حالت اتوماتیک قرار داده و نتیجه را ببینید. ممکن است خیلی از رفتار کنترلر در این حالت راضی نباشید، اما جای نگرانی نیست و با همین شرایط به مرحله بعدی بروید.
مرحله پنجم، تیونینگ نهایی:
اما مرحله پنجم که جذابترین مرحله و مرحله نهایی تیونینگ میباشد Fine Tuning نام دارد.
مجددا تاکید میشود که اگر با بهرهبرداری سیستم تحت کنترل آشنایی کافی ندارید، از یک بهرهبردار خبره در کنار خود استفاده نمایید.
حال بایستی با توجه به رفتار سیستم و خصوصیات هر یک از سه پارامتر ذکرشده، تیونینگ خود را نهایی کنید. الویتتان را به ترتیب Kc و Ti و سپس Td در نظر بگیرید. در ادامه با خصوصیات هر یک از سه پارامتر P و I و D آشنا میشویم.
بهره کنترلی Kc یا Control Gain، رکن اصلی هر کنترلری میباشد و شما در صنعت عموما هیچ کنترلری را بدون ضریب تناسبی یا بهره کنترلی نخواهید دید.
کاربرد اصلی بهره کنترلی در تنظیم سرعت سیستم می باشد، به این معنا که اگر Kc افزایش یابد، موجب افزایش سرعت سیستم میشود. اما افزایش بیش از حد آن، غالبا به overshoot بزرگی منجر می شود. همچنین نقطه ضعف اصلی این فاکتور، عدم توانایی در حذف خطای حالت دائمی میباشد.
و اما کاربرد اصلی پارامتر انتگرالی در کنترلرهای PI و PID، در حذف خطای حالت دائمی سیستم و تا حد زیادی افزایش پایداری می باشد. افزایش ثابت زمانی انتگرالگیر Ti، موجب کاهش سرعت پاسخ کنترلر از یک سو و کاهش overshoot از سوی دیگر می شود. اما غالبا با وجود پارامتر انتگرالگیر، چنانچه سیستم پایدار بماند، خطای حالت دائمی نهایتا صفر خواهد شد.
و بالاخره پارامتر مشتقگیر که بر اساس شیب افزایش یا کاهش خطا عمل مینماید، با دارا بودن خاصیت پیش بینی روند آتی خطا بر اساس شیب آن، در کنترلرهای PID در مواردی که داشتن سرعت بالا توامان با کمینه نمودن Overshoot سیستم الزامی است، می تواند کاربردی باشد. افزایش ثابت زمانی مشتق گیر Td در کنترلر PID، موجب کاهش و حتی حذف Overshoot و در نتیجه رسیدن سریعتر سیستم به حالت دائمی می شود.
اما نقطه ضعفهای مشتقگیر، یکی این است که با کمترین نویز در سیستم دچار خطا شده و موجب نوسانات ریز در خروجی کنترلر و بنابراین کاهش عمر مفید تجهیزات سیستم خصوصا اکچوایتر شده و دوم اینکه امکان ناپایدار شدن سیستم را افزایش میدهد.
در نظر داشته باشید با توجه به اینکه Kc در همه عوامل تناسبی، انتگرالی و مشتقگیر ضرب میشود، چنانچه مثلا سرعت را میخواهید افزایش دهید و موجب Overshoot بالایی میشود، به جای تغییر آن Ti را کاهش دهید و یا Td را کمی افزایش دهید.
اگر به هر دلیلی، سعی و خطای شما منجر به شرایط کلا نامناسبی شد، مجددا به اعداد اولیه برگشته و تغییرات را با دقت بیشتری اعمال نمایید و آنقدر این کار را ادامه بدهید تا نتیجه ایدهآل حاصل شود. برخی لوپها ممکن است که شما را اذیت کنند که در اینصورت چنانچه دچار خستگی شدهاید ادامه کار را به روز دیگری موکول نموده و مجددا با اعصاب راحت، ضمن بازنگری مراحل قبلی جهت رفع اشتباهات احتمالی خود، تیونینگ را تا حصول نتیجه نهایی ادامه دهید و مطمئن باشید که با ممارست هر حلقه کنترلی را خواهید توانست با بهترین شرایط اتوماتیک نمایید.
با توجه به موارد گفتهشده، استفاده از کنترلر PI بیشتر رایج میباشد. با اینحال در مواردی که برای فاینال تیونینگ در دوره راه اندازی عجله دارید، استفاده از PID جهت تسریع تیونینگ مناسب است اما به دلیل اینکه ممکن است در تغییرات و تلاطمات سیستم، موجب ناپایداری زودهنگام سیستم شود، بهتر است در اولین فرصت مناسب نسبت به تیونینگ مجدد با حذف یا کاهش حداکثری Td اقدام نمایید.
لازم به ذکر است که اگر در پروژهای کار میکنید که چندین واحد مشابه دارد، پس از اتوماتیک نمودن حلقههای کنترلی واحد نخست، اعداد نهایی حاصل از تیونینگ واحد نخست، میتواند به عنوان اعداد اولیه تیونینگ واحد(های) بعدی لحاظ شود. توجه کنید که هیچ دو سیستمی را نمیتوان یافت که عینا مثل هم باشند و سیستمهای مشابه نیز همچون فرزندان بشر، قطعا تفاوتهایی در دینامیک خود داشته و بنابراین پارامترهای PID که در یک واحد عملکرد ایدهآلی دارد، لزوما در واحد مشابه بعدی همان شرایط را نخواهد داشت.
جمعبندی:
مهندسان عزیز، مواردی که ارائه شد، اصول و کلیات تئوری و تجربیات عملی در خصوص حلقه کنترل PID استاندارد به زبان ساده و عملی بود. فراموش نکنید که در کنار تمامی موارد ذکرشده، اینترلاکها یا به عبارتی لاجیک مرتبط با حلقه کنترلی مربوطه را تحت نظر داشته باشید.
همچنین لازم به یادآوری است که چنانچه دینامیک نامتعارف و غیرخطی سیستمی، موجب شود تا در پیادهسازی موارد گفتهشده دچار سردرگمی شوید، با پشتکار و تلاش و مطالعه بیشتر مبانی و جزئیات کنترل خطی و کنترل صنعتی، راههای دیگری خواهید یافت که سعی ما نیز بر همراهی با شما در نوشتارهای بعدی سایت “مسیرمهندسی” در این زمینه و موارد تکمیلی از جمله کنترل نسبت یا Ration Control، کنترل زنجیرهای یا Cascade Control و سایر مفاهیم از جمله اغتشاش و Feed Forward میباشد.
4 ديدگاه
setare
بسیار عالی سپاسگزارم
admin
ممنون. موفق باشید.
حمید
با سلام .
خسته نباشید مهندس بزرگوار
فوق العاده عالی و کاربردی بود
admin
سلام جناب مهندس. ممنون از توجه شما.