|
|
@@ -199,7 +199,7 @@ void motor_mpta_fw_lookup2(float rpm, float torque, dq_t *dq_out) {
|
|
|
d = ABS(torque) * SIGN(torque);
|
|
|
q = 0;
|
|
|
}else {
|
|
|
- q = sqrtf(torque * torque - d * d);
|
|
|
+ q = sqrtsub2_f(torque, d);
|
|
|
}
|
|
|
if (torque != 0) {
|
|
|
dq_out->d = SCALE(d);
|
|
|
@@ -235,7 +235,7 @@ static void intp_line2(float frac_x, s16 z, torque_map_t **map, float *d, float
|
|
|
#ifdef MOT_USE_PHASE_I
|
|
|
if (z != 0) {
|
|
|
if (z >= ABS(*d)) {
|
|
|
- *q = sqrtf(z*z - (*d)*(*d));
|
|
|
+ *q = sqrtsub2_f(z, (*d));
|
|
|
}else {
|
|
|
c1 = (1.0f - frac_z1) * map[0]->q + frac_z1 * map[1]->q;
|
|
|
c2 = (1.0f - frac_z2) * map[2]->q + frac_z2 * map[3]->q;
|
|
|
@@ -330,7 +330,7 @@ void motor_mpta_fw_lookup(float rpm, float torque, dq_t *dq_out) {
|
|
|
arm_sin_cos(advanced_angle + 90.0f, &s, &c);
|
|
|
d = ABS(torque) * c;
|
|
|
d = fclamp(d, -mc_conf()->m.max_fw_id, mc_conf()->m.max_fw_id);
|
|
|
- q = sqrtf(SQ(torque) - SQ(d));
|
|
|
+ q = sqrtsub2_f(torque, d);
|
|
|
if (torque < 0) {
|
|
|
q = -q;
|
|
|
}
|