Saat menggunakan PID loop untuk mengarahkan menggunakan garis berikut, maka titik setel Anda akan selalu sama. Anda akan selalu ingin garis berada di posisi yang sama sehubungan dengan robot, misalnya di tengah sensor Anda.
Jadi jika sensor garis Anda mengeluarkan nilai dari -1 hingga 1 dengan 0 menjadi pusat sensor, maka Anda ingin set point Anda menjadi nol (dan sensor membaca kembali dan perbedaannya akan sama). Jika sensor garis Anda menghasilkan nilai 0 hingga 10, maka Anda ingin set point Anda menjadi 5 (dan sensor Anda membaca kembali dan perbedaannya akan berbeda).
Karena Anda menyetir dengan mengatur roda untuk berputar pada kecepatan yang berbeda, maka untuk mengikuti garis dengan lancar pada kecepatan konstan, Anda mungkin ingin menyesuaikan kecepatan untuk kedua roda berdasarkan kesalahan. Misalnya, jika Anda perlu belok kiri untuk tetap di jalur, Anda akan memperlambat roda kiri dan mempercepat roda kanan. Semakin Anda perlu berputar, semakin banyak yang Anda butuhkan untuk memperlambat roda bagian dalam dan semakin banyak yang Anda butuhkan untuk mempercepat roda bagian luar.
Pertimbangkan situasi di mana Anda perlu mengubah radian ke kiri untuk memperbaiki kesalahan dan kecepatan Anda saat ini adalah :θeS0
Jadi roda kiri Anda perlu melakukan perjalanan di dan roda kanan Anda perlu melakukan perjalanan di .SL=rθSR=(r+b)θ
Untuk mempertahankan kecepatan keseluruhan yang sama , Anda perlu , sehingga roda kiri perlu melakukan perjalanan di
sedangkan roda kanan perlu melakukan perjalanan di .S0S0=(r+b/2)θSL=S0−(b/2)θSR=S0+(b/2)θ
Karena kesalahan Anda cenderung ke nol, kecepatan setiap motor juga akan cenderung ke satu sama lain. Ketika kesalahan tumbuh, perbedaan kecepatan akan tumbuh juga.
Anda bahkan mungkin memerlukan roda bagian dalam Anda untuk berputar ke belakang jika sensor Anda memberi tahu Anda bahwa garis melengkung lebih kencang daripada jarak antara roda Anda. Ini adalah komplikasi yang dapat Anda lakukan selangkah demi selangkah karena kendali Anda semakin canggih.
Juga, karena kesalahan Anda akan memiliki nilai positif dan negatif (untuk mewakili kontinum dari skala kiri ... terlalu jauh ke kiri ... di telepon ... terlalu jauh ke kanan ... di luar skala maka Anda harus tidak perlu bertanya if
apakah kesalahannya positif atau negatif, Anda hanya perlu menghitung nilai baru berdasarkan nilai kesalahan, karena nilai positif dan nilai negatif harus memiliki efek berlawanan dan simetris pada motor.
Perhatikan bahwa untuk mengikuti baris, Anda mungkin bisa lolos hanya dengan istilah gain proporsional (yaitu membiarkan syarat lainnya nol). Menerapkan istilah Derivatif mungkin memungkinkan Anda untuk menaikkan jangka keuntungan proporsional lebih tinggi untuk mendapatkan sistem yang lebih responsif, tetapi istilah integral tidak mungkin membantu. Fakta bahwa jika robot Anda bergerak ke arah yang salah, kesalahannya akan semakin besar berarti gerakan fisik robot Anda akan bertindak seperti istilah integral.
Nilai spesifik P, D, dan I akan ditentukan oleh daya tanggap sistem Anda. Untuk saran umum tentang menyetel parameter PID, lihat jawaban saya dan lainnya tentang Apa strategi yang baik untuk menyetel loop PID?