Gia tốc kế đo gia tốc tuyến tính và độ nghiêng thông qua cảm biến trọng lực, trong khi con quay hồi chuyển theo dõi vận tốc góc - nhưng cả hai đều không hoạt động tốt khi hoạt động một mình quá vài giây. Gia tốc kế sẽ bị lệch khi tích hợp vào vị trí, và con quay hồi chuyển tích lũy sai số góc do lệch thiên vị. Dưới đây tôi sẽ trình bày cách các cảm biến này thực sự hoạt động trong các hệ thống thực, những thông số kỹ thuật quan trọng ở đâu, và cách các thuật toán nhiệt hạch giữ cho chúng hữu ích.
Những điểm nổi bật:
- Gia tốc kế cho bạn góc nghiêng dựa trên trọng lực ngay lập tức, nhưng tích hợp gia tốc lên vận tốc sẽ nhân đôi sai số tiếng ồn và sai lệch mỗi bước đi.
- Con quay hồi chuyển đo được tốc độ quay một cách rõ ràng trong ngắn hạn, nhưng ngay cả độ lệch 0,1°/s cũng có thể bị dẫn đến 6° độ lệch mỗi phút nếu không được điều chỉnh.
- Căn chỉnh ba trục được xác định bên trong khuôn chúc, không phải bằng đánh dấu gói - đọc sai sơ đồ trục bảng dữ liệu sẽ làm xoay toàn bộ khung tọa độ của bạn.
- Hiệu chỉnh không thiên lệch khi đứng yên là không thể thương lượng; Sự lệch nhiệt độ có thể làm dịch chuyển số 0 đó từ 10-50 mg (cảm biến gia tốc) hoặc 0,5-2°/s (con quay hồi chuyển) trong phạm vi hoạt động.
- Hợp nhất cảm biến không phải là sự hoàn thiện tùy chọn - đó là lý do duy nhất các thiết bị này hoạt động vượt ra ngoài các buổi trình diễn phòng thí nghiệm, vì nó cho phép cảm biến gia tốc điều chỉnh độ lệch con quay hồi chuyển và con quay hồi chuyển loại bỏ tiếng ồn của cảm biến gia tốc khi chuyển động.
Cách gia tốc kế đo chuyển động và trọng lực
Một cảm biến gia tốc báo cáo lực cụ thể, bao gồm cả gia tốc thực tế và lực kéo không đổi 1 g từ trọng lực Trái Đất. Điều đó có nghĩa là một cảm biến gia tốc cố định trên bàn hiển thị +1 g trên trục đứng, không phải bằng 0 - một chi tiết làm hỏng mọi lần tích phân đầu tiên.
Bạn có thể tách nghiêng trực tiếp từ vectơ trọng lực mà không cần tích phân, đó là lý do tại sao gia tốc kế đóng vai trò tham chiếu định hướng dài hạn. Nhưng nếu bạn cố gắng tích hợp gia tốc vào vận tốc rồi vị trí, nhiễu đo lường và thiên lệch sẽ kết hợp ở mỗi bước thời gian. Theo kinh nghiệm của tôi, ngay cả một thiết bị MEMS có nhiễu thấp (mật độ nhiễu +/- 0.1 mg) cũng sẽ tạo ra vài mét dịch chuyển ma sau 10 giây tích hợp nếu bạn không hợp nhất nó với một tham chiếu khác.
Toán học trong sách giáo khoa trông rất rõ ràng: tích phân một lần cho vận tốc, hai lần cho vị trí. Trên thực tế, phân cực DC và nhiễu 1/f sẽ phá hủy chuỗi đó chỉ trong vài giây.

