그림 1: 화성 기후 관측 위성(Mars Climate Orbiter; MCO) 가상 이미지. 출처/NASA
(4) 1999년 화성기후 관측위성(MCO)의 궤도진입 실패 원인은
1999년 9월23일 새벽(미국 서부 현지시각) 미국항공우주국(NASA) 산하 제트추진연구소의 지상관제소는 급박 하게 돌아가고 있었다. 9개월 전에 발사한 “화성 기후 관측 위성”이 드디어 화성 궤도에 진입을 시작했기 때문이다. 새벽 1시41분, 궤도 진입을 위해 태양집광판을 접었고, 1시 50분에는 주엔진 분사를 위한 자세제어가 시작되었다. 1시 56분에는 엔진 분사를 위한 압력 밸브가 개방되었고, 2시 0분 46초에는 주엔진이 16분 23초 간 예정된 분사를 시작했다. 위성이 화성을 돌아나오는 궤도로 진입하면서 화성 뒤쪽으로 숨게 되면 지구와의 통신이 잠시 끊어지게 되는데, 어찌된 일인지 예상했던 것보다 49초 일찍 통신이 두절되었다. 새벽 2시 27분에는 위성이 화성을 돌아나와 다시 지구와 통신이 회복되어야 했지만 아무런 신호가 잡히지 않았고, 결국 다시는 통신이 이루어지지 않았다. 3년이 넘는 개발 기간에 6억 달러가 넘는 개발비가 투입된 “화성 기후 관측 위성” 을 화성에 돌입하는 과정에서 잃어버린 것이다.
2012년 큐리오시티의 성공, 1999년 MCO의 실패 1990년대 중반 이후 미국 항공우주국은 기능을 강화한 소형 위성과 탐사 로봇을 이용해 화성 탐사 프로그램을 진행하고 있는데, “큐리오시티” 는 길이 3미터, 무게 900킬로그램으로서 지금까지 화성에 착륙한 탐사 로봇 중에서 가장 크고 무겁다. 지구에서 화성까지 거리를 감안하면, 지구에서 이 탐사 로봇을 화성의 원하는 지역에 안전하게 착륙시키는 것이 얼마나 기술적으로 어려운 작업이었는지 가늠할 수 있다. 화성 탐사의 역사는 1960년 옛소련의 마스닉 1호로부터 시작되었는데(화성 탐사 연표 참조), 성공했던 경우보다는 실패한 경우가 더 많다. 수많은 과학자와 공학자들의 땀과 노력, 그리고 그동안 실패에서 얻어진 기술과 경험이 축적되어 이번 “큐리오시티” 호가 무사히 착륙할 수 있지 않았을까? 이번 글에서는 1998년에 발사되었던 “화성 기후 관측 위성(Mars Climate Orbiter; 이하 MCO)”의 실패 사례를 소개한다.1),2) MCO는 위성 제어 프로그램의 단순한 오류가 발견되지 않은 채 위성이 운용되어서, 화성을 향해 항해하는 동안에 지속적인 궤도 오차를 발생시켰고, 결국 화성 궤도에 진입할 때 위성이 소실되는 결과를 가져왔다.
최소 연료로 지구-화성 여행하는 방법 먼저 지구에서 화성까지 그 여정을 간단히 살펴보자. 지구와 화성은 태양을 중심으로 공전하고 있는데, 지구를 출발한 위성은 이 먼 거리를 비행기처럼 계속 엔진 분사를 하며 직선으로 날아가는 것이 아니라 그림 2(a)와 같이 태양의 중력을 이용해 타원 궤도를 그리며 화성에 도달한다.3)
위성 발사 때 가장 먼저 거치는 과정은 위성을 로켓에 실어 지구 둘레의 공전 궤도에 올리는 것이다. 지구 공전 궤도에서는 위성의 원심력과 지구 중력이 균형을 이루어 위성이 지구 둘레를 공전하다가(그림 2(a)의 초록색 작은 원), 공전 궤도의 한쪽 끝에서 엔진 분사를 통해 속도를 높여 지구 궤도를 탈출한다(그림 2(a) 분홍색 화살표). 이때부터는 태양의 중력에 의해 타원 궤도를 그리면서 화성으로 항해한다.
화성에 가까워지면 위성의 속도와 궤도를 조절하면서 점차 화성을 중심으로 공전하는 궤도에 진입한다. 이 타원 궤도를 ‘호만 천이 궤도(Hohmann transfer orbit)’라고 부르는데, 지구 궤도를 탈출할 때와 화성 궤도에 진입할 때에만 엔진을 분사하기 때문에 적은 에너지로 행성 간 여행이 가능하다.4) 실제로는, 지구와 화성이 태양을 중심으로 각각 공전하면서 상대적인 거리가 지속적으로 변하기 때문에 발사 일정을 조정해야 하고, 또한 지구에서 화성으로 가는 동안 중간중간에 엔진을 분사하여 궤도를 적절히 수정하면서 화성에 도착하게 된다 (그림 2(b) 참조).
에어로브레이킹의 놀라운 기술 앞에서 설명했듯이 위성이 화성에 다다르면 화성을 지나치지 않고 화성 둘레를 공전하는 위성 궤도에 진입해야 하는데, MCO에서는 그림 3과 같이 에어로브레이킹(Aerobraking)이라는 방법이 사용되었다.5) 이 방법은 위성의 속도와 궤도를 적절히 조절하여 화성 둘레를 타원형으로 공전하는 궤도에 진입시키고, 매번 화성을 돌아 나올 때마다 태양전지판을 비롯한 위성 몸체가 화성 대기에서 일으키는 마찰력에 의해 속도를 점차 줄이면서 몇 주에 걸쳐 원형의 공전 궤도로 수렴해가는 방법이다. 마치 구슬치기나 당구에서 공의 진행 방향과 속도가 매우 중요한 것처럼, 처음 화성 궤도에 진입하는 과정에서 위성 속도와 위성-화성 간 거리가 적절하게 조절되지 않으면 화성을 그냥 지나치거나 화성의 대기로 진입하면서 위성이 소실될 수 있다.
MCO가 소실된 단계는 9개월 간의 여행 끝에 화성에 거의 도달하여 ‘에어로브레이킹’을 하기 위해서 화성 궤도에 진입하는 과정에서 일어났다. 지상관제소와 위성에 사용되는 프로그램에 있던 오차로 인해 위성의 고도가 너무 낮게 제어되는 바람에 위성이 화성에 진입할 때 그만 소실되고 말았다. 물론 9개월의 여행 동안에 위성 프로그램의 오류를 암시하는 오차가 지속적으로 발생했지만 지상관제소에서는 이 오차의 원인을 발견하지 못했다.
전송 데이터 계산해 위성 속도를 조절 MCO는 화성 둘레를 공전하며 화성 기후를 관측하는 것을 목표로 개발된 중량 338 킬로그램의 작은 위성이다. 1998년 12월 11일 미국 플로리다주의 케이프 커네버럴 공군기지에서 델타2 로켓에 실려 발사되어, 호만 궤도를 따라 초속 5.5 킬로미터의 속도로 항해했다.
MCO는 태양전지판이 좌우 대칭으로 장착되어 있지 않아 각운동량이 더 쉽게 축적되어 AMD 기동이 예상보다 10∼14배 더 자주 이루어졌다. 이 AMD가 이루어질 때 엔진 분사 시간과 추력값(impulse bit)이 위성에서 지상관제소로 전송된다. 전송된 데이타는 “SM_FORCE” 라는 프로그램에 의해 처리된 다음에 AMD 전과 후의 속도 차이를 계산하는 데 사용되고, 여기에서 얻어진 속도 차이는 위성 궤도 모델에 적용되어 위성의 궤도가 어떻게 변화되었는지 찾아내는 계산에 사용된다. 즉, 위성에서 전송된 데이타를 처리한 결과를 바탕으로 위성의 궤도를 예측하는 방식이었다. 이때, 전송된 데이타를 바탕으로 계산된 속도 변화값과 지상에서 도플러 효과를 이용해 측정한 속도 변화 값에 오차가 지속적으로 발견되었는데, 실무진에서는 논의가 있었지만 결국 이 오차가 왜 발생하는지는 알아내지 못했다.
화성 궤도 진입 과정 중에 사라진 MCO 아홉 달의 항해 끝에 화성에 가까워진 9월8일, 4차 궤도 수정 기동(Trajectory Correction Maneuver 4)이 계산되어 9월 15일 실행되었다. 이 4차 궤도 수정 기동은 위성이 에어로브레이킹을 위해 화성 궤도에 진입할 때 화성과 가장 가까워지는 고도(periapse altitude)가 약 226 킬로미터가 되도록 조절하는 기동이었다. 앞에서 설명한 대로 이 고도가 너무 높거나 낮으면 위성이 원하는 에어로브레이킹 궤도에 진입하지 못하고 화성을 지나치거나 화성으로 추락하게 된다. 4차 궤도 수정 기동 이후의 화성 궤도 진입은 9월 23일부터 예정되었고 그 뒤 몇 주간에 걸쳐 에어로브레이킹을 통해 화성 둘레를 원형으로 공전하는 궤도에 진입할 예정이었다. 4차 궤도 수정 기동이 실행되고 23일 화성 궤도 진입이 시작되기 전까지 지상관제소에서는 위성의 항로를 지속적으로 추적해 화성에 가장 근접했을 때의 고도를 다시 계산했는데, 예상 고도가 150∼170 킬로미터로, 애초 설정한 226 킬로미터보다 낮은 것으로 예측되었다. 위성이 화성에 접근함에 따라 화성의 중력에 더 강하게 영향을 받으면서 고도는 점점 더 낮아졌고, 최종 화성 궤도 진입 1시간 전에 계산된 결과로는 화성에 가장 접근했을 때의 고도가 110 킬로미터로 매우 낮게 예측되었다. 하지만 위성이 가장 낮게 화성을 지나갈 수 있는 고도는 약 80 킬로미터로 여겨졌기 때문에, 고도가 너무 낮거나 높을 경우에 대비한 비상 궤도 수정 기동 (TCM-5) 계획이 가동되지 않고 별다른 궤도 수정 없이 화성 궤도 진입이 진행되었다. 화성 궤도 진입이 진행되면서 위성이 화성 뒤에 숨게 되면 잠시 통신 두절이 발생하는데, 예상보다 49초 빨리 통신 두절이 발생했다. 통신 두절 21분 뒤에는 위성이 다시 화성 뒤로 돌아나오면서 통신이 회복되어야 했지만 결국 위성과 통신이 다시는 이루어지지 않았다.
프로그램 계산에 쓰인 단위의 혼선 위성과 지상관제소의 통신이 회복되지 않자 제트추진연구소는 특별조사반을 꾸려 사고 원인의 규명에 나섰다.6) 1999년 9월 29일, 공학자들은 지상관제소에서 위성 속도 변화를 계산하는 프로그램인 “SM_FORCE(small force)”에 사용된 ΔV 라는 변수가 예상보다 4.45배 작게 계산되어 있는 것을 발견했다. 이 값은 앞서 설명한 AMD 기동 전과 후 위성 궤도의 변화를 계산하는 데 사용되는 값으로, 위성에서 전송받은 추력 데이타와 엔진 분사 시간을 통해 계산된다. 조사반의 조사결과를 보면, 전송받은 추력 데이타의 단위는 국제 표준 단위인 1(N·s)으로 표시되어야 하는데, “SM_FORCE” 프로그램은 추력 데이타의 단위를 미국식인 4.45(lb·s)를 사용했다. 원래 프로그램 개발 사양서에는 모든 단위를 국제 표준 단위를 사용하도록 지시되어 있었지만 어찌된 일인지 지켜지지 않았다. 또한 비표준 단위를 사용하려면 적절한 단위 변환이 이루어져야 했는데 단위 변환 없이 전송받은 값을 그대로 사용했다. 즉, 1(N·s)의 추력 데이타를 전송받았을 때, 이 값을 4.45(lb·s)로 변환해서 사용해야 하는데(1 N = 4.45 lb), 이 값을 그대로 1(lb·s)로 인식하여 사용한 것이다. 결국 AMD가 실행되었을 때마다 위성 궤도 모델에 사용된 속도 차이는 4.45배만큼 작은 값이 사용되었고, 9개월에 걸친 항해 동안 이 오차가 발견되지 않고 계속 누적되면서 결국 위성 궤도가 정확하게 예측되지 않았던 것이다.
그림 5에서 보이듯이 4차 궤도 수정 기동(TCM-4)을 실행할 당시, 지상관제소에서 생각했던 궤도보다 실제 위성의 고도는 훨씬 낮았고, 이로 인해 화성에 최근접 했을 때 고도도 예상보다 매우 낮게 된 것이다. 프로그램상의 오차를 고려하여 위성 궤도를 다시 계산한 결과, 실제 위성의 최근접 고도는 겨우 57 킬로미터 정도로 안전고도인 80 킬로미터에 훨씬 못미치게 되었고, 결국 위성이 화성에 궤도에 진입하는 과정에서 소실된 것이다.
어떻게 이런 실수가? 프로그램이 개발될 때 프로그램 사양서에 지시된 국제 표준 단위가 사용되지 않은 것은 주의 부족이라고 말할 수밖에 없을 것이다. 프로그램 개발팀이 위성 운용 및 관제에 대해 충분히 이해할 수 있도록 교육받지 못한 것으로 밝혀졌고, 또한 프로그램 개발 뒤에 독립적인 교차 확인 과정이 필요했는데 그 과정에서 이런 오류가 발견되지 않은 것은 교차 확인 과정이 제대로 이루어지지 않았음을 의미한다. 지상관제소에서 위성의 항로를 계산하고 예측하는 항해운용(navigation operation)팀은 위성 개발 과정에 참여했던 팀이 아니라 위성 발사 뒤에 새로 참여한 팀이었다. 이 새로운 팀도 역시 MCO 운용에 대한 전반적인 이해가 부족했고 위성 자세 제어나 궤도 모델에 대해서도 충분한 교육을 받지 못했다고 한다. 9개월 동안의 항해 기간에 AMD 기동 때마다 지속적으로 오차가 발생했는데, 이 원인이 제대로 밝혀지지 않았고, 뭔가 오차가 발생한다는 것이 실무진에서는 논의되었지만 상부나 다른 부서로 제대로 전달되지 않았다. 전반적으로 시스템공학 문제로 지적할 수 있는데, 각 하부 시스템들의 개발 및 운용 과정에서 전체 시스템에 대한 이해와 교육이 부족했고, 이로 인해 하부 시스템들의 결함이 전체 시스템에 결합될 때 제대로 걸러지지 않았다. 화성 궤도 진입 전 비상궤도수정기동(TCM-5) 이 준비되기로 계획되어 있었으나, 그 중요성을 제대로 인식하지 못하여 제대로 준비가 이루어지지 않았다. 궤도 진입 직전 궤도가 예상보다 낮다는 것이 알려진 뒤에는 궤도 진입까지 시간이 너무 촉박하여 비상 궤도 수정 기동이 실행되지 못했다.
반복적 오류 뒤엔 일관된 원인이 이번에 소개한 MCO 사례를 통해 하드웨어 뿐 아니라 소프트웨어 및 시스템 통합과 운영이 얼마나 중요한지 돌아볼 수 있다. 기계적으로는 아무리 잘 만들어진 시스템이라 하더라도 제어 프로그램에 오류가 있으면 시스템이 실패할 수 있기 때문이다. 특히 현대 공학시스템은 갈수록 복잡해지고, 그 개발과정도 분업화되고 있다. 또한 소프트웨어가 차지하는 비중과 그 복잡도도 점점 높아지고 있으며, 그에 따라 예상하지 못한 오류의 가능성도 점차 높아지고 있다. 개별 소프트웨어의 완성도 뿐 아니라 상호 작용하는 모든 소프트웨어들 간의 호환성과 쳬계적인 구조 등도 매우 중요하다. 특히 소프트웨어의 경우 성능 개선이나 유지 보수가 하드웨어에 비해 상대적으로 쉬울 수 있는데, 이는 역으로 시스템의 설계 단계에서 나중의 유지·보수와 관련된 사항들이 미리 고려되어 설계되어야 한다는 점을 의미한다. 소프트웨어도 하드웨어 설계와 마찬가지로 다양한 비상 상황에 대비해 설계가 이루어지고 있으며 사용처에 따라 보안 문제가 특별히 고려되어야 하는 부분도 있다. 현대 공학 시스템에서는 이런 하드웨어와 소프트웨어를 종합적으로 설계/개발/통합 운영하는 시스템공학의 중요성이 점점 높아지고 있다. MCO의 사례에서 볼 수 있듯이 지나치기 쉬운 작은 오차가 발견되었을 때 왜 그런 오차가 발생하는지 반드시 확인하고 기록을 남겨둘 필요가 있다. 특히, 그 오차가 반복적으로 일어난다면 뭔가 일관적인 원인이 존재할 가능성이 높다. 지금 내가 보고 있는 작은 오차가 ‘빙산의 일각’과 같이 실제로는 훨씬 큰 오차의 일부분일 수 있고, 그것이 나중에 시스템에 치명적인 결과를 불러올 수 있다는 것을 잊지 말아야 하겠다. MCO에서 작은 프로그램 오차가 계속 쌓여 9개월 뒤 위성을 잃어버리게 된 것처럼.... 1) 이 소재는 이 연재의 첫 번째 글인“연재를 시작하며”에 달렸던 답글 중 airdh 님께서 제안해 주신 주제로서, 흥미있는 주제를 소개해 주신 것에 다시 한 번 감사 드립니다. 2) http://www.nels.pwp.blueyonder.co.uk/GURPS/THS/EarthOrbitBurnTable.html 3) Mars Climate Orbiter Arrival, Press Kit, NASA, 1999 4) http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-07-dynamics-fall-2009/lecture-notes/MIT16_07F09_Lec17.pdf 5) http://spacecraftkits.com/MGSFacts.html 6) Mars Climate Orbiter, Mishap Investigation Board, Phase I Report, NASA/JPL, 1999.
오세백 기계공학 박사, 미국 반도체 검사장비 개발업체 연구원
실리콘벨리에 있는 반도체 검사장비 개발업체인 KLA-Tencor에서 광계측 기술을 개발하는 연구원으로 일하고 있다. 응용광학 전공으로 카이스트를 거쳐 매사추세츠공대(MIT) 기계공학과에서 박사학위를 받았다. 첨단공학 기술이 사람 사는 세상에 어떤 영향을 끼치는가에 관심이 많다. 이메일 : sboh@alum.mit.edu <한겨레 인기기사>
■ 3선 구청장은 ‘고춧가루 물 고문’ 했던 수사관
■ 불산 누출업체 방제장비는 삽 2자루·소화기 2개뿐
■ 중, 모옌 노벨문학상 수상에 ‘개구리’ 매진 열풍
■ 안 “정당 대통령을 무소속 만들더니”
발언 듣던 문 “그렇게 험한 말을”
■ 집값 더 떨어질까, 상승할까?
■ 은행 직원 실수에 수만명 대출이자 왔다갔다
못믿을 ‘코픽스’
■ [화보] 손연재, 나비처럼
1999년 9월23일 새벽(미국 서부 현지시각) 미국항공우주국(NASA) 산하 제트추진연구소의 지상관제소는 급박 하게 돌아가고 있었다. 9개월 전에 발사한 “화성 기후 관측 위성”이 드디어 화성 궤도에 진입을 시작했기 때문이다. 새벽 1시41분, 궤도 진입을 위해 태양집광판을 접었고, 1시 50분에는 주엔진 분사를 위한 자세제어가 시작되었다. 1시 56분에는 엔진 분사를 위한 압력 밸브가 개방되었고, 2시 0분 46초에는 주엔진이 16분 23초 간 예정된 분사를 시작했다. 위성이 화성을 돌아나오는 궤도로 진입하면서 화성 뒤쪽으로 숨게 되면 지구와의 통신이 잠시 끊어지게 되는데, 어찌된 일인지 예상했던 것보다 49초 일찍 통신이 두절되었다. 새벽 2시 27분에는 위성이 화성을 돌아나와 다시 지구와 통신이 회복되어야 했지만 아무런 신호가 잡히지 않았고, 결국 다시는 통신이 이루어지지 않았다. 3년이 넘는 개발 기간에 6억 달러가 넘는 개발비가 투입된 “화성 기후 관측 위성” 을 화성에 돌입하는 과정에서 잃어버린 것이다.
2012년 큐리오시티의 성공, 1999년 MCO의 실패 1990년대 중반 이후 미국 항공우주국은 기능을 강화한 소형 위성과 탐사 로봇을 이용해 화성 탐사 프로그램을 진행하고 있는데, “큐리오시티” 는 길이 3미터, 무게 900킬로그램으로서 지금까지 화성에 착륙한 탐사 로봇 중에서 가장 크고 무겁다. 지구에서 화성까지 거리를 감안하면, 지구에서 이 탐사 로봇을 화성의 원하는 지역에 안전하게 착륙시키는 것이 얼마나 기술적으로 어려운 작업이었는지 가늠할 수 있다. 화성 탐사의 역사는 1960년 옛소련의 마스닉 1호로부터 시작되었는데(화성 탐사 연표 참조), 성공했던 경우보다는 실패한 경우가 더 많다. 수많은 과학자와 공학자들의 땀과 노력, 그리고 그동안 실패에서 얻어진 기술과 경험이 축적되어 이번 “큐리오시티” 호가 무사히 착륙할 수 있지 않았을까? 이번 글에서는 1998년에 발사되었던 “화성 기후 관측 위성(Mars Climate Orbiter; 이하 MCO)”의 실패 사례를 소개한다.1),2) MCO는 위성 제어 프로그램의 단순한 오류가 발견되지 않은 채 위성이 운용되어서, 화성을 향해 항해하는 동안에 지속적인 궤도 오차를 발생시켰고, 결국 화성 궤도에 진입할 때 위성이 소실되는 결과를 가져왔다.
최소 연료로 지구-화성 여행하는 방법 먼저 지구에서 화성까지 그 여정을 간단히 살펴보자. 지구와 화성은 태양을 중심으로 공전하고 있는데, 지구를 출발한 위성은 이 먼 거리를 비행기처럼 계속 엔진 분사를 하며 직선으로 날아가는 것이 아니라 그림 2(a)와 같이 태양의 중력을 이용해 타원 궤도를 그리며 화성에 도달한다.3)
그림 2: a) 태양의 중력을 이용하여 지구에서 화성까지 타원 궤도를 그리며 최소의 에너지로 항해하는 호만 궤도 [1]. 태양(가운데 파란색 원)을 중심으로 지구가 공전하고 있고(안쪽의 초록색 작은 원) 화성은 지구 바깥쪽에서 공전한다(초록색 큰 원). 지구 공전 궤도의 한쪽 끝에서 위성을 가속하면(분홍색 화살표; perigee burn) 지구 중력을 벗어나면서 태양의 중력에 의해 타원 궤도(노란색 실선)로 화성에 접근할 수 있고, 화성에 다다라서는 적절히 감속하여 화성 공전 궤도로 진입한다. 호만 궤도는 화성에서 지구로 돌아올 때도 사용할 수 있다(노란색 점선). (b) 실제 MCO의 항해 궤도. 호만 궤도를 기반으로 삼아 항해 중간에 3∼4번 정도 궤도 수정이 이루어진다. [주2]
에어로브레이킹의 놀라운 기술 앞에서 설명했듯이 위성이 화성에 다다르면 화성을 지나치지 않고 화성 둘레를 공전하는 위성 궤도에 진입해야 하는데, MCO에서는 그림 3과 같이 에어로브레이킹(Aerobraking)이라는 방법이 사용되었다.5) 이 방법은 위성의 속도와 궤도를 적절히 조절하여 화성 둘레를 타원형으로 공전하는 궤도에 진입시키고, 매번 화성을 돌아 나올 때마다 태양전지판을 비롯한 위성 몸체가 화성 대기에서 일으키는 마찰력에 의해 속도를 점차 줄이면서 몇 주에 걸쳐 원형의 공전 궤도로 수렴해가는 방법이다. 마치 구슬치기나 당구에서 공의 진행 방향과 속도가 매우 중요한 것처럼, 처음 화성 궤도에 진입하는 과정에서 위성 속도와 위성-화성 간 거리가 적절하게 조절되지 않으면 화성을 그냥 지나치거나 화성의 대기로 진입하면서 위성이 소실될 수 있다.
그림 3: (a)위성이 화성에 거의 도착하면 에어로브레이킹이라는 방법을 이용하여 화성 공전 궤도에 점차 진입한다.[주4 참조] (b) MCO에서 계획되었던 에어로브레이킹. 몇 주간에 걸쳐 15시간 공전 주기에서 2시간 공전 주기로 점차 수렴한다. 출처/NASA
전송 데이터 계산해 위성 속도를 조절 MCO는 화성 둘레를 공전하며 화성 기후를 관측하는 것을 목표로 개발된 중량 338 킬로그램의 작은 위성이다. 1998년 12월 11일 미국 플로리다주의 케이프 커네버럴 공군기지에서 델타2 로켓에 실려 발사되어, 호만 궤도를 따라 초속 5.5 킬로미터의 속도로 항해했다.
그림 4: MCO가 화성에 접근하면서 촬영한 화성 영상. 1999년 9월 7일 화성에서 약 450만 킬로미터 떨어진 곳에서 촬영한 것으로 MCO가 전송한 유일한 영상이다. 출처/ NASA
화성 궤도 진입 과정 중에 사라진 MCO 아홉 달의 항해 끝에 화성에 가까워진 9월8일, 4차 궤도 수정 기동(Trajectory Correction Maneuver 4)이 계산되어 9월 15일 실행되었다. 이 4차 궤도 수정 기동은 위성이 에어로브레이킹을 위해 화성 궤도에 진입할 때 화성과 가장 가까워지는 고도(periapse altitude)가 약 226 킬로미터가 되도록 조절하는 기동이었다. 앞에서 설명한 대로 이 고도가 너무 높거나 낮으면 위성이 원하는 에어로브레이킹 궤도에 진입하지 못하고 화성을 지나치거나 화성으로 추락하게 된다. 4차 궤도 수정 기동 이후의 화성 궤도 진입은 9월 23일부터 예정되었고 그 뒤 몇 주간에 걸쳐 에어로브레이킹을 통해 화성 둘레를 원형으로 공전하는 궤도에 진입할 예정이었다. 4차 궤도 수정 기동이 실행되고 23일 화성 궤도 진입이 시작되기 전까지 지상관제소에서는 위성의 항로를 지속적으로 추적해 화성에 가장 근접했을 때의 고도를 다시 계산했는데, 예상 고도가 150∼170 킬로미터로, 애초 설정한 226 킬로미터보다 낮은 것으로 예측되었다. 위성이 화성에 접근함에 따라 화성의 중력에 더 강하게 영향을 받으면서 고도는 점점 더 낮아졌고, 최종 화성 궤도 진입 1시간 전에 계산된 결과로는 화성에 가장 접근했을 때의 고도가 110 킬로미터로 매우 낮게 예측되었다. 하지만 위성이 가장 낮게 화성을 지나갈 수 있는 고도는 약 80 킬로미터로 여겨졌기 때문에, 고도가 너무 낮거나 높을 경우에 대비한 비상 궤도 수정 기동 (TCM-5) 계획이 가동되지 않고 별다른 궤도 수정 없이 화성 궤도 진입이 진행되었다. 화성 궤도 진입이 진행되면서 위성이 화성 뒤에 숨게 되면 잠시 통신 두절이 발생하는데, 예상보다 49초 빨리 통신 두절이 발생했다. 통신 두절 21분 뒤에는 위성이 다시 화성 뒤로 돌아나오면서 통신이 회복되어야 했지만 결국 위성과 통신이 다시는 이루어지지 않았다.
프로그램 계산에 쓰인 단위의 혼선 위성과 지상관제소의 통신이 회복되지 않자 제트추진연구소는 특별조사반을 꾸려 사고 원인의 규명에 나섰다.6) 1999년 9월 29일, 공학자들은 지상관제소에서 위성 속도 변화를 계산하는 프로그램인 “SM_FORCE(small force)”에 사용된 ΔV 라는 변수가 예상보다 4.45배 작게 계산되어 있는 것을 발견했다. 이 값은 앞서 설명한 AMD 기동 전과 후 위성 궤도의 변화를 계산하는 데 사용되는 값으로, 위성에서 전송받은 추력 데이타와 엔진 분사 시간을 통해 계산된다. 조사반의 조사결과를 보면, 전송받은 추력 데이타의 단위는 국제 표준 단위인 1(N·s)으로 표시되어야 하는데, “SM_FORCE” 프로그램은 추력 데이타의 단위를 미국식인 4.45(lb·s)를 사용했다. 원래 프로그램 개발 사양서에는 모든 단위를 국제 표준 단위를 사용하도록 지시되어 있었지만 어찌된 일인지 지켜지지 않았다. 또한 비표준 단위를 사용하려면 적절한 단위 변환이 이루어져야 했는데 단위 변환 없이 전송받은 값을 그대로 사용했다. 즉, 1(N·s)의 추력 데이타를 전송받았을 때, 이 값을 4.45(lb·s)로 변환해서 사용해야 하는데(1 N = 4.45 lb), 이 값을 그대로 1(lb·s)로 인식하여 사용한 것이다. 결국 AMD가 실행되었을 때마다 위성 궤도 모델에 사용된 속도 차이는 4.45배만큼 작은 값이 사용되었고, 9개월에 걸친 항해 동안 이 오차가 발견되지 않고 계속 누적되면서 결국 위성 궤도가 정확하게 예측되지 않았던 것이다.
그림 5: 위성이 화성 궤도에 진입하면서 4차 궤도 수정 기동(TCM-4)을 이용해 화성의 최근접 고도가 226 킬로미터가 되도록 조정했는데(Estimated trajectory and AMD ΔV’s), 실제 위성의 고도가 프로그램상 의 오류로 인해 예상보다 낮았고, 실제 화성에 최대로 근접했을 때 고도(Actual trajectory and AMD ΔV ’s)는 겨우 57 킬로미터 정도밖에 안 되었던 것으로 밝혀졌다. 출처/NASA
어떻게 이런 실수가? 프로그램이 개발될 때 프로그램 사양서에 지시된 국제 표준 단위가 사용되지 않은 것은 주의 부족이라고 말할 수밖에 없을 것이다. 프로그램 개발팀이 위성 운용 및 관제에 대해 충분히 이해할 수 있도록 교육받지 못한 것으로 밝혀졌고, 또한 프로그램 개발 뒤에 독립적인 교차 확인 과정이 필요했는데 그 과정에서 이런 오류가 발견되지 않은 것은 교차 확인 과정이 제대로 이루어지지 않았음을 의미한다. 지상관제소에서 위성의 항로를 계산하고 예측하는 항해운용(navigation operation)팀은 위성 개발 과정에 참여했던 팀이 아니라 위성 발사 뒤에 새로 참여한 팀이었다. 이 새로운 팀도 역시 MCO 운용에 대한 전반적인 이해가 부족했고 위성 자세 제어나 궤도 모델에 대해서도 충분한 교육을 받지 못했다고 한다. 9개월 동안의 항해 기간에 AMD 기동 때마다 지속적으로 오차가 발생했는데, 이 원인이 제대로 밝혀지지 않았고, 뭔가 오차가 발생한다는 것이 실무진에서는 논의되었지만 상부나 다른 부서로 제대로 전달되지 않았다. 전반적으로 시스템공학 문제로 지적할 수 있는데, 각 하부 시스템들의 개발 및 운용 과정에서 전체 시스템에 대한 이해와 교육이 부족했고, 이로 인해 하부 시스템들의 결함이 전체 시스템에 결합될 때 제대로 걸러지지 않았다. 화성 궤도 진입 전 비상궤도수정기동(TCM-5) 이 준비되기로 계획되어 있었으나, 그 중요성을 제대로 인식하지 못하여 제대로 준비가 이루어지지 않았다. 궤도 진입 직전 궤도가 예상보다 낮다는 것이 알려진 뒤에는 궤도 진입까지 시간이 너무 촉박하여 비상 궤도 수정 기동이 실행되지 못했다.
반복적 오류 뒤엔 일관된 원인이 이번에 소개한 MCO 사례를 통해 하드웨어 뿐 아니라 소프트웨어 및 시스템 통합과 운영이 얼마나 중요한지 돌아볼 수 있다. 기계적으로는 아무리 잘 만들어진 시스템이라 하더라도 제어 프로그램에 오류가 있으면 시스템이 실패할 수 있기 때문이다. 특히 현대 공학시스템은 갈수록 복잡해지고, 그 개발과정도 분업화되고 있다. 또한 소프트웨어가 차지하는 비중과 그 복잡도도 점점 높아지고 있으며, 그에 따라 예상하지 못한 오류의 가능성도 점차 높아지고 있다. 개별 소프트웨어의 완성도 뿐 아니라 상호 작용하는 모든 소프트웨어들 간의 호환성과 쳬계적인 구조 등도 매우 중요하다. 특히 소프트웨어의 경우 성능 개선이나 유지 보수가 하드웨어에 비해 상대적으로 쉬울 수 있는데, 이는 역으로 시스템의 설계 단계에서 나중의 유지·보수와 관련된 사항들이 미리 고려되어 설계되어야 한다는 점을 의미한다. 소프트웨어도 하드웨어 설계와 마찬가지로 다양한 비상 상황에 대비해 설계가 이루어지고 있으며 사용처에 따라 보안 문제가 특별히 고려되어야 하는 부분도 있다. 현대 공학 시스템에서는 이런 하드웨어와 소프트웨어를 종합적으로 설계/개발/통합 운영하는 시스템공학의 중요성이 점점 높아지고 있다. MCO의 사례에서 볼 수 있듯이 지나치기 쉬운 작은 오차가 발견되었을 때 왜 그런 오차가 발생하는지 반드시 확인하고 기록을 남겨둘 필요가 있다. 특히, 그 오차가 반복적으로 일어난다면 뭔가 일관적인 원인이 존재할 가능성이 높다. 지금 내가 보고 있는 작은 오차가 ‘빙산의 일각’과 같이 실제로는 훨씬 큰 오차의 일부분일 수 있고, 그것이 나중에 시스템에 치명적인 결과를 불러올 수 있다는 것을 잊지 말아야 하겠다. MCO에서 작은 프로그램 오차가 계속 쌓여 9개월 뒤 위성을 잃어버리게 된 것처럼.... 1) 이 소재는 이 연재의 첫 번째 글인“연재를 시작하며”에 달렸던 답글 중 airdh 님께서 제안해 주신 주제로서, 흥미있는 주제를 소개해 주신 것에 다시 한 번 감사 드립니다. 2) http://www.nels.pwp.blueyonder.co.uk/GURPS/THS/EarthOrbitBurnTable.html 3) Mars Climate Orbiter Arrival, Press Kit, NASA, 1999 4) http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-07-dynamics-fall-2009/lecture-notes/MIT16_07F09_Lec17.pdf 5) http://spacecraftkits.com/MGSFacts.html 6) Mars Climate Orbiter, Mishap Investigation Board, Phase I Report, NASA/JPL, 1999.
오세백
실리콘벨리에 있는 반도체 검사장비 개발업체인 KLA-Tencor에서 광계측 기술을 개발하는 연구원으로 일하고 있다. 응용광학 전공으로 카이스트를 거쳐 매사추세츠공대(MIT) 기계공학과에서 박사학위를 받았다. 첨단공학 기술이 사람 사는 세상에 어떤 영향을 끼치는가에 관심이 많다. 이메일 : sboh@alum.mit.edu <한겨레 인기기사>
■ 3선 구청장은 ‘고춧가루 물 고문’ 했던 수사관
■ 불산 누출업체 방제장비는 삽 2자루·소화기 2개뿐
■ 중, 모옌 노벨문학상 수상에 ‘개구리’ 매진 열풍
■ 안 “정당 대통령을 무소속 만들더니”
발언 듣던 문 “그렇게 험한 말을”
■ 집값 더 떨어질까, 상승할까?
■ 은행 직원 실수에 수만명 대출이자 왔다갔다
못믿을 ‘코픽스’
■ [화보] 손연재, 나비처럼
항상 시민과 함께하겠습니다. 한겨레 구독신청 하기