📄 hifi_f16_aerodata.c
字号:
double _Cy_a20(double alpha, double beta){ static int flag = 0; static double *DATA = (double*) NULL; static double **X; static ND_INFO ndinfo ; FILE *fp; double data; int i,FILESIZE; int nDimension = 2; double x[2]; FILESIZE = 380; /* Initialise everything when this function is called for the first time */ if(flag==0){ flag = 1; /* Set to FILE_READ_TAG */ DATA = (double*) malloc(FILESIZE*sizeof(double)); ndinfo.nDimension = nDimension; ndinfo.nPoints = intVector(nDimension); ndinfo.nPoints[0] = 20; ndinfo.nPoints[1] = 19; X = (double **) malloc(nDimension*sizeof(double*)); X[0] = getALPHA1(); X[1] = getBETA1(); fp = fopen("CY0620_ALPHA1_BETA1_403.dat","r"); if(fp==(FILE*) NULL) mexErrMsgTxt("Cannot find file CY0620_ALPHA1_BETA1_403.dat in current directory"); for(i=0;i<FILESIZE;i++){ fscanf(fp,"%lf",&data); DATA[i] = data; } fclose(fp); } x[0] = alpha; x[1] = beta; return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _Cy_a20_lef(double alpha, double beta){ static int flag = 0; static double *DATA = (double*) NULL; static double **X; static ND_INFO ndinfo ; FILE *fp; double data; int i,FILESIZE; int nDimension = 2; double x[2]; FILESIZE = 266; /* Initialise everything when this function is called for the first time */ if(flag==0){ flag = 1; /* Set to FILE_READ_TAG */ DATA = (double*) malloc(FILESIZE*sizeof(double)); ndinfo.nDimension = nDimension; ndinfo.nPoints = intVector(nDimension); ndinfo.nPoints[0] = 14; ndinfo.nPoints[1] = 19; X = (double **) malloc(nDimension*sizeof(double*)); X[0] = getALPHA2(); X[1] = getBETA1(); fp = fopen("CY0920_ALPHA2_BETA1_404.dat","r"); if(fp==(FILE*) NULL) mexErrMsgTxt("Cannot find file CY0920_ALPHA2_BETA1_404.dat in current directory"); for(i=0;i<FILESIZE;i++){ fscanf(fp,"%lf",&data); DATA[i] = data; } fclose(fp); } x[0] = alpha; x[1] = beta; return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _Cn_a20(double alpha, double beta){ static int flag = 0; static double *DATA = (double*) NULL; static double **X; static ND_INFO ndinfo ; FILE *fp; double data; int i,FILESIZE; int nDimension = 2; double x[2]; FILESIZE = 380; /* Initialise everything when this function is called for the first time */ if(flag==0){ flag = 1; /* Set to FILE_READ_TAG */ DATA = (double*) malloc(FILESIZE*sizeof(double)); ndinfo.nDimension = nDimension; ndinfo.nPoints = intVector(nDimension); ndinfo.nPoints[0] = 20; ndinfo.nPoints[1] = 19; X = (double **) malloc(nDimension*sizeof(double*)); X[0] = getALPHA1(); X[1] = getBETA1(); fp = fopen("CN0620_ALPHA1_BETA1_504.dat","r"); if(fp==(FILE*) NULL) mexErrMsgTxt("Cannot find file CN0620_ALPHA1_BETA1_504.dat in current directory"); for(i=0;i<FILESIZE;i++){ fscanf(fp,"%lf",&data); DATA[i] = data; } fclose(fp); } x[0] = alpha; x[1] = beta; return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _Cn_a20_lef(double alpha, double beta){ static int flag = 0; static double *DATA = (double*) NULL; static double **X; static ND_INFO ndinfo ; FILE *fp; double data; int i,FILESIZE; int nDimension = 2; double x[2]; FILESIZE = 266; /* Initialise everything when this function is called for the first time */ if(flag==0){ flag = 1; /* Set to FILE_READ_TAG */ DATA = (double*) malloc(FILESIZE*sizeof(double)); ndinfo.nDimension = nDimension; ndinfo.nPoints = intVector(nDimension); ndinfo.nPoints[0] = 14; ndinfo.nPoints[1] = 19; X = (double **) malloc(nDimension*sizeof(double*)); X[0] = getALPHA2(); X[1] = getBETA1(); fp = fopen("CN0920_ALPHA2_BETA1_505.dat","r"); if(fp==(FILE*) NULL) mexErrMsgTxt("Cannot find file CN0920_ALPHA2_BETA1_505.dat in current directory"); for(i=0;i<FILESIZE;i++){ fscanf(fp,"%lf",&data); DATA[i] = data; } fclose(fp); } x[0] = alpha; x[1] = beta; return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _Cl_a20(double alpha, double beta){ static int flag = 0; static double *DATA = (double*) NULL; static double **X; static ND_INFO ndinfo ; FILE *fp; double data; int i,FILESIZE; int nDimension = 2; double x[2]; FILESIZE = 380; /* Initialise everything when this function is called for the first time */ if(flag==0){ flag = 1; /* Set to FILE_READ_TAG */ DATA = (double*) malloc(FILESIZE*sizeof(double)); ndinfo.nDimension = nDimension; ndinfo.nPoints = intVector(nDimension); ndinfo.nPoints[0] = 20; ndinfo.nPoints[1] = 19; X = (double **) malloc(nDimension*sizeof(double*)); X[0] = getALPHA1(); X[1] = getBETA1(); fp = fopen("CL0620_ALPHA1_BETA1_604.dat","r"); if(fp==(FILE*) NULL) mexErrMsgTxt("Cannot find file CL0620_ALPHA1_BETA1_604.dat in current directory"); for(i=0;i<FILESIZE;i++){ fscanf(fp,"%lf",&data); DATA[i] = data; } fclose(fp); } x[0] = alpha; x[1] = beta; return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _Cl_a20_lef(double alpha, double beta){ static int flag = 0; static double *DATA = (double*) NULL; static double **X; static ND_INFO ndinfo ; FILE *fp; double data; int i,FILESIZE; int nDimension = 2; double x[2]; FILESIZE = 266; /* Initialise everything when this function is called for the first time */ if(flag==0){ flag = 1; /* Set to FILE_READ_TAG */ DATA = (double*) malloc(FILESIZE*sizeof(double)); ndinfo.nDimension = nDimension; ndinfo.nPoints = intVector(nDimension); ndinfo.nPoints[0] = 14; ndinfo.nPoints[1] = 19; X = (double **) malloc(nDimension*sizeof(double*)); X[0] = getALPHA2(); X[1] = getBETA1(); fp = fopen("CL0920_ALPHA2_BETA1_605.dat","r"); if(fp==(FILE*) NULL) mexErrMsgTxt("Cannot find file CL0920_ALPHA2_BETA1_605.dat in current directory"); for(i=0;i<FILESIZE;i++){ fscanf(fp,"%lf",&data); DATA[i] = data; } fclose(fp); } x[0] = alpha; x[1] = beta; return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _delta_CNbeta(double alpha){ static int flag = 0; static double *DATA = (double*) NULL; static double **X; static ND_INFO ndinfo ; FILE *fp; double data; int i,FILESIZE; int nDimension = 1; double x[1]; FILESIZE = 20; /* Initialise everything when this function is called for the first time */ if(flag==0){ flag = 1; /* Set to FILE_READ_TAG */ DATA = (double*) malloc(FILESIZE*sizeof(double)); ndinfo.nDimension = nDimension; ndinfo.nPoints = intVector(nDimension); ndinfo.nPoints[0] = 20; X = (double **) malloc(nDimension*sizeof(double*)); X[0] = getALPHA1(); fp = fopen("CN9999_ALPHA1_brett.dat","r"); if(fp==(FILE*) NULL) mexErrMsgTxt("Cannot find file CN9999_ALPHA1_brett.dat in current directory"); for(i=0;i<FILESIZE;i++){ fscanf(fp,"%lf",&data); DATA[i] = data; } fclose(fp); } x[0] = alpha; return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _delta_CLbeta(double alpha){ static int flag = 0; static double *DATA = (double*) NULL; static double **X; static ND_INFO ndinfo ; FILE *fp; double data; int i,FILESIZE; int nDimension = 1; double x[1]; FILESIZE = 20; /* Initialise everything when this function is called for the first time */ if(flag==0){ flag = 1; /* Set to FILE_READ_TAG */ DATA = (double*) malloc(FILESIZE*sizeof(double)); ndinfo.nDimension = nDimension; ndinfo.nPoints = intVector(nDimension); ndinfo.nPoints[0] = 20; X = (double **) malloc(nDimension*sizeof(double*)); X[0] = getALPHA1(); fp = fopen("CL9999_ALPHA1_brett.dat","r"); if(fp==(FILE*) NULL) mexErrMsgTxt("Cannot find file CL9999_ALPHA1_brett.dat in current directory"); for(i=0;i<FILESIZE;i++){ fscanf(fp,"%lf",&data); DATA[i] = data; } fclose(fp); } x[0] = alpha; return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _delta_Cm(double alpha){ static int flag = 0; static double *DATA = (double*) NULL; static double **X; static ND_INFO ndinfo ; FILE *fp; double data; int i,FILESIZE; int nDimension = 1; double x[1]; FILESIZE = 20; /* Initialise everything when this function is called for the first time */ if(flag==0){ flag = 1; /* Set to FILE_READ_TAG */ DATA = (double*) malloc(FILESIZE*sizeof(double)); ndinfo.nDimension = nDimension; ndinfo.nPoints = intVector(nDimension); ndinfo.nPoints[0] = 20; X = (double **) malloc(nDimension*sizeof(double*)); X[0] = getALPHA1(); fp = fopen("CM9999_ALPHA1_brett.dat","r"); if(fp==(FILE*) NULL) mexErrMsgTxt("Cannot find file CM9999_ALPHA1_brett.dat in current directory"); for(i=0;i<FILESIZE;i++){ fscanf(fp,"%lf",&data); DATA[i] = data; } fclose(fp); } x[0] = alpha; return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _eta_el(double el){ static int flag = 0; static double *DATA = (double*) NULL; static double **X; static ND_INFO ndinfo ; FILE *fp; double data; int i,FILESIZE; int nDimension = 1; double x[1]; FILESIZE = 5; /* Initialise everything when this function is called for the first time */ if(flag==0){ flag = 1; /* Set to FILE_READ_TAG */ DATA = (double*) malloc(FILESIZE*sizeof(double)); ndinfo.nDimension = nDimension; ndinfo.nPoints = intVector(nDimension); ndinfo.nPoints[0] = 5; X = (double **) malloc(nDimension*sizeof(double*)); X[0] = getDH1(); fp = fopen("ETA_DH1_brett.dat","r"); if(fp==(FILE*) NULL) mexErrMsgTxt("Cannot find file ETA_DH1_brett.dat in current directory"); for(i=0;i<FILESIZE;i++){ fscanf(fp,"%lf",&data); DATA[i] = data; } fclose(fp); } x[0] = el; return (interpn(X,DATA,x,ndinfo));}/* End of function(...) *//*double _delta_Cm_ds(double alpha, double el){..............................} End of function(...) */void hifi_C(double alpha,double beta,double el,double *retVal){ retVal[0] = _Cx(alpha,beta,el); retVal[1] = _Cz(alpha,beta,el); retVal[2] = _Cm(alpha,beta,el); retVal[3] = _Cy(alpha,beta); retVal[4] = _Cn(alpha,beta,el); retVal[5] = _Cl(alpha,beta,el);}void hifi_damping(double alpha, double *retVal){ retVal[0] = _CXq(alpha); retVal[1] = _CYr(alpha); retVal[2] = _CYp(alpha); retVal[3] = _CZq(alpha); retVal[4] = _CLr(alpha); retVal[5] = _CLp(alpha); retVal[6] = _CMq(alpha); retVal[7] = _CNr(alpha); retVal[8] = _CNp(alpha);}void hifi_C_lef(double alpha,double beta, double *retVal){ retVal[0] = _Cx_lef(alpha,beta) - _Cx(alpha,beta,0); retVal[1] = _Cz_lef(alpha,beta) - _Cz(alpha,beta,0); retVal[2] = _Cm_lef(alpha,beta) - _Cm(alpha,beta,0); retVal[3] = _Cy_lef(alpha,beta) - _Cy(alpha,beta); retVal[4] = _Cn_lef(alpha,beta) - _Cn(alpha,beta,0); retVal[5] = _Cl_lef(alpha,beta) - _Cl(alpha,beta,0);}void hifi_damping_lef(double alpha, double *retVal){ retVal[0] = _delta_CXq_lef(alpha); retVal[1] = _delta_CYr_lef(alpha); retVal[2] = _delta_CYp_lef(alpha); retVal[3] = _delta_CZq_lef(alpha); retVal[4] = _delta_CLr_lef(alpha); retVal[5] = _delta_CLp_lef(alpha); retVal[6] = _delta_CMq_lef(alpha); retVal[7] = _delta_CNr_lef(alpha); retVal[8] = _delta_CNp_lef(alpha);}void hifi_rudder(double alpha, double beta, double *retVal){ retVal[0] = _Cy_r30(alpha,beta) - _Cy(alpha,beta); retVal[1] = _Cn_r30(alpha,beta) - _Cn(alpha,beta,0); retVal[2] = _Cl_r30(alpha,beta) - _Cl(alpha,beta,0);}void hifi_ailerons(double alpha, double beta, double *retVal){ retVal[0] = _Cy_a20(alpha,beta) - _Cy(alpha,beta); retVal[1] = _Cy_a20_lef(alpha,beta) - _Cy_lef(alpha,beta) - retVal[0]; retVal[2] = _Cn_a20(alpha,beta) - _Cn(alpha,beta,0); retVal[3] = _Cn_a20_lef(alpha,beta) - _Cn_lef(alpha,beta) - retVal[2]; retVal[4] = _Cl_a20(alpha,beta) - _Cl(alpha,beta,0); retVal[5] = _Cl_a20_lef(alpha,beta) - _Cl_lef(alpha,beta) - retVal[4];}void hifi_other_coeffs(double alpha, double el, double *retVal){ retVal[0] = _delta_CNbeta(alpha); retVal[1] = _delta_CLbeta(alpha); retVal[2] = _delta_Cm(alpha); retVal[3] = _eta_el(el); retVal[4] = 0; /* ignore deep-stall regime, delta_Cm_ds = 0 */}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -