로켓 비행 시뮬레이터 및 강화학습과 지글러 니콜스 기법을 적용한 카나드핀 pid 제어

작성자 이종원
학과 또는 소속(회사명) 컴퓨터공학과
조회수 6
평가(좋아요)수 0
댓글수 0
✅프로젝트 소개✅

로켓과 미사일(이하 로켓) 설계 및 운용에서 로켓에 가해지는 외력의 영향을 최소화 하고 안정적으로 원하는 자세로 비행할 수 있도록 제작하는 것이 매우 중요하다. 로켓의 자세 제어를 통해 로켓 발사 과정에서의 안전을 확보하고 원하는 궤도 혹은 목표로 비행할 수 있다. 로켓의 자세 제어에는 대표적으로 카나드핀을 사용하거나 TVC(추력 벡터 제어)를 사용한다. (space x의 starship등의 로켓에서는 grid pin을 사용하기도 한다.) 본 프로젝트에서는 카나드핀을 사용한 로켓 자세 제어기를 효과적으로 설계할 수 있는 솔루션을 제공한다.

카나드핀이란 로켓의 몸체에 붙어있는 날개로 이 날개를 조정하여 로켓이 안정적으로 비행할 수 있도록 제어한다. 카나드핀을 적절하게 움직이는 제어 알고리즘으로 다양한 방법이 선택 될 수 있다. 산업 현장에서 제일 효과적이면서도 간단하게 사용되는 제어 알고리즘 중 하나로 PID 알고리즘을 이야기 할 수 있다. 내가 유지하고자 하는 목표 상태와 현재 상태와의 차이인 에러를 계산하고 그 에러에 상수를 곱한 값, 시간에 대해 미분하여 상수를 곱한값, 시간에 대해 적분하여 상수를 곱한 값을 합하여 제어값을 구할 수 있는 간단한 알고리즘이다.

PID 알고리즘은 매우 간단하게 구현 가능하지만 효과적이다. 하지만 제어 대상을 가장 효과적으로 제어 할 수 있는 상수 계수 3개(KP, KI, KD)를 구해 주어야 한다. 일반적으로 PID의 3개의 계수를 구하기 위해서는 여러번의 반복 실험을 통해 수작업으로 계수를 조정해주는 과정을 거쳐야 한다. 하지만 로켓과 같은 개발 비용이 천문학적으로 많이 드는 프로젝트에서 반복적으로 로켓을 발사해보며 최적의 PID 계수를 찾기란 현실적으로 쉽지 않다. 따라서 본 프로젝트에서는 로켓 엔진 연소에 따른 열역학적 변화, 공기의 흐림에 따른 유체역학적 변화, 엔진 추력, 중력, 로켓의 구조에 따른 물리적 성질 등을 종합적으로 고려하여 로켓 설계에 따른 비행 시뮬레이터를 제작하고 해당 시뮬레이터에 카나드 제어 기능을 탑재한 로켓을 시뮬레이션하여 최적의 PID 계수 3개를 실제 로켓 제작 및 발사 없이도 추정 할 수 있도록하는 솔루션을 제공한다. 또한 사람이 직접 감으로써 조정하던 PID 계수를 강화학습과 지글러-니콜스 방법을 함께 적용한 인공지능 모델이 자동으로 튜닝해줌으로써 시간과 비용을 획기적으로 아낄 수 있도록 돕는다. 또한 로켓 설계 값에 따른 비행 시뮬레이션 결과를 제공하기 때문에 로켓의 길이나 무게, 날개의 크기 등을 결정하고 디자인하는데에도 활용할 수 있다.

✅주요 기능✅

1. 로켓 설계의 각종 요소들을 입력으로 로켓의 비행을 시뮬레이션한다.

2. 카나드핀 제어를 위한 PID 제어기의 계수를 인공지능 모델이 자동으로 튜닝한다.



✅시뮬레이션 알고리즘✅

아래는 시뮬레이션을 위해 사용자가 입력해야 하는 파라메터이며 각 파라메터에 따라 로켓이 어떠한 비행 궤적을 그리는지를 비교해가며 적절한 로켓 설계를 수행 할 수 있다.

번호 매개변수
1 질량 중심
2 압력 중심
3 질량
4 관성 모멘트
5 초기 피치, 요 각도
6 공기 밀도
7 바람 속도
8 시간 간격
9 카나드 위치, 면적
10 카나드, 꼬리날개의 양력, 항력 계수 cfd 데이터
11 카나드 최대 각도
12 꼬리날개 위치, 면적
13 로켓 길이
14 연료 질량, 유량, 내경, 외경
15 엔진 추력 데이터
16 엔진 압력 데이터
17 Kp, Ki, Kd
18 로켓 외경
19 발사대 길이


시뮬레이션은 위 파라메터를 바탕으로 아래의 요소들을 계산한다.

1. 연료 연소에 따른 로켓의 질량 중심 및 관성 모멘트 변화

