Phục hồi dữ liệu từ gia tốc kế bão hòa


10

Tôi có một gia tốc kế ADXL345 và gắn nó vào một tên lửa lai để phóng. Thật không may, tôi đã quên đặt phạm vi từ mặc định của nó là +/- 2g thành +/- 8g (chúng tôi dự kiến ​​là 6g trong quá trình nâng hạ).

Đối với phạm vi +/- 2g, biểu dữ liệu liệt kê độ phân giải đầu ra là 10 bit và đối với +/- 8g, nó liệt kê độ phân giải 12 bit.

Tôi nhận thấy điều này trong biểu dữ liệu được liên kết ở trên, dưới thanh DATA_FORMATghi (0x31):

Thanh ghi DATA_FORMAT kiểm soát việc trình bày dữ liệu để Đăng ký 0x32 thông qua đăng ký 0x37. Tất cả dữ liệu, ngoại trừ phạm vi +/- 16g, phải được cắt bớt để tránh cuộn qua. ( nhấn mạnh của tôi )

Dựa trên tuyên bố này và sơ đồ khối chức năng (cảm biến 3 trục được kết nối với "cảm biến điện tử", sau đó được kết nối với ADC), tôi hy vọng có một cách để giải quyết dữ liệu chính xác. Các yếu tố tỷ lệ được liệt kê trên trang 3 của biểu dữ liệu.

Có cách nào để tôi có thể giải quyết dữ liệu này, ít nhất là 1 hoặc 2 con số quan trọng không? (Ví dụ, tôi có một phát hiện là 1.9414g - khoảng 6). Tôi không nghĩ cảm biến đã bão hòa, chỉ đơn thuần là số trong các thanh ghi dữ liệu - và đưa ra các yếu tố tỷ lệ và một số thay đổi bit sáng tạo (không hoàn toàn rõ ràng cách chúng nhận được từ 10 đến 12 bit khi thay đổi độ phân giải), hy vọng tôi có thể phục hồi một cái gì đó hữu ích từ dữ liệu của tôi.


Nếu bạn vẽ dữ liệu của mình giả sử màn hình hiển thị 2g với cuộn qua để bạn thấy 2g dưới cùng của một từ dài hơn, thì sresult trông như thế nào. Để tăng dần g bạn sẽ thấy một loạt các răng cưa. 0-2 = 0-2. 2-4 = 0-2. 4-6 = 0-2.
Russell McMahon

Tôi sẽ bắn nó một lần khi chúng tôi phục hồi tên lửa. Dữ liệu tôi có là không đủ vì chúng tôi đã mất nó sau một đám mây ..
Dang Khoa

Câu trả lời:


7

Giá trị nào bạn thực sự lưu trữ vào "Đăng ký 0x31 Đập DATA_FORMAT"?

Tôi sẽ giả định rằng bạn không lưu trữ bất cứ thứ gì vào thanh ghi đó, vì vậy nó vẫn ở giá trị đặt lại là 00. Nói cách khác, trong khi bạn đang thu thập dữ liệu (từ Bảng 16 và trang 17 của biểu dữ liệu ADXL345 ):

  • Đăng ký 0x31 DATA_FORMAT == 00.
  • FULL_RES == 0. Vì vậy, thiết bị ở chế độ 10 bit và các bit phạm vi xác định phạm vi g và hệ số tỷ lệ tối đa.
  • Bit Justify == 0. Vì vậy, chế độ hợp lý với phần mở rộng dấu hiệu.
  • Phạm vi Bits == 00. Vì vậy, phạm vi + - 2g.

Điều đầu tiên tôi sẽ làm là khôi phục các giá trị 16 bit ban đầu khi đọc từ gia tốc kế. (nghĩa là, nếu tôi bất cẩn vứt bỏ dữ liệu gốc và tất cả những gì tôi còn lại là các số theo đơn vị "g" được tính bằng cách trừ một số bù và nhân với một số hệ số tỷ lệ không chính xác, tôi sẽ sao chép dữ liệu được thu thập vào một bảng tính và chia cho hệ số tỷ lệ tương tự (không chính xác) đó và sau đó thêm phần bù đó để cố gắng khôi phục một cái gì đó gần với giá trị ban đầu).

Sau đó, tôi sẽ vẽ biểu đồ dữ liệu và xem liệu nó trông giống như "bão hòa", "tuyến tính" hay "cuộn qua" (như được mô tả dưới đây).

Bảng dữ liệu mơ hồ một cách điên cuồng về những gì xảy ra khi cảm biến trải qua gia tốc lớn hơn 2 g.

tiếp tuyến

Tôi đã nói với bạn nó làm tôi khó chịu đến mức nào khi các nhà văn kỹ thuật khăng khăng viết bằng giọng bị động? Khi người viết sử dụng giọng bị động trong câu bạn đã trích dẫn,

"Tất cả dữ liệu, ngoại trừ phạm vi ± 16 g, phải được cắt bớt để tránh cuộn qua." (trang 17)

Tôi không thể biết chính xác ai là người phải làm việc này.

Nhiều người khuyên nên sử dụng giọng nói tích cực . Khi tôi làm theo những khuyến nghị đó, văn bản của tôi thường rõ ràng hơn về việc ai sẽ làm gì. Không phải là tốt hơn khi tôi viết những thứ dễ hiểu hơn , thay vì sử dụng một phong cách mà mọi người đã bị lừa để nghĩ âm thanh "chuyên nghiệp hơn" hoặc "học thuật hơn"?

