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.