כיצד משלבים כלי שפה מבוססי AI בעבודה שלנו? 

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

אז איך נוכל לשלב אותם בתהליך פיתוח האלגוריתמים שלכם בMATLAB כדי להפיק מהם את המיטב? 

אתם צריכים לבצע תהליך אוטומטי שבו הקוד שלכם ידרוש מידע בזמן אמת מ-ChatGPT ויפעל בהתאם? לשלב קוד ש- ChatGPT יצר לכם בתוך הסקריפט שלכם במהירות הגבוהה ביותר? להיעזר ב-Github Copilot כדי שייעץ לכם איך לכתוב את הקוד נכון בזמן אמת? אם התשובה לאחת משאלות אלו היא כן, אז הפוסט הזה מיועד בשבילכם!

בואו נדבר על השילוב של כלי השפה בעבודה עם MATLAB.

ChatGPT:

כיום אנחנו יכולים להשתמש ב-ChatGPT באופן בלתי נפרד מהאלגוריתמים שאנחנו כותבים ב-MATLAB ולהתייעץ איתו, או לקבל ממנו תשובות בזמן אמת, השלמת קוד ועוד.

נוכל לשלב את ChatGPT באחת משתי גישות:

1.שימוש בקוד:

כדי לשלב את ChatGPT כחלק מהקוד MATLAB שלנו, נכתוב מספר פקודות פשוטות בשביל להתחבר ל-API בשם Davinci, ולאחר ההתחברות ל-API נוכל לשלוח פרומפטים כדי לקבל מענה לכל שאלה ובקשה בסקריפט שנרצה:

*נצטרך API Key של OpenAI כדי להשתמש בChatGPT באופן זה.

2.שימוש בממשקים:

AI Chat Playground:

במידה ונרצה להשתמש ב-ChatPGT מבלי להצטרך לכתוב קוד כדי לקרוא לו נוכל להשתמש בממשק אינטרקטיבי שנקרא AI Chat Playground שנמצא באתר של MathWorks, ממשק זה מאפשר לנו לכתוב את האלגוריתמים שלנו ובמקביל לבקש בקשות מה – ChatGPT ולהטמיע את הפתרונות שלו והמידע שהוא מספק בתוך האלגוריתמים שלנו.

MatGPT:

MatGPT היא אפליקציה של MATLAB המאפשרת לנו לגשת בקלות אל ה APIשל ChatGPT מבית OpenAI. באמצעות האפליקציה, נוכל בתוך MATLAB לטעון רשימה של Prompts (הנחיות) למקרי שימוש שונים ולהשתתף בקלות.

האפליקציה מאפשרת לנו לייבא קבצי .m, .mlx, PDF, .csv או .txt לצ'אט, ואפילו ליצור תמונות באמצעות DALL·E 3.

GitHub Copilot:

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

כדי להשתמש בכלי זה נפתח את האלגוריתמים שלנו בשפת MATLAB בממשק Visual Studio Code, ולאחר שנוריד את ה-extension של GitHub Copilot נוכל לקבל ייעוץ צמוד וברמה הכי גבוהה שיש.

במידה ותרצו לשמוע עוד – אתם מוזמנים ליצור איתנו קשר!  

בינתיים, תוכלו לקבל מידע נוסף על האפליקציה בלינקים הבאים:  

  1. Connecting to ChatGPT using API
  2. AI Chat Playground
  3. MatGPT
  4. Using GitHub Copilot

מהפכת תעשיית הרכב: פיתוח מערכות אוטונומיות באמצעות MATLAB ו- Simulink

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

רקע

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

מהן מערכות אוטונומיות?

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

  1. חישה – השלב בו הרכב אוסף מידע על מצבו וסביבתו באמצעות חיישנים כמו IMU, מצלמות, LiDAR ו-RADAR. חיישנים אלה מספקים נתונים קריטיים ליצירת תמונה עשירה להבנת מצב המערכת ועבור מרחב העבודה בה היא פועלת.
  2. תפיסה – שלב המאפשר לרכב להבין מול מה הוא מתמודד. יכולת זו משמשת עבור זיהוי עצמים ומאפשרת להבין גם את תנאי הדרך והסביבה וכמובן להגיב בהתאם.
  3. תכנון – לאחר הבנת הסביבה, המערכת מחשבת את מסלול הפעולה האופטימלי, תוך התחשבות במידע הסביבתי, במטרות הנסיעה, ובמגבלות בטיחות. תכנון זה מנחה את השלב הבא.
  4. בקרה – בשלב הסופי, המערכת מתרגמת את התכנון לפעולות פיזיות מדויקות, כגון היגוי, האצה ובלימה, על מנת לנווט את הרכב בצורה בטוחה ויעילה.

