در بسیاری از فرآیندهای صنعتی از کنترل کننده تناسبی ‪ P‬ یا تناسبی مشتق گیر ‪ ،PD‬تناسبی‬‫انتگرال گیر ‪ PI‬ و یا کنترل کننده تناسبی– مشتق گیر– انتگرال گیر ‪ ،PID‬به عنوان ساختار‬‫اصلی کنترل کننده استفاده می شود.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬ ‫هدف از استفاده از حلقه فیدبک و کنترل کننده را می توان بصورت زیر خلاصه کرد:

  • ‫پایداری داخلی‬ ‫

  • دنباله روی از فرمان ورودی (‪(tracking‬‬ ‫

  • تضعیف اغتشاش‬

  • ‫کاهش نویز‬ ‫

  • عدم حساسیت به تغییرات فرآیند‬ ‫

جالب است که تقریبا در کلیه فرآیندهای صنعتی ساختار ساده کنترل کننده ‪ PID‬ تمام‬‫نیازهای فوق را برآورده می سازد. حتی در برخی از موارد کنترل کننده ‪ PI‬ نیز کافی است. در‬‫حالت کلی می توان بیان کرد که کنترل کننده ‪ PI‬ برای فرآیندهایی که برای سیستمهایی که با‬‫مدل درجه یک تقریب زده می شوند، کافی است. ‫در برخی موارد کنترل کننده ‪ PID‬ کافی نمی باشد. این موارد را می توان به صورت زیر خلاصه‬‫ نمود :‬

  • ‫فرآیندهای با دینامیک رتبه بالاتر از دو‬

  • ‫سیستمهای با تأخیر زیاد‬ ‫

  • سیستمهای دارای صفر ناپایدار یا سیستمهای غیر مینیمم فاز‬

  • ‫حذف فرکانسهای خاص در خروجی (فیلتر ناچ ‪(Notch filter‬‬

در این مقاله ساختار یک کنترل کننده PID و اثر هر یک از پارامترهای آن بر پاسخ خروجی بررسی می شود. فرآیند کنترل شده مطابق مدار حلقه بسته زیر را در نظر بگیرید:‬

feedback_block کنترل کننده PID ‬ ‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬

خروجی کنترل کننده PID بصورت زیر می باشد:

1

‫متغییر e که نشان دهنده خطای ردیابی است، تفاوت میان مقدار خواسته شده (r) و مقدار واقعی خروجی(y) می باشد.سیگنال خطا وارد کنترل کننده می شود و مقدار مشتق و انتگرال آن محاسبه می شود و سپس سیگنال کنترلی u با ضریبی از سیگنال خطا (kp)،ضریبی از انتگرال خطا (ki)و ضریبی از مشتق خطا (kd) محاسبه می شود. کنترل کننده ‪ PID‬ از جمع‬ ‫سه ترم تشکیل شده است:

  • ‫ترم تناسبی ‪ : P‬که فرمان کنترل متناسب با میزان خطا و با بهره ‪ kp‬تقویت می شود.‬
  • ‫ترم مشتق گیر ‪ : D‬که فرمان کنترل متناسب با نرخ تغییرات خطا و با بهره ‪ kd‬تقویت می شود.‬
  • ترم انتگرال گیر ‪ : I‬فرمان کنترل متناسب با ‬‫انتگرال این تابع و با بهره ‪ ki‬تقویت می شود.‬

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

کنترل کننده PID آموزش تخصصی سمولینک

در نرم افزار Matlab تابع انتقال کنترل کننده را می توان  بصورت مستقیم تعریف کرد:

Kp = 1;
Ki = 1;
Kd = 1;

s = tf('s');
C = Kp + Ki/s + Kd*s

همچنین می توان از دستورpid نیز استفاده کرد:

C = pid(Kp,Ki,Kd)

حال اجازه دهید تاثیر هریک از این پارامترها را بر پاسخ سیستم توضیح دهیم.‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬ بهره تناسبی (kp) باعث کاهش زمان rise time شده ولی خطای دائم را از بین نمی برد. بهره انتگرال گیر (ki) خطای دائم را به ازای ورودی پله از بین می برد ولی باعث کند شدن پاسخ سیستم می شود. بهره مشتق گیر (kd) باعث کم شدن overshoot ، افزایش پایداری و همچنین سریعتر شدن پاسخ سیستم می شود. تاثیر هریک از پارامترهای کنترل کننده را بصورت خلاصه در جدول زیر می توان مشاهده کرد:

CL RESPONSE

RISE TIME

OVERSHOOT

SETTLING TIME

S-S ERROR

Kp

Decrease

Increase

Small Change

Decrease

Ki

Decrease

Increase

Increase

Eliminate

Kd

Small Change

Decrease Decrease

No Change

 

توجه داشته باشید که جدول بالا دقیقا صحیح نیست چون پارامترها به یکدیگر وابسته اند و ممکن است با تغییر یکی تاثیر دیگری نیز تغییر کند.

مثال: فرض کنید تابع انتقالی بصورت زیر داشته باشیم:

آموزش صفر تا صد Matlab کنترل کننده PID

با دستور زیر پاسخ حلقه باز سیستم را به ورودی پله رسم می کنیم:

s = tf('s');
P = 1/(s^2 + 10*s + 20);
step(P)

 

Introduction_ControlPID_01

 

 

همان طور که مشخص است، خطای حالت دائم 0.95 و همچنین سیستم بسیار کند است.

کنترل کننده تناسبی:

همان طور که جدول بالا نشان می دهد، ترم تناسبی باعث کاهش rise time، افزایش overshoot و کاهش خطای حالت دائم می شود.تابع انتقال حلقه بسته سیستم بالا با ترم تناسبی بصورت زیر است:

کنترل کننده PID

با قرار دادن ترم تناسبی برابر 300 با دستور زیر پاسخ حلقه بسته سیستم را به ورودی پله رسم می کنیم:

Kp = 300;
C = pid(Kp)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)

 

Introduction_ControlPID_02

همان طور که شکل بالا نشان می دهد، ترم تناسبی باعث کاهش rise time، افزایش overshoot و کاهش خطای حالت دائم شده است.

کنترل کننده تناسبی- مشتق گیر:

حال بیایید نگاهی به کنترل کننده PD بیاندازیم.همان طور که دیدیم ترم مشتق گیر باعث کاهش overshoot و همچنین settling time می شود. تابع انتقال حلقه بسته سیستم بالا با ترم PD بصورت زیر است:

شبیه سازی مقاله متلب

با قرار دادن ترم تناسبی برابر 300 و ترم مشتق گیر برابر 10 با دستور زیر پاسخ حلقه بسته سیستم را به ورودی پله رسم می کنیم:

Kp = 300;
Kd = 10;
C = pid(Kp,0,Kd)
T = feedback(C*P,1)

t = 0:0.01:2;
step(T,t)

 

Introduction_ControlPID_03

همان طور که مشخص است ترم مشتق گیر باعث کاهش overshoot و همچنین settling time شده است و همچنین تاثیر کمی بر rise time و خطای حالت دائم داشته است.

کنترل کننده تناسبی-انتگرال گیر- مشتق گیر:

تابع انتقال حلقه بسته سیستم بالا با ترم PID بصورت زیر است:

6

بعد از چند بار سعی و خطا مقادیر زیر برای پاسخ مناسب در نظر گرفته شد:

Kp = 350;
Ki = 300;
Kd = 50;
C = pid(Kp,Ki,Kd)
T = feedback(C*P,1);

t = 0:0.01:2;
step(T,t)

 

Introduction_ControlPID_04

همان طور که مشخص است پاسخ هیچ overshoot و خطای حالت دائمی ندارد و همچنین دارای rise time سریعی می باشد. نرم افزار Matlab دارای ابزاری بنام pidtool می باشد که خیلی راحت می توان یک کنترل کننده PID را بصورت گرافیکی تنظیم کرد.با دستور زیر که پارامتر اول آن تابع انتقال سیستم و پارامتر دوم نوع کنترل کننده را مشخص می کند،می توان وارد محیط PID Tuner شد:

pidtool(P,C)

 

pid-tuner

1)در این قسمت نوع طراحی مشخص می شود(براساس زمان پاسخ یا بر اساس پهنای باند و…)

2)در این قسمت نوع کنترل کننده مشخص می شود.

3)در این قسمت نمایش پاسخ در محدوده زمان یا در محدوده فرکانس(Bode) مشخص می شود.

4)در این قسمت منحنی انتخاب می شود.

5)در این قسمت مقادیر پارامترهای کنترل کننده مشخص می شود.

6)در این قسمت مشخصات پاسخ دیده می شود.(مقدار overshoot،rise time و…)