2. 각 카나드핀, 꼬리날개, 몸체에 진입하는 유체의 상대속도 벡터 및 aoa(angle of attack)

3. 유체의 상대속도 벡터 및 aoa에 따른 각 날개와 몸체가 받는 양력과 항력 계산

4. 로켓의 추력, 중력 및 양력, 항력을 종합적으로 계산한 알짜힘 계산

5. 로켓의 각 파트가 받는 토크 계산

6. 로켓의 시간에 따른 회전 및 병진 운동 계산

7. 로켓의 자세에 따른 PID 제어기의 출력 값 계산 및 카나드핀 상태 변화 계산

❗(위 계산을 수행하는데 사용한 좀 더 정확한 내용을 담은 논문이 현재 학회 학술지 논문 심사 과정에 있기에 공개된 링크로 논문 보고서를 올리기 난처한 상황입니다. 따라서 암호화된 pdf 링크를 하단에 함께 첨부하겠습니다. pdf 암호는 사업단에 직접 방문하여 말씀드리도록 하겠습니다.)❗

✅소프트웨어 신뢰도 검증✅
신뢰도 검증에 관한 내용은 하단 첨부된 블로그 링크를 참고 부탁드립니다.

✅강화학습을 통한 PID 튜닝✅
DQN 알고리즘을 이용하여 시뮬레이터를 환경으로 한 PID 튜닝 모델을 학습시켰다. 이때 단순히 강화학습만 사용하는 것이 아닌 고전적인 PID 튜닝 알고리즘은 지글러-니콜스 기법을 함께 적용하여 튜닝 성능을 획기적으로 높일 수 있었다. 이는 단순히 강화학습만 사용한다면 KP,KI,KD 세개를 튜닝하여야 하지만 지글러-니콜스 기법을 함께 사용하면 KP만 튜닝하면 KI,KD는 자동으로 결정 되므로 모델의 용량을 줄일 수 있다는 가정을 하였고 실제 실험 결과 단순히 강화학습만 사용했을 떄와 비교해 훨씬 효과적인 성능을 보였다.

✅프로젝트의 경제성 및 사업성✅
1. 로켓 및 미사일 산업 부분
기존의 로켓 및 미사일 산업에서 PID 계수를 튜닝하기 위해서는 소형 모델 로켓을 만들어 유체를 흘려보내는 방식의 물리적 실험 과정을 통해 튜닝을 진행하였다. 이는 시간도 오래 걸릴 뿐더러 실험 설비를 구축하는데 많은 비용이 들고 사람이 직접 감으로 튜닝을 하여야 했기에 사람에 따라 다른 튜닝 결과를 도출했다. 하지만 본 소프트웨어를 사용하면 짧은 시간내에 경제적으로 AI가 도출해준 최적의 PID 계수를 사용할 수 있기 때문에 최소한의 노력으로 미사일 제어기를 설계 할 수 있다.

2. 취미 용 모델 로켓 부분
국내에서는 마이너한 분야이지만 해외에서는 로켓 혹은 미사일의 소형 모사 버전인 모델 로켓을 제작하여 발사하는 취미를 가진 사람이 많으며 그 시장은 매년 성장하고 있다. 한 보고서에 따르면 모델 로켓 시장은 2023년 약 400억원 규모이며 2031년에는 560억원 규모로 성장할 것으로 예측했다. 모델 로켓을 개발하는데 있어 해당 소프트웨어는 로켓의 재원 설계에 큰 도움을 주는 레퍼런스로써의 역할을 수행할 수 있을 것으로 기대된다.


✅블로그 링크에 관하여✅
앞서 말씀드렸듯 현재 해당 프로젝트와 관련한 논문이 학회지에 심사중이기 때문에 블로그에도 암호를 걸어 두었습니다. ❗블로그 암호는 KHUSW❗입니다.

❗블로그에서 소프트웨어 시연 영상을 확인 할 수 있습니다.❗

✅논문 첨부 링크(PDF 암호는 사업단에 직접 방문하여 알려드리겠습니다.)✅
https://drive.google.com/file/d/1W42sdcS8QbJyhYEhKJG_wLhJLkRD0fXC/view?usp=sharing

로켓 비행 시뮬레이터 및 강화학습과 지글러 니콜스 기법을 적용한 카나드핀 pid 제어

조회수 6
평가(좋아요)수 0
댓글수 0
게시 : 2024년 11월 19일
이종원 컴퓨터공학과

로켓 비행 시뮬레이터 및 강화학습과 지글러 니콜스 기법을 적용한 카나드핀 pid 제어

조회수 6
평가(좋아요)수 0
댓글수 0
게시 : 2024-11-19

Member

이종원, 김병규

Keyword

로켓, 미사일, 비행 시뮬레이션, 강화학습, PID 제어, 아두이노

  • 모바일/IoT
  • 기타