最近代码已经整理差不多,开始了漫长的调试,试图在电机转动的时候调节到平衡状态。遇到了飞机震动造成的姿态也随之起伏的问题。
看了下前辈的说法,是飞机共振。需要减震,需要滤波,关于滤波,用的是卡尔漫滤波,目前还没什么好方法解决。而且也不太懂原理。
float pidUpdate(PidObject* pid, const float error)
{
float output;
pid->error = error;
pid->integ += pid->error * pid->dt;
//»ý·ÖÏÞ·ù
if (pid->integ > pid->iLimit)
{
pid->integ = pid->iLimit;
}
else if (pid->integ < -pid->iLimit)
{
pid->integ = -pid->iLimit;
}
pid->deriv = (pid->error - pid->prevError) / pid->dt;
pid->outP = pid->kp * pid->error;
pid->outI = pid->ki * pid->integ;
pid->outD = pid->kd * pid->deriv;
output = pid->outP + pid->outI + pid->outD;
//Êä³öÏÞ·ù
if (pid->outputLimit != 0)
{
if (output > pid->outputLimit)
output = pid->outputLimit;
else if (output < -