Honeywell Experion PKS C300 Series C controller (CC-PCNT05) in a DCS cabinet with FTE A/B indicators

فیلتر میانگین متحرک در کنترل آنالوگ DCS و PLC

فیلتر میانگین متحرک، هموارساز پنجره‌ای لغزان است که بیشتر مهندسان ابزار دقیق آن را در مسیرهای آنالوگ DCS و PLC به کار می‌برند. در اینجا نحوه کار پنجره، تأثیر...

یک مسیر آنالوگ DCS یا PLC را باز کنید و اغلب یک بلوک تابع می‌بینید که کاری جز میانگین‌گیری انجام نمی‌دهد. این بلوک پنج نمونه آخر را نگه می‌دارد، آن‌ها را با هم جمع می‌کند، بر پنج تقسیم می‌کند و نتیجه را به‌عنوان PVای می‌نویسد که PID واقعاً می‌بیند. این بلوک یک فیلتر میانگین متحرک است—همان هموارساز پنجره لغزان که بیشتر مهندسان ابزار دقیق ابتدا سراغش می‌روند، چون محاسباتش روشن و تأخیرش قابل پیش‌بینی است.

این فیلتر، تنظیم میرایی ترانسمیتر نیست و فیلتر بازگشتی مرتبه‌اول (PT1) هم نیست. هدف یکسان است—کاهش نویز و قابل‌استفاده نگه‌داشتن متغیر فرایند—اما الگوریتم و هزینه تأخیر متفاوت است.

کنترلر Honeywell Experion PKS C300 Series C (CC-PCNT05) در یک کابینت DCS با نشانگرهای FTE A/B

Honeywell Experion PKS C300 در یک کابینت Series C: نمونه‌ای از کنترلر DCS که در آن PVهای آنالوگ معمولاً پیش از رسیدن به PID، در بلوک‌های تابع محیط اجرای کنترل هموار می‌شوند.

پنجره لغزان، نه حافظه بازگشتی

جدیدترین N نمونه را نگه دارید. در هر اسکن جدید، قدیمی‌ترین مقدار را حذف کنید، جدیدترین مقدار را بیفزایید و میانگین حسابی مقادیر باقی‌مانده را خروجی دهید:

Y(n) = [X(n) + X(n−1) + … + X(n−N+1)] / N

اگر ورودی آنالوگ یک‌بار در هر ثانیه اسکن شود و N = 10 باشد، هر خروجی میانگین ده ثانیه اخیر است. عرض پنجره ثابت می‌ماند؛ با ورود یک نمونه، یک نمونه خارج می‌شود. کل سازوکار همین است.

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

خانواده PLCهای ABB AC500 شامل I/O استاندارد، CPUهای اترنت و ماژول‌های ایمنی AC500-S

ABB AC500 (شامل I/O ایمنی AC500-S): همین میانگین‌گیری پنجره لغزان معمولاً در Automation Builder به‌صورت یک بلوک تابع یا قطعه کد ST پیاده‌سازی می‌شود، نه در قالب منویی پنهان در ترانسمیتر.

دو پارامتر: طول پنجره و زمان نمونه‌برداری

قدرت فیلتر فقط به N بستگی ندارد. زمان پاسخ برابر است با N × دوره نمونه‌برداری. مقدار N = 10 در 1 ثانیه، پنجره‌ای ده‌ثانیه‌ای ایجاد می‌کند. همین N در 100 میلی‌ثانیه، پنجره‌ای یک‌ثانیه‌ای است. این دو را با هم در نظر بگیرید؛ وگرنه یک تنظیم «خوب» را از یک حلقه روی حلقه‌ای دیگر کپی می‌کنید و تعجب می‌کنید که چرا شیر حالا به‌سختی حرکت می‌کند.

N بزرگ‌تر نویز بیشتری را حذف می‌کند و تأخیر بیشتری به وجود می‌آورد. پس از یک تغییر پله‌ای واقعی در اندازه‌گیری، PV فیلترشده به N نمونه نیاز دارد تا کاملاً به مقدار جدید برسد. در یک غلاف دمایی کند، این تأخیر اغلب قابل‌قبول است. اما در حلقه فشار یا دبی که باید اغتشاش بار را دفع کند، پنجره بیش‌ازحد طولانی باعث می‌شود PID تنبل به نظر برسد، درحالی‌که تأخیر از فیلتر ناشی می‌شود.

