בקר PID

מערכת [[בקרת שיוט היא מערכת נפוצה ומוכרת בתחום הרכב, המבוססת על בקר PID<ref></ref> לשם שליטה על מהירות כלי רכב בתנאי דרך משתנים.]]
בקר PID או בקר פרופורציונלי-אינטגרלי-דיפרנציאלי (באנגלית: PID controller or three-term controller or proportional–integral–derivative controller) הוא מנגנון משוב עבור חוגי בקרה, הנמצא בשימוש נרחב במערכות בקרה תעשייתיות, ובמגוון גדול של מערכות בקרה אחרות. תפוצתו הרחבה של הבקר נובעת מהיותו בקר בעל פעולה מתמטית פשוטה להבנה וקלה להטמעה במערכות פיזיקליות רבות, כך שגם משתמש שאינו בעל הבנה עמוקה בתיאוריה העומדת מאחוריו יוכל לבצע בו שימוש ולהתאים אותו למטרותיו, ומכך שזהו הבקר הפשוט ביותר הלוקח בחשבון את ערכי השגיאה בעבר, בהווה ובעתיד, דבר המספק בקרה טובה המספיקה למערכות פיזיקליות רבות<ref></ref>. הבקר מקבל ככניסה את אות השגיאה <math>e(t)</math>, המחושב כהפרש שבין אות ייחוס רצוי (הערך אליו אנו רוצים שהמערכת תגיע) ומשתנה תהליך (הערך המתקבל מהתהליך בפועל), ומוציא פקודה לאחר הפעלת תיקון המבוסס על שלושה רכיבים – פרופורציונלי (P), אינטגרלי (I) ודיפרנציאלי (D), ומכאן שמו.

מבחינה מעשית, כל אחד מרכיבי הבקר מבצע פעולה מתמטית אחרת על אות השגיאה, כאשר מידת השפעתן של כל אחת מהפעולות נקבע על ידי מתכנן הבקר בהתאם לדרישות מהמערכת (פעולה המכונה "כִּוונוּן הבקר"). בשל שיקולים כמו קלות הטמעה, נוחות שימוש ובדיקה ופשטות המערכת, פעמים רבות נעשה שימוש רק בחלק מרכיבי הבקר. החלק הפרופורציונלי והאינטגרלי חיוניים לרוב חוגי הבקרה, והחלק הדיפרנציאלי משמעותי מאוד עבור מערכות לבקרת תנועה (motion control)<ref></ref>. במקרה של שימוש חלקי שכזה ייקרא הבקר פעמים רבות על שם החלקים בהם נעשה שימוש בלבד, כמו לדוג' "בקר PI" עבור בקר המשתמש בחלק הפרופורציונלי והאינטגרלי בלבד.

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

== עקרון פעולה בסיסי ==
=== בקרה בחוג פתוח לעומת בקרה בחוג סגור ===

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

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

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

אות הכניסה למערכת, אותו אנו רוצים בפועל לקבל, נקרא אות הייחוס (reference signal), משום שאליו אנו רוצים שהמערכת תייחס את היציאה, והוא מסומן ב-<math>r(t)</math>. (כאשר האות t בסוגריים מייצגת את העובדה שהוא אות המשתנה בזמן). אות היציאה (output signal) מסומן כ-<math>y(t)</math>. אות השגיאה (error signal) מסומן ב-<math>e(t)</math> ומחושב כהפרש שבין אות הייחוס לאות היציאה, כלומר: <math>e(t)=r(t)-y(t)</math>, ומשמעותו היא עד כמה יציאת המערכת בפועל רחוקה מהיציאה שאנו מעוניינים בה. לכן, התאפסות של אות השגיאה משמעותה שיציאת המערכת היא בדיוק זו שאנו רוצים.

בקר (controller) הוא הרכיב המקבל אות מסוים (כתלות בסוג המערכת), ומוציא אות הנכנס לתהליך במטרה להשיג את היציאה הדרושה. האות היוצא מן הבקר ונכנס לתהליך נקרא אות הבקרה (control signal), ומסומן על ידי <math>u(t)</math>. ניתן לראות שבחוג פתוח הכניסה לבקר היא אות הייחוס, ובחוג סגור הכניסה אליו היא אות השגיאה, אותו אנו רוצים לאפס.

==== שגיאת מצב מתמיד ====
כשאנו מתכננים מערכת בקרה, פעמים רבות נעדיף לבדוק את ביצועיה בעזרת שגיאת המערכת מאשר את היציאה עצמה. שגיאת מצב מתמיד (steady-state error) היא המרחק בין יציאת המערכת בפועל ליציאת המערכת הרצויה כאשר הזמן שואף לאינסוף, או במילים אחרות – לאחר זמן רב, והיא מסומנת בדרך כלל על ידי <math>e_{ss}</math>. לשגיאת המצב המתמיד של מערכת שלוש אפשרויות:
* אפסית – אם נחכה מספיק זמן (כתלות בדרישות מהמערכת), יציאת המערכת תהיה בדיוק היציאה שאנו מעוניינים בה.
* קבועה – לאחר זמן רב, המרחק בין היציאה הרצויה ליציאה בפועל יתייצב על ערך קבוע.
* אינסופית – המרחק בין יציאת המערכת בפועל ליציאה הרצויה ילך ויגדל.

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

