יום שני, 19 בנובמבר 2012

המפקח על הסימולציות לעזרתכם | שימוש ב-Simulation Data Inspector לבחינת אלגוריתם והפרמטרים שלו

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


לאחרונה הזדמן לי לשוחח עם מספר מהנדסים שביצעו את הפעולות הבאות בסביבת סימולינק:

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

תהליך העבודה של אותם האנשים היה לכתוב GUI בסביבת MATLAB שמרכז את כל תוצרי הסימולציה, מריץ את המודל, מבצע Logging לכל הנתונים ולבסוף מציג אותם בעזרת Figures. הבעיה בשיטה הזו היא שכאשר אותם מהנדסים רצו להוסיף עוד אותות או פרמטרים, הם היו חייבים לשנות בצורה משמעותית את הקוד ואת ה-GUI. שיטת עבודה עדיפה היתה שימוש ב-Simulation Data Inspector, אשר קיים עוד מגרסת R2010b של כלי MathWorks (לחצו לסרטון ישן בנושא).

למי שהצליח לא לשים לב ל-Simulation Data Inspector, החל מגרסת R2012b של תוכנת Simulink, שיצאה לפני כחודשיים – אי אפשר להתחמק מכפתור ההקלטה האדום שנמצא במרכז החלק העליון של ה-Editor החדש. ולאלה מכם שמעוניינים להשתמש בו – להלן הדרך המקובלת.

ראשית, יש לבחור את האותות אשר רוצים להשוות בין ערכיהם בסימולציות השונות. קליק-ימני של העכבר על האות, ואז Properties, נותן את האפשרות לבצע "Log Signal Data". בחירה באופציה הזו תביא להופעת Badge כחול שנראה כמו אנטנה משדרת. ניתן לראות בתמונה למטה את החלון שנפתח לאחר הבחירה ב-Properties, וכן מספר Badges כחולים (לחצו על התמונה כדי להגדיל אותה במקצת).


לאחר שהגדרנו את האותות, יש לבחור בכפתור ההקלטה האדום, ה-"Record and Inspect Simulation Output". בלחיצה על כפתור זה, כל סימולציה עתידית שתופעל תישמר לתוך פרמטר מתאים ב-Workspace. אגב, בתמונה למטה ניתן לשים לב לכך שמימין לכפתור האדום ישנו חץ הרחבה המאפשר לפתוח את ה-Configure Data Logging שבעזרתו ניתן לשלוט בפירוט רב יותר על האותות שייאגרו והפורמט שבו יישמר המידע, וכן לבצע Override (או הפעלה וכיבוי) לאותות שברצוננו לשמור בכל סימולציה.


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

בכדי להשוות בין תוצאות שתי הסימולציות, כל שיש לעשות הוא ללחוץ על הקישור שמופיע בחלקו העליון של המודל:


בחלון ה-Simulation Data Inspector שנפתח כל ריצה מסומנת ב-RUN עם אינדקס מתאים, וניתן לראות שלוש לשוניות (Tabs) ברורות: הצגת המידע, השוואה בין האותות השונים, והשוואה בין הריצות השונות.

הלשונית הראשונה מאפשרת להציג כל אות או מספר אותות על אותה מערכת צירים. פשוט מסמנים ב-V את כל האותות המעניינים אותנו, והכלי כבר ידאג לכל השאר.


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


מעבר להצגת המידע וביצוע ההשוואות, ניתן לייצר דו"ח המרכז את כל התוצרים, ישירות מתוך ה-Simulation Data Inspector. כדי לבצע זאת, יש לגשת לתפריט File, ולבחור ב-Generate Report. אפשרות זו, אגב, היא אשר שכנעה סופית את בני שיחי לעבור לשימוש ב-Simulation Data Inspector, שכן הם הבינו שהיא תחסוך להם זמן רב של ביצוע Copy & Paste.


האם הכרתם את ה-Simulation Data Inspector לפני הפוסט הזה? אם לא, האם נראה לכם שתתחילו להשתמש בו מעתה?

אין תגובות:

הוסף רשומת תגובה