우탐모 우주선이 어떤 식으로 동작하는지 알아보기 위해 코드를 뜯어보던중 흥미로운 부분이 눈에 들어왔음




우주선의 속도 계산은 이런 식으로 이루어짐


efficiency(엔진 배치 보너스)는 이렇게 발사할 때 뜨는 값이고 뒤가 막혀있지 않은 구조라면 100%=1.0 임


thrust는 엔진 별로 발생 시킬 수 있는 추력이고, 이온 엔진의 경우 저 값은 50임


energy/max_energy는 엔진이 받고 있는 전력량임

전력 공급이 충분하지 않다면 전력량이 100%를 달성하지 못할 거고 이럴 때는 그에 비례해서 가속력이 줄어들게 됨


minimum_mass(100)+integrity_stress는 우주선의 하중임

integrity_stesss는 선체 하중과 보관소 하중 중에 무거운 쪽을 사용함


speed_taper(150)는 속도가 빨라질수록 추가 가속도에 제한을 거는 용도임

만약 현재 speed가 0이라면 speed_taper/(speed_taper+speed) = 150/(150+0) = 1.0이겠지만

현재 speed가 150이라면 150/(150+150) = 0.5가 되어 받는 가속이 절반이 됨


time_passed는 20임

저 스피드 연산을 20틱에 한번 하기 때문에 그걸 보정하기 위해 20을 곱해주게 됨



만약 설계한 우주선 상태가 아래와 같을 경우


엔진배치보너스 = 100% = 1.0

이온엔진 2기=추력 100

전력량 = 100% = 1.0

보관소하중=선체하중=200

현재속도 = 150


이 때 20틱이 지난 다음의 속도는

1 * (100) * 1 / (100+200) * 150/(150+150) * 20 = 20/6 = 3.3333

속도 3.3333이 늘어서 153.3333이 된다


엔진의 가속을 계산한 다음 공?기 저항에 의한 감속도 계산을 하긴 해야 하지만 일단 이 글에서 말하고 싶은건 가속에 관한거라서 다음에 말하는 걸로 하고


중요한 건 저 연산을 20틱에 한번만 수행한다는 것이다




여기서 든 생각


이온 엔진은 한 기당 전기를 10MW나 빨아 먹는데 그렇다면 20틱중 1틱만 전기를 공급하고 19틱은 전기를 끊어버리면 어떻게 될까?






간단하게 회로를 만들었음

왼쪽 조합기는 0~19 순환하는 카운터고

그 출력은 오른쪽 조합기로 들어가는데 저 조합기는 신호 값이 12(이 값은 조율해야함) 일 때만 신호1을 출력하고

그 신호는전원 스위치로 들어가서 신호 값이 1일 때만 전원 스위치가 작동하도록 되어있음

전원 스위치는 20틱 중 단 1틱만 연결되어서 전기가 엔진까지 흘러갈 수 있도록 한다


세밀한 제어를 하기위해서 부속 전신주를 사용하였음








엔진을 20틱마다 단 한번씩 동작을 하게 해야 하는데 이게 모드 스크립트에서 엔진 가동 여부를 확인하는 타이밍과 동일한 타이밍에 이루어져야하기 때문에

조합기 설정 값을 틱 단위로 조절하여 정확한 타이밍에 엔진이 동작하게 해야 함

그렇지 않으면 엔진이깜빡거리긴 하지만 스크립트는 계속 엔진이 꺼져있는 것으로 판정하기 때문에 가속을 받지 못한다


위 움짤에서는 그 값이 12인거고, 12로 설정하자마자 우주선이 점점 가속하는 것을 볼 수 있었음



전력 그래프

엔진이 1초에 3번씩 틱틱 대는걸 볼 수 있고

평균 전력이 1MW 정도인 것을 볼 수 있음

현재 이온엔진이 2기라서 원래는 20MW는 소모되어야 하는데 1/20 값인 1MW만 나오는 것



정상적으로 주행한다면이렇게 20MW가 나와야 한다



실험에 사용한 우주선은 포엔스트라에서 주워온 나퀴움 축전기 5개가 설치 되어있는데

250MJ*5= 1.25GJ의 전력량이 있으면 이렇게 꼼수를 써서 1MW로 주행할 경우 추가 전력원 없이도 1000초 이상을 주행을 할 수 있게 된다

정상 전력인 20MW로 주행한다면 1분만 주행해도 방전이 날테지만


물론 전력 측면에서 뿐만 아니라 연료 측면에서 봐도 연료 사용량 또한 1/20로 줄어들기 때문에

전기 덜 먹는 로켓 엔진이나 반물질 엔진을 사용할 때도 이득을 볼 수 있게 됨



혹시나 해서 해본건데 진짜 먹혀들여서 꽤 재미있는 실험이였음ㅋㅋ

우주선 연산에 사용하는 UPS의 소모를 줄이기 위해 20틱마다 연산하는 점을 악용 한건데 그냥 이런게 된다~정도로만 재미로 보고 실제로는 제대로 타고 다니자 ㅋㅋ