=== אופן הפעולה של בקר PID ===
450x450px
המאפיין הייחודי של בקר PID הוא היכולת להשתמש בשלושת רכיבי השליטה – הפרופורציונלי, האינטגרלי והדיפרנציאלי, על מנת להוציא אות בקרה המאפשר שליטה מדויקת ואופטימלית ומזעור השגיאה לאורך זמן. דיאגרמת הבלוקים מראה באופן עקרוני מהן הפעולות המתמטיות אותן מבצע הבקר על אות השגיאה. לאחר ביצוע כל אחת מהפעולות, סוכם הבקר את האותות היוצאים מכל אחד מחלקיו לקבלת אות הבקרה הנכנס לתהליך. הפרמטרים <math>k_p,k_i,k_d</math> הנקבעים על ידי מתכנן הבקר נקראים הגברי/קבועי הבקר והם הקובעים מהי מידת השפעתו של כל אחד מחלקיו. יש לציין כי הניסוח המתמטי המתואר בדיאגרמה עשוי להשתנות בין בקר לבקר, כאשר בחלק מהבקרים ישנו משתנה המכפיל את כל החלקים. עם זאת, תפקידם העקרוני בחוג הבקרה נשאר זהה וניתן, על ידי שינוי הפרמטרים, להשיג תוצאה זהה בכל אחד מסוגי הבקרים.הנפשה המראה כיצד משפיעים משתני הבקר על תגובת המדרגה של החוג הסגור.במודל המוצג, ניתן לתאר את פעולתו ותפקידו של כל אחד מחלקי הבקר באופן הבא:
* הביטוי הפרופורציונלי, P, מכפיל את ערך אות השגיאה הנוכחי בקבוע <math>k_p</math>, ומתייחס לערכה העדכני של השגיאה בלבד. זהו החלק הפשוט ביותר בבקר. חלק זה מוציא אות בקרה הנמצא ביחס ישר לשגיאה הנוכחית. החיסרון בשימוש בחלק זה בלבד הוא העובדה שבצורה כזו נקבל בהכרח סטייה מהערך הסופי הרצוי אותו הכנסנו למערכת, כלומר – שגיאת מצב מתמיד, אותה אין אפשרות להעלים בעזרת שימוש בבקר פרופורציונלי, אלא רק על ידי התערבות נוספת במערכת.
* החלק האינטגרלי, I, מבצע אינטגרציה בזמן על אות השגיאה מתחילת המדידה ועד לרגע החישוב, ומכפיל את התוצאה בקבוע <math>k_i</math>. חלק זה מתייחס לערכי השגיאה מזמן תחילת המדידה עד לרגע החישוב, ובכך בעצם מושפע מערכי העבר של השגיאה. חלק זה נועד לפצות על החסרון המשמעותי של החלק הפרופורציונלי, ולהקטין את הסטייה של המערכת מהערך הרצוי על ידי סכימת ערכי השגיאה לאורך זמן.
* החלק הדיפרנציאלי, D, מבצע גזירה של אות השגיאה לפי הזמן, ומכפיל את התוצאה בקבוע <math>k_d</math>. חלק זה כביכול מתייחס להתנהגות העתידית של אות השגיאה על ידי בדיקה של קצב השינוי שלה, או במילים אחרות – באיזו מהירות היציאה מתקרבת או מתרחקת מאות הייחוס הרצוי. חלק זה רגיש יותר לרעשי מדידה ומקשה על תכנון הבקר בשיטת ניסוי וטעייה, ובתהליכים רבים ניתן להסתדר בלעדיו. עם זאת, בתהליכים אחרים יכולה תגובת המערכת להשתפר בעזרת השימוש בו.
התהליך של קביעת ערכי קבועי הבקר בהתאם לדרישות המערכת נקרא כִּוונוּן הבקר, והוא נעשה על ידי מתכנן המערכת / המשתמש. אחת הסיבות לפופולריות הרבה של בקרי PID, מעבר לפשטותם ויכולתם להביא לתוצאות משביעות רצון ברוב המקרים, היא היכולת של משתמש הקצה לכוון מחדש את קבועי הבקר בהתאם לצרכים הספציפיים שלו. כלומר, באפשרות היצרן לקבוע ערכים ראשוניים של הבקר עבור מערכת מסוימת, ויחד עם זאת באפשרות המשתמש לכוון מחדש את הפרמטרים ללא ידע מעמיק בבקרה, אלא רק על ידי הבנת אופן ההשפעה של כל אחד מענפי הבקר על התנהגות המערכת<ref></ref>.

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

== היסטוריה ==
הוסת הצנטריפוגלי
אחד היישומים הראשונים של בקרה רציפה, לפני המצאת בקר ה-PID, הוא הוסת הצנטריפוגלי, אשר הומצא במאה ה-17 על ידי כריסטיאן הויגנס על מנת לשלוט על המרחק שבין אבני הריחיים בטחנות רוח. התקן זה משתמש בתאוצה הצנטריפוגלית של גוף מסוים על מנת לשלוט במשתנים הקשורים במערכת ומהווה, בפועל, בקר פרופורציונלי. בשנת 1788, לאחר ששמע עליו משותפו, אימץ ג'יימס ואט את הרעיון והתאים אותו למנועי קיטור על מנת לאפשר מהירות סיבוב קבועה שלהם<ref></ref>. הגרסה הראשונה של הוסת סבלה מחסרונות רבים, כשחלקם חסרונות מוּבְנִים של בקר פרופורציונלי – הוסת התאים לעומס מסוים על המערכת ולא הביא לתוצאות הרצויות כאשר העומס השתנה, טווח המהירויות שלו היה קטן, וכן דרש תחזוקה רבה.

