He he!
Báo cáo.
- PWM dùng timer bác ạ. 1kHz là mặc định.. bước đầu test để thử code nên không quan tâm nhiều vấn đề này. Maximum nó có thể là 31 hoặc 62kHz tùy vào dùng timer 8 hay 16bit ạ.
- Tần só tính PID cũng điều chỉnh được
Sẽ thay đổi PWM frequency & PID requency rồi làm lại clip cho các bác nhé
Định là nghiên cứu và dùng luôn mô hình cascade PID để kiểm soát đồng thời position/speed hoặc position/speed/torque luôn. Nhưng chưa tìm được cách code sao cho nó hiệu quả và chiếm ít tài nguyên, ít đơn vị tính trên float để tăng tốc. Dây chính là nhược điểm của 8bit đúng không mấy bác
. Nhưng mà mấy ông chú làm được.. mà mình không làm được là còn dở.. mà còn dở thì còn nghiên cứu & học
, nếu thành công thì vui
, nếu thất bại thì biết là ta còn nhiều hạn chế
Cũng nói thêm về việc đọc encoder, tính vị trí, tính tốc độ.
Trước khi tiến hành dã tìm hiểu qua các ứng dụng đọc encoder, cũng như các đánh giá về hiệu quả của các phương pháp. Thấy kết luận sơ bộ có thể tóm tắt thế này:
- Đọc bằng ngắt gì đó trong timer.. nôm na là đo thời gian giữa 2 lần ngắt, cái này hiệu quả cho đo tốc độ nhiều hơn. Chưa rành timer nên không chơi môn này.
- Đọc bằng ngắt ngoài và xử lý bằng code. Cách này được cho là đọc chính xác nhất, nhược điểm duy nhất là chiếm tài nguyên. Nếu đọc tần số lớn thì VXL nó nghỉ luôn, không thèm làm gì khác.
- Đọc bằng counter. Ưu là nó chạy độc lập với core vxl, nên không chiếm thời gian xủ lý chương trình. Chương trình cứ định kỳ đọc giá trị đếm và xử lý tuần tự, chỉ cần tần số đọc giá trị đủ lớn (trước khi counter bị tràn giá trị) là được. Nhước điểm là nếu chỉ dừng ở đây thì chưa xác định được chiều quay, muốn thì phải làm thêm ít việc nữa
. Nhưng cách này được đánh giá là không chính xác khi tốc độ chậm hoặc thay đổi lớn.
Các ưu/nhược thế kia chưa ứng dụng hết nên không thể kết luận là trong mô hình position control thế này, cái nào cho ưu điểm hơn cái nào, nhất là cái cuối cùng.. có nhiều đánh giá là không chính xác.. nhưng cụ thể là thế nào thì chưa biết.
Vì mục đích dơn giản hóa tối đa cho thí nghiệm nên chọn phương pháp đọc encoder bằng ngắt ngoài.
- Ưu điểm.. đơn giản & chính xác nhất có thể. Xử lý và đếm encoder bằng code.
- Nhược điểm.. không phù hợp với encoder nhiều xung, với vận tốc lớn (tần số lấy mẫu lớn).
Trong mô hình nghiên cứu lý thuyết & thực nghiệm, CKD nghĩ là còn nhiều nhược điểm nhưng tạm có thể chấp nhận được. Mô hình hoàn hảo thì việc nâng cấp core xử lý là vô tư