‏הצגת רשומות עם תוויות File Exchange. הצג את כל הרשומות
‏הצגת רשומות עם תוויות File Exchange. הצג את כל הרשומות

יום חמישי, 27 בפברואר 2014

געגועים ללאס וגאס | סימולציה של מזרקות הבלאג'יו


אני שמח לארח בבלוג פעם נוספת את יגאל ירוסלבסקי, אשר כבר כתב פה בעבר (לחצו לקריאת הפוסט האחרון שלו).
בתחילת החודש חזרתי מנסיעת עבודה לארה"ב, במהלכה הייתי בעיקר בסן-דייגו, אך גם קצת בלאס וגאס.
לאס וגאס היא עיר מדהימה, עיר חטאים של ממש, וכמעט כל דבר בה מיועד אך ורק למען מטרה אחת – לגרום לכם להוציא עוד ועוד כסף. יש שם הכל מהכל - הצגות, מסעדות, מסיבות, שולחנות משחק, להקות שמנגנות מוזיקה חיה וכו'. אך הדבר שהרשים אותי יותר מכל דבר אחר, היה המזרקות של קזינו בלאג'יו. טוב, זה לא ממש מפתיע, הרי אני מהנדס, ומזרקות הבלאג'יו הן יצירת אומנות הנדסית (וגם הבלוג הזה אינו בלוג טיולים...)
מזרקות הבלאג'יו הרשימו אותי עד כדי כך, שהלכתי לראותן 5 פעמים, חיפשתי עליהן מידע שימושי באינטרנט, וכמובן שהתלהבתי כאשר רועי שלח אליי קישור לסימולציית Simulink של המזרקות הנפלאות האלה.
Simulink, למי שלא מכיר, היא סביבה מובילה לפיתוח וסימולציה של מערכות
רב-תחומיות (
Multidomain), וככזאת - הסביבה הינה מושלמת לסימולציה של מערכות המשלבות בקרה ספרתית, מכאניקה ואף זרימה. וזה אידיאלי עבור סימלוץ מזרקות הבלאג'יו, שכן כל אחד מיותר מ-100 סילוני המזרקות הוא מערכת אלקטרומכאנית הכוללת משאבת מים בלחץ גבוה, מנועי שליטה על כיוון הסילון ותאורה, והכל מבוקר על ידי תוכנת מחשב המסנכרנת את הסילונים עם המנגינה שמשתנה בכל רבע שעה. נשמע מסובך? מסתבר שלא, לפחות לא עם Simulink.

על מנת לקרוא על מודל מזרקות הבלאג'יו שפותח והועלה ל-File Exchange על ידי John Hedengren, לראות סרטון הדגמה של המודל בפעולה וכמובן להוריד את המודל - לחצו פה.

 

יום שלישי, 5 בפברואר 2013

לא רק שואב אבק | דברים ש-MATLAB ו-Simulink יכולים לגרום לרובוט לעשות

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

ולמי שלא מצליח לראות את הסרטון, הנה רצף תמונות (ניתן ללחוץ כדי להגדיל):
הרובוט המופיע בסרטון ובתמונות הוא NAO, רובוט משוכלל הניתן לתכנות, פרי פיתוח של Aldebaran Robotics, אשר לדברי החברה נמצא בשימוש במאות אוניברסיטאות יוקרתיות ומעבדות מחקר ברחבי העולם. גובהו של הרובוט 57 ס"מ, והוא בעל 25 דרגות חופש, דבר המאפשר לו לבצע תנועות אנושיות. כאמור, בהדגמה שניתן לראות למעלה השתמשו ב-MATLAB ו-Simulink כדי להעביר את המידע שהתקבל ממערכת חישת-התנועה Kinect בתור הוראות לרובוט NAO, במטרה שיחקה במהירות את תנועות האדם אשר ניצב לידו. כיצד עשו זאת?
מודל ה-Simulink אשר שימש לכך מופיע למטה (חלק עליון), והוא עושה שימוש באתר שיתוף הקבצים של MathWorks, בו יש סט של בלוקי Simulink תחת השם Simulink Support for Kinect. אוסף בלוקים זה מאפשר לקחת בקלות את המידע מה- Kinect של מיקרוסופט (או ממערכת Xtion PRO של Asus), להכניסו לתוך Simulink (צד ימין למטה) ולייצר skeleton (צד שמאל למטה), וכל זה קורה בחצי השמאלי של המודל (כלומר בצד שמאל של החלק העליון).
Level-2 MATLAB S-Function (מסומן בחץ ירוק בחצי הימני של המודל) לוקח את ה-skeleton וממיר אותו לזוויות למפרקים הנשלחות כהוראות לרובוט בעזרת ה-API של Aldebaran Robotics.
קשה היה להישאר אדיש מול ההדגמה הזו, ואפילו קליב מולר, ממציא ה-MATLAB, ניסה ללמד את הרובוט מספר תנועות:

