מאז תחילת עידן החלל חובבים, מדענים ומפעילי לוויינים צורכים מידע פומבי על כל העצמים שסובבים את כדור הארץ. דרך פופולרית מאוד לשתף את המידע הזה היא באמצעות פורמט שפותח בשנות ה-60. נספר את סיפורו של פורמט זה, נסביר למה הוא נפוץ, מדוע הוא בעייתי, ואיך הוא קשור לבאג 2000, עשרים ושתיים שנים אחרי שזה נעלם מחיינו.
בסוף שנות התשעים של המאה הקודמת התעוררה פאניקה לגבי באג 2000. אם לא נעשה דבר בנידון, הפחידו אותנו הכותרות בעיתונים, יקרו פה אסונות! מטוסים יפלו מהשמיים, הרמזורים לא יעבדו, וידאומטים לא יוציאו סרטים, והכי גרוע – הטמאגוצ'י שלנו ימות! באג 2000 נגרם ממבנה נתונים מיושן, שבו יוצגה שנה באמצעות שתי הספרות האחרונות בלבד, לדוגמה 85 במקום 1985.
לקראת שנות השמונים התחילו להבין שהמצב בעייתי: מה יקרה כשנגיע לשנת 2000? איך יגיבו התוכנות למעבר משנת 99 לשנת 00? לדוגמה, מה קורה אם יש בבנק תוכנה שמחשבת ריבית לפי מספר השנים מאז ההפקדה? נניח שהפקדתי 100 ש"ח בשנת 98, והריבית השנתית היא 1%. בשנת 99 יהיו לי בבנק 101 ש"ח; התוכנה תדע שעברה שנה אחת מ-98 ל-99. אבל מה ייקרה בשנת 2000? התוכנה תחשוב שעברו מינוס 99 שנים, כי עברנו מ-99 ל-00! האם התוכנה תרוקן לי את חשבון הבנק?!
אסונות כאלה לא קרו. בעיקר כי צוותים גדולים של מתכנתים עשו לילות כימים ותיקנו הרבה מאוד מערכות שחישוביהן הסתמכו על זיהוי השנה. לטמאגוצ'י שלום. אבל יש מערכות שלא תוקנו, והן מתקיימות עם הבאג עד היום. למשל פורמט שתי השורות של אלמנטי מסלול.
אלמנטי מסלול הם סט של מספרים שמתארים איפה לוויין נמצא ובאיזו מהירות הוא נע. בדרך כלל דרושים לפחות שישה אלמנטים: שלושה המתארים את מיקום הלוויין במרחב, ושלושה המתארים מה מהירותו בכל כיוון. אפשר לתאר את מצב הלוויין גם בדרכים אחרות . קפלר, שתיאר במאה השש עשרה את תנועת הפלנטות, הגדיר סט של ארבע זוויות ובנוסף להן שני גדלים: רדיוס ו"אליפטיות". כמו ששת אלמנטי המסלול שתיארנו קודם, גם ששת האלמנטים של קפלר מגדירים בדיוק איפה נמצא הלוויין ומה המהירות שלו תחת כוח כבידה.
אמרנו שישה מספרים לפחות. למה צריך יותר? כי לפעמים צריך לדעת מה גודלו של הלווין ומה המנח שלו כדי לחשב את הכוחות שפועלים עליו, במיוחד כשמדובר על כוחות כמו חיכוך עם האטמוספירה, כוח המשיכה של הירח והעובדה שכדור הארץ אינו באמת עגול (הוא אינו עגול. הוא פחוס וגבשושי, אבל אנחנו אוהבים אותו כפי שהוא) [1].
בשנות השישים פותח בנאס"א מודל כוחות שנקרא "מודל מופשט של כוחות כלליים" (Simplified General Perturbation Model – SGP) [2]. מודל ה-SGP עושה שימוש בסט אלמנטים שנקרא "אלמנטי שתי שורות". הסיבה המפתיעה היא שהפורמט שהשתמשו בו להזנה של הנתונים כלל שתי שורות. הוא נראה כך:
1 25544U 98067A 22187.91168981 .00005281 00000+0 10097-3 0 9998
2 25544 51.6429 238.9000 0004438 341.2767 1.5583 15.49849532348232
הדוגמה המובאת כאן היא אלמנטי המסלול המעודכנים ביותר של תחנת החלל הבין-לאומית בזמן כתיבת פוסט זה [3]. המספרים מייצגים, בין היתר, אלמנטים כמו של קפלר (זוויות, רדיוס ו"אליפטיות"), וכן מספרים קטלוגיים וייצוג של הזמן שבו נמדדו וחושבו האלמנטים, שהרי אחרי כמה דקות ישתנה מיקום הלוויין, והאלמנטים יקבלו ערכים אחרים.
החל משנות השבעים יצרו מהנדסים וחוקרים, בשיתוף עם נאס"א וחיל האוויר האמריקני, קטלוג של כל הגופים מעשה ידי אדם שנמצאים בחלל הקרוב. מהנדס לוויינים מחיל האוויר האמריקאי בשם קלסו (Kelso) פרסם את המידע בפורמט של אלמנטי שתי השורות בלוחות דיגיטליים ולאחר מכן באינטרנט. כך הפך המידע לפומבי, ובעקבות זאת הפך הפורמט לנפוץ מאוד בקרב מפעילי הלוויניים. עד היום קלסו מתחזק את הקטלוג ודואג לעדכן אותו ולפרסמו, בין היתר, באתרי אינטרנט.
נסתכל על המספר השלישי בשורה הראשונה (22187.91168981). מספר זה מייצג את הזמן שבו נמדדו וחושבו האלמנטים. שתי הספרות הראשונות מייצגות את השנה (22), שלוש הספרות הבאות הן היום בשנה (היום ה-187, השישי ליולי) וכל מה שאחרי הנקודה הוא שבר עשרוני שמתאר את חלק היום. אם 24 שעות הן יום שלם, אז האלמנטים נמדדו ב-24*0.91168981=21.88055544 – שעה 21:52 בערך.
מכיוון שאלמנטי המסלול של נאס"א פותחו בשנות השישים, כדי לחסוך בזיכרון השתמשו רק בשתי ספרות לייצוג שנה. בניגוד למערכות שעברו תיקון לקראת שנת 2000, אלמנטי המסלול נשארו בפורמט של שתי ספרות. למה? בעיקר כי בשנת 2000 נאס"א פשוט לא טרחו לעשות דבר בעניין. הסיבה לכך פשוטה: בני האדם התחילו לקטלג ולמדוד מיקום לוויינים רק בשנת 1956, בתקופת המרוץ לחלל. לא בוצעה כל מדידת מיקום של לוויין בשנת 1900, גם לא בשנת 1905, ולכן אי אפשר להתבלבל: אם מופיע מספר קטן מ-56, אז ודאי שמדובר על שנות האלפיים! אין שנת מדידה שהיא 00, ולכן אין בעיה להניח ש-00 מייצג 2000. נאס"א קיבלה 56 שנים נוספות של שקט עם הבאג הזה. הבעיה תצוץ בשנת 2056: אם יופיע 56 לא נדע אם מדובר על 1956 או 2056. לפורמט אין באג אלפיים, אבל יהיה לו "באג אלפיים חמישים ושש".
באגים שכאלה אינם מוגבלים רק לשנים. המספר הראשון בשורה הראשונה, 25544U, הוא מספר קטלוגי. כל לוויין שמשוגר מקבל מספר קטלוגי בן חמש ספרות. הבעיה היא שיש רק חמש ספרות!
כיום יש בקטלוג כ-30,000 גופים, אבל הצפי הוא שמספר זה יגדל פי עשרה בערך! הסיבה לכך אינה רק ריבוי הגופים שאנחנו משגרים לחלל (לוויינים כמו של SpaceX ו OneWeb עולים לשמיים בעשרות ומאות), אלא בעיקר כי ביצועי המכ"מים שעל הקרקע משתפרים, ואנחנו יכולים לעקוב אחר פיסות זבל חללי קטנות הרבה יותר. יש סביבנו מיליוני חתיכות קטנות, שברים של לוויינים וטילים. עד היום הצלחנו לעקוב רק אחרי מה שגדול מ-10 ס"מ. בשנים הקרובות נצליח אולי לעקוב אחר גופים קטנים יותר, והם רבים מאוד. כל אחד מגופים אלה יצטרך להיות מקוטלג ולקבל מספר. אם יהיו יותר מ-99,999 גופים מקוטלגים, מספר בן חמש ספרות לא יספיק עוד!
מה עושים? מעדכנים. בימים אלה עמלים מהנדסים בכל העולם, ובראשם קלסו הנזכר לעיל, להחליף את פורמט שתי השורות בפורמט מודרני, שאינו מוגבל כמעט במספר הספרות. האם נצליח להכחיד את הפורמט המיושן? נדע בשנת 2056, או כשנגיע ל-100,000 גופים מקוטלגים, המוקדם מביניהם.
עריכה: סמדר רבן
מקורות והרחבות:
[1] ספר על המודלים המתארים תנועת לוויינים בחלל:
Vallado, David A. Fundamentals of astrodynamics and applications. Vol. 12. Springer Science & Business Media, 2001.
[2] המאמר המתאר את מודל ה-SGP:
Kelso, T.S., Hoots, F. and Roehrich, R., 1988. Spacetrack report no. 3-models for propagation of norad element sets. NASA, Tech. Rep.
[3] אלמנטי המסלול של תחנת החלל הבין לאומית מאתר Celestrak, המידע נלקח ב 07/07/2022 בשעה 12:30