Mình muốn điều khiển động cơ dùng PID,sử dung PIC 16F887, tần số thạch anh 4MHz, mình làm thế này:
- Trong chương trình ngắt timer1 để lấy mẫu 20ms
+ Đọc tốc độ từ encoder về
+ Tính sai số và tín hiệu điều khiển u
+ Điều chế xung PWM( chu kì 10Khz) cấp cho động cơ theo tín hiệu điều khiển u
Nhưng khi có những lệnh tính sai số e, u điều khiển thì tốc độ đọc về lại bị sai hết.
Không biết mình điều xung trong hàm ngắt 20ms thì có ảnh hưởng gì không?Mong mọi người giúp đỡ.....;)
- Trong chương trình ngắt timer1 để lấy mẫu 20ms
+ Đọc tốc độ từ encoder về
+ Tính sai số và tín hiệu điều khiển u
+ Điều chế xung PWM( chu kì 10Khz) cấp cho động cơ theo tín hiệu điều khiển u
Nhưng khi có những lệnh tính sai số e, u điều khiển thì tốc độ đọc về lại bị sai hết.
Không biết mình điều xung trong hàm ngắt 20ms thì có ảnh hưởng gì không?Mong mọi người giúp đỡ.....;)