מה דעתכם על ההדגמה הזו? האם אי פעם השתמשתם בכלי MathWorks כדי לשלוט על חומרה? ומתי לאחרונה כתבתם S-Function בעצמכם?

יום ראשון, 16 בספטמבר 2012

MATLAB 8 ו-Simulink 8 כבר כאן !

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

בין היכולות החדשות במשפחת מוצרי MATLAB:
  • MATLAB - שולחן עבודה (Desktop) חדש, אשר בחלקו העליון toolstrip הכולל לשוניות (Tabs) אשר נמצאות בו תמיד (גלובליות) או נפתחות רק כתוצאה מביצוע פעולה מסוימת (המטרה הינה לפתוח אופציות נוספות רק כאשר הן באמת רלוונטיות). בתוך כל לשונית יש sections שונים, ובתוכם לחצנים (controls) אשר ניתן להוסיפם ל-Quick access toolbar המופיע מעל ה-toolstrip (וכך לבצע פעולות נפוצות באמצעות קליק אחד של עכבר). לחצו לסרטון קצר בנושא ה-Desktop החדש, או קראו פוסטים באנגלית בנושא (קישור 1, קישור 2)
    אחת מהלשוניות המעניינות הינה גלריית ה-Apps, אשר כוללת אפליקציות אינטראקטיביות המגיעות כחלק מהכלים השונים של MathWorks, מאתר שיתוף הקבצים או מקולגות, ואשר מאפשרת אריזת אפליקציות אותן המשתמש בונה והעברתן בקלות למשתמשים אחרים. לחצו לסרטון בנושא התקנת ואריזת אפליקציות, או קראו פוסט באנגלית בנושא.
    ה-Help המעולה של MathWorks עבר שינוי גדול כדי לשפר עוד יותר את חווית המשתמש. הממשק שלו מזכיר כעת דפדפן אינטרנט, והוא מקל על ביצוע שאילתות ומאפשר הצגה של מספר עמודי תיעוד בלשוניות נפרדות. שימו לב שניתן לבצע חיפוש בתיעוד גם באמצעות חלון החיפוש הנמצא ליד ה-Quick access toolbar. לחצו לסרטון בנושא ה-Help החדש.
    ולסיום, נוספה ל-MATLAB יכולת להציע תיקונים לטעויות הקלדה של שמות פונקציות ומשתנים ב-Command Window. לחצו לסרטון בנושא, או צפו בתיקונים לשם הפונקציה ושם המשתנה בדוגמה למטה, בה ניתן להתרשם גם מה-Desktop החדש (ה-Quick access toolbar מוקף באליפסה).


  • MATLAB Coder - לכלי המאפשר יצירה אוטומטית של קוד C מתוך MATLAB נוספה יכולת להעריך עד כמה יהיה קל להמיר באמצעותו קוד MATLAB מסויים לקוד C. לחצו לתיעוד בנושא הפקודה הרלוונטית.
    הכלי תומך כעת בפונקציית parfor לצורך ייצור קבצי MEX המסוגלים להשתמש במספר ליבות.
    ולסיום, רשימת הפונקציות וה-System Objects הנתמכות על ידי הכלי הורחבה, ונוספו כאלה מהכלים Image Processing Toolbox
    Computer Vision System Toolbox, DSP System Toolbox ו- Communications System Toolbox (כל ה-System Objects שבו נתמכים כעת).
  • Computer Vision System Toolbox - לכלי המקל על פיתוח מערכות ראיה ממוחשבת ועיבוד וידאו ותמונה נוספו אלגוריתמים לעקיבה אחר מספר אובייקטים ומתן הסבר (Annotation) לגבי האובייקטים המאותרים.
    בנוסף, הכלי כולל כעת את אלגוריתם KLT לעקיבה אחר פיצ'רים ותומך בגילוי אנשים מבוסס HOG.
  • Image Processing Toolbox - הביצועים של מספר פונקציות בכלי שופרו, והוא גם כולל כעת פונקציות חדשות לחישובי גרדיאנט בתמונה והתאמת היסטוגרמות. בנוסף, לפונקציה imregister, שהתווספה לכלי בגרסה הקודמת, נוספה תמיכה ברגיסטרציה מבוססת-עוצמה בתלת-מימד (RGB).
  • DSP System Toolbox - לכלי המקל על תכנון וסימולציה של מערכות עיבוד אות נוסף System Object המאפשר לצפות בספקטרום ההספק או בצפיפות ההספק הספקטרלי.
  • Parallel Computing Toolbox - מזה שנתיים ניתן להאיץ את ביצועי MATLAB על ידי שימוש בכרטיס הגרפי (GPU) של המחשב. בגרסה החדשה התווספו עוד פונקציות המסוגלות לרוץ על ה-GPU, ושופרו הביצועים של חלק מאלה שכבר יכלו לעשות זאת. בין היתר, מספר פונקציות / System Objects מהכלים
    Neural Network Toolbox, Phased Array System Toolbox
    ו-Signal Processing Toolbox ניתנות כעת להאצה באמצעות ה-GPU, וזאת בנוסף לאלה שכבר נתמכו מתוך ה-Communications System Toolbox.
  • HDL Coder - לכלי המאפשר המרה אוטומטית של קוד MATLAB ומודלי Simulink ל-HDL נוספה תמיכה ביצירת קוד HDL ממגוון System Objects מתוך ה-Communications System Toolbox.
  • HDL Verifier - הכלי המשמש לוריפיקציה של קוד HDL מכיל כעת System Object המאפשר לבצע סימולציות FPGA-in-the-loop תוך שימוש ב-MATLAB ו-FPGA בלבד.
  • כלים חדשים - למשפחת כלי MathWorks נוספו שני כלים חדשים. ה-Financial Instuments Toolbox הינו כלי המאגד את יכולות ה-
    Fixed-Income Toolbox וה-Financial Derivatives Toolbox.  ה-MATLAB Production Server הינו כלי להרצת תוכניות MATLAB כחלק מישומי אנטרפרייז, מאגרי מידע ורשת.

