יום רביעי, 30 בספטמבר 2015

חידושים בגרסת R2015b

גרסת R2015b של כלי MathWorks כוללת שדרוגים משמעותיים ל-MATLABSimulink ולעוד עשרות כלים.

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

MATLAB
  • האצת מהירות הריצה של קוד הודות לשיפור מנוע ביצוע הרצת הקוד (execution engine) על ידי שימוש ב-JIT  (just-in-time compilation). לחצו למידע נוסף.
  • ניווט וקיצורי מקלדת חדשים ב-Help מאפשרים מציאת אינפורמציה מהר יותר. לחצו לסרטון.
  • Add-on Explorer - כלי הוספת תוספות חיצוניות ל-MATLAB, המאפשר הורדה והתקנה של כלים וספריות (Packages) חיצוניים, מתוך ה-MATLAB, ללא צורך בהתקנה חיצונית. לחצו לסרטון.
  • פונקציות graph ו-digraph ליצירת גרפים ורשתות, ניתוחם והצגתם. לחצו לסרטון.
  • אפשרות להעביר את הצירים בגרף דרך הראשית. בתמונה למטה: מצד שמאל - המצב לפני הגרסה החדשה, מצד ימין - השינוי בגרסה החדשה. שורות קוד רלוונטיות מופיעות מתחת לגרפים (לחצו על התמונה להגדלה).

  • אובייקט ה-Datastore יכול להתממשק כעת למסדי נתונים המכילים תמונות, ולא רק קבצי טקסט.
  • התממשקות עם Python:
o        MATLAB מתוך Python – ניתן להפעיל את ה-MATLAB Engine מתוך סביבת Python ולהשתמש בכל הפונקציונאליות של MATLAB המאופשרת על ידי ה-MATLAB Engine.
o        Python מתוך MATLAB – ניתן להפעיל פונקציות Python ואף את סביבת ה-interpreter של Python מתוך סביבת ה-MATLAB.
  • הגרסה החדשה נתמכת להתקנה גם על גבי מערכת ההפעלה Windows 10, כמו קודמתה, אך אינה נתמכת להתקנה על Windows XP.
  • R2015b הינה גרסת ה-MATLAB האחרונה שתומכת במערכת הפעלה 32 ביט של Windows.  החל מהגרסה הבאה גם לא תהיה יותר תמיכה בהתקנה של מנגנון ניהול הרישיונות על גבי פלטפורמה זו.
  • עדכון רישיונות Concurrent ו-NNU לגרסה החדשה מחייב גם עדכון גרסה של מנגנון ניהול הרישיונות (FlexNet 11.13).


Image Processing Toolbox
  •         תמיכה בתכנון מסנני גאבור והפעלתם.
  •         מגוון פונקציות בתחומי העיבוד המורפולוגי והסינון רצות כעת מהר יותר.
  •         תוספת של 20 פונקציות לרשימת הפונקציות הניתנות להמרה לקוד C בעזרת MATLAB Coder – בין היתר, גם bwareaopen, imrotate, imcrop, imresize והתמרת Hough נתמכות כעת.


Computer Vision System Toolbox
  •  Optical Flow בעזרת שיטת Farneback , האוביקט נתמך להמרה לקוד C על ידי  MATLAB Coder
  • חילוץ פיצ'רים של local binary pattern (LBP) , גם כאן יש תמיכה להמרה לקוד C על ידי MATLAB Coder
  •  פרט לשתי היכולות החדשות המוזכרות, גם ארבע פונקציות אחרות ניתנות כעת להמרה לקוד C בעזרת MATLAB Coder, וביניהן detectCheckerboardPoints ו-insertText
  • האצת גילוי פיצ'רים של FAST תוך שימוש ב-GPU (מצריך Parallel Computing Toolbox)
  • התאמת ספירות, גלילים ומישורים לענני נקודות (Point Clouds) תלת-מימדיים תוך שימוש ב-RANSAC
  • ויזואליציה של ענני נקודות, כולל צפיה בענני מידע תלת-מימדיים המתקבלים בזמן אמת מסנסורים כמו Kinect (בעזרת הפקודה pcplayer)
  • שערוך וקטורים ניצבים בכל נקודה על ענן נקודות, בעזרת פקודת pcnormals


