이전에 DATCOM에 관한 글을 써놓고 예시를 안 적은 것 같아서
내가 만든 코드의 예시를 보여주고자 한다. (도움이 되실지는 모르겠지만..)
그리고 그 .INP 파일로 DATCOM을 돌렸을 때 나오는 결과(.out 파일)도 보여주도록 한다. 다만 .out 파일은 엄청 길기 때문에 핵심적인 부분만 올린다.
1. INP 파일 예시
아래 코드는 .INP 파일의 예시이다.
DAMP
DERIV RAD
DIM M
CASEID Project-BODY
$FLTCON NMACH = 1.0, MACH(1)=0.03, NALPHA = 20.0,
ALSCHD(1) = -2.0, -1.0, 0.0, 1.0, 2.0, 3.0, 4.0, 5.0,
6.0, 7.0, 8.0, 9.0, 10.0, 12.0, 14.0, 16.0,
18.0, 19.0, 20.0, 25.0,
WT = 10.682, NALT=1.0, ALT(1)=0.0,
RNNUB=2.00E5, LOOP=1.0$
$OPTINS SREF=0.100, CBARR=0.180, BLREF=0.445$
$SYNTHS XCG=0.245874, ZCG=-0.012666, XW=0.200, ZW=0.0, ALIW=0.0,
ZH=-0.020, XH=0.700, ALIH=-0.050, ZV=-0.020, XV=0.700$
$BODY NX=7.0,
X(1)=0.0,0.050,0.150,0.290,0.480,0.815,0.820,
S(1)=0.0,0.000452,0.002827,0.001689,0.001256,0.000314,0.000023,0.00001$
$WGPLNF CHRDTP=0.180, CHRDR=0.180, DHDADI=0.0, TYPE=1.0,
SSPN=0.505, SSPNE=0.445, SAVSI=0.0, CHSTAT=0.25$
$ASYFLP STYPE=4.0, NDELTA=9.0,
DELTAL(1)=0.0,1.0,3.0,5.0,8.0,10.0,15.0,20.0,25.0,
DELTAR(1)=0.0,-1.0,-3.0,-5.0,-8.0,-10.0,-15.0,-20.0,-25.0,
CHRDFI=0.04, CHRDFO=0.04, SPANFI=0.185, SPANFO=0.505$
$SYMFLP FTYPE=1.0, NTYPE=1.0, NDELTA=9.0,
DELTA(1)=-20.0,-10.0,-5.0,-1.0,0.0,1.0,5.0,10.0,20.0,
CHRDFI=0.020, CHRDFO=0.020, SPANFI=0.0001, SPANFO=0.090$
$HTPLNF CHRDTP= 4.0, CHRDR=12.0, DHDADI=0.0, TYPE=1.0,
SSPN=0.090, SSPNE=0.089, SAVSI=0.416, CHSTAT = 0.0$
$VTPLNF CHRDTP= 3.5, CHRDR=12.0, DHDADI=0.0, TYPE=1.0,
SSPN=0.120, SSPNE=0.119, SAVSI=0.353, CHSTAT = 0.0$
NACA-W-4-2412
NACA-H-4-0006
NACA-V-4-0006
NEXT CASE
개별 코드의 의미는 이전 글을 참고하면 좋을 것이다.
2. DATCOM을 FORTRAN으로 컴파일하기
위와 같이 .INP 파일을 만들어서 datcom을 돌리는데, 이 때는 FORTRAN에서 프로그램을 컴파일하는 방법을 알아야한다.
Digital datcom을 다운받으면 datcom.f 을 가지게 되는데 이 파일을 컴파일해서 .exe 파일로 만들어야 한다.
c코딩을 해보신 분들은 알겠지만 프로그램을 코딩하고 실행할 수 있게 만든게 exe파일이다.
포트란에서 컴파일하는 방법도 포스팅해놓았으니 참고하시고, 사실 datcom 파일에도 read me.txt에 나와있다.
To compile this program for your machine, use the command
gfortran datcom.f -o datcom.exe
이 말을 참고해서 컴파일하고, DATCOM.exe를 실행해보면 다음과 같이 나온다.
위 그림과 같이 input file name을 입력하라고 나온다. 내가 만든 .INP 파일 이름을 입력해주면 된다.
3. OUT 파일 확인하기
그러면 .out으로 나오는데 이 파일을 열어보시면 설정에 따라서 꽤 긴 파일이 나올 수도 있다.
참고로 .INP 파일은 어떻게 작성하고 .out 파일을 어떻게 열어야하는지 곤란할 수 있다. (딱히 열어주는 프로그램도 없다.)
나의 경우에는 atom이라는 코드 편집기에서 그냥 열었다. 어차피 txt파일과 별반 차이가 없어서 보기 편한 편집기에서 연 것 뿐이다. 다른 편집기를 쓰고 있으면 거기서 열어도 무방하다.
컴파일한 결과는 다음과 같다.
이런 표가 많이 나오는데 내가 코드를 잘못 작성한 경우에는 .out 코드를 잘 읽어보면 에러가 떴다고 알려줄 것이다.
제대로 된 결과가 안 보인다면 어떤 에러가 있는지도 살펴보자. (정확히 어떤 에러가 있는지 알려주는지는 기억이 안 난다.)
MATLAB에서는 이런 DATCOM의 output 파일을 읽어들이는 함수도 있는데 내가 썼을 때는 신통치 않았던 걸로 기억한다. 혹시 잘 작동한 걸 확인해보신 분이 있으면 알려주셨으면 좋겠다.
사실 이렇게 DATCOM을 돌리고 알게 된 것은, 이 비행기 결과에는 러더를 포함시킬 수 없다는 사실이었다.
DATCOM의 낡은 문서를 뒤적거려도 러더에 대한 내용은 찾을 수 없던 걸로 기억한다. 이 부분에 유념하며 사용하면 좋을 것이다.
'기타 > 설계 프로젝트 System Design' 카테고리의 다른 글
[프로젝트] Pixhawk 사에서 쓰는 controller 분석 (1) (0) | 2022.11.14 |
---|---|
[프로젝트] 솔리드웍스 파일(SLDASM)을 Obj 파일로 변환하기 (0) | 2022.08.29 |
[시뮬레이션] Flight Gear 사용법 (2) MATLAB과 연동 (2) | 2022.02.08 |
[시뮬레이션] Flight gear 사용법 (1) 기본 설치 및 간단한 것들 (0) | 2022.02.06 |
[프로젝트] Iterative Design Process (0) | 2021.01.19 |