בין היכולות החדשות במשפחת מוצרי Simulink:
  • Simulink - התוכנה כוללת כעת עורך (Editor) חדש המקל על צפיה במודלים, ניווט ועריכה. התפריטים בעורך החדש מסודרים בהתאם לפרדיגמת Model-Based Desgin (דבר אשר שם סוף למצב בו תפריט tools מכיל כמעט את כל האפשרויות...). ניתן כעת לסמלץ מודל צעד-אחר-צעד, לחזור אחורה בזמן הסימולציה ולהוסיף breakpoints התלויים בערכו של סיגנל. פיצ'ר חדש מאפשר חיבור חכם בין בלוקים המוצא את הנתיב הפשוט ביותר ביניהם שאינו כרוך בהסתרות של בלוקים אחרים או טקסט כלשהו. פיצ'ר נוסף הינו תגים (Badges) המספקים אינדיקציות גרפיות לגבי בלוקים וסיגנלים. ניתן כעת להציג בלשוניות (Tabs) שונות באותו חלון מספר תת-מערכות או מבטים שונים על אותו מודל (למשל, ברמות zoom שונות). העורך כולל Explorer bar המקל על ניווט ברמות היררכיה שונות במודל (לחצו לסרטון בנושאים Tabs ו-Explorer bar). ניתן כעת להתעלם מבלוק מסויים בזמן הסימולציה (מאפשר לבחון וריאציות שונות של אותו מודל או להאיץ את הסימולציות על ידי כיבוי של בלוקי תצוגה). מגרסה זו של הכלי ניתן גם לשנות את גודלו של בלוק תוך שמירה על הפרופורציה בין גובהו ורוחבו (על ידי לחיצה על Shift) וכן ניתן לשנות את גודלו של בלוק סביב מרכז הבלוק (לחיצה על Ctrl), לחצו לפוסט באנגלית בנושא.
    הכלי כולל כעת שני Advisors - יועץ המנתח את המודל ומספק עצות לשיפור ביצועי הסימולציה, ויועץ המסייע לשדרג מודלים ישנים לעבודה בגרסה העדכנית.
    ולסיום, פורמט ברירת המחדל לשמירת קבצים הינו slx (להבדיל מ-mdl, אשר עדיין קיים), אשר חוסך מקום בזיכרון, מספק מידע רב למערכות הצגת קבצים וחוסך בזמן בישומים מסוימים (הפורמט הושק בגרסה הקודמת, אולם לא היה ברירת המחדל). שימו לב גם שאופציות ה-zoom וה-panning מתאפשרות החל מגרסה זו בדרכים אחרות מבעבר (zoom על ידי גלגול גלגלת העכבר קדימה או אחורה, או על ידי
    ++Ctrl או -+Ctrl; הצגת המודל כולו באמצעות 1+Alt או מקש הרווח (כבעבר); ניתן לבצע את שתי הפעולות האחרונות גם באמצעות הלוחית האנכית (בצד שמאל של חלון המודל); panning על ידי לחיצה על גלגלת העכבר והזזת העכבר או על ידי מקש הרווח + לחצן שמאלי בעכבר (והזזת העכבר). לחצו לקריאת פוסט באנגלית בנושא או לקריאת עמוד תיעוד בנושא).
    בדוגמה למטה ניתן להתרשם מהעורך החדש - הן מסידור התפריטים, והן מהלחצנים המאפשר לחזור אחורה בזמן הסימולציה או לסמלץ את המודל צעד-אחר-צעד (מוקפים בעיגולים העליונים), מה-Explorer bar (עיגול אמצעי, ומשמאלו - לוחית ה-zoom) ומ-badge לדוגמה (עיגול תחתון).

  • Stateflow - העורך של הכלי למידול וסימולציה של לוגיקה משולב כעת כחלק אינטגרלי מהעורך של Simulink. ניתן כעת להשתמש בשפת MATLAB על מנת להגדיר תנאים ופעולות ב-Stateflow (המערכת תשנה את הסינטקס לזה המקובל). ולסיום, נוספה היכולת לבנות Structured Logic באמצעות State Transition Tables.
  • SimMechamics - לכלי המקל על מידול וסימולציה של מערכות מכאניות הצטרפה בגרסה הקודמת טכנולוגיית דור 2. לטכנולוגית דור 2 זו הצטרפה בגרסה החדשה תמיכה ליצירה אוטומטית של קוד C (באמצעות ה-Simulink Coder) וליבוא של מודלי CAD (למשל מתוכנת SolidWorks).

