⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hifi_f16_aerodata.c

📁 基于Matlab2007的美军F16战斗机的非线性模型
💻 C
📖 第 1 页 / 共 4 页
字号:
		X[0] = getALPHA2();		X[1] = getBETA1();		fp = fopen("aerodata/f16CY_da20lef.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16CY_da20lef.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;	x[1] = beta_in;    return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _Cn_a20(double alpha_in, double beta_in){	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("aerodata/f16Cn_da20.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16Cn_da20.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;	x[1] = beta_in;    return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _Cn_a20_lef(double alpha_in, double beta_in){	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("aerodata/f16Cn_da20lef.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16Cn_da20lef.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;	x[1] = beta_in;    return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _Cl_a20(double alpha_in, double beta_in){	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("aerodata/f16Cl_da20.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16Cl_da20.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;	x[1] = beta_in;    return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _Cl_a20_lef(double alpha_in, double beta_in){	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("aerodata/f16Cl_da20lef.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16Cl_da20lef.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;	x[1] = beta_in;    return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _delta_CNbeta(double alpha_in){	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("aerodata/f16dCnbeta.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16dCnbeta.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;    return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _delta_CLbeta(double alpha_in){	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("aerodata/f16dClbeta.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16dClbeta.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;    return (interpn(X,DATA,x,ndinfo));}/* End of function(...) */double _delta_Cm(double alpha_in){	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("aerodata/f16dCm.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16dCm.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;    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("aerodata/ETA_DH1.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file ETA_DH1.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_in, double dele){	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 = 140;		/* 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] = 7;			X = (double **) malloc(nDimension*sizeof(double*));		X[0] = getALPHA1();		X[1] = getDH3();		fp = fopen("aerodata/f16dCm_ds.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16dCm_ds.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;	x[1] = dele;    return (interpn(X,DATA,x,ndinfo));}/* End of function(...) *///EXTRA tables for control lawdouble _Cxde(double alpha_in,double beta_in){	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("aerodata/f16CXde.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16CXde.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;	x[1] = beta_in;    return	interpn(X,DATA,x,ndinfo);}/* End of function(...) */double _Czde(double alpha_in,double beta_in){	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("aerodata/f16CZde.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16CZde.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;	x[1] = beta_in;    return	interpn(X,DATA,x,ndinfo);}/* End of function(...) */double _Cmde(double alpha_in,double beta_in){	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("aerodata/f16Cmde.dat","r");		if(fp==(FILE*) NULL)			mexErrMsgTxt("Cannot find file f16Cmde.dat in current directory");		for(i=0;i<FILESIZE;i++){			fscanf(fp,"%lf",&data);			DATA[i] = data;			}		fclose(fp);		}	x[0] = alpha_in;	x[1] = beta_in;    return	interpn(X,DATA,x,ndinfo);}/* End of function(...) */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -