![]() |
|
Tài trợ cho PIC Vietnam |
Điều khiển Lý thuyết điều khiển và ứng dụng lý thuyết điều khiển trong những trường hợp thực tế |
![]() |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Mar 2012
Bài gửi: 19
: |
Xin ý kiến về điều khiển vị trí động cơ DC
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.
|
![]() |
![]() |
![]() |
#2 |
Nhập môn đệ tử
Tham gia ngày: Jun 2012
Bài gửi: 7
: |
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.
|
![]() |
![]() |
![]() |
#3 |
Đệ tử 1 túi
Tham gia ngày: Mar 2012
Bài gửi: 19
: |
Đú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?
|
![]() |
![]() |
![]() |
#4 |
Nhập môn đệ tử
Tham gia ngày: Jul 2009
Bài gửi: 8
: |
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. |
![]() |
![]() |
![]() |
#5 | |
Đệ tử 1 túi
Tham gia ngày: Mar 2012
Bài gửi: 19
: |
Trích:
|
|
![]() |
![]() |
![]() |
#6 | |
Nhập môn đệ tử
Tham gia ngày: Jul 2009
Bài gửi: 8
: |
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ó. |
|
![]() |
![]() |
![]() |
#7 |
Nhập môn đệ tử
Tham gia ngày: Dec 2012
Bài gửi: 1
: |
bạn có còn cái mạch ko, có thế share mình với code dc ko, thanks
|
![]() |
![]() |
![]() |
#8 |
Đệ tử 2 túi
Tham gia ngày: Feb 2011
Bài gửi: 45
: |
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 |
![]() |
![]() |
![]() |
#9 | |
Nhập môn đệ tử
Tham gia ngày: May 2012
Bài gửi: 2
: |
Bạn cho mình xin tài liệu về mảng này vs
Trích:
|
|
![]() |
![]() |
![]() |
#10 |
Đệ tử 2 túi
Tham gia ngày: Feb 2011
Bài gửi: 45
: |
Ok !bạn cứ gửi vào mail cho mình đi!
thấn! |
![]() |
![]() |
![]() |
|
|