בקר PID

PID הוא רכיב המשמש לשליטה על מערכות באמצעות בקרת משוב. משתמשים בו למשל במערכת "בקרת שיוט" המותקנת במכוניות מסוימות, ושתפקידה לשמור על מהירות נסיעה קבועה בתנאי שטח מגוונים. השליטה במהירות נעשית על ידי ויסות אוטומטי של זרימת הדלק למנוע - כלומר המערכת "לוחצת במקומנו בצורה אוטומטית על דוושת הדלק“ בהתאם לתוואי הדרך. נראה דוגמה: פשוט לחצו למטה על "נגן".

כל פרק זמן קבוע, הבקר במכונית בודק את ההפרש בין המהירות הרצויה למהירות הנוכחית. ערך זה, ההפרש בין הערך רצוי למצוי, שיכול להיות חיובי או שלילי, הוא השגיאה אותה צריכה המערכת למזער. כדי לחשב את המשוב, כמה דלק להזריק למנוע, הבקר מחשב בנוסף לערך השגיאה, עוד שני פרמטרים נוספים הנגזרים ממנה: פרמטר שנקרא "האינטגרל" שהוא הסכום המצטבר של השגיאות שחושבו בעבר, ונותן אינדיקציה לשגיאה המצטברת, ופרמטר שנקרא לו "הנגזרת" שהוא תלוי בהפרש בין השגיאה הנוכחית לשגיאה במדידה הקודמת, ונותן אינדיקציה על מגמת השינוי הנוכחי.

באופן מפתיע, בהרבה מקרים חישוב פשוט של ממוצע משוקלל בין שלושת הגורמים הללו (השגיאה, האינטגרל והנגזרת) תוך הכפלה במשקלים שחושבו מראש עוד בשלב בניית המערכת, מספק ערך מתאים (בדוגמה שלנו: אינדיקציה לכמה דלק יש להזרים), המאפשר להגיע בצורה הדרגתית למטרה!. חישוב זה לא מביא ישירות למהירות הנדרשת, שכן המערכת מורכבת, מכילה פרמטרים לא ידועים ומוגבלת בקצב המדידה ובזמן התגובה. אולם הוא מאפשר לשנות את המהירות בצורה הדרגתית. המשוואה הפשוטה:

output = Kp * error + Ki * integral + Kd * derivative

מציאת המשקלים היא תהליך מורכב, ומשתמשים בדרך כלל בתוכנות שעושות הדמיה למערכת אמיתית. הקוד בהדגמה לקוח מדוגמה פשטנית מהרשת. כיוון שהתהליך מורכב, הבאנו דוגמה מצומצמת להדגים כיצד גודל מקדם האינטגרציה Ki משפיע:

ניתן ללמוד שאם המקדם קטן מידי, המערכת מגיבה באיטיות לשינויים ("לא מודעת מספיק שיש שגיאה מצטברת שדורשת תגובה חזקה"), אם המקדם גדול מדי, המערכת מגיבה בצורה עצבנית ולעיתים לא מרוסנת. בתנאי רעש, למשל עקב טעויות מדידה, מקדם האינטגרציה נהייה דומיננטי, כי הנגזרת רגישה מידי לרעשים . בנוסף, יש חשיבות לקצב העבודה של הבקר, אם הוא איטי מדי, המערכת לא עוקבת מספיק מהר אחרי שינוי המהירות, ויש קפיצות.

ללא רעש

מקדם אינטגרציה (0.1)

0.1