בואו נדמיין שאנחנו בעתיד, וכולם נוסעים ברכבים אוטונומיים, ללא נהג אנושי. אתם נכנסים לרכב ורוצים לנסוע הכי מהר שניתן לאורך כביש ישר. המחשב של הרכב מאשר את הבקשה, מצפצף ויוצא לדרך. איך המחשב יודע כיצד לתכנן את הנסיעה? כמה להאיץ? מתי להאט? בקרה אופטימלית, תחום החוקר מערכות ושליטה עליהן, תחת אילוצים ודרישות שונות, תוכל לסייע!
לפני שנציג את התכנית שעל פיה המחשב נוהג ברכב, נעשה את הדבר הראשון שמהנדסים עושים - ננסח את הבעיה. ניסוח מדויק ככל שניתן של הבעיה הוא הבסיס לפתרון, וכמובן, ישפיע עליו רבות. לדוגמה, אם אנחנו נדרשים לנסוע לאורך המקטע כולו בזמן מינימלי, אך בנוסף נדרשים להגיע לעצירה מוחלטת בסופו (למשל, בגלל הגעה ליעד), הפתרון יהיה שונה מאוד מאשר המקרה של מרוצי מכוניות - בהם הרכב מסיים בנסיעה מהירה ומאט רק אחרי קו הסיום.
אם כן, נתחיל בניסוח הבעיה - אנחנו נוסעים ברכב הנשלט על ידי מחשב, מתחילים מעמידה ומסיימים בעצירה, וצריכים לעבור מקטע ישר באורך נתון. מטעמי בטיחות, נבצע את הנסיעה כשהכביש ריק ונניח שיש לנו מספיק חשמל (הרכב שלנו חשמלי, ככה זה בעתיד). המחשב שולט על תנועת הרכב רק על ידי שינוי התאוצה. הוא יכול להגדיל את התאוצה על ידי פקודה מתאימה למנוע, והוא יכול להאט על ידי שימוש בבלם. התאוצה משפיעה על מהירות הרכב ומיקומו לאורך המקטע. השליטה הזו מוגבלת, בגלל שהמנוע מוגבל בתאוצה שהוא יכול לייצר. הרכב לא יכול להאיץ מעל לתאוצה המרבית האפשרית שיש לרכב, גם אם המחשב ידרוש זאת - זה פשוט לא אפשרי. נסמן את התאוצה המקסימלית האפשרית על ידי M1. באופן דומה, גם הבלימה של הרכב מוגבלת. למשל, לא נוכל לגרום לרכב הנוסע ב-100 קמ"ש להיעצר תוך שבריר שנייה. נסמן את ההאטה המקסימלית שהבלם יכול לייצר בM2. מכיוון שהאטה היא הפעולה ההפוכה להאצה, M2 הינו בעל ערך שלילי בעוד שM1 הינו חיובי. מכיוון שהמחשב שולט על תאוצת הרכב, אנו קוראים לערך התאוצה שהמחשב מכתיב לרכב בשם "משתנה בקרה", והפתרון שאנו מחפשים הוא הכלל שיש להפעיל על משתנה הבקרה. במקרה שלנו, כלל הבקרה הוא כמה צריכה להיות התאוצה של הרכב בכל רגע, על מנת שנגיע בזמן המינימלי ליעד.
אז עכשיו יש לנו ביד מודל, המכיל את ההתנהגות של הרכב (דינמיקה, בשפת המהנדסים), תנאי התחלה וסיום על המיקום והמהירות של הרכב, אילוצים על משתנה הבקרה ברכב ואת הערך שאותו אנחנו רוצים למזער- זמן הנסיעה.
הפתרון לבעיה הזו נעשה בצורה מתמטית, והוא מניב את ה״מתכון״ - כמה צריכה להיות התאוצה בכל רגע ורגע. הפיתרון הטוב ביותר, כלומר כלל הבקרה שהמחשב נדרש להפעיל על מנת שהמכונית תגיע כמה שיותר מהר ליעד, ידוע בשם בקרת bang bang. בבקרה מסוג זה, משתנה הבקרה מקבל רק את ערכי הקיצון שלו - המקסימום והמינימום. במקרה שלנו, על מנת למזער את זמן הנסיעה נצטרך להיות כמה שיותר זמן בתאוצה מקסימלית ומעט זמן ככל האפשר בהאטה מקסימלית, על מנת לעצור בסוף המקטע. נזכיר, שתאוצה היא השינוי במהירות, כך שבזמן שהתאוצה מקסימלית המהירות גדלה בקצב הכי גבוה שניתן, ובהאטה מקסימלית המהירות קטנה בקצב הכי גבוה שניתן. היחס בין סך כל זמן התאוצה לסך כל זמן ההאטה מתקבל מתוך היחס בין החסמים M1 ו-M2. אפשר להבין שאם הבלמים שלנו טובים מאוד (M2 גדול), פחות מזמן הנסיעה יכול להיות מוקדש להאטה, ועדיין נצליח לעצור בהגיענו ליעד. שימו לב, שזהו פתרון ייחודי עבור הבעיה שלנו כפי שהוגדרה, וכמובן שנקבל פתרון שונה אם נשנה את אחד המאפיינים, למשל אם נרשה להגיע במהירות לסוף המקטע (ולא בעצירה) אז כמובן שהכלל יהיה להיות בתאוצה מקסימלית לאורך כל המסלול.
הבעיה שפתרנו היא מסוג ״בעיית אופטימיזציה״ [1]. הערך שאותו רצינו למזער הוא הזמן שלוקח לעבור את המקטע, והדרך שלנו לבצע זאת היא לשלוט ברכב. אפשר להגדיר קריטריונים אחרים לאופטימיזציה, למשל לעבור את המקטע במינימום צריכת חשמל או בשילוב של השניים. בדיוק כמו ששינוי במערכת ישנה את הפתרון, גם שינוי בתנאי האופטימיזציה ישנה את הפתרון. המפתח לפתרון בעיות בקרה אופטימלית טמון בכך שניתן להפעיל הרבה כללי הבקרה (במקרה שלנו, ניתן להאיץ ולהאט באופן שונה לאורך המקטע), אבל רק אחד מהם יענה על הדרישה שעליה ניסינו לבצע אופטימיזציה (במקרה שלנו, מינימום זמן) וניתן למצוא אותו על ידי פתרון של מערכת משוואות המתאימה לבעיה.
בואו נצא לרגע מהאוטו ונדבר על שימוש נוסף בבקרת bang bang. נניח שאתם רוצים לאפות עוגה ובמתכון כתוב לחמם את התנור לטמפרטורה של 170 מעלות צלזיוס. אתם מדליקים את התנור והוא מתחיל לעבוד. אם ניכנס אל תוך התנור (רעיונית בלבד), וננסה לנתח את אופן הפעולה שלו, נגלה שיש חיישן המודד את הטמפרטורה בחלל התנור. אם הטמפרטורה נמוכה מהרצוי, אז גוף החימום פועל במלוא ההספק (מקסימום בקרה). כאשר ההפרש בין הטמפרטורה הרצויה והטמפרטורה בתנור קטן דיו, גוף החימום מפסיק לעבוד. זאת, עד אשר מורגשת ירידה מתחת לסף מסוים שנקבע, ואז שוב תחל עבודה במלוא ההספק. גם כאן, כמו בדוגמה עם האוטו, משתנה הבקרה נמצא רק בערכי הקיצון שלו - גוף החימום כבוי או דולק במקסימום הספק. בניגוד לדוגמה הקודמת, כאן אין אופטימיזציה אלא תחום עבודה רצוי.
אז מה היה לנו פה? הראינו מה עובר למהנדסים בראש כשהם נוסעים בכבישים ישרים ואיך בקרת bang bang תורמת לאפיית העוגות שלכם. אבל בעיקר, ניסינו לתת טעימה לתחום שמתחבא מתחת לכל כך הרבה דברים ביום יום שלנו, ואיך אילוצים ודרישות שונות מייצרות תכנון שונה וייחודי. אז בפעם הבאה שתשמעו על לווין ששוגר לחלל, על רחפן אוטונומי שמחלק חבילות דואר ואפילו על מכונית ששומרת מרחק בעצמה, נסו להסתכל עליהם דרך משקפיים של מהנדס בקרה: מה נדרש מהם לבצע, תחת איזה מגבלות והאם הם מצליחים במשימה.
מקורות וקישורים לקריאה נוספת:
[1] עוד על בעיות אופטימיזציה באתר מדע גדול, בקטנה:
לקריאה נוספת:
- Kirk, D. E. (1970). Optimal control theory: An introduction. Englewood Cliffs, N.J: Prentice-Hall.
- MIT OpenCourseWare, 16.323 Principles of Optimal Control https://bit.ly/3eqdron