Statistics and Machine Learning Toolbox
  • הוספת יכולות ל- Classification Learner:
         o        ייבוא נתונים ישירות מקבצי טקסט, CSV, ועוד
         o        הוספת מודל קלסיפיקציה של Discriminant analysis
         o        הורדת מספר המימדים (Dimensionality reduction) בעזרת Principal component analysis (PCA)
  • ייצור קוד C/C++ עבור אלגוריתם Kmeans  (Unsupervised Learning) בעזרת MATLAB Coder
  • תוספת של למעלה מ-65 פונקציות לרשימת הפונקציות הניתנות להאצה תוך שימוש ב-GPU (מצריך Parallel Computing Toolbox)


Neural Network Toolbox
  •  יצירת רשת מסוג Deep Learning Neural Network.


Optimization Toolbox
  •         ממשק המשתמש עבור יצירת בעיות אופטימיזציה (optimtool) יוסר בגרסאות עתידיות.

Simulink
  • ממשק חדש לבלוק ה-Scope לשיפור הצפיה והדיבוג של מידע – ניתן לשלוט על התקדמות הסימולציה מתוך הבלוק, להוסיף טריגרים, להוסיף סמנים, לבצע מדידות ועוד. לחצו לסרטון.
  • בלוק קלט חדש לטעינת מידע מתוך קובץ Excel (לחצו למידע) ובלוק חדש ליצירת אותות כניסה (לחצו לסרטון).
  • תצוגת רשימה (List View) ל-Configuration Parameters, המאפשרת לבצע חיפוש של פרמטר אותו רוצים לשנות, וכוללת אופציה לסינון תוצאות החיפוש על פי קטגוריות. לחצו לסרטון.
  • כאשר גוררים בלוק מה-Library Browser ניתנת אפשרות לשנות את הפרמטר העיקרי שלו מבלי להיכנס לממשק המשתמש שלו
  • חקר קל יותר של ערכי הפרמטרים בבלוק. לחצו לפוסט בנושא.
  • שיקום סיגנל ("קו") קטוע – מאפשר לחבר שני קוים לקו אחד לאחר מחיקת בלוק. לחצו לסרטון.


Parallel Computing toolbox
  • הוספת תמיכה בפונקציות המפורטות למעלה עבור האצה באמצעות ה- GPU, ופרט לכך – גם פונקציות מכלים אחרים ניתנות כעת להאצה על ידי ה-GPU
  • פונקציית mexcuda לקימפול מהיר של קבצי mex המכילים קוד CUDA
  • הוספת פונקציה חדשה בשם parallel.pool.Constant המאפשרת יצירת משתנים קבועים כך שניתן לגשת אליהם מתוך Pool כגון Parfor
  • הפסקת התמיכה של הכלי במערכת הפעלה 32 ביט של  Windows

MATLAB Compiler
  • MATLAB Compiler בגרסת 64 ביט מאפשר לפתח תוספים ל-Excel אשר מיועדים להיות מותקנים תחת חבילת Office בגרסת 32 ביט.
  • הרחבת התמיכה בקימפול עבור סביבת Hadoop - החל מהגרסה החדשה datastore מאפשר לשמור גם קבצי תמונה.

MATLAB Compiler SDK
  • תומך באפשרות לקמפל קוד MATLAB לחבילות Python, לצורך שילוב הקוד באפליקציות הכתובות בשפה זו

