מה חדש בגרסת R2020b של MATLAB ו-Simulink?
גרסת R2020b של כלי MathWorks השתחררה לאחרונה, והיא כוללת 4 כלים חדשים ושדרוגים משמעותיים ל-15 כלים נוספים, לצד יכולות חדשות ותיקונים אחרים לשאר עשרות הכלים שפועלים בסביבת MATLAB ו-Simulink.
בפוסט זה מובאת סקירה של החידושים העיקריים, בחלוקה למשפחות הכלים השונות, כפי שריכזו מהנדסות ומהנדסי האפליקציה של סיסטמטיקס (רוני פאר, לורן סממה, הגר חן, עמית קפלן, רון איליזרוב, ינון נוסבאום, אסף מוזס, שלומי שרגא, איתמר אנגלמן ורועי פן).
מומלץ בנוסף גם לקרוא בעיון את ה-Release Notes כדי להתעדכן בכל החידושים בכלים שברשותכם וכן לעקוב אחר סקירות ממוקדות יותר עבור תחומי היישום השונים שיופיעו בבלוג זה.
תוכן עניינים
(לנוחותכם – ניתן ללחוץ על השורה הרלוונטית לצורך מעבר מהיר אל החידושים בתחום היישום שלכם)
– משפחת מוצרי MATLAB
– משפחת מוצרי Simulink
– תקשורת אלחוטית
– מידול פיזיקלי
– למידה עמוקה
– המרה אוטומטית לקוד HDL / CUDA / C++ / C
– מערכות אוטונומיות
– עיבוד אות
– אימות ותיקוף
משפחת מוצרי MATLAB
MATLAB
- חידושים לסביבת ה-Live Editor:
* מעכשיו נוכל להוסיף תיאור חלופי לתמונות ובכך להפוך אותן לנגישות עבור משתמשים בעליי ליקויי ראיה המשתמשים בתוכנת הקראה.
* ניתן להוסיף קישורים לקבצים או פונקציות מתוך ה Live Script ולייצא את כל קבצי ה-Live Script שבאותה תיקייה יחד לפורמט לבחירתכם. - שאילתות חדשות:
* לא בטוחים איזה גרסה של MATLAB מותקנת אצלכם? תוכלו ליצור אוביקט בעזרת פונקציית matlabRelease ולקבל את המידע הנדרש.
* לא בטוחים אם יש לכם יכולות חישוב מקביליות? תוכלו להשתמש בcanUseParallelPool על מנת לבחון האם יש לכם תמיכה ביכולות חישוב מקביליות על ידי שילוב מספר ליבות. - ייבוא ועיבוד קבצים:
* אפשר לקרוא ולכתוב קבצי XML בעזרת שתי פונקציות חדשות readstruct ,writestruct בהתאמה.
* אפשר לקרוא קבצי טקסט כמערך Nx1 שורות, כאשר N מייצג את מספר השורות, בעזרת הפונקציה readlines.
* אפשר לייצר DataStore ממערכים ששמורים בזכרון בעזרת arrayDatastore.
* תמיכה ב Implicit Expansion עבור משתנים קטיגוריאלים ומבוססי זמן. כלומר, אם בגרסאות עבר כאשר חיברנו טור ושורה מסוג duration קיבלנו שגיאה של אי התאמה, כעת נוכל לבצע פעולה כזו:
([seconds([1 2]) + seconds([1; 2 בלי בעיה.
* אוביקט חדש מסוג pattern מאפשר לבנות תבניות חיפוש משתנות ולחלץ אותן בעזרת extract מתוך מערכי טקסט. למידע נוסף – לחצו פה. - חידושים ב-App Designer, אשר לפני כשנה הפך להיות הממשק המומלץ ליצירת ממשקי משתמש בסביבת MATLAB (במקום GUIDE):
* אפשר לבצע בקרה והשוואה של גרסאות של האפליקציות שלכם ולמזג את השינויים שנעשו בעזרת ה Comparison Tool. למידע נוסף – לחצו פה.
* נוספו שינויים רבים בפן הגרפי והעיצובי כמו הוספת אייקון מותאם לחלון האפליקציה או לשורת הפקדים העליונה. ניתן גם ליצור רכיב UI מותאם אישית לפי הצרכים שלנו, למידע נוסף על יצירת class מותאם – לחצו פה.
* שליטה גבוהה יותר על עיצוב טבלאות – שליטה על רוחב עמודת טבלה לפי תוכן העמודה, ומתן אפשרות גלישת טקסט עבור רכיבי טקסט משתנים. - אפליקציית MATLAB Mobile, המאפשרת להפעיל MATLAB מתוך iPad ,iPhone ומכשירי Android, היא אפליקציה חינמית שיכולה לשמש על מנת להתחבר מהמכשירים הללו אל המחשב שלכם כדי לראות מה הסטטוס של ריצה שהרצתם, ואף נותנת לכם את האפשרות לרכוש מידע מחיישנים שנמצאים בהתקן שלכם ולהעביר את המידע הזה להמשך ניתוח באמצעות MATLAB. בגרסה החדשה אין צורך להיות משויכים לרישיון MATLAB על מנת לבצע את רכישת המידע מחיישנים, צריך רק חשבון אישי באתר MathWorks (חינמי ופשוט ליצירה). בנוסף, בעזרת החשבון האישי ניתן כעת גם לרכוש מידע ממספר התקנים ולהזרים אותו אל MATLAB Online. למידע נוסף על MATLAB Online, המאפשר שימוש ב-MATLAB וכלים משלימים נוספים דרך הדפדפן, מבלי להתקין שום דבר ומבלי לשלם כל תשלום נוסף – לחצו פה. למידע נוסף על MATLAB Mobile – לחצו פה.
Image Processing Toolbox
- Image Processing Onramp – קורס Hands On חינמי חדש, אינטרקטיבי ובקצב אישי. מדריך זה מספק מבוא מעשי לעיבוד תמונה בסביבת MATLAB, תוך שילוב תרגולים וקבלת משוב אוטומטי על המשימות שבוצעו. להשתתפות – לחצו פה.
- ממשק לביצוע סגמנטציה עבור תמונות של נפחים תלת-מימדיים – ה-Volume Segmenter App מאפשר ליצור ולעדכן מסיכות סגמנטציה בצורה אוטומטית, חצי-אוטומטית או ידנית. לדוגמה לשימוש בממשק זה לצורך יצירת מסיכת סגמנטציה בינארית – לחצו פה. לדוגמה לשימוש בכלי עבור סגמנטציה סמנטית – לחצו פה.
- שיפורים ליכולות העיבוד של תמונות היפרספקטרליות – כחודש לפני שחרורה של R2020b, שוחררה חבילת תמיכה חינמית עבור עיבוד של תמונות היפרספקטרליות. החבילה כוללת ממשק לצפיה וניתוח בסיסי של מידע היפרספקטרלי (Hyperspectral Viewer) וספריה עשירה מאוד של אלגוריתמים מהירים, חלקם די יחודיים. למידע נוסף על עיבוד תמונות היפרספקטרליות בסביבת MATLAB – לחצו פה. להורדת החבילה – לחצו פה.
Computer Vision Toolbox
- בתחום ה-Visual SLAM נוסף אוביקט worldpointset לצורך ניהול המידע בנוגע להתאמות בין נקודות בעולם האמיתי בתלת-מימד לבין נקודות בתמונות בדו-מימד עבור מבטי מצלמה שונים.
- פונקציית readAprilTag לאיתור סמני AprilTag בתמונות, זיהוי שלהם, ושערוך ה-Pose שלהם. סמנים אלה דומים לקודי QR, אך מקודדים פחות מידע, ולכן ניתנים לפענוח מהיר יותר, דבר אשר הינו שימושי ליישומי זמן אמת. לדוגמה לביצוע כיול מצלמה בעזרת סמני AprilTag – לחצו פה.
- יכולות חדשות עבור עבודה עם ענני נקודות – רגיסטרציה של שני ענני נקודות באמצעות Phase Correlation (פקודת pcregistercorr), סימון צורות על גבי ענני נקודות (פקודת showShape, שימושית גם עבור וידאו ותמונות) ועוד.
Optimization & Global Optimization Toolboxes
- ניתן להשתמש ב-optimize כמשימה ב-Live Editor על מנת להפעיל את כל ה-Solvers של MATLAB וכל ה-Solvers הנוספים שכלולים כחלק מחבילות ה-Optimization Toolbox וה- Global Optimization Toolbox (למעט fseminf, GlobalSearch, MultiStart). הנ"ל מחליף את השימוש ב-optimtoool. לדוגמא לפתרון בעיית אופטימיזציה לפי fmincon בעזרת היכולת החדשה – לחצו פה.
MATLAB Compiler
- תמיכה ב-Docker – על ידי שימוש בפקודה package.docker ניתן לארוז Standalone Applications כ- docker images (רק עבור מערכת הפעלה לינוקס).
Statistics and Machine Learning Toolbox
- AutoML – בהמשך להוספה של fitcauto בגרסה הקודמת, נוספה כעת פונקציית fitrauto. הפונקציה החדשה מאפשרת בחירה אוטומטית של מודל הרגרסיה הטוב ביותר וההיפרפרמטרים המשויכים אליו. יכולת זו מאפשרת אוטומציה של תהליכי בחירת המודל, חוסכת בכתיבה של קוד ובבחינת המודלים השונים.
- Lime – פונקציה חדשה המאפשרת "להסביר" את הניבוי שהתרחש במודל הרגרסיה או הקלספיקציה על ידי מציאת המנבאים החשובים. בתהליך זה מייצרים מערך נתונים סינתטי ומתאימים לו מודל פשוט (לינארי או עץ החלטות). בהסתמך על התוצאות ניתן להחליט האם אפשר "לסמוך" על המודל. למידע נוסף – לחצו פה.
- Incremental Learning – אלגוריתם למידה "מקוונת" (או מודל מצטבר) מאפשר לאמן מודלים של רגרסיה לינארית או סיווג בינארי על תצפיות נכנסות מנתוני סטרימינג, ולבצע הערכת ביצועים בזמן אמת. ניתן ליצור מודל של רגרסיה לינארית או סיווג בינארי בשתי דרכים:
1. המרת מודל שכבר אומן באופן מסרתי למודל מצטבר על ידי העברתו לפונקציה incrementalLearner.
2. אימון מודל מצטבר ישירות מהזרמה של נתונים, באמצעות הפונקציה incrementalRegressionLinear או IncrementalClassificationLinear. - בלוקים של SVM – ניתן לשלב פונקציות חיזוי של SVM (קלסיפיקציה או רגרסיה) בתוך סביבת Simulink על ידי שימוש בשני בלוקים חדשים: ClassificationSVM ו-RegressionSVM במקום להשתמש בבלוק MATLAB Function.
Text Analytics Toolbox
- חילוץ מילות מפתח – על ידי שימוש באלגוריתמים של RAKE ו-TextRank ניתן כעת לחלץ מילות מפתח המתארות בצורה הטובה ביותר את המסמך.
משפחת מוצרי Simulnik
Simulink
- ממשק Web ל-Simulink – ניתן להשתמש ב-Simulink בצורת Online, מכל מחשב שיש לו גישה לאינטרנט. על מנת להפעיל את Simulink בצורה הזו, ללא הורדה כלשהי או התקנה כלשהי, יש להיכנס דרך הדפדפן לחשבון האישי באתר MathWorks. כמו עבור MATLAB Online, גם במקרה של Simulink שיתוף מידע וקבצים יכול להתבצע באמצעות אתר האחסון החינמי מבוסס-הענן MATLAB Drive. למידע נוסף על Simulink Online – לחצו פה.
- ניהול תצורה ופרוייקטים בסביבת Simulink – שיפורים רבים בממשק לסביבת GIT, שילוב אוטומטי בין פרוייקטים (Automerge), ממשק ל-Polyspace ועוד.
- תמיכה ב-FMU – יצוא של מודלים של Simulink כך שירוצו בצורה עצמאית בתוך סביבה של רכיבי FMU אחרים.
- Simulation Data Inspector – האצת מהירות ריצה, שיפורים בתהליך הטעינה של קבצי Excel, שמירת תוצרים בפורמטים סטנדרטיים.
- בניה מהירה וקלה יותר – מיקום Ports בצורה שרירותית על גבי בלוקים, ביצוע Resize חצי-אוטומטי לבלוק כך שיתאים לטקסט שאמור להיות מוצג ב-Icon שלו, שימוש בטיפוסי מידע Half ו-String, קיצורי מקלדת נוספים לעריכה של מודלים (לרשימה המלאה של הקיצורים – לחצו פה).
- שדרוג משמעותי לבלוק ה-S-Function Builder, דבר המקל עוד יותר על שילוב קוד Legacy קיים בתוך Simulink.
- המרה אוטומטית של מודלי Simulink לקוד CUDA (למידע נוסף – ראו GPU Coder למטה, תחת הכותרת המרה אוטומטית לקוד HDL / CUDA / C++ / C).
Simulink Compiler
- בעת ייצור רכיב עצמאי (Exe) מתוך Simulink, ניתן כעת לקבל MATLAB App בצורה אוטומטית, על מנת לפשט את התהליך של שינוי הפרמטרים והרצת המודל למי שאינו בעל רשיון מתאים. לדוגמה – לחצו פה.
Control System Toolbox
- תמיכה במודלים מדוללים מסוג מרחב-המצב (Sparse State-Space) – שימוש באובייקטים חדשים של מרחב-המצב לייצוג מודלים מדוללים של מרחב-המצב מסדר ראשון (sparss) וסדר שני (mechss). שימוש במודלים מסוג זה מגביר את היעילות החישובית ומפחית את כמות הזיכרון הנדרשת לאחסונם. עבור מודלים מדוללים מסוג מרחב-המצב ניתן לבצע:
* ניתוחים הן במישור הזמן והן במישור התדר
* גישה לנתונים (sparssdata, mechdata, showStateInfo) ומיונם (xsort)
* בחינה כיצד הרכיבים בתוך הוקטורים והמטריצות מחולקים
* הגדרת הממשק הפיסיקלי בין שני מודלים או תתי-רכיבים (Interface)
* ביצוע לינאריזציה של מודל Simulink וקבלת ביטוי מרחב-המצב מדולל
* המרה בין הביטויים של מרחב-המצב מדולל ממישור רציף (s) למישור בדיד (c2d, d2c, d2d – (z.
Simulink Control Design
- Control Design Onramp with Simulink – קורס Hands On חינמי חדש, אינטרקטיבי ובקצב אישי. מדריך זה מאפשר ללמוד את שלבי העבודה עם כלי הבקרה באופן הדרגתי, תוך שילוב תרגולים וקבלת משוב אוטומטי על המשימות שבוצעו. המדריך כולל:
* היכרות עם תהליך העבודה של תחום הבקרה בסביבת Simulink
* לימוד תאוריות בקרה קלאסיות בסביבות MATLAB ו-Simulink
* הדגמה בצורת שלב-אחר-שלב של תכן בקרה בסיסי
* הדגמת תהליך לינאריזציה של המערכת המבוקרת (Plant) וכיוונון בקר PID
* משימות ליישום החומר הנלמד על מודל קיים – רובוט מהלך.
להשתתפות – לחצו פה. - לינאריזציה של מודל Simulink לכדי מודל מרחב-המצב מדולל (Sparse State-Space) – על המודל להכיל את הבלוק Descriptor State-Space עבור אוביקט מסוג sparss או את הבלוק Sparse Second Order עבור אוביקט מסוג mechss.
Model Predictive Control Toolbox
- יישום בקר מסוג MPC המשתמש בפותרנים מסוג Embotech FORCES PRO – הרחבה זו מכילה שיטות נומריות המאפשרות להריץ סימולציות ולייצר קוד עבור בקרי MPC לינאריים ולא-לינאריים. ההרחבה מאפשרת לערוך ולייצר Solvers חדשים אשר מותאמים להרצה על מחשבי זמן-אמת וממנפים את יכולות הכוח המחשובי.
- סימולציה של בקר MPC המכיל אילוצים המשתנים לאורך ערוץ ה-Prediction Horizon בזמן ריצה – ניתן להגדיר אילוצים משתנים אלו הן ב-MATLAB והן ב-Simulink כאשר העבודה הינה באמצעות מטריצה בה כל שורה מכילה אילוצים עבור צעד בערוץ ה-Prediction Horizon.
System Composer
- הגדרת קשר ישיר בין אלמנטים (components, ports, connectors) בארכיטקטורה אחת לבין אלמנטים בארכיטקטורה נפרדת – ניתן להשתמש בהקצאות בכדי לייצר קשר בין רכיבי תוכנה לבין רכיבי חומרה על מנת להגדיר את אסטרטגיית הפריסה של הקוד ולבצע אנליזות – מטריצה של קשרים.
- הרחבת היכולות עבור יצירה, עריכה וסינון מבטים – כעת ניתן לערוך מבטים לאחר שנוצרו, להוסיף ולהסיר רכיבים ואף לקבץ ולהפריד מספר רכיבים במבט.
- מבט היררכיה (גרף מגרפה) המאפשר להציג את רמות הרכיבים בארכיטקטורה כדיאגרמת עץ – במבט זה ניתן להציג גם את המאפיינים עבור כל רכיב. ניתן ליצר מבט היררכיה עבור כל ארכיטקטורה. יצירת מבט זה משטחת את הרכיבים בארכיטקטורה הראשית ומציגה אותם בצורת דיאגרמת עץ כאשר הרמה העליונה בארכיטקטורה הינה השורש וכל שאר תתי-המערכות והרכיבים מהווים ענפים ועלים.
- תמיכה עבור התנהגות רכיבים, התנהגות הממומשת ב- Simulink ומכילה הודעות קלט / פלט – באמצעות ה- Sequence Viewer נוכל להציג אירועים המיצגים את זרימת ההודעות, קריאה לפונקציות ואת המעברים בין המצבים השונים.
תקשורת אלחוטית
5G Toolbox
- הצגה ויזואלית של מאפייני ערוץ CDL בעזרת הפקודה displayChannel.
- כתיבת MAC packets לקובץ PCAP בעזרת הפקודה pcapWriter, דבר המאפשר ניתוח ביצועי הרשת ב-WireShark.
Antenna Toolbox
- ייבוא קבצי Gerber ל-MATLAB, ניתוח שלהם ושינוי שלהם. למידע נוסף – לחצו פה.
- סימולציית התפשטות אותות RF מנקודה לנקודה (Point to Point) במערכת קואורדינטות קרטזית.
- שיטות אופטימיזציה חדשות: אלגוריתם Surrogate לאופטימיזציית אנטנות ומערכי אנטנות בממשקים Antenna Designer ו-Antenna Array Designer.
Communications Toolbox
- שיפורים ליכולות מידול ערוץ Ray-Tracing בעזרת הפקודה raytrace. לדוגמה של Indoor Ray-Tracing העושה שימוש ביכולות החדשות – לחצו פה.
- יכולות ודוגמאות חדשות לפרוטוקולי Bluetooth LE ו- BR/EDR. למידע נוסף – לחצו פה.
- אימון ובחינת רשת נוירונים לשיערוך LLR ב-MATLAB. לדוגמה – לחצו פה.
LTE Toolbox
- חילול אותות NPRACH FDD בתקן Release 15. למידע נוסף – לחצו פה.
- דוגמה למידול ובדיקה של משדר LTE RF. לצפיה – לחצו פה.
- הצגה ויזואלית של מאפייני ערוץ CDL בעזרת הפקודה lte3DChannel.
- הגדרה וחילול אותות Downlink RMCs במודולציות 256QAM ו-1024QAM הן על ידי פקודות והן דרך ממשק ה-LTE Waveform Generator.
Mixed-Signal Blockset
- בניית או שינוי רשתות לינאריות באמצעות בלוק חדש – Linear Circuit Wizard.
- מדידת מטריקות זמן באמצעות בלוק חדש – Time Measurement וכן באמצעות פונקציות חדשות – timeDomainSignal2RiseTime, timeDomainSignal2FallTime, ו-timeDomainSignal2DutyCycle.
Phased Array System Toolbox
- חישוב והצגה של רוחב אלומה ו-Element Patterns בעזרת הפקודה החדשה beamwidth.
- שילוב ספריית Pulse Compression בממשק ה-Radar Waveform Analyzer.
- תמיכה ב-Subarray בממשק ה-Sensor Array Analyzer.
RF Blockset
- מידול אנטנות שידור וקליטה עם אימפדנס תלוי-תדר ועקום קרינה בעזרת בלוק חדש – Antenna. להרחבה – לחצו פה.
- בלוק ה-S-Parameters תומך כעת במידול אובייקטי S-Parameter עם יותר מ-8 פורטים.
Sensor Fusion and Tracking Toolbox
- עוקב חדש – מעקב אחר אובייקטים באמצעות RFS tracker. לדוגמה – לחצו פה.
- מידול וסימולציית חיישן INS ב-Simulink בעזרת בלוק חדש – INS. לדוגמה – לחצו פה.
- יצירת מידע Point Cloud סינתטי באצמעות חיישן LIDAR. לדוגמה – לחצו פה.
SerDes Toolbox
- דיאגרמת עין, קצבי שעון, ומטריקות מישור הזמן נוספות בתצוגה בעת הרצת מודל ה-SerDes בסביבת Simulink.
- חילול זמני שעון לבלוקים DFECDR ו-CDR מותאמים אישית בעזרת בלוק חדש – IBIS-AMI clock_times.
- הוספת IBIS-AMI Jitter ואנליזת מודולציה PAM3 בממשק ה-SerDes Designer.
WLAN Toolbox
- שדרוג אוביקט ה-wlanNonHTConfig לתמיכה בשידור וקליטת אות Non-HT.
- כתיבת MAC packets לקובץ PCAP בעזרת הפקודה pcapWriter, דבר המאפשר ניתוח ביצועי הרשת ב-WireShark.
- אפליקציית חילול אותות WLAN תומכת כעת ביצירה, הגדרה והצגה של אותות HE TB (כפי שמוגדר על פי IEEE P802.11ax/D4.1) וכן של כל אותות IEEE 802.11 הנתמכים עם מספר שרירותי של אנטנות שידור. למידע נוסף – לחצו פה.
Wireless HDL Toolbox
- דוגמה ל-Predistorter דיגיטלי – יישום עיוות דיגיטלי לתיקון אי ליניאריות ואפקטים של זיכרון ממגבר הספק. תת המערכת predistorter בדוגמה תומכת ביצירת קוד HDL על ידי כלי ה-HDL Coder (הרחבה למטה). לדוגמה – לחצו פה.
- OFDM Transmitter and Receiver Reference Applications – יישום מערכת תקשורת אלחוטית OFDM בהתאמה אישית על FPGA או ASIC. התכנון תומך בייצור קוד HDL על ידי כלי ה-HDL Coder והוא מוכן להטמעה על חומרה. למידע נוסף – לחצו פה.
מידול פיזיקלי
Simscape
- Variant Connector – בלוק המאפשר בחירה בין מספר גרסאות מימוש במהלך סימולציה של מודל פיזיקלי. כמו כן, ניתן לבצע הפעלה או השבתה של רכיבים ותתי מערכות ברשת הפיזיקלית מבלי להסירם מהמודל.
- שיפור מימוש בלוקים של חיישנים מתחומים פיזיקליים רבים על ידי כתיבת המשוואות מחדש, באופן קריא יותר המתייחס ישירות לפלטים. בנוסף, הוסרו משתנים במטרה להאיץ את תהליך הקומפילציה של המודל הפיזיקלי.
- תמיכה מורחבת בעבודה עם מערכים בסימולציה והתייחסות נוחה יותר לאלמנטים המרכיבים את המערך. דבר מאפשר לעבוד עם מערכים עבור משתנים ונקודות עבודה במודל, לבחון סטטיסטיקות ולבצע תיעוד של התוצאות ברמת האלמנט במערך.
- הרחבת יכולות Simscape Language מאפשרת אתחול מחדש של מצבים (States) בהתאם לאירועים (Events) המתרחשים במהלך הסימולציה. כמו כן, ניתן לנתח אלמנטים של מערכים ולהשתמש בלולאות For במשוואות ליצירת רכיבים חדשים.
Simscape Driveline
- עודכנו הבלוקים של בלמים ומצמדים והם מאפשרים כעת הגדרה של כשלים וצורת עבודתם, זיהוי סוג הכשל ודיווחו. הכשלים יכולים להיות מוגדרים על פי תחום ערכים או בנקודת זמן הנקבעת מראש.
- שיפור בלוקים עבור גירים (Gears) והתייחסות לחום המתפתח ברכיב. תוספת זו מאפשרת לבחון את מעבר החום במערכת, כיצד הוא משפיע על רכיבים אחרים ועל ההתנהגות הכוללת של המודל.
Simscape Fluids
- הרחבת יכולות הבלוקים של מחליפי חום (Heat Exchangers) המאפשרים הגדרת גאומטרית הצינורות ותצורת הזרימה, תוך שילוב של תחומים שונים של ה- Simscape:
Thermal Liquid & Moist Air, Thermal Liquid & Two-Phase Fluid. - מידול מחזור קירור באמצעות הבלוק Thermostatic Expansion Valve אשר מאפשר למדל מפלי לחץ במערכת כגון התרחבות בין המעבה (Condenser) לבין המאדה (Evaporator).
Simscape Multibody
- הרחבת יכולות תת הספריה Flexible Beam ועריכת המסגרות על ידי הגדרת הראשית והכיוון או על ידי מאפיינים כגון נקודות, קוים ומשטחים.
- הרחבת יכולות תת הספריה Joints והגדרה עבור כל מפרק בנפרד האם הוא מופעל על ידי קלט חיצוני או האם הוא מנותק. השינוי יכול להתבצע במהלך ריצת הסימולציה.
- הגדרת נקודות ומישורים וירטואליים המאפשרים למדל בצורה נוחה יותר את השפעת המגע (התנגשויות) במרחב בין חוליות שונות במכניזם.
Simscape Electrical
- משפחת בלוקים של ממירים מודולרים רב-שכבתיים מתצורות: Arm, Leg, Three-Phase.
- הוספת בלוקים מסוג Six-Phase עבור מנוע מסוג PMSM ומכונה סינכרונית.
- שיפור יכולות המיתוג תוך התייחסות להפסדים ולחום המתפתח ברכיבים GTO, IGBT, MOSFET, Thyristor.
- הרחבת הגדרות הבלוק (Battery (Table-Based, שיפור דיוק ההתנהגות של הרכיב ובחירת הפרמטרים על פי מפרט יצרן.
- ממשק Load-Flow Analyzer משופר עבור ניתוח רשת חשמל תלת פאזית: עומסים, הספקים, תמסורות וכו', כאשר התוצאות מתייחסות ל- Nodes & Connections ברשת החשמל.
- רכיבים חדשים עבור מידול עומסים סטאטיים ודינאמיים בתצורה חד-פאזית ותלת-פאזית.
- הרחבת ספרית ה-PWM עם ארכיטקטורות נוספות עבור רשתות תלת-פאזיות.
- ממשק חדש בשם Power Line Parameters המאפשר לחשב את פרמטרי קו ההולכה על פי הגדרת הגאומטריה וסוג המוליך.
למידה עמוקה
לפוסט מקיף על החידושים בתחום זה – לחצו פה.
המרה אוטומטית לקוד HDL / CUDA / C++ / C
MATLAB Coder
- Deep Learning – תמיכה ביצירת קוד לשכבות מותאמות אישיות (Custom Layers) עבור מעבדי Intel ו-ARM וכן תמיכה ביצירת קוד עבור רשתות LSTM ,stateful LSTM ו – bidirectional LSTM עבור מעבדי Intel.
- גישה לשדות של Structure – ניתן לייצר קוד עבור קוד MATLAB שניגש לשדה של Structure באמצעות אינדקסים, כגון: (X(150:250,1:50.
- יצירת קוד שאינו משתמש בשמות משתנים מסויימים – כאשר משתנה בשם x מוגדר ב-MATLAB ומשתנה אחר בשם x הינו משתנה מקומי המוגדר בקוד C קיים, אם נרצה לשלב בין הקוד הכתוב ב-MATLAB לזה הכתוב ב-C על ידי פקודת coder.ceval, עלול להיווצר מצב של התנגשות בין שני המשתנים. החל מהגרסה החדשה ניתן להשתמש ב-coder.reservedName כדי לייצר קוד שאינו משתמש בשם המשתנה x בקוד שנוצר.
GPU Coder
- תמיכה ב-Simulink – ניתן להמיר מודלים של Simulink בצורה אוטומטית לקוד CUDA, המשתמש בספריות יעילות של Nvidia כמו cuFFT ,cuSolver ו-cuBLAS, על מנת להאיץ את הסימולציות בעזרת GPU-ים של Nvidia, וכן על מנת לייצר Executable עבור בחינה מהירה של אבטיפוס על GPU-ים של Nvidia או על מנת להוריד את מודל ה-Simulink אל Embedded GPU של Nvidia דוגמת Jetson או DRIVE.
- תמיכה בהמרה לקוד CUDA של פונקציות נוספות מכלים כמו Computer Vision Toolbox ,Audio Toolbox ,Signal Processing Toolbox ו-Wavelet Toolbox. לרשימה המלאה של הפונקציות שנתמכות – לחצו פה.
HDL Coder
- Half-Precision Native Floating Point – אם במודל Simulink קיים טיפוס נתונים Half-Precision, ניתן להשתמש בתמיכת Native Floating Point של ה-HDL Coder כדי לייצר קוד RTL סינטזבילי שאינו תלוי Target. ניתן לפרוס את הקוד שנוצר על כל FPGA או ASIC. למידע נוסף לחצו – לחצו פה.
- בלוק GSPS CIC Decimation HDL-Optimized להגדלת תפוקת ה-CIC באמצעות קלט Frame-Based – ניתן לייצר אותות Frame-based מבלוק CIC Decimation HDL Optimized. יכולת זו מגדילה את התפוקה בתכנוני חומרה. לקבלת רשימה של כל הבלוקים התומכים בקלט ופלט מבוססי Frame עבור ייצור קוד HDL – לחצו פה.
- יצירת קוד HDL עבור מודלים המכילים בלוקים שהם Comment Through. למידע נוסף – לחצו פה.
- יצירת HDL IP cores בעלי יותר מ-128 ביט בממשק IO הפנימי – בעת יצירת Reference Design מותאם אישית בעל ממשקי IO פנימיים, ניתן כעת למפות יציאות DUT שאורכי המילה שלהן הוא יותר מ- 128 סיביות לממשקי IO פנימיים. לאחר מכן אפשר לחבר את ליבת ה-IP של HDL ביתר קלות עם כתובות IP אחרות ב-Reference Design שאורכן גדול מ 128 ביט.
- ממשק להתאמה אישית של ערך התחלתי של רגיסטרי AXI4 slave – בעת התחלה של workflow של IP Core Generation ומיפוי של יציאות ה- DUT לממשקי AXI4 slave, ניתן כעת להתאים אישית את הערך ההתחלתי עבור רגיסטרי AXI4 slave. למידע נוסף – לחצו פה.
מערכות אוטונומיות
Lidar Toolbox
- כלי חדש לתכנון, ניתוח ובדיקה של מערכות עיבוד Lidar, שימושי בעבודה עם כלי טיס לא מאוישים או מכוניות אוטונומיות, בעיקר בהקשרים של למידה עמוקה, SLAM וכיול של מידע Lidar עם מידע ממצלמה רגילה. הכלי מכיל ממשק לתיוג ידני או חצי-אוטומטי של ענני נקודות Lidar וכן מגוון אלגוריתמים (אשר רובם ניתנים להמרה אוטומטית לקוד ++C/C על ידי ה-MATLAB Coder). למידע מלא על הכלי – לחצו פה.
UAV Toolbox
- כלי חדש לתכנון, סימולציה, בדיקה ופריסה של יישומי רחפנים ו-UAV-ים. הכלי מכיל אלגוריתמים, סביבת סימולציה, כלים לניתוח יומני טיסות ודוגמאות. לסרטון קצר (2 דקות) על הכלי – לחצו פה. למידע מלא על הכלי – לחצו פה.
Robotics System Toolbox
- מתכנן מסלול RRT דו-כיווני עבור מניפולטורים – מתכנן מסלול זה מאפשר לתכנן תנועה של מודל גופים קשיחים מנקודת המוצא אל נקודת היעד וללא התנגשויות של החוליות המרכיבות אותו (עם עצמן ועם הסביבה).
- תקשורת ישירה עם סביבת Gazebo באמצעות הבלוקים Gazebo Publish ו-Gazebo Subscribe – בלוקים אלה מאפשרים לערוך הודעות ולשדר/לקלוט הודעות אל/מתוך סימולציית Gazebo.
- שליחה וקבלה של הודעות עבור המפרקים של הרובוט, קביעת מיקום ומהירות המפרקים וקישור של המצבים (States) עם סימולציית Gazebo.
- קינמטיקה הפוכה אנליטית – מייצרת פונקציות לפתרון בעיות קינמטיקה הפוכה (IK) באמצעות קירובים. משתמשת ב-Solver לעבודה עם מודל של עץ גופים קשיחים באמצעות אוביקט analyticalInverseKinematics התומך בעבודה עם שש דרגות חופש (6DOF).
Navigation Toolbox
- עבודה במרחב פרנה (Frenet) המאפשרת קבלת עקומה חלקה, חלקית ורציפה על פי הנקודות הנתונות. כמו כן, ניתן לבצע המרה בין מערכת צירים גלובלית ומערכת צירים פרנה, אינטרפולציה בין המצבים לאורך המסלול ומציאת הנקודות הקרובות ביותר אליו.
- הגדרה וניהול של מכשולים במישור (2D) ובמרחב (3D) – יכולת זו מאפשרת לנהל רשימות של גופים סטאטיים ודינאמיים בסביבת העבודה של המערכת הניידת, להגדירם, לעדכנם ולהסירם בהתאם.
- הוספת מודלי חיישני Encoder אשר ממוקמים על הגלגלים Ackermann, Bicycle, Unicycle ועוד. חיישנים אלו מאפשרים לחשב את האודומטריה של המערכת הממודלת.
- יצירת קישור למחשב מארח (Host) המאפשר להגדיר את סוג מקלט ה-GPS ולקרוא נתונים כגון: קווי אורך, קווי רוחב, גובה, מהירות הקרקע ונתונים נוספים הכוללים חותמת זמן.
- ייבוא נתוני Lidar & Odomerty מחלל העבודה אל תוך הממשק הגרפי SLAM Map Builder.
RoadRunner Scene Builder
- כלי נוסף במשפחת ה-RoadRunner שהתווספה בגרסה הקודמת ואשר אינה מחייבת רישיון MATLAB. הכלי מאפשר לייצר מודלים תלת-מימדיים של דרכים בצורה אוטומטית מתוך מידע דרכים של Here HD Live Map. למידע מלא על הכלי – לחצו פה.
Automated Driving Toolbox
- הוספת סביבות אליהן ניתן להתממשק לצורך החלפת נתונים, כמו OpenStreet, OpenDrive, HERE HD.
- הגדרת תנועה של נסיעה לאחור (Reverse) המאפשרת למדל בקלות תמרונים כגון חניה לאחור או סיבוב לאחור בצורת משולש (Three-Point Turn), באמצעות הממשק הגרפי Driving Scenario Designer.
- הגדלת יכולות בניית תרחישים ב-Driving Scenario Designer באופן אינטראקטיבי כגון סיבוב הרכב, הגדרת זוויות הסבסוב (Yaw), הוספה/הסרה של כלי רכב נוספים במהלך ריצת הסימולציה, קבלת המיקום והכיוון של המערכת בצורה גרפית וקישור שמות לאובייקטים בתרחיש.
עיבוד אות
Wavelet Toolbox
- פירוק אות ממשי או מרוכב באמצעות טרנספורמציית Wavelet אמפירית (EWT).
- האצת ביצועים של 10 פונקציות על ידי שימוש ב-GPU (מצריך רישיון ל-Parallel Computing Toolbox).
- פקודות timeSpectrum ו-scaleSpectrum לתצוגות Time-Averaged ו-Scale-Averaged (בהתאמה) עבור ה-Power Spectrum של ה-Wavelets.
Signal Processing Toolbox
- Signal Processing Onramp – קורס Hands On חינמי חדש, אינטרקטיבי ובקצב אישי. מדריך זה מספק מבוא מעשי לעיבוד אותות וביצוע סינונים וניתוחים ספקטרליים בסביבת MATLAB, תוך שילוב תרגולים וקבלת משוב אוטומטי על המשימות שבוצעו. להשתתפות – לחצו פה.
- שיפורים בממשק תיוג האותות Signal Labeler מאפשרים תיוג מהיר יותר, ייבוא מידע מקבצים (ולא רק מה-Workspace) וביצוע תיוג על אות בתצוגת ספקטרום וספקטרוגרמה.
- תמיכה בקבצי EDF ו-+EDF (שימושי בישומים רפואיים).
- אובייקטי signalMask אשר מאחסנים את המיקומים ואזורי העניין באות יחד עם ה-Label של כל אזור.
Audio Toolbox
- רשתות Deep learning מאומנות מסוג YAMNet ו-VGGish לצורך סיווג אותות שמע וחילוץ Embeddings של אודיו (מצריך בנוסף רישיון ל ל-Deep Learning Toolbox).
- חילוץ מקדמים ספסטרליים מספקטרוגרמות בעזרת הפונקציה cepstralCoefficients.
- השוואת מאפייני שמע וחישוב הבדלים ביניהם באמצעות הפונקציה audiodelta.
- האצת ביצועים של שתי הפונקציות שהוזכרו בנקודות האחרונות וכן של 13 פונקציות שכבר היו קיימות על ידי שימוש ב-GPU (מצריך רישיון ל-Parallel Computing Toolbox).
DSP System Toolbox
- שיפור מהירות הביצועים ב-Accelerator Mode של סביבת Simulink עבור חלק מהבלוקים המשתייכים ל-Toolbox ואופטימיזציה בשימוש בזיכרון.
- ייצור קוד SIMD באמצעות טכנולוגית Intel AVX2.
אוביקט Time Scope חדש המאפשר ויזואליזציה של אותות במרחב הזמן.
אימות ותיקוף
בכלי האימות והבדיקה של מודלים ב-Simulink נוספו מספר חידושים:
- Model Testing Dashboard – ב-Simulink Check נוסף ממשק חדש לבדיקת השלֵמוּת של בדיקות מבוססות-מודל לצורך עמידה בתקנים כמו ISO 26262 ו-DO-178. למידע נוסף – לחצו פה.
- ב-Simulink Requirements נוספה אפשרות לצפיה נוחה בכל השינויים שבוצעו במסמכי הדרישות, באמצעות תצוגה אחת הכוללת קישורים הן למסמכי הדרישות עצמם והן למודל שמקושר אליהם. למידע נוסף – לחצו פה.
- Simulink Test מאפשר להאיץ את הרצת מודלי הבדיקה באמצעות מיקבול (הן מקומי והן על שרתים מרוחקים) ללא כל שינוי בקוד (שימוש בשרת מרוחק מצריך בנוסף רישיון ל-MATLAB Parallel Server).
- לצורך קבלת אינדיקציה על כיסוי מוצלח Simulink Coverage מאפשר כעת לייבא את הרכיבים שכבר נבדקו מגרסאות קודמות (R2017b או גרסאות מאוחרות יותר) ללא צורך בהרצה של כלל התרחישים מחדש (שימושי מאוד עבור פרוייקטים גדולים).
- תמיכה ב-System Objects על ידי ה-Simulink Design Verifier לצורך איתור שגיאות, יצירת בדיקות וכו'.
בכלי אימות הקוד ממשפחת Polyspace בוצעו מספר שיפורים, וביניהם:
- תמיכה בגרסה 17 של שפת ++C ו-61 בדיקות חדשות עבור שימוש ב-AUTOSAR עם גרסה 17 של שפת ++C.
- השוואות בין ריצות שונות שמאפשרת להבין בקלות האם השינויים שבוצעו בין ההרצה הנוכחית לקודמות אכן תרמו וכיצד.
- תמיכה בהתממשקות ל-JIRA Software Cloud.