Vol.9, No.3, pp.39-46 (2015)
1. 서 론
인공위성은 한정된 수량(일반적으로 특별한 목적에 한하여 1대씩 생산)으로 생산하기 때문에 아주 고가이 며, 개발비용을 낮추기 위해서는 개발의 효율성을 아 주 높여야 한다. 이를 위하여, 거의 모든 개발 부문에 서 컴퓨터 시뮬레이션 기술을 활용하고 있다[1]. 인공 위성의 비행 궤도에서는 외란의 요소가 미미하기 때문 에 단기간의 운동은 시뮬레이션 결과와 일치하는데 [2], 이를 바탕으로 자세제어 시스템을 설계한다. 구조 해석 소프트웨어를 이용하여 하중에 대한 구조물의 거 동을 시뮬레이션 하면서 구조물의 상세설계를 수행하
거나[3], 축적된 데이터를 이용하여 우주방사능의 영 향도 시뮬레이션을 이용하여 예측한다[4].
이처럼 시뮬레이션 기법은 개발업무 효율화에 매우 중요한 수단이다. 일반적으로 개발 담당부문별로 다른 소프트웨어를 이용하는 경우가 대부분인데, 상세한 해 석을 위해서는 전용 해석 소프트웨어를 사용해야하며, 서로 다른 물리적인 현상을 다루기 때문이다. 그러나 이러한 설계방식은 초기 개념설계에서 발생하는 빈번 한 설계변경에 효과적으로 대응하기 어려우며, 이에 따른 불필요한 업무가 발생하고, 결국 업무의 효율성 이 떨어질 수 있다. 초기 설계 단계에서는 상세 해석 보다는 개념 검증 및 개발담당자간의 의사소통과 조 율, 교차 점검이 더 중요하기 때문에, 통합된 시뮬레이 션 소프트웨어를 활용할 필요가 있다. 개발된 위성 데 이터베이스를 바탕으로 질량과 전력을 추정한 사례가 있지만[5], 다양한 물리현상(기계역학, 전기, 제어, 추
Modelica를 이용한 인공위성 동작 통합시뮬레이션 프로그램 개발
진재현1,†· 박봉규2
1순천대학교 우주항공공학전공
2한국항공우주연구원 정지궤도복합위성사업단
Development of Integrated Simulation Program for Artificial Satellite Operations by Modelica
Jaehyun Jin1,† and Bong-Kyu Park2
1Division of Aerospace Engineering, Sunchon National University
2Geo-KOMPSAT2 Systems Engineering & Integration Team, Korea Aerospace Research Institute
Abstract : An integrated simulation program for an artificial satellite’s operation has been developed. The program integrates and simulates orbit mechanics, attitude control, power/energy transition and mass variation.
In the early stages of satellite development, this program can be used as a communication tool among design engineers of different fields. As a result, the efficiency to design a satellite is expected to increase. This program has been coded by Modelica language which supports acausal and object oriented programming methods. Libraries are developed for satellite simulation, and simulation results are presented.
Key Words : Integrated satellite simulation program, Modelica, Acausal simulation
Received: Aug. 26, 2015 Revised: Sep. 22, 2015 Accepted: Sep. 23, 2015
† Corresponding Author
Tel: +82-61-750-3827, E-mail: [email protected] Copyright Ⓒ The Society for Aerospace System Engineering
진 등)을 통합 시뮬레이션 하는 프로그램은 없다.
이러한 이유로 저자는 인공위성의 개념 설계 및 동 작 검증에 필요한 통합 시뮬레이션 프로그램을 개발하 였다. 이 프로그램은 위성 궤도 역학, 자세 제어 시스 템 동작과 이에 따른 위성의 자세 동역학 시뮬레이션, 전력 생성 및 소모에 따른 변화 모니터링, 그리고 추 력기 사용에 따른 추진 연료량의 변동 등을 통합적으 로 시뮬레이션 할 수 있다. 프로그램을 개발하기 위하 여 모델리카(Modelica)라는 언어를 채택하였는데, 모 델리카의 장점인 방정식 기반 코딩, 객체지향적 프로 그래밍, 커넥터 기능을 활용함으로써, 다물리(multi physics) 현상이 포함된 인공위성의 전체적인 동작을 쉽게 프로그래밍 할 수 있었다.
본 논문에서는 통합 시뮬레이션 프로그램 개발 내 용을 소개한다. 2절에서는 모델리카에 대하여 간단하 게 소개하고, 3절에서는 위성의 동작에 대한 시뮬레이 션 모듈(라이브러리)을 설명한다. 4절에서는 라이브러 리를 통합하여 시뮬레이션 프로그램을 작성하는 것과 특정 임무에 대한 시뮬레이션 결과를 제시하였으며, 5 절은 결론이다.
2. 모델리카(Modelica) 소개
모델리카는 유럽의 연구진이 개발한 비인과적 (acausal) 시뮬레이션을 지원하는 프로그래밍 언어이 다[6-8]. 유럽의 주요 설계 회사가 지원하며, 유럽 산 업체를 중심으로 이를 활용하고 있으며, 국내에서도 모델리카 기반으로 개발된 SimulationX라는 소프트웨 어를 이용하여 유압시스템 설계에 활용하고 있다 [9,10].
모델리카는 동역학 시뮬레이션을 지원하기 위하여 개발된 언어이기 때문에 일반적인 프로그래밍 언어(C, FORTRAN)와 조금 다른데, 주요 특징은 다음과 같다.
Ÿ 미분방정식과 대수방정식을 풀 수 있다.
Ÿ 방정식을 기반으로 하는 다양한 물리현상(multi physics)을 함께 시뮬레이션 할 수 있다.
Ÿ Kirchhoff 법칙을 이용하여 객체들의 다양한 연 결을 지원한다.
Ÿ 객체지향적이며, 상속을 통한 프로그램의 재사 용성을 높인다.
다음 Fig. 1 은 회전관성-스프링-댐퍼 시스템의 개 략도와 동역학 방정식을 보여주며, 모델리카로 프로그 래밍한 것은 Fig. 2에 나타내었다. 프로그램에서 등호
‘=’ 는 대입을 의미하는 것이 아니라 좌우변이 같음을 의미한다. 프로그램의 본체에 해당하는 부분이
‘equation’인데, 여기에 지배방정식을 기술하면 프로그 램은 완성된다.
Fig. 1. Concept diagram of inertia-spring-damper system
model JSD
parameter Real J = 0.1, k = 2, c = 0.2;
Real phi(start = 0), w(start = 0), tau;
equation tau = 1;
der(phi) = w;
J * der(w) + c * w + k * phi = tau;
end JSD;
Fig. 2. Modelica program of inertia-spring-damper system
3. 시뮬레이션 프로그램 라이브러리 개발
인공위성의 시뮬레이션을 위한 개념도는 Fig. 3과 같다. 인공위성이 힘(force)과 모멘트(moment)를 받으 면 병진운동과 회전운동이 발생한다(강체 동역학, Body 블록). 그 결과는 위치(r)와 자세(q)의 변화이다.
위치에 따라서 인공위성에 가해지는 중력이 변하게 된 다(궤도역학, Orbit 블록). 자세 정보를 이용해서 자세 제어 동작을 수행한다(제어 공학, Controller 블록). 제 어 명령에 따라 구동기(Actuator 블록)를 동작하는데, 전력을 소모하는 반작용 휠을 사용하거나, 연료를 소 모하는 추진기를 사용한다. 그리고 영상 정보를 획득 하거나 지상국과 통신을 하면서 전력을 소모하고, 궤 도를 돌면서 태양전지판은 전력을 생산하고, 생산된
전력은 위성 내부의 배터리에 저장된다(전력공학).
Fig. 3. Concept diagram of satellite simulation
이러한 내용의 시뮬레이션을 위한 모듈을 Fig. 4와 같이 구현하였다[11-14]. 이후의 절에서는 각 모듈을 구현하는 방식에 대하여 설명한다. 각 절의 제목에 해 당하는 모듈의 이름을 명시하였다.
Fig. 4. Structure of models
3.1 강체/질점 동역학 - Body
힘(force)에 의해 선속도와 위치가 변하는 것은 질 점 동역학(particle dynamics)에 해당되며, Newton
역학의 가속도 방정식( )을 이용하여 계산한다.
적분 결과는 속도와 위치가 되는데, 이는 궤도상에서 의 위성의 위치를 구하는데 사용된다. 모멘트에 의해 각속도와 자세가 변하는 것은 강체 동역학(rigid body dynamics)에 해당되며, 비슷하게 각가속도 방정식 ( )을 이용하여 계산한다. 적분 결과는 각속도와 자세가 되는데, 자세 제어의 목적으로 사용된다.
동체 좌표계에 대한 운동방정식은 Eq. 1과 같다 [15]. 여기서 , , , 은 각각 속도, 각속도, 힘, 모멘트 벡터이다.
× (1a)
× × (1b)
식에서 은 질량, 는 위성의 관성 모멘트 행렬이고,
, 는 변화율을 의미하는데, 추력기를 사용하면 연 료를 소모하기 때문에 변화율이 영은 아니지만 매우 작은 값이기 때문에 이를 무시한다. 그러나 과 는 시간에 따라 변하는 것을 반영한다. Eq. 1a의 초기값 은 궤도 역학에서 제공한다.
3.2 궤도 역학 - EllipticOrbit
Figure 5는 타원궤도(원 궤도 포함)에 대한 궤도 요 소를 보여주고, Fig. 6는 좌표계를 나타낸다. 는 근점 이각(true anomaly), 는 궤도 경사각, 는 근지점 (perigee) 이각, 는 승교점 적경 이며, 그 외에 장반 경(major axis) , 이심률 e, 근지점 통과시간 이 주 어지면 궤도가 결정된다[17].
Fig. 5 Orbit elements
Fig. 6 Coordinate systems
궤도 역학에서는 궤도 요소를 이용하여 초기 위치와 속도를 결정하고, 3.1 절에서 계산한 속도를 받아서, 관성 좌표계()에 대하여 위치를 적분해나간다.
Fig. 7은 3.1절의 동역학 모듈과 결합한 것이다. Orbit 과 Body 모듈은 커넥터(connector)를 통하여 질량과 위치 정보를 공유하고 중력을 전달한다. 그림에서 connector라고 되어 있는 것은 3.7절에서 설명한다.
Fig. 7 Orbit and Body module
3.3 자세제어계 – Actuators.RW4Cluster
인공위성의 자세제어 목적으로 사용하는 구동기는 반작용 휠(reaction wheel, RW)을 고려하였다. RW는 위성 본체와 각운동량을 교환하는 장치로서, 위성에 토크를 가하면 반작용 토크를 받는다. RW는 위성에 장착하는 기준축 방향으로 토크가 발생한다. 3축 방향 의 토크를 생성하기 위하여 3 개 이상을 묶어서 한 셋 트로 만든다(Fig. 8 참고).
Fig. 8 Reaction wheels layout
휠에 토크( )가 가해져서 각속도() 변화가 발생 하고 반작용으로 위성에는 반대 방향의 토크()가 가 해진다. 토크 축의 방향은 휠이 장착된 방향()이다.
, , min≦ ≦ max (2)
RW은 일종의 모터인데, 모터에서 발생하는 토크와 전 류는 비례관계에 있다( ). 그래서 토크를 이 용해서 소요되는 전력을 계산할 수 있다. 소요되는 만 큼 위성의 배터리에 저장된 전기에너지는 줄어든다.
(3)
Equation 2,3을 이용하여 한 개의 RW에 대한 라이 브러리를 구성하고, 4개로 구성된 셋트는 그래픽 에디 터로 작성한다(Fig. 9 참고). 우측의 큰 사각형은 커넥 터인데 3.7절에서 설명한다. Fig. 10은 Fig. 7에 RW 셋트(rw4cluster1)를 추가한 것이다.
Fig. 9 Reaction wheel cluster
Fig. 10 Orbit, Body and Reaction wheel cluster 뒤에 설명할 커넥터를 통해서 위성의 모든 상태(각
속도, 자세 등)에 대한 직접 접근이 가능한데, 일부 정 보만 제공하여 자이로 센서, 쿼터니언 측정 센서(별 센 서), 방향각 센서(별 센서)를 모델링하였다.
제어기(controller)는 각속도 루프와 자세 루프로 구 성하였다. 쿼터니언으로 출력되는 자세를 오일러 각도 로 변환해서 사용한다.
,
,≡ (4)
반작용 휠이 주축과 다른 방향으로 장착되거나 4개 인 경우에, 3개의 주축 방향으로 토크를 생성하기 위 해서는 적절하게 명령()을 분배하여야 한다(Fig. 8 의 rw4distributor1). 토크를 만드는 식은 인데, 의사 역변환(pseudo inverse)을 이용하여 각 휠 의 토크 명령()을 구한다.
(5)
3.4 추진계 – Actuators.ThrustCluster, FuelTank 추진계는 궤도 제어와 자세 제어를 위해 사용된다.
본 논문에서는 자세 제어용 시스템 위주로 설명한다.
추력기는 단일 추진제, 이원 추진제, 이온 추력기 등이 있으며, 동작 방식도 다양한데[16], 여기에서는 질량 소모계산이 간단한 이온 추력기를 가정하였다. 추력기 (thruster)는 장착위치()와 방향()을 이용하여 위성 에 가하는 힘과 모멘트를 계산할 수 있다. 추력기는 일반적으로 일정한 크기의 추력을 잠깐 동안 가하여 위성의 자세에 변화를 주는데, 본 논문에서는 편의상 가변 추력으로 설정하여 일반적인 구동기와 비슷하게 동작하는 것처럼 모델링 하였다.
, × ,
× (6)
는 비추력(specific impulse)이다. 추력은 반작용 휠 과는 달리 연료를 소모하기 때문에 추력 사용에 따른 질량과 관성 모멘트 행렬의 변화가 발생한다. 연료탱 크(FuelTank)를 설정하여 추력 사용에 따른 연료 변
화를 모니터링 한다. 이것은 위성의 수명을 예측하는 데 사용할 수 있다.
3.5 전력계 – Battery, SolarArray
전력계는, 전력을 소모하는 거의 모든 장비, 유일하 게 전력을 충전하는 태양 전지판, 그리고 전력 저장을 위한 배터리로 구성된다. 전력 사용을 관리하는 시스 템은 생략하였다. 태양전지판은 일식(eclipse) 기간 동 안에는 전력생산을 하지 못하는데, 위성의 궤도에 따 라 그 기간이 정해진다. 위성의 주기를 정하고, 주기의 몇 %가 sun on인지를 결정한다. 배터리에 저장되는 값은 생산되는 전력에 효율을 곱해서 계산한다[17].
×× (7)
는 전체 효율(생산 및 저장)이고, A는 면적, 그리고 p는 면적당 발생 전력을 의미한다. 전력을 소모하는 것 중에서 반작용 휠은 가해지는 토크의 제곱에 비례 하는 전력을 소모한다고 가정하였으며(Eq. 3), 작동에 따라 배터리로부터 전기에너지를 가져간다. 나머지 장 비들은 Payload라는 모델에 평균 사용량을 부과하여 지속적으로 사용한다.
배터리 모듈은 충전 및 소모되는 전력에 의하여 저 장된 에너지를 표시하는 기능을 한다. 만약 여러 번의 임무 중에 이 값이 음수가 되면 배터리의 용량이 부족 하게 설계된 것을 의미하며, 용량을 증가해야 한다. 반 대의 경우도 가능하기 때문에, 적정 용량을 설계하는 데 활용할 수 있다.
3.6 임무 설계 - Missions
기본적으로, 위성의 자세를 일정하게 유지하는 간단 한 임무 모듈을 준비하였다. 그 외에 목표지점을 향하 여 영상을 획득하는 등의 복잡한 임무도 추가할 수 있 다. 임무 모듈에서는 각도 명령을 생성하여 제어기에 전달한다.
3.7 커넥터 - Connectors
커넥터는 두 지점의 변수에 대한 연결조건을 의미하 는데, Kirchhoff 법칙을 적용한다. 예를 들면 Fig. 11 의 a-b, c-b로 연결된 전기회로를 생각한다. 전압은
모든 연결에서 동일하고(), 전류는 노드에 서 이므로, b 점에 대한 전류는
이 된다. a와 c점에서 전류가 b로 흘러 들 어오는 것과 같다. 이러한 연결에서, 전압과 같은 것은 potential 변수라고 하고 전류와 같은 것은 flow 변수 라고 정의한다.
connector Pin Real v;
flow Real i;
end Pin
Fig. 11 Connector concept and code example
본 논문에서는 네 가지의 커넥터를 정의하였다(Fig.
12 참고). 사용 전력, 추진제 질량, 강체/질점 운동, 그 리고 반작용 휠의 각속도와 관련된 것이다.
Fig. 12 Connectors
세 번째 커넥터에서 , 는 자세변환행렬인데 자세각도에 대한 정보를 갖고 있다. 그리고 벡터 는 반작용 휠과 같은 장치의 각운동량을 의미한다. 이 값 은 위성에 흘러 들어가서(flow 변수) 위성 전체가 갖 는 각운동량( )을 계산하는데 사용된다. 네 번째 커넥터는 반작용 휠의 각운동량 정보를 가지고 있는 데, 세 번째 커넥터와 중복되는 정보이지만 추력기로 모멘텀 덤핑을 위하여 정의하였다.
4. 시뮬레이션 프로그램 테스트
시뮬레이션을 위해 설정한 가상의 위성은 질량 500 kg의 중소형급이며, 고도 600 km에서 원 궤도를 따라 비행한다고 가정하였다. 먼저, 위성을 안정화시키는 시 뮬레이션을 수행하였다. Fig. 4의 라이브러리에서 필요 한 모듈을 가져오고, 결선(입출력 및 커넥터)을 하면 완성된다(Fig. 13).
Fig. 13 Simulation of a stabilizing control
인공위성의 초기 각속도를 수렴시켜 위성을 안정화 하는 간단한 제어를 수행하였으며, Fig. 14는 시뮬레 이션 결과이다. 위성의 각속도와 반작용 휠의 동작을 보여준다. 반작용 휠의 속도가 적절한지 확인할 수 있 다. 일식에 따라 배터리의 에너지 충전 및 방전을 확 인하기 위하여 태양의 on/off 주기를 20 sec로 조정하 여 도시한 것이 Fig. 14(c)에 해당한다. 그리고 반작용 휠의 사용에 따라 소모되는 전력을 모니터링 할 수 있 다. 임무가 단순하여 사용전력은 아주 작지만 여러 가 지 동작이 복합적으로 그리고 지속적으로 사용되면 누 적된 효과를 확인할 수 있다.
(a) Satellite angular speed (rad/s)
(b) Reaction wheel speed (rad/s)
(c) Sun eclipse, power use, stored energy Fig. 14 Simulation results
Fig. 15 Simulation of integrated missions
두 번째 시뮬레이션 예제(Fig. 15)는 일련의 임무를 반복 수행하는 것이다. 반작용 휠은 3개를 사용하였다.
50초 동안 제어동작 없이 외란에 의하여 위성의 자세 와 각속도가 변하게 되고, 50초 동안은 각속도 수렴 동작을 수행하고, 300초 동안 각도를 원하는 값으로 수렴시키고, 100초 동안은 반작용 휠의 모멘텀을 제거 해주는 모멘텀 덤핑을 수행한다. 이 과정을 반복하였 다. Fig. 16은 시뮬레이션 결과이다. Fig. 16(a)는 반 작용 휠의 각속도 변화를 보여준다. 제어를 위하여 사 용하면서 속도가 증가하였다가, 모멘텀 덤핑에 의하여
다시 속도가 줄어드는 과정이 반복된다. Fig. 16(b)는 모멘텀 덤핑을 위한 추력기의 사용에 따라 연료량의 변화를 보인 것이다. 이처럼 시뮬레이션을 이용하면, 위성의 상태나 연료량, 전력 등을 임무에 따라 정확하 게 파악할 수 있다.
(a) Reaction wheel speed(rad/s)
(b) Fuel mass(kg) variation Fig. 16 Simulation results
5. 결론
본 논문에서는 인공위성의 궤도역학, 자세제어, 전력계 통, 추진계통에 대한 통합 시뮬레이션 프로그램을 개 발하였다. 몇 개의 시나리오를 이용하여 개발한 프로 그램의 기능을 검증하였는데, 임무에 따라 반작용 휠 의 동작상태를 모니터링하고 소요되는 전력과 연료량 을 정확하게 분석할 수 있었다. 다양한 관점에서 위성 의 동작을 확인할 수 있기 때문에 위성의 개념 설계 및 운영 검증에 유용할 것으로 판단된다. 통합 시뮬레 이션 프로그램을 사용한다면, 개념설계 단계부터 각 부문을 통합함으로써, 개발담당자들의 의사소통을 효 과적으로 지원하여 위성개발의 효율성을 높일 수 있을 것으로 기대하며, 프로그램의 서브 모듈을 상세화 함 으로써 개념 설계 이후의 단계에서도 사용할 수 있을
것이다.
참 고 문 헌
[1] Eickhoff, J., Simulating Spacecraft Systems, Springer-Verlag, 2009.
[2] Park, K., et. al., “AOCS Library Development for KARI Satellite Design System,” Proceedings of KSAS 2014 Spring Conference, pp.1004-1007, 2014.
[3] Hwang, D., “Design and Analysis of Satellite Structure,” Journal of the Korean Society for Aeronautical and Space Sciences, Vol.27, No.2, pp.111-121, 1999.
[4] Hong, S. and Heo, J., “Study on the Design of GEO Satellite System in Space Radiation Environment,”
Journal of the Korea Society For Simulation, Vol.19, No.4, pp.123-128, 2010.
[5] Lee, N., et. al.,, “Parametric Analysis for System Conceptual Design of Small Observation Satellite,”
Proceedings of KSAS 2012 Spring Conference, pp.1072-1078, 2012.
[6] Fritzson, P., Principles of Object Oriented Modeling and Simulation with MODELICA 2.1, Wiley-IEEE Press, 2004.
[7] Elmqvist, H., “Modelica evolution – from my perspective,” Proceedings of the 10th International Modelica Conference 2014 (Keynote speech), 2014.
[8] Kofránek, J., Mateják M., and Privitzer P., “Causal or Acausal Modeling: Labour for Humans or Labour for Machines,” Proceedings of the 16th Annual Conference In Technical Computing, pp.1-19, 2008.
[9] Noh, D. and Jang, J., “Shape Design Sensitivity Analysis Case of the Valves Installed in the Hydraulic Driving Motor,” Journal of the Korea Society For Simulation, Vol.22, No.3, pp.81-87, 2013.
[10] Lee, Y. and Yoo, Y., “Modeling and Simulation of a Hydraulic Servo Actuator Cushion for Power Plants,”
Journal of the Korean Society of Tribologists and Lubrication Engineeres, Vol.29, No.1, pp.7-12, 2013.
[11] Looye, G., “The New DLR Flight Dynamics
Library,” Proceedings of the 6th International Modelica Conference, Vol. 1, pp.193-202, 2008.
[12] Moormann, D., and Looye, G., “The Modelica Flight Dynamics Library,” Proceedings of the 2nd International Modelica Conference, pp.275-284, 2002.
[13] Iderbrant, A., and Fritzson, P., “Aircraft - A Modelica Library for Aircraft Dynamic Simulation,”
Proceedings of the 5th EuroSim Congress on Modeling and Simulation, Paris, pp.6-10, 2004.
[14] Pulecchi, T., Casella, F., and Lovera, M., “A Modelica Library for Space Flight Dynamics,”
Proceedings of the 5th International Modelica Conference, Vienna, Austria, pp.107-116, 2006.
[15] Stevens, B., Lewis, L., Aircraft Control and Simulation, John Wiley & Sons, 2003.
[16] Park, E. and Park, B., “Geostationary Satellite Thruster Modeling,” Aerospace Engineering and Sciences, Vol.2, No.2, pp.96-104, 2003.
[17] Fortescue, P., Stark, J., and Swinerd, G., Spacecraft Systems Engineering, John Wiley & Sons, 2003.
저 자 소 개
진 재 현
1990년 한국항공대학교 항공기계공학 과 졸업. 1992년 한국과학기술원 항공 우주공학과 석사. 1997년 동 대학 박 사. 2006년~현재 순천대학교 우주항공 공학과 교수. 관심분야는 위성 자세제 어, 시스템 모델링 & 시뮬레이션 박 봉 규
1991년 부산대학교 기계설계공학과 졸 업. 1993년 한국과학기술원 항공우주 공학과 석사. 2004년 동 대학 박사.
1993년~현재 한국항공우주연구원 정지 궤도복합위성사업단 재직. 관심분야는 위성시스템 설계, 위성 궤도 역학 및 제어, 위성 관제 등