주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

Digital DATCOM 데이터

Digital DATCOM 데이터 개요

미국 공군(USAF) Digital DATCOM 파일을 MATLAB® 환경으로 가져오려면 datcomimport 함수를 사용하세요. 자세한 내용은 datcomimport 함수 참조 페이지를 참조하세요. 이 주제에서는 USAF Digital DATCOM 파일에서 가져오기 예제를 사용하여 USAF Digital DATCOM 파일에서 데이터를 가져오는 방법을 설명합니다.

USAF Digital DATCOM 파일

Aerospace Toolbox는 5개의 알파, 2개의 마하 수, 2개의 고도를 포함하는 날개-몸체-수평 꼬리-수직 꼬리 구성을 위한 USAF Digital DATCOM용 샘플 입력 파일인 astdatcom.in를 제공합니다. 정적 및 동적 미분을 계산합니다.

 $FLTCON NMACH=2.0,MACH(1)=0.1,0.2$
 $FLTCON NALT=2.0,ALT(1)=5000.0,8000.0$   
 $FLTCON NALPHA=5.,ALSCHD(1)=-2.0,0.0,2.0,    
  ALSCHD(4)=4.0,8.0,LOOP=2.0$
 $OPTINS SREF=225.8,CBARR=5.75,BLREF=41.15$  
 $SYNTHS XCG=7.08,ZCG=0.0,XW=6.1,ZW=-1.4,ALIW=1.1,XH=20.2,
   ZH=0.4,ALIH=0.0,XV=21.3,ZV=0.0,VERTUP=.TRUE.$ 
 $BODY NX=10.0,                          
   X(1)=-4.9,0.0,3.0,6.1,9.1,13.3,20.2,23.5,25.9,   
   R(1)=0.0,1.0,1.75,2.6,2.6,2.6,2.0,1.0,0.0$     
 $WGPLNF CHRDTP=4.0,SSPNE=18.7,SSPN=20.6,CHRDR=7.2,SAVSI=0.0,CHSTAT=0.25,   
   TWISTA=-1.1,SSPNDD=0.0,DHDADI=3.0,DHDADO=3.0,TYPE=1.0$   
NACA-W-6-64A412
 $HTPLNF CHRDTP=2.3,SSPNE=5.7,SSPN=6.625,CHRDR=0.25,SAVSI=11.0,  
   CHSTAT=1.0,TWISTA=0.0,TYPE=1.0$   
NACA-H-4-0012
 $VTPLNF CHRDTP=2.7,SSPNE=5.0,SSPN=5.2,CHRDR=5.3,SAVSI=31.3,  
   CHSTAT=0.25,TWISTA=0.0,TYPE=1.0$  
NACA-V-4-0012
CASEID SKYHOGG BODY-WING-HORIZONTAL TAIL-VERTICAL TAIL CONFIG 
DAMP
NEXT CASE

5개의 알파, 2개의 마하 수, 2개의 고도를 사용하여 동일한 날개-몸체-수평 꼬리-수직 꼬리 구성에 대해 USAF Digital DATCOM에서 생성된 출력 파일을 보려면 type astdatcom.out를 MATLAB 명령 창에서 실행하세요.

DATCOM 파일의 데이터

MATLAB 환경으로 Digital DATCOM 데이터를 가져오려면 datcomimport 함수를 사용하세요.

alldata = datcomimport('astdatcom.out', true, 0);

가져온 DATCOM 데이터

datcomimport 함수는 Digital DATCOM 출력 파일의 데이터를 포함하는 구조의 셀형 배열을 생성합니다.

data = alldata{1}
data = 
 struct with fields:

        case: 'SKYHOGG BODY-WING-HORIZONTAL TAIL-VERTICAL TAIL CONFIG'
        mach: [0.1000 0.2000]
         alt: [5000 8000]
       alpha: [-2 0 2 4 8]
       nmach: 2
        nalt: 2
      nalpha: 5
       rnnub: []
      hypers: 0
        loop: 2
        sref: 225.8000
        cbar: 5.7500
       blref: 41.1500
         dim: 'ft'
       deriv: 'deg'
      stmach: 0.6000
      tsmach: 1.4000
        save: 0
       stype: []
        trim: 0
        damp: 1
       build: 1
        part: 0
     highsym: 0
     highasy: 0
     highcon: 0
        tjet: 0
      hypeff: 0
          lb: 0
         pwr: 0
        grnd: 0
       wsspn: 18.7000
       hsspn: 5.7000
      ndelta: 0
       delta: []
      deltal: []
      deltar: []
         ngh: 0
      grndht: []
      config: [1x1 struct]
          cd: [5x2x2 double]
          cl: [5x2x2 double]
          cm: [5x2x2 double]
          cn: [5x2x2 double]
          ca: [5x2x2 double]
         xcp: [5x2x2 double]
         cla: [5x2x2 double]
         cma: [5x2x2 double]
         cyb: [5x2x2 double]
         cnb: [5x2x2 double]
         clb: [5x2x2 double]
       qqinf: [5x2x2 double]
         eps: [5x2x2 double]
    depsdalp: [5x2x2 double]
         clq: [5x2x2 double]
         cmq: [5x2x2 double]
        clad: [5x2x2 double]
        cmad: [5x2x2 double]
         clp: [5x2x2 double]
         cyp: [5x2x2 double]
         cnp: [5x2x2 double]
         cnr: [5x2x2 double]
         clr: [5x2x2 double]

