tính toán độ nghiêng sử dụng gia tốc kế?


16

tôi có một thiết bị tương tự gia tốc kế ADXL203 trên bảng mạch rộng và muốn sử dụng nó để đo độ nghiêng của một số thiết bị ở tần số khá cao (20-30 Hz). tôi đang nối nó với một máy ghi âm cr3000 để tạo cảm giác. Có ai có hướng dẫn về cách diễn giải các đầu ra cảm biến. cảm ơn


cảm ơn mọi người đã cho ý kiến. rất hữu ích liên quan đến TROY
troy jensen

Tôi biết tôi có thứ cao nhất, nhưng nếu bạn không thích của tôi, ít nhất là chấp nhận của ai đó.
Kortuk

Câu trả lời:


12

Tôi có một số điều muốn nói ở đây, và một số trong đó liên quan đến việc đồng ý với pingswept và một số với penjuin.

cr3000

Lấy mẫu cr3000 ở 16 bit và 100 Hz sẽ lấy mẫu chậm một chút để bạn dễ dàng loại bỏ nhiễu khỏi dữ liệu của mình nhưng với độ chính xác cao hơn đáng kể thì sẽ có thể sử dụng được. Tôi nghi ngờ bạn có thể có được độ chính xác 13 hoặc 14 bit mà không cần một số thuật toán lọc khá tốt. Gia tốc kế đã dạy tôi rằng rung động là ma quỷ, thổi phonon.

Tụ điện đầu ra

Bạn cần chắc chắn rằng bạn làm như bảng dữ liệu nói và lý thuyết tín hiệu. Để trích dẫn biểu dữ liệu:

Đầu ra của ADXL103 / ADXL203 có băng thông điển hình là 2,5 kHz. Người dùng phải lọc tín hiệu tại thời điểm này để hạn chế lỗi răng cưa. Băng thông tương tự phải không quá một nửa tần số lấy mẫu tương tự sang số để giảm thiểu răng cưa. Băng thông tương tự có thể được giảm thêm để giảm nhiễu và cải thiện độ phân giải.

Điều này có nghĩa là bạn cần chọn một tụ điện để giữ tốc độ của bạn dưới 50Hz. Nếu bạn đặt nó ở trên này, bạn có thể bị răng cưa, và răng cưa làm cho rung động trở thành một con quỷ mà bạn đã ký thỏa thuận. Họ nêu cách tính toán mức độ tiếng ồn từ thiết bị và ở băng thông 50Hz, độ ồn từ cực đại đến cực đại là 0,06 * Trọng lực thậm chí sẽ không được chú ý nếu bạn có điều này trên thiết bị có rung.

Giải thích dữ liệu

Đây có lẽ là điều bạn quan tâm nhất, và tương đối dễ thực hiện. Bạn cần gắn thẻ thời gian thiết bị ở trạng thái trung tính, đây là khi nó phẳng và bạn có thiết bị tương đối tĩnh. Cho nó một hoặc hai giây vào thời điểm này, và sau đó bạn có thể lấy trung bình của dữ liệu này để xác định điện áp không có G. Sau đó, bạn có thể sử dụng điều này như một điểm bạn so sánh thiết bị với. Bây giờ, từ thời điểm này, tôi có thể trích dẫn trực tiếp bảng dữ liệu:

Khi gia tốc kế vuông góc với trọng lực, đầu ra của nó thay đổi gần 17,5 mg mỗi độ nghiêng .

Vì vậy, bạn chỉ có thể sử dụng xấp xỉ này nếu bạn sẽ không nghiêng nhiều, nhưng bạn sẽ cần sử dụng hình học nếu bạn định nghiêng theo cả hai hướng và các góc không quá nhỏ.

Nếu bạn sẽ trở nên lớn hơn, chúng thậm chí có các phương trình được đánh vần là:

PITCH = ASIN (AX / 1 g)
ROLL = ASIN (AY / 1 g)

Theo như tôi có thể tel thiết bị của bạn cung cấp thay đổi 1V cho mỗi 1G gia tốc được đặt trên thiết bị. Nếu bạn đã thực hiện giai đoạn hiệu chỉnh, thì bạn sẽ có thể thực hiện các phép đo, trừ đi phần bù và bạn có số lượng Gs được trải nghiệm.

Dừng đọc ở đây trừ khi bạn gặp vấn đề hoặc bạn muốn biết thêm thông tin để cải thiện cách tiếp cận.

Tôi đã nói thêm một chút về các phương pháp và phương pháp khác để cải thiện cách tiếp cận của bạn đối với các hệ thống hoặc hệ thống thay đổi nhanh, nơi bạn sẽ lập trình thiết bị thực hiện các mẫu.

Tần số lấy mẫu

Bạn cần lấy mẫu nhanh hơn đáng kể so với tốc độ mà thiết bị của bạn thay đổi hướng mà nó đang tăng tốc, vì bạn phải đo hướng 20-30 lần mỗi giây. bạn cần có khả năng đo đủ nhanh để lọc tiếng ồn và gia tốc do các ảnh hưởng khác, điều mà tôi thấy là khá lớn khi làm việc với gia tốc kế.

Gia tốc kế 3 trục

Thứ hai, nếu bạn có gia tốc kế ba trục, thì bạn hoàn toàn có thể dễ dàng nhận ra khi một trục bị mất một phần gia tốc do trọng lực (tức là khi trục z có cường độ giảm 2m / s ^ 2, bạn biết rằng đạt được bạn nhìn thấy trên trục khác là trọng lực). Điều này sẽ vẫn còn lộn xộn, nhưng nói chung sẽ có thêm một gia tốc mang lại vận tốc cần thiết để thay đổi hướng của bạn và sau đó thay đổi gia tốc do thay đổi hướng, thường cho phép bạn nhận ra hướng.

Sự cố với 2 trục

Điều này sẽ xảy ra, như penjuin đã nói, gần như không thể với gia tốc kế 2 trục và tốt nhất là sơ sài nếu bạn có một hệ thống có thể có 20-30 hướng khác nhau trong một giây hoặc nếu bạn cần có một thước đo chính xác về hướng tất cả thời gian. Tôi chắc chắn rằng một sinh viên thạc sĩ có thể viết một luận án khá hay về điều này, hoặc một Tiến sĩ có thể viết một luận văn về việc cải thiện thuật toán này.

Rung tiếng ồn

Ngoài ra, nếu bạn có thể đặt thiết bị của mình lên trên một thứ gì đó sẽ giữ cho thiết bị bị khóa tĩnh đối với chuyển động của thiết bị, nhưng làm giảm độ rung, bạn sẽ nhận được số tốt hơn nhiều và không cần nhiều phần mềm lọc. Một số loại đệm bọt đơn giản có thể được đặt giữa gia tốc kế và thiết bị của bạn, và nếu là kỹ thuật số, điều này sẽ không làm tăng tiếng ồn điện và giúp hấp thụ một số tiếng ồn rung. Điều này chỉ nên được thực hiện nếu bạn thấy vấn đề với tiếng ồn rung.

Gia tốc kế kỹ thuật số

Tôi muốn đề xuất một gia tốc kế kỹ thuật số mà bạn có thể sử dụng SPI để kết nối. Dữ liệu có thể được xem ở tốc độ rất cao và bạn có thể làm việc ở mặt sau vì SPI của bạn thực hiện công việc liên tục là tải các giá trị tiếp theo. Bạn sẽ cần phải có một bộ vi điều khiển đẹp nếu nó được thực hiện bằng kỹ thuật số. Nếu bạn có thể cung cấp cho tôi chi tiết cụ thể hơn về những gì bạn muốn làm, tôi có thể cung cấp phản hồi tốt hơn. Nếu bạn muốn cảnh báo dựa trên phát hiện độ nghiêng thì sẽ rất dễ thực hiện với tất cả các tín hiệu tương tự, nhưng nếu bạn muốn đo vị trí và góc của thiết bị trong khi vận hành, hãy sẵn sàng cho một số công việc.

