Beta2test. Prima delle vacanze

Durante l ultima settimana ho introdotto alcune migliorie sul codice che devo riportare qui prima di dimenticarle dopo le imminenti vacanze.

  • aggiunto possibilità di tuning manuale al volo per P,I e D.
  • in pid.py aggiunto una funzione per calcolare la media sul valore di D_correction calculation.Questo aiuta ad avere un valore più arrotondato.
  • Aggiornamento risultati sul display ogni 0.2 sec, invece che ad ogni ciclo (per ridurre il carico CPU ).
  • migliorato log
  • Calcolo della velocità angolare (roll_rate, pitch_rate and yaw_rate) in sensor_py. Questi valori sono ottenuti dalla derivata di roll,pitch e yaw già filtrate col complementary filter. Non come row roll_rate,pithc_rate e yaw rate del giroscopio.

il principale miglioramento e’ comunque stato l introduzione del PID per roll_rate (picth_rate and yaw_rate). Ho creato beta2.py dove ho messo due PIDs in serie. Questo è un tipico approccio per il controllo dei droni. Il primo PID restituisce la Roll_correction. (cioè di quanto voglio far variare l angolo in un passo).

Dividendo Roll_correction per cycletime, si ottiene l la velocità angolare che voglio ottenere in un passo.Questo e il target per il nuovo roll_rate PID. Mentre il feedback e’ la velocità angolare calcolata in sensor.py. Il risultato è un quadricottero molto più stabile, meno nervoso e più pronto.

sotto Ho riportato i primo test.

Beta2_pid_tuning

 

come si può notare e’ ancora presente un oscillazione, comunque compresa fra +/- 1 gradi. Occorre lavorare ora per fare in modo che il sistema raggiunga il target.(ora e’ sempre sotto). Probabilmente occorre incrementare il valore di P ed I.

Lascia un commento