Thiết kế gia tốc MEMS
Hầu hết các cảm biến gia tốc ngày nay sử dụng khối lượng chứng minh vi mô được treo bởi các lò xo silicon. Khi cảm biến tăng tốc, khối lượng bị tụt lại phía sau do quán tính, làm thay đổi khoảng cách trong cặp tụ vi sai. Sự dịch tụ chuyển đổi thành điện áp thông qua bộ khuếch đại điện tích.
Cảm biến điện dung này là lý do tại sao gia tốc kế MEMS nhạy cảm với ứng suất cơ học và ứng suất bao bì - bất kỳ sự uốn cong nào của nền tảng đều làm dịch chuyển điện dung cơ bản và hiển thị dưới dạng gia tốc giả. Tôi từng thấy cảm biến gia tốc báo độ lệch +50 mg chỉ do vít gắn quá mạnh trên PCB đặc.
Toàn bộ cấu trúc vừa vặn trong một milimét vuông, đó là lý do tại sao các cảm biến gia tốc 3 trục và con quay hồi chuyển 3 trục hiện nay cùng tồn tại trong một gói 3×3 mm với logic giao diện tương tự và giao diện số dùng chung.
Cảm biến quay của con quay hồi chuyển
Con quay hồi chuyển xuất ra vận tốc góc tính bằng độ trên giây (hoặc radian trên giây), không phải góc. Để phục hồi hướng, bạn phải tích phân tốc độ đó theo thời gian, nghĩa là sai số thiên lệch tích lũy tuyến tính thành độ lệch góc.
Ví dụ, một con quay hồi chuyển với định vị không đổi +0,1°/s sẽ trôi 6° trong một phút, 360° trong một giờ - ngay cả khi đứng yên. Đó là lý do con quay hồi chuyển cần được hiệu chỉnh thường xuyên từ một tham chiếu tuyệt đối như vectơ trọng lực của máy gia tốc kế hoặc hướng bắc của máy đo từ trường.
Điểm mạnh của con quay hồi chuyển là nó phản ứng ngay lập tức với sự quay và không bị đánh lừa bởi gia tốc tuyến tính, rung động hay nghiêng - những vấn đề này làm hỏng ước lượng định hướng chỉ dùng cảm biến gia tốc trong quá trình chuyển động. Con quay hồi chuyển mang lại cho bạn động lực ngắn hạn sạch sẽ; Gia tốc kế mang lại cho bạn sự ổn định lâu dài. Cả hai đều không thể hoạt động một mình.