Xin vui lòng cho tôi biết nếu có một cái gì đó tôi có thể thêm vào để làm cho câu trả lời này rõ ràng hơn hoặc áp dụng cho những gì bạn đang tìm kiếm.


1
Chỉ cần cho hồ sơ, câu trả lời này là sử thi.
pingswept

1
Tiến sĩ Kortuk, Tiến sĩ về gia tốc kế! :-)
Jay Atkinson

Tôi đã viết câu trả lời này bởi vì tôi cứ nghĩ rằng tôi đã quên một điều gì đó, sau đó tôi nhận ra nó hơi dài và thêm vào cách nhanh chóng thực sự để trả lời, nhưng có vẻ như mọi người thích câu trả lời dài.
Kortuk

Về tiếng ồn rung, tôi có thể đã có một lượng lớn hơn trong thời gian vận hành do sự hiện diện của Động cơ không chổi than (BLDC), nhưng trước khi nó được bật, vẫn còn những con số rung động đáng kể.
Kortuk

3

Tôi đã viết và viết lại câu trả lời này nhiều lần với nhiều ý tưởng toán học điên rồ, nhưng thực lòng tôi không nghĩ rằng điều này có thể được thực hiện với bất kỳ độ chính xác nào. Bạn có thể làm một số phép toán vectơ, nhưng nếu:

  • Đối tượng dừng di chuyển
  • Vật có vận tốc không đổi
  • Đối tượng va vào / bạn va vào nó
  • Lực tạo ra di chuyển lên theo độ nghiêng nằm dưới độ phân giải của trục Z

Mặc dù tôi chắc chắn có một cách giải quyết điên rồ khi làm việc này, tôi không chắc nó sẽ có giá trị; gia tốc kế đơn giản là không được thiết kế cho nhiệm vụ này (ít nhất là theo hiểu biết của tôi). Đối với những gì bạn đang cố gắng đạt được, tôi sẽ đề xuất một phương pháp con quay bằng cách sử dụng bất kỳ trong số này , tất cả đều có thể chống lại tất cả các vấn đề nêu trên.


Gia tốc kế được thiết kế cho việc này thực sự, có toàn bộ phần về cách thực hiện. Gia tốc kế có chi phí rất thấp trong nhiều trường hợp và đôi khi chi phí là vấn đề lớn hơn sau đó là chức năng hoàn hảo.
Kortuk

3
Tôi luôn cố gắng giải thích điều này với sinh viên, và tôi sẽ thêm nó ở đây vì tôi nghĩ đó là một khái niệm quan trọng. Kỹ thuật không phải lúc nào cũng là thực hiện nó theo cách tốt nhất, mà là thực hiện nó theo cách mà người dùng không thể nói sự khác biệt trong bất cứ điều gì ngoại trừ thẻ giá.
Kortuk

2
Có một cái gì đó để nói về việc làm nó đầu tiên, và có rất nhiều điều để nói về việc làm nó tốt hơn so với người cuối cùng.
Kortuk

Tôi đồng ý, nhưng nó phụ thuộc vào động cơ của bạn (mà troy chưa nêu); Bạn có muốn nó hoạt động tốt, hay bạn muốn học? Chúng không nhất thiết phải loại trừ lẫn nhau, nhưng bạn sẽ không viết trình biên dịch của riêng mình chỉ để nháy đèn LED trừ khi bạn đặc biệt muốn tìm hiểu về thiết kế trình biên dịch.
penjuin

Vâng, tôi nói thêm rằng để thảo luận về câu trả lời của bạn, nói chung nếu anh ta cần có thể nói một định hướng khác 30 lần một giây thì nó sẽ có gia tốc khổng lồ trên đó, điều đó có nghĩa là bạn cần hơn 100 mẫu thứ hai.
Kortuk

3

Nếu tôi hiểu chính xác biểu dữ liệu, đầu ra cho mỗi trục sẽ khác nhau giữa 1,5 V và 3,5 V khi bạn nghiêng quanh trục. Khi thiết bị phẳng (bỏ qua lỗi căn chỉnh gói 1 độ), cả hai đầu ra sẽ đọc 2.5 V.

