Hỏi về thuật toán PID

NTP.GDS

Trứng gà
Chào mọi người,

Hôm nay xem lại thuật toán PID, mình có chuyện thắc mắc như sau: trong hình dưới Kí hiệu T trong công thức trên có phải là chu kì lấy mẫu khi đọc encoder không. (trong chương trình của mình mình lấy mẫu với chu kì 200ms).




Cảm ơn mọi người.
 

cowboyhere

Cố Vấn CLB
Staff member
T là chu kì tính PID, còn encoder thì đọc digital luôn, T này ko nhất thiết bằng thời gian đọc encoder, nhưng khi tính PID phải đảm bảo là các thông số feedback phải có rồi. Do T này cố định nên thường gom thành 3 hệ số thôi là được, bạn tham khảo thêm trong firmware RYA2013, khi chuyển thành code ta phải rời rạc và gần đúng các khâu tích phân vi phân, các công thức trên giúp mình hiểu rõ hoạt động của PID chứ khó tính trực tiếp.
thân.
 

NTP.GDS

Trứng gà
Chào bạn,

Ở trên mình còn thiếu công thức tính cuối cùng:
u(k) = u(k-1) + a0*e(k) + a1*e(k-1) + a2*e(k-2). Thông qua việc chọn T, Kp, Ki, Kd thì ta dùng công thức này điều khiển.
Cái mình muốn hỏi là T được tính dựa vào đâu, hồi trước làm mình cho đại T = 1 luôn nên không biết Kp, Ki, Kd chính xác có giá trị là bao nhiêu, giờ thì mình muốn biết chính xác những giá trị này.

Bạn nói mình không hiểu lắm, như bạn nói thì T là chu kì đọc từ cảm biến hồi tiếp về hay là chu kì tính toán PID trong MCU.

Cám ơn bạn.
 
Top