Xin ý kiến về điều khiển vị trí động cơ DC
1 Attachment(s)
Hiện mình đang làm đồ án về điều khiển động cơ DC có encoder theo nguyên lý servo.Về kiến thức thì mình cũng vừa học về lập trình VĐK 1 thời gian ngắn và cũng đủ nền tảng sơ sơ về lập trình chế độ PWM của PIC16F877A.Nói về đồ án mình đang làm thì mình đã làm cho động cơ quay thuận, nghịch cũng như thay đổi tốc độ động cơ , cũng như đếm số xung hồi tiếp về động cơ được rồi, nhưng hiện thầy yêu cầu thêm về điều khiển vị trí động cơ DC, cụ thể như sẽ có 3 nút nhất điều khiển góc quay của động cơ DC (vd: 90,180,270), thì khi nhấn button chọn góc nào động cơ sẽ quay tới đúng vị trí góc quay đó.Mình đọc nhiều tài liệu trên mạng nói về thuật toán PID nhưng thật sự là không hiểu mấy.Không biết ngoài cách giải thuật PID ra, còn cách nào khác để điều khiển vị trí của động cơ DC có encoder này ko? Xin mọi người cho ý kiến giúp đỡ mình nha, cảm ơn.
|
Về phương hướng thì bạn làm vậy là hoàn toàn đúng lấy xung ecoder về tính toán ra góc hoặc quãng đường đi.Nhưng bạn chú ý chút là với động cơ DC ko có phanh hay không có hãm thì khi đó dừng đúng vị trí là rất khó khăn nhất là chạy với tốc đọ cao một chút.
|
Đúng là mình đã thử lập điều kiện cho xung nếu vượt quá 1 mức nào đó sẽ làm cho động cơ quay nghịch lại để ngừng nhưng mà không chính xác được.Nên ko biết có cách nào để dừng được động cơ đúng vị trí hay ko?
|
Chào bạn mình có ý kiên thế này:
Nếu bạn dùng được thuật toán PID để đk thì động cơ chạy sẽ rất mịn và tránh rung động khi đên sđủ góc. Còn mình nghĩ đến cách đơn giản hơn để cho bạn là sẽ điều khiển đa cấp. Tức đến vị trí rồi thì sẽ bật bit cờ tràn lên và so sánh giá trị sai lệch đó (Nếu giá trị sai lệch càng lớn thì xung cấp PWM lớn và giảm dần khi xung sai lệnh nhỏ), và chia ra càng nhiều câp thì đc sẽ càng mịn. |
Trích:
|
Trích:
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ó. |
bạn có còn cái mạch ko, có thế share mình với code dc ko, thanks
|
Dung pic18f4331 do ban, tích hợp 1 bộ Qei. 8 kênh pwm.nếu điều khiển gị trí thì dùng encoder có số xung nhiều lên,tùy chất lượng của bộ điều khiển. Mình có làm bộ PID đk Động cơ DC dùng pic18f4331. Giao diện và vẽ đồ thị pid c#.nếu quan tâm gửi mail cho m:dinhnambkhn@gmail.com .ạ ở Vinh or Hà Tĩnh thì gặp nhau trao đổi.hj,đang thất nghjep free time,nên hướng dan chi tiết hơn(free nhé,chỉ muốn giúp a e thôi,^_^).phone 0909014168,sắp tới mình cũng làm 1 tutorial ,hẹn 1 tuần nữa.
Thân |
Bạn cho mình xin tài liệu về mảng này vs
Trích:
|
Ok !bạn cứ gửi vào mail cho mình đi!
thấn! |
Múi giờ GMT. Hiện tại là 07:19 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam