کنترل دمای المنت AC با استفاده از کنترلر PID

آموزش میکروکنترلر avr,پروژه های میکروکنترلر AVR

به نام خدا و با سلام خدمت همه دوستان عزیز

در این مطلب قصد دارم پروژه کنترل دمای المنت ac رو توسط کنترل کننده pid  معرفی کنم.

>>پروژه کنترل دمای المنت dc به روش pid. ادامه مطلب

 

در ابتدا توضیح مختصری راجع به pid میدم:

اصولاً کنترلرهای دمایی وظیفه مقایسه مقدار دمای واقعی فرایند انجام شده با مقدار مطلوب(ست پوینت) و همینطور فرمان به هیتر جهت تنظیم دما را دارند. در کنترلرهای سنتی ترموستات های مکانیکی و یا الکترونیکی تنها با قطع و وصل کردن در محدوده set، دما را کنترل می کنند. با ظهور میکرو کنترلرها و استفاده متنوع از آن در صنایع، روش های نوینی جهت کنترل دما طراحی شده است که یکی از مهم ترین و به روز ترین این روش ها “PID  کنترلر” می باشد.

PID کنترلر (Proportional- Integral-Derivative controller) با استفاده از سه متغیر تناسبی، انتگرال و مشتق گیر، دما را کنترل می کند که کمک به سزایی درثبات حرارتی و یکنواخت گرم شدن محفظه می کند. در این روش پارامترهایی مانند فراجست (overshoot) و نوسان دما (temperature variation) بسیار کاهش و دقت در تنظیم دما بهبود قابل توجهی دارد.

فرایندهای گرمایشی نمونه ای از نیاز به کنترلرPID  هستند. برای اطمینان از کیفیت پایدار محصول، دمای داخل محفظه دستگاه (chamber) می بایست در یک محدوده باریکی نگه داشته شود. زمانی که یک محصول اضافه و یا خارج شده است و یا هنگامی که شیب حرارتی اعمال شود، اختلالی در روند کار ایجاد می شود که باید به طور دقیق مورد توجه و کنترل قرار گیرد.

اگرچه مفهوم PID به ظاهر ساده می رسد، اما زیربنای محاسبات کنترل PID پیچیده و دستیابی به عملکرد مطلوب، مستلزم تعیین مقادیر فرایندهای خاص برای طیف وسیعی از پارامترهای تاثیرگذار بر هم است.

فرایند یافتن این مقادیر، تیونینگ (tuning) نام دارد. هنگامی که کنترلر حرارت PID به طور مطلوب tune شود، انحراف از نقطه تعیین شده (set point) به حداقل رسیده و به عوامل ایجاد اختلال و یا تغییرات نسبت به set point ، با حداقل فراجست (overshoot) ، سریعاً پاسخ خواهد داد.

این مقاله چگونگی tune کردن یک کنترلرPID را معرفی می کند. با اینکه بسیاری از کنترلرها توانایی tune کردن اتوماتیک را دارند، فهم نحوه tuning  ، در به دست آوردن عملکرد مناسب کمک می کند.

عملکرد پایه PID :

کنترل PID  بر اساس بازخورد (feedback) عمل می کند. خروجی یک دستگاه یا یک فرایند مانند آون، اندازه گیری و با یک هدف یا set point مقایسه می شود. اگر اختلافی شناسایی شود، میزان اصلاح محاسبه و اعمال می شود. خروجی دوباره اندازه گیری و هر گونه اصلاح مورد نیاز مجدد محاسبه می شود.

PID شامل سه جزء تناسبی (proportional)، انتگرال (Integral) و مشتق گیر (Derivative) می باشد. همه کنترلرها از هر سه این توابع ریاضی استفاده نمی کنند. بعضی از فرایندها را می توان در سطح قابل قبولی تنها با توابع تناسبی و انتگرال گیر کنترل کرد. با این حال یک کنترل خوب و به طور اخص بدون overshoot نیازمند اضافه شدن تابع مشتق گیر است. ( توجه داشته باشید به همین دلیل است که در بسیاری از کنترلرها با وجود اینکه از پردازنده جهت کنترل دما استفاده می شود، همچنان مقداری نوسان و یا فراجست دمایی دیده شده و بطور کامل ثبات حرارتی ایجاد نمی کنند.)

در کنترل تناسبی ضریب تصحیح با میزان اختلاف بین set point و مقدار اندازه گیری شده، تعیین می شود. اشکال در این است که این تفاوت به صفر نزدیک می شود و برای اعمال اصلاح با توجه به نتیجه، خطا هیچ وقت صفر نمی شود.

تابع انتگرال این طور عمل می کند که با در نظر گرفتن میزان خطا، هر چقدر تفاوت  set point با مقدار اندازه گیری شده بیشتر باشد، ضریب تصحیح بزرگتری محاسبه می شود. البته وقتی تاخیر در پاسخ به اصلاح وجود داشته باشد، overshoot ایجاد می شود و احتمالاً منجر به نوسان نسبت به نقطه تنظیم می شود. اجتناب از این اتفاق، هدف تابع مشتق گیر است.

روش های tuning کنترلر PID :

هر فرایندی دارای ویژگی های منحصر به فردی است. حتی وقتی تجهیزات در اصل و پایه یکسان باشند. جریان هوا در اطراف آون متفاوت خواهد بود، دمای محیط ممکن است تغییر کند، چگالی هوا و فشار هوا ممکن است ساعت به ساعت تغییر داشته باشد و یا حتی نوع بارگذاری و تعداد دفعاتی که نیاز است درضمن کار درب دستگاه باز شود. بنابراین تنظیماتی برای PID باید انتخاب شوند که با این تغییرات محیطی و تنوع در استفاده وفق پیدا کند.

به طور کلی سه رویکرد برای تعیین یک ترکیب بهینه از این تنظیمات وجود دارد:

 تنظیم دستی (Manual tuning)

 تنظیم هوشمند (Tuning heuristics)

 تنظیم خودکار (Auto tune)

 

تنظیم دستی (Manual Tuning):

غالباً فرایندها بسیار پیچیده هستند اما با برخی از اطلاعات، بخصوص در مورد سرعتی که با آن به اصلاح خطا پاسخ داده می شود، این امکان وجود دارد که یک سطح ابتدایی از tuning به دست آید.

تنظیم هوشمند (Tuning Heuristics):

برای پاسخ به این پرسش که چطور یک حلقه PID تظیم (tune) شود، قوانین زیادی در طول سالها به وجود آمدند. احتمالاً اولین و قطعاً شناخته شده ترین آنها، قانون Zengler-Nichols (ZN) است.

زیگلر و نیکولز دو روش برای Tune کردن حلقه PID توضیح دادند که برای اولین بار در سال 1942 منتشر شد. روش اول شامل انداره گیری عقب افتادگی یا تاخیر در پاسخ و سپس زمان صرف شده برای رسیدن به یک مقدار خروجی جدید است. روش دوم، بستگی به زمان رسیدن به  حالت پایدار نوسان (steady-state oscillation) است. در هر دو این روش ها، مقادیر بدست آمده، برای محاسبه مقادیر gain، reset time و rate، در یک جدول وارد می شود.

روش ZN بدون مساله نیست. در برخی از برنامه ها پاسخی ایجاد می کند که از نظر over shoot و نوسان تهاجمی محسوب مشود. مشکل دیگر این است که در فرایندهایی که به آرامی واکنش می دهند، می تواند وقت گیر باشد. به این دلایل بعضی از افرادی که روی سیستم کنترل کار می کنند، قوانین دیگری مثل Tyreus-Luyben  یا  Rivera, Morari and Skogestad را ترجیح میدهند.

تنظیم خودکار (Auto Tune):

