Saya sudah membangun robot penyeimbang dua roda menggunakan beberapa rotasi servos kontinyu dan accelerometer / giroskop. Saya meng-upgrade servos ke beberapa motor DC diarahkan dengan encoders 8-bit dengan tujuan memiliki robot berkeliling sambil menyeimbangkan.
Saya agak terjebak pada bagaimana memprogramnya untuk berkeliling sambil tetap menyeimbangkan. Saya pikir salah satu cara adalah dengan hanya memiliki input kontrol untuk motor bertindak seperti mendorongnya. Jadi robot akan mengalami ketidakseimbangan sesaat ke arah yang saya inginkan. Itu agak aneh bagi saya. Harus ada cara yang lebih baik untuk dilakukan? Saya pikir saya perlu menggabungkan model dinamis untuk balancer dengan drive diferensial tetapi ini sedikit di luar teori kontrol yang saya tahu.
Pembaruan Dari jawaban Anorton, saya memiliki matriks keadaan yang bagus sekarang.
Sekarang tentang penempatan kutub: Matriks A harus 4x4 berdasarkan vektor keadaan baru. Dan B kemudian harus menjadi matriks 4x2 karena saya hanya dapat mengontrol torsi roda kiri / kanan (u = vektor 2x1).
Saya mungkin perlu membaca lebih lanjut tentang ini tetapi apakah ada cara sistematis untuk menentukan matriks A dengan penempatan kutub? Bagi saya contoh ini dan contoh yang lebih rumit, menentukan A dengan menebak dan memeriksa akan sangat sulit.
Perbarui # 2 Setelah sedikit membaca, saya rasa saya mengerti sekarang. Saya masih membutuhkan dinamika robot untuk menentukan matriks A. Setelah saya memilikinya saya bisa melakukan penempatan tiang menggunakan matlab atau oktaf.
:)
Pengetahuan kontrol saya sangat tipis, tetapi saya akan melemparkan nilai $ 0,02 saya di sana ...