Thông báo

Collapse
No announcement yet.

ĐO TỐC ĐỘ BẰNG CẢM BIẾN TỪ : giúp em voooi...

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

  • ĐO TỐC ĐỘ BẰNG CẢM BIẾN TỪ : giúp em voooi...

    Em có thằng bạn học bên cơ khí, nó muôn hợp tác làm đề tài với phần đo đạc. Chúng em cần đo tốc độ động cơ dùng cảm biến điện từ với đặc điểm sau:

    +Cảm biến điện từ 24 răng (loại dùng trên oto ấy)
    +Phát xung dạng SIN có biên độ tỉ lệ thuận với tốc độ quay
    Các huynh xem chỉ em làm chút.
    Em dự định làm như sau:
    -biến đổi xung sin cảm biến phát ra về dạng xung vuông.
    -Đo tốc độ bằng cách dùng bộ Input Capture của ATmega16 để đo khoảng cách giữa 2 cạnh lên hoặc 2 cạnh xuống của 2 xung liên tiếp sau đó thực hiện phép chia tìm tốc độ quay

    Em làm thử và gặp vấn đề là khi quay do sai số cơ khí làm tốc độ quay của bánh răng cảm biến ko phải lúc nào cũng như nhau khi để ở một tốc độ cố định (em dùng PWM điều chỉnh tốc độ động cơ) làm cho giá trị lấy được từ bộ input capture luôn có sai số với nhau nên khi chia tìm tốc độ và hiển thị ra led7seg tốc độ nó ko ổn định (khi ta đặt ở một tốc độ cố định).Mong các anh chỉ em cách khử sai số đó hoặc chỉ em cách đo khác khử được sai số.
    Em có thử lấy trung bình của nhiều lần đo nhưng cũng không cải thiện mấy
    ghi chú: phần cơ khí em thấy làm cũng khá ổn nhưng sai số vẫn lớn, trông tệ lắm
    Last edited by apple; 09-08-2008, 00:01.
    Mấy ai định nghĩa được tình yêu.
    Có gì đâu một buổi chiều.
    Kề dao lên cổ yêu hay chết .
    Gật đầu cái rụp thế là yêu.

    --------
    Apple

  • #2
    Mình cũng đang làm thứ tương tự,

    Ban đầu mình dùng 1 timer 16 bit và 1 counter chạy đồng thời. Counter đếm xung 10 hay 100 hay 200 gì đó, cuối cùng tạo ngắt so sánh cho counter, lấy timer chia cho counter tính ra chu kỳ. Kết quả khá ổn định tuy nhiên nảy sinh các vấn đề sau:
    - Hallsensor 1 xung / 1 vòng nên đáp ứng rất chậm, 24 xung/vòng cũng là chậm. Nhiêu motor dùng đĩa encoder đến 100-200 vạch/vòng
    - Tốc độ quay thay đổi thì timer cần phải thay đổi nhịp đếm từ prescaler, nếu không độ phân giải sẽ kém.
    - Khởi tạo timer và counter sao cho phải đồng thời, hay hay không ở chỗ này, nếu không sẽ giảm độ chính xác do counter chỉ đếm số lần (10.1 hay 10.9 cũng là 10)

    Nếu đề tài bạn không đòi hỏi tốc độ đưa ra kết quả phải cao, đáp ứng phải nhanh thì nên thử cách trên xem. Bằng không thì cứ tiếp tục phương án ICP và thêm các yếu tố sau:

    - Xử lý xung điện từ bộ encoder, tối thiểu phải có bộ lọc nhiễu, biến đổi sin->vuông trước khi đưa vào AVR
    - AVR nên chạy chế độ khử nhiễu (noise canceler)
    - Tệ hơn nữa thì đưa tín hiệu vào chân analog comparator, mình chưa làm nhưng đoán kết quả có thể khả quan

    Bạn thử xem và cho mình biết kết quả với, chúc thành công
    Đẹp từng kilomét

    Comment


    • #3
      Mà xài AVR chi cho cực thân, xài con LM-2907 biến đổi f->V cho khỏe
      Đẹp từng kilomét

      Comment


      • #4
        Cảm ơn ý kiến của bạn.
        Mình nghĩ bạn dùng 1 bộ timer 16bit và 1 counter sau đó chia ra lấy chu kỳ thì cũng giống với dùng bộ Input Capture vì bộ này đo khoảng cách thời gian giữa 2 xung mà. Tại sao bạn không dùng nó mà lại làm theo cách của bạn phải mất công căn chỉnh thời điểm khởi tạo, phải chăng dùng cách của bạn có thể khử được sai số, bạn có thể giải thích rõ hơn cho mình được không.
        +Tất nhiên mình cũng đã biến đổi sin -> vuông thì mới dùng Input Capture
        +Còn về bộ lọc nhiễu thì bạn có phương án lọc nhiễu nào tốt không chỉ mình với nhé (có mạch thì càng đa tạ...)
        +Cảm biến mình dùng để đo là loại điện từ nằm trên động cơ oto để đo tốc độ động cơ. Thằng bạn mình được cấp để làm đề tài. Tụi mình mô phỏng lại bằng cách cho dẫn động nó bằng một động cơ điện có tốc độ max khoảng 2000 bằng một nửa tốc độ max thực tế khi nó hoạt động trên động cơ.
        +tụi Mình đo và nhân hệ số lên 2 lần để mô phỏng cho giống thực tế và dùng nó để điều khiển một vài cái valve khác, hiển thị tốc độ lên 4 con led7seg


        ghi chú: động cơ oto khi hoạt động do các thì hoạt động khác nhau nên chắc chắn nó sẽ không ổn định bằng ta tháo ra cho dẫn động bởi động cơ điện, thế mà sao khi đo vẫn thấy nhiễu quá trong khi trên xe oto nó là một cảm biến quan trọng để hệ thống máy tính điều khiển chính xác hoạt động của động cơ.
        Mấy ai định nghĩa được tình yêu.
        Có gì đâu một buổi chiều.
        Kề dao lên cổ yêu hay chết .
        Gật đầu cái rụp thế là yêu.

        --------
        Apple

        Comment


        • #5
          Như bạn nói cảm biến của là loại MPU (Magnetic pick up). Muốn xài loại này phải qua xử lý sóng sin --> xung vuông và cần phải có bộ lọc nhiễu.
          Sao bạn không xài thử loại Opto Pick Up. Cái này sử dụng hiệu ứng phản xạ quang nên nhiễu về từ trường là rất ít.
          Hiện nay có các loại đồng hồ đo tốc độ rất chuẩn của Autonics tín hiệu ra đã chuyển đổi thành 4-20mA, có thể điều khiển cả PID. Sao phải làm lại cho tốn công.
          Have fun!

          Comment


          • #6
            Sao bạn không xài thử loại Opto Pick Up
            Muốn can thiệp vô một hệ thống e rằng phải tìm hiểu cái họ đang sử dụng thôi. Với motor mình vẫn thấy họ đang dùng hall sensor, kể cả step motor, chịu.

            cũng giống với dùng bộ Input Capture vì bộ này đo khoảng cách thời gian giữa 2 xung mà
            thật sự là mình vẫn chưa dùng ICP, vì đọc thấy vẫn phải xử lý nhiều quá. Không biết mình hiểu thế này có đúng không:
            - Với một xung phải đọc ICP đến lần thứ 3. Lần đầu để khởi tạo, lần 2 ngược pha bỏ qua, lấy lần 3 là lần lặp lại. Vậy chu kỳ = t3 - t1.
            - Nếu cứ lấy rời rạc từng xung một, dù có cộng trung bình, e rằng vẫn không thể chính xác do bộ [sin->vuông] cũng vô chừng. Lý giải theo hình bạn coi có hợp lý không

            - Cũng có cách lấy liên tục dùng ngay ICP, chọn timer chậm hơn, lấy lần thứ 2n+1 lần để tính ra n cycle, cách này có thể tính trung bình một loạt n xung thay cho n xung lẻ tẻ. Lý luận vậy có hợp lý không, bạn check lại thử. Mình cũng sẽ thử
            Đẹp từng kilomét

            Comment


            • #7
              Khi dùng ICP đúng la ta phải chọn độ phân giải presscaler của timer để nó không bị tràn trước khi một sự thay đổi mức(sự kiện) xảy ra tại chân ICP.
              Mình xin nói chút xíu về ICP của một chíp AVR điển hình ATmega16:
              +Hoạt động của bộ ICP chíp này:
              -ICP là một thành phần của timer1 - 16bit
              -Khi muốn dùng ICP ta sẽ khởi tạo cho timer này chạy tự do ở chế độ 8bit max, 10bit max hay 16bit max tùy mức độ cần thiết
              -Khi có một sự kiện xảy ra tại chân ICP tùy theo ta thiết lập là cạnh lên hay cạnh xuống của xung bộ ICP sẽ tạo ra một ngắt riêng của nó để ta làm gì mà ta muốn đồng thời nó sẽ đưa giá trị đếm của timer1 (TCNT1H-TCNT1L) vào thanh ghi giá trị capture ICR1 (ICR1H-ICR1L)
              -Giá trị chứa trong cặp thanh ghi ICR1 chính là thời điểm xảy ra sự kiện ở chân ICP từ khi khởi tạo timer (tất nhiên là ta phải chú ý đến vấn đề tràn của timer trước khi xảy ra sự kiện ICP)

              Như vậy nếu ta lấy thời gian xảy ra của 2 sự kiện liên tiếp trừ cho nhau thì sẽ ra khoảng cách thời gian giữa hai sự kiện (chu kỳ xung)
              Hoặc ta có thể lấy tương đối bằng cách
              -ta sẽ bỏ qua sự kiện đầu tiên sau khi khởi tạo timer
              -Sau khi lấy được thời điểm xảy ra của một sự kiện ta sẽ reset cặp thanh ghi TCNT1 về 0 để timer bắt đấu đếm lại
              -Như vậy khi sự kiện tiếp theo xảy ra thì giá trị chứa trong căp thanh ghi ICR1 chính là thời gian cách nhau của hai sự kiện liên tiếp, ta không cần phải làm phép trừ nữa

              Mình nói lấy tương đối vì ta sẽ bị sai số ở công đoạn reset lại TCNT1 nhưng thời gian cho reset phải nói là rất nhỏ, có thể chấp nhận bỏ qua.

              Đối với những phép đo mà thời gian giữa hai xung lớn khiến timer luôn bị tràn trong khoảng thời gian giữa 2 sự kiện thì ta bắt buộc phải tiến hành cộng dồn mới đo được.

              Hy vọng chút thông tin nhỏ của mình sẽ giúp bác Kilodeth trong việc thử nghiệm bộ ICP.
              Nếu bạn có mạch xử lý chống nhiễu hay cách đo nào khác tốt thì post lên cho mình với nhé. Mình đang rất cần...

              Bác Kilodeth cho hỏi con LM2907 mua có dễ ko vậy, mình ở Saigon, ngoài chợ Nhật Tảo liệu có ko nhỉ ?
              Last edited by apple; 12-08-2008, 23:42.
              Mấy ai định nghĩa được tình yêu.
              Có gì đâu một buổi chiều.
              Kề dao lên cổ yêu hay chết .
              Gật đầu cái rụp thế là yêu.

              --------
              Apple

              Comment


              • #8
                Nguyên văn bởi Lee Xem bài viết
                Như bạn nói cảm biến của là loại MPU (Magnetic pick up). Muốn xài loại này phải qua xử lý sóng sin --> xung vuông và cần phải có bộ lọc nhiễu.
                Sao bạn không xài thử loại Opto Pick Up. Cái này sử dụng hiệu ứng phản xạ quang nên nhiễu về từ trường là rất ít.
                Hiện nay có các loại đồng hồ đo tốc độ rất chuẩn của Autonics tín hiệu ra đã chuyển đổi thành 4-20mA, có thể điều khiển cả PID. Sao phải làm lại cho tốn công.
                Have fun!
                Đúng đó bạn đó là loại MPU
                -Vấn đề là mình cần tìm hiểu để làm về nó (theo yêu cầu của đề tài) vì có những hệ thống ta chỉ có thể can thiệp bổ sung chứ không thể thay đổi thành phần vốn có (hàng zin) của nó.
                -Nếu bạn có cách nào hay post lên cho mình tham khảo với nhé . Cảm ơn bạn trước
                Mấy ai định nghĩa được tình yêu.
                Có gì đâu một buổi chiều.
                Kề dao lên cổ yêu hay chết .
                Gật đầu cái rụp thế là yêu.

                --------
                Apple

                Comment


                • #9
                  Nguyên văn bởi apple Xem bài viết
                  Em có thằng bạn học bên cơ khí, nó muôn hợp tác làm đề tài với phần đo đạc. Chúng em cần đo tốc độ động cơ dùng cảm biến điện từ với đặc điểm sau:

                  +Cảm biến điện từ 24 răng (loại dùng trên oto ấy)
                  +Phát xung dạng SIN có biên độ tỉ lệ thuận với tốc độ quay
                  Các huynh xem chỉ em làm chút.
                  Em dự định làm như sau:
                  -biến đổi xung sin cảm biến phát ra về dạng xung vuông.
                  -Đo tốc độ bằng cách dùng bộ Input Capture của ATmega16 để đo khoảng cách giữa 2 cạnh lên hoặc 2 cạnh xuống của 2 xung liên tiếp sau đó thực hiện phép chia tìm tốc độ quay

                  [/I]
                  Loại cảm biến này không chỉ thay đổi biên độ theo tốc độ thôi đâu, nó còn thay đổi cả độ rộng và tần số nữa nên nếu làm theo phương pháp này thì khó chính xác mà lại phải xử lí nhiều. Theo mình bạn dùng con LM2907 convert tần số sang điện áp thì dễ xử lí hơn.

                  Comment


                  • #10
                    Tất nhiên các xung phát ra là đều nhau do 24 răng có khoảng cách được gia công khá chính xác (hàng high-tech mechanism mà). Do vậy muốn thay đổi tần số thì tất nhiên phải thay đổi độ rộng là chính rùi.

                    Có lẽ mình sẽ thử LM2907 xem sao. Cám ơn sự góp ý của các bạn. Hy vọng kết quả khả quan
                    Mấy ai định nghĩa được tình yêu.
                    Có gì đâu một buổi chiều.
                    Kề dao lên cổ yêu hay chết .
                    Gật đầu cái rụp thế là yêu.

                    --------
                    Apple

                    Comment


                    • #11
                      Cái này chắc bạn học điện tử, nếu là dân điện tử thì nghiên cứu máy con đã được thảo luận trong chủ đề này cũng tạm ổn. Nếu bạn học tự động hóa và có kinh phí thì vấn đề đo tốc độ động cơ rất dễ dàng vì chỉ cần chịu khó kiếm đồ thôi. Mấy thứ encoder, bộ đếm tốc độ cao bán ở chợ dân sinh, nhật tảo đầy rẫy ra đó tìm mua. vấn đề của bạn nếu dùng encoder khoảng 1024 xung/vòng quay thì chắc là không vấn đề. Nếu muốn xài đồ hơi được và giá rẻ thì tìm đến hàng autonic của hàn quốc mua là xong.
                      Chuc thành công
                      ,

                      Comment


                      • #12
                        LM2907 mua có dễ ko vậy, mình ở Saigon, ngoài chợ Nhật Tảo liệu có ko nhỉ ?
                        Hôm trước mình thấy www.chipletran.com có bán đó bạn. Vừa mới check lại thì hết, quái lạ. Bạn dạo một vòng Nhật tảo thử

                        Mạch lọc, bạn làm 1 mạch lọc hạ thông phía trước. Tính toán tần số cắt khoảng 1.5 đến 2 lần tần số xung và một schmitt-trigger phía sau, mức thấp 0.3, mức cao 0.7 Vout Max. Dùng mấy con opamp đơn cực như TL082, LM324 đều cho kết quả tốt cả. Đã thử
                        Last edited by Kilodeth; 15-08-2008, 18:06.
                        Đẹp từng kilomét

                        Comment


                        • #13
                          Cảm ơn các pác nhé, phải đi mò nhật tảo thôi chớ biết kiếm ơ đâu nữa giờ, hy vọng may mắn gặp liền chỗ có hàng, bác nào mà biết thêm chỗ bán chỉ em phát, thanks các pác trước nhé...
                          Mấy ai định nghĩa được tình yêu.
                          Có gì đâu một buổi chiều.
                          Kề dao lên cổ yêu hay chết .
                          Gật đầu cái rụp thế là yêu.

                          --------
                          Apple

                          Comment

                          Về tác giả

                          Collapse

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

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

                          Collapse

                          Đang tải...
                          X