בשנת 1868, פרסם ג'יימס קלארק מקסוול מאמר בשם "On Governers", בו הוא מסביר תופעות אי-יציבות של הווסת הצנטריפוגלי תוך שימוש במשוואות דיפרנציאליות לתיאור המערכת. מאמר זה הציג את החשיבות והיעילות שבשימוש במודלים ומתודות מתמטיים להבנה של תופעות מורכבות, וסימנה את התחלת השימוש במתמטיקה תאורטית בתחום הבקרה. אף על פי שעקרונות של תורת הבקרה הופיעו כבר קודם, לא היה זה באופן משמעותי ומשכנע כפי שהיו הדברים באנליזה שהציג מקסוול. עם זאת, במאמרו יצא מקסוול בקריאה למתמטיקאים שימשיכו לפתח את התחום ולפתור את הבעיות שעלו בו. המשך חקר התחום אכן נעשה על ידי אדוארד ראות' וצ'ארלס סטרום בשנת 1874, ובהמשך על ידי אדולף הורוויץ בשנת 1895, אשר תרמו כולם לפיתוח קריטריונים ליציבות מערכות, כאשר על שמם של ראות' והורוביץ נקרא קריטריון ראות'-הורוביץ ליציבות של מערכות דינמיות. בשימושים מאוחרים יותר נעשו שיפורים בבקרי המהירות של מנועים, כאשר בתחום זה ניתן לציין את וילארד גיבס שבשנת 1872 פיתח אנליזה תאורטית לווסת של וואט.
בערך בתקופה זו, התעוררה בעיית בקרה שדרשה בקרה מורכבת יותר מאשר זו שהציע הבקר הפרופורציונלי. בשנת 1868 פותח על ידי רוברט ווייטהד טיל טורפדו הנקרא על שמו (Whitehead torpedo), ואחד האתגרים שעלו עם פיתוח הטורפדו היה הצורך לבקר את העומק בו ינוע הטיל. השימוש בחיישן לחץ בלבד התברר כבעייתי משום שהגבר גדול מדי עלול היה לגרום לטיל לאבד יציבות ולא לשמור על העומק הרצוי. לשם כך נוספה לטורפדו מערכת בקרה המכונה בקר מטוטלת והידרוסטט, שתפקידה לרסן את תנועת הטורפדו כתלות במהירות הצלילה/טיפוס של הטיל. בקרה זו הייתה בעצם בקרה דיפרנציאלית, שכן היא התחשבה בקצב השינוי של השגיאה ולא רק בערך השגיאה עצמה, מה שהפך את מערכת הבקרה של עומק הטיל לבקר PD.

דוגמה נוספת לבקרת PID מוקדמת היא עבודתו של אלמר ספרי, שבשנת 1911 פיתח אותה עבור ניהוג ספינות, אולם פיתוח זה היה מבוסס על אינטואיציה יותר מאשר על פיתוח מתמטי<ref></ref>.
270x270 פיקסלים
הפעם הראשונה בה נעשתה אנליזה תאורטית של בקר PID כפי שאנו מכירים אותו כיום הייתה בשנת 1922, על ידי המהנדס הרוסי-אמריקאי ניקולס מינורסקי. פיתוח זה נעשה כחלק ממחקר ופיתוח של מערכות ניהוג אוטומטי לספינות הצי האמריקאי, והתבסס על תצפיותיו על אופן פעולת ההגאי. מינורסקי שם לב לכך שההגאי מכווין את הספינה לא רק בהתאם לסטייה הנוכחית של הספינה ממסלולה הרצוי, אלא גם על סמך הסטייה בעבר, ועל סמך קצב שינוי הכיוון שלה, וניסח את התובנות הללו באופן מתמטי. מטרתו העיקרית של מינורסקי הייתה השגת יציבות ולא בקרה כללית, מה שפישט את הבעיה – הבקרה הפרופורציונלית המבוססת על השגיאה הנוכחית הייתה טובה כנגד הפרעות קטנות, אולם לא הספיקה על מנת להתגבר על הפרעה קבועה, מה שדרש את ההתייחסות לשגיאת העבר. החלק הדירפנציאלי נוסף למערכת על מנת לשפר את היציבות והבקרה.

הניסויים של מערכת הבקרה שהציע מינורסקי בוצעו על ספינת חיל הים האמריקאי ניו מקסיקו (BB-40), כאשר הבקרה נעשתה על המהירות הזוויתית של הגה הספינה, ולא על הזווית עצמה. בקרת PI הצליחה להגיע לשגיאה של <math>\pm2^\circ</math>, ושימוש בבקרת PID מלאה הצליחה להביא לשגיאה של כ-<math>\pm1/6^\circ</math>, תוצאה שהייתה טובה מזו שיכלו להשיג רוב ההגאים. בסופו של דבר לא אימץ הצי האמריקאי את המערכת בשל התנגדות כוח האדם. פיתוחים דומים נעשו ופורסמו בשנות ה-30 של המאה ה-20.

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

