vấn đề bự chà pá lửa của hệ thống servo
làm sao để giảm over shot?
1 giải pháp là tăng độ phân giải encoder?
hình em lấy chỗ này
http://people.ece.umn.edu/users/riaz...dcmotpos0.html
vấn đề bự chà pá lửa của hệ thống servo
làm sao để giảm over shot?
1 giải pháp là tăng độ phân giải encoder?
hình em lấy chỗ này
http://people.ece.umn.edu/users/riaz...dcmotpos0.html
mình nghĩ over shot không phải vấn đề lớn ah . khi điều chỉnh mình bắt nó chạy biểu đồ hình vuông +phóng to biểu đồ error nên trông nó kinh thế chứ khi chạy thực tế còn có hàm gia tốc của control nên over shot chỉ có vài xung tương đương vài um trên hệ cơ ah(giả sử encoder 2000p visme 5mm) chỉ có cố gắng giảm sai số khi tăng giảm tốc là khó khăn thôi . nếu so với step mình cứ nghĩ rằng step chính xác nhưng thực ra không có đâu khi bước 1 bước nó cũng vượt ra khổi vị trí cân bằng rồi bị kéo trở về nên mới gây ra rung động đó thôi .
@ gacon bác gacon có nghiên cứu qua giải thuật servo uhu chưa ? mình thấy nó khá tốt mà viết bằng asm nên mới khám phá được 1 ít ah .
Vấn đề lớn vì dùng servo mà gia tốc thấp thì...
và ván đề rung khi motor đứng yên và có tải lại càng khó chịu
step 2 phase nó rung do cộng hưởng , step 2 phase bị trùng phase với dòng điện nện nó bị cộng hưỡng > rung và mất bước ở 2 điểm, 1 là ở tốc độ thấp 50 ~ 150 rpm cái này xử lí bằng microstep sẽ giảm được rung và mất bước, 1 đoạn nữa là tốc độ giữa 500RPM đến 900RPM
1 phần nữa do góc bước ko tuyến tính, nó méo nên true sin nó rung, 1 số drive cao cấp có chức năng 3rd harmoic correction
với kỹ thuật điều khiển mix decay độ rung được giảm thiểu
1 cái nữa step rung do bước lớn, drive sau này có chế độ nhân xung nên chạy chậm like servo
vibaration reduce với step drive đời mới của vexta
và 1 phần hạn chế của servo là khi chạy với controller laọi thấp là chạy tín hiệu step dir, các trục ko đồng bộ dược với controller, PID cũng ko đồng bọ được với việc tạo ra chuyển động từ controller
Lần sửa cuối bởi nhatson, ngày 20-04-2017 lúc 11:15:56 PM.
rung khi đướng yên và rung khi có tải có lẽ là tuning bị sai hoặc giải thuật quá tồi thôi bác ,việc treo trục z trên 1 bộ servo tuning đúng nó cũng chỉ lấy lại vị trí trong im lặng. còn việc không đồng bộ với control thì chắc chắn là có nhưng nó vẫn chính xác vượt xa độ chính xác cơ khí nên có lẽ không cần coi đó là khuyết điểm . ví dụ như mình nâng cấp con máy có độ rơ visme khoảng 2%mm với con servo có en 2000p(encoder fanuc đít vàng từ thế kỉ trước) khi tăng giảm tốc trên mach 3 với gia tốc 400 f2000 thì sai số luôn dưới 15p(khi tăng tốc) còn sai số khi chạy là dưới 2p . tính sơ bộ en có độ phân giải 8000 visme 5mm thì sai số khi tăng tốc cũng chỉ 0.0094mm,tạm đủ cho con máy cổ trong khi đó nghe đồn encoder ngày nay tới 1.000.000p thì chính xác lắm ah.
em làm 1 phép tính để thấy vấn đề servo, hệ thống servo chất lượng có tốc độ đáp ứng 5kz
hệ thống thường thường ngày nay là 1khz, 1 số servo cũ cũ ... em ko thấy đề cập, nhưng PID 1khz là thông thường em cứ tính theo 1khz
tốc độ có thể đạt được của servo là 1500RPM là tệ nhất rồi, với vít me 5mm 1500RPM là 7500mm/min > 1 giay la 125mm
PID 1khz > comand là 125/1000 ~ 0.125mm servo mới tiến hành điều chỉnh và 3 trục thì mạnh thằng nào thằng đó PID
còn chính xác ah? về độ dơn giản trong 1 số ứng dụng ... đáng nể về giá thành và hiệu năng, dùng mấy con servo làm bài test như clip mà kim dứng im khi dừng như clip cũng căng đóa ợ
1 vấn đề BỰ của servo nữa là người dùng servo hay nói TẠI TURNING SAI, vậy làm thế nào để TURNING cho đúng?
Lần sửa cuối bởi nhatson, ngày 21-04-2017 lúc 06:48:40 AM.
bác nhatson tính sai 1 số chỗ.
- mình không hiểu sao bác cho rằng tốc độ lấy mẫu 1khz là điển hinh,đồ chế của mình đã có tg lấy mẫu 300us rồi,ấy là mình làm rất lâu rồi ,đang muốn nâng cấp lên chip arm để tăng tần số lên vài lần nữa .
- f7500 là tốc độ G0,cái này sai số cũng không sao,xác lập chính xác là được còn chạy chính xác thông thường f chỉ 2000 trở xuống .
-control không bắt servo chạy ngay tốc độ tối đa mà chạy theo hàm gia tốc nên thổi điểm ban đầu f rất thấp,servo bám theo vẫn trễ nhưng rất ít chứ không như bác tính.
còn muốn tuning đúng thì đương nhiên cần người có chuyên môn và phải có biểu đồ +bảng thống kê error ,còn không thì cần người có kinh nghiệm và kết quả cũng tàm tạm .
mình chưa thử cách test trên bao giờ vì mình nghĩ servo chạy vọt lố tới mức dùng mắt nhìn thấy thì quá tệ rồi , mình chỉ tin vào thống kê error thôi .
Lần sửa cuối bởi cuongmay, ngày 21-04-2017 lúc 07:43:51 AM.
Hi anh Caocuong,
Cái UHU ELM ngày xưa em nghiên cứu nát ra. Nhòm đi nhòm lại thấy...nó cũng giống mình, nhưng chuẩn mực hơn.
Tuy nhiên vẫn còn những hạn chế về tốc độ. Với bản Free xài Tiny2313, tần số đọc xung enc chỉ max 100kHz, với enc 1.000ppr tiêu chuẩn thì tốc độ chạy chỉ được tối đa 1.500rpm. Bản thương mại hình như công bố max 250kHz cũng còn quá thấp (max 3.750rpm với enc 1.000ppr).
Với em, e tách 2 con VXL xử lý 2 tác vụ độc lập, cũng chỉ tự tin đọc đến 4-500kHz (tương đương max 6.000rpm với enc 1.000ppr), càng nhiễu thì tốc độ đọc càng thấp do phải đụng các vòng lặp kiểm tra. Với VXL đời mới hơn, tốc độ không phải là vấn đề nhưng ta lại đụng phải giới hạn khác về kỹ thuật đi dây, giải thuật chống nhiễu (phần mềm không phải phần cứng)... nên cỡ loanh quanh mức 4-500kHz là an toàn.
Với con chip UHU thương mại, giá 10$/con thật tình e thấy quá rẻ, nhưng e chưa xài thử. Trên này e biết có cụ Giang nick Ghoang có mua, chắc nhờ anh ấy vào chia sẻ thêm về thực tế quá.
Thanks.
UHU thương mại chỉ khuyến cáo chạy với ENC 500~1000 là tốt nhất, lúc trước em có thử với motor 2500ppr ~ 10000 cpr chạy tốc độ 1000rpm con chíp báo encoder tracking error
Em tính toán lại thì thấy: nhà sản xuất khuyến cáo tần số tối đa là 150Khz, em chay 1000rpm với encoder 2500 xung thì tần số là 166KHz nó báo lỗi là đúng
Có so sánh với driver của bác gacon thì thấy tốc độ cao hơn
Lần sửa cuối bởi ghoang, ngày 21-04-2017 lúc 11:52:51 AM.
SDT: 078.423.4424.
Email: giangxuanhoang@gmail.com.
Vụ đọc enc, có cách nào đọc hiệu quả ở chip tốc độ thấp không ạ?
Cụ nào chỉ điểm giúp em với. Lúc trước làm với arduino em vẫn chưa hài long lắm.
DT: O7837277II - CKD's Youtube Channel - Facebook - Tổng hợp chủ đề
17 ds 3, Thạnh Mỹ Lợi, Q2, tp.HCM
giờ chip mạnh rẻ, dùng MCU ko có module encoder chi cho cực vậy ta
như cụ gacon phài dùng 2 chip kia, em là em chơi ic chuyên dùng hoặc CPLD đọc encoder AB> paraller hoặc truyền SPI cho lành
ko pán là độ luôn con encoder, có con MCU chuyên để counter dưới đó rồi truyền về con MCU controller
Một số chip chuyên đọc encoder em đã gặp:
- uPD4701A, đọc 2 kênh, tốc độ max 500kHz, xài từ những năm 198x, e hay gặp trong các máy cắt dây, bắn điện đời cổ lỗ sĩ. Giao tiếp song song. Đời mới mình lập trình không ngon chưa chắc qua những chip này.
- Những chip lập trình cứng của hãng LSI/CSI như LS7266, LS7566, đọc enc nhiều trục, có chức năng làm enc ABS, giao tiếp nối tiếp.
Thực tế e không đánh giá cao mấy module đọc encoder tích hợp của mấy chip như PIC, vì cơ chế hoạt động của nó. Có thể do cảm tính hoặc do ấn tượng không tốt (em không xài PIC nhưng e xài AVR Mega với mode ngắt pinchange cho đọc encoder, kết quả không tốt như giải thuật vòng lặp).
Thanks.