היכולות שהוצגו לעיל הן רק חלק מאלה שנוספו בגרסה החדשה. למידע מלא על הגרסה החדשה, בקרו בעמוד גרסת R2012b באתר MathWorks.
מה דעתכם על הגרסה החדשה? כמה זמן לקח לכם להתרגל אליה? האם היא חוסכת לכם זמן? מאיזה פיצ'ר התלהבתם במיוחד?

 

יום ראשון, 18 בדצמבר 2011

הדרת קבצים

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


לפני שמשקיעים זמן יקר בפיתוח אלגוריתם, דיבוג ובדיקות של מקרי קצה, כדאי לבדוק ב-File exchange של MathWorks האם מישהו אחר כבר עשה עבורנו את העבודה. ה-File exchange, למי שלא מכיר, הוא אתר שיתוף קבצים אליו אלפי משתמשי MATLAB ו-Simulink ברחבי העולם העלו ב-15 השנים האחרונות פרויקטים רבים אשר ניתן להורידם בחינם ולעשות בהם כל שימוש שהוא.

מה ניתן להוריד? החל מאלגוריתמים פשוטים, דרך פרויקטים מלאים (כולל GUI), שעורי הדרכה (tutorials) ואפילו חבילות שלמות (Toolboxes) שהעלו המשתמשים. רק חשוב לזכור שלמרות שהאתר מאוחסן בשרתים של MathWorks, הוא אתר שיתוף קבצים חופשי ולכן אין שום ערובה לנכונות הקוד והאלגוריתמים המופיעים בו, וחובה על כל משתמש לשוב ולבחון כל אלגוריתם בו הוא עומד לעשות שימוש.

ואם רוצים להעלות תכנים? כל משתמש MATLAB או Simulink שיש לו חשבון באתר של MathWorks יכול להעלות תכנים לאתר ולהתקדם במעלה הדירוג בו, הנקבע בהתאם לכמות ההורדות של התכנים שלו בחודש האחרון על ידי המשתמשים, אשר יכולים גם לתת ציונים לתכנים.

לאחרונה העלתי מספר פרויקטים משלי אותם אתם מוזמנים לבחון (ועל הדרך לשפר את הדירוג שלי...):

1. מחשבון Black & Scholes להצגת מחירים ורגישויות של אופציות

2. עץ אדום-שחור

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

ואגב, החל מגרסת R2009b ניתן לגשת ל-file exchange ישירות מתוך ה-desktop של MATLAB.

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



האם העליתם פעם קובץ לאתר שיתוף הקבצים של MathWorks? יש לכם המלצה על תכנים שהורדתם? ומה עם ביקורת על הקבצים שהעלו עובדי סיסטמטיקס?