新手上路
- 积分
- 25
- 金钱
- 25
- 注册时间
- 2017-10-3
- 在线时间
- 2 小时
|
1金钱
minifly的电机控制程序滚转和俯仰控制输出为什么要除以2,并且通过四个通道计算电机转速时为什么不是平方,我搜的论文里四个通道转换电机转速时,电机转速都是平方项啊
[mw_shl_code=c,true]void powerControl(control_t *control)
{
s16 r = control->roll / 2.0f;
s16 p = control->pitch / 2.0f;
motorPWM.m1 = limitThrust(control->thrust - r - p + control->yaw);
motorPWM.m2 = limitThrust(control->thrust - r + p - control->yaw);
motorPWM.m3 = limitThrust(control->thrust + r + p + control->yaw);
motorPWM.m4 = limitThrust(control->thrust + r - p - control->yaw);
if (motorSetEnable)
{
motorPWM=motorPWMSet;
}
motorsSetRatio(MOTOR_M1, motorPWM.m1);
motorsSetRatio(MOTOR_M2, motorPWM.m2);
motorsSetRatio(MOTOR_M3, motorPWM.m3);
motorsSetRatio(MOTOR_M4, motorPWM.m4);
}[/mw_shl_code]
还有求占空比时下面两句不太明白,希望原子哥能给解释一下,谢谢!
[mw_shl_code=c,true] float thrust = ((float)ithrust / 65536.0f) * 60;
float volts = -0.0006239f * thrust * thrust + 0.088f * thrust;[/mw_shl_code]
|
最佳答案
查看完整内容[请看2#楼]
上面/2和平方数据处理应该只是为了将PID输出与电机PWM之间大小进行匹配,我之前自己做的直接没有平方也没有/2
下面那个是一个二次函数,用来补偿油门和电池电压之间的关系。
|