Tôi đang thực hiện một bộ điều khiển PID để điều khiển tốc độ động cơ. Tôi đã hoàn thành việc thực hiện kiểm soát PI và nó hoạt động hoàn toàn tốt đối với tôi. Trong đặc tả tôi đã được yêu cầu thực hiện một kỹ thuật lọc bằng cách sử dụng phương trình sau cho phần D:
Bây giờ những gì tôi hiểu cho đến nay, đó là s
đại diện "dx/dt"
chung tương ứng với tốc độ thay đổi lỗi, nhưng ở đây tôi có thể liên hệ nó với tốc độ thay đổi của phản hồi. Td/N
là để giới hạn sản lượng khuếch đại tổng thể (hy vọng tôi đã làm đúng). Bây giờ để thể hiện điều này theo mã C, tôi đã thử cách sau:
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;
Vâng, kết quả bằng cách thêm D không phải là những gì tôi đã dự đoán. Tôi chỉ muốn biết nếu tôi thực hiện đúng phương trình phần D? Tôi có phạm sai lầm nào trong sự hiểu biết của tôi về các phép toán cơ bản của sự khác biệt không?
LƯU Ý: Tôi không được tự do thay đổi việc tính toán lại kp, ti, td vì nó đến trực tiếp từ VFD.