ما هو المتحكم PID؟ شرح P وI وD وطريقة عمله في أنظمة التحكم
يُعد PID Controller – المتحكم التناسبي التكاملي التفاضلي من أكثر خوارزميات التحكم استخدامًا في الأنظمة الصناعية ذات الحلقة المغلقة.يستخدم PID للتحكم في متغيرات مثل درجة الحرارة، الضغط، التدفق، مستوى السوائل، سرعة المحركات وغيرها، وذلك عن طريق مقارنة القيمة المطلوبة بالقيمة المقاسة ثم تعديل خرج التحكم باستمرار لتقليل الفرق بينهما. وتصف ISA التحكم PID بأنه من أكثر تقنيات التحكم بالحلقات المغلقة استخدامًا في الصناعة.
ما معنى PID؟
يتكون الاسم PID من ثلاثة أجزاء:P – Proportional التناسبي
I – Integral التكاملي
D – Derivative التفاضلي
كل جزء يتعامل مع الخطأ بطريقة مختلفة، ثم تُجمع تأثيراتها للحصول على خرج التحكم النهائي.
كيف تعمل حلقة التحكم PID؟
في نظام التحكم المغلق توجد عادة القيم التالية:Setpoint – SP هي القيمة المطلوبة التي نريد الوصول إليها.
مثال:
إذا أردنا الحفاظ على درجة حرارة خزان عند: 80 °C
فإن: SP = 80 °C
Process Variable – PV
هي القيمة الفعلية التي يقيسها الحساس في العملية.
إذا كانت درجة الحرارة الحالية: 72 °C
فإن: PV = 72 °C
Error – e
الخطأ هو الفرق بين القيمة المطلوبة والقيمة المقاسة.
في أحد التعريفات الشائعة:
e(t)=SP−PV
في المثال السابق:
e=80−72=8
لكن يجب الانتباه إلى أن بعض أنظمة التحكم تستخدم إشارة الخطأ بالعكس بحسب نوع Direct Acting أو Reverse Acting، لذلك يجب دائمًا مراجعة تعريف المصنع أو برنامج التحكم المستخدم. ISA توضح أن تعريف الخطأ يمكن أن يكون SP−PV أو PV−SP بحسب اتجاه عمل الحلقة.
مخطط عمل PID بصورة مبسطة
يمكن تمثيل الحلقة كالتالي:SP → مقارنة مع PV → Error → PID Controller → Output → Process → Sensor → PV
- يستقبل القيمة المطلوبة SP.
- يستقبل القيمة المقاسة PV.
- يحسب الخطأ.
- يحسب خرج التحكم.
- يرسل الخرج إلى العنصر النهائي.
- يقيس النتيجة من جديد.
- يكرر العملية باستمرار.
ما هو العنصر النهائي Final Control Element؟
خرج PID لا يؤثر مباشرة على العملية دائمًا، بل يرسل أمرًا إلى عنصر نهائي مثل:- Control Valve.
- VFD.
- Heater.
- Servo Drive.
- Damper.
- Pump.
وفي التحكم بالضغط يمكن أن يحدد نسبة فتح صمام.
معادلة PID
u(t)=Kpe(t)+Ki∫e(t)dt+Kddtde(t)
حيث: u(t) = خرج المتحكم
e(t) = الخطأ
Kp = معامل الجزء التناسبي
Ki = معامل الجزء التكاملي
Kd = معامل الجزء التفاضلي
وهناك أكثر من صيغة رياضية وتنفيذية للـPID، مثل Parallel وStandard وغيرها، لذلك قد تختلف المعاملات وطريقة إدخالها بين الشركات والبرامج. MathWorks توضح مثلًا الفرق بين الصورة المتوازية والصورة القياسية للـPID.
المتحكم التناسبي P
الجزء التناسبي يستجيب مباشرة إلى قيمة الخطأ الحالية.يمكن تمثيله بالعلاقة:
P=Kpe(t)
إذا ازداد الخطأ، يزداد تأثير الجزء التناسبي.
مثال بسيط
إذا: Kp=2K_p=2
والخطأ: e=5e=5
فإن: P=10P=10
أما إذا أصبح الخطأ: e=10e=10
فإن: P=20P=20
أي أن الخرج التناسبي يتغير مباشرة مع مقدار الخطأ.
مثال بسيط
إذا: Kp=2K_p=2
والخطأ: e=5e=5
فإن: P=10P=10
أما إذا أصبح الخطأ: e=10e=10
فإن: P=20P=20
أي أن الخرج التناسبي يتغير مباشرة مع مقدار الخطأ.
ماذا يحدث عند زيادة Kp؟
زيادة Kp تجعل المتحكم أكثر استجابة للخطأ، ولذلك قد:تسرع الاستجابة.
تقلل مقدار الخطأ.
لكن إذا أصبحت Kp كبيرة أكثر من اللازم فقد تظهر:
- Oscillation.
- Overshoot.
- عدم استقرار.
هل P وحده يزيل الخطأ نهائيًا؟
ليس دائمًا.
في كثير من الأنظمة يبقى ما يسمى:
Steady-State Error أو Offset حتى بعد استقرار النظام. ولهذا نضيف غالبًا الجزء التكاملي I.
ISA توضح أن Integral Action تستخدم أساسًا لإزالة الـOffset الذي قد يبقى عند استخدام التحكم التناسبي وحده.
المتحكم التكاملي I
الجزء التكاملي لا ينظر فقط إلى الخطأ الحالي، بل إلى الخطأ المتراكم مع الزمن.
يمكن تمثيله بالعلاقة:
I=Ki∫e(t)dt
طالما أن الخطأ موجود، يستمر الجزء التكاملي في زيادة أو خفض تأثيره.
وهذا يسمح له بإزالة Steady-State Error.
مثال مبسط
إذا بقي الخطأ: 2
لفترة طويلة، فإن الجزء التناسبي يرى دائمًا نفس الخطأ.
أما الجزء التكاملي فيجمع هذا الخطأ مع الزمن:
2 + 2 + 2 + 2 ...
وبالتالي يواصل تعديل الخرج حتى يقترب الخطأ من الصفر.
ماذا يحدث عند زيادة Ki؟
زيادة تأثير التكامل قد:
تزيل الخطأ بسرعة أكبر.
تقلل Steady-State Error.
لكن إذا أصبحت قوية جدًا فقد تسبب:
من المشكلات المهمة في PID ما يسمى:
Integral Windup
يحدث عندما يصل خرج المتحكم أو المشغل إلى حد التشبع Saturation، بينما يستمر الجزء التكاملي في تجميع الخطأ.
مثال:
خرج المتحكم وصل إلى: 100%
لكن الخطأ ما زال موجودًا.
إذا استمر الـIntegrator في التجميع، فقد يصبح تأثيره كبيرًا جدًا، وعندما تبدأ العملية بالاستجابة يحتاج وقتًا طويلًا للتراجع، مما قد يؤدي إلى Overshoot كبير.
لهذا تستخدم المتحكمات الحديثة وظائف: Anti-Windup
لمنع تراكم التكامل بشكل غير مرغوب.
مثلًا Siemens تذكر أن PID_Compact يحتوي على وظيفة Anti-Windup ضمن خوارزمية التحكم.
مثال مبسط
إذا بقي الخطأ: 2
لفترة طويلة، فإن الجزء التناسبي يرى دائمًا نفس الخطأ.
أما الجزء التكاملي فيجمع هذا الخطأ مع الزمن:
2 + 2 + 2 + 2 ...
وبالتالي يواصل تعديل الخرج حتى يقترب الخطأ من الصفر.
ماذا يحدث عند زيادة Ki؟
زيادة تأثير التكامل قد:
تزيل الخطأ بسرعة أكبر.
تقلل Steady-State Error.
لكن إذا أصبحت قوية جدًا فقد تسبب:
- Overshoot.
- Oscillation.
- استجابة غير مستقرة.
من المشكلات المهمة في PID ما يسمى:
Integral Windup
يحدث عندما يصل خرج المتحكم أو المشغل إلى حد التشبع Saturation، بينما يستمر الجزء التكاملي في تجميع الخطأ.
مثال:
خرج المتحكم وصل إلى: 100%
لكن الخطأ ما زال موجودًا.
إذا استمر الـIntegrator في التجميع، فقد يصبح تأثيره كبيرًا جدًا، وعندما تبدأ العملية بالاستجابة يحتاج وقتًا طويلًا للتراجع، مما قد يؤدي إلى Overshoot كبير.
لهذا تستخدم المتحكمات الحديثة وظائف: Anti-Windup
لمنع تراكم التكامل بشكل غير مرغوب.
مثلًا Siemens تذكر أن PID_Compact يحتوي على وظيفة Anti-Windup ضمن خوارزمية التحكم.
المتحكم التفاضلي D
الجزء التفاضلي يعتمد على سرعة تغير الخطأ مع الزمن.
يمكن تمثيله بالعلاقة:
يمكن تمثيله بالعلاقة:
D=Kd(de(t))/(dt)
أي أنه لا يهتم فقط بحجم الخطأ، بل يسأل:
هل الخطأ يتغير بسرعة؟
وظيفة D
يمكن للجزء التفاضلي أن يساعد على:
لماذا لا نستخدم D دائمًا؟
الجزء التفاضلي حساس جدًا إلى: Noise
لأن الضوضاء قد تتغير بسرعة كبيرة، وبالتالي قد يفسرها الجزء D على أنها تغير حقيقي في العملية.
لهذا السبب تستخدم المتحكمات العملية عادة Derivative Filter، كما أن PI بدون D شائع جدًا في التطبيقات الصناعية. ISA تشير إلى أن Derivative Action أقل استخدامًا من PI بسبب حساسيتها للإشارات السريعة والضوضاء.
لذلك في التطبيقات الحقيقية لا يُستخدم D المثالي غالبًا، وإنما يتم إضافة مرشح.
مثلًا في PID بصيغة MathWorks يوجد ثابت:
Tf – Derivative Filter Time
وفي Siemens PID_Compact توجد أيضًا معاملات خاصة بتأخير أو Filter للجزء التفاضلي.
وظيفة D
يمكن للجزء التفاضلي أن يساعد على:
- توقع اتجاه تغير العملية.
- تقليل Overshoot.
- تحسين التخميد.
- تقليل التذبذبات في بعض الأنظمة.
لماذا لا نستخدم D دائمًا؟
الجزء التفاضلي حساس جدًا إلى: Noise
لأن الضوضاء قد تتغير بسرعة كبيرة، وبالتالي قد يفسرها الجزء D على أنها تغير حقيقي في العملية.
لهذا السبب تستخدم المتحكمات العملية عادة Derivative Filter، كما أن PI بدون D شائع جدًا في التطبيقات الصناعية. ISA تشير إلى أن Derivative Action أقل استخدامًا من PI بسبب حساسيتها للإشارات السريعة والضوضاء.
لماذا يوجد Filter للجزء التفاضلي؟
المشتق الرياضي المثالي يضخم الترددات العالية والضوضاء.لذلك في التطبيقات الحقيقية لا يُستخدم D المثالي غالبًا، وإنما يتم إضافة مرشح.
مثلًا في PID بصيغة MathWorks يوجد ثابت:
Tf – Derivative Filter Time
وفي Siemens PID_Compact توجد أيضًا معاملات خاصة بتأخير أو Filter للجزء التفاضلي.
هل يجب استخدام P وI وD دائمًا؟
لا.
يمكن استخدام عدة تركيبات:
P
PI
PD
PID
وفي الصناعة يكون PI Controller شائعًا جدًا، لأن العديد من عمليات التحكم تحتاج إلى إزالة Steady-State Error ولكن لا تحتاج إلى Derivative Action.
ISA تشير إلى أن كثيرًا من التطبيقات الصناعية تستخدم PI، وبعضها يستخدم P فقط.
لا.
يمكن استخدام عدة تركيبات:
P
PI
PD
PID
وفي الصناعة يكون PI Controller شائعًا جدًا، لأن العديد من عمليات التحكم تحتاج إلى إزالة Steady-State Error ولكن لا تحتاج إلى Derivative Action.
ISA تشير إلى أن كثيرًا من التطبيقات الصناعية تستخدم PI، وبعضها يستخدم P فقط.
ما هو PID Tuning؟
تسمى عملية اختيار قيم:
Kp وKi وKd
باسم: PID Tuning
والهدف هو الحصول على استجابة مناسبة من حيث:
القيم المناسبة تعتمد على طبيعة العملية نفسها.
استجابة بطيئة جدًا يصل النظام إلى SP ببطء.
Overshoot كبير تتجاوز PV القيمة المطلوبة بشكل كبير.
Oscillation تتذبذب القيمة حول Setpoint.
Instability قد تستمر التذبذبات أو تزيد بدل أن تختفي.
بطء التخلص من الخطأ يبقى الفرق بين SP وPV لفترة طويلة.
في أنظمة Siemens الحديثة، مثل PID_Compact، توجد أوضاع Pretuning وFine Tuning لحساب معاملات PID تلقائيًا بناءً على استجابة العملية.
مثال عملي: التحكم بدرجة الحرارة
لنفترض أن لدينا سخانًا ونريد: SP=80°C
والحساس يقيس: PV=70°C
إذن: Error=10°C
تسمى عملية اختيار قيم:
Kp وKi وKd
باسم: PID Tuning
والهدف هو الحصول على استجابة مناسبة من حيث:
- سرعة الوصول إلى Setpoint.
- مقدار Overshoot.
- الاستقرار.
- زمن الاستقرار Settling Time.
- الخطأ النهائي.
القيم المناسبة تعتمد على طبيعة العملية نفسها.
ماذا يحدث عند ضبط PID بشكل سيئ؟
إذا كان الضبط غير مناسب قد نلاحظ:استجابة بطيئة جدًا يصل النظام إلى SP ببطء.
Overshoot كبير تتجاوز PV القيمة المطلوبة بشكل كبير.
Oscillation تتذبذب القيمة حول Setpoint.
Instability قد تستمر التذبذبات أو تزيد بدل أن تختفي.
بطء التخلص من الخطأ يبقى الفرق بين SP وPV لفترة طويلة.
طرق ضبط PID
هناك طرق عديدة لضبط PID، منها:- الضبط اليدوي Manual Tuning.
- Ziegler-Nichols.
- Chien-Hrones-Reswick.
- Auto Tuning.
- نمذجة العملية وضبط المتحكم بالحساب.
في أنظمة Siemens الحديثة، مثل PID_Compact، توجد أوضاع Pretuning وFine Tuning لحساب معاملات PID تلقائيًا بناءً على استجابة العملية.
مثال عملي: التحكم بدرجة الحرارة
لنفترض أن لدينا سخانًا ونريد: SP=80°C
والحساس يقيس: PV=70°C
إذن: Error=10°C
تأثير P
لأن الخطأ كبير، يعطي المتحكم خرجًا كبيرًا للسخان.
تأثير I
إذا بقيت درجة الحرارة أقل من 80°C لفترة، يبدأ الجزء التكاملي في زيادة الخرج لإزالة الخطأ المتبقي.
تأثير D
إذا بدأت الحرارة ترتفع بسرعة نحو 80°C، يمكن للجزء التفاضلي تقليل الخرج مبكرًا للمساعدة على منع تجاوز الحرارة للـSetpoint.
في النهاية يحاول PID المحافظة على درجة الحرارة قريبة من: 80°C
حتى لو تغيرت الظروف، مثل إضافة مادة باردة إلى الخزان.
على سبيل المثال، في Siemens S7-1200 وS7-1500 يوجد:
PID_Compact
وهو Technology Object/Instruction يوفر خوارزمية PID ووظائف Tuning وتشغيل Manual وAutomatic إضافة إلى مراقبة الأخطاء.
عادة يحتاج الـPLC إلى:
لأن الخطأ كبير، يعطي المتحكم خرجًا كبيرًا للسخان.
تأثير I
إذا بقيت درجة الحرارة أقل من 80°C لفترة، يبدأ الجزء التكاملي في زيادة الخرج لإزالة الخطأ المتبقي.
تأثير D
إذا بدأت الحرارة ترتفع بسرعة نحو 80°C، يمكن للجزء التفاضلي تقليل الخرج مبكرًا للمساعدة على منع تجاوز الحرارة للـSetpoint.
في النهاية يحاول PID المحافظة على درجة الحرارة قريبة من: 80°C
حتى لو تغيرت الظروف، مثل إضافة مادة باردة إلى الخزان.
PID في PLC
يمكن تنفيذ PID داخل PLC باستخدام Function Block أو Instruction مخصصة.على سبيل المثال، في Siemens S7-1200 وS7-1500 يوجد:
PID_Compact
وهو Technology Object/Instruction يوفر خوارزمية PID ووظائف Tuning وتشغيل Manual وAutomatic إضافة إلى مراقبة الأخطاء.
عادة يحتاج الـPLC إلى:
- Setpoint.
- Process Value.
- حدود الإدخال.
- حدود الخرج.
- Sampling Time.
- معاملات PID.
ما أهمية Sampling Time؟
في PLC لا يتم تنفيذ PID بصورة مستمرة رياضيًا، بل يتم حسابه في أوقات منفصلة.
لذلك يجب تحديد:
Sampling Time بشكل مناسب لديناميكية العملية.
إذا كانت عملية الحرارة بطيئة جدًا، فلا تحتاج Sampling Time سريع جدًا مثل نظام التحكم بالحركة.
أما Sampling Time غير المناسب فقد يؤثر على أداء المتحكم.
Manual Mode وAutomatic Mode
في كثير من أنظمة PID يوجد وضعان مهمان:
Manual يحدد المشغل قيمة الخرج بنفسه.
مثال:
Valve Output = 40%
في كثير من أنظمة PID يوجد وضعان مهمان:
Manual يحدد المشغل قيمة الخرج بنفسه.
مثال:
Valve Output = 40%
Automatic يقوم PID بحساب الخرج تلقائيًا اعتمادًا على SP وPV.
عند الانتقال بين Manual وAuto من الأفضل أن تكون عملية الانتقال مصممة بدون قفزة مفاجئة في الخرج، وتسمى هذه الفكرة غالبًا:
Bumpless Transfer
في Open Loop لا تتم إعادة PV إلى المتحكم لإجراء التصحيح.
لذلك من الأدق عدم وصف PID نفسه بأنه Open Loop Controller.
تطبيقات PID
يستخدم PID في العديد من التطبيقات مثل:
الاعتقاد أن زيادة Kp دائمًا تحسن التحكم.
أي: تناسبي – تكاملي – تفاضلي.
ما الفرق بين SP وPV؟
SP هي القيمة المطلوبة، بينما PV هي القيمة التي يقيسها الحساس فعليًا.
عند الانتقال بين Manual وAuto من الأفضل أن تكون عملية الانتقال مصممة بدون قفزة مفاجئة في الخرج، وتسمى هذه الفكرة غالبًا:
Bumpless Transfer
PID وOpen Loop
PID يستخدم أساسًا ضمن Closed-Loop Control، لأنه يحتاج إلى Feedback من العملية حتى يحسب الخطأ ويصححه.في Open Loop لا تتم إعادة PV إلى المتحكم لإجراء التصحيح.
لذلك من الأدق عدم وصف PID نفسه بأنه Open Loop Controller.
تطبيقات PID
يستخدم PID في العديد من التطبيقات مثل:
- التحكم بدرجة الحرارة.
- التحكم بالضغط.
- التحكم بمعدل التدفق.
- التحكم بمستوى السوائل.
- سرعة المحركات.
- التحكم بالصمامات.
- العمليات الكيميائية.
- HVAC.
- الأفران.
- أنظمة الضخ.
أخطاء شائعة في فهم PID
من الأخطاء الشائعة:الاعتقاد أن زيادة Kp دائمًا تحسن التحكم.
- زيادة Ki بشكل كبير لمحاولة تسريع العملية.
- استخدام D دون مراعاة Noise.
- عدم ضبط Sampling Time.
- تجاهل Output Limits.
- عدم استخدام Anti-Windup.
- ضبط PID بدون معرفة طبيعة العملية.
- استخدام قيم PID من نظام مختلف.
- الاعتقاد أن PID يجب أن يحتوي دائمًا على الأجزاء الثلاثة.
- الخلط بين Setpoint وProcess Variable.
الأسئلة الشائعة
ما معنى PID؟ هو اختصار لـ: Proportional Integral Derivativeأي: تناسبي – تكاملي – تفاضلي.
ما الفرق بين SP وPV؟
SP هي القيمة المطلوبة، بينما PV هي القيمة التي يقيسها الحساس فعليًا.
ماذا يفعل Kp؟
يحدد قوة استجابة المتحكم للخطأ الحالي.
يحدد قوة استجابة المتحكم للخطأ الحالي.
ماذا يفعل Ki؟
يعالج الخطأ المتراكم ويساعد على إزالة Steady-State Error.
يعالج الخطأ المتراكم ويساعد على إزالة Steady-State Error.
ماذا يفعل Kd؟
يستجيب لسرعة تغير الخطأ ويساعد في بعض الأنظمة على تقليل Overshoot وتحسين الاستقرار.
يستجيب لسرعة تغير الخطأ ويساعد في بعض الأنظمة على تقليل Overshoot وتحسين الاستقرار.
هل PI أفضل من PID؟
ليس دائمًا ولا العكس. يعتمد الاختيار على طبيعة العملية، وكثير من التطبيقات الصناعية تعمل بكفاءة باستخدام PI فقط.
ليس دائمًا ولا العكس. يعتمد الاختيار على طبيعة العملية، وكثير من التطبيقات الصناعية تعمل بكفاءة باستخدام PI فقط.
هل يمكن لـPLC تنفيذ PID؟
نعم. تحتوي معظم منصات PLC الحديثة على Function Blocks أو Instructions مخصصة للتحكم PID.
يتكون من ثلاثة أجزاء:
P للاستجابة إلى الخطأ الحالي.
I لإزالة الخطأ المتراكم.
D للاستجابة إلى سرعة تغير الخطأ.
والأداء الجيد لا يعتمد فقط على استخدام PID، بل على ضبط معاملات المتحكم بشكل صحيح بما يناسب العملية.
في التطبيقات الصناعية يمكن تنفيذ PID داخل PLC أو DCS أو أجهزة تحكم مستقلة للتحكم في الحرارة، الضغط، التدفق، المستوى، السرعة وغيرها من المتغيرات.
ISA – PID Algorithms and Performance.
Siemens – PID Control / PID_Compact Function Manual.
MathWorks – Proportional-Integral-Derivative Controllers.
نعم. تحتوي معظم منصات PLC الحديثة على Function Blocks أو Instructions مخصصة للتحكم PID.
الخلاصة
الـPID Controller هو متحكم يعتمد على Feedback لتقليل الفرق بين القيمة المطلوبة SP والقيمة المقاسة PV.يتكون من ثلاثة أجزاء:
P للاستجابة إلى الخطأ الحالي.
I لإزالة الخطأ المتراكم.
D للاستجابة إلى سرعة تغير الخطأ.
والأداء الجيد لا يعتمد فقط على استخدام PID، بل على ضبط معاملات المتحكم بشكل صحيح بما يناسب العملية.
في التطبيقات الصناعية يمكن تنفيذ PID داخل PLC أو DCS أو أجهزة تحكم مستقلة للتحكم في الحرارة، الضغط، التدفق، المستوى، السرعة وغيرها من المتغيرات.
المراجع
ISA – Fundamentals of PID Control.ISA – PID Algorithms and Performance.
Siemens – PID Control / PID_Compact Function Manual.
MathWorks – Proportional-Integral-Derivative Controllers.
Tags:
أتمتة صناعية



