
|
|
מאמרים
 |
|
|
יצירת קוד C
מתוך MATLAB השימוש בתוכנת MATLAB הרגיל את
משתמשיה לעבוד בצורה חופשית - ללא דאגה להקצאות זיכרון, ללא
חשש להגדרת סוגי המשתנים, והנאה רבה מהיכולת לביצוע פעולות על
מטריצות בצורה פשוטה וקלה. עקב כך, אלגוריתמאים ומתכננים
מתחומי תעשייה שונים עושים שימוש רב ומתקדם בתוכנה זו.
תיכנות בשפת C, מאידך, הוא אופטימלי לתכנון מערכות זמן-אמת
מבחינת ביצועים, ניצול הזיכרון ועוצמת החישוב. קוד זה יכול
לכלול גם שימוש ב-Fixed Point, ומהנדסי חומרה ותוכנה עובדים
שעות רבות על ניצול מקסימלי של רכיבים אלו, בכדי להפיק מהם את
המירב ולהשיג יתרון של ממש על פני המתחרים. כתוצאה מכך, אחד
מאתגרי הפיתוח הנפוצים בתעשיה הוא כיצד לבצע המרה מהירה, יעילה
ואוטומטית במידת האפשר - של תוכנית שנכתבה בסביבה החופשית של
MATLAB, לסביבה בעלת האילוצים הקשים וצורת התכנות של שפת C.
מטרת מסמך זה הינה להציג את אחד הפתרונות לאתגר זה: שימוש
בפרדיגמת ה-Embedded MATLAB (או: EML) ויצירת קוד C באמצעות
Real-Time Workshop. ע"י שימוש בדוגמא של פונקציה הכתובה
ב-MATLAB, מוסבר הליך המרת הקוד כך שיכיל עקרונות תכנות של שפת
C: הגדרות טיפוסי משתנים – לרבות Fixed Point, הקצאות זיכרון
וביצוע אופטימיזציה לניצול זיכרון הרכיב וייעול הקוד עצמו. כמו
כן, משולבים ידע ופרקטיקות שנאספו מתחומי תעשייה רבים מרחבי
העולם ומקנים לקורא תהליכים מומלצים לביצוע המרה אוטומטית של
קוד MATLAB ל-C. יש לציין כי גם במודלים של Simulink ניתן
לשלב פונקציות של EML. בצורה שכזו ניתן לבנות סביבת בדיקות קלה
ונוחה יותר, או לשלב קוד EML בתוך מודלים מערכתיים גדולים יותר
שנבנו בעזרת Simulink. לקריאת המאמר המלא, לחץ על הקישור:
לחץ כאן
לקריאת המאמר המלא |
|
|
|
פיתוח הזרוע
התותבת המתקדמת בעולם בעזרת תכנון מבוסס-מודל
מאת: רוני פאר מעטים הם האנשים המודעים לממשקים המורכבים בין מערכות עצביות,
מכניות ומערכות חישה הנדרשות לביצוע פעולה פשוטה כמו להרים
כדור. על מנת לפתח זרוע תותבת, המסוגלת לבצע פעולות טבעיות
כאלו, נדרש קודם כל למדל מערכות אלו, לרבות הקשרים הסבוכים
ביניהן. בכדי לעשות זאת, נעזרים במערכות הנעה, חיישנים,
מיקרומעבדים ומערכות בקרה. זהו האתגר שעימו התמודדו חוקרים
ממעבדת המחקר של בית-החולים ע"ש johns Hopkins שבארה"ב,
כשהצטרפו לתוכנית המערכות התותבות של פרוייקט DARPA – Defense
Advanced Research Projects Agency. במאמר המצורף, ניתן
לקרוא על תהליכי הפיתוח בהם השתמשו החוקרים, וכיצד גישת תכנון
מבוסס-מודל (או Model-Based Design) סייעו להם בתהליכים אלו.
אבן דרך מרכזית בפרוייקט הייתה פיתוח סביבת האינטגרציה
הורטואלית (VIE) אשר נבנתה בעזרת מוצרי The MathWorks™, כמו
MATLAB ו-Simulink. לאחר פיתוח סביבת העבודה, יכלו
המפתחים לשתף את הידע עם חוקרים אחרים ברחבי העולם, ולהתמודד
עם מידול המערכות המרכזיות: מערכות עצביות, בניית מערכות בקרה
המבוססות על זמן-אמת, מידול פיסי של המערכות המכניות והתצוגה
של התוצאות שהתקבלו. בעזרת סביבת העבודה החזקה שבנו, יכלו
החוקרים גם ליצור סביבת עבודה להדרכות ושינוי הפרמטרים
הנבדקים. בעזרת ממשק פשוט ונוח למשתמש, שנבנה בעזרת MATLAB,
ניתן לבצע את כל הבדיקות בזמן אמת, לאגור נתוני ניסויים ולנתח
אותם, ולשלוט על פרמטרי בקרה תוך כדי תנועה של הנבדק.
לקריאת המאמר המלא, לחץ על הקישור:
לחץ כאן
לקריאת המאמר המלא
|
|
| |
|
|
|
|
|
מימוש חומרה
אוטומטי למסננים דיגיטליים באמצעות כלי הפיתוח של The
MathWorks "בעבר, נהגנו לממש את התכנון
שלנו ע"י כתיבת קוד RTL (Register Transfer Level) בצורה
ידנית. בעוד שהתוצאה שקיבלנו היא תפוסה נמוכה של שטח הרכיב על
גבי הסיליקון, המחיר מבחינתנו היה גבוה – זמן הפיתוח היה ארוך
מאד ובמידה והיו שינויים בדרישות נאלצנו לבצע שינויים
משמעותיים במימוש. מבחינה עסקית נוספו לנו עוד מספר סיכונים:
לעיתים קרובות לא ידענו כמה קשה יהיה תהליך ה-Place And Route
עד לסוף הליך הפיתוח - כשכבר היה מאוחר מדי לבצע שינויים
ולעמוד בלוחות הזמנים שלנו. לאחרונה אימצנו גישה אחרת;
אנחנו משתמשים ב-MATLAB® וב-Filter Design HDL Coder™ בכדי
לייצר קוד RTL שהוא סינתזבילי. בעזרת החיבור הדו-כיווני בין
התכנון המערכתי לבין המימוש על גבי הסיליקון – הצלחנו לבחון
מספר מימושים של מסננים בצורה מהירה ולבחור את האופטימלי עבור
שטח הסיליקון שהיינו צריכים. זמן סבב הפיתוח ליצירת קוד RTL
ירד מ-3 חודשים לפחות משבועיים. שינויים מערכתיים שבעבר לקחו
כמעט חודש, ניתנים לביצוע כיום תוך פחות מ-3 ימים". ציטוט
זה מגיע מתוך מאמר שנכתב ע"י חברת "MediaTek Inc.", אשר עוסקת
בפיתוח מסננים דיגיטליים בתחום האודיו, ועומדים בדרישות
מחמירות של יחס אות לרעש (SNR) והפרעות הרמוניות (THD), תוך
מגבלות לצריכת הספק מינימלית ונפח תפוסה על רכיב החומרה.
לקריאת המאמר המלא בפורמט PDF, העוסק בתהליך פיתוח טיפוסי
שנעשה בחברה זו, החל משלב ארכיטקטורת מסנן האודיו, דרך מימוש
בעזרת מכונת מצבים סופית, יצירת קוד HDL בצורה אוטומטית
ותהליכי וריפיקציה למימוש שבוצע, לחץ על הקישור הבא:
לחץ כאן
לקריאת המאמר המלא
|
|
| |
|
דצמבר 2009 |
|
|
|
תהליכים מומלצים
להמרה אוטומטית של תוכנית MATLAB לקוד C
השימוש בתוכנת MATLAB הרגיל אותנו לעבוד בצורה חופשית - ללא
דאגה להקצאות זיכרון, ללא חשש להגדרת סוגי המשתנים, והנאה רבה
מהיכולת לביצוע פעולות על מטריצות בצורה פשוטה וקלה. עקב כך,
אלגוריתמאים ומתכננים מתחומי תעשייה שונים עושים שימוש רב
ומתקדם בתוכנה זו. תיכנות בשפת C, מאידך, הוא אופטימלי
לתכנון רכיבי DSP מבחינת ביצועים, ניצול הזיכרון ועוצמת
החישוב. קוד זה יכול לכלול גם שימוש ב-Fixed Point, ומהנדסי
חומרה ותוכנה עובדים שעות רבות על ניצול מקסימלי של רכיבים
אלו, בכדי להפיק מהם את המירב ולהשיג יתרון של ממש על פני
המתחרים. כתוצאה מכך, אחד מאתגרי הפיתוח הנפוצים בתעשיה הוא
כיצד לבצע המרה מהירה, יעילה ואוטומטית במידת האפשר, של תוכנית
שנכתבה בסביבה החופשית של MATLAB, לסביבה בעלת האילוצים הקשים
וצורת התכנות של שפת C. במאמר המצורף, מוצג אחד הפתרונות
לאתגר זה: שימוש בפרדיגמת ה-Embedded MATLAB ויצירת קוד C
באמצעות Real-Time Workshop. ע"י שימוש בדוגמא של פונקציית
MATLAB, מוסבר הליך המרת הפונקציה כך שתכיל עקרונות תכנות של
שפת C: הגדרות טיפוסי משתנים – לרבות Fixed Point, הקצאות
זיכרון וביצוע אופטימיזציה לניצול זיכרון הרכיב וייעול הקוד
עצמו. כמו כן, משולבים ידע ופרקטיקות שנאספו מתחומי תעשייה
רבים מרחבי העולם ומקנים לקורא תהליכים מומלצים לביצוע המרה
אוטומטית של קוד MATLAB ל-C. השימוש ב-Embedded MATLAB
ותהליך יצירת הקוד מסיר את הצורך לקודד, לתחזק ולבדוק קוד
שנכתב בצורה ידנית. סבבי הפיתוח מתקצרים כתוצאה מכך, ומאפשרים
להתמקד בשיפור וייעול התכנון במקום לתחזק עותקים כפולים של קוד
שנכתבו בשפות שונות.
המאמר נכתב ע"י Houman Zarrinkoub
ו-Grant Martin מתחום Production Code Generation של חברת The
MathWorks™.
לחץ כאן
לקריאת המאמר המלא
|
|
| |
|
דצמבר 2009 |
|
|
|
שימוש במחשוב
מקבילי בכדי לשפר את ביצועי ה-Simulink Design Optimization
במאמר המצורף בפורמט PDF, מציגים הכותבים דוגמא לשימוש בכלי
העיבוד המקבילי של MATLAB בכדי להאיץ פעולות חישוב הנוגעות
לבעיות אופטימיזציה: שיערוך פרמטרים וכיוונון בקרים במישור
הלא-ליניארי. בעזרת כלי האופטימיזציה של The MathWorks ניתן
לכייל מספר פרמטרים במקביל בצורה אוטומטית, ובעזרת מחשוב
מקבילי ניתן להאיץ פעולות אלו עוד. אך כיצד ניתן לדעת מתי
בעיית האופטימיזציה היא אכן מועמד מתאים למקבול החישובים?
בעזרת דוגמא של מערכת אווירונאוטית, המאמר מתאר את תהליך מקבול
משימות החישוב לצורך כיוונון מערכת הבקרה, כיצד מגדירים את
משימות החישוב, את סוגי המודלים שכדאי ורצוי למקבל אותם וכמה
זמן נרוויח במידה ונשתמש בחישוב מקבילי.
לקריאה נוספת היכנס לאתר
לחץ כאן בכדי לקרוא את
המאמר המלא
|
|
| |
|
מאי 2009 |
|
|
|
יתרונות השימוש ב-MBD: חברת
MANROLAND מפחיתה את זמן הפיתוח ביותר מ-50%
חברת The MathWorks™
הודיעה על כך שחברת MANROLAND הגרמנית,
החברה השניה בגודלה בעולם לפיתוח וייצור מכונות דפוס
תעשייתיות, השתמשה בכלי הפיתוח ובשיטת
Model-Based Design (MBD), לצורך פיתוח, מימוש ובדיקה
של מערכת הבקרה החדשה למכונות הדפוס שלהם. באמצעות אימוץ
השיטה, חברת MANROLAND הפחיתה את זמן הפיתוח של מערכת הבקרה
בלמעלה מ-50%, קיצרה בכשנה את זמן הפרויקט והוציאה את המוצר
לשוק מהר יותר. התאמת ה-MBD לצורך פיתוח מערכות מכטרוניות
סייעה למהנדסי החברה לפתח בקר איכותי ששיחזר בזמן הבדיקות
בדיוק את התוצאות שתוכנן אליהם בזמן הסימולציה והפיתוח.
במהלך הפיתוח, מהנדסי MANROLAND השלימו סבבי פיתוח מלאים
בעניין של דקות, במקום השבועות שזה לקח להם בגישה המסורתית.
מעבר לכך, השימוש בכלי הפיתוח של The MathWorks™ איפשר
למהנדסים לבחון תנאי עבודה בלתי שגרתיים ומצבי שגיאה בלתי
רגילים שלא היו יכולים להיבדק לפני כן. בזמן בדיקות ה-Beta,
אנליזת המבחנים ותוצאותיהם הובילה לסימולציות נוספות לתנאי
העבודה, והגדלת הרזולוציה שיקבל הלקוח בסופו של דבר. Thomas
Debes, מהנדס התוכנה הראשי ב-MANROLAND אומר: "הגענו לגבול
היכולת של התוכנות ותהליכי הפיתוח שלנו. נזקקנו לפתרון שיעזור
לנו להגיע לשלבים חדשים של איכות. בעזרת השימוש בתוכנה של
MathWorks יכולנו לשנות את מבנה הבקר ולראות תוצאות מיידיות.
היכולת לבצע איטרציות מהירות אפשרה לנו לבצע אופטימיזציה
לאיכות ולפונקציונליות בשלב הפיתוח, תוך קיצור זמן הפיתוח.
אפילו במודל מורכב מאד, השלמנו את הפיתוח וה-debug ב-10 דקות
בערך. בדרך כלל תהליך זה לקח שבוע. התוצאה הסופית הייתה השלמת
הפרויקט בתוך 10 חודשים, הרבה לפני מועד הסיום המקורי.
"שיפורי התכנון כפי שהם הובנו ל-MANROLAND הם דוגמא נוספת
לאופן שבו תכנון מבוסס-מודל מאפשר לצוותי תכנון למדל ולסמלץ
מערכות מכטרוניות מורכבות ברמת המערכת, היכן שאפשר לבצע
אופטימיזציה לממשקים במערכות החשמליות, המכניות והבקרה", אומר
Tony Lennon – מנהל השיווק בתחום האוטומציה התעשייתית של חברת
The MathWorks™. "יצירת קוד בצורה אוטומטית, שהיא היבט
אינטגרלי של MBD, עוזרת למהנדסים לממש את הקוד של אלגוריתם
הבקרה שלהם לטובת בדיקות ומימוש בצורה אפקטיבית יותר מאשר ניתן
לבצע באמצעות קידוד ידני, להבטיח יותר מצבי עבודה ולגלות יותר
שגיאות בשלב הסימולציה, לפני ההגעה לשטח".
לחץ כאן בכדי לקרוא את
המאמר המלא
|
|
| |
|
מאי 2009 |
|
|
|
מה הקשר בין ניהול דרישות, התנועה הירוקה, רכב היברידי
וחסכון תקציבי רב?
לטענת חברת הרכב Tesla, אשר פיתחה בשנת 2008 את הרכב
ההיברידי שהגיע לראשונה ליעילות חשמלית של 100%, התשובה היא -
Model-Based Design. מטרת הפרויקט הייתה לתכנן רכב חשמלי שיהיה
מהיר, בטוח ויעיל מבחינה אנרגטית. הרכב שפותח יכול להאיץ מ-0
ל-90 קמ"ש בפחות מ-4 שניות, ועם זאת יכול להגיע לטווח של 370
ק"מ בטעינה אחת. הספק הטעינה הנדרש הינו 28 קווט"ש לכל 150
ק"מ. מהנדסי החברה החלו את הפרויקט בבניית מודלים
ראשוניים ב-MATLAB®. במהלך הזמן הם
פיתחו מודלים לכל המערכות כגון: מנוע, אלקטרוניקה, בלמים,
צמיגים, מערכת בקרה ומערכת ההנעה. מודלים נוספים פותחו למקדמים
האווירודינמיים, הפסדי חשמל בכבלים החשמליים, מערכות הקירור
והדינמיקה הכימית במצברים. ע"י השוואה בין המודל הסימולטיבי,
לבין מדידות שבוצעו בשטח – יכלו המהנדסים להתאים את המודל שלהם
להתנהגות האמיתית בשטח וכך לכוונן את המודל שלהם. ככל שגדלו
מספר הקבצים והמודלים של MATLAB®, מצאו
המהנדסים קושי בניהול הדרישות והמודל המערכתי שלהם. בשלב זה הם
פנו ל-Simulink®, ולשיטת ה-Model-Based
Design, על מנת להציג את המערכת שלהם בצורה ויזואלית, היררכית
ופשוטה. בדרך זו יכלו גם לקשר את דרישות המערכת למודל, לנהל את
תצורת המערכת ולהגדיר תתי-מערכות הניתנות לשינוי בצורה קלה
בכדי לבדוק מספר אופציות. בסופו של דבר, מימשו גם את
תתי-המערכות שנכתבו ב-MATLAB® באמצעות
Simulink®. השימוש ב-Model Referencing
איפשר להם לעבוד במספר גרסאות במקביל ולאפשר למספר מהנדסים
לעבוד בו-זמנית על המודל. מהמודל הראשוני, נוצרו מספר
גרסאות שונות לשלבי פיתוח שונים: מודל הרכבים בזמן ייצור, מודל
הרכבים שטרם נכנסו לייצור וכמובן – מודלים לתכנון של רכבים
עתידיים. הממשק הישיר בין MATLAB® ל-Simulink®
מאפשר לבצע Sweep על מספר פרמטרים במקביל ולהריץ סימולציות
Monte-Carlo. לדוגמא, בדיקת מספר קונפיגורציות של מערכות הנעה
במספר תסריטי עבודה שונים של הרכב. בשלבי הבדיקות ולאחר
שכבר יוצרו חלק מהרכיבים, נאסף מידע רב אשר באמצעותו יכלו
לעדכן את המודל – מנוע, כימיה שונה למצברים וגדלי ה-Inverter
החשמלי. באמצעות מדידות אלו חסכו זמן רב – בניית כל מודל לוקחת
בין 6 חודשים לשנה, אך בעזרת סימולציה ניתן היה לעשות זאת תוך
מספר ימים או שבועות. בעזרת כלי המידול הפיסי של חברת
The MathWorks™, יכלו המהנדסים לבדוק
בו זמנית את הדינמיקה הכימית, החשמלית, המכנית ואת מעבר החום.
כיום נהוג לבצע חישובים אלו בעזרת שיטת אלמנטים-סופיים. בעזרת
חישובים אלו – הצליחו המהנדסים לתכנן את המצברים באופן המבטיח
שהם לא יתחממו בזמן פעולת הרכב. בגרסאות עתידיות של הרכב,
ימשיכו המהנדסים להשתמש במידע שהם אוספים ויאספו, בכדי לנתח,
לסמלץ ולשלב את תוצאות האנליזות ליצירת מודל אמיתי ומדוייק
יותר של הרכב. מידע זה יוכנס למאגר המידע של החברה, וישמש אותם
גם לבניית הדור הבא של כלי הרכב מתוצרתם.
לחץ כאן בכדי לקרוא
את המאמר המלא שנכתב ע"י מהנדסי החברה
|
|
| |
|
ינואר 2009 |
|
|
|
מאמרים שפורסמו בשנת 2008 |
| |
|
|
|
|