Hiệu ứng Coriolis trong con quay hồi chuyển MEMS
Con quay hồi chuyển MEMS dựa vào hiệu ứng Coriolis: một khối lượng chứng minh được đẩy vào dao động cộng hưởng dọc theo một trục (trục truyền động). Khi cảm biến quay, lực Coriolis sẽ làm lệch khối rung động theo trục cảm biến vuông góc. Biên độ của độ lệch đó tỷ lệ thuận với vận tốc góc.
Thiết kế này có nghĩa là con quay hồi chuyển MEMS thực chất là thiết bị động - chúng cần dao động liên tục để hoạt động. Bất kỳ cú sốc cơ học hoặc thay đổi nhiệt độ nào làm dịch chuyển cộng hưởng của bộ truyền động sẽ làm giảm độ nhạy cho đến khi vòng lặp truyền động khóa lại. Tôi đã từng gỡ lỗi các hệ thống mà dao động nhiệt độ 20°C làm giảm đầu ra của con quay hồi chuyển xuống 15% vì tần số truyền động không được bù nhiệt độ.
Tín hiệu Coriolis rất nhỏ (thường thay đổi điện dung ở mức femtofarad), nên con quay hồi chuyển có mức nhiễu thấp hơn so với gia tốc kế và dễ bị nhiễu điện từ cũng như rung chuyển nguồn điện.
Định nghĩa và lắp đặt trục cảm biến
Mỗi bảng dữ liệu gia tốc kế và con quay hồi chuyển đều bao gồm sơ đồ hướng trục, thường hiển thị các mũi tên X, Y, Z so với chân 1 hoặc cạnh gói. Sơ đồ đó là sự thật - hãy bỏ qua sự đối xứng của đường viền gói.
Tôi đã thấy firmware sản xuất xoay tất cả dữ liệu chuyển động 90° vì nhà thiết kế PCB cho rằng các trục cảm biến gia tốc khớp với đường viền vuông của chip, trong khi thực tế die MEMS bên trong đã được xoay. Kết quả là "góc nghiêng ngửa" trở thành "lăn" và ngược lại, vượt qua các kiểm tra nguồn cơ bản nhưng thất bại ngay khi thiết bị bị nghiêng.
Cảm biến ba trục đo theo các trục vuông góc, nhưng các trục đó được xác định bởi khắc silicon, không phải cách bạn gắn chip. Nếu cụm cơ khí của bạn gây lệch trục (ví dụ, lắp IMU 6 trục nghiêng 5° để tiết kiệm không gian bo mạch), bạn phải áp dụng ma trận quay trong phần mềm - hoặc chấp nhận sai số 5° trục chéo.
Giao diện dữ liệu và đường đi tín hiệu
Hầu hết các cảm biến gia tốc và con quay hồi chuyển hiện đại đều xuất dữ liệu số trên I²C hoặc SPI. I²C chậm hơn (thường tối đa 400 kHz, giới hạn tần số lấy mẫu trong thực tế khoảng 200-400 Hz) nhưng chỉ sử dụng hai dây và hỗ trợ multi-drop. SPI chạy nhanh hơn (10+ MHz, cho phép tần số lấy mẫu 1+ kHz) nhưng yêu cầu chọn chip chuyên dụng và bốn dây.
Nhiều IMU (cảm biến gia tốc tích hợp + con quay hồi chuyển) bao gồm bộ đệm FIFO - thường từ 512 đến 1024 mẫu - để bộ xử lý chủ có thể đọc dữ liệu theo từng đợt thay vì kiểm tra ở tốc độ mẫu đầy đủ. Điều này cắt điện và tải ngắt, nhưng bạn phải theo dõi watermark FIFO nếu không sẽ mất mẫu khi tràn bộ đệm.
Một số IMU cũng cung cấp các chân ngắt lập trình được để xác nhận khi chuyển động vượt ngưỡng nhất định, khi FIFO đạt một mức nhất định, hoặc khi cảm biến phát hiện sự kiện rơi tự do hoặc chạm bóng. Những tính năng này hữu ích cho thiết kế đánh thức khi chuyển động công suất thấp, nhưng logic ngưỡng thường quá thô để bắt chuyển động chính xác.
Thông số kỹ thuật chính và ý nghĩa của chúng trong thực tiễn
Phạm vi đo thiết lập gia tốc tối đa hoặc tốc độ quay mà cảm biến có thể báo cáo trước khi bị clipping. Đối với gia tốc kế, các khoảng phổ biến là ±2 g, ±4 g, ±8 g, ±16 g. Đối với con quay hồi chuyển, ±250°/s, ±500°/s, ±1000°/s, ±2000°/s. Phạm vi rộng hơn làm giảm độ phân giải nhưng ngăn ngừa hiện tượng bão hòa khi bị sốc hoặc quay nhanh.
Trong thiết bị cầm tay, cảm biến gia tốc ±4 g và con quay hồi chuyển ±500°/s thường là đủ. Trong môi trường drone hoặc rung động cao, bạn sẽ bị va chạm ở mức ±4 g khi khởi động động cơ hoặc thực hiện các thao tác mạnh, nên ±8 g hoặc ±16 g sẽ an toàn hơn.
Mật độ nhiễu được xác định bằng μg/√Hz (cảm biến gia tốc) hoặc °/s/√Hz (con quay hồi chuyển). Nhân với căn bậc hai băng thông tín hiệu để có nhiễu RMS. Ví dụ, một con quay hồi chuyển với mật độ nhiễu 0,01°/s/√Hz đo trên băng thông 50 Hz cho ra nhiễu RMS 0,01 × √50 ≈ 0,07°/s.
Nhiễu thấp hơn rất quan trọng cho chuyển động chậm và độ phân giải góc nhìn tinh tế. Tiếng ồn cao sẽ trôi dần sau khi tích hợp, nên con quay hồi chuyển ồn sẽ mất độ chính xác góc nhanh hơn cả con quay yên tĩnh có cùng độ lệch điện.
Sai lệch (còn gọi là độ lệch tốc độ bằng không hoặc độ lệch trọng lực bằng không) là đầu ra cảm biến khi không có chuyển động. Đối với gia tốc kế, độ lệch được xác định bằng mg; Đối với con quay hồi chuyển, tính bằng °/s. Độ lệch không cố định - nó thay đổi theo nhiệt độ, điện áp nguồn, ứng suất cơ học và thời gian.
Tôi đo độ lệch khi bật nguồn bằng cách lấy trung bình 100-200 mẫu khi cảm biến đứng yên, sau đó trừ đi độ lệch đó khỏi tất cả các lần đọc trong tương lai. Nhưng nếu thiết bị nóng lên 30°C trong quá trình vận hành, độ lệch sẽ lệch thêm 10-50 mg (cảm biến gia tốc) hoặc 0,5-2°/s (con quay hồi chuyển) tùy theo cấp độ chi tiết. Đó là lý do tại sao các IMU cao cấp có cảm biến nhiệt độ bên trong và lưu trữ bảng hiệu chuẩn của nhà máy để điều chỉnh độ lệch so với nhiệt độ.
Trôi nhiệt độ là sự thay đổi độ lệch trên mỗi độ C. Đối với con quay hồi chuyển được thiết kế ở 0,03°/s/°C, sự tăng nhiệt độ 30°C sẽ tạo ra độ lệch 0,9°/giây - gấp chín lần độ lệch ban đầu so với hiệu chuẩn bằng 0 tốt. Gia tốc kế ít bị ảnh hưởng hơn (thường 0,3-1 mg/°C), nhưng vẫn quan trọng trong các ứng dụng nghiêng chính xác.
Trong một dự án ô tô, IMU được gắn gần một transistor công suất có chu kỳ 40°C mỗi vài phút. Chúng tôi phải chạy việc ước tính lại phân cực liên tục bằng các trạng thái bộ lọc Kalman vì tốc độ bằng không của con quay hồi chuyển trôi nhanh hơn tốc độ quay thực tế của phương tiện trong quá trình chạy đều.
Quy trình hiệu chuẩn
Tối thiểu, bạn phải hiệu chỉnh không phân cực cho cả cảm biến gia tốc và con quay hồi chuyển trước khi sử dụng. Đặt thiết bị lên bề mặt ổn định, thu thập 200+ mẫu trên mỗi trục, tính trung bình, rồi trừ đi độ lệch đó khỏi các lần đọc trong tương lai.
Đối với gia tốc kế, hãy nhớ rằng một trục sẽ hiển thị +1 g (hoặc -1 g) do trọng lực - đừng làm 0 trục đó. Thay vào đó, trừ đi giá trị đo được trừ đi thành phần trọng lực kỳ vọng. Nếu trục Z hiển thị +1.02 g khi thiết bị phẳng, thì độ lệch của bạn là +0.02 g, không phải +1.02 g.
Con quay hồi chuyển nên đọc gần bằng 0 trên tất cả các trục khi đứng yên. Bất kỳ giá trị trung bình khác 0 nào đều là sai lệch.
Các công cụ hiệu chuẩn tiên tiến hơn bao gồm:
- Hiệu chỉnh hệ số tỉ lệ: độ nhạy thực tế có thể khác so với danh nghĩa từ 1-3%. Xoay cảm biến qua các góc đã biết (đối với con quay hồi chuyển) hoặc xoay nó qua +1 g và -1 g (đối với cảm biến gia tốc) để đo sai số khuếch đại.
- Sửa lệch trục: ba trục không hoàn toàn vuông góc. Ma trận hiệu chuẩn đầy đủ 9 tham số có thể khắc phục điều này, nhưng cần thiết bị phòng thí nghiệm hoặc bàn xoay chính xác.
- Bù nhiệt độ: lưu phân tích thiên lệch so với nhiệt độ trong bảng tra cứu và nội suy khi chạy.
Tôi hiếm khi quan tâm đến hiệu chuẩn 9-DOF đầy đủ trong thiết kế sản xuất trừ khi ứng dụng yêu cầu độ chính xác dưới mức độ, vì độ phức tạp và thời gian kiểm tra thường không hợp lý. Hiệu chỉnh sai lệch bằng 0 và hệ số tỷ lệ bao phủ 90% sai số thực tế.
Sensor Fusion: Tại sao bạn cần cả hai
Gia tốc kế cung cấp hướng thẳng đứng dựa trên trọng lực, nhưng chúng gây nhiễu và dễ bị làm nhiễu bởi rung động hoặc gia tốc tuyến tính (bất kỳ gia tốc nào ngoài trọng lực đều giống như độ nghiêng). Con quay hồi chuyển cung cấp khả năng theo dõi vòng quay sạch sẽ, nhanh chóng, nhưng chúng sẽ trôi theo thời gian.
Hợp nhất cảm biến kết hợp cả hai: sử dụng con quay hồi chuyển để truyền hướng với tốc độ cao (100 Hz đến 1 kHz), sau đó định kỳ hiệu chỉnh ước lượng hướng bằng vectơ trọng lực của gia tốc. Thuật toán phổ biến nhất là bộ lọc bổ sung:
Góc = 0,98 × (góc + con quay hồi chuyển × DT) + 0,02 × accel_angle
Điều này có nghĩa là 98% cập nhật đến từ việc tích hợp con quay hồi chuyển, và 2% đến từ phép đo độ nghiêng của cảm biến gia tốc. Kết quả là một ước lượng định hướng phản ứng nhanh với chuyển động (giống như con quay hồi chuyển) nhưng không bị lệch theo thời gian (giống như tham chiếu của cảm biến gia tốc).
Các hệ thống tinh vi hơn sử dụng bộ lọc Kalman hoặc bộ lọc Kalman mở rộng (EKF), điều chỉnh động trọng số dựa trên ước tính nhiễu cảm biến và độ tin cậy. Khi gia tốc hoặc rung động cao, bộ lọc làm giảm độ tin cậy vào cảm biến gia tốc; Trong chuyển động ổn định, nó tăng độ lợi hiệu chỉnh để hạn chế trôi của con quay hồi chuyển.
Nếu không có nhiệt hạch, bạn sẽ gặp phải cả hai điều tệ nhất: nghiêng nhiễu từ cảm biến gia tốc hoặc trôi không giới hạn từ con quay hồi chuyển. Mọi sản phẩm theo dõi chuyển động tôi từng xuất xứ - từ tay cầm game đến module IMU - đều cần hợp nhất để sử dụng được.
Các vấn đề phổ biến và cách gỡ lỗi
Nếu bạn đọc được gia tốc hoặc quay không đổi khi cảm biến đứng yên, bạn chưa hiệu chuẩn được độ lệch bằng không. Thu thập một tập dữ liệu cố định và trừ đi giá trị trung bình.
Nếu ước lượng định hướng của bạn bị lệch đều theo một hướng, thì hiệu chỉnh thiên lệch con quay hồi chuyển không hoạt động. Hoặc giá trị bias sai, tốc độ lấy mẫu sai (nên dt sai), hoặc nhiệt độ đã làm lệch sai kể từ khi hiệu chuẩn.
Nếu góc nghiêng nhảy hoặc lật 90°, có thể bạn đã ánh xạ trục sai. Quay lại sơ đồ trục của datasheet và kiểm tra các quy ước ký hiệu của bạn.
Nếu dữ liệu có vẻ nhiễu hoặc tăng đột biến định kỳ, hãy kiểm tra việc tách nguồn điện (thêm một gốm 0.1 μF và tantalum 10 μF gần cảm biến), kiểm tra các cạnh xung nhịp SPI khớp với thời gian trên datasheet, và đảm bảo tốc độ lấy mẫu không cao hơn tốc độ dữ liệu đầu ra nội bộ của cảm biến (đọc nhanh hơn ODR chỉ lặp lại mẫu trước hoặc trả về dữ liệu FIFO cũ).
Nếu cảm biến ngừng phản hồi hoặc trả về tất cả số 0, hãy kiểm tra các lần kéo lên I²C (điển hình là 4.7 kΩ), xác minh địa chỉ I²C của chip khớp với mã của bạn (nhiều IMU có hai địa chỉ có thể chọn bằng một chân), và xác nhận VDDIO phù hợp với mức logic của MCU (1.8 V, 3.3 V hoặc 5 V). Tôi đã từng gỡ lỗi ba thiết kế riêng biệt, nơi ai đó cho rằng I/O 3.3 V luôn tương thích, nhưng cảm biến yêu cầu VDDIO 1.8 V và MCU 3.3 V thì quá tải các đầu vào.
Điều thực sự giới hạn độ chính xác
Trong hầu hết các hệ thống, yếu tố giới hạn không phải là thông số kỹ thuật nhiễu cảm biến - mà là sự không ổn định của bias và sự trôi nhiệt độ. Một con quay hồi chuyển trôi 0,5°/s sẽ tích lũy sai số 30° trong một phút, lớn hơn nhiều so với mức nhiễu nền RMS 0,07°/s.
Việc lắp đặt cơ khí cũng rất quan trọng. Tôi đã thử một thiết kế mà cảm biến gia tốc đặt gần điểm uốn của PCB, và mỗi lần ép vỏ máy, bo mạch bị cong đủ để tăng +20 mg gia tốc trục Y giả. Chúng tôi chuyển cảm biến sang phần cứng hơn của bo mạch và tín hiệu ảo biến mất.
Rung động kết nối với gia tốc kế ngay cả khi cảm biến được đánh giá chịu sốc cao. Ở mức cộng hưởng (thường là 1-5 kHz đối với die MEMS trên PCB), ngay cả rung động biên độ thấp cũng có thể bị ám ảnh xuống dải tín hiệu và trông giống như gia tốc thật. Tôi đã thấy điều này trong các ứng dụng ô tô và công nghiệp, nơi một động cơ hoặc bơm gần đó tạo ra rung động 2 kHz rồi gập vào dải đo 100 Hz và tạo ra 50+ mg nhiễu.
Giải pháp là cách ly cơ học (bộ giảm chấn cao su hoặc miếng đệm xốp) hoặc lọc thông thấp tốt hơn, nhưng trước tiên phải xác định tần số dao động - phân tích phổ dữ liệu gia tốc kế thô thường phát hiện ra nguyên nhân.
Khi Gia tốc kế và Con quay hồi chuyển không đủ
Hợp nhất gia tốc kế + con quay hồi chuyển hoạt động tốt cho định hướng ngắn hạn (vài giây đến vài phút), nhưng không thể điều chỉnh lệch hướng quanh trục đứng. Nếu thiết bị quay chậm theo hướng (như quay khi đứng yên), con quay hồi chuyển sẽ trôi và gia tốc kế không thấy thay đổi vì trọng lực vẫn đứng thẳng.
Đó là lý do IMU 9 trục bổ sung từ kế để cảm biến từ trường Trái Đất và cung cấp tham chiếu hướng tuyệt đối. Tuy nhiên, từ kế dễ bị làm nhiễu bởi các vật liệu sắt gần đó, dòng điện DC và từ trường từ động cơ hoặc pin - vì vậy chúng tạo ra một loạt các vấn đề hiệu chuẩn và sửa lỗi mới.
Đối với các ứng dụng cần vị trí lâu dài hoặc định hướng tuyệt đối, bạn sẽ cần một tham chiếu bên ngoài: GPS cho vị trí, quãng đường trực quan cho chuyển động tương đối, hoặc một beacon cố định cho hướng đi. Gia tốc kế và con quay hồi chuyển cung cấp chuyển động cục bộ với tốc độ cao, chứ không phải sự thật toàn cầu.
Lựa chọn giữa các cấp độ thiết bị
Cảm biến gia tốc và con quay hồi chuyển MEMS có các cấp độ tiêu dùng, công nghiệp và chiến thuật. Phụ tùng tiêu dùng (dùng trong điện thoại và thiết bị theo dõi thể dục) có độ không ổn định bias khoảng 0,1-0,5°/s (con quay hồi chuyển) và 1-10 mg (accel), với độ lệch nhiệt độ lên tới 0,05°/s/°C.
IMU công nghiệp cải thiện độ phân cực lên 0,01-0,05°/s (con quay hồi chuyển) và 0,1-1 mg (accel), thường có khả năng bù nhiệt bên trong và ổn định lâu dài tốt hơn. Chúng có giá cao hơn 3-10× nhưng rất đáng giá cho robot, UAV hoặc ổn định nền tảng chính xác.
Cảm biến cấp chiến thuật và điều hướng (dùng trong hàng không vũ trụ và quốc phòng) đạt độ lệch 0,001°/s hoặc thấp hơn, sử dụng con quay hồi chuyển sợi quang hoặc laser vòng thay vì MEMS. Chúng có giá hàng nghìn đô la mỗi trục và cần kiểm soát nhiệt và rung động cẩn thận - điều này quá mức cần thiết cho bất cứ thứ gì ngoài hệ thống định vị quán tính.
Đối với hầu hết các dự án nhúng, một MEMS IMU công nghiệp tầm trung đạt được sự cân bằng hợp lý giữa chi phí, hiệu suất và nỗ lực tích hợp.