Thông báo

Collapse
No announcement yet.

Vấn đề sai số khi đo tốc độ động cơ một chiều

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Vấn đề sai số khi đo tốc độ động cơ một chiều

    Chào mọi người,em đang đo tốc độ động cơ với độ phân giải của encoder là 200 xung/vòng

    Mình lấy mẫu trong thời gian 500ms nhưng lại gặp phải vấn đề là tốc độ động cơ không ổn định,cứ sau 500ms thì tốc độ lại thay đổi(ko biết như thê có phải là dải điều chỉnh lớn ko?).Lúc đầu mình đã thử các lấy mẫu với 20ms,30ms thì do thời gian lấy mẫu nhỏ ,nên lây xung như thế bị sai số là(1/số xung thu đuợc) nên ko nhìn thấy,còn khi tăng thời gian lấy mẫu là 200ms thì thu được xung(khi động cơ chạy chế độ xác lập) từ 140 đến 230 (với encoder là 200 xung/vongthi tốc độ tương ứng là 3,5 vòng/s đên 5,5 vòng/s),và khi mình thử lấy mẫu với 500 ms thì từ 6vong/s đến 8 vòng/s
    Ai biết nguyên nhân tại sao ,chỉ giáo cho mình vớii
    Cám ơn nhiều

  • #2
    Nguyên văn bởi bk2012 Xem bài viết
    Chào mọi người,em đang đo tốc độ động cơ với độ phân giải của encoder là 200 xung/vòng

    Mình lấy mẫu trong thời gian 500ms nhưng lại gặp phải vấn đề là tốc độ động cơ không ổn định,cứ sau 500ms thì tốc độ lại thay đổi(ko biết như thê có phải là dải điều chỉnh lớn ko?).Lúc đầu mình đã thử các lấy mẫu với 20ms,30ms thì do thời gian lấy mẫu nhỏ ,nên lây xung như thế bị sai số là(1/số xung thu đuợc) nên ko nhìn thấy,còn khi tăng thời gian lấy mẫu là 200ms thì thu được xung(khi động cơ chạy chế độ xác lập) từ 140 đến 230 (với encoder là 200 xung/vongthi tốc độ tương ứng là 3,5 vòng/s đên 5,5 vòng/s),và khi mình thử lấy mẫu với 500 ms thì từ 6vong/s đến 8 vòng/s
    Ai biết nguyên nhân tại sao ,chỉ giáo cho mình vớii
    Cám ơn nhiều
    hix,do mình lấy xung ko chuẩn các bác ,ạh,lúc trước em lấy cung từ encoder về thấy,khi soi qua osilo thì nó là xung sin,thấy vô lý,xem lại dây nối,thấy không ổn,thay dây khác,soi lại trên osilô,ra xung vuông chuẩn,hê hê,nhưng mình thấy chưa hiểu về cái núm mà đề là time/div,mình để ở chế độ là 50us,và đếm được 5 xung,mình ko hiểu lắm về cái time/div.ai biết chỉ cho mình với
    Còn cái tốc độ ko ổn định,là do mình dùng nguồn ko ổn định,nên lúc thì nó chạy với 12 V,lúc thì nó sụt áp chỉ còn 6V,thấy lạ quá,nên thay thử nguồn chuẩn,thấy chạy vè vè,và tính ra vận tốc từ khoảng 10ms,20ms, lần lượt là dao động quanh giá trị 1880vòng/phút, và1910 vòng/phút,nhưng vẫn có hiện tựonh là led cuối nhảy số nhanh,???,thế là tính vận tốc sau 100ms,thấy vân tốc thay đổi quanh giá trị 1800 vòng/phút,tức là vẫn có sai số,nhưng là do ở đâu,encoder của mình là 200 xung/vòng
    Ai đã từng làm chỉ cho mình biết với
    Cám ơn nhiều

    Comment


    • #3
      Nguyên văn bởi bk2012 Xem bài viết
      nhưng mình thấy chưa hiểu về cái núm mà đề là time/div,mình để ở chế độ là 50us,và đếm được 5 xung,mình ko hiểu lắm về cái time/div.ai biết chỉ cho mình với
      Cám ơn nhiều
      Trên osciloscope, núm time/div để điều chỉnh khoảng (range) của chu kì (tần số) của tín hiệu cần đo.
      Bạn quan sát trên osciloscope thấy các vạch ngang và dọc như caro.
      Trục đứng là biên độ, trục ngang là chu kỳ. Một ô tương ứng với 1 div.
      Bạn quan sát tín hiệu của bạn được mấy div thì suy ra chu kỳ (tần số) của tín hiệu cần đo.
      More friends more foods

      Comment


      • #4
        Nguyên văn bởi bk2012 Xem bài viết
        hix,do mình lấy xung ko chuẩn các bác ,ạh,lúc trước em lấy cung từ encoder về thấy,khi soi qua osilo thì nó là xung sin,thấy vô lý,xem lại dây nối,thấy không ổn,thay dây khác,soi lại trên osilô,ra xung vuông chuẩn,hê hê,nhưng mình thấy chưa hiểu về cái núm mà đề là time/div,mình để ở chế độ là 50us,và đếm được 5 xung,mình ko hiểu lắm về cái time/div.ai biết chỉ cho mình với
        Còn cái tốc độ ko ổn định,là do mình dùng nguồn ko ổn định,nên lúc thì nó chạy với 12 V,lúc thì nó sụt áp chỉ còn 6V,thấy lạ quá,nên thay thử nguồn chuẩn,thấy chạy vè vè,và tính ra vận tốc từ khoảng 10ms,20ms, lần lượt là dao động quanh giá trị 1880vòng/phút, và1910 vòng/phút,nhưng vẫn có hiện tựonh là led cuối nhảy số nhanh,???,thế là tính vận tốc sau 100ms,thấy vân tốc thay đổi quanh giá trị 1800 vòng/phút,tức là vẫn có sai số,nhưng là do ở đâu,encoder của mình là 200 xung/vòng
        Ai đã từng làm chỉ cho mình biết với
        Cám ơn nhiều
        bác dùng cái gì để nhận xung vào, lúc trứoc mình làm bằng chân T0 của AT89, cứ sau 500ms thì tính vận tốc 1 lần thấy cũng khá chính xác. encoder của mình chỉ có 8 khe (8 xung/vòng) hà, vận tốc motor cũng khoảng 1000 vòng/phút à. có lẽ do chân nhận tín hiệu của bác đáp ứng với tần số lớn không kịp nên gây ra tình trạng sai số lớn. bác đổi encoder có số khe thấp hơn thử xem sao, coi xem là tại encoder hay là tại chương trình mình tính chưa đúng.
        hãy cố gắng dù vướn phải thất bại!!!!!!!!

        Comment


        • #5
          thực ra bạn có thể nghĩ các cách khác để đo vận tốc.
          cách 1. cho vào ngắt, ví dụ cho xảy ra 5 ngắt tính thời gian đó và tính vận tốc.
          cách 2. cho vào timer ở chế độ counter, tính tốc độ sau khoảng thời gian.
          cách 3. đo thời gain giữa hai cạnh xung và tính vận tốc.
          cách 4. cho vào input capture để tính vận tốc.
          bạn thử suy nghĩ các cách đó xem.
          cố lên anh em.

          Comment


          • #6
            Nguyên văn bởi bk2012 Xem bài viết
            hix,do mình lấy xung ko chuẩn các bác ,ạh,lúc trước em lấy cung từ encoder về thấy,khi soi qua osilo thì nó là xung sin,thấy vô lý,xem lại dây nối,thấy không ổn,thay dây khác,soi lại trên osilô,ra xung vuông chuẩn,hê hê,nhưng mình thấy chưa hiểu về cái núm mà đề là time/div,mình để ở chế độ là 50us,và đếm được 5 xung,mình ko hiểu lắm về cái time/div.ai biết chỉ cho mình với
            Còn cái tốc độ ko ổn định,là do mình dùng nguồn ko ổn định,nên lúc thì nó chạy với 12 V,lúc thì nó sụt áp chỉ còn 6V,thấy lạ quá,nên thay thử nguồn chuẩn,thấy chạy vè vè,và tính ra vận tốc từ khoảng 10ms,20ms, lần lượt là dao động quanh giá trị 1880vòng/phút, và1910 vòng/phút,nhưng vẫn có hiện tựonh là led cuối nhảy số nhanh,???,thế là tính vận tốc sau 100ms,thấy vân tốc thay đổi quanh giá trị 1800 vòng/phút,tức là vẫn có sai số,nhưng là do ở đâu,encoder của mình là 200 xung/vòng
            Ai đã từng làm chỉ cho mình biết với
            Cám ơn nhiều
            1. Từ encoder trước khi vào VDK bạn thử cho qua một opto xem, một cách để khử nhiễu tránh sai số đấy.

            2. Ngoài điện áp cấp cho motor đã ổn định chưa, xem thử dòng nguồn có đủ để đáp ứng nuôi motor không ?

            Comment

            Về tác giả

            Collapse

            bk2012 Tìm hiểu thêm về bk2012

            Bài viết mới nhất

            Collapse

            Đang tải...
            X