سود:
- امکان توضیح و اعمال اصطلاحات و اثرات P، I، D کنترل کننده PID بر روی هوش مصنوعی با زمینه مناسب
- امکان انجام گام به گام روش های تنظیم زیگلر نیکولز و تجربی با کمک هوش مصنوعی
- توانایی تشخیص و حذف تلههای PID مانند باز کردن یکپارچه، نویز مشتق در توصیههای هوش مصنوعی
ثابت نگه داشتن دمای کوره، هدایت سرعت موتور در مقدار دلخواه، متعادل کردن زاویه پهپاد. در قلب همه آنها یک الگوریتم کنترل وجود دارد. رایج ترین آنها کنترل کننده PID است که ستون فقرات صنعت است. PID؛ این ساده، قوی است و روی طیف وسیعی از مشکلات کار می کند. اما "ساده" به معنای "تنظیم آسان" نیست: یک PID که به درستی تنظیم نشده است، نوسان می کند، زیاد می شود، دیر می نشیند یا کاملاً ناپایدار می شود. هوش مصنوعی در اینجا یک دستیار ارزشمند است: اصطلاحات PID را توضیح می دهد، روش های تنظیم را راهنمایی می کند، مشکلات معمولی را تشخیص می دهد و کد تنظیم را می نویسد. با این حال، تنظیم نهایی با مشاهده رفتار فیزیکی سیستم شما انجام می شود و تصمیم پایداری متعلق به مهندس است. در این واحد نحوه نصب، تنظیم و تأیید تلههای PID با هوش مصنوعی را پوشش میدهیم.
سه شرط PID
PID به سیگنال خطا (e = target - اندازهگیری شده) به سه روش پاسخ میدهد:
مدت
او به چه چیزی نگاه می کند؟
اثر
در افراط
P (متناسب)
خطای فعلی
پاسخ سریع
نوسان، خطای دائمی
من (یکپارچه)
خطای گذشته انباشته شده
خطای دائمی را بازنشانی می کند
بیش از حد، باد کردن، نوسان
د (مشتق)
نرخ تغییر خطا
میرایی بیش از حد را کاهش می دهد
نویز را تقویت کنید
خلاصه کلامی: P به سؤالات «الان چقدر دور هستم»، «چقدر دور هستم»، «چقدر سریع دارم نزدیک می شوم» پاسخ می دهد. یک کنترلر خوب هر سه را متعادل می کند.
کلاس PID: def __init__(خود، Kp، Ki، Kd، output_min=-100، output_max=100): self.Kp، self.Ki، self.Kd = Kp، Ki، Kd self.out_min، self.out_max = output_min، output_max self.integral.0v = 0. محاسبه (خود، هدف، اندازهگیری شده، dt): خطا = هدف - اندازهگیری شده # P p = خود. Kp * خطای # I -- self.integral با حفاظت از برآمدگی += خطا * dt i = self.Ki * self.integral # D -- مشتق به نویز حساس d = خود. Kd * (خطا - self.previous_error = self.previous_error = p. خروجی را اشباع کنید و خروجی را محدود کنید اگر خروجی > self.output_max: خروجی = self.out_max self.integral -= خطا * dt # anti-windup: لغو خروجی انتگرال elif <self.output_min: خروجی = self.output_min self.integral -= خطا * dt خروجی بازگشت
این کد یک "PID آموزشی" نیست، بلکه یک اسکلت نزدیک به منطق تولید است: شامل اشباع خروجی و ضد باد کردن است. بسیاری از PID های ساده ارائه شده توسط هوش مصنوعی این دو حفاظت را دور می زنند. بدون آنها، هنگامی که محرک به حد خود می رسد، انتگرال متورم می شود و سیستم به طور غیرمنتظره ای بیش از حد افزایش می یابد.
نکته: هنگامی که از هوش مصنوعی برای PID میخواهید بگویید «اشباع خروجی و ضد باد را اضافه کنید، مشتق را در اندازهگیری به عبارت مشتق اعمال کنید». این سه ضمیمه PID کتاب درسی را به PID فیلد تبدیل می کند.
انتگرال باد و نویز مشتق
دو تله کلاسیک رایج ترین علل شکست PID هستند:
باد کردن انتگرال: هنگامی که محرک اشباع می شود (مثلاً موتور در حال حاضر با قدرت کامل است) خطا ادامه می یابد و عبارت انتگرال به رشد خود ادامه می دهد. این انتگرال باد شده منجر به افزایش بیش از حد بزرگ در هنگام رسیدن سیستم به هدف می شود. راه حل: وقتی خروجی اشباع شده است، انتگرال را متوقف یا به عقب برگردانید (ضد باد، در کد بالا نشان داده شده است).
نویز مشتق: عبارت D مشتق خطا را می گیرد. مشتق اندازه گیری نویز بسیار پر سر و صداتر است و محرک را به لرزه در می آورد. راه حل: گرفتن مشتق از اندازه گیری (مشتق اندازه گیری به جای خطا)، افزودن فیلتر پایین گذر به عبارت مشتق.
# کاهش نویز مشتق: مشتق اندازه گیری + فیلتر_خام = -(اندازه گیری شده - self.previous_measured) / dt به جای خطا
هوش مصنوعی در شناسایی این مشکلات خوب است. اگر می گویید "PID من وقتی به هدف می رسد بسیار زیاد است"، باز کردن را توصیه می کند. اما شما با اندازهگیری اینکه آیا رفع مشکل روی سیستم شما کار میکند یا خیر، تأیید میکنید.
تنظیم با زیگلر نیکولز
یک روش کلاسیک برای یافتن سود (Kp، Ki، Kd) از ابتدا، Ziegler-Nichols است. ماهیت آن: شروع فقط با P و افزایش Kp تا زمانی که سیستم به نوسان پایدار برسد. Kp، Ki، Kd را از جدول با بهره بحرانی Ku و دوره نوسان Tu در این نقطه محاسبه کنید.
کنترل کننده
kp
Ti
Td
پ.
0.5 · کو
–
–
P.I.
0.45 · کو
Tu/1.2
–
PID
0.6· Ku
Tu/2
Tu/8
مراحل زیگلر-نیکولز (طرح توسط هوش مصنوعی): 1. Ki=0، Kd=0 را در نظر بگیرید. فقط P.2 را اجرا کنید. به آرامی Kp را افزایش دهید تا زمانی که نوسان پایدار و پایدار شروع شود.3. این Kp = Ku (بهره بحرانی)، دوره نوسان = Tu.4. Kp, Ti, Td را از جدول محاسبه کنید. Ki = Kp/Ti، Kd = Kp*Td.5. با این مقادیر شروع کنید، سپس ترفندهای آزمایشی را انجام دهید.
احتیاط: زیگلر نیکولز عمداً سیستم را به حد پایداری خود می رساند (نوسان پایدار). هنگام انجام این کار روی سخت افزار واقعی، خطر فشار مکانیکی، جریان بیش از حد و خطر وجود دارد. در صورت امکان ابتدا در شبیه سازی انجام دهید سپس با محدودیت توان کم و E-stop در سخت افزار کار کنید. Ku پیشنهاد شده توسط هوش مصنوعی یک نقطه شروع است، در سیستم شما اندازه گیری و تایید می شود.
تشخیص به کمک هوش مصنوعی
شما می توانید رفتار PID را با توصیف آن برای هوش مصنوعی تشخیص دهید. علامت → نقشه برداری علت احتمالی:
علامت
علت احتمالی
جهتی که هوش مصنوعی پیشنهاد می کند
نشستن آهسته
Kp/Ki کم
افزایش kp
خطای دائمی
من غایب یا خیلی کم هستم
افزودن/افزایش Ki
بیش از حد + نوسان
Kp/Ki بالا، بدون D
Kd را اضافه کنید، Ki را کاهش دهید
محرک می لرزد
نویز مشتق
فیلتر/کاهش D
زمانی که به بیش از حد بزرگ رسیدید
جمع شدن انتگرال
ضد باد را اضافه کنید
اعلان ضعیف / اعلان قوی
ضعیف:"به PID امتیاز بدهید."(کدام سیستم؟ رفتار چگونه است؟ آیا اندازه گیری هایی وجود دارد؟ اعداد تصادفی می آیند.)STRONG:"من PID را برای کنترل سرعت موتور DC تنظیم می کنم. در حال حاضر، Kp=2، Ki=0.5، Kd=0. 35٪ در ورودی پله بیش از حد است. زمانی که یک ثانیه به هدف می رسد، زمان زیادی طول می کشد. 100 هرتز است دلایل احتمالی این علائم را فهرست کنید، که به دست میآیند: «پیشنهاد کنید در کدام جهت آن را تغییر دهم و به من بگویید که چگونه میتوانم بررسی کنم که آیا بیش از حد یک ورقه کامل است یا خیر».
کیف کوچک
مهندس کنترل Kerem کنترل دمای یک اکسترودر را تنظیم می کند. با دستاوردهای پیشنهاد شده توسط هوش مصنوعی، سیستم به سرعت به هدف می رسد، اما در هر تغییر مجموعه، یک مازاد بزرگ ایجاد می کند و به آرامی مستقر می شود. Kerem این علامت را به هوش مصنوعی توضیح می دهد. هوش مصنوعی به باد شدن یکپارچه مشکوک است زیرا بخاری برای مدتی در قدرت کامل (اشباع) باقی می ماند. Kerem ضد باد را به کد PID اضافه می کند و بیش از حد به طور قابل توجهی کاهش می یابد. اما اکنون یک لرزش جزئی در خروجی بخاری وجود دارد. او این را به عبارت D نسبت می دهد که نویز سنسور دما را تقویت می کند و یک فیلتر پایین گذر به مشتق اضافه می کند. در نهایت، تقریباً دستاوردهای Ziegler-Nichols را تأیید می کند و تنظیم دقیق تجربی را انجام می دهد. هوش مصنوعی تشخیص سریع دارد. اما Kerem هر تصحیح را با اندازهگیری پاسخ گام واقعی تأیید میکرد - چه برآمدگی تصحیح شده باشد یا سوسو زدن از بین رفته باشد، فقط میتوان آن را به صورت گرافیکی مشاهده کرد.
اشتباهات رایج
- عدم اضافه کردن اشباع خروجی و ضد باد کردن به PID و تجربه بیش از حد زیاد در حد محرک.
- گرفتن مشتق از مشتق اندازه گیری نویز و ارتعاش محرک.
- با فرض ثابت بودن dt، در حالی که دوره نمونه برداری متفاوت است.
- انجام تست نوسان زیگلر نیکولز بر روی سخت افزار بدون رعایت نکات ایمنی.
- پذیرش درآمدهای ایجاد شده توسط هوش مصنوعی به عنوان "نهایی" بدون تأیید سیستم خاص.
- تغییر یک بهره با گام های بسیار بزرگ و سوق دادن سیستم به سمت بی ثباتی.
به طور خلاصه
- PID؛ با P (خطای فعلی)، I (خطای انباشته شده)، D (نرخ تغییر خطا) واکنش نشان می دهد.
- PID فیلد باید شامل اشباع خروجی، فیلتر ضد باد و مشتق باشد.
- خروجی یکپارچه از حد زیاد، نویز مشتق باعث لرزش محرک می شود.
- زیگلر نیکولز شروع به افزایش می کند. با تدابیر امنیتی در سخت افزار پیاده سازی می شود.
- AI در تشخیص سریع از علامت تا علت است. تصحیح با اندازه گیری تأیید می شود.
- dt واقعی اندازه گیری شد. تغییرات سود در مراحل کوچک و مشاهده انجام می شود.
وظیفه کاربردی
یک سیستم (موتور/هیتر واقعی یا یک مدل ساده مرتبه اول/دوم در پایتون) انتخاب کنید و از هوش مصنوعی بخواهید یک کلاس PID با اشباع + ضد باد تولید کند. سپس: (1) رفتار نوسان را فقط با شروع با P و افزایش Kp مشاهده کنید، (2) Ki را اضافه کنید تا خطای دائمی را حذف کنید و ببینید که چگونه افزایش بیش از حد افزایش مییابد، (3) با روشن و خاموش کردن ضد باد کردن، اثر روی اورش بزرگ را مقایسه کنید. پاسخ گام را در هر مرحله ترسیم کنید و توجه داشته باشید که کدام سود کدام رفتار را تغییر می دهد. دستاوردهای زیگلر نیکولز را با دستاوردهایی که خودتان پیدا کردید مقایسه کنید.