>> צפו בבלוג בנושא פיתוח מערכות אוטונומיות

מערכות אוטונומיות ברכבים מסווגות לעיתים קרובות לרמות, מ-0 (ללא אוטונומיה) ועד ל-5 (אוטונומיה מלאה בכל התנאים). כיום מרבית כלי הרכב משלבים מערכות סיוע לנהג מתקדמות (ADAS) אשר נמצאות ברמות 1 או 2, זאת בעוד שתעשיית הרכב פועלת להגיע לרמות 4 ו-5, כלומר, עד לנהיגה אוטונומית מלאה.

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

  • בטיחות והפחתת סיכונים

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

  • פיתוח מואץ

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

  • חקר מקרי קצה

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

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

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

  • עיצוב מבוסס מודל

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

  • מידול דינמיקת הרכב

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

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

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

  • מיזוג חיישנים ועיבוד אותות

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

  • תכן מערכת הבקרה

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

  • למידת מכונה ואינטגרציה עם AI

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

  • בדיקות חומרה

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

בואו נחקור כמה יישומים ספציפיים בהם MATLAB ו-Simulink משפיעים באופן משמעותי על פיתוח כלי רכב אוטונומיים:

בקרת שיוט אדפטיבית (ACC)

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

מערכות אזהרה סטייה מנתיב

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

בלימה אוטונומית בחירום (AEB)

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

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

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

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

כיצד חברת AIR עושה שימוש בתוכנת Altium Designer לתכנון ועריכת PCB

חברת AIR מפתחת את כלי הטיס המאוישים מסוג AIR ONE eVTOL לשימוש אישי ואת ה- AIR ONE Cargo  eVTOL  הבלתי מאויש, שנועד לשיפור מערכות הלוגיסטיקה ברחבי העולם. כלי הטיס של AIR כוללים מערכות מורכבות המשלבות אלקטרוניקה מתקדמת, והם מובילים עתיד חדש של תעבורה אווירית בת קיימא.

חברת AIR משתמשת בתוכנת Altium Designer לצורך תכנון ועריכת כרטיסי PCB המהווים חלק בלתי נפרד ממערכות כלי הטיס שלה.

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

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

אחד הכלים המשמעותיים ש-AIR עושה בהם שימוש הוא פלטפורמת Altium 365 :
"היכולת לשתף מידע עם כל צוותי הפיתוח, בין אם מדובר במהנדסי חומרה, תוכנה או מכניקה, היא מדהימה. הגישה הנוחה מכל מכשיר עם חיבור לאינטרנט הופכת את שיתוף הפעולה לחלק ויעיל”, מציין וולנסקי.

בנוסף, כלים כמו Parameter Manager ו- Manufacturer Part Search מאפשרים בניית רשימות רכיבים (BOM) מדויקות, תוך בדיקת זמינות מלאי ומחירים. גם היכולת להציג את הכרטיסים בתלת-ממד תורמת משמעותית.

תוכנת Altium Designer תורמת רבות לייעול תהליכי הפיתוח של  AIR. עבודה עם שני מסכים – באחד הסכמות ובשני העריכה – הופכת את המעבר בין השלבים לפשוט ומהיר. לחיצה על רכיב בסכמה מקפיצה אותו ישר למסך העריכה, מה שמאפשר עבודה אינטואיטיבית וממוקדת. בנוסף, מעקב אחר זמינות רכיבים ובחירתם מראש חוסכים זמן ומונעים בעיות רכש עתידיות.

שילוב תוכנת Altium Designer בתהליכי הפיתוח של AIR הוא דוגמה מצוינת לאופן שבו כלי עבודה מתקדמים יכולים לתמוך ביצירת מוצרים פורצי דרך. היכולת לשתף פעולה, לעקוב אחר רכיבים ולהציג את התוצרים בצורה מקצועית הופכים את Altium Designer לכלי חיוני במימוש החזון של AIR להוביל את עתיד הניידות האווירית. ״אני ממליץ לכל מהנדס מקצועי לעבור ל- Altium Designer",  מסכם וולנסקי.

