La cosa importante da ricordare su un circuito di controllo PID è che ogni termine è destinato a dominare il controllo in momenti diversi durante una mossa.
Il termine proporzionale ha lo scopo di dominare e fornire una coppia maggiore (o nella velocità del tuo caso) quanto più ti allontani dalla posizione target.
Il termine derivato è destinato a dominare durante la fase di "crociera" della tua tipica mossa trapezoidale. Aiuta a regnare un termine proporzionale molto alto e limitare l'accelerazione in fuga quando sei lontano dalla tua destinazione, ma può anche aiutare ad aumentare la velocità con cui converti sulla tua destinazione quando ti avvicini ad esso e il termine proporzionale contribuisce molto meno .
Se si utilizza un controller di velocità anziché un controller di coppia, il termine derivato potrebbe effettivamente essere nascosto all'interno del controller di velocità e non direttamente accessibile al loop PID. Questo può rendere il controllo più semplice (in genere accelera il più rapidamente possibile fino alla velocità desiderata o alla velocità massima, a seconda di quale sia inferiore), ma può anche renderlo meno prevedibile. Spesso un termine D (o P) eccessivamente aggressivo può provocare un ciclo limite (spesso chiamato erroneamente risonanza o oscillazione a causa del suono dei motori che ronza o addirittura urla in questo stato, sebbene il ciclo limite sia una descrizione molto più accurata ).
Il termine integrale è lì per correggere l' errore residuo di stato stazionario , ovvero dove esiste una differenza persistente a lungo termine tra dove ti viene chiesto di andare e dove sei effettivamente. Il valore attuale correction
(in realtà solo la tolleranza) funziona come l'opposto di un termine integrale, interrompe completamente il motore quando ci si trova in una banda morta attorno alla posizione desiderata.
A causa di questi fattori, guadagnerai poco dall'implementazione di un loop PID completo a meno che non pianifichi anche un profilo di velocità con fasi di accelerazione, crociera e decelerazione distinte.
Ricorda inoltre che la banda morta e la mancanza del termine I significheranno che la posizione finale sarà sempre in qualche modo casuale e molto probabilmente differirà a seconda della direzione in cui ti avvicini alla posizione desiderata. Pertanto, la ripetibilità bidirezionale potrebbe essere molto peggiore della ripetibilità standard.
Per ulteriori informazioni sulla differenza tra precisione, ripetibilità e risoluzione, vedere questa eccellente descrizione . Nel tuo caso, la tua risoluzione è il tuo sensore bussola, mentre sia l'accuratezza che la ripetibilità sono molto probabilmente limitate dal tuo correction
valore, poiché se il correction
valore è maggiore della risoluzione della bussola, stai gettando via parte della tua precisione di posizione in cambio di poter spegni il motore quando sei vicino.
degree
?