نویز دوره‌ای تنها حالتی است که می‌توانید طول پنجره را هدفمند انتخاب کنید. اگر تداخل تقریباً هر یک ثانیه تکرار شود و با نرخ 100 میلی‌ثانیه اسکن کنید، N = 10 یک چرخه کامل را پوشش می‌دهد و ریپل را به سمت صفر میانگین می‌گیرد. این بهترین عملکرد میانگین متحرک است: پنجره را با دوره اغتشاش هماهنگ کنید، نه با یک عدد رُند که در نمودار روند «هموار به نظر برسد».

انتخاب نتیجه هزینه
N کوچک ردیابی سریع‌تر تغییرات واقعی فرایند نویز باقی‌مانده بیشتر روی PV
N بزرگ روند هموارتر و حذف بهتر جهش‌ها تأخیر بیشتر؛ پاسخ کندتر PID
هماهنگ‌کردن N با دوره نویز تضعیف شدید آن چرخه در صورت تغییر فرکانس نویز، نامناسب
نمونه‌برداری سریع‌تر با همان N پنجره زمانی واقعی کوتاه‌تر مصرف بیشتر CPU و حافظه بافر

مقایسه میانگین متحرک با فیلتر مرتبه‌اول (PT1)

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

در یک DCS یا PLC کامل، این استدلال مربوط به حافظه به‌ندرت تعیین‌کننده است. پردازنده‌های Honeywell Experion PKS C300 در سخت‌افزار Series C C300 و CPUهای ABB AC500 در سری PLCهای ABB فضای کافی برای نگهداری تاریخچه کوتاه یک سیگنال آنالوگ دارند. هموارساز را جایی برنامه‌ریزی کنید که قابل‌مشاهده باشد، N و نرخ اسکن را کنار PID مستندسازی کنید و میرایی ترانسمیتر را روی مقداری مشخص و معمولاً کوچک بگذارید تا بدون آگاهی، دو فیلتر پشت‌سرهم ایجاد نکنید.

کارهایی که انجام نمی‌دهد

تأخیر، هزینه هر هموارساز است. دما اغلب این تأخیر را تحمل می‌کند. حلقه‌های فشار و دبی معمولاً چنین نیستند—اگر این PVها را بیش‌ازحد فیلتر کنید، کنترلر با یک فرایند تأخیردار درگیر می‌شود.

جهش‌ها معمولاً با میانگین‌گیری پنجره‌ای به‌خوبی حذف می‌شوند. اما رانش آهسته چنین نیست: فیلتر پایین‌گذر یک روند صعودی یا نزولی را دنبال می‌کند، فقط با تأخیر. اگر مشکل از سرگردانی نقطه صفر یا گرفتگی خط ایمپالس است، اندازه‌گیری را اصلاح کنید؛ آن را پشت یک پنجره طولانی‌تر پنهان نکنید.

میانگین متحرک ساده در لبه پنجره نیز جهش اضافی ایجاد نمی‌کند—وزن همه نمونه‌های بافر یکسان است. میانگین متحرک وزن‌دار (که در آن نمونه‌های جدیدتر وزن بیشتری دارند) یک تغییر پله‌ای را کمی سریع‌تر دنبال می‌کند و به محاسبات بیشتری نیاز دارد. وقتی مشکل حلقه سریع، تأخیر است و همچنان به میانگین‌گیری نیاز دارید، از نوع وزن‌دار استفاده کنید؛ اما وقتی می‌خواهید رفتار فیلتر برای شیفت شب بعدی کاملاً روشن باشد، همان وزن‌های برابر را به کار ببرید.

درباره نویسنده

النا وارگاس | مهندس ابزار دقیق فرایند

النا وارگاس روی مسیرهای سیگنال آنالوگ در واحدهای فرایندی کار می‌کند—پیکربندی ترانسمیتر، فیلترگذاری DCS/PLC و پاسخ حلقه در پلتفرم‌های Experion PKS و PAC. بخش عمده کار میدانی او مربوط به حلقه‌های فشار، دبی و دماست؛ حلقه‌هایی که در آن‌ها فیلتر نامتناسب خود را به‌صورت تأخیر نشان می‌دهد، نه به‌شکل یک روند مرتب و بی‌نقص.

