我目前正在制造一架自动无人机,现在我正试图简单地让它在空中“稳定”,以便它保持在同一位置。
我已经做了一些工作正常的代码(我将在下面展示它),但我想知道是否有办法用数学计算它以使其更准确?现在我正在改变我的浮动(名为W_1
)和我的音调&滚动值使其稳定,但很难找到“甜点”。有没有办法用数学解决方案简化事情?
这是我正在使用的代码:
float W_1 = 3;
void loop ()
{
if((-10<angle_pitch_output)&&(angle_pitch_output<10))
{
ESC5.write(1400);
ESC9.write(1400);
Serial.println ("pitch stable");
}
else if(-10>angle_pitch_output)
{
ESC5.write(1400-(W_1));
ESC9.write(1400+(W_1));
Serial.println ("pitch not stable");
}
else if(angle_pitch_output>10)
{
ESC5.write(1400+(W_1));
ESC9.write(1400-(W_1));
Serial.println ("pitch not stable");
}
if((-10<angle_roll_output)&&(angle_roll_output<10))
{
ESC6.write(1400);
ESC10.write(1400);
Serial.println ("roll stable");
}
else if(-10>angle_roll_output)
{
ESC6.write(1400-(W_1));
ESC10.write(1400+(W_1));
Serial.println ("roll not stable");
}
else if(angle_roll_output>10)
{
ESC6.write(1400+(W_1));
ESC10.write(1400-(W_1));
Serial.println ("roll not stable");
}
}