210 likes | 382 Views
רובוט דמוי Segway המיוצב בשיטת Fuzzy Logic מצגת סוף חלק א'. עמרי פפאו ושחר כהן מנחה: עידו כהן. מבנה המצגת. סקירת שלבי העבודה הקשיים שבדרך המשימות הבאות. תיאור הפרוייקט מטרות הפרוייקט פירוט משימות סכמת בלוקים מודל פיזיקלי Fuzzy Control יתרונות השיטה סיבוכיות וסימולציה.
E N D
רובוט דמוי Segway המיוצב בשיטת Fuzzy Logic מצגת סוף חלק א' עמרי פפאו ושחר כהן מנחה: עידו כהן
מבנה המצגת • סקירת שלבי העבודה • הקשיים שבדרך • המשימות הבאות • תיאור הפרוייקט • מטרות הפרוייקט • פירוט משימות • סכמת בלוקים • מודל פיזיקלי • Fuzzy Control • יתרונות השיטה • סיבוכיות וסימולציה
תיאור הפרויקט רובוט דמוי segway הינו רובוט העומד על שני גלגלים מקבילים ואינו יציב. גוף הרובוט גלילי ובנוי מ-3 קומות. כיוון שהגלגלים קבועים במקומם הרובוט יכול "ליפול" קדימה ואחורה בלבד. בפרויקט זה נבקר על תנועת הרובוט כך שיעמוד יציב לאחר מכן נאפשר שליטה מרחוק של משתמש על תנועות הרובוט.
מטרות הפרויקט • ייצוב של הרובוט בשיטת Fuzzy Logic Control סביב זווית 0 ביחס לאנך. • שליטה מרחוק על הרובוט: הרובוט יענה על פקודות שיכללו שינוי כיוון נסיעה, שינוי מהירות ואף סיבובים.
פירוט משימות • הכרה ומימוש של בקרת Fuzzy Logic • מימוש Membership Functions . • בניית טבלת מצבים הקושרת בין מצב הרובוט לכוח שניתן למנועים. • בניית סימולציות ובדיקת התכן. • השלמת בניית הרובוט • התקנת כרטיס חיישנים (iNemo) וכן בקר Pic השולט על המנועים (כיוון ומהירות סיבוב). • הצבת בתי סוללות: סט אחד עבור מתח DC למנועים וסט נוסף שיהווה מתח אספקה לבקר, לחיישנים ולדרייברים.
המשך... • יצירת תקשורת בין התוכנה לחומרה • איסוף ועיבוד נתונים המגיעים מהחיישנים אל המחשב. • שליחת פקודות בקרה מהמחשב לבקר. • תרגום הפקודות ע"י הבקר ושליחתן למנועים.
סכמת בלוקים רובוט Segway iNemo חיישנים סוללות 5V בקר Pic מחשב סוללות 12V כרטיס דרייברים 2 מנועי DC
מודל פיזיקלי של המערכתומשוואות מצב מודל המערכת מזכיר את המטוטלת ההפוכה הקווית. נעזרנו בויקיפדיה והשתמשנו במודל מתוך ספר פרויקט "Segbot" By Grace Chi, Joshua Hausbach and Brian Hunter (May, 2005) מהספר לקחנו את משוואות האנרגיה של הרובוט. ממשוואות אלה מצאנו את הלגרנג'יאן שמגזירתו לפי כל משתני המצב קיבלנו את משוואות המצב של המערכת.
המשך... נקודת שיווי המשקל סביבה ביצענו לינאריזציה היא . משוואות המצב שהתקבלו הן:
המשך... כאשר הקבועים A,B,Dהם: - מסת הגוף, - מסת הגלגלים - מומנט אינרציה של המנוע , - מומנט אינרציה של הגוף, - מומנט אינרציה של הגלגלים - Gear Ratio , - מומנט הרובוט, נוצר ע"י המנוע. L- רדיוס הגליל (גוף הרובוט), g- קבוע הגרוויטציה, R- רדיוס הגלגלים.
Fuzzy Control שיטת בקרה זו מתבססת על "לוגיקה עמומה". מסתמכת על ידיעת מודל פיזיקלי מופשט של המערכת ועל ידיעת מצבה הנוכחי ומצבה הרצוי. מגדירים את מצבי המערכת עפ"י הכניסות האפשריות (מוצא החיישנים). הבקרה ממומשת ע"י סט פקודות if – then. עיבוד נתוני הכניסה מתבצע בשלושה שלבים: • הגדרת Membership function לכל מצב, עבור כל כניסה בנפרד. • חישוב מידת הוודאות להמצאות בכל מצב עבור שתי הכניסות יחד. • מתן משקול לכל אחד מהמצבים המשותפים ומציאת הכוח הנחוץ לייצוב.
נשים לב! מימוש בקרה באמצעות שיטת ה- Fuzzy Logicפשוט יותר מהמימוש בעזרת שיטות בקרה שלמדנו בקורסי הבסיס. שיטת Fuzzy Control לא מצריכה ידיעה של המודל המתמטי המלא של המערכת ובכך יתרונה הגדול על פני שיטות אחרות.
שלבי עיבוד הנתונים • Membership Function - מבצעים דיסקריטיזציה של ציר הזוויות . - עבור כל ערך בדיד מגדירים צורה קבועה שערכה הוא '1' במרכזה ו-'0' בקצוות. הצורות נבנות על תחומים חופפים. - הערך של כל זווית בצורה מגדיר את מידת הוודאות להמצאות במצב מסויים. - נגדיר את מצב הזווית עפ"י המשקל שהיא מהווה בכל צורה.
המשך... • חישוב מידת הוודאות להמצאות בכל מצב עבור שתי הכניסות יחד - הגדרת : פונקציה המבטאת את מידת הודאות שהמערכת נמצאת במצב מסויים המגדיר את שתי הכניסות יחד. • משקול המצבים המשותפים ומציאת הכוח הנחוץ לייצוב - חישוב השטח שמגדיר מוצא ה- ב-Mem. Func. - הכפלת כל שטח עם הכוח המתאים לכל מצב. - סכימת כל המכפלות ונירמולן לפי סכום השטחים.
סיבוכיות קוד הבקרה וסימולציות לבדיקת התכן • כיוון שבכל איטרציה יכולים להתקיים עד ארבעה תנאים, ספרנו ומצאנו שמתבצעות לכל היותר 117 פקודת בקוד שלנו בכל איטראציה. כלומר – המעבד מבצע סדר גודל של 100 פקודות בכל איטראציה. • סימולציות: בהסתמך על משוואות המצב של המערכת השתמשנו בפונקציה האיטראטיבית Ode45 , כשבכל איטראציה שינינו את הכוח המייצב את המערכת בהתאם למשתני המצב הזמניים על מנת להגיע למצב יציב.
המשך... להלן תוצאה של אחת הסימולציות. תנאי התחלה: זווית הרובוט ביחס לציר האנכי: 12 מעלות מהירות זוויתית התחלתית של הרובוט: 12 מעלות לשניה.
סקירת שלבי העבודה • שלב ראשון - הכרת שיטת Fuzzy Logic והבנתה - קריאת פרק 2 בספר "Fuzzy Control“, K. M. Passino and S. Yurkovich, Ohio State Uni., 1998 - כתיבת קוד הבקרה ב- Matlab ובניית סימולציות לבדיקת התכן. • שלב שני - למידה לעומק של עבודת הדרייברים והקישור שלהם עם המנועים. - עבודה עם הרובוט, הוצאת רכיבים ישנים ותיקון קצרים. • שלב שלישי - בחירה של כרטיס חיישנים ובקר מנועים מתאימים וסגירת חוג הבקרה באמצעות מחשב.
המשך... • שלב רביעי - הוצאת מדידות מכרטיס החיישנים למחשב ותרגומן לזווית ולמהירות זוויתית באמצעות קוד Matlab. - הפקה של אותPWM באמצעות בקר Pic.
הקשיים בדרך • הרובוט לא נבנה על ידינו. היינו צריכים להבין את מבנהו ולשנותו כך שנוכל לייצבו כנדרש. • לא הצלחנו לגרום לרובוט להתייצב באופן אוטונומי (כלומר, ללא מחשב) ולכן נאלצנו למצוא פתרון חלופי. • ייתכן שנצטרך להגדיל את מספר מצבי המערכת אם נראה שהתכן עובד אך הרובוט לא מתייצב. • לאחר השגת הייצוב יש לגרום לרובוט לנסוע, לעצור ולשנות כיוון נסיעה תוך שמירה על יציבותו.
המשימות הבאות • חיבור בקר ה-Pic למחשב ע"י חיבור COM. • שליחת פקודות הבקרה מהמחשב לבקר: - שליטה על ה- Duty Cycle של ה-PWM שמוציא הבקר באמצעות ה- matlab (לקביעת מהירות סיבוב הגלגלים) - שליטה על כיוון סיבוב הגלגלים. • שליטה על נסיעה של הרובוט ע"י פקודות משתמש.
תם ולא נשלם! שאלות? תודה על ההקשבה!