Saya menerapkan kontroler PID untuk kontrol kecepatan motor. Saya sudah selesai dengan menerapkan kontrol PI dan itu berfungsi dengan baik untuk saya. Dalam spesifikasi saya telah diberitahu untuk menerapkan teknik penyaringan dengan menggunakan persamaan berikut untuk bagian D:
Sekarang apa yang saya pahami sejauh ini, adalah yang secara umum s
mewakili "dx/dt"
yang sesuai dengan tingkat perubahan kesalahan, tetapi di sini saya dapat menghubungkannya dengan tingkat perubahan umpan balik. Td/N
adalah untuk membatasi output gain secara keseluruhan (harap saya mendapatkan hak ini). Sekarang untuk mewakili ini dalam hal kode C, saya mencoba cara berikut:
s = (CurrentFeedback()-Old_Feedback)*100/(MaxFeedback()); //to calculate the % change in feedback
s = s*1000/sampleTime; //1000 is multiplied because sampleTime is in milliseconds
D = (Td*s)/(1+(s*Td/N));
D = D*KP; //Kp is multiplied as per the standard pid equation.
Old_Feedback = CurrentFeedback();
PID = P+I-D;
Yah hasilnya dengan menambahkan D bukan yang telah saya prediksi. Saya hanya ingin tahu apakah saya menerapkan persamaan bagian D dengan benar? Apakah saya membuat kesalahan dalam pemahaman saya tentang matematika dasar diferensiasi?
CATATAN: Saya tidak bebas untuk mengubah penghitungan ulang kp, ti, td karena langsung dari VFD.
sumber
Jawaban:
Saya punya 3 poin untuk dibagikan:
1-Saya akan memberi tahu Anda mengapa orang-orang mengacaukan interms istilah D, PID = P + I + D tetapi, D = kd * (error -olderror), dan dalam kontrol posisi jika Anda mendekati titik setel, selalu lebih lama <error jadi istilah D akan negatif, dan dengan demikian mengurangi output dan mencegah overshoot.
2-Mengenai waktu, jangan membagi atau menggunakan waktu. karena Anda menggunakan mikrokontroler tertanam, gunakan tetapkan saja waktu dan batalkan dari semua persamaan: misalnya gunakan penghitung waktu untuk menghasilkan konstanta waktu 1 ms dan panggil fungsi Anda di dalam.
3-Mengapa Anda menggunakan PID untuk kontrol kecepatan, 90% dari waktu PI cukup dalam kontrol kecepatan, karena D di sini lebih seperti kontrol percepatan.
Semoga itu bisa membantu
sumber