Viewer for Harness and Multi-board Designs

מי מכם שעובד בסביבת ה – System של Altium Designer ומבצע Multi-Boards וכבילה, יודע שבכדי לפתוח פרויקטים אלה, צריך להפעיל את הרשיון דבר שלפעמים מפריע במהלך העבודה.

מהיום, כל גירסא של רשיון Altium Designer (כולל Standard) ו/או Altium Viewer יכולה לפתוח ולצפות בקבצים של Multi-Board ושל Harness Design.

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

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

כאן ניתן לראות דוגמה ל –View Only Mode עבור פרויקט Multi-Board.

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

אני מזמין אתכם להיכנס לדף הלינקדין שלנו ולהתעדכן בפוסטים מעניינים, בנוסף לדף הוובינרים שלנו ביוטיוב.

למידע נוסף צרו איתנו קשר,

תודה שקראתם ונתראה בבלוג הבא,

בן מימון

PCB Configuration Tips

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

כאשר עובדים על עיצוב או ביצוע Design Review  לפרויקט מוגמר, אנחנו נוהגים לעבור על מגוון אלמנטים כמו רכיבים, Nets, פוליגונים ועוד.

בסביבת העבודה האחודה של Altium Designer כל הכלים הוויזואליים האלו זמינים במקום אחד, מהסכמה החשמלית ועד לפרטים הקטנים ביותר כמו VIAS בשכבות הפנימיות.

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

אם נסמן NET כלשהי בסכמה (במקרה הזה VCC3SW) ונבצע לה Cross-Prob בכדי לראות אותה ב-PCB נקבל את התצוגה הבאה:

לאחר מכן נעבור לצפות רק במעגל המודפס – נלחץ על 3 במקלדת ונעבור למצב תלת מימד.

במקביל נפתח את ה-Panel – View Configuration:

לאחר סימון ה-NET נשנה מעט את זווית הצפייה של המעגל, ניגש לפאנל View Configuration > View Options,

ולאחר מכן נשנה את ה-BAR של – Board Thickness Scale

מה שיגדיל את המקווח בין השכבות וייתן לנו לראות מעברים של ה-NET ונקודות בעייתיות במיוחד במעגלי RF ומעגלי HIGH SPEED:

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

כך ניתן לזהות נקודות בעייתיות בין אם במעברים בין VIAS לעובי לא תקין של מוליך.

מעוניינים לשמוע עוד? צרו איתנו קשר בערוצים השונים או בתיבת התמיכה –

AltiumSupport@systematics.co.il

אני מזמין אתכם להיכנס לדף הלינקדין שלנו ולהתעדכן בפוסטים מעניינים, בנוסף לדף הוובינרים שלנו ביוטיוב.

למידע נוסף צרו איתנו קשר,

תודה שקראתם ונתראה בבלוג הבא,

בן מימון

בניית ארכיטקטורות למערכות מורכבות בגישת "הנדסת מערכות מבוססת-מודלים"

MBSE מוצלח דורש שילוב בין דרישות הלקוח ובעלי עניין נוספים (stakeholders) לבין היכולת לתאר את המערכת באמצעות מודלי ארכיטקטורה, כך שיהיה ניתן לממש את המערכת בצורה האינטואיטיבית ביותר.

הנדסת המערכת כחוט דיגיטלי מקשר בסביבה אחודה אחת:

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

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

בניית ארכיטקטורת מערכת מורכבת בקלות באמצעות ה-System Composer:

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

ה- System Composer מאפשר להגדיר ולערוך ארכיטקטורות, להגדיר ממשקים ומאפיינים מותאמים אישית של האלמנטים השונים במערכת, לקשר דרישות לארכיטקטורה, לבצע ניתוחים ואופטימיזציה, לקשר מימושים לרכיבים בארכיטקטורה ולהגדיר בדיקות שונות בהתאם לשימושי המערכת… ועוד ועוד ועוד!!!

