Bù cho độ nhạy xuyên trục gia tốc


7

Đối với ứng dụng máy đo độ nghiêng của tôi, tôi sử dụng chip gia tốc kế 3 chiều tích hợp tạo ra điện áp tương tự.

Trước khi tôi triển khai thiết bị của mình, tôi gửi nó thu thập một loạt các mẫu với nhiệt độ và góc khác nhau để bù nhiệt độ.

Vấn đề tôi gặp phải là đầu ra điện áp cho mỗi trục riêng lẻ không hoàn toàn độc lập. Đối với cùng nhiệt độ, nếu một trục được giữ cố định và các thay đổi khác, thì trục trước cũng sẽ tạo ra một số thay đổi.

Ví dụ: giả sử tôi đang đo "g" trên trục sân và đầu ra bằng 0 khi trục cuộn bằng không. Nếu tôi lăn gia tốc kế sang một bên, tôi sẽ nhận được "g" cuộn tương ứng, nhưng cường độ sẽ có một chút thay đổi (+/- 2 độ), mặc dù cường độ vẫn bằng không.

Bất kỳ ý tưởng về làm thế nào để đạt được độ chính xác tốt hơn trong số này?


1
Làm thế nào bạn lăn thiết bị của bạn - bạn có biết bạn không cho nó thay đổi độ cao 2 độ? Các lỗi lắp do hàn có thể là nhỏ. Nếu bạn khá chắc chắn việc gắn kết là tốt, thì một trận đấu chính xác hơn có thể là vé. Ngoài ra, những gì gia tốc kế bạn đang sử dụng? Nhiều người có một chức năng mà theo đó họ có thể được cắt bớt, hoặc có lỗi +/- 2 độ (hoặc tệ hơn) bị ràng buộc.
Kevin Vermeer

1
Tôi đang sử dụng một trình thao tác 6DOF có độ chính xác cao. Nó cho tôi độ chính xác 0,01 độ trong tất cả các trục. Gắn được thực hiện bằng cách chọn và đặt. Cảm biến là freescaleMMA7361LC.
Padu Merloti

Câu trả lời:


7

Chúng ta hãy kết hợp một mô hình toán học đơn giản của gia tốc kế - từ đây, chúng ta có thể tìm ra một số tùy chọn hiệu chuẩn.

Bỏ qua phi tuyến tính và các hiệu ứng khó chịu khác, phép đo đầu ra của gia tốc kế được đưa ra bởi:

f^=Mf+ba+na

Ở đâu f^ là phép đo thực tế, ba là độ lệch gia tốc kế, na là một vector nhiễu ngẫu nhiên, f là lực cụ thể thực sự (tức là gia tốc) và M là ma trận hệ số / ma trận sai.

Các yếu tố riêng lẻ của ma trận SFA là:

M= =[SxγxyγxzγyxSyyγyzSxγzySzz]

Vì vậy, mỗi yếu tố tỷ lệ được đại diện bởi một S và mỗi độ nhạy trục chéo được biểu thị bằng một γ.

Lý tưởng nhất là nếu hệ số tỷ lệ là 1 và không có độ nhạy trục chéo, thì ma trận kết quả là M= =Tôi.

Đại diện cho nó như thế này cho phép chúng tôi phát triển một mô hình bồi thường. Nếu chúng ta tình cờ biếtMbmột và giả định nmột nhỏ (gần bằng 0), chúng ta có thể ước tính tốt về gia tốc "thật" từ các phép đo:

f= =M-1(f^-bmột)

Bí quyết là, tất nhiên, làm việc ra Mbmột.

Tôi sẽ mô tả một quy trình gọi là kiểm tra sáu vị trí , đây là một cách dễ dàng và rẻ tiền để hiệu chỉnh gia tốc kế. Bước 1 là gắn gia tốc kế trong một hộp hình chữ nhật một cách hoàn hảo90bên (hoặc gần như bạn có thể nhận được). Đặt cái này lên một bề mặt hoàn hảo (hoặc, một lần nữa, càng gần càng tốt) - bạn sẽ ngạc nhiên khi bạn có thể làm điều này tốt như thế nào.