=== תגובת מדרגה ===
תיאור גרפי של פונקציית המדרגה
אחת התגובות הנפוצות בתחום הבקרה היא תגובת המערכת לכניסה של פונקציית מדרגה כאות ייחוס, אולם במקרה של תגובת מדרגה במערכת בקרה הערך הסופי יכול להיות כל ערך, ולא רק הערך 1. זוהי תגובה נפוצה מאוד, שכן במערכות רבות המערכת מקבלת פקודה פתאומית הדורשת ממנה לעבור ממצב מסוים למצב אחר. לדוג' – כאשר אנו לוחצים על כפתור להפעלת מאוורר, אנו בעצם פוקדים עליו לעבור ממצב מנוחה למהירות סיבוב מסוימת. כאשר אנו פוקדים על רחפן להגיע לגובה מסוים – זוהי תגובת מדרגה גם כן. התגובה של המערכת לכניסה כזו נקראת תגובת המדרגה של המערכת. יש לשים לב שהמדרגה יכולה להופיע גם כהפרעה, ולא רק כאות ייחוס. אם לדוג' ננסה להטיס רחפן ותתחיל רוח קבועה שמסיטה אותו ממסלולו, זו תהיה כניסת מדרגה של הפרעה.

אף על פי שדרישות ממערכת בקרה יכולות להינתן במספר דרכים, כמו לדוג' במישור הזמן או התדר, לדרישות במישור הזמן ישנו פן יותר אינטואיטיבי, משום שבסופו של דבר קל יותר לראות את התנהגות המערכת בזמן, ובמקרה של תגובת מדרגה הדרישות בדרך כלל יינתנו במישור הזמן, כלומר – הדרישות יבוטאו כדרישה להתנהגות מסוימת של המערכת בתגובה לכניסה מסוימת. עבור תגובת מדרגה ישנם פרמטרים רבים שניתן להצביע עליהם, אולם אלו המופיעים בדרך כלל בדרישות מהמערכת הם<ref></ref>:
* זמן עליה (rise time): הזמן שלוקח למערכת להגיע מאחוז מסוים של ערך היציאה הסופי לאחוז אחר. האחוז בו מעוניינים יכול להשתנות כתלות בסוג המערכת ובדרישות המשתמש.
* תגובת יתר (overshoot): הערך המקסימלי אליו מגיעה המערכת בתגובה לכניסת מדרגה. לרוב מבוטא כאחוז הנוסף לערך הסופי אליו מגיעה המערכת. לדוג', עבור מערכת שמתייצבת בסופו של דבר על הערך 1, הגעה לערך מקסימלי של כ-1.4 משמעותה תגובת יתר של כ-40%.
* זמן רגיעה (settling time): הזמן שלוקח למערכת להתכנס לאחוז מסוים מערכה הסופי, כלומר – להגיע למצב בו היא לא חורגת מאחוז שגיאה מסוים. אחוז השגיאה ניתן לשינוי, ויש צורך לציין באיזה אחוז שגיאה מדובר. לדוג', עבור מערכת המתייצבת על הערך 1, זמן רגיעה עבור שגיאה של 2% יהיה הזמן אשר ממנו והלאה המערכת תישאר בתחום (0.98, 1.02).
* שגיאת מצב מתמיד (steady state error): זהו המרחק בין הערך הרצוי לבין הערך אליו תגיע היציאה לאחר זמן רב. שגיאת מצב מתמיד אפסית פירושה שיציאת המערכת היא בדיוק זו שאנו רוצים. מטרת מערכת בקרה, בסופו של דבר, היא הקטנת שגיאה זו עד כמה שאפשר.

=== יציבות ===
המושג "יציבות" נמצא בשימוש רב בתחום ההנדסה והמדעים, ועשוי לשמש במובנים שונים, שלרוב קשורים זה לזה. כשמדובר במערכות דינמיות, יציבות המערכת היא מדד לנטייתה להישאר במצב הנתון / לחזור למצב אפסי<ref></ref>, והיא מהווה פרמטר חשוב מאוד בתכנון מערכות בקרה. ניתן לציין שתי הגדרות ליציבות:
* יציבות אסימפטוטית: מערכת יציבה אסימפטוטית אם עבור כל תנאי התחלה יציאת המערכת תשאף ל-0.
* יציבות BIBO (Bounded Input Bounded Output): עבור תנאי התחלה אפסי וכניסה חסומה יציאת המערכת תהיה חסומה.

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

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

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