فیلتر میانگین متحرک در کنترل آنالوگ DCS و PLC

فیلتر میانگین متحرک، هموارساز پنجره‌ای لغزان است که بیشتر مهندسان ابزار دقیق آن را در مسیرهای آنالوگ DCS و PLC به کار می‌برند. در اینجا نحوه کار پنجره، تأثیر N و زمان نمونه‌برداری بر تأخیر، و زمان ...

یک مسیر آنالوگ DCS یا PLC را باز کنید و اغلب یک بلوک تابع می‌بینید که کاری جز میانگین‌گیری انجام نمی‌دهد. این بلوک پنج نمونه آخر را نگه می‌دارد، آن‌ها را با هم جمع می‌کند، بر پنج تقسیم می‌کند و نتیجه را به‌عنوان PVای می‌نویسد که PID واقعاً می‌بیند. این بلوک یک فیلتر میانگین متحرک است—همان هموارساز پنجره لغزان که بیشتر مهندسان ابزار دقیق ابتدا سراغش می‌روند، چون محاسباتش روشن و تأخیرش قابل پیش‌بینی است.

این فیلتر، تنظیم میرایی ترانسمیتر نیست و فیلتر بازگشتی مرتبه‌اول (PT1) هم نیست. هدف یکسان است—کاهش نویز و قابل‌استفاده نگه‌داشتن متغیر فرایند—اما الگوریتم و هزینه تأخیر متفاوت است.

کنترلر Honeywell Experion PKS C300 Series C (CC-PCNT05) در یک کابینت DCS با نشانگرهای FTE A/B

Honeywell Experion PKS C300 در یک کابینت Series C: نمونه‌ای از کنترلر DCS که در آن PVهای آنالوگ معمولاً پیش از رسیدن به PID، در بلوک‌های تابع محیط اجرای کنترل هموار می‌شوند.

پنجره لغزان، نه حافظه بازگشتی

جدیدترین N نمونه را نگه دارید. در هر اسکن جدید، قدیمی‌ترین مقدار را حذف کنید، جدیدترین مقدار را بیفزایید و میانگین حسابی مقادیر باقی‌مانده را خروجی دهید:

Y(n) = [X(n) + X(n−1) + … + X(n−N+1)] / N

اگر ورودی آنالوگ یک‌بار در هر ثانیه اسکن شود و N = 10 باشد، هر خروجی میانگین ده ثانیه اخیر است. عرض پنجره ثابت می‌ماند؛ با ورود یک نمونه، یک نمونه خارج می‌شود. کل سازوکار همین است.

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

خانواده PLCهای ABB AC500 شامل I/O استاندارد، CPUهای اترنت و ماژول‌های ایمنی AC500-S

ABB AC500 (شامل I/O ایمنی AC500-S): همین میانگین‌گیری پنجره لغزان معمولاً در Automation Builder به‌صورت یک بلوک تابع یا قطعه کد ST پیاده‌سازی می‌شود، نه در قالب منویی پنهان در ترانسمیتر.

دو پارامتر: طول پنجره و زمان نمونه‌برداری

قدرت فیلتر فقط به N بستگی ندارد. زمان پاسخ برابر است با N × دوره نمونه‌برداری. مقدار N = 10 در 1 ثانیه، پنجره‌ای ده‌ثانیه‌ای ایجاد می‌کند. همین N در 100 میلی‌ثانیه، پنجره‌ای یک‌ثانیه‌ای است. این دو را با هم در نظر بگیرید؛ وگرنه یک تنظیم «خوب» را از یک حلقه روی حلقه‌ای دیگر کپی می‌کنید و تعجب می‌کنید که چرا شیر حالا به‌سختی حرکت می‌کند.

N بزرگ‌تر نویز بیشتری را حذف می‌کند و تأخیر بیشتری به وجود می‌آورد. پس از یک تغییر پله‌ای واقعی در اندازه‌گیری، PV فیلترشده به N نمونه نیاز دارد تا کاملاً به مقدار جدید برسد. در یک غلاف دمایی کند، این تأخیر اغلب قابل‌قبول است. اما در حلقه فشار یا دبی که باید اغتشاش بار را دفع کند، پنجره بیش‌ازحد طولانی باعث می‌شود PID تنبل به نظر برسد، درحالی‌که تأخیر از فیلتر ناشی می‌شود.

