Skip to content

סט פרמטרים אחד לכמה מערכות

Sweeps ← פרמטרים משותפים. הרצתם סריקה לכל אחת מכמה מערכות - למשל שלושה רחפנים - וכולן חייבות לטוס עם אותם הגברים. לכל טבלה תרחישים משלה (רוח, מסה), מגבלות משלה ויעד משלה. Signal Viewer מוצא את ערכי הפרמטרים המשותפים שעומדים בדרישות בכל הטבלאות, ומדרג אותם.

השאלה - בקובץ מחקר

מחקר (<name>.svstudy.json) נבנה בחלון ונשמר; אותו קובץ נקרא גם משורת הפקודה.

עמודה היא… משמעות דוגמה
משותפת קיימת בכל הטבלאות (אחרי התאמת שמות). נבחר ערך אחד לכולן. Kp, Ki, Kd
תרחיש בטבלה הזאת בלבד. הבחירה חייבת לעמוד בכל ערך שנשאר. רוח, מסה
מקומית בטבלה הזאת בלבד. כל טבלה בוחרת לעצמה את הערך הטוב. מסנן
תוצאה תוצאת ההרצה. overshoot, זמן התייצבות
  • שמות: P_gain בטבלה אחת ו-Kp באחרת מוצעים כשם אחד; אתם מאשרים.
  • לכל טבלה: ערכי התרחישים שנחשבים, האילוצים (overshoot < 8), היעד (להקטין את settling_time) ואיך מצרפים תרחישים - המקרה הגרוע (ברירת מחדל) או הממוצע.
  • טבלאות הן נתיבים או תבניות ליד קובץ המחקר: קובץ תוצאות חדש בתיקייה נקרא בפתיחה הבאה.

התשובה

לכל ערך של הפרמטרים המשותפים שהורץ:

  1. הוא עומד בטבלה כשיש ערך מקומי שבו ההרצה של כל תרחיש קיימת ועומדת באילוצים (הרצה חסרה נחשבת כישלון: לא הורץ);
  2. הציון שלו בטבלה הוא היעד הגרוע (או הממוצע) על פני התרחישים, עם הערך המקומי הטוב;
  3. הוא עומד בכולן כשהוא עומד בכל טבלה.

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

ההרצות הבאות

הצע הרצות הבאות מציע את המנה הבאה: 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, עם מסנן מקומי וכמה הרצות חסרות.