Nếu bạn chỉ cần đo độ nghiêng theo một hướng, bạn có thể lấy arcsin của độ lệch từ 2,5 V để lấy góc theo radian, sau đó chuyển đổi sang độ. Nếu thiết bị có thể nghiêng theo bất kỳ hướng nào, bạn có thể tính hai góc và sau đó tính góc ghép từ các góc đó.

Để rõ ràng: góc quanh một trục = (180 / π) * arcsin (Vout - 2.5)

Để có được đáp ứng tần số tốt, bạn sẽ cần các tụ điện đầu ra nhỏ, Cx và Cy. Từ chú thích 6 trên p. 3 trong bảng dữ liệu, có vẻ như 0,02 uF sẽ cung cấp cho bạn băng thông 250 Hz, có lẽ phù hợp với tốc độ mẫu của bạn. Bạn có thể có thể lên tới 0,1 uF, giới hạn băng thông xuống 50 Hz, nhưng tín hiệu của bạn sẽ bắt đầu bị suy giảm.


Tôi không nghĩ rằng nó sẽ làm giảm các tín hiệu, trừ khi bạn đang đề cập đến các tần số cao hơn, đó là điểm của nắp. Anh ta cần phải đi đến 50Hz hoặc thấp hơn để phù hợp với thiết bị lấy mẫu dữ liệu của mình.
Kortuk

1
Ah, tôi đã không nghĩ về nó từ quan điểm răng cưa. Tôi vẫn nghĩ rằng các nắp lớn sẽ làm giảm tín hiệu tần số cao, nhưng đó thực sự là một điều tốt trong trường hợp này. Vì vậy, có, thiết lập băng thông khoảng 50 Hz là tốt.
pingswept

3

Tôi đang thêm một câu trả lời thứ hai, bởi vì câu trả lời khác của tôi rất lớn và bạn có thể chỉ muốn đơn giản.

Giới hạn bộ lọc của bạn cần phải là 0,10 uF hoặc lớn hơn để giữ cho bạn ở dưới tốc độ răng cưa (50Hz). Bạn cần đưa ra một giai đoạn hiệu chỉnh trong vài giây với mức ngồi của thiết bị với tất cả gia tốc Trọng lực theo hướng Z, điều này là để xác định điểm G của bạn.

Điện áp bạn đo cho điểm G của bạn, nó có thể sẽ khác với hướng X và Y, không đại diện cho điều gì. Chỉ cần lấy bất cứ điện áp nào bạn nhận được và trừ nó khỏi nó. Điện áp này, với phần bù trừ là số Gs mà bạn đang đi theo hướng đó.

Lấy arcsin và bạn sẽ có được góc của bạn theo hướng đó.

Điều này bỏ qua tiếng ồn và gia tốc khác. hãy chuẩn bị cho NaN là kết quả nếu bạn nghiêng hoàn toàn và có bất kỳ tiếng ồn nào.


0

Để có được bất kỳ góc nào, bạn cần đo gia tốc của trọng lực theo cả hai hướng X và Y-. trừ điện áp trung bình (2,5V) để số 0 là "không tăng tốc".

Bây giờ bạn có thể tìm góc với arcsin (y / x). Nhưng điều đó gây khó chịu khi sử dụng, vì sự phân chia và vì dấu hiệu không rõ ràng, vì vậy những gì bạn thực sự muốn hàm C atan2 (y, x). atan2 () được ký đúng cho tất cả 360 độ.


Ngoài chủ đề, vì bạn không sử dụng vi mô: Nếu bạn đang tìm kiếm atan2 () để sử dụng trên vi điều khiển, có một trình tạo atan2 () trên trang web của tôi: http://vivara.net/cgi-bin/ cordic.cgi


Nó không phải là 2,5 V được đảm bảo cho 0G. vì anh ta có thể sẽ sử dụng máy tính để làm toán nên tôi nghi ngờ rằng phương pháp anh ta dùng để làm toán sẽ có nghĩa.
Kortuk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.