לשחק בעולם הבקרה עם MATLAB & Simulink ולראות את זה מתעורר לחיים
תכן בקרת מערכות עם כלי MATLAB & Simulink
עולם הבקרה, הוא גדול ומגוון מאד, הוא נוגע כמעט בכל פן בחיים היום-יומיים שלנו, לפעמים אפילו בלי שנדע. למשל היכולת להגיע מנקודה א' לנקודה ב' בהצלחה. מי שאחראי על המשימה החשובה הזאת הינו המוח אשר מבקר את הגוף ומוודא שהוא נע בכיוון הנכון ובקצב הנכון תוך שהוא משתמש בחושים כעזר ניווט. משימה כמעט יומיומית שרובנו לא חושבים עליה בכלל. אבל זהו תהליך למידה שבני האדם לומדים אותו בשנים הראשונות להווייתם (ואולי נעמיק בהזדמנות אחרת על בקרת למידה מחוזקת, Reinforced Learning). אבל המשימה הזאת נהיית יותר קשה כאשר אותם עזרי ניווט משתבשים. פשוט נסו ללכת ישר אחרי שסובבו אתכם מהר מספר פעמים (ניסיון מצחיק למטה).
איור 1- ללכת בקו ישר עם "מכשור מקולקל", מקור ©יוטיוב
עם השנים, ככל שהטכנולוגיה התקדמה והמערכות נעשו מורכבות יותר כך גם הומצאו והתפתחו שיטות הבקרה. מהבקר הקלאסי PID, דרך בקרה אופטימלית, LQR/LQG (Linear Quadratic Regulator/Gaussian) עד לבקרים מתקדמים כדוגמת MPC (Model Predictive Control), Fuzzy ומבוססי AI – RL שהזכרנו קודם. גם אופי התכן והאנליזות שמבוצעות על המערכות התפתחו, בין בקרה מרוכזת למבוזרת, רציפה לבדידה, או תכן איתני (Robust) לתכן ליניארי. אילוסטרציה חמודה שמתארת את כל מה שהוזכר ויותר, יצר בחור בשם בריאן דאגלס (ראו איור 2), מהנדס בקרה בעל ניסיון עשיר שהחליט להנגיש את עולם הבקרה לציבור הרחב. ברשותו ערוץ יוטיוב עם מגוון סרטוני הסברה, בין 10 ל 20 דקות. מומלץ ביותר לצפייה, לינק מצורף מטה.
איור 2 – מפת תורת הבקרה. מקור ©בריאן דאגלס
תכן בקרה באמצעות MATLAB & Simulink
MATLAB, שהתחיל כמחשבון מטריצות מתוחכם בשנת 1980, התפתח עם השנים והיום נמצא בחזית הטכנולוגית, גם עבור עולם הבקרה. מטרתו היא פשוטה, כלי שנועד להקל ולייעל על פיתוח מוצר ומערכות מקצה לקצה (V Model המשולב ב Model Based Design). ביחד עם Simulink, סביבת פיתוח סימולטיבי מבוססת דיאגרמת בלוקים, המהנדסים מתמקדים ומתעסקים בהיבטים העיקרים של התכנון למערכות רב-תחומיות ופחות בעבודה ההיקפית והשחורה.
מגוון הכלים הקיימים כיום הוא רחב, הנותן מעטפת לנושאים הרבים שהזכרנו ומופעים על מפת הבקרה. הכלי המרכזי לתכן הבקרה בסביבת MATLAB הינו ה- Control System Toolbox והמשלים שלו בסביבת Simulink הינו ה- Simulink Control Design. הכלים מאפשרים לבצע ליניאריזציה על המודלים, לחשב מספר נקודות עבודה, לבצע אנליזה ולהציג ויזואלית כדוגמת גרפי בודה וניקולס, ולבצע תכן אופטימלי שיענה לדרישות המערכת. באם תרצו להתנסות בתכן בקרה מתקדם אזי קיימים כלים נוספים המאפשרים כדוגמתModel Predictive Control Toolbox , Robust Control Toolbox, או Reinforcement Learning Toolbox שמתכנן בקר בעזרת AI בשיטת "למידה עמוקה" (Deep Learning).
איור 3 – משפחת כלי הבקרה של MathWorks
את תהליך התכן והמימוש הייתי מחלק ל 4 נקודות עיקריות:
- מידול – יצירת מודל מבוסס מערכת. החלק הראשון והחשוב בתכן מערכות בקרה, אשר יקבע האם הבקר יצליח או יכשל במציאות. בעת יצירת המודל, עבור תכן מערכות הברה, אין אנו תמיד זקוקים למודל הכי מדויק, אלא למודל שינסה לתפוס את המאפיינים הפיזיקליים העיקריים שאותם רוצים לבקר. כפי שאמר ג'ורג בוקס (1976 תרגום מהמקור) "כל המודלים שגויים, אך חלקם שימושיים", בסופו של עניין צריך להבין להתמקד בנושאים המרכזיים (קונספט שמלווה וילווה לאורך תכן הבקרה).
ברמת כלי MATLAB ו Simulink יצירת המודל יכולה להתבצע ע"י מימוש המשוואות השולטות של המערכת (וסט ההנחות שנלוו עליה). מנגד ניתן ליצור מודלים מבוססי נתונים בלבד ע"י שימוש ב – AI. אופציה נוספת הינה לבחור את דרך המלך שמשתמשת בנתונים אמפיריים, פלט-קלט, ומבצעת אופטימיזציה על מודל מבוסס משוואות, כדוגמת מודל לפלס המשתמש בתגובות התדר של המערכת. ה-System Identification Toolbox הינו הכלי שייתן פתרון לשתי שיטות האחרונות. הוא מאגד מגוון רחב של מודלים ואלגוריתמים המבוססים על נתוני קלט-פלט ובעזרתו ניתן בקלות ליצור מודלים שניתן לייצא לאובייקט MATLAB, בלוגים של Simulink, או קוד ++C/C להטמעה בחומרה הייעודית.
מספר של אלגוריתמים למציאת מודלים המבוססים על נתונים כניסה-יציאה.
- התכן – לב ליבה של הבקרה. בין אם בחרתם תכן לינארי, איתני, אופטימלי, מבוסס למידה או תהליכים או החלטתם על בקר רב קלט-פלט (MIMO), ב MATLAB ו Simulink יש את הכלים לבצע את התהליכים באופן אוטומטי, יעיל ובסביבה אחודה. האפשרויות הינם שימוש בבקרים מוכנים כדוגמת MPC וסוגיו, או שימוש בכלי אוטומציה לאופטימיזציה הבקר לדרישות המערכת השונות.
- הסימולציה וניתוח התוצאות – נדבך חשוב לאחר ביצוע התכן, הינו ווידוא הבקר על המערכת. אם בעבר הכלי המרכזי לווידוא היה דרך ניסויים אמפיריים, היום מתמקדים בסימולציות. ולכן משונה ממודל התכן, מודל האימות ינסה לחקות את המערכת בצורה המיטבית, ממש תאום דיגיטלי (Digital Twin). בין אם תרצו להיעזר במידול הפיזיקלי, Simsacpe או בבלוקים המתקדמים של Simulink, כדוגמת 6DoF. המעבר ממודל התכן למודל המערכתי יכול להיעשות בלחיצת כפתור. את ניתוח התוצאות תוכלו להציג במספר פורמטים, בין ייצוג מספרי או גרפי לבין ניתוח התוצאות אחרי או בזמן ההרצה עם אפשרות להתממשקות לממשקים גרפים מתקדמים.
איור 4 – ניתוח תוצאות תוך כדי ריצה
- המימוש לחומרה – אחרי שסיימנו למדל, לתכנן, לסמלץ ולוודא שהבקר עובד בנקודות העבודה הרצויות, אנו זקוקים לממש אותו כקוד בחומרה הרצויה. ההמרה, שבדרך כלל מתבצעת באופן ידני, לוקחת זמן, נתונה לשגיאות אנוש ודורשת בדרך כלל מומחיות שלא תמיד נמצאת בזמין. בעזרת כלי ה- Coder השונים של MathWorks ניתן להמיר את האלגוריתמיקה, הלוגיקה, והסימולציה שייצרנו לקוד מכונה באופן אוטומטי בנוסף להטמעה בעת הצורך לחומרה הייעודית. תהליך זה חוסך זמן ומשאבים יקרים, במיוחד כאשר מבצעים שינויים תדירים בתכן.
איור 5 – תכן בקרה ב Simulink.
לסיכום,
עולם הבקרה הוא נמצא כמעט בכל מקום וכבר הפך ממזמן לחלק בלתי נפרד מחיינו. בין אם מדובר במזגן הביתי שלנו, במפעל הייצור הסמוך או אפילו החלל. גם אם אין לכם חיבה עמוקה לתכנות, המגוון הרחב מאפשר לכל אחד ואחת למצוא את הפינה המתאימה. בין אם יש לכם זיקה להבנה וחקר מערכות הבקרה השונות, לתכן של בקרת תהליכים ואופטימיזציה, או יצירת מערכות לומדות (AI).
כלי MATLAB ו- Simulink מספקים מענה מקיף לצרכים של מהנדסי בקרה. באמצעותם ניתן לבצע אנליזה של מערכות בקרה, לתכנן מערכות בקרה חדשות וליישם אותן. כל זה מאפשר להפוך את תהליך הפיתוח, מהניצוץ הראשון של ההשראה עד המימוש, של מערכות בקרה ליעיל יותר, קל יותר ומעניין הרבה יותר.
אז אם אתם מתעניינים בעולם הבקרה, אני ממליץ לכם להתחיל ללמוד עליו. למטה ישנם מספר משאבים שיקנו לכם את הצעד הראשון בעולם המרתק הזה.