如何使用摇滚,俯仰,偏航值使arduino无人机稳定?

时间:2017-07-02 17:00:53

标签: c++ arduino

我目前正在制造一架自动无人机,现在我正试图简单地让它在空中“稳定”,以便它保持在同一位置。

我已经做了一些工作正常的代码(我将在下面展示它),但我想知道是否有办法用数学计算它以使其更准确?现在我正在改变我的浮动(名为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");          
}
}

1 个答案:

答案 0 :(得分:1)

您需要一个PID控制器实现为PID,允许您更精确地调整所有滚动/俯仰/偏航值而不是任意递增/递减,其中,详细了解PID的Here

This是arduino实现的PID库的链接。