diff --git a/.DS_Store b/.DS_Store index 21f3fc6..3e88774 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/Matlab/.DS_Store b/Matlab/.DS_Store index 0a55dd0..5bbd36c 100644 Binary files a/Matlab/.DS_Store and b/Matlab/.DS_Store differ diff --git a/TC_NAV_Zjut_post/Src/real_time/ins.c b/TC_NAV_Zjut_post/Src/real_time/ins.c index 2a994e1..bc67253 100644 --- a/TC_NAV_Zjut_post/Src/real_time/ins.c +++ b/TC_NAV_Zjut_post/Src/real_time/ins.c @@ -144,16 +144,20 @@ static void savepimu(ins_t *ins){ * O uipdates body-to-ecef coordinate transformation matrix * double *omgb I angular rate of body frame (rad/s) w.r.t eci-frame * expressed in ecef-frame + * double *omgbp I last angular rate of body frame (rad/s) w.r.t eci-frame + * expressed in ecef-frame * double *das I rotational and sculling motion correction * return :none * ---------------------------------------------------------------------------*/ -static void updateatt(double t, double *Cbe, const double *omgb,const double *das) +static void updateatt(double t, double *Cbe, const double *omgb, const double *omgbp,const double *das) { double alpha[3],mag_alpha,a1,a2,Ca[9],Ca2[9],Cbep[9]; double Cbb[9]={1,0,0,0,1,0,0,0,1},Cei[9]={0}; int i; // trace(3,"updateatt:\n"); - for (i=0;i<3;i++) alpha[i]=omgb[i]*t+das[i]; +// for (i=0;i<3;i++) alpha[i]=omgb[i]*t+das[i]; + //Twin-like hypothesis + for (i=0;i<3;i++) alpha[i]=omgb[i]*t+omgbp[i]*t*omgb[i]*t/12+das[i]; skewsym3(alpha,Ca); matmul3("NN",Ca,Ca,Ca2); mag_alpha=norm(alpha,3); @@ -273,7 +277,7 @@ extern void rotscull_corr(ins_t *ins,double dt, } /* save precious epoch ins states--------------------------------------------*/ -static void savepins(ins_t *ins,const imud_t *data) +static void savepins(ins_t *ins) { matcpy(ins->omgbp ,ins->omgb,1,3); matcpy(ins->fbp ,ins->fb ,1,3); @@ -352,7 +356,7 @@ extern int updateins(ins_t *ins,const imud_t *data){ traceins(3,ins); trace(3,"imu %lf,%lf,%lf,%lf,%lf,%lf\n",data->accl[0],data->accl[1],data->accl[2],data->gyro[0],data->gyro[1],data->gyro[2]); - savepins(ins,data); + savepins(ins); // dt= timediff(data->syn_time,ins->gtime); dt = 0.01; @@ -381,7 +385,7 @@ extern int updateins(ins_t *ins,const imud_t *data){ /* update attitude */ for (int i=0;i<9;i++) Cbe[i]=ins->Cbe[i]; - updateatt(dt,ins->Cbe,ins->omgb,das); + updateatt(dt,ins->Cbe,ins->omgb,ins->omgbp,das); for (int i=0;i<3;i++) alpha[i]=ins->omgb[i]*dt+das[i]; skewsym3(alpha,Ca); diff --git a/TC_NAV_Zjut_post/cmake-build-debug/Testing/Temporary/LastTest.log b/TC_NAV_Zjut_post/cmake-build-debug/Testing/Temporary/LastTest.log index ef7c738..bf9b6d6 100644 --- a/TC_NAV_Zjut_post/cmake-build-debug/Testing/Temporary/LastTest.log +++ b/TC_NAV_Zjut_post/cmake-build-debug/Testing/Temporary/LastTest.log @@ -1,3 +1,3 @@ -Start testing: Mar 25 14:06 CST +Start testing: Mar 27 20:51 CST ---------------------------------------------------------- -End testing: Mar 25 14:06 CST +End testing: Mar 27 20:51 CST