در PLCهای زیمنس سری S7-300 و S7-400، یکی از راهکارهای استاندارد برای پیادهسازی کنترلر PID، استفاده از بلوک FB41 با نام CONT_C است.
اما
برای استفاده صحیح از
FB41،
ابتدا باید بدانیم
PID چیست، یک حلقه کنترل چگونه کار میکند و چرا
تنظیم صحیح کنترلر در عملکرد یک واحد صنعتی اهمیت دارد.
در این مقاله ابتدا مفهوم PID را بررسی میکنیم، سپس یک مثال واقعی از کنترل فرآیند ارائه میدهیم و در ادامه به سراغ FB41 و نحوه استفاده مهندسی از آن در پروژههای STEP 7 میرویم.
PID چیست؟
PID مخفف
سه عبارت زیر است: Proportional – Integral – Derivative یا به فارسی: تناسبی – انتگرالی – مشتقی
کنترلر PID وظیفه دارد اختلاف بین مقدار مطلوب یک فرآیند و
مقدار واقعی آن را محاسبه کرده و بر اساس این اختلاف، خروجی مناسب را برای تجهیز
کنترلی تعیین کند.
برای درک سادهتر، فرض کنید فشار یک خط فرآیندی
باید روی مقدار مشخصی ثابت بماند.
اپراتور مقدار مطلوب را تعیین میکند:
Setpoint = 65 bar
ترانسمیتر فشار نیز مقدار واقعی فرآیند را
اندازهگیری میکند:
Process Variable = 61 bar
کنترلر این دو مقدار را با یکدیگر مقایسه میکند.
اختلاف بین این دو مقدار همان Error یا
خطای کنترل است:
Error = Setpoint - Process Variable
در این مثال:
Error = 65 - 61 = 4 bar
کنترلر بر اساس این خطا تصمیم میگیرد خروجی خود
را افزایش یا کاهش دهد.
خروجی میتواند به یک تجهیز نهایی مانند:
· Control Valve
· VFD
· Damper
· Heater
· Pump
ارسال شود.
بنابراین ساختار کلی یک حلقه PID به شکل زیر است:
Setpoint → PID Controller → Final Control
Element → Process → Transmitter → PID Controller
این حلقه بهصورت مداوم تکرار میشود تا فرآیند
در نزدیکی مقدار مطلوب باقی بماند.
کاربرد PID در PLC زیمنس چیست؟
سه بخش اصلی PID
برای درک عملکرد FB41،
ابتدا باید سه قسمت اصلی
PID را بشناسیم.
بخش
Proportional یا P
قسمت تناسبی نسبت مستقیمی با خطای فعلی دارد.
هرچه خطای بین SP و PV
بیشتر باشد، اثر بخش P بیشتر خواهد بود.
برای مثال اگر فشار مطلوب 65 bar و فشار واقعی 55 bar باشد، خطای فرآیند زیاد است و بخش P واکنش بیشتری نشان میدهد.
اگر فشار به 64.5 bar برسد، خطا بسیار کمتر شده و اثر بخش P نیز کاهش پیدا میکند.
افزایش بیش از حد Gain میتواند باعث نوسان فرآیند شود.
کاهش بیش از حد Gain نیز میتواند کنترلر را کند کند.
بخش
Integral یا I
گاهی حتی پس از عملکرد بخش P،
مقدار فرآیند دقیقاً روی
Setpoint قرار نمیگیرد.
برای مثال ممکن است Setpoint برابر 65 bar باشد اما فرآیند در 64.2 bar تثبیت شود.
اینجا بخش Integral اهمیت پیدا میکند.
بخش I خطای باقیمانده را در طول زمان در نظر میگیرد
و تلاش میکند خطای ماندگار را کاهش دهد.
به همین دلیل در بسیاری از حلقههای فرآیندی
مانند:
Flow Control
Pressure Control
Level Control
و
Temperature Control
استفاده از PI Controller بسیار رایج است.
بخش Derivative
یا D
قسمت مشتقی به سرعت تغییر خطا توجه میکند.
به بیان ساده، فقط نمیپرسد:
«خطا
چقدر است؟»
بلکه بررسی میکند:
«خطا با
چه سرعتی در حال تغییر است؟»
این ویژگی میتواند در بعضی فرآیندها باعث بهبود
پاسخ کنترلر شود.
اما یک نکته بسیار مهم وجود دارد.
سیگنالهای صنعتی، مخصوصاً سیگنالهای اندازهگیریشده
توسط
Transmitterها، ممکن است دارای Noise باشند.
Derivative نسبت به تغییرات سریع حساس است و بنابراین
استفاده نامناسب از آن میتواند باعث واکنشهای غیرضروری کنترلر شود.
به همین دلیل در بسیاری از حلقههای صنعتی، PI بهجای PID کامل انتخاب میشود.
PID در یک
پروژه واقعی چه چیزی را کنترل میکند؟
PID خودش
شیر، موتور یا پمپ را کنترل نمیکند. PID در واقع تصمیم
کنترلی را تولید میکند. برای مثال در یک حلقه کنترل دما:Temperature
Transmitterمقدار
واقعی دما را اندازهگیری میکند. این مقدار وارد PLC میشود. کنترلر
PID آن را با Setpoint مقایسه میکند.سپس
خروجی
PID میتواند به:
Steam Control Valve
ارسال شود.
بنابراین:
Temperature Transmitter → PID → Steam Valve →
Process
در کنترل سطح:
Level Transmitter → PID → Level Control Valve
و در کنترل دبی:
Flow Meter → PID → VFD/Pump
قرار میگیرد.
این موضوع در پروژههای EPC اهمیت زیادی دارد؛ زیرا انتخاب PID باید متناسب با ماهیت
فرآیند و
Final Control Element انجام شود.
Tuning چیست و چرا اهمیت دارد؟
بعد از ایجاد یک حلقه PID، هنوز
کار تمام نشده است.
باید پارامترهای کنترلر تنظیم شوند.
به این فرآیند PID Tuning گفته
میشود.
مهمترین پارامترهایی که معمولاً در Tuning مورد توجه قرار میگیرند عبارتاند از:
Gain
Integral Time
Derivative Time
هدف
Tuning این است که حلقه کنترل:
· پایدار باشد؛
· نوسان غیرضروری نداشته باشد؛
· Overshoot کنترلشدهای داشته باشد؛
· سریع به تغییرات Setpoint پاسخ دهد؛
· در برابر Disturbance عملکرد مناسبی داشته باشد؛
· و تجهیز نهایی را بیش از حد تحت فرمان قرار ندهد.
در پروژههای نفت و گاز، Tuning یک کار صرفاً نرمافزاری نیست.
مهندس کنترل باید رفتار واقعی فرآیند را بشناسد.
برای مثال رفتار یک حلقه Temperature معمولاً با یک Flow Loop یکسان نیست.
به همین دلیل نمیتوان پارامترهای یک PID را بدون بررسی فرآیند، روی تمام Loopهای پروژه Copy کرد.
حالا
FB41 وارد میشود
پس از اینکه مفهوم PID و نیاز به Tuning را شناختیم، به محیط STEP 7 میرسیم.
در
PLCهای زیمنس S7-300 و
S7-400، FB41 (CONT_C) یکی از
بلوکهای استاندارد مورد استفاده برای پیادهسازی کنترلر پیوسته است.
FB41 را میتوان برای ایجاد حلقههای کنترلی مانند:
· Pressure Control
· Flow Control
· Level Control
· Temperature Control
· Speed Control
به کار
گرفت.
در واقع FB41 الگوریتم کنترلی موردنیاز را در اختیار برنامه PLC قرار میدهد تا مهندس کنترل بتواند حلقه PID را در نرمافزار پروژه پیادهسازی کند.
FB41 چگونه در یک حلقه کنترلی قرار میگیرد؟
فرض کنیم
میخواهیم فشار یک خط گاز را کنترل کنیم.
ساختار
منطقی سیستم میتواند به شکل زیر باشد:
Pressure
Transmitter
↓
Analog Input
↓
Scaling
↓
FB41 – CONT_C
↓
Output
Scaling
↓
Analog Output
↓
Control Valve
در این ساختار، FB41 در مرکز حلقه کنترل قرار دارد.
مقدار فشار واقعی وارد FB41 میشود.
مقدار مطلوب نیز بهعنوان Setpoint در اختیار کنترلر قرار میگیرد.
FB41 بر اساس الگوریتم کنترلی خود، خروجی را محاسبه
میکند.
این خروجی سپس برای فرمان دادن به تجهیز نهایی استفاده میشود.
جدول ورودیهای FB41
|
ورودی |
نوع |
وظیفه |
|
PV_IN |
REAL |
مقدار
واقعی فرآیند |
|
SP_INT |
REAL |
مقدار
تنظیمی |
|
MAN_ON |
BOOL |
فعالسازی Manual |
|
MAN |
REAL |
خروجی
دستی |
|
P_SEL |
BOOL |
فعالسازی P |
|
I_SEL |
BOOL |
فعالسازی I |
|
D_SEL |
BOOL |
فعالسازی D |
|
GAIN |
REAL |
ضریب Kp |
|
TI |
TIME |
زمان
انتگرال |
|
TD |
TIME |
زمان
مشتق |
|
LMN_HLM |
REAL |
حد بالای
خروجی |
|
LMN_LLM |
REAL |
حد
پایین خروجی |
جدول خروجیهای FB41
|
خروجی |
توضیح |
|
LMN |
خروجی کنترلکننده |
|
QLMN_HLM |
رسیدن
به حد بالای خروجی |
|
QLMN_LLM |
رسیدن به حد پایین خروجی |
|
PV |
مقدار واقعی پس از پردازش |
|
ER |
مقدار خطا (Error) |
یک نکته بسیار مهم در طراحی FB41
یکی از اشتباهات رایج این است که مقدار خام کارت
آنالوگ مستقیماً به عنوان مقدار فرآیندی در نظر گرفته شود.
فرض کنید یک Pressure Transmitter با محدوده:
4–20 mA = 0–100 bar
داریم.
PLC ابتدا
یک مقدار
Raw از کارت آنالوگ دریافت میکند.
این مقدار باید به مقدار مهندسی تبدیل شود:
Raw Value → 0–100 bar
سپس مقدار Engineering Value وارد حلقه کنترل میشود.
در خروجی نیز فرآیند برعکس انجام میشود:
FB41 Output → Engineering Value → Raw Value →
Analog Output
در پروژههای واقعی، این قسمت باید بهدقت طراحی
شود؛ زیرا اشتباه در
Scaling میتواند کل رفتار Loop را تحت تأثیر قرار دهد.
جدول کامل پارامترهای FB41 (CONT_C)
یکی از مهمترین مزایای بلوک FB41،
تعداد زیاد پارامترهای قابل تنظیم آن است. این پارامترها امکان طراحی یک کنترلکننده PID دقیق و متناسب با فرآیندهای مختلف صنعتی را
فراهم میکنند. آشنایی با هر پارامتر به برنامهنویس کمک میکند تا کنترلر را
متناسب با شرایط واقعی فرآیند تنظیم کند.
|
پارامتر |
نوع |
توضیح |
مثال
کاربرد |
|
PV_IN |
Input |
مقدار واقعی فرآیند |
فشار 8.5 Bar |
|
SP_INT |
Input |
مقدار مرجع |
10 Bar |
|
MAN_ON |
BOOL |
فعال شدن حالت دستی |
هنگام تعمیرات |
|
MAN |
REAL |
خروجی دستی |
50٪ |
|
P_SEL |
BOOL |
فعال کردن بخش P |
اغلب TRUE |
|
I_SEL |
BOOL |
فعال کردن بخش I |
حذف خطای ماندگار |
|
D_SEL |
BOOL |
فعال کردن بخش D |
فرآیندهای سریع |
|
GAIN |
REAL |
ضریب تناسبی Kp |
2.5 |
|
TI |
TIME |
زمان انتگرال |
15s |
|
TD |
TIME |
زمان مشتق |
1s |
|
CYCLE |
TIME |
زمان نمونهبرداری |
OB35 =
100ms |
|
DEADB_W |
REAL |
ناحیه مرده |
0.1 Bar |
|
LMN_HLM |
REAL |
حد بالای خروجی |
100% |
|
LMN_LLM |
REAL |
حد پایین خروجی |
0% |
|
LMN_FAC |
REAL |
ضریب خروجی |
1 |
|
PVPER_ON |
BOOL |
نوع ورودی درصدی |
TRUE/FALSE |
|
INT_HOLD |
BOOL |
توقف انتگرال |
هنگام Manual |
|
COM_RST |
BOOL |
ریست کنترلر |
راهاندازی اولیه |
تنظیم ضرایب PID (PID Tuning)
بیشترین سوالی که مهندسان هنگام استفاده از FB41 دارند این است:
چگونه ضرایب PID را تنظیم کنیم؟
پاسخ این سؤال به نوع فرآیند بستگی دارد، اما
چند روش استاندارد وجود دارد.
روش اول: تنظیم دستی (Manual Tuning)
در این روش ابتدا:
✔ I و D را غیرفعال کنید.
✔ فقط
ضریب P را افزایش دهید.
تا زمانی که سیستم کمی نوسان کند.
سپس:
ضریب P را حدود ۲۰ درصد
کاهش دهید.
بعد:
بخش I را فعال کنید.
در نهایت:
در صورت نیاز D را اضافه کنید.
این روش هنوز هم در بسیاری از صنایع استفاده میشود.
روش دوم: Ziegler-Nichols
یکی از مشهورترین روشهای تنظیم PID در صنعت است.
مراحل:
- فقط P فعال باشد.
- ضریب P افزایش یابد تا سیستم وارد نوسان پایدار
شود.
- مقدار Ku و Tu اندازهگیری شود.
- ضرایب PID طبق روابط استاندارد محاسبه شوند.
این روش برای راهاندازی اولیه مناسب است، اما
معمولاً در پروژههای حساس نیاز به اصلاح تجربی دارد.
روش سوم: Auto Tuning
در تجهیزات جدید یا نرمافزارهای پیشرفته، تنظیم
ضرایب بهصورت خودکار انجام میشود. در
STEP7 Classic، FB41 چنین قابلیتی ندارد و تنظیم پارامترها باید توسط
مهندس کنترل یا بر اساس تجربه پروژه انجام شود.
نکات مهم در تنظیم PID
- مقدار Kp بیش از حد باعث نوسان میشود.
- Ti کوچک پاسخ را سریعتر اما ناپایدارتر میکند.
- Td بزرگ ممکن است سیستم را به نویز حساس کند.
- همیشه از زمان نمونهبرداری ثابت (مانند OB35) استفاده کنید.
- ابتدا کنترل را بدون بخش D راهاندازی کنید و فقط در صورت نیاز مشتقگیر
را فعال نمایید.
جمعبندی این بخش
در یک پروژه صنعتی، PID صرفاً
یک فرمول یا یک بلوک نرمافزاری نیست.
PID بخشی
از یک Control Loop است که
از سنسور، سیستم
PLC،
الگوریتم کنترل و تجهیز نهایی تشکیل میشود.
ابتدا باید فرآیند را شناخت، سپس ساختار Loop را طراحی کرد، Scaling را انجام داد، کنترلر را در محیط STEP 7 پیادهسازی کرد و در نهایت با Tuning مناسب، رفتار واقعی فرآیند را به نقطه مطلوب
رساند.
در
PLCهای SIMATIC S7-300 و S7-400، FB41 یا CONT_C یکی از
ابزارهای استاندارد برای پیادهسازی این کنترلر است.
در مقاله بعدی میتوانیم وارد بخش کاملاً عملی «ساخت یک حلقه PID با FB41 در STEP 7 Classic از صفر تا Commissioning» شویم؛ یعنی نحوه فراخوانی FB41، Instance DB، اتصال SP و PV، تنظیم GAIN/TI/TD، Manual/Auto، محدودیت خروجی و در نهایت اجرای یک مثال واقعی کنترل فشار یا دبی در پروژه نفت و گاز شویم.
