Ho già costruito un robot di bilanciamento a due ruote usando alcuni servi a rotazione continua e un accelerometro / giroscopio. Ho aggiornato i servi ad alcuni motoriduttori DC con encoder a 8 bit con l'obiettivo di far muovere il robot mentre si fa il bilanciamento.
Sono un po 'bloccato su come programmarlo per guidare mentre si è ancora in equilibrio. Penso che un modo sarebbe quello di fare in modo che l'ingresso di controllo dei motori si comporti come se lo spingesse. Quindi il robot sarebbe momentaneamente sbilanciato nella direzione in cui voglio che viaggi. Mi sembra un po 'goffo per me. Ci deve essere un modo migliore di fare? Penso di dover combinare il modello dinamico per il bilanciatore con il differenziale ma questo è un po 'oltre la teoria del controllo che conosco.
Aggiornamento Dalla risposta di Anorton Ora ho una bella matrice di stato.
Ora sul posizionamento dei poli: la matrice A dovrà essere 4x4 in base al nuovo vettore di stato. E B dovrà quindi essere una matrice 4x2 poiché posso controllare solo la coppia della ruota sinistra / destra (u = vettore 2x1).
Potrei aver bisogno di leggere di più al riguardo, ma esiste un modo sistematico per determinare la matrice A in base al posizionamento dei poli? Mi sembra per questo esempio e per esempi ancora più complicati, determinare A per ipotesi e controllo sarebbe molto difficile.
Aggiornamento n. 2 Dopo un po 'di lettura, penso di averlo capito ora. Ho ancora bisogno della dinamica del robot per determinare la matrice A. Una volta che ho che posso fare il posizionamento del palo usando matlab o ottava.
:)
Le mie conoscenze sui controlli sono molto limitate, ma ho