=== השפעת בקר PID על תגובת המדרגה ויציבות המערכת ===
מכיוון שכל אחד מענפי בקר PID מבצע פעולה מתמטית שונה, השפעתו של כל ענף על התנהגות המערכת היא אחרת. ניתן לסכם את השפעות ענפי הבקר על תגובת המדרגה של החוג הסגור בטבלה הבאה<ref></ref>, כאשר ההשפעה מתייחסת להגדלת ערכו (והשפעתו) של הענף:
{| class="wikitable" style="text-align:center;"
|- style="background-color:#efefef;"
! rowspan="2" | ענף הבקר
! colspan="5" | השפעה על תגובת המדרגה של החוג הסגור
|- style="background-color:#efefef;"
| זמן עליה
| תגובת יתר
| זמן רגיעה
| שגיאת מצב מתמיד
| יציבות
|-
| style="background-color:#cbcefb;" | פרופורציונלי
(<math>k_{p}</math>)
| הקטנה
| הגדלה
| השפעה מועטה
| הקטנה
| תלוי מערכת
|-
| style="background-color:#cbcefb;" | אינטגרלי
(<math>k_{i}</math>)
| הקטנה
| הגדלה
| הגדלה
| ביטול
| הקטנה
|-
| style="background-color:#cbcefb;" | דיפרנציאלי
(<math>k_{d}</math>)
| השפעה מועטה
| הקטנה
| הקטנה
| חסר השפעה
| הגדלה עד ערך מסוים
|}
חשוב לציין כי מדובר בטבלה כללית העוסקת במערכות סטנדרטיות. ההשפעה המדויקת עשויה להשתנות כתלות במערכת אותה אנו מנסים לבקר ובמאפייניה (סדר המערכת, היותה מינימום פאזה וכו').

== תיאור מתמטי ==
=== מבנה כללי של בקר PID ===
הצורה הכללית של בקר PID מתוארת על ידי הפונקציה:

<math>u(t)=k_{p}\cdot e(t)+k_{i}\cdot \int_{0}^{t} e(t')dt'+k_{d}\cdot {de(t) \over dt}</math>

כאשר:
* <math>k_{P},k_{I},k_{D}</math> הם ההגבר הפרופורציונלי, אינטגרלי ודיפרנציאלי בהתאמה, נקבעים על ידי המתכנן או המשתמש וקובעים את מידת השפעתו של כל ענף של הבקר (לעיתים מסומנים קבועים אלו כ-<math>P,I,D</math> בהתאמה).
* <math>e(t)</math> הוא אות השגיאה הנכנס לבקר,
* <math>u(t)</math> הוא אות הבקרה היוצא מהבקר ונכנס לתהליך.
* <math>t</math> הוא משתנה הזמן.
* <math>t'</math> הוא משתנה האינטגרציה.

הצגה נוספת של הפונקציה בה נעשה שימוש מתקבל על ידי ההצבה <math>k_{i}={k_{p} \over T_{i}}, k_{d}=k_{p}\cdot T_{d}</math>:

<math>u(t)=k_{p}\cdot \Bigl(e(t)+{1 \over T_{i}}\cdot \int_{0}^{t} e(t')dt'+T_{d}\cdot {de(t) \over dt}\Bigr)</math>

היתרון בהצגה זו של המשוואה הוא העובדה שלפרמטרים <math>T_{i},T_{d}</math> ישנה משמעות פיזיקלית של יחידות זמן.

על ידי ביצוע התמרת לפלס על הפונקציה (בצורתה הראשונה שהובאה לעיל) מתקבלת פונקציית התמסורת של הבקר:

<math>C(s)=k_{p}+k_{i}\cdot {1 \over s}+k_{d}\cdot s</math>

פונקציה זו חשובה מאוד מכיוון שבתחום הבקרה עיקר התכנון נעשה במישור ה-s ולא במישור הזמן.

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

==== החלק הפרופורציונלי ====
השפעת הענף הפרופורציונלי על תגובת המדרגה של החוג הסגור.
הפעולה המתמטית המתבצעת על ידי החלק הפרופורציונלי נתונה ע"י:

<math>P(t)_{out}=k_{p}\cdot e(t)\underbrace{ \Longrightarrow }_{laplace}P(s)_{out}=k_{p}</math>

חלק זה של הבקר מקבל את ערכה הנוכחי של השגיאה, ומכפיל אותו בקבוע <math>k_{p}</math>. זהו "ההגבר הפרופורציונלי" של הבקר, והוא חלקו הפשוט ביותר של הבקר. ככל שערך השגיאה יהיה גדול יותר, כך יגדל ערך האות היוצא מן הבקר ונכנס לתהליך. יתרונותיו של הגדלת הפרמטר <math>k_{p}</math> הן עקיבה טובה יותר של יציאת המערכת אחר אות הייחוס (שגיאה קטנה יותר), הקטנת זמן התגובה של המערכת לפקודות. עם זאת, הגדלה של פרמטר זה מקטינה את ריסון המערכת ואף עלולה להביא לאי-יציבות.

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

==== החלק האינטגרלי ====
השפעת הענף האינטגרלי על תגובת המדרגה של החוג הסגור.
הפעולה המתמטית המבוצעת על ידי החלק האינטגרלי נתונה ע"י:

<math>I(t)_{out}=k_{i}\cdot \int_{0}^{\infin} e(t)\underbrace{ \Longrightarrow }_{laplace}I(s)_{out}=k_{i}\cdot{1 \over s}</math>

חלק זה של הבקר מבצע אינטגרציה בזמן של השגיאה מתחילת המדידה ועד רגע החישוב, ומכפיל את התוצאה בקבוע <math>k_{i}</math>. ככל שיציאת המערכת תהיה רחוקה יותר מהערך הרצוי, וככל שיתארך הזמן בו מצב זה יימשך, תגדל השפעתו של החלק האינטגרלי על הבקר.

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

חסרונו של חלק זה נובעת מהעובדה שהוספת קוטב בראשית מוסיפה לחוג הפתוח פיגור פאזה של כ-<math>90^{o}</math>, ובכך מקטינים את עודף הפאזה ואת יציבות המערכת. במידה והמערכת מאבדת יציבות עקב הוספת חלק זה, ייתכן ויהיה צורך להוסיף את החלק הדיפרנציאלי על מנת לפצות על כך.

==== החלק הדיפרנציאלי ====
השפעת הענף הדיפרנציאלי על תגובת המדרגה של החוג הסגור.
הפעולה המתמטית המבוצעת על ידי החלק הדיפרנציאלי נתונה ע"י:

<math>D(t)_{out}=k_{d}\cdot {d \over dt} e(t)\underbrace{ \Longrightarrow }_{laplace} D(s)_{out}=k_{d} \cdot s</math>

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

<math>e(t)=r(t)-y(t)\Longrightarrow \dot e(t)=-\dot y(t)</math>

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

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

== כִּיוונוּן הבקר ==
התהליך בו נקבע מבנה הבקר ואופן השפעתו על התנהגות המערכת על ידי המשתמש נקרא "כוונון הבקר". כפי שתואר, לבקר מספר ענפים ואופני השפעה על התנהגות המערכת, ועל המשתמש לקבוע כיצד ישפיע הבקר על המערכת.
לאחר תחילת הפעלתו של [[טלסקופ החלל האבל, התברר כי התמונות אותן הוא מפיק רחוקות מהרזולוציה לה ציפו. התברר כי דבר זה נבע עקב מכשיר בדיקה שהורכב במרחק של כ-1.308 מ"מ מהמקום הדרוש, תקלה שדרשה שליחה של אסטרונאוטים לחלל לשם התקנת מערכת אופטית נוספת בטלסקופ. זוהי דוגמה ידועה למקרה בו תהליך בניית המערכת לא תאם את הדרישות המחמירות בהן היה אמור לעמוד. תמונה זו מראה את השיפור ברזולוציית התמונות לפני התיקון ולאחריו.]]
באופן כללי, בתכנון מערכות בקרה (ומערכות הנדסיות באופן כללי<ref></ref>), הדבר הראשון בו עוסקים הוא הדרישות – אילו מטרות המערכת אמורה להשיג, וכיצד עליה לעשות זאת<ref></ref>. בבניית מכונית, לדוג', אנו מגדירים מערכת המאפשרת להסיע אנשים או מטען ממקום למקום, ואנו יכולים לדרוש מהירות מקסימלית אליה היא יכולה להגיע. כמובן שלמערכת עשויות להיות דרישות רבות מתחומים שונים – עבור המכונית, לדוג', ניתן להגדיר יכולת האצה, יכולת בלימה, עמידה במבחני בטיחות כאלו ואחרים, ועוד. רק כאשר נתונות הדרישות מהמערכת ניתן להתחיל לדון באופן בו ניתן למלא אותן. עם זאת, במערכות חובבניות, לדוג', הדרישות לא צריכות להיות מוגדרות היטב – אם נבנה מכונית על שלט כתחביב, בדרך כלל לא נדרוש מהירות מסוימת, ונבנה ונשפר את המערכת עד שנגיע לתוצאות שאנו מרוצים מהן. הבדל זה גם ישפיע על האופן בו אנו מתכננים את המערכת ועל הדיוק הנדרש בתכנון ובביצוע של בנייתה.

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

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

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

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

# כוונון ידני/אנליטי: משמעות הדבר היא שאנו מנתחים את המודל המתמטי בעזרת עקרונות תורת הבקרה, ומתכננים את הבקר בהתאם. ישנן שיטות רבות לעשות זאת, אולם ניתן להזכיר מספר שיטות נפוצות:
## מישור מרוכב המשמש לייצוג התמרות לפלס). קטבי המערכת מסומנים ב-X והאפסים שלה ב-O.]]מיקום קטבים: אחת הדרכים הנפוצות לתיאור מערכת בקרה היא פונקציית תמסורת. פונקציית תמסורת היא משוואה מתמטית המתקבלת על ידי ביצוע התמרת לפלס על המשוואות הדיפרנציאליות המתארות את התנהגות המערכת בזמן, והיא מתארת את הקשר בין הכניסה למערכת ליציאתה (כאשר שתי האחרונות נתונות במישור לפלס גם כן). אחד היתרונות המשמעותיים בשימוש בפונקציות תמסורת לתיאור מערכת הוא העובדה שנגזרת במישור הזמן הופכות למכפלות במישור לפלס, דבר ההופך משוואות דיפרנציאליות לפולינומים, הקלים בהרבה לניתוח מתמטי. פונקציית תמסורת כללית ניתנת לתיאור באופן הבא: <math display="inline">G(s)=\frac{N_{G}(s)}{D_{G}(s)}</math>. שורשי פולינום המונה נקראים שורשים (שכן הם גורמים לאיפוס פונקציית התמסורת), ושורשי פולינום המכנה נקראים קטבים (משום שאיפוס המונה גורם לערך פונקציית התמסורת לשאוף לאינסוף). ערכיהם של האפסים והשורשים נתונים על ידי מספרים מרוכבים, והם אלו הקובעים כיצד תתנהג המערכת – האם היא תגיב מהר לשינויים בכניסות, האם היא תתנוד, האם היא תהיה יציבה ועוד. יש לציין שקשרים בין כניסות שונות ליציאות שונות באותה המערכת נתונים על ידי פונקציות תמסורת שונות, כלומר – הקשר בין הפרעה ליציאת המערכת לא יהיה זהה לקשר שבין אות הייחוס ליציאתה, והוא יתואר על ידי פונקציית תמסורת שונה. מכיוון שהבקר הוא בעל פונקציית תמסורת משלו, הכנסתו לחוג הסגור משפיעה על פונקציות התמסורת השונות של המערכת. מכיוון שכך, ניתן להשפיע על מיקום הקטבים והאפסים של המערכת על ידי שינוי ערכי הבקר, ובכך להשיג ביצועים רצויים. החיסרון בשיטה זו הוא שהיא דורשת הבנה טובה של העקרונות המתמטיים הקושרים בין מיקום הקטבים והאפסים במישור המרוכב לבין התנהגות המערכת, ולכן היא פחות אינטואיטיבית וקלה ליישום עבור משתמשים שאינם בקיאים בקשרים אלו.
## מציאת עודפי יציבות בעזרת דיאגרמת בודה. דרים נפוצות נוספת לבדיקת עודפי יציבות החוג הסגור היא [[עקומת נייקוויסט ועקומת ניקולס.]]עיצוב חוג: אחת השיטות הנפוצות לתכנון מערכת בקרה היא שימוש בתכונות החוג הפתוח (שאינו כולל משוב) על מנת להבין ולצפות כיצד יתנהג החוג הסגור. שיטות אלו פותחו בשל העובדה שפעמים רבות קל יותר לנתח מתמטית את התנהגות החוג הפתוח ומשם להבין כיצד תתנהג המערכת בהינתן חוג סגור, כאשר הדבר היה משמעותי עוד יותר כאשר יכולות המחשוב לא היו מתקדמות כפי שהן היום, והגישה למחשבים הייתה מוגבלת בהרבה<ref></ref>. כלים אלו מאפשרים בדיקה מהירה של עודפי היציבות של המערכת (הקובעים, באופן עקרוני, עד כמה המערכת יציבה) ועוד. הכלים בהם ניתן להשתמש לעיצוב החוג רבים, כאשר הבולטים שבהם הםם עקומת בודה, עקומת נייקוויסט ועקומת ניקולס. בנוסף לאלו ניתן להזכיר גם את קריטריון ראוט-הורוביץ ליציבות מערכות ואת השימוש במג"ש (מיקום גאומטרי שורשים<ref></ref>) המתאר את השתנות מיקום קטבי החוג הסגור כתלות בהגבר הבקר.
##שיטות היוריסטיות: שיטות אלו מציעות "מתכון" לכוונון של בקר PID (או בקר PID חלקי) על בסיס התנהגות המערכת. משמעות הדבר היא שמתבצע ניסוי על המודל לקביעת ערכים מסוימים המאפיינים את המערכת, ולאחר מכן, בהינתן הערכים שהתקבלו, ניתן לקבוע את קבועי הענפים השונים של הבקר על פיהם. היתרון בשיטות אלו הוא קלות הכוונון, אולם מכיוון שהן לא תוכננו עבור מערכת מסוימת, על מתכנן מערכת הבקרה לוודא שהתוצאות המתקבלות על ידיהן עונות על דרישותיו הספציפיות. שתיים מהשיטות הידועות ביותר בתחום זה הן שיטת זיגלר-ניקולס (Ziegler-Nichols method) ושיטת כהן קון (Cohen-Coon method).
#כוונון אוטומטי: כוונון זה נעשה על ידי שימוש בתוכנה ייעודית, המקבלת את המודל המתמטי של המערכת ומתארת את התנהגות המערכת כתלות בערכי הבקר השונים. במקרים רבים, האגלוריתם העומד בבסיס התוכנה מבוסס על שיטות הכוונון הידני, אולם שימוש בתוכנה מאפשר לתכנן את חוג הבקרה באופן אינטואיטיבי ונוח בהרבה לשימוש. לדוגמה – בשימוש בתוכנות כוונון, ניתן לאפיין את הדרישות מהמערכת במישור הזמן (כמו לדוג' מאפיינים של תגובת המדרגה), ולקבל בחזרה את ערכי הבקר הדרושים על מנת להשיג דרישות אלו.

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

=== כוונון בקר בהינתן המערכת בפועל ===
כאשר נתונה למשתמש המערכת האמיתית עליה יש צורך לשלוט, ניתן להשתמש במספר דרכים על מנת לתכנן בקר מתאים:

# כוונון ידני: כוונון משתני הבקר תוך בדיקה של אופן השפעתם על התנהגות המערכת בפועל. היתרון בשיטה זו הוא הבנה אינטואיטיבית וישירה של אופן השפעת כל אחד מהגברי הבקר על התנהגות המערכת, ויכולת לעשות זאת על ידי משתמש קצה שאינו מבין לעומקם את הקשרים המתמטיים בין ענפי הבקר לאופן השפעתם על המערכת. עם זאת, כמובן שניסיון קודם והבנה של קשרים אלו יקצרו את התהליך, ואף עשויות להיות הכרחיות במידה והפעלה שגויה של המערכת עלולה לגרום לנזקים.
# מציאת ערכים התחלתיים: אפשרות נוספת היא הפעלה של המערכת על ידי אותות כניסה מסוימים, וחילוץ ערכים התחלתיים להגברי הבקר בהתאם לתוצאות המתקבלות על פי שיטות שונות. במידה ומעוניינים לשפר את התוצאות ניתן להמשיך ולכוונן את הבקר עד להגעה לתוצאה הרצויה. שיטות נפוצות למציאת ערכים התחלתיים הן שיטת זיגלר-ניקולס ושיטת כהן-קון (שהוזכרו גם כאפשרות לשימוש בהינתן מודל מתמטי – מדובר באותן שיטות, אולם במקרה הזה הערכים ההתחלתיים מתקבלים מניסוי אמיתי של המערכת. בשיטת זיגלר-ניקולס יש להיזהר כאשר מבצעים אותה על מערכת אמיתית, מכיוון שהיא דורשת הבאה של המערכת לסף היציבות שלה, דבר העלול להזיק למערכת פיזיקלית אמיתית).דיאגרמה המתארת את המתודות השונות לזיהוי מערכות. במקרה של "קופסה לבנה" אנו רואים היטב את מבנה המערכת, וב"קופסה שחורה" איננו יודעים עליה דבר מלבד אופן התגובה שלה לכניסה. מצב ביניים הוא מצב של "קופסה אפורה" בו הידע שלנו על מבנה המערכת חלקי.
# בניית מודל מתמטי: לעיתים, ניתן לבנות מודל מתמטי על סמך המערכת האמיתית. לאחר בניית המודל, ניתן להשתמש בשיטות המתוארות מעלה לכוונון בקר בהינתן מודל מתמטי. ישנן שתי דרכים נפוצות לבניית מודל מתמטי מתוך מערכת פיזיקלית:
## ידיעת משוואות המערכת והגדרת הנעלמים הדרושים לבעיה. לאחר מכן ניתן לבחון את המערכת ולנסות לחלץ ממנה את הגדלים אותם אנו צריכים על מנת לתאר את המערכת במלואה באמצעות משוואות דינמיות. לדוג', אם ניקח מכונית על שלט ונרצה לבנות מודל מתמטי שלה, נוכל לבדוק את הספק המנוע, קוטר הגלגלים ומקדמי החיכוך שלהם, מסת המכונית וכו', ולהציב את המשתנים הללו במשוואות המתארות את תנועתה של מכונית ולקבל מודל של המכונית הספציפית בה אנו מחזיקים. שיטה זו נקראת לעיתים "קופסה לבנה", משום שלעומת קופסה שחורה אנו יכולים לראות מה נמצא בתוכה. שיטה זו עשויה להיות מעשית עבור מערכות פשוטות, אולם הופכת פחות ופחות אפשרית ככל שהמערכת מורכבת יותר.
## זיהוי מערכות : בשיטה זו מכניסים למערכת כניסות מסוימת ומודדים את היציאות שלה. כלי הזיהוי (לרוב תוכנות) מקבלים את הכניסות והיציאות של המערכת ומתאימים את המודל המתמטי המתאים ביותר למערכת זו. עבור כלים פשוטים ייתכן צורך להגדיר פרמטרים נוספים כמו סדר המערכת (הנגזרת הגבוהה ביותר של המשוואה הדיפרנציאלית / דרגת הפולינום הגבוהה ביותר בפונקציית התמסורת), ובכלים מתקדמים יותר התוכנה תזהה גם את צורת המערכת בנוסף למקדמים שלה. היתרון של שיטה זו לעומת השיטה הראשונה היא היכולת לקבל מודל מתמטי מבלי שיהיה צורך להבין לעומק את הדינמיקה של המערכת, דבר שעשוי פעמים רבות להוות מגבלה על היכולת להפיק מודל. בשל כך נקראת לעיתים שיטה זו "קופסה שחורה", שכן אנו מתייחסים למערכת כאל קופסה שאיננו יודעים מה נמצא בתוכה, ורק מעוניינים להבין את הקשר בין הכניסה ליציאה שלה. לעיתים אופן בניית המודל יתואר כ"קופסה אפורה", המתאר מצב ביניים בו אנו מבינים את אופן פעולתה של חלק מהמערכת אולם משתמשים בכלי זיהוי על מנת להשלים את הידע החסר לנו לגביה.

== ראו גם ==
* תורת הבקרה
* הנדסת בקרה

== קישורים חיצוניים ==

* [https://www.youtube.com/watch?v=GNpZznJOwrU&ab_channel=MakersAssemble5951 הרצאה בעברית על בקרת PID]
* [https://youtube.com/playlist?list=PLn8PRpmsu08pQBgjxYFXSsODEF3Jqmm-y Understanding PID control - Brian Douglas]

== הערות שוליים ==

קטגוריה:מערכות בקרה
קטגוריה:אוטומציה