8

Tôi có gia tốc kế và từ kế mỗi bộ đọc X, Y và Z. Từ đây tôi cần xác định đầu từ của một vật thể.Tính toán từ tính sử dụng gia tốc kế thô và dữ liệu từ kế

Tôi không phải là tuyệt vời ở trig, nhưng tôi đã đặt cùng một công thức phản ứng khá tốt với vòng quay của thiết bị, nhưng cũng phản ứng với chuyển động mà người ta không nghĩ là có liên quan, chẳng hạn như thiết bị theo cách không ảnh hưởng đến hướng nó được chỉ ra. Chẳng hạn như đặt nó bằng phẳng và "lăn" thiết bị.

Tôi nghĩ rằng công thức tôi có để tính toán từ đầu là tốt, nhưng tôi nghĩ rằng radian pitch và roll của tôi cho đầu vào là sai. Vì vậy, tôi đoán cốt lõi của câu hỏi của tôi (trừ khi ai đó thực sự có một công thức xung quanh mà thực hiện điều này), là làm thế nào để bạn tính toán góc, trong radian, bằng cách sử dụng một gia tốc cho sân và cuộn.

Sau đó, thứ hai, bất kỳ thông tin nào trên chính công thức tiêu đề sẽ là tuyệt vời.

+0

Bạn đang cố tính toán tiêu đề gì và liên quan đến đối tượng nào? Tôi có thể giả sử bạn đang nói về một chiếc điện thoại? – Seth

Trả lời

2

Tùy thuộc vào tính chính xác ứng dụng của bạn yêu cầu, bạn có thể cần phải giải quyết một số vấn đề:

  1. có các trục gia tốc hiệu chuẩn? Tôi đã nhìn thấy gia tốc MEMs có trục không vuông góc với nhau, và có các đặc tính phản ứng khác nhau đáng kể cho mỗi trục (điển hình là X và Y sẽ phù hợp, và Z sẽ khác nhau). Bạn sẽ cần phải tổng hợp các trục XYZ lý tưởng từ bất kỳ thiết bị nào mà thiết bị của bạn cung cấp. (Google 'hiệu chỉnh gia tốc'.)

  2. Trục từ kế đã được hiệu chỉnh chưa? Vấn đề tương tự như trên, ngoại trừ khó kiểm tra hơn: Rất khó để tạo ra các từ trường được hiệu chỉnh đồng nhất. Nếu bạn sử dụng trường địa từ xung quanh, bạn sẽ cần phải kiểm soát cẩn thận từ tính cục bộ của môi trường làm việc và công cụ của bạn. (Google 'hiệu chuẩn từ kế'.)

  3. Sau khi gia tốc kế và từ kế đã được hiệu chỉnh riêng rẽ, trục của chúng cần được hiệu chỉnh tương đối với nhau. Vì cả hai thiết bị này thường được hàn vào một PCB, hầu như được đảm bảo là có sự sai lệch đáng kể. Trong nhiều trường hợp, bố trí bảng và các thông số thiết bị có thể thậm chí không cho phép các trục XYZ tương ứng với nhau! Đây có thể là phần khó nhất để làm từ góc độ phòng thí nghiệm, vì vậy tôi khuyên bạn nên so sánh trực tiếp bằng phần cứng khác có cả hai loại cảm biến và đã được hiệu chỉnh (chẳng hạn như điện thoại iPhone hoặc Android - nhưng xác minh thiết bị trước đó sử dụng). Thông thường, điều này được thực hiện bằng cách điều chỉnh hai ma trận hiệu chuẩn trước cho đến khi chúng tạo ra các vectơ được căn chỉnh chính xác tương ứng với nhau.

  4. Chỉ sau khi bạn tạo các vectơ từ trường và gia tốc kế có hiệu lực mới, bạn có thể áp dụng các giải pháp do những người trả lời khác đề xuất.

Tôi chỉ mô tả giải pháp tĩnh, trong đó cả từ kế và gia tốc là bất động so với trường hấp dẫn và từ trường địa phương. Nếu bạn cần tạo phản hồi trong thời gian thực trong khi hệ thống đang chuyển động nhanh, bạn sẽ cần tính đến hành vi thời gian của mỗi cảm biến. Có hai cách cơ bản để thực hiện việc này: 1) Áp dụng các bộ lọc miền thời gian cho mỗi bộ cảm biến để đầu ra của chúng có chung một miền thời gian (thường là thêm một số độ trễ). 2) Sử dụng mô hình tiên đoán để sửa đổi các đầu ra cảm biến theo thời gian thực (độ trễ ít hơn, nhưng nhiều tiếng ồn hơn).

Tôi đã thấy bộ lọc Kalman được sử dụng cho các ứng dụng như vậy, nhưng áp dụng chúng trong miền vector có thể yêu cầu sử dụng quaternions thay cho ma trận Euler. Quaternions dễ sử dụng tính toán hơn (ít hoạt động cần thiết hơn so với ma trận), nhưng tôi thấy chúng khó hiểu hơn và đúng.

Hoặc, bạn có thể chọn một đường dẫn hoàn toàn khác và sử dụng thống kê và dữ liệu phù hợp để thực hiện tất cả công việc trên trong một bước khổng lồ. Xem xét vấn đề như sau: Cho 6 giá trị đầu vào (mỗi XYZ từ từ kế chưa hiệu chỉnh và gia tốc kế) và tham chiếu đến thiết bị (giả sử nó được cầm tay và có mũi tên được vẽ), xuất ra một góc đại diện cho mang từ tính hướng tới mũi tên trên vỏ máy, và độ cao của mũi tên tương ứng với vector trọng lực (độ nghiêng của vỏ).

Sử dụng thiết bị tham chiếu được hiệu chỉnh (như đã đề cập ở trên), ghép nối thiết bị này với thiết bị cần hiệu chuẩn và lấy vài trăm điểm dữ liệu, với thiết bị ở các hướng khác nhau. Sau đó, sử dụng một gói toán học mạnh mẽ như Matlab, MathCAD, R hoặc SciPy để thiết lập và giải các phương trình phi tuyến để tạo ra các ma trận chuyển đổi.

+0

PS: Tôi đã sử dụng một cơ sở kính viễn vọng máy vi tính rẻ tiền để thực hiện điều này phần cuối: Làm theo cách thủ công không thực sự khả thi. – BobC

Các vấn đề liên quan