At this point, we know what the value should be: gravity on the z-accelerometer:

f1= =[00g]

Vì vậy, điều này trở thành:

f^1= =Mf1+bmột+nmột
Ghi chú điều đó f^1 sẽ đóng, nhưng không giống như f1

Nếu chúng ta đặt cái hộp lên đầu, lực tác động là -g:

f2= =[00-g]

Và khi được đặt ở một bên:

f3= =[0-g0]

Và như vậy cho ba mặt còn lại.

Bây giờ, hãy viết ra một trong các phương trình từ lâu:

f^1= =Mf1+bmột+nmột= =[Sxxfx+γxyfy+γxzfz+bxγyxfx+Syyfy+γyzfz+byγxzfx+γyzfy+Szzfz+bz]

Và thậm chí tay dài hơn (cho người đầu tiên):

f^1= =[fxSxx+fyγxy+fzγxz+0γyx+0Syy+0γyz+0γxz+0γyz+0Szz+1bx+0by+0bz0Sxx+0γxy+0γxz+fxγyx+fySyy+fzγyz+0γxz+0γyz+0Szz+0bx+1by+0bz0Sxx+0γxy+0γxz+0γyx+0Syy+0γyz+fxγxz+fyγyz+fzSzz+0bx+0by+1bz]

Vì vậy, chúng ta có thể tạo ra một vectơ xếp chồng của những ẩn số

z= =Mộtβ
Ở đâu
z= =[f^1f^2f^6]

β= =[SxxγxyγxzγyxSyyγyzγxzγyzSzzbxbybz]

Ma trận thiết kế là (cho một bộ số đo):

Một^1= =[fxfyfz000000100000fxfyfz000010000000fxfyfz001]

Bây giờ, một khi điều này được thiết lập, người ta có thể giải quyết cho β(và do đó độ nhạy và độ lệch) thông qua các bình phương tối thiểu .

Một quy trình tương tự có thể được thực hiện với một cánh tay robot nếu bạn có thể điều khiển chính xác các góc - nó chỉ đơn giản trả lời biết trọng lực chính xác ở góc đó, nếu bạn biết góc, rất dễ tính toán.


6

Nếu bạn nhìn vào biểu dữ liệu cho chip, bạn sẽ thấy có một thông số về độ nhạy trục chéo. Vì vậy, những gì bạn đang thấy chỉ là một phần của những hạn chế của thiết bị.

Bạn có thể hiệu chỉnh nó nếu bạn chỉ giới hạn chuyển động ở một trục. Nếu bạn cho phép nó di chuyển theo bất kỳ trục nào thì tôi không nghĩ chỉ có thể là gia tốc kế nếu trục thứ hai thay đổi do độ nhạy của trục chéo hoặc do thay đổi góc / gia tốc trên trục đó.

Nếu bạn đã thêm vào một số cảm biến khác - con quay hồi chuyển hoặc từ trường - bạn có thể kết hợp tất cả dữ liệu cảm biến để xử lý nó.


1
Bài đăng đầu tiên tốt đẹp, và chào mừng đến với trang web. Có, ngay cả Bosch BMA180 có độ chính xác cao có độ nhạy trục chéo là 1,75%. Vì vậy, thay đổi 90 độ trong một trục có thể gây ra đọc 1,57 độ trên các trục khác và điều này có thể thay đổi mỗi khi bạn di chuyển nó. Một yếu tố bổ sung là lỗi căn chỉnh - Một lần nữa, BMA180 chỉ được chỉ định ở mức +/- 1 độ so với vỏ, nhưng đây là hằng số cho mọi chip vật lý và do đó người kiểm tra của bạn có thể hiệu chỉnh trong phần mềm.
Kevin Vermeer

1
Tôi đã thu thập được một loạt các điểm tại một số sân và cuộn. Tôi đã vẽ một số dòng mô tả độ nhạy của trục x và tôi sẽ cố gắng bù các giá trị đọc bằng các phương trình bù này ...
Padu Merloti
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.