2017-07-02 9 views
0

私は現在自律的な無人機を構築していますが、今は空気中で簡単に "安定"にして、同じ場所にとどまるようにしています。ロール、ピッチ、ヨーの値でアルドゥーノ無人機を安定させるには?

私はok(私はそれを下に紹介します)のコードを実行しましたが、もっと正確にするために数学で計算する方法があるのだろうか?今はフロート(W_1という名前)と私のピッチ&の値を安定させるために値を変更していますが、 "sweetspot"を見つけるのは非常に難しいです。数学的な解決策を使って物事を単純化する方法はありますか?

これは、私が働いているコードです:

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

あなた自身の良い(と私たちの)ために、あなたのコードを適切にインデントしてください。 – stevieb

答えて

1

あなたが/ PIDのは、より正確に、すべてのロール/ピッチ/ヨー値チューンにあなたを許すとして実装PIDコントローラではなく、arbitary増加が必要になります減分ここでは、PIDについての詳細を読むHere

Thisは、arduino用に実装されたPIDライブラリへのリンクです。

関連する問題