کنترلرهای زیادی امروزه به فروش می رسند که بصورت خودکار Tune می شوند. جزئیانت عملکرد بین تولید کننده ها، متفاوت است اما همه قوانینی را  دنبال میکنند که پیش از این توضیح داده شد. اساساً کنترلر ” می آموزد ” که چطور فرایند به یک اختلال یا تغییر در set point پاسخ دهد و تنظیمات PID مناسب را محاسبه کند. در مورد یک کنترلر گرما وقتی Auto Tune (تنظیم خودکار) انتخاب می شود، کنترلر یک خروجی را فعال می کند. با مشاهده Delay و Rate که با آن تغییر رخ می دهد، تنظیمات P، I و D مناسب، محاسبه می شود و حتی درصورت نیاز امکان تنظیم دستی دقیق نیز وجود دارد.

( توجه داشته باشید که این کنترلر نیاز به نقطه تنظیم حداقل 10 درجه سانتیگراد بالاتر از دمای فعلی برای انجام تنظیم خودکار دارد.)

کنترلرهای جدیدتر و پیچیده تر، ترکیبی از منطق فازی با قابلیت تنظیم خودکار هستند. این یکی از راه های مقابله با عدم دقت و غیر خطی بودن را فراهم می کند.

کاربردهای متداول کنترلر PID:

در آون ها و کوره هایی که در فرایندهای حرارتی صنعتی مورد استفاده می باشند، لازم است به نتایج سازگاری، صرفنظر از اینکه چگونه جرم و رطوبت مواد درحال گرم شد ممکن است تغییر کند، دست یابیم. در اینگونه موارد استفاده از  تجهیزات کنترل PID، ایده آل است.

علاوه بر فرایندهای گرمایی، در سیستم های کنترل میزان جریان سیالات، کنترل سیستم های حرکتی و موارد دیگر، PID کنترلرها بسیار پرکاربرد و مفید می باشند.

درک PID تیونینگ (Tuning):

PID کنترلر برای مدیریت بسیاری از فرایندها استفاده می شود. فاکتورهای اصلاح، با مقایسه مقادیر خروجی نسبت به نقطه تعیین شده (set point) و همچنین با استفاده از بهره (gain)ای که over shoot و نوسان را به حداقل برساند، محاسبه می شود. در عین حال این تغییرات موثر در سریعترین زمان خود اعمال خواهند شد.

تیونینگ PID شامل ایجاد مقدار بهره مناسب جهت کنترل پروسه می باشد. در حالی که این عمل میتواند به صورت دستی و یا استفاده از فن آوری هوشمند (Heuristics) انجام شود، اکثر کنترلرهای مدرن قابلیت تنظیم خودکار (Auto Tune) را ارائه می دهند. با این حال، برای کنترل حرفه ای، درک آنچه پس از فشار دکمه اتفاق می افتد، بسیار مهم است.

انواع کنترل کننده pid:

کنترل کننده PID ترکیب سه عامل تناسبی، انتگرالی و مشتقی است.

پاسخ تناسبی P

P با مقدار واقعی خطا متناسب است. اگر خطا بزرگ باشد، خروجی کنترل کننده هم بزرگ است و اگر خطا کوچک باشد خروجی کنترل هم کوچک است اما ضریب بهره Kp است. همچنین در نظر بگیرید، سرعت پاسخ هم به‌طور مستقیم با ضریب بهره تناسبی (Kp)، متناسب است. بنابراین سرعت پاسخ با افزایش مقدار Kp زیاد می‌شود اما اگر Kp بیش از محدوده معمول افزایش یابد، متغیر فرایند شروع به نوسان کردن در سرعت بالا می‌کند و سیستم را ناپایدار می‌سازد.

