יום רביעי, 16 במאי 2012

יש גם Event-ים מחוץ ל-Facebook | על בניית סימולציות למערכות בדידות באמצעות SimEvents


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


נניח שקצב ההגעה של אנשים לסניף בנק מתנהג כפילוג אקספוננציאלי בעל ממוצע של 5 דקות. כמה נותני שירות צריכים להיות בבנק בכדי להבטיח שמשך ההמתנה הממוצע לא יעלה על 10 דקות? ומה רוחב הסרט הנדרש בכדי להעביר חבילות תקשורת על קו Ethernet? שאלות אלו ורבות אחרות מצריכות ניתוח מעמיק באמצעות בנית סימולציה של אירועים בדידים.

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

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

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



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


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


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


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

כפי שצוין לעיל, SimEvents פועלת על גבי סביבת Simulink, ולכן נהנית מכל היתרונות בעבודה עם Simulink ו-MATLAB – ממשק גרפי של דיאגרמות בלוקים, סביבה אינטואיטיבית נוחה לתפעול, מנוע מתמטי המבוסס על MATLAB, עבודה בצורה היררכית,  אפשרות לייצר דו"חות בצורה אוטומטית, אפשרות לחיבור לגרפיקה תלת-מימדית, אופציה להוספת יכולות ובלוקים, מינוף יכולות MATLAB כמו ניתוח סטטיסטי, ויזואליזציה של התוצאות, וכמובן הרצת תהליכים של אופטימיזציה על המערכת בכדי להגיע לנקודת עבודה יעילה. בעזרת MATLAB ניתן לבנות בפשטות ממשק גרפי למשתמש, בו הוא יזין את כל הפרמטרים הרלוונטיים לסימולציה. ניתן לייבא ולייצא נתונים מקבצים בפורמטים רבים – Excel, CSV, טקסט, Word ועוד. וניתן גם לחבר את הסימולציה למקורות מידע מקוונים, כמו שרתים המכילים מידע על מניות, מידע טמפרטורה, העברת חבילות מידע ברשת וכו'.

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

האם יש לכם צורך בכלי לסימולציה של אירועים בדידים? האם שמעתם על SimEvents? ואפרופו Events ו-Facebook - האם כבר עשיתם Like לקבוצת הפייסבוק למשתמשי MATLAB ו-Simulink בישראל?

יום רביעי, 2 במאי 2012

הרצה קלה על חומרה

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

כפי שכתב רועי בסקירה שלו על החידושים בגירסת R2012a, בחודש מרץ 2012 הודיעה חברת MathWorks על הוספה של תמיכה מובנית ב-Simulink למעבדים:
Arduino
BeagleBoard
ו-LEGO Mindstorms NXT.
כלומר, בלחיצת כפתור אחת ניתן לבחון את אופן הפעולה של אלגוריתם הבקרה או עיבוד האות – ישירות על חומרה.

בעבר היה צורך ברישיון מיוחד לכלי יצירת קוד שנקרא Embedded Coder, אשר מאפשר יצירת קוד יעיל לחומרה הסופית. כיום, התמיכה היא ישירות מתוך Simulink, ואין צורך באף כלי נוסף. החיסרון הוא שללא רישיון ל-Embedded Coder לא ניתן לראות את קוד ה-C הנוצר לפני הורדתו לחומרה, אך במידה וזהו עדיין שלב ניסיוני בהליך הפיתוח – אין בכך צורך של ממש.

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



התקנת כל תוספי התוכנה הדרושים לצורך העברת האלגוריתם מ-Simulink למעבד הסופי נעשית בקלות ישירות מתוך Simulink – אין צורך לחפש קבצים באתרים שונים או לוודא התאמת גרסאות וכדומה. כל שיש לעשות הוא להקיש את הפקודה "targetinstaller" בתוך חלון הפקודות של MATLAB, וממשק גרפי ייעודי ילווה אתכם לאורך כל שלב ההורדה וההתקנות של התוכנות הייעודיות. תוכנות אלו נדרשות לרוץ ברקע בשלב החיבור למעבד הסופי, יצירת קוד והעברתו דרך הליך Compile/Link/Deploy הייחודי למעבד זה.

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

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

יצא לכם להשתמש בפיצ'ר החדש? מה דעתכם עליו?