tự động cắt

Dự đoán tốt nhất của tôi là gia tốc kế tự động thực hiện việc cắt này.

Độ bão hòa : Nếu bạn thấy gia tốc tăng vọt qua các giá trị hợp lý, sau đó bị kẹt một cách bí ẩn tại một cao nguyên, bão hòa ở mức hoặc gần + 2g, thì máy đo gia tốc "giúp đỡ" cắt dữ liệu cho bạn. Sau khi cắt, giá trị "trên cùng" không còn biểu thị "gia tốc rất gần + 2g", nhưng giờ chỉ ra "gia tốc ít nhất 2g, và có thể nhiều hơn nữa - không còn cách nào khác để nói".

Bởi vì nó ở chế độ hợp lý 10 bit, khi tôi diễn giải các giá trị 16 bit đó thành các số nguyên 16 bit được ký bình thường, tôi hy vọng sẽ thấy các giá trị khác nhau từ

  • 0x01FF = +511, biểu thị hơn 1.992 g. Có thể nhiều, nhiều hơn nữa.
  • 0x01FE = +510, biểu thị 510/256 g ~ = 1.992 g
  • 0x01FD = +509, biểu thị 510/256 g ~ = 1.988 g
  • ...
  • 0x0001 = +1, biểu thị 1/256 g = 0,0039 g
  • 0x0000 = 0, biểu thị 0 g
  • 0xFFFF = -1, biểu thị -1/256 g = 0,0039
  • ...
  • 0xFE02 = -510, biểu thị -510/256 = -1,992 g
  • 0xFE01 = -511, biểu thị -511/256 = -1.996 g
  • 0xFE00 = -512, biểu thị điều gì đó tiêu cực hơn -1,996 g. Có thể xa, tiêu cực hơn nhiều.

(Có, tôi biết rằng 4 vị trí thập phân của độ chính xác là không chính đáng cho cảm biến này). (Tôi đã thấy một số thiết bị bão hòa ở một số điểm khác, chẳng hạn như -511 hoặc -510. Tôi thường có thể nhìn vào dữ liệu và tìm ra điểm bão hòa thực tế).

Bạn có thể khôi phục một số dữ liệu hữu ích từ tập dữ liệu bị cắt này. Bạn có thể sử dụng nó để đo, ví dụ, gia tốc bao nhiêu mili giây ít nhất là 1,5 g. Than ôi, khi bạn thấy các cao nguyên trong loại dữ liệu này, không thể đo được gia tốc tối đa hoặc tổng xung - điều tốt nhất bạn có thể làm là nói, "tốt, chúng tôi biết rằng gia tốc tối đa ít nhất là 2g và có lẽ nhiều hơn "và tính toán" tốt, chúng tôi tính toán rằng xung lực ít nhất là (một cái gì đó) newton * giây ".

lựa chọn thay thế

Có thể tìm ra liệu gia tốc kế có cắt hay không từ dữ liệu. (Tôi đã mô tả "bão hòa", "tuyến tính" và "cuộn qua" theo cách tăng tốc - với một số bộ dữ liệu, có thể rõ ràng hơn khi nhìn vào đoạn đường xuống thay thế).

tuyến tính : Nếu bạn thấy gia tốc tăng vọt qua các giá trị hợp lý, sau đó tiếp tục tăng tốc lên các giá trị cao hơn (giá trị trên 512 hoặc âm hơn so với -512), thì bạn đã may mắn - gia tốc kế thực sự không thực hiện bất kỳ thao tác cắt nào, và bạn có dữ liệu hợp lệ trong toàn bộ phạm vi.

roll-over : Nếu bạn thấy gia tốc tăng vọt qua các giá trị hợp lý và ngay trước khi nó đạt +2 g, nó sẽ ngay lập tức nhảy đến một giá trị phi thực tế gần -2 g và sau đó tiếp tục tăng lên - có thể sẽ tăng qua 0, sau đó tiếp cận + 2g một lần nữa và nhảy xuống gần -2 g lần nữa - sau đó bạn có cuộn quanh. Nếu bạn may mắn, các giá trị thay đổi cực kỳ trơn tru, giúp có thể phát hiện từng cuộn qua và "tháo gỡ " các giá trị này để phục hồi lực g thực sự.

ps: thoải mái chỉnh sửa Open Circuits: Rocket Computer .


tuyệt quá! ngay khi chúng tôi phục hồi tên lửa, tôi sẽ thử nó. Cho đến bây giờ chúng tôi đã phải thuê một Cessna để giúp tìm thấy nó .. nhưng hy vọng chúng tôi gặp may mắn.
Đăng Khoa

Có vẻ như chúng tôi sẽ không thể phục hồi tên lửa của mình, vì vậy cuộc thảo luận này hơi phức tạp (tôi chỉ có một vài điểm dữ liệu từ trạm mặt đất). Nhưng cảm ơn!
Đăng Khoa

@davidcary, Mạch mở: Liên kết máy tính tên lửa bị hỏng
Mahendra Gunawardena

@MahendraGunawardena: Cảm ơn bạn đã nói với tôi. Nó có hoạt động không?
davidcary
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.