/**********************main()***********************/ void main() { fp_err=fopen("纯捷联err.txt","w"); //fp_V=fopen("V.txt","w"); //fp_tV=fopen("tV.txt","w"); //初始化导航参数 initial(); //初始化理论值和实际值 ctCn2b(); //姿态角计算姿态矩阵(理论) ini_Cn2b();//姿态角计算姿态矩阵(实际) ini_q(); //四元数初始化(实际值) /*Mk0=gyro_ran; Nk0=acce_ran;*/ for(number=0;number<Num;number++) { noise=white(); /*Mk=-number*sampletime/1800*Mk0; Nk=-number*sampletime/1800*Nk0; printf("%le\t %le\t\n",Mk,Nk);*/ D_gyro[0]=(gyro_ran*noise+gyro_con0)*dh_hs;//+Mk D_gyro[1]=(gyro_ran*noise+gyro_con1)*dh_hs;//+Mk D_gyro[2]=(gyro_ran*noise+gyro_con2)*dh_hs;//+Mk D_acce[0]=(acce_ran*noise+acce_con0)*g/1000.0;//+Nk D_acce[1]=(acce_ran*noise+acce_con1)*g/1000.0;//+Nk+Nk D_acce[2]=(acce_ran*noise+acce_con2)*g/1000.0;// t_renew();//导航参数理论值更新函数 ctCn2b(); //由理论值姿态角解算姿态矩阵的函数 out_Wib_b();//导入陀螺数据 cWnb_b();//真实值计算 q_renew();//真实值计算 cCn2b();//真实值,从四元数中计算出来 out_f(); //导入加速度计数据 renew();//理论值 if((number%Tfnum==0)&&(number!=0)) // 1s { fprintf(fp_err,"%e\t %e\t %e\t %e\t %e\t %e\t %e\t\n",(P-tP)*H_d*60,(R-tR)*H_d*60,(H-tH)*H_d*60, V[0]-tV[0],V[1]-tV[1],(latit-tlatit)*Rn,(longi-tlongi)*Re*cos(tlatit)); } } fclose(fp_err); // fclose(fp_V); // fclose(fp_tV); }
void tunDeviceRecForceXValuators (TunDevicePtr tun, int n) { if (n >= tun->nof_xvaluators) { int i; tun->xval_to_lval_tbl = tun->xval_to_lval_tbl ? t_renew (TunValuatorPtr, tun->xval_to_lval_tbl, n) : t_new (TunValuatorPtr, n); for (i = tun->nof_xvaluators; i < n; i++) tun->xval_to_lval_tbl [i] = NULL; tun->nof_xvaluators = n; } }