באמצעות יצירת תצוגות חדשות של הארכיטקטורה, נוכל לקבל תובנות לגבי זרימות הנתונים, פונקציונליות, תלות ברכיבים ועוד. כמו כן, ניתן למדל את ההתנהגות של המערכת באמצעות יכולות כגון שילוב אלגוריתמיקה, דיאגרמות בלוקים, תרשימי זרימה ודיאגרמות רצף. בנוסף, אפשר לשלב לארכיטקטורה בצורה נוחה גם FMUs, legacy code שכבר נבדק ונמצא בשימוש, ואף להוסיף בדיקות מקיפות עבור אימות ותיקוף (V&V), זאת תוך כדי שמירה על עקיבות (Traceability) מלאה לאורך כל תהליך הפיתוח.

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

הדרך המהירה ביותר להיכנס לתחום:

ה-Onramps הינם דרך מעולה להיכנס לתחום מסוים בצורה הקצרה ביותר. מדובר על קורסים אינטרקטיביים קצרים וחינמיים איתם ניתן ללמוד על תחום מסוים וכמו כן כיצד ניתן ליישמו ב-MATLAB ו-Simulink.

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

למידע נוסף:

מה עושים כשחסרה ספריית סמלים ב-SOLIDWORKS? פתרון פשוט ומהיר

מיקום הקבצים (File Location) בהגדרות SOLIDWORKS מתייחס לנתיב שבו מאוחסנים הקבצים והמשאבים הדרושים לתהליכי העבודה בתוכנה, כגון ספריית סמלים, טמפלייטים ועוד. קביעת הנתיב הנכון הכרחית בכדי להבטיח שהתוכנה תוכל לגשת לקבצים הדרושים ולמנוע תקלות שעלולות להפריע לתהליך העבודה.

הסבר על הבעיה:

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

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

הפתרון:

פתרון הבעיה מתבצע באמצעות הגדרה נכונה של נתיב התוכנה עבור קבצי הסמלים. לשם כך יש לבצע את השלבים הבאים:

  1. גשו ל- הגדרות מערכת (System Options).
  2. נבחר את הלשונית של הגדרות מערכת .
  3. פתחו את  'File Locations'
  4. מצאו את 'Symbol Library File' ברשימת הנתיבים.
  5. אם אין נתיב מוגדר או שהנתיב פונה לגרסה ישנה יותר, לחצו על הוסף (Add) והוסיפו את נתיב התיקיה הנכון המכיל את קבצי הסמלים.
  6. ביחרו את הנתיב שבו נמצאת ספריית הסמלים.
  7. לחצו על בחירת תיקיה (Select Folder).

לאחר הוספת הנתיב המתאים, ניתן ללחוץ על OK ולהשלים את הפעולה.

כך תיראה התוצאה הסופית:

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

לא הסתדרתם? ניתן לפתוח קריאת שירות כאן

עבודה נעימה 😊

קוונטיזציה של רשתות למידה עמוקה – מדריך מעשי

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

אז מהי בכלל קוונטיזציה של רשתות עצביות?

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

ולמה זה חשוב?

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

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

בואו נראה דוגמה מעשית ונבצע קוונטיזציה לרשת למידה עמוקה שמבצעת סגמנטציה סמנטית.

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

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

תהליך הקוונטיזציה:

  1. איסוף נתונים: שימוש במדגם תמונות לכיול הרשת.
  2. כיול: איסוף מידע על טווחי הערכים בכל שכבה.
  3. קוונטיזציה: המרת השכבות הכבדות חישובית (כמו קונבולוציה) ל-8 סיביות.
  4. תיקוף: בדיקת הדיוק לאחר הקוונטיזציה.
  5. יצירת קוד: הפקת קוד מותאם למטרה  – CPU, GPU או FPGA.

בדוגמה שלנו נוריד את ה dataset RIT-18 שמכיל תמונות עם labels – הדאטה-סט נמצא כאן.

לאחר מכן נכניס את התמונות האלה לרשת המאומנת – הרשת נמצאת כאן.

לפנינו דוגמה לתוצאה שהתקבלה עבור תמונה מתוך המאגר שעברה ברשת שאומנה מראש.

כעת נפתח את אפליקציית Deep Network Quantizer, האפליקציה הזו היא ממשק משתמש שמאפשר לבצע את כל ה-workflow של הקוונטיזציה ללא כתיבת קוד. כמובן שניתן לבצע את התהליך כולו גם ללא האפליקציה באמצעות כתיבת קוד.

ועכשיו נבצע את הקליברציה של הרשת. MATLAB עושה זאת באמצעות בדיקת הערך המינימלי והערך המקסימלי של ה-Weights, ה-Bias וה-Activations של כל שכבה. על ידי בדיקת הערכים האלה ניתן לדעת איך לייצג את הערכים השונים באמצעות UINT8 תוך הקטנה ככל האפשר של overflow ו-underflow ובכך לשמור על הדיוק של ביצועי הרשת.

לחיצה על Quantize תבצע את הקוונטיזציה בהתאם.

אחר כך ב-Hardware Settings אפשר לבחור את הסביבה שבה נבצע את הוולידציה, ובלחיצה על Validate נבצע את הוולידציה עצמה.

לחיצה על Export תייצא לנו את הרשת ל-Workspace.

כמו שאמרנו קודם לכן ההטמעה של הרשת יכולה להיות ל-CPU, GPU ו-FPGA. כאן לדוגמה אפשר לראות איך להטמיע רשת מקוונטטת על FPGA.

אם נסתכל על ההפרש בביצועים ובגודל הרשת בדוגמה שלנו, הפחתנו את גודל הזיכרון הנדרש בכ-65 אחוזים, עם ירידה מינימלית בדיוק של תוצאות הרשת (מ-98% ל-96%). ההמחשה הזו מראה לנו שניתן לדחוס רשתות עמוקות תוך שמירה על ביצועים גבוהים.

את הדוגמה המלאה, שכוללת גם את קוד ה-MATLAB המלא, ניתן למצוא בקישור הזה.

לסיכום,

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

מידע נוסף על קוונטיזציה של רשתות למידה עמוקה ניתן למצוא בדף הזה.

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

Understanding Signal Reflections for High-Speed Design

במקרה של מערכת דיגיטלית עם קצב סיביות גבוה, שבה נשלח מידע על מצב הסיביות "0" ו-"1" בצורה של אות גל ריבועי, ההנחה היא שזמן העלייה (או הירידה) של הקצוות העולים ויורדים זניחים ביחס לתדר האות הבינארי. בפועל, אות דיגיטלי לעולם לא עולה ויורד במהירות אינסופית. זמן העלייה (והירידה) נקבע לפי הפרמטרים של נתיב האות (Routed Signal) הכולל את המשדר, פרמטרי המקלט והמאפיינים הפיזיקלים של הקו המוליך.

במקרה של מערכות העובדות בקצבים מהירים (מעתה נקרא להם HSD – High Speed Design), זמן העלייה והירידה עשוי להיות קצר – 1ns  ומטה. תדר האות הבינארי במערכות דיגיטליות יכול להגיע למספר גיגה-הרץ גבוה, וכדי לשמור על צורה מלבנית יחסית, הקצוות העולים ויורדים צריכים להיות שבריר ממשך הסיביות.

מהירות התפשטות הגל האלקטרומגנטי (התפשטות המתח והזרם בקו התמסורת) תלויה במספר גורמים, ביניהם סוג קו התמסורת וסוג המצע/PCB.

לדוגמא: עבור קווי תמסורת מצע ומיקרו-סטריפ FR4, מהירות ההתפשטות היא כ-160 Mm/s (מגה-מטרים לשנייה). אם זמן העלייה (או הנפילה) של הקצה הוא למשל 200ps, אז הקצה העולה (או היורד) יעבור לאורך קו ההולכה 32 מ"מ או 1.25 אינץ' בזמן העלייה או הנפילה של האות המשודר.

התאמת עכבה והתאמה התנגדות:

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

נוהג נפוץ כיום הוא להתאים רק את החלק ההתנגדות של ה-ICs (המשדרים והמקלטים) ולהפוך את העכבה האופיינית לקו השידור להתנגדות גרידא – כלומר על ידי מרחקים שווים בין הTX וה RX. במקרה זה, רק נגדים נדרשים כדי לספק את ההתאמה הנדרשת, למשל סדרת נגדים בטור בפלט של ה-DRIVER הוא אחד הפתרונות האפשריים להתאים את המשדר לקו ההולכה. במקלט ניתן להשתמש בנגד מקביל לאדמה (או עבור זוג דיפרנציאלי – נגד בין העקבות היוצרות את זוג הדיפרנציאלי). כמה דוגמאות הקשורות לטופולוגיות טרמינצייה מקלט מוצגות באיור מטה שנלקחו מהכלי Signal Integrity by Keysight הזמין ב-Altium Designer.

להחזרי אותות במערכת דיגיטלית

בחלק הזה אדבר על תאום בין סיגנלים עם צורות גל השתקפות שיתבססו על מערכת בעלת התנגדות של 50Ω – מערכת נפוצה עבור RF Design, אולם הקשרים המוצגים בסעיף זה חלים גם על מערכות דיגיטליות המשתמשות בעכבות אחרות וכן עבור אותות המשודרים באמצעות זוגות דיפרנציאליים – נפוץ למערכות דיגיטליות מהירות, למשל USB3.0 או PCIe.

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

Ro=Ri=Rt=50Ω

  • Ro – התנגדות פלט של המשדר
  • Ri – התנגדות הכניסה של המקלט
  • Rt – עכבה אופיינית של קו השידור

אלו הן טרמינציות מסוג – Thevenin, Pull-Up, and AC :

פולס מוזרק (עירור) בסימולציית Signal Integrity כפי שניתן לראות עם שני קבלים בטור:

השתקפויות אות (Reflections) במערכת לעיל עבור ביצוע פולס – בדוגמא השתקפות פאזה חיובית:

דיליי (Delay) של המוליך המחושב על ידי Altium באופן אוטומטי:

השתקפויות אות (Reflections) במערכת לעיל עבור ביצוע פולס – בדוגמא השתקפות פאזה שלילית:

עכבה לא אחידה כתוצאה מעובי מוליך שונה לאורך הסיגנל:

השפעת המוליך הלא אחיד על הסימולצייה:

אני מזמין אתכם להיכנס לדף הלינקדין שלנו ולהתעדכן בפוסטים מעניינים, בנוסף לדף הוובינרים שלנו ביוטיוב.

למידע נוסף צרו איתנו קשר,

תודה שקראתם ונתראה בבלוג הבא,

בן מימון

Altium 365 SiliconExpert Integration

שיתוף פעולה חדש מבית היוצר של תוכנת Altium Designer על גבי פלטפורמת הניהול בענן – Altium 365 עם SiliconExpert עוזר למהנדסי אלקטרוניקה לקבל החלטות טובות יותר בבחירת רכיבים למעגלים המודפסים שהם מתכננים, אשר מונעות מנתונים קריטיים שמוזרמים בזמן אמת.

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

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

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

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

  • EOL
  • ROHS RISKS
  • SE Grade
  • Multi Sourcing Risk
  • Inventory Risk
  • Lifecycle Risk
  • REACH Index

ועוד.

יכולות עיקריות של האינטגרציה:

  • שילוב ישיר של SiliconExpert בסביבת ה –ECAD :

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

  • כל המידע שניתן לקבל על רכיבים אלקטרוניים :

השירות של SiliconExpert מציע נתונים על יותר ממיליארד רכיבים אלקטרוניים – החל מנגדים בסיסיים ועד ל IC's מורכבים. זהו משאב רב ערך להבטחת ה – PCB שלכם והחלטות על רכיבים מגובות במידע אלקטרוני מדוייק ובנתוני שרשרת אספקה מדוייקים.

  • אמין ומדוייק – תמיד:

שמירה על פרמטרי/נתוני הרכיבים האלקטרוניים באיכות גבוהה היא הליבה של מה שמציע השירות של SiliconExpert. עדכונים שוטפים על סטטוסים של רכיבים ועדכון DATASHEETS קפדניים מבטיחים שכל בעלי העניין, מרכש ועד לתכנון ועריכה, עובדים עם המידע העדכני והאמין ביותר של הרכיבים. רכיבים שכבר בוצע בהם שימוש על ידי המהנדס, ועברו עדכון פרמטרי כלשהו – יתעדכן בLIVE בשדה של הרכיב.

  • ניתוח סיכונים:

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

  • רכיבים אלטרנטיביים:

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

מעוניינים לשמוע עוד על המוצר? צרו איתנו קשר בערוצים השונים או בתיבת התמיכה

אני מזמין אתכם להיכנס לדף הלינקדין שלנו ולהתעדכן בפוסטים מעניינים, בנוסף לדף הוובינרים שלנו ביוטיוב.

למידע נוסף צרו איתנו קשר,

תודה שקראתם ונתראה בבלוג הבא,

בן מימון