סט פרמטרים אחד לכמה מערכות¶
Sweeps ← פרמטרים משותפים. הרצתם סריקה לכל אחת מכמה מערכות - למשל שלושה רחפנים - וכולן חייבות לטוס עם אותם הגברים. לכל טבלה תרחישים משלה (רוח, מסה), מגבלות משלה ויעד משלה. Signal Viewer מוצא את ערכי הפרמטרים המשותפים שעומדים בדרישות בכל הטבלאות, ומדרג אותם.
השאלה - בקובץ מחקר¶
מחקר (<name>.svstudy.json) נבנה בחלון ונשמר; אותו קובץ נקרא גם משורת הפקודה.
| עמודה היא… | משמעות | דוגמה |
|---|---|---|
| משותפת | קיימת בכל הטבלאות (אחרי התאמת שמות). נבחר ערך אחד לכולן. | Kp, Ki, Kd |
| תרחיש | בטבלה הזאת בלבד. הבחירה חייבת לעמוד בכל ערך שנשאר. | רוח, מסה |
| מקומית | בטבלה הזאת בלבד. כל טבלה בוחרת לעצמה את הערך הטוב. | מסנן |
| תוצאה | תוצאת ההרצה. | overshoot, זמן התייצבות |
- שמות:
P_gainבטבלה אחת ו-Kpבאחרת מוצעים כשם אחד; אתם מאשרים. - לכל טבלה: ערכי התרחישים שנחשבים, האילוצים (
overshoot < 8), היעד (להקטין אתsettling_time) ואיך מצרפים תרחישים - המקרה הגרוע (ברירת מחדל) או הממוצע. - טבלאות הן נתיבים או תבניות ליד קובץ המחקר: קובץ תוצאות חדש בתיקייה נקרא בפתיחה הבאה.
התשובה¶
לכל ערך של הפרמטרים המשותפים שהורץ:
- הוא עומד בטבלה כשיש ערך מקומי שבו ההרצה של כל תרחיש קיימת ועומדת באילוצים (הרצה חסרה נחשבת כישלון: לא הורץ);
- הציון שלו בטבלה הוא היעד הגרוע (או הממוצע) על פני התרחישים, עם הערך המקומי הטוב;
- הוא עומד בכולן כשהוא עומד בכל טבלה.
כשליעד זהה בכל הטבלאות - הדירוג לפי הטבלה הגרועה; כשהיעדים שונים - לפי חזית פארטו (אין ערך אחר טוב יותר בכל הטבלאות). ערך שנפסל אומר באיזו טבלה, באיזה תרחיש ובאיזה אילוץ נכשל, ובכמה. נבחרים רק ערכים שהורצו - כדי לנסות חדשים, הצע הרצות הבאות.
ההרצות הבאות¶
הצע הרצות הבאות מציע את המנה הבאה: 20 ערכים מועמדים (גודל המנה) של הפרמטרים המשותפים, כל אחד מורחב להרצות שלו בכל טבלה (התרחישים × הערכים המקומיים) - כך שמנה היא כמה מאות הרצות. לכל אחד סיבה:
- חידוד - סביב הערכים הטובים, בחצי מהצעד המקומי;
- גבול - בין ערך שעומד לשכן שנכשל;
- פער - ערכים שהורצו בחלק מהטבלאות ולא באחרות.
ההצעות נשארות בתוך מרחב החיפוש של המחקר ונכתבות ל-next/round_<k>/<table>.csv עם העמודות run_id, reason
ו-round. הצעה שעדיין ממתינה לא מוצעת שוב; כשהתוצאות חוזרות עם ה-run_id (או אותם ערכים) היא מסומנת כבוצעה.
שורת הפקודה¶
python -m signalviewer.study rank drones.svstudy.json [--csv ranking.csv] [--json]
python -m signalviewer.study next drones.svstudy.json # כותב את הסבב; קוד יציאה 3 = לא נשאר מה להציע
python -m signalviewer.study status drones.svstudy.json
SignalViewer.exe study … עושה אותו דבר מהגרסה הניידת.
הדוגמה¶
מסך הפתיחה ← סט הגברים אחד לשלושה רחפנים (examples/drones/): קוואד קל, הקסה כבד ו-VTOL שהעמודות שלו נקראות
P_gain, I_gain, D_gain, עם מסנן מקומי וכמה הרצות חסרות.