نویز دوره‌ای تنها حالتی است که می‌توانید طول پنجره را هدفمند انتخاب کنید. اگر تداخل تقریباً هر یک ثانیه تکرار شود و با نرخ 100 میلی‌ثانیه اسکن کنید، N = 10 یک چرخه کامل را پوشش می‌دهد و ریپل را به سمت صفر میانگین می‌گیرد. این بهترین عملکرد میانگین متحرک است: پنجره را با دوره اغتشاش هماهنگ کنید، نه با یک عدد رُند که در نمودار روند «هموار به نظر برسد».

انتخاب نتیجه هزینه
N کوچک ردیابی سریع‌تر تغییرات واقعی فرایند نویز باقی‌مانده بیشتر روی PV
N بزرگ روند هموارتر و حذف بهتر جهش‌ها تأخیر بیشتر؛ پاسخ کندتر PID
هماهنگ‌کردن N با دوره نویز تضعیف شدید آن چرخه در صورت تغییر فرکانس نویز، نامناسب
نمونه‌برداری سریع‌تر با همان N پنجره زمانی واقعی کوتاه‌تر مصرف بیشتر CPU و حافظه بافر

مقایسه میانگین متحرک با فیلتر مرتبه‌اول (PT1)

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

در یک DCS یا PLC کامل، این استدلال مربوط به حافظه به‌ندرت تعیین‌کننده است. پردازنده‌های Honeywell Experion PKS C300 در سخت‌افزار Series C C300 و CPUهای ABB AC500 در سری PLCهای ABB فضای کافی برای نگهداری تاریخچه کوتاه یک سیگنال آنالوگ دارند. هموارساز را جایی برنامه‌ریزی کنید که قابل‌مشاهده باشد، N و نرخ اسکن را کنار PID مستندسازی کنید و میرایی ترانسمیتر را روی مقداری مشخص و معمولاً کوچک بگذارید تا بدون آگاهی، دو فیلتر پشت‌سرهم ایجاد نکنید.

کارهایی که انجام نمی‌دهد

تأخیر، هزینه هر هموارساز است. دما اغلب این تأخیر را تحمل می‌کند. حلقه‌های فشار و دبی معمولاً چنین نیستند—اگر این PVها را بیش‌ازحد فیلتر کنید، کنترلر با یک فرایند تأخیردار درگیر می‌شود.

جهش‌ها معمولاً با میانگین‌گیری پنجره‌ای به‌خوبی حذف می‌شوند. اما رانش آهسته چنین نیست: فیلتر پایین‌گذر یک روند صعودی یا نزولی را دنبال می‌کند، فقط با تأخیر. اگر مشکل از سرگردانی نقطه صفر یا گرفتگی خط ایمپالس است، اندازه‌گیری را اصلاح کنید؛ آن را پشت یک پنجره طولانی‌تر پنهان نکنید.

میانگین متحرک ساده در لبه پنجره نیز جهش اضافی ایجاد نمی‌کند—وزن همه نمونه‌های بافر یکسان است. میانگین متحرک وزن‌دار (که در آن نمونه‌های جدیدتر وزن بیشتری دارند) یک تغییر پله‌ای را کمی سریع‌تر دنبال می‌کند و به محاسبات بیشتری نیاز دارد. وقتی مشکل حلقه سریع، تأخیر است و همچنان به میانگین‌گیری نیاز دارید، از نوع وزن‌دار استفاده کنید؛ اما وقتی می‌خواهید رفتار فیلتر برای شیفت شب بعدی کاملاً روشن باشد، همان وزن‌های برابر را به کار ببرید.

درباره نویسنده

النا وارگاس | مهندس ابزار دقیق فرایند

النا وارگاس روی مسیرهای سیگنال آنالوگ در واحدهای فرایندی کار می‌کند—پیکربندی ترانسمیتر، فیلترگذاری DCS/PLC و پاسخ حلقه در پلتفرم‌های Experion PKS و PAC. بخش عمده کار میدانی او مربوط به حلقه‌های فشار، دبی و دماست؛ حلقه‌هایی که در آن‌ها فیلتر نامتناسب خود را به‌صورت تأخیر نشان می‌دهد، نه به‌شکل یک روند مرتب و بی‌نقص.

یک نظر بگذارید

لطفاً توجه داشته باشید که نظرات باید قبل از انتشار تأیید شوند.