누락된 DATCOM 데이터

기본적으로 이 함수는 누락된 데이터 포인트를 99999로 설정합니다. DATCOM 메서드가 없거나 해당 메서드를 적용할 수 없는 경우 데이터 포인트를 NaN으로 설정합니다.

Digital DATCOM 출력 파일에서 가져온 데이터를 검토하면 CYβ, Cnβ, CLq, Cmq가 첫 번째 알파 값에만 데이터를 가지고 있는 것을 볼 수 있습니다. 가져온 데이터 값은 다음과 같습니다.

data.cyb
ans(:,:,1) =

  1.0e+004 *

   -0.0000   -0.0000
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999


ans(:,:,2) =

  1.0e+004 *

   -0.0000   -0.0000
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999

data.cnb
ans(:,:,1) =

  1.0e+004 *

    0.0000    0.0000
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999


ans(:,:,2) =

  1.0e+004 *

    0.0000    0.0000
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999

data.clq
ans(:,:,1) =

  1.0e+004 *

    0.0000    0.0000
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999


ans(:,:,2) =

  1.0e+004 *

    0.0000    0.0000
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999

data.cmq
ans(:,:,1) =

  1.0e+004 *

   -0.0000   -0.0000
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999


ans(:,:,2) =

  1.0e+004 *

   -0.0000   -0.0000
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999
    9.9999    9.9999

누락된 데이터 포인트는 첫 번째 알파 값으로 채워집니다. 이 데이터 포인트는 모든 알파 값에 사용되도록 되어 있기 때문입니다.

aerotab = {'cyb' 'cnb' 'clq' 'cmq'};

for k = 1:length(aerotab)
    for m = 1:data.nmach
        for h = 1:data.nalt
            data.(aerotab{k})(:,m,h) = data.(aerotab{k})(1,m,h);
        end
    end
end

업데이트된 가져온 데이터 값은 다음과 같습니다.

data.cyb
ans(:,:,1) =

   -0.0035   -0.0035
   -0.0035   -0.0035
   -0.0035   -0.0035
   -0.0035   -0.0035
   -0.0035   -0.0035


ans(:,:,2) =

   -0.0035   -0.0035
   -0.0035   -0.0035
   -0.0035   -0.0035
   -0.0035   -0.0035
   -0.0035   -0.0035

data.cnb
ans(:,:,1) =

  1.0e-003 *

    0.9142    0.8781
    0.9142    0.8781
    0.9142    0.8781
    0.9142    0.8781
    0.9142    0.8781


ans(:,:,2) =

  1.0e-003 *

    0.9190    0.8829
    0.9190    0.8829
    0.9190    0.8829
    0.9190    0.8829
    0.9190    0.8829

data.clq
ans(:,:,1) =

    0.0974    0.0984
    0.0974    0.0984
    0.0974    0.0984
    0.0974    0.0984
    0.0974    0.0984


ans(:,:,2) =

    0.0974    0.0984
    0.0974    0.0984
    0.0974    0.0984
    0.0974    0.0984
    0.0974    0.0984

data.cmq
ans(:,:,1) =

   -0.0892   -0.0899
   -0.0892   -0.0899
   -0.0892   -0.0899
   -0.0892   -0.0899
   -0.0892   -0.0899


ans(:,:,2) =

   -0.0892   -0.0899
   -0.0892   -0.0899
   -0.0892   -0.0899
   -0.0892   -0.0899
   -0.0892   -0.0899

공기역학 계수

이제 공기역학 계수를 표시할 수 있습니다.

리프트 곡선 모멘트 플로팅

h1 = figure;
figtitle = {'Lift Curve' ''};
for k=1:2
    subplot(2,1,k)
    plot(data.alpha,permute(data.cl(:,k,:),[1 3 2]))
    grid
    ylabel(['Lift Coefficient (Mach =' num2str(data.mach(k)) ')'])
    title(figtitle{k});
end
xlabel('Angle of Attack (deg)')

Figure window reflecting plot of lift curve moments.

항력 극성 모멘트 플로팅

h2 = figure;
figtitle = {'Drag Polar' ''};
for k=1:2
    subplot(2,1,k)
    plot(permute(data.cd(:,k,:),[1 3 2]),permute(data.cl(:,k,:),[1 3 2]))
    grid
    ylabel(['Lift Coefficient (Mach =' num2str(data.mach(k)) ')'])
    title(figtitle{k})
end
xlabel('Drag Coefficient')

Figure window reflecting plot of drag polar moments.

피칭 모멘트 플로팅

h3 = figure;
figtitle = {'Pitching Moment' ''};
for k=1:2
    subplot(2,1,k)
    plot(permute(data.cm(:,k,:),[1 3 2]),permute(data.cl(:,k,:),[1 3 2]))
    grid
    ylabel(['Lift Coefficient (Mach =' num2str(data.mach(k)) ')'])
    title(figtitle{k})
end
xlabel('Pitching Moment Coefficient')

Figure window reflecting plot of pitch moments.

참고 항목

도움말 항목