MATLAB Production Server
  • תמיכה בהתממשקות לקוד המקומפל עבור C/C++ דרך פרוטוקול HTTPS (עד עתה פנייה דרך פרוטוקול HTTPS הייתה אפשרית רק מתוך Python, C# ו-Java)

MATLAB Coder
  • ניתן לייצר קוד C מקוד MATLAB העושה שימוש ב- cell arrays
  • הוספת תמיכה ביצירת קוד C מתוך פונקציות המפורטות למעלה
  • mex files מהירים יותר עבור פעולות של אלגברה ליניארית באמצעות שימוש בספריות LAPACK
  • ·אפשרות לבצע בדיקות Run-Time לקוד C שהוא Standalone (כמו בדיקה האם מתבצעת פניה לאינדקס אשר מחוץ לגודל המערך). עד כה היה ניתן לבצע את הבדיקות רק לקוד mex
  • תמיכה בקומפיילר חינמי MinGW-w64  עבור מערכת הפעלה 64 ביט של  Windows

Simulink Coder
  • קוד יעיל יותר עבור מערכות multirate
  • תמיכה בייצור קוד C++ עבור protected models
  • תמיכה בקומפיילר חינמי MinGW-w64  עבור מערכת הפעלה 64 ביט של  Windows


Embedded Coder
  • כלי חדש (Embedded Coder Quick Start) שמאפשר להכין במהירות את המודל ליצירת קוד Embedded קריא ויעיל
  • אפשרות לחיסכון בזיכרון הקוד (RAM/ROM) באמצעות שיתוף של משתנים עבור כניסות ויציאות של subsystem ובאמצעות שימוש בפוינטרים במקום העתקות
  • שיפורים ב-SIL/PIL - זמני ריצה מהירים יותר ואפשרות לצפייה ב-profiling של הקוד תוך כדי ריצה

Simscape
  •  Simscape Language – שינויים סמנטיים הקשורים לטיפול בפעולות מתמטיות על יחידות פיזיקליות – על מנת להגדיל את הרובסטיות והעקביות של תוצאות הסימולציות:
           o        בהגדרת משתנה פיזיקלי {value,'unit'} חובה להגדיר את הערך עצמו ללא יחידות (אין יותר את הגמישות שהיתה בעבר בנושא זה, אשר למרבה הצער במקרים רבים "עלתה" בהמרת יחידות כפולה)                    o        בהגדרת ארגומנטים חובה להגדירם עם יחידות, מתבצע נירמול לערך 1 של הערך הנשלח (בעבר הפונקציות היו מתייחסות לארגומנטים בצורה נומרית בלבד, כיום ההתייחסות הינה פיזיקלית)
  • ספריית Periodic Operators - בלוקים חדשים לעבודה על אותות מחזוריים
  • שיפור במהירות ויעילות סימולציות של מערכות לינאריות ממותגות של כ- 30% (גם ב- Accelerator mode וגם ב-Normal mode)
  • רישום משתנים ל- Workspace כ-Structure – טיפול בשמות המשתנים והענפים. בעבר המערכת הייתה משנה את שמות המשתנים (שמירה על ייחודיות), כיום שמות המשתנים והענפים הינם בדיוק כפי שהוגדרו בדיאגרמת הבלוקים

SimMechanics
  • בלוק spline בספריית Curves and Surfaces להתמודדות עם חוליות המתכנסות במספר מישורים (2-D, 3-D)
  • הוספת מסגרות לגוף קשיח (Solid) – מקל על תכן ושינויים מהירים בגוף בסיסי
  • הגדרת סיבובים ב-3D כרצף של שלושה סיבובים בסיסיים (זוויות אויילר( בבלוק ה-Rigid Transform

SimPowerSystems
  • Nonlinear Inductor, Nonlinear Transformer - בלוקים חדשים של רכיבים לא-לינארים כתוצאה מרוויה מגנטית
  • טיפול בהפסדים והחזרים עבור מנועים מסוג Brushless (​Brushless DC Motor block)

SimElectronics
  • בלוק Fault - הדמיית כשלים במערכת (open-circuit, short-circuit) ב- זמן / ערך / מצב מוגדר מראש. מאפשר ניתוח המערכת ושליחת אזהרות בזמן ריצת הסימולציה.
  • בלוק Resistor- הגדרת אפיצות, תחומי עבודה, כשלים, רעשים תרמיים וההשפעות שלהם.
  • שימוש בטבלאות להגדרת יעילות מנועי  Servoכפונקציה של המומנט והמהירות.


למידע נוסף, אנא היכנסו לעמוד הגרסה באתר.