(y(t) ∝ e(t

(y(t) = k* e(t

که Kp، یک عامل بهره تناسب است.

پاسخ تناسبی کنترل کننده PID

پاسخ تناسبی کنترل کننده PID

در اینجا، همان‌طور که در تساوی بالا نشان داده‌شده، خطای به‌دست‌آمده در ضریب بهره تناسبی (ثابت تناسب) ضرب شده است. اگر فقط کنترل کننده P استفاده شود، در آن زمان، ریست دستی لازم است چون خطای حالت پایدار (آفست) باقی می‌ماند.

پاسخ انتگرالی (I)

به‌طورکلی کنترل کننده انتگرالی برای کاهش خطای حالت پایدار استفاده می‌شود. I، انتگرال (نسبت به زمان) مقدار واقعی خطا است، به سبب انتگرال‌گیری، مقدار خطای بسیار کمی، پاسخ انتگرالی بسیار بزرگی را نتیجه می‌دهد. عملیات کنترل کننده انتگرالی ادامه می‌یابد تا خطا صفر شود.

(y(t) ∝ ∫ e(t)y(t) = k∫ e(t

که Ki، یک عامل بهره تناسب است.

پاسخ انتگرالی کنترل کننده PID
پاسخ انتگرالی کنترل کننده PID

 

بهره انتگرال با سرعت پاسخ‌گویی رابطه معکوس دارد، افزایش Ki، سرعت پاسخگویی را کاهش می‌دهد. کنترل کننده‌های انتگرالی و تناسبی به‌طور ترکیبی (کنترل کننده PI) برای پاسخ پایدار و سرعت پاسخ خوب، استفاده می‌شوند.

پاسخ مشتق گیر D

کنترل کننده مشتق گیر به‌صورت ترکیب PD و یا PID استفاده می‌شود. کنترل کننده مشتق گیر هیچ‌گاه به‌تنهایی استفاده نمی‌شود چون اگر خطا ثابت (غیر صفر) باشد، خروجی کنترل کننده صفر خواهد شد. در این وضعیت، کنترل کننده مانند حالت خطای صفر رفتار می‌کند، اما درواقع مقداری خطا (ثابت) وجود دارد. همان‌طور که در رابطه نشان داده‌شده است، خروجی کنترل کننده مشتق گیر رابطه مستقیمی با سرعت تغییر خطا نسبت به زمان دارد. با حذف علامت تناسب، ما به ثابت بهره مشتق (Kd) می‌رسیم. به‌طورکلی کنترل کننده‌های مشتق گیر زمانی استفاده می‌شوند که متغیرهای فرایند شروع به نوسان کنند یا تغییرات در سرعت بسیار بالا داشته باشند. کنترل کننده‌های مشتقی همچنین برای پیش‌بینی عملکرد آینده خطا، به‌وسیله‌ی منحنی خطا استفاده می‌شوند. رابطه ریاضی به‌صورت نشان داده‌شده در زیر است:

y(t) ∝ de(t)/dty(t) = K* de(t)/dt

که Kd یک عامل بهره تناسب است.

پاسخ مشتقی کنترل کننده PID
پاسخ مشتقی کنترل کننده PID

کنترل کننده تناسبی و انتگرالی (PI)

این کنترل کننده، ترکیب کنترل کننده I و P است. همان‌طور که در معادله ریاضی زیر نشان داده‌شده است، خروجی کنترل کننده جمع پاسخ‌های انتگرالی و تناسبی است.

کنترل کننده مشتقی و تناسبی (PD)

این کنترل کننده ترکیب کنترل کننده‌های P و D است. خروجی کنترل کننده مجموع پاسخ‌های مشتقی و تناسبی است. رابطه ریاضی کنترل کننده PD در زیر نمایش داده‌شده است.

کنترل کننده تناسبی، انتگرالی و مشتقی ( PID )

این کنترل کننده ترکیب کنترل کننده‌های P، I و D است. خروجی کنترل کننده مجموع پاسخ‌های تناسبی، انتگرالی و مشتقی است. رابطه ریاضی کنترل کننده PID در زیر نمایش داده‌شده است.

دیاگرام بلوکی (نمودار بلوکی) کنترل کننده PID

دیاگرام بلوکی (نمودار بلوکی) کنترل کننده PID

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

کنترل کننده‌ی PID نتایج بهتری نسبت به کنترل کننده خاموش/روشن می‌دهد. در کنترل کننده خاموش/روشن، تنها دو وضعیت برای کنترل سیستم در دسترس است. آن تنها می‌تواند خاموش و یا روشن باشد. کنترل کننده خاموش/روشن وقتی‌که مقدار فرایند کمتر از نقطه تنظیم‌شده است روشن خواهد شد و وقتی‌که مقدار فرایند بزرگ‌تر از نقطه تنظیم‌شده است، می‌تواند خاموش شود. در این کنترل کننده خروجی هیچ‌وقت پایدار نمی‌شود، خروجی همیشه در حدود نقطه تنظیم‌شده نوسان می‌کند. اما کنترل کننده PID نسبت به کنترل کننده خاموش/روشن دقیق‌تر و پایدارتر است.

بررسی تخصصی:پیاده سازی کنترل کننده pid در میکروکنترلرatmega8 جهت کنترل دمای هیتر

این پروژه از سه قسمت تشکیل شده

1-مدار بخش گذر از صفر یا زیروکراسینگ

مدار عبور از صفر مداری می باشد که توسط آن می توانیم نقطه صفر سیکل سینوسی را تشخیص بدهیم. از این مدار برای بریدن موج سینوسی و جهت کم کردن سرعت دور موتور یونیورسال و المنت ac و نور لامپ استفاده می شود.همانطور که می دانید برای کم کردن سرعت موتورهای DC از روشی به نام PWM استفاده می شود که در این روش پهنای پالس یک موج مربعی تغییر پیدا می کند. ولی در ولتاژ هایی که به صورت AC  می باشد نمی توان از این روش برای کنترل نور لامپ و موتورهای تک فاز و سه فاز و غیره استفاه نمود به همین علت باید از قطعات الکترونیک قدرت مانند ترایاک و اپتوترایاک و … استفاده کرد.

با کنترل گیت ترایاک ما می توانیم شکل موج سینوسی را به دلخواه خود برش بزنیم که این کار باعت کم شده سرعت و کم شدن ولتاژ خروجی می شود. در شکل زیر می توانید سیگنال برش خورده را ببینید.

مدار تشخیص عبور از صفربا اپتوکوپلر

2-مدار کنترل ولتاژ المنت ac با استفاده از ترایاک(دیمر دیجیتال)

مدار فوق یک سوئیچ ac است و دارای مدار اسنابر نیز است(خازن-مقاومت در خروجی)

3-مدار بخش فیدبک و سنجش دمای المنت(سنسور دمای ds18b20)

نحوه عملکرد مدار:

در این مدار ابتدا لحظه گذر از صفر موج سینوسی برق شهر توسط وقفه خارجی میکرو شناسایی میشود و ما 8 میلی ثانیه فرصت داریم تا گیت ترایاک را آتش کنیم

حالا اگه هرچه زودتر آتش کنیم سهم بیشتری از موج سینوسی نصیب خروجی می شود و ولتاژ خروجی بیشتر خواهد بود.

اما قسمت فیدبک دما،در اینجا ما یک نقطه ست پویینی داریم که قصد داریم دما به آن نقطه برسد،توسط سنسور دما ما هر لحظه دمای المنت را اندازه گیری میکنیم و و طبق دما و میزان خطا در کنترل کننده pid گیت ترایاک را در لحظات مختلف آتش میکنیم تا بتوانیم دمای المنت را به ست پویینت برسانیم.

دقت کنید که برای کنترل به روش pid ابتدا باید سیستم را شناسایی کنیم ، یعنی مثلا در این پروژه بیاییم ولتاژ های مختلف به المنتمون بدیم(توسط مدار زیروکراسینگ و ترایاک) و دمای اون رو اندازی بگیریم،یعنی نمودار ولتاژ بر حسب دما،حالا ما چندین حالت داریم که وارد بحث تخصصی pid میشه که راحترین اون نمودار خطی هستش،در اکثر پروژه ها نمودار ها خطی هستند(اگر غیر خطی باید بازه بندی کنیم و سیستم دارای تاخیر بود پارامترشو در نظر بگیریم و …. که میگذریم ازش)

پس از بدست آووردن نمونه ها باید ضرایب کنترل کننده pid رو بدست بیاریم

برای محاسبه ضرایب چندین روش وجود دارد:

1-آزمون خطا(بهترین روش-» نیاز به دانش خاصی ندارد:باید انقد ضرایب مختلف بدین تا به سرعت و دقت دلخواه برسید-سخت نیست زیاد بعده دوسه بار تست دستتون میاد)

2-روش استفاده از نرم افزار متلب و تیون کردن ضرایب(-»آموزشش اینجا)

3-استفاده از روش زیگلر-نیکولز(روش قدیمی ولی پر استفاده-»آموزشش در زیر )

استفاده از حلقه باز

طبق این روش ابتدا باید فیدبک را از مدار باز کرد تا مدار به یک حلقه باز تبدیل شود. سپس ورودی پله را به مدار اعمال می‌کنیم و سپس پارامترهای مورد نیاز جدول زیگلر نیکولز را از روی شکل خروجی شبیه سازی شدهٔ مدار فوق بدست می‌آوریم:Kp , T , Td بطوری که Kp نسبت اختلاف مقدار نهایی از مقدار اولیهٔ پاسخ به نسبت همان اختلاف از ورودی می‌باشد:[۴]

Kp=(y(∞)-y(0))/(u(∞)-u(0

همچنین Td زمان تاخیر و نیز T فاصله زمانی بین انتهای زمان تاخیر تا زمانی که خروجی به ۰٫۶۳۷ مقدار نهایی خود می‌رسد[۵]

نهایتاً ضرایب را می‌توان از جدول تجربی روبرو که توسط زیگلر – نیکلز ارائه شد پیدا کرد.

استفاده از حلقه بسته

بدین منظور میبایست ابتدا بلوک های مشتق گیر و انتگرال گیر را از مدار جدا شوند و در بین بلوک کنترلی مدار تنها بلوک تناسبی ( معادل P ) برقرار باشد . حذف دیگر عوامل کنترلی در تئوری به معنی بینهایت فرض کردن TI و صفر فرض کردن Td میباشد . لازم به ذکر است معادله اصلی کنترل PID در هر دو حالت به فرم G(s)=Kc*(1+1/(TIs)+Td *S) plant میباشد

سپس ورودی پله را اعمال کرده و از مقادیر کوچک Kc شروع کرده تا زمانی که نمودار خروجی نوسانی گردد . در این صورت دوره نوسان را معادل Pu و گین نوسان ساز را Kcu مینامیم بر این اساس ضرایب PID بر طبق جدول زیر خواهد بود :

پس از محاسبه ضرایب باید روابط کنترل کننده pid رو به زبان سی بنوسیم تا بتونیم اون رو در برنامه میکرو قرار بدیم و اجراش کنیم.

توضیحات پروژه: در پروژه زیر من تمامی روابطش رو به زبان سی در کامپایلر کدویژن برای میکروی مگا 8 نوشتم و همچنین مدارش رو در آلتیوم دیزاینر با ترایاک 40 امپری  bta41 زراحی کردم که به راحتی میتونید ازش استفاده کنید و در پروژتون به کار ببرید.

همچنین مدار دارای LCDکاراکتری 16X2 است که تمامی مقادیر و خطا و … روی LCD نمایش داده می شود و کلید های کنترلی هم روی مدار جهت تنظیم پارامتر ست پویینت قرار دارد.

 

برای دریافت پروژه میتونید به تلگرام بنده مراجعه کنید

MicroDroidPrj.ir@

دیدگاه بگذارید

avatar