Các bác cho em hỏi ý nghĩa những dòng sau(copy trong code mấy bài trên ):
1) v_set = 350; v_set là tốc độ động cơ tính bằng xung hay là tính bằng vòng/phút hay tính bằng gì?
2) Các thông số Kp,Ki,Kd lấy ở đâu?
unsigned long kp =2.5;
unsigned long ki = 0.0092;
unsigned long kd = 0;
3) Giải thích giùm em đoạn code sau:
void cal_pid()
{
e2 = v_set - v_cur;
e_sum += e2;
e_del = e2 - e1;
e1 = e2;
temp_kp = kp*e2;
temp_ki = ki*e_sum;
temp_kd = kd*e_del;
pw_duty +=temp_kp;
if (pw_duty <1000)
pw_duty += temp_ki;
if (pw_duty <1000)
pw_duty += temp_kd;
if (pw_duty <256) // vi khi pw_duty <256 thi PWM chi dieu rong xung 8 bit / //chu khong phai 10 bit,
pw_duty = 256;
if (pw_duty >1000) // bao hoa
pw_duty = 1000;
printf(" \t%ld", v_cur); // truyen toc do xung ve may tinh hien thi tren Hyperterminal
}
|