View Single Post
Old 12-10-2012, 04:26 PM   #6
trihung12a1
Nhập môn đệ tử
 
Tham gia ngày: Jul 2009
Bài gửi: 8
:
Trích:
Nguyên văn bởi boy_legend View Post
Chào bạn, về thuật toán PID thì thật sự mình không biết cách sử dụng thế nào, mình đã thử thêm công thức PID vào nhưng không biết dùng nó để điều khiển vị trí thế nào cả.Còn về cách 2 bạn nêu, mình thì do ước chừng, ví dụ mình encoder 100xung/vòng nên nếu muốn quay 180 thì có lẽ là 50xung, thì mình lập điều kiện nếu xung >=50 sẽ cho quay nghịch lại, còn nhỏ hơn 50 thì lại quay thuận, nếu =50 thì dừng động cơ.Với cách này thì động cơ chứ quay tới quay lui với 1 góc sai lệch lớn lắm(tốc độ động cơ mình cho cố định 1 giá trị).
Chính xác đó bạn nếu để 1 giá trị PWM khá lớn thì nó sẽ giật động cơ. Cho nên mình mới nói bạn đk đa cấp. Mình cho bạn vd như sau:

if(setpoint-encoder)>10
{dir=1;pwm=1023;}
else if(setpoint-encoder)<-10
{dir=0;pwm=1023;}
else ifif(setpoint-encoder)>5
{dir=1;pwm=500;}
else if(setpoint-encoder)<-5
{dir=0;pwm=500;}
.
.
.
.
bạn càng để nhiều cấp thì dcow bạn sẽ càng ít giật.
Đây chỉ là 1 pa để bạn làm tuy nhiên bạn nên xem thêm phân đk pid bởi vì nó cg ko khó.
trihung12a1 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn