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

יום שני, 15 באוקטובר 2012

הבחירות כבר כאן | אפשר לבחור בין שתי טכנולוגיות של SimMechanics

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

אם אתם משלבים מערכות מכניות/אלקטרוניקה/בקרה או עובדים בתחום המכשור התעשייתי, בתעשייה הבטחונית, בתעשיית הרכב, בתחום המכשור הרפואי או בעולם הרובוטיקה - כדאי לכם להמשיך לקרוא. בגרסת R2012a בוצע עדכון משמעותי למוצר SimMechanics, ונוספה לו טכנולוגיה המהווה למעשה תחליף מלא לטכנולוגיה הישנה של המוצר הזה. כיום, מוצר זה כולל את שתי הטכנולוגיות, תחת שתי ספריות שונות, והמשתמשים יכולים לבחור באיזו גרסה לעבוד (השמות שלהן הם 1G עבור הטכנולוגיה הישנה ו-2G עבור החדשה). פוסט זה יעסוק בעיקר בטכנולוגיה החדשה.

רק רגע, מה זה בכלל ה-SimMechanics הזה?

SimMechanics הוא חלק מכלי המידול הפיסי של MathWorks, ואחד מהכלים הותיקים שלה (משנת 1996 לערך). מטרת המוצר הזה היא להקל על מידול וסימולציה של מערכות מכניות קשיחות תלת-מימדיות. הדוגמה הפשוטה ביותר היא זרוע רובוטית – כלומר מספר חלקים מכניים המחוברים ביניהם במפרקים סיבוביים – היכולה לנוע במרחב התלת-מימדי. SimMechanics מאפשר לאפיין את החלקים השונים (מסה, אינרציה ותכונות מכניות אחרות), את צירי החופש והתנועה (סיבוב, תנועה קווית, בורג וכו'), את הסביבה (גרביטציה למשל) ואת האינטראקציה עם הסביבה (כוחות המופעלים על החלקים, חיכוך/שיכוך ועוד). והיתרון הגדול ביותר של SimMechanics הוא שהכלי מאפשר למתכנן להתמקד ב"בעיה" ולא ב"מתמטיקה". כלומר במקום לכתוב הרבה נוסחאות – פשוט גוררים בלוקים, מחברים אותם ולבסוף מריצים את הסימולציה, וכל המשוואות נפתרות בעזרת המנוע של SimMechanics "מאחורי הקלעים".

למה MathWorks הוסיפה טכנולוגיה חדשה לכלי?

הטכנולוגיה הישנה פותחה בצורה מאד בעייתית, שהקשתה על הוספת יכולות ומודולים חדשים שביקשו המשתמשים בכלי (ויזואליזציה טובה יותר, יכולות של שילוב גופים גמישים, הוספת מתמטיקה של "התנגשויות" בין חלקים וכו'). לאנשי הפיתוח של MathWorks לקח הרבה זמן לעשות אפילו שדרוג קטן במוצר, ולכן במקום להמשיך ולהשקיע את הזמן הזה, הוחלט לעשות "cut" ולהחליף את כל המנוע המתמטי במנוע חדש, אשר נעזר בטכנולוגיה של Simscape – התשתית לכל כלי המידול הפיסי של MathWorks.

מה החידושים בטכנולוגיה החדשה?

• הגדרה פשוטה ונוחה יותר של גופים - יש מגוון של גופים מוכנים (גליל, אליפסה, כדור וכו').

• חישוב מסה ואינרציה בצורה אוטומטית ופשוטה.

• המערכת רצה חלק ומהר יותר.

• הגדרה של צירים ותנועה יכולה להיעשות ישירות באמצעות MATLAB – לרבות שילוב של "קדחים" בגוף. הדבר מאפשר יכולות הקיימות בתוכנות תיב"מ (במידה ואין אחת זמינה).

• חיבור גופים בסיסיים ליצירת אחד חדש, ללא שימוש ב"ריתוך" ביניהם. אין צורך להגדיר משוואות.

• אנימציה משופרת באמצעות ה-Mechanics Explorer, אשר בין יתרונותיה:
.     o מספר Views שונים בו-זמנית.
.     o האנימציה נשמרת ללא צורך בהרצה חוזרת של המודל.
.     o אפשר לשלוט על מהירות העדכון של האנימציה, אפשר לעשות Rewind, להריץ צעד-צעד וכו'.
.     o שמירה של סרטונים.
.     o "עץ גרפי" של חיבור החלקים וכיצד הם משוייכים אחד לשני, המזכיר את ה-Browser של Windows.

• שמירה אוטומטית (Logging) של כל הנתונים של ריצת הסימולציה, ללא חיבור חיישנים וסנסורים!

• דרגות החופש (ה-Joints) מכילות כבר בתוכן את החיישנים, ולכן אין צורך בהרבה בלוקים חיצוניים.

• ניתן לחבר בין בלוקים של הגרסה הישנה לבלוקים של הגרסה החדשה – עם כמה מגבלות.

מה המגבלות בהשוואה לגרסה הקודמת?

נכון לגרסה השניה של הטכנולוגיה החדשה (זו שנכללת בגרסת R2012b של כלי MathWorks) מרבית היכולות הקיימות בטכנולוגיה הישנה קיימות גם בחדשה. בגרסה השניה, למשל, ניתן כבר לייצר קוד C מתוך המודלים (באמצעות ה-Simulink Coder) ואף ניתן לייבא מודלים מתוך תוכנת תיב"מ (כמו SolidWorks).

עם זאת עדיין יש מספר חוסרים:
1. מגוון נמוך יותר של Joints (דרגות חופש).
2. לא ניתן להגדיר תנועה, ואז לפתור את הבעיה ההופכית, אלא רק להפעיל באמצעות כוחות.
3. אין שיטה אוטומטית לשדרוג מודלים מהטכנולוגיה הקודמת לחדשה, אך אנשי הפיתוח עובדים על כך.

 לסיכום, יותר מאי פעם, השימוש ב-SimMechanics מאפשר כעת:

• חסכון אדיר בזמן – במקום לכתוב משוואות ניתן פשוט לחבר חלקים.

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

• שימוש חוזר במודלים שפותחו בעזרת כלי זה.

• ויזואליזציה מדהימה המאפשרת לראות בדיוק מה קורה בכל שלב נתון.

• בחירה בין שתי טכנולוגיות שונות.

• חיבור פשוט ל-MATLAB, Simulink ו-Simscape.

• אפשרות למקבל סימולציות, להשתמש בסקריפט לשינוי פרמטרים ולייצר קוד C מתוך המודלים.


האם אתם משתמשים ב-SimMechanics ? אם כן, האם כבר עברתם לטכנולוגיה החדשה ?

יום ראשון, 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.
מה דעתכם על הגרסה החדשה? כמה זמן לקח לכם להתרגל אליה? האם היא חוסכת לכם זמן? מאיזה פיצ'ר התלהבתם במיוחד?

 

יום חמישי, 1 במרץ 2012

CAD קטן | על המרת מידע בין תוכנות CAD ותוכנת MATLAB


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


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

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

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

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

תמונה 1: שמירת המודל בפורמט STL

2. יש להוריד מתוך אתר שיתוף הקבצים של MathWorks את הקובץ stlread.m

תמונה 2: הורדת הקובץ מאתר שיתוף הקבצים של MathWorks

3. הפונקציה stlread מתועדת היטב, וקל לעקוב אחרי הוראות השימוש בה. ייבוא הנתונים פשוט מאוד, כפי שניתן לראות בתוכנית הקצרה הבאה שכתבתי:

תמונה 3: קוד המשמש לקריאת הנתונים והצגת המודל בתוך MATLAB

ועל ידי השימוש בפונקציה patch, התוצאות ב-MATLAB נראות כך:

תמונה 4: הצגת הנתונים ב-MATLAB על ידי שימוש בפקודת patch

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

תמונה 5: צילום מסך מתוך SolidWorks

האם העליתם פונקציה משלכם לאתר שיתוף הקבצים של MathWorks? האם יש פונקציה מסויימת שהורדתם והפכה את החיים שלכם לקלים יותר? האם השתמשתם בעבר ב-SimMechanics? ומה לגבי פונקציית patch?