מידול אוטומטי של משוואות דיפרנציאליות Simulinkלא לינאריות ב-
אייל ברכה
דורון פגוט
2008פרויקט סמסטריאלי: מאי
מנחה:
אריה נחמני
הטכניון - מכון טכנולוגי לישראל TECHNION - ISRAEL INSTITUTE OF TECHNOLOGY
הפקולטה להנדסת חשמלהמעבדה לבקרה ורובוטיקה
תוכן ענייניים;
הצגת הבעיה•מטרות הפרויקט•GUIחלונות לדוגמא ב- •תיאוריה•מבנה הקוד•סימולציות••Demoמבט בסרט ההדרכה + מסקנות•אפשרויות הרחבה לפרויקט•התייחסויות•
רקע כללי
הצגת הבעיה:נתונה מערכת משוואות דיפרנציאליות לא לינאריות •
המתארת את המערכת הפיסיקלית.יש לבנות אוטומטית מימוש של המערכת •
.Simulinkב-מכיוון שמדובר שמשוואה שאינה ליניארית ואין הגבלה •
לרמת הסיבוך של המשוואה אזי יש קושי לפתור את .state spaceהבעיה בעזרת מימוש
הנחת הייסוד: יפתור את הבעיה באיטרציות בשגיאה Simulinkה- •
קטנה אשר תלויה בתדר הדגימה שבו אנו עובדים.
מבוא
מטרות הפרויקט
פיתוח מודל תאורטי לפתרון איטרטיבי של משוואות.• אשר יוזן במשוואות דיפרנציאליות GUIבניית ממשק •
לא ליניאריות )כולל תלות בין המשוואות( וייצור subsystem בעל כניסות ויציאות המתאר את המשוואות.
Simulinkבניית סביבת עבודה מקבילה ל- •המאפשרת למשתמש לבצע פעולות הזנת אותות
כניסה, חיבור משוב, והצגת מוצא המערכת בלחיצת כפתור.
כתיבת חוברת הדרכה לשימוש בממשק.•הקלטת סרט וידאו להדרכה מהירה.•
מבוא
קהל היעד
, 1סטודנטים בקורסי הבקרה השונים כגון בקרה •, מעבדה לבקרה לינארית ועוד2בקרה
סטודנטים המבצעים פרויקטי גמר במעבדה לבקרה•סטודנטים לתארים מתקדמים אשר נדרשים למימוש •
simulinkמערכות לא לינאריות ב- מהנדס בקרה המעונין לבצע סימולציות על מערכות •
simulinkלא לינאריות ע"י
מבוא
בחירת משוואה אחת או שתייםGUIחלונות לדוגמא ב-
בניית מודל או הרצת סימולציהGUIחלונות לדוגמא ב-
האלגוריתם הבסיסי
בחירת החלופה האופטימלית•בשלב הראשון בניית תבנית בעלת נכונות מתמטית• אשר לאחר מניפולציות fcnשימוש ברכיב ה- •
מתמטיות ידע לקמפל משוואה דיפרנציאלית..Simulinkבשלב השני פיתרון איטרטיבי בעזרת ה- •משוואה דיפ' כללית:•ניצור תלות פנימית: •נגדיר:•פתרון איטרטיבי מניח: •
תיאוריה
( ) ( )( ,.. , ,.. , ) 0n mf f y y u u t ( ) ( ) ( ) ( )( ,.. , ,.. , )n m n nf y y u u t y y
( ) ( ) ( ) ( )( ,.. , ,.. , )n m n nfcn F f y y u u t y y
( ) ( )( ) ( 1)n ny k y k
מערכת הפיתרון האיטרטיבית )משוואה בודדת(:
תיאוריה
BUS
1/S 1/S 1/SY’ Y
S S SU
t [sec]
Y(n)
fnc
U(m)
סכימה עבור שתי משוואות
( ) ( ) ( ) ( )1 1 1
( ) ( ) ( ) ( )1 1
( ) ( ) ( ) ( )1 1
( ,.. ,..., ,.. ,..., ,.. , ,.. , ) 0
( ,.. ,..., ,.. ,..., ,.. , ,.. , ) 0
( ,.. ,..., ,.. ,..., ,.. , ,.. , ) 0
n n n mk k K K
n n n mk k k K K
n n n mK k k K K
f y y y y y y u u t
f y y y y y y u u t
f y y y y y y u u t
תיאוריה
BUS
1/S 1/S 1/SY’ Y
S S SU
t [sec]
Y(n)
fncy
U(k)
1/S 1/S 1/SZ’ Z
fncz
Z(m)
עבור מספר משוואות •נתון:
הייצוג האיטרטיבי:•
( ) ( ) ( ) ( ) ( ) ( )1 1 1 1 1 1
( ) ( ) ( ) ( ) ( ) ( )1 1
( ) ( ) ( ) ( )1 1
( ,.. ,..., ,.. ,..., ,.. , ,.. , )
( ,.. ,..., ,.. ,..., ,.. , ,.. , )
( ,.. ,..., ,.. ,..., ,.. , ,
n n n m n nk k K K
n n n m n nk k k k K K k k
n n n mK K k k K K
FCN f y y y y y y u u t y y
FCN f y y y y y y u u t y y
FCN f y y y y y y u
( ) ( ).. , ) n n
K Ku t y y
הקוד – הסבר כללי
מפעיל את GUIהקוד בנוי מודולארית כך שה- •הפונקציות השונות לפי דרישות המשתמש.
הושם דגש מיוחד על אפשרויות הרחבה אשר •מפורטות בפרטי פרטים על פני פרק שלם בספר
הפרויקט. החל מתוספות קטנות של פונקציות חיצוניות וכלה בהוספת מספר רב של משוואות.
נושא האסטטיקה נלקח בחשבון, לאור העובדה •שזהו פרויקט בעל מטרות מעשיות בטווח המיידי.
מבנה הקוד
בניית תת מערכת ומודולים חיצוניים
יצירת תת מערכת•בניית אינטגרטורים ליציאות, נגזרות לכניסות )אידיאליות •
מרכזי המוזן בכל הכניסות והיציאות. Busומעשיות(, פונקציות חיצוניות כגון:30הפרויקט תומך בכ- •
•Sat, sin, floor , arctan, log'וכו
עבור תנאי ההתחלהmaskהגדרת ה- •בניית וקטור מצב לצורך בקרת מצב.•בניית מקור כניסה וכיולו, בניית המשוב )טורי או מקבילי(, •
. scopesבניית
מבנה הקוד
מטרות הפרק
כיצד מתפקד המודל שיצרנו בהשוואה למערכתהמקורית
מהן המגבלות שעליהן יש לתת את הדעת, בכדישהמשתמש ידע לנצל את המערכת במלואה.
נקודות תורפה•נקודות חוזקה•
סימולציות
השוואת המודל למודלstate space עבור המשוואה:
נבדוק את המודל בתנאי קיצון -תדר דגימה נמוךמאוד:
בדיקת היתכנות עבור משוואה אחת לא ליניארית
cos( ) sin( )y y y u u
0 1 2 3 4 5 6 7 8 9 10-1.6
-1.4
-1.2
-1
-0.8
-0.6
-0.4
-0.2
0
Time
Out
put
Comparing our flow to state space
Our flow
State space
0 1 2 3 4 5 6 7 8 9 10-2
0
2
4
6
8
10
12
14
16
18x 10
-6 Diff between state space implementation and our flow
Time
Sta
te s
pace
- O
ur f
low
סימולציות
גזירת הכניסה
אחד מחסרונותיה של המערכת הינו התמודדות עם •משוואות בהן ישנה גזירה של הכניסה.
במידה והכניסה מכילה רעש, הגזירה תגביר את •הרעש.
על מנת לפתור בעיה זו מומשה היכולת לבחור בין •שימוש בנגזרות אידיאליות לבין שימוש בנגזרות LPFמעשיות. נגזרות מעשיות אלו למעשה מוסיפות
לנגזרת האידיאלית.
סימולציות
בדיקת היתכנות עבור משוואה אחת לא ליניארית )נגזרת אידיאלית לעומת מעשית(
התקבל כי כאשר קיים רעש שימוש בנגזרת מעשית •נותן תוצאות טובות משמעותית.
הסיבה טמונה בכך כי הנגזרת מגבירה את •התדרים הגבוהים ברעש. לעומת זאת שימוש
מנחיתה את אותם LPFבנגזרת מעשית המכילה תדרי רעש מוגברים ובכך מאפשרת את הקטנת
השגיאה.
סימולציות
4בדיקות עבור משוואה ליניארית מסדר :המשוואה
y''''+3*y'''+4*y''+5*y'+2*y-u''-2*u'-3*u =0 הגרפים להלן מתארים את השגיאה בין המערכות •
לפניואחרי שיפור הנגזרת המעשית:•
0 1 2 3 4 5 6 7 8-7
-6
-5
-4
-3
-2
-1
0
1
2
3x 10
-3 Diff between state space implementation and our flow
Time
Our
flo
w -
Sta
te s
pace
0 1 2 3 4 5 6 7 8-7
-6
-5
-4
-3
-2
-1
0
1
2
3x 10
-5 Diff between state space implementation and our flow
Time
Our
flo
w -
Sta
te s
pace
סימולציות
y’’+5y’+4yמערכת ליניארית ללא נגזרות בכניסה = u
להלן גרף המתאר את השגיאה בין המערכות עבור)sin)22tכניסה מסוג:
ניתן לראות כי עבור מערכות ללא גזירה עלהכניסה מתקבלות תוצאות טובות משמעותית
0 10 20 30 40 50 60 70 80 90 100-2
-1
0
1
2x 10
-17
סימולציות
שימוש באיטרציות
סימולציות
היתרון ברור והוא היכולת לפתור משוואות בעלות •רמות סיבוך גבוהות וכן היכולת לפתור מספר
משוואות משולבות. Simulinkהחיסרון הינו התלות בתדר הדגימה של ה- •
עקב שימוש בקירוב .לפתרון המוצע ישנה השהיה מובנת של דגימה אחת, •
שלא מופיעה במשוואות המקוריות.
( ) ( )( ) ( 1)n ny k y k
בדיקת השפעת גודל הצעד על השגיאה בין המערכות
לאחר בדיקות רבות להלן שני גרפים המדגימים את על simulinkהשפעת גודל הצעד במערכת ה-
השגיאה משמאל עבור גודל צעד 0.2מימין עבור גודל צעד ,
1e-5:
0 5 10-0.5
0
0.5our result
0 5 10-0.5
0
0.5the real result
0 1 2 3 4 5 6 7 8 9 10-0.02
-0.01
0
0.01
0.02error
0 5 10-0.5
0
0.5our result
0 5 10-0.5
0
0.5the real result
0 1 2 3 4 5 6 7 8 9 10-1
-0.5
0
0.5
1x 10
-6 error
סימולציות
שתי משוואות לא ליניאריות: מערכת רחיפה מגנטית
בשלב זה ביצענו בדיקהמקיפה עבור זוג
משוואות לא ליניאריות. :המימוש שלנו
20 0
1 0 0
2
( )
L X ix g
m x
xi v RiL x L X
סימולציות
שתי משוואת לא ליניאריות: השוואה בין המערכות
והשוואה GUI ל- DEMOביצוע •בין המערכות
ביצענו בדיקות דומות עבור •מערכת של כדור על מסילה
מסתובבת. בבדיקות אלו אף קיבלנו כי נקודת ש"מ של שתי
המערכות זהה.הבדיקות כללו הכנסת כניסות •
מגוונות. להלן גרף מייצג של השגיאה בין המערכות עבור כניסת
sin)t(
0 0.5 1-1
0
1
2our system output
t[sec]
Vol
tage
[vo
lt]
0 0.5 1-1
0
1
2Original model output
t[sec]
Vol
tage
[vo
lt]
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1-4
-2
0
2x 10
-11 Error between the systems
t[sec]
Vol
tage
[vo
lt]סימולציות
מסקנות -ולרוב המערכת עוקבת עם שגיאה קטנה מ
קטנה מ- נגזרת מעשית עדיפה עבור אותות בלתי רציפיים, כגון
מדרגה ורעש מכיוון שהמערכת פותרת בשיטת האיטרציות, אזי
יקטין את השגיאה בין simulinkקצב דגימה גבוה ב- שתי המערכות
-השימוש בGUI הינו פשוט יחסית וניתן לשלוט בו ע"י או User Guideצפייה בסרט ההדגמה, קריאה של ה-
GUIקריאת דף ההסבר המהיר. כולם נגישים מה- עצמו
ישנה תשתית מלאה להרחבת הקוד, כמו כן קייםפרק שלם בספר הפרויקט המסביר ביסודיות כיצד
ניתן לבצע הרחבות בקוד
310
1010
אפשרויות הרחבה לפרויקט
ברמת הקוד מצורף פרק שלם המפרט את כל •הפרטים הטכניים
הסבת המערכת לזמן בדיד•התמודדות טובה יותר עם נגזרות בכניסה•
ע"י השהיית תגובת הזמן.•פיתרון ישיר אשר אינו דורש גוזר•
התייחסויות