Cari
Jika ini adalah kunjungan pertama Anda, pastikan untuk memeriksa FAQ dengan mengklik link di atas. Anda
mungkin harus mendaftar sebelum Anda dapat memposting: klik tautan daftar di atas untuk melanjutkan.
Untuk mulai melihat pesan, pilih forum yang ingin Anda kunjungi dari pilihan di bawah ini.
Halaman 1 dari 1
IoT_lover memulai posting blog Arduino - PID Controller, Auto-tuning Library Dan
Contoh untuk Motor DC Bagikan Menciak
11-30-2018, 13.27
Artikel ini memberikan pustaka dan contoh kode pengontrol posisi dan kecepatan motor DC menggunakan
pengontrol PID dan penyetelan otomatis.
Pendahuluan
Pernahkah Anda mendengar tentang pengontrol PID?
Ini adalah pengontrol yang banyak digunakan di industri untuk mengontrol berbagai variabel proses seperti suhu,
tekanan, gaya, laju umpan, laju aliran, komposisi kimia (konsentrasi komponen), berat, posisi, kecepatan, dan
praktis setiap variabel lain yang memiliki pengukuran.
Pada artikel ini, saya fokus menggunakan PID untuk mengontrol posisi dan kecepatan motor DC Brushed.
Kinerja PID ditentukan oleh Kp, Ki dan Kd gain (koefisien untuk proporsional, integral, dan suku turunan). Setiap
sistem memiliki gain PID optimalnya masing-masing. Menemukan perolehan PID terbaik adalah tugas yang sulit.
Oleh karena itu, kami biasanya menggunakan keuntungan yang dapat diterima. Link ini memberikan gambaran
tentang pengaruh Kp, Ki dan Kd pada sistem
. Proses pencarian nilai parameter ini disebut "tuning". Pengontrol PID dapat secara manual menyetel dan
menyetel otomatis ...
Saya menerapkan pustaka Auto-tuning untuk posisi dan kecepatan motor DC (lihat kode sumber) menggunakan
metode Relay On / Off. Kode ini ditulis untuk platform PHPoC.
Penguatan PID dari penyetelan otomatis bukanlah perolehan terbaik. Anda dapat melakukan fine-tune secara
manual berdasarkan perolehan PID dari auto-tuning.
PID PID adalah sistem loop tertutup, kita membutuhkan umpan balik dari motor DC. Oleh karena itu, untuk
menggunakan kendali PID, motor DC perlu memiliki encoder.
Encoder akan mengeluarkan sinyal, yang digunakan untuk menghitung posisi dan kecepatan sebenarnya.
Perhitungan posisi dan kecepatan dilakukan oleh pengontrol motor DC. Motor DC mengirimkan nilai yang dihitung
(disebut nilai umpan balik) kembali ke Arduino. Library pada Arduino akan melakukan penyesuaian berdasarkan
nilai feedback, nilai yang diinginkan, Kp, gain Ki dan Kd, dan staling factor. Setelah melakukan pengaturan,
Arduino mengirimkan perintah beserta nilai duty-cycle PWM ke pengontrol motor DC, motor DC akan
mengeluarkan sinyal PWM untuk mengendalikan motor DC. Proses ini diulangi dalam putaran tak terbatas.
Pengkabelan
Stack PHPoC Shield atau PHPoC WiFi Shield di Arduino
Stack DC motor controller PES-2604 pada PHPoC Shield atau PHPoC WiFi Shield
https://forum.phpoc.com/blogs/iot-lover/1289-arduino-pid-controller-auto-tuning-library-and-example-for-dc-motor 2/6
22/4/2021 Arduino - Kontroler PID, Perpustakaan Auto-tuning Dan Contoh untuk Motor DC - Forum PHPoC
Hubungkan blok terminal pengontrol motor DC ke motor DC dan catu daya untuk motor DC sebagai berikut:
(Opsional) Hubungkan port encoder pengontrol motor DC ke pin encoder motor DC sebagai berikut:
Encoder 1 terletak di baris atas port encoder. Lebih detail ada di sini
Contoh
Perhatikan bahwa, motor yang berbeda memiliki karakteristik yang berbeda pula. Anda mungkin perlu
menyesuaikan beberapa parameter seperti:
Kontrol Posisi
(Anda juga dapat menemukan kode ini di Arduino IDE -> File -> Contoh -> Pid Controller -> DcPIDPosition)
Kode:
dcPid1.beginTune ();
while (! dcPid1.loopTune ())
;
dcPid1.setEncoderPosition (0);
Serial.print (F ("Target_Position"));
Serial.print ("");
Serial.println (F ("Real_Position"));
}
https://forum.phpoc.com/blogs/iot-lover/1289-arduino-pid-controller-auto-tuning-library-and-example-for-dc-motor 3/6
22/4/2021 Arduino - Kontroler PID, Perpustakaan Auto-tuning Dan Contoh untuk Motor DC - Forum PHPoC
}
void loop () {
jika (hitung == 0)
targetPosition = 3000;
lain jika (hitung == 1000)
targetPosition = 4000;
lain jika (hitung == 2000)
targetPosition = -2000;
Perhatik an bahwa: Karena hasil bergantung pada karakteristik masing-masing motor DC, jika hasilnya kurang
baik, Anda dapat mengatur parameter lain seperti Faktor Skala, Batas integral, Batas suku integral, Periode
PWM. Kode Sumber
Kontrol Kecepatan
(Anda juga dapat menemukan kode ini di Arduino IDE -> File -> Contoh -> Pid Controller -> DcPIDSpeed)
Kode:
// Kontroler PID - Posisi Kontrol Contoh Motor DC
// Tutorial tersedia di sini: https://forum.phpoc.com/blogs/iot-lover/1289-arduino-pid-cont
#include <Phpoc.h>
#include <PhpocExpansion.h>
#include <Pid.h>
https://forum.phpoc.com/blogs/iot-lover/1289-arduino-pid-controller-auto-tuning-library-and-example-for-dc-motor 4/6
22/4/2021 Arduino - Kontroler PID, Perpustakaan Auto-tuning Dan Contoh untuk Motor DC - Forum PHPoC
// DcMotorPID dcPid2 (1, 2);
int targetSpeed;
kecepatan int;
int hitung = 0;
batal penyiapan () {
Serial.begin (9600);
sementara (! Serial)
;
//Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
Phpoc.begin ();
Expansion.begin (460800);
dcPid1.setPeriod (10000);
dcPid1.setEncoderPSR (64);
dcPid1.setDecay (0);
dcPid1.setFilterFrequency (5000);
dcPid1.setScaleFactor (8); // tergantung pada motor, harus menguji secara manual untuk mend
dcPid1.setIntegralLimit (-80000, 80000);
dcPid1.setIntegralTermLimit (-2000, 2000);
Perhatik an bahwa: Karena hasil bergantung pada karakteristik masing-masing motor DC, jika hasilnya kurang
baik, Anda dapat mengatur parameter lain seperti Faktor Skala, Batas integral, Batas suku integral, Periode
PWM.
Kode Perpustakaan
PID_Controller.zip
https://forum.phpoc.com/blogs/iot-lover/1289-arduino-pid-controller-auto-tuning-library-and-example-for-dc-motor 5/6
22/4/2021 Arduino - Kontroler PID, Perpustakaan Auto-tuning Dan Contoh untuk Motor DC - Forum PHPoC
IoT_lover berkomentar #2
06-17-2019, 09:06
halo rohuj,
saya lampirkan kode contoh dan pustaka.
Silakan periksa lagi.
Jika Anda memiliki pertanyaan, silakan berkomentar di sini!
IoT_lover berkomentar #4
07-01-2019, 09:16 AM
Perpustakaan saat ini hanya mendukung PHPoC [WiFi] Shield R2 dan pengendali motor DC PES-2604.
Untuk pengunduhan perpustakaan, dapatkah Anda memeriksanya kembali?
SISTEM SOLLAE
Semua w aktu dalam GMT + 9. Halaman ini dibuat pada 03:55.
https://forum.phpoc.com/blogs/iot-lover/1289-arduino-pid-controller-auto-tuning-library-and-example-for-dc-motor 6/6