Volevo condividere con voi qualche esperimento fatto in questi giorni. Se qualcuno ha fatto esperienze simili può confermare o correggere quello che scrivo.
Ho provato a settare i parametri pid del mio quadricottero con crius se multiwii 2.2 utilizzando il metodo di Ziegler-Nichols
(io ho trovato le informazioni su questi siti: Ziegler-Nichols Tuning Rules for PID
Controllori PID - Wikipedia ).
Praticamente vi riassumo le operazioni base:
Premessa. Io utilizzo gyro lpf 42hz e media mobile con parametri MMGYRO 6 MMGYROVECTORLENGTH 9.
Questi valori influiscono in maniera notevole sul pid, quindi vanno settati prima di fare il tuning.
1. Azzerare I e D.
2. Alzare P del pitch fino al valore che innesca le oscillazioni.
Chiamiamo questo valore Ku
3. Misurare il tempo in secondi di una oscillazione (il valore sarà espresso in decimi o centesimi di secondo: es. 0,18 sec)
(consiglio: per misurare il tempo ho filmato il volo a 50 fps e ho rivisto il video, contato i fotogrammi e poi ho calcolato il numero di oscillazioni al secondo)
Chiamiamo questo valore Tu
4. Ora applichiamo la seguente tabella per calcolare P I e D sulla base di Ku e Tu.

Esempio:
Se il quad oscilla con P 10
e le oscillazioni sono 5,5 al secondo (1 oscillazione in 0.18 sec)
Ku = 10
Tu = 0.18
Settare P (Kp)
Ku * 0.6 = 6
Settare I (Ti)
Tu * 0.5 = 0.090
Settare D (Td)
Tu * 0.125 = 0.022
CORREGGETEMI SE SBAGLIO: Credo che in multiwii il parametro D sia moltiplicato per 1000 e quindi nell'esempio il valore sarebbe 22.
5. Ripetere l'operazione per il pid del roll.
ATTENZIONE: ho distinto i settaggi di pitch e roll perchè io uso un quad spider con il peso della telecamera e batteria che gravano sull'asse del pitch. Se il quad è simmetrico i valori di pitch e roll teoricamente sono identici.
CONCLUSIONI:
Il mio obiettivo era cercare un metodo "matematico" per non impostare valori a casaccio ed evitare pericolose prove al banco.
Io ho trovato ottimo il metodo per settare P e I, un po' meno per D. In particolare per I il valore ottimale elimina il drift rendendo molto più stabile il quadricottero.
Per capire come si comportano i parametri pid è stato molto utile l'ultilizzo di questo simulatore: PID Loop Simulator
Ho provato a settare i parametri pid del mio quadricottero con crius se multiwii 2.2 utilizzando il metodo di Ziegler-Nichols
(io ho trovato le informazioni su questi siti: Ziegler-Nichols Tuning Rules for PID
Controllori PID - Wikipedia ).
Praticamente vi riassumo le operazioni base:
Premessa. Io utilizzo gyro lpf 42hz e media mobile con parametri MMGYRO 6 MMGYROVECTORLENGTH 9.
Questi valori influiscono in maniera notevole sul pid, quindi vanno settati prima di fare il tuning.
1. Azzerare I e D.
2. Alzare P del pitch fino al valore che innesca le oscillazioni.
Chiamiamo questo valore Ku
3. Misurare il tempo in secondi di una oscillazione (il valore sarà espresso in decimi o centesimi di secondo: es. 0,18 sec)
(consiglio: per misurare il tempo ho filmato il volo a 50 fps e ho rivisto il video, contato i fotogrammi e poi ho calcolato il numero di oscillazioni al secondo)
Chiamiamo questo valore Tu
4. Ora applichiamo la seguente tabella per calcolare P I e D sulla base di Ku e Tu.
Esempio:
Se il quad oscilla con P 10
e le oscillazioni sono 5,5 al secondo (1 oscillazione in 0.18 sec)
Ku = 10
Tu = 0.18
Settare P (Kp)
Ku * 0.6 = 6
Settare I (Ti)
Tu * 0.5 = 0.090
Settare D (Td)
Tu * 0.125 = 0.022
CORREGGETEMI SE SBAGLIO: Credo che in multiwii il parametro D sia moltiplicato per 1000 e quindi nell'esempio il valore sarebbe 22.
5. Ripetere l'operazione per il pid del roll.
ATTENZIONE: ho distinto i settaggi di pitch e roll perchè io uso un quad spider con il peso della telecamera e batteria che gravano sull'asse del pitch. Se il quad è simmetrico i valori di pitch e roll teoricamente sono identici.
CONCLUSIONI:
Il mio obiettivo era cercare un metodo "matematico" per non impostare valori a casaccio ed evitare pericolose prove al banco.
Io ho trovato ottimo il metodo per settare P e I, un po' meno per D. In particolare per I il valore ottimale elimina il drift rendendo molto più stabile il quadricottero.
Per capire come si comportano i parametri pid è stato molto utile l'ultilizzo di questo simulatore: PID Loop Simulator
Commenta