修改拟合参数
This commit is contained in:
+11
-4
@@ -78,15 +78,15 @@ void Parse::run()
|
||||
|
||||
src.B[0] = data[data_count++];
|
||||
src.B[1] = data[data_count++];
|
||||
ins.ax = src.i[0] * 100.0/32767;//机体纵向加速度
|
||||
ins.ax = src.i[0] * 100.0/32767;//
|
||||
|
||||
src.B[0] = data[data_count++];
|
||||
src.B[1] = data[data_count++];
|
||||
ins.az = src.i[0] * -100.0/32767;//机体法向加速度
|
||||
ins.az = src.i[0] * -100.0/32767;//
|
||||
|
||||
src.B[0] = data[data_count++];
|
||||
src.B[1] = data[data_count++];
|
||||
ins.ay = src.i[0] * 100.0/32767;//机体侧向加速度
|
||||
ins.ay = src.i[0] * 100.0/32767;//
|
||||
/*
|
||||
qDebug() << ins.roll_rate
|
||||
<< ins.yaw_rate
|
||||
@@ -992,6 +992,9 @@ void Parse::run()
|
||||
_eadc eadc;
|
||||
int data_count = 0;
|
||||
|
||||
data_count++;
|
||||
data_count++;
|
||||
|
||||
src.B[0] = data[data_count++];
|
||||
src.B[1] = data[data_count++];
|
||||
eadc.hp = src.i[0] * 0.5; //气压高度
|
||||
@@ -1022,7 +1025,7 @@ void Parse::run()
|
||||
|
||||
src.B[0] = data[data_count++];
|
||||
src.B[1] = data[data_count++];
|
||||
eadc.tt = src.i[0] * 0.01; //大气总温
|
||||
eadc.tt = src.i[0] * 0.01 - 273.15; //大气总温
|
||||
|
||||
src.B[0] = data[data_count++];
|
||||
src.B[1] = data[data_count++];
|
||||
@@ -1057,10 +1060,14 @@ void Parse::run()
|
||||
eadc.validAndStatus.attAAcq = (byte >> 1) & 0x01; //迎角采集值有效性
|
||||
eadc.validAndStatus.sideAAcq = (byte >> 2) & 0x01; //迎角采集值有效性
|
||||
|
||||
data_count++;
|
||||
|
||||
src.B[0] = data[data_count++];
|
||||
src.B[1] = data[data_count++];
|
||||
src.B[2] = data[data_count++];
|
||||
src.B[3] = data[data_count++];
|
||||
// memcpy(&src.B[0], data.data()+data_count, 4);
|
||||
// data_count+=4;
|
||||
|
||||
eadc.dp = src.F; //动压
|
||||
|
||||
|
||||
+45
-41
@@ -126,11 +126,13 @@ double act_pwm2deg3(double pwm,const QList<double>¶)
|
||||
x = pwm - 4096.0;
|
||||
}
|
||||
|
||||
x = x * 33 / 2048;
|
||||
|
||||
double angle = 0;
|
||||
|
||||
angle = para[0] * x * x * x + para[1] * x * x + para[2] * x + para[3];
|
||||
angle = para[3] * x * x * x + para[2] * x * x + para[1] * x+ para[0] ;
|
||||
|
||||
return angle;
|
||||
return angle * 57.3;
|
||||
|
||||
}
|
||||
|
||||
@@ -1391,14 +1393,14 @@ QList<double> ste_fix{+1E-09,-9E-08,-0.0207,+5.1113};
|
||||
QList<double> vtl_fix{+7E-10,-2E-06,+0.0176,+37.866};
|
||||
QList<double> vtr_fix{+7E-10,-2E-06,+0.0176,+37.809};
|
||||
|
||||
QList<double> dal_fix{-3E-09,-3E-06,-0.0343,+0.2415};
|
||||
QList<double> dar_fix{-2E-09,-2E-06,-0.0340,+0.0294};
|
||||
QList<double> dal_fix{0.4649342060, -0.0340147207, 0.0002750884, -0.0000057809};
|
||||
QList<double> dar_fix{0.4997510138, -0.0328826990, 0.0001765671, -0.0000034374};
|
||||
|
||||
QList<double> drl_fix{-2E-09,-8E-07,-0.0336,-0.4362};
|
||||
QList<double> drr_fix{+2E-09,+9E-07,+0.0335,-0.5028};
|
||||
QList<double> drl_fix{-0.1607395255, -0.0222880648, 0.0000231149, -0.0000052948};
|
||||
QList<double> drr_fix{0.1539174036, -0.0226888591, 0.0000827501, -0.0000032349};
|
||||
|
||||
QList<double> del_fix{-1E-09,+2E-07,-0.0263,+0.3685};
|
||||
QList<double> der_fix{-1E-09,+3E-07,-0.0264,+0.9127};
|
||||
QList<double> del_fix{0.0516495062, -0.0221356239, 0.0000167924, -0.0000022329};
|
||||
QList<double> der_fix{0.0847748377, -0.0223743546, 0.0000295871, -0.0000024856};
|
||||
QList<double> dspl_fix{+5E-10,+9E-08,+0.0203,+37.586};
|
||||
QList<double> dspr_fix{+6E-10,+1E-07,+0.0205,+38.138};
|
||||
|
||||
@@ -1425,42 +1427,44 @@ void MainWindow::update_servo_output_raw(int sysid,mavlink_servo_output_raw_t se
|
||||
servos.insert(16,servo.servo16_raw);
|
||||
toolsui->index4->setChannel(servo.port,servos);
|
||||
|
||||
if(sysid == 1)
|
||||
{
|
||||
ste_fix = {+1E-09,-9E-08,-0.0207,+5.1113};
|
||||
vtl_fix = {+3E-10,-2E-06,+0.0185,+37.603};
|
||||
vtr_fix = {+3E-10,-2E-06,+0.0185,+37.813};
|
||||
// qDebug() << "拟合值" << dal_fix;
|
||||
|
||||
dal_fix = {-3E-09,-3E-06,-0.0343,+0.2415};
|
||||
dar_fix = {-2E-09,-2E-06,-0.0340,+0.0294};
|
||||
drl_fix = {-2E-09,-8E-07,-0.0336,-0.4362};
|
||||
drr_fix = {+2E-09,+9E-07,+0.0335,-0.5028};
|
||||
// if(sysid == 1)
|
||||
// {
|
||||
// ste_fix = {+1E-09,-9E-08,-0.0207,+5.1113};
|
||||
// vtl_fix = {+3E-10,-2E-06,+0.0185,+37.603};
|
||||
// vtr_fix = {+3E-10,-2E-06,+0.0185,+37.813};
|
||||
|
||||
del_fix = {-9E-10,+3E-07,-0.0263,+0.9651};
|
||||
der_fix = {-9E-10,+3E-07,-0.0265,+0.925};
|
||||
dspl_fix = {+5E-10,+9E-08,+0.0203,+37.976};
|
||||
dspr_fix = {+6E-10,+1E-07,+0.0205,+38.138};
|
||||
}
|
||||
else if(sysid == 2)
|
||||
{
|
||||
ste_fix = {+1E-09,-9E-08,-0.0207,+5.1113};
|
||||
vtl_fix = {+7E-10,-2E-06,+0.0176,+37.866};
|
||||
vtr_fix = {+7E-10,-2E-06,+0.0176,+37.809};
|
||||
// dal_fix = {-3E-09,-3E-06,-0.0343,+0.2415};
|
||||
// dar_fix = {-2E-09,-2E-06,-0.0340,+0.0294};
|
||||
// drl_fix = {-2E-09,-8E-07,-0.0336,-0.4362};
|
||||
// drr_fix = {+2E-09,+9E-07,+0.0335,-0.5028};
|
||||
|
||||
dal_fix = {-3E-09,-3E-06,-0.0343,+0.2415};
|
||||
dar_fix = {-2E-09,-2E-06,-0.0340,+0.0294};
|
||||
drl_fix = {-2E-09,-8E-07,-0.0336,-0.4362};
|
||||
drr_fix = {+2E-09,+9E-07,+0.0335,-0.5028};
|
||||
// del_fix = {-9E-10,+3E-07,-0.0263,+0.9651};
|
||||
// der_fix = {-9E-10,+3E-07,-0.0265,+0.925};
|
||||
// dspl_fix = {+5E-10,+9E-08,+0.0203,+37.976};
|
||||
// dspr_fix = {+6E-10,+1E-07,+0.0205,+38.138};
|
||||
// }
|
||||
// else if(sysid == 2)
|
||||
// {
|
||||
// ste_fix = {+1E-09,-9E-08,-0.0207,+5.1113};
|
||||
// vtl_fix = {+7E-10,-2E-06,+0.0176,+37.866};
|
||||
// vtr_fix = {+7E-10,-2E-06,+0.0176,+37.809};
|
||||
|
||||
del_fix = {-1E-09,+2E-07,-0.0263,+0.3685};
|
||||
der_fix = {-1E-09,+3E-07,-0.0264,+0.9127};
|
||||
dspl_fix = {+5E-10,+9E-08,+0.0203,+37.976};
|
||||
dspr_fix = {+6E-10,+1E-07,+0.0205,+38.138};
|
||||
}
|
||||
else
|
||||
{
|
||||
// dal_fix = {-3E-09,-3E-06,-0.0343,+0.2415};
|
||||
// dar_fix = {-2E-09,-2E-06,-0.0340,+0.0294};
|
||||
// drl_fix = {-2E-09,-8E-07,-0.0336,-0.4362};
|
||||
// drr_fix = {+2E-09,+9E-07,+0.0335,-0.5028};
|
||||
|
||||
}
|
||||
// del_fix = {-1E-09,+2E-07,-0.0263,+0.3685};
|
||||
// der_fix = {-1E-09,+3E-07,-0.0264,+0.9127};
|
||||
// dspl_fix = {+5E-10,+9E-08,+0.0203,+37.976};
|
||||
// dspr_fix = {+6E-10,+1E-07,+0.0205,+38.138};
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
|
||||
// }
|
||||
|
||||
|
||||
|
||||
@@ -1478,8 +1482,8 @@ void MainWindow::update_servo_output_raw(int sysid,mavlink_servo_output_raw_t se
|
||||
// statusui->setValue(0,1,9,QString::number(act_pwm2deg3(servo.servo3_raw,vtr_fix),'f',2) + '|'
|
||||
// + QString::number(act_pwm2deg3(servo.servo11_raw,vtr_fix),'f',2));
|
||||
|
||||
// statusui->setValue(0,1,0,QString::number(act_pwm2deg3(servo.servo4_raw,dal_fix),'f',2) + '|'
|
||||
// + QString::number(act_pwm2deg3(servo.servo12_raw,dal_fix),'f',2));
|
||||
statusui->setValue(0,1,0,QString::number(act_pwm2deg3(servo.servo4_raw,dal_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo12_raw,dal_fix),'f',2));
|
||||
|
||||
statusui->setValue(0,1,1,QString::number(act_pwm2deg3(servo.servo5_raw,dar_fix),'f',2) + '|'
|
||||
+ QString::number(act_pwm2deg3(servo.servo13_raw,dar_fix),'f',2));
|
||||
|
||||
Reference in New Issue
Block a user