מה חדש בסביבת Simulink בגרסת R2021b?
Simulink היא סביבה מולטי דיסציפלינרית שמאחדת תחומים רבים, החל מהנדסת מערכת, דרך תכן וייצור קוד ועד בדיקות. בגרסה R2021b התווספו יכולות רבות, ובפוסט זה נתמקד בעיקריות שבהן.
Simulink מפורסמת בהיותה סביבה לפיתוח מערכות בקרה, ואכן זה היה הייעוד המקורי, אבל מאז העולם התפתח ונוצר הצורך ל-digital thread מהדרישות ועד האינטגרציה של המערכת.
גם Simulink התפתחה בהתאם, וכיום זוהי סביבה לתכנון end to end של מערכת שיכולה לשלב מספר תחומים ודיסציפלינות במקום אחד. זהו הרי הרעיון של MBD (Model-Based Design). בכדי להדגים זאת ולהציג מה חדש, נסתכל על מחזור החיים של פרויקט.
"שלום מהנדס/ת המערכת, זהו הרעיון שלי לפרויקט ואני צריך שתגדירו לי דרישות מערכתיות ותכולת עבודה"
בתחילת חייו של פרויקט, כדבר ראשון נרצה שמהנדסי המערכת יגדירו מה הדרישות . פה ל-Simulink יש מספר אפשרויות לעזור, בין אם באמצעות כתיבת הדרישות בקובץ וקישורם למודל Simulink, כתיבת ה-flowchart ב-Stateflow, או בניית המודל ב-System Composer.
System Composer מאפשר לבנות את הארכיטקטורה המערכתית של הפרויקט שלנו בצורה ויזואלית נוחה ותוכנתית שמתממשקת ישירות ל-Simulink.
System Composer הושק לראשונה בגרסה 2019a, ומאז הוא נהנה משיפורים נרחבים בכל גרסה, כאשר כיום ניתן לבנות test harness לרכיבים מסוימים בתוך המודל וניתן לבנות מערכות פיזיקליות שמתממשקות ישירות ל-Simscape מתוך System Composer. כל זה על מנת לחלק את התכולה בצורה נכונה יותר ולתת לכל צוות לפתח את החלק שלו כאשר המערכת כולה מתחברת ומקושרת יחד.
"מעולה, יש לנו דרישות מערכתיות ועכשיו זה הזמן להעביר אותם לצוותים השונים"
המערכת שלנו יכולה לכלול הרבה תחומים, יכול להיות שנצטרך מודל פיזיקלי של המערכת (זוהי סביבת Simscape בה לא נדון בפוסט זה, אבל ניתן לראות מה חדש ב-release notes), יכולים להיות לנו אלגוריתמים ועיבוד אותות, ניווט ובקרה, ייצור קוד וכמובן שנרצה לבדוק את המערכת לכל אורך התהליך.
על בדיקות V&V ניתן לקרוא עוד כאן.
נחזור למערכות הבקרה ב-Simulink.
כידוע, מערכת בקרה היא הלחם והחמאה של Simulink, וגם פה ישנם חידושים בכל גרסה שיוצאת.
אחת המחשבות העיקריות בשדרוג כלי הבקרה היא לבנות מערכות בקרה יותר רובסטיות, שיידעו להתאים את עצמן גם בסביבה אמיתית. בתחום הזה ישנם בלוקים חדשים כגון ה- PID Closed Loop Auto Tuner ,Model Reference Adaptive Control ו-Extremum Seeking Control שידעו לעשות התאמות להגברים ולבקרים בזמן אמת על החומרה.
נושא נוסף בתחום הבקרה שצריך להתחשב בו, הוא האם החומרה תוכל להריץ את הבקר שתוכנן? עבור בקרי PID זו לרוב לא תהיה בעיה, אבל יכול להיות שנדרש בקר MPC (Model Predictive Controller), בקר זה מבצע אופטימיזציה שהיא לרוב כבדה חישובית, לכן נרצה לייעל את זמני החישוב שלו. אחת היכולות שהתווספו היא היכולת לתכנן בקר MPC לא לינארי רב שלבי, כך שבמקום בקר אחד גדול, יש כביכול הרבה בקרים קטנים שעושים עבודה זהה, אבל יותר יעילים חישובית.
כמובן שכשמדברים על בקרה, אי אפשר בלי לדבר על Reinforcement learning (RL).
RL זוהי שיטה נוספת לתכנן בקרים עבור המערכת שלנו, כאשר נגדיר פונקציית תגמול שהמערכת תנסה למקסם על מנת לקבל ביצועים אופטימליים. לרוב, הגדרת פונקציית התגמול היא תהליך מורכב, ונוכל להשתמש ביצירה אוטומטית שלה, כפי שניתן לראות בקישור. בנוסף, מכיוון שפעמים רבות נתכנן את הסביבה ב-Simulink ואז נאמן את הסוכן ב-MATLAB, נרצה לתפור את הסביבות בצורה נוחה, ובשביל זה נוכל להשתמש באפליקציה ידידותית שעושה את העבודה הזו עבורנו.
כמובן שנרצה במצבים כאלה להריץ כמה שיותר סימולציות במינימום זמן, ועכשיו נוכל לעבוד מקבילית ב-Simulink בזכות Multiple Simulation Panel.
"אז התכן מוכן וזה הזמן לצאת החוצה"
יש מספר דרכים לצאת החוצה מסביבת הפיתוח: נוכל לייצר קוד, לבנות אפליקציה שהיא Standalone, לעבוד ישירות עם כרטיסים או לעבור לסביבת Real-Time.
חידוש אחד הוא ההשקה של Simulink Compiler, שמאפשר לייצר קבצי exe ממודלים של Simulink, וכך להעביר אותם כ-Standalone. לא נתייחס כאן לעבודה מול חומרה, אלא רק לייצור הקוד, עצמו כאשר השאיפה היא לבדוק את הקוד שיוצר תוך שמירה על traceability בין המודל ובין הקוד. בשביל לבצע את זה נוכל להשתמש ב-Simulink Code Inspector, כאשר כיום נוכל לראות את הקוד ישירות במודל ולהשוות ולראות תוצאות על אותו מסך.
"מעולה, כולנו באותה סביבה ותהליך הפיתוח מתקדם יותר טוב"
לסיכום, הרעיון מאחורי Simulink הוא לאפשר תהליך פיתוח מבוסס-מודל – MBD – כאשר כולם דוברים את אותה שפה, יש traceability מלא מהדרישות ועד המימוש של המערכת, כאשר הכלים של Simulink תמיד מתפתחים ומשתדרגים על מנת לעזור לנו המהנדסים לקבל את המקסימום מכלי הפיתוח והעבודה שלנו.
לפרטים נוספים על מה חדש, ניתן לצפות בהרצאות מוקלטות מכנס וירטואלי שערכנו לאחרונה.