1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(TIỂU LUẬN) tìm HIỂU NGUYÊN lý HOẠT ĐỘNG ENCODER, cảm BIẾN GIA tốc MPU6050 kết hợp bộ lọc KALMAN

36 71 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu nguyên lý hoạt động encoder, cảm biến gia tốc MPU6050 kết hợp bộ lọc Kalman
Tác giả Nguyễn Việt Hoàng
Người hướng dẫn TS. Vũ Vân Hà
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Điện tử
Thể loại đồ án
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 36
Dung lượng 455,04 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1. ENCODER – CẢM BIẾN ĐO VỊ TRÍ GÓC, TỐC ĐỘ ĐỘNG CƠ (12)
    • 1.1 Cấu tạo (12)
    • 1.2 Phân loại (12)
      • 1.2.1 Incremental encoder (Tương đối) (12)
      • 1.2.2 Absolute encoder (Tuyệt đối) (13)
    • 1.3 Thông số encoder cần quan tâm (14)
    • 1.4 Cách đọc encoder tương đối (14)
    • 1.5 Thực nghiệm (15)
      • 1.5.1 Thiết bị phần cứng (15)
      • 1.5.2 Sơ đồ đấu dây (17)
      • 1.5.3 Kết quả thực nghiệm (18)
  • CHƯƠNG 2. MPU6050 – CẢM BIẾN GIA TỐC VÀ BỘ LỌC KALMAN (19)
    • 2.1 Nguyên lý hoạt động (19)
    • 2.2 Bộ lọc Kalman (20)
      • 2.2.1 Bản chất bộ lọc Kalman (20)
      • 2.2.2 Bộ lọc Kalman cho hệ tuyến tính rời rạc (21)
    • 2.3 Bài toán cảm biến MPU6050 (22)
    • 2.4 Kết quả thực nghiệm (24)
  • KẾT LUẬN (25)
  • TÀI LIỆU THAM KHẢO (26)
  • PHỤ LỤC (27)

Nội dung

ENCODER – CẢM BIẾN ĐO VỊ TRÍGÓC, TỐC ĐỘ ĐỘNG CƠ 1.1 Cấu tạo: Encoder cấu tạo chính gồm: Đĩa quang tròn có rảnh nhỏ quay quanh trục: Trên đĩa được đục lỗ rãnh, khiđĩa này quay và chiếu đè

ENCODER – CẢM BIẾN ĐO VỊ TRÍ GÓC, TỐC ĐỘ ĐỘNG CƠ

Cấu tạo

Encoder là một thiết bị cơ bản gồm một đĩa quang tròn có rãnh nhỏ quay quanh trục Khi đĩa quay và được chiếu ánh sáng từ đèn LED lên mặt đĩa, các rãnh sẽ gây ra các ngắt quãng tín hiệu, cho phép nhận biết vị trí và vận tốc quay Các rãnh trên đĩa chia vòng tròn 360 độ thành các góc bằng nhau, và mỗi đĩa có thể có nhiều dãy rãnh bắt đầu từ tâm, giúp mã hóa vị trí quay và tối ưu hóa độ phân giải của encoder.

Bộ cảm biến thu (photosensor)

Phân loại

Đối với đĩa mã 2 bit, ngõ ra có dạng xung vuông ở pha AB, hoặc ABZ, hoặc ABZA|, B|Z| (đọc là A đảo, B đảo, Z đảo) Encoder phổ biến nhất là loại có hai tín hiệu xung A và B, trong khi tín hiệu khe Z (index pulse) được dùng để xác định động cơ đã quay được một vòng, giúp căn chỉnh và định vị sau mỗi vòng quay.

Từ số xung, Encoder có số dây tương ứng: 6 hoặc 4 dây tùy loại Các dây bao gồm :

2 dây nguồn, 2 dây pha A và B, 1 dây pha Z

Tương ứng đĩa quay 8bit hay 8 dãy rãnh, cho ngõ ra dạng mã kỹ thuật số(BCD), Binary (nhị phân), Gray code…

Ví dụ: Encoder có ngõ ra dạng bit, độ phân giải 2500 Thì 1 vòng quay của encoder sẽ cho ra 2500 dãy nhị phân 8bit:

Absolute encoder (Tuyệt đối) có thể ghi nhớ vị trí khi bị mất nguồn do mỗi vị trí có một mã tín hiệu riêng.

Thông số encoder cần quan tâm

Encoder có đường kính trục từ 5–50 mm và ở dạng trục có thể là trục dương hoặc trục âm; đường kính lớn hơn 6 mm thường là trục lõm (trục âm) Độ phân giải, hay số xung, là số tín hiệu encoder đếm được khi quay một vòng, và encoder có số xung càng cao thì giá thành càng cao Trong các ứng dụng thực tế, thang máy thường dùng encoder 1024 p/r, trong chế tạo máy phổ biến ở khoảng 360 p/r hoặc 1000 p/r, cũng có các loại lên tới 6000 p/r hoặc 6 pr Về điện áp, encoder thường bị cháy do khi lắp đặt không chú ý nguồn cấp.

Nếu encoder có dãy điện áp:5~24V thì rất dễ Tuy nhiên với một số encoder trục lớn: 30-40mm, encoder theo máy sẽ thường gặp điện áp xác định: 5V, 12V hoặc 15V.

Ngõ ra: AB, ABZ, AB đảo, ABZ đảo.

Dạng ngõ ra: Có nhiều dạng ngõ ra, liệt kê sơ sơ gồm: Open Collector, Voltage

Output, Complemental, Totem Pole, Line Driver Dạng ngõ ra quy định nguồn cấp, đầu đọc thông tin

Dây cáp: cáp càng dài càng dễ bị nhiễu Dây tiêu chuẩn từ 1-3m Đôi khi lên đến

10m theo nhu cầu sử dụng.

Phụ kiện: đi kèm encoder trục dương là Coubling, encoder trục âm là Pass

Coubling giúp nối encoder trục dương với motor trục dương, Pass giúp gắn encoder vào máy Một encoder trục âm có 1-2 pass tùy loại.

Cách đọc encoder tương đối

Encoder hoạt động cho ngõ ra dạng tín hiệu xung vuông Khi encoder quay, cơ cấu cơ khí sẽ làm quay đĩa chia rãnh và cắt ngang qua đường tín hiệu quang được phát bởi mắt phát quang (hồng ngoại, laser) Việc chia cắt tín hiệu này tạo ra các xung trên các kênh A, B và I; các xung này thường trả về ở mức logic 5V (High) và 0V (Low) Tín hiệu xung có các đặc tính giúp nhận diện và đo đạc, như biên cạnh rõ nét, tần số xung tỷ lệ với tốc độ quay và mối quan hệ pha giữa hai kênh A và B cho phép xác định hướng quay, trong khi kênh I cung cấp tín hiệu tham chiếu cho mỗi vòng quay Những đặc tính này cho phép xử lý tín hiệu một cách hiệu quả bởi các mạch đếm, điều khiển và phân tích.

1 Tín hiệu xung ở mức thấp 0V

3 Tín hiệu sườn lên của xung

4 Tín hiệu sườn xuống của xung

Hình 1.4 Tín hiệu kênh A và B Để xác định độ thay đổi encoder có 2 cách:

Sử dụng 2 ngắt ngoài: Theo dõi sự thay đổi đồng thời cả 2 kênh A và B.

Sử dụng 1 ngắt ngoài: Chọn 1 kênh làm tín hiệu ngắt, sau đó đọc tín hiệu kênh còn lại.

Thực nghiệm

Encoder 334 tích hợp với động cơ:

+ Điện áp hoạt động: DC 3V – 24V.

+ Tích hợp hai mạch cầu H.

+ Điện áp điều khiển: +5 VDC ~ +35 VDC.

+ Dòng tối đa cho mỗi cầu H là: 2A.

+ Điện áp của tín hiệu điều khiển: +5 VDC ~ +7 VDC.

+ Dòng của tín hiệu điều khiển: 0 ~ 36mA.

+ 12V Power, Power GND: Nối với nguồn 12V cấp cho động cơ.

+ A Enable, B Enable: Nhận 2 tín hiệu enable cho 2 cầu.

+ IN1, IN2: Nhận tín hiệu điều khiển PWM đối xứng cho cầu thứ nhất.

+ IN3, IN4: Nhận tín hiệu điều khiển PWM đối xứng cho cầu thứ 2.

+ OutputA (Out1, Out2), OutputB (Out3, Out4): Nối với động cơ cần điều khiển.

Nhận thấy sơ đồ mạch cầu H rất thích hợp để điều khiển hai động cơ cùng lúc, bài viết tập trung vào các nguyên lý vận hành và ưu điểm của giải pháp này Sử dụng xung vuông để điều chỉnh tốc độ động cơ cho phép thay đổi vận tốc một cách linh hoạt và hiệu quả, đồng thời dễ dàng tích hợp với hệ thống điều khiển từ vi điều khiển Đảo chiều động cơ được thực hiện bằng cách thay đổi các giá trị logic từ vi điều khiển, giúp quay ngược hoặc chuyển hướng nhanh chóng mà không cần mạch phức tạp bổ sung Động cơ được cấp nguồn từ 12 VDC, đảm bảo công suất vận hành ổn định và phù hợp với nhiều ứng dụng thực tế Kết hợp mạch cầu H với vi điều khiển mang lại giải pháp kiểm soát hai động cơ đồng thời, tối ưu hóa momen xoắn và khả năng bảo vệ quá tải thông qua các tín hiệu điều khiển chuẩn Đây là lựa chọn phổ biến cho các hệ thống robotics và tự động hóa cần điều khiển hai động cơ một cách mượt mà và đáp ứng nhanh.

Hình 1.8 Vị trí góc và vận tốc

Hình 1.8 là kết quả sau khi chạy thử động cơ tích hợp encoder 334 sử dụng vi điều khiển arduino.

Vận tốc tên tính theo vị trí của bánh xe theo công thức:

V = Số ví trí thay đổi trong 1 giây * 60 / số xung 1 vòng đĩa

Công thức tính vận tốc tức thời thích hợp trong việc đo sự thay đổi vị trí bánh xe nhanh, quãng đường di chuyển ngắn.

MPU6050 – CẢM BIẾN GIA TỐC VÀ BỘ LỌC KALMAN

Nguyên lý hoạt động

MPU6050 GY521 6DOF IMU (Accelerometer & Gyro):

+ Con quay hồi chuyển 3 trục (3-axis MEMS gyroscope)

+ Cảm biến gia tốc 3 chiều (3-axis MEMS accelerometer)

MPU-6050 tích hợp một DSP (Digital Motion Processor) chuyên xử lý tín hiệu từ cảm biến và thực hiện các tính toán cần thiết ngay trên cảm biến Nhờ DSP, lượng công việc xử lý của vi điều khiển được giảm đáng kể, giúp cải thiện tốc độ xử lý và cho phản hồi nhanh hơn Đây là một điểm khác biệt nổi bật của MPU-6050 so với các cảm biến gia tốc và gyro khác.

MPU-6050 có thể kết hợp với cảm biến từ trường (bên ngoài) để tạo thành bộ cảm biến 9 góc đầy đủ thông qua giao tiếp I2C.

MPU-6050 tích hợp cảm biến gia tốc và gyroscope, sử dụng bộ chuyển đổi tương tự - số (Analog to Digital Converter, ADC) 16-bit để cho ra kết quả chi tiết về góc quay và tọa độ Với 16-bit, mỗi cảm biến có 2^16 giá trị, tương đương 65.536 mức đo, mang lại phân giải cao và độ chính xác trong dữ liệu góc quay và các tọa độ được ghi nhận.

Tùy thuộc vào yêu cầu của bạn, cảm biến MPU-6050 có thể hoạt động ở chế độ tốc độ xử lý cao hoặc ở chế độ đo góc quay chính xác (chậm hơn) MPU-6050 cho phép đo ở phạm vi đa dạng cho cả gia tốc và góc quay, cho phép bạn tùy biến mức nhạy và độ chính xác theo ứng dụng Ở chế độ xử lý nhanh, cảm biến cung cấp dữ liệu với tần số lấy mẫu cao và đáp ứng nhanh các biến động trong hệ thống, trong khi ở chế độ đo góc quay chính xác, tiêu chí là độ ổn định và nhiễu được giảm thiểu MPU-6050 hỗ trợ các phạm vi đo gia tốc phổ biến như ±2g, ±4g, ±8g và ±16g, và các phạm vi đo gyroscope lần lượt là ±250, ±500, ±1000 và ±2000 độ trên giây, giúp tối ưu hóa cho các ứng dụng từ theo dõi chuyển động đến điều khiển hệ thống Việc chọn chế độ và phạm vi phù hợp sẽ cải thiện độ chính xác và hiệu suất của hệ thống khi tích hợp MPU-6050 vào dự án.

+ Con quay hồi chuyển: ± 250 500 1000 2000 dps

MPU-6050 tích hợp bộ đệm dữ liệu 1024 byte, cho phép vi điều khiển gửi lệnh tới cảm biến và nhận dữ liệu sau khi MPU-6050 hoàn tất tính toán.

Bộ lọc Kalman

Bộ lọc là quá trình xử lý nhằm loại bỏ những thành phần không có giá trị hoặc không cần thiết, đồng thời giữ lại các tín hiệu có giá trị sử dụng Trong xử lý tín hiệu, bộ lọc được thiết kế để tách tín hiệu sạch (tín hiệu mục tiêu) khỏi tín hiệu trộn lẫn với nhiều tín hiệu bẩn (nhiễu và tín hiệu không cần thiết), từ đó cải thiện chất lượng và độ chính xác của dữ liệu thu được.

Bộ lọc Kalman là một tập hợp các phương trình toán học mô tả một phương pháp tính toán truy hồi hiệu quả cho phép ước đoán trạng thái của một quá trình sao cho trung bình bình phương sai của độ lệch giữa giá trị thực và giá trị ước đoán là nhỏ nhất Bộ lọc Kalman rất hiệu quả trong việc ước đoán các trạng thái của quá trình ở quá khứ, hiện tại và tương lai, kể cả khi độ xác thực của hệ thống mô phỏng chưa được khẳng định.

2.2.1 Bản chất bộ lọc Kalman Để mô hình hóa hoạt động của mạch lọc Kalman, chúng ta có tín hiệu đo được, có mô hình của tín hiệu đo được ( đòi hỏi tuyến tính) và sau đó là áp dụng vào trong hệ thống phương trình của mạch lọc để ước lượng trạng thái quan tâm Để có thể ứng dụng một cách hiệu quả mạch lọc Kalman thì chúng ta phải mô hình hóa được một cách tuyến tính sự thay đổi của trạng thái cần ước lượng (estimate) hoặc ước đoán(predict).

2.2.2 Bộ lọc Kalman cho hệ tuyến tính rời rạc

Mô hình đối tượng tuyến tính rời rạc được biểu diễn qua hệ phương trình trạng thái sau: x_k = A x_{k-1} + B u_{k-1} + w_{k-1}, z_k = H x_k + v_k Trong đó x là biến trạng thái, u là biến đầu vào, z là tín hiệu đo được (đầu ra có thể quan sát được), và w cùng v lần lượt là nhiễu quá trình và nhiễu đo lường tương ứng Hệ thống này cho phép mô phỏng, phân tích và ước lượng trạng thái bằng cách dùng ma trận A, B, H để liên kết trạng thái qua các bước thời gian và kết quả đo được z_k, đồng thời xử lý sự bất định do nhiễu w_{k-1} và v_k nhằm tối ưu hóa việc khôi phục thông tin trạng thái của đối tượng.

Giả sử các nhiễu quá trình w(t) và nhiễu đo lường v(t) là nhiễu trắng , có phương sai tương ứng là Q và R. p(w) ~ N (0, Q) p(v) ~ N (0, R)

Trong hệ thống như vậy, bộ lọc Kalman tuyến tính cho phép ước lượng tối ưu biến trạng thái x_k, ký hiệu là x̂_k, sao cho hiệp phương sai của x̂_k với x_k, được ký hiệu là P_k, đạt giá trị nhỏ nhất Quá trình này dựa trên mô hình trạng thái động và đo lường có nhiễu, trong đó Kalman gain điều chỉnh ước lượng để giảm thiểu sai số và tối ưu hóa độ tin cậy của x̂_k bằng cách giảm P_k.

Thuật toán Kalman cho hệ rời rạc như sau:

Thuật toán gồm hai bước chính: bước ước lượng dự đoán (time update) nhằm cập nhật trạng thái dựa trên thông tin đầu vào và mô hình dự báo, và bước đo đạc để hiệu chỉnh ước lượng (measurement update) dựa trên các đo đạc z_k thực tế.

Chú ý rằng ̂ k - là giá trị dự đoán được cập nhật từ giá trị ước lượng ̂ k-1 Thuật toán này đc trình bày trên sơ đồ khối như sau:

Hình 2.4 Mô hình bộ lọc Kalman cho hệ tuyến tính

Bài toán cảm biến MPU6050

Có một tham số được đưa về từ cảm biến, nhưng tham số này chịu tác động bởi nhiễu, do đó ta thiết kế bộ lọc Kalman để ước lượng giá trị tốt nhất của giá trị cần đo Bộ lọc Kalman kết hợp mô hình hệ thống với dữ liệu đo thực tế nhằm tối ưu hóa ước lượng và lọc bỏ nhiễu, giúp tăng độ chính xác và ổn định của giá trị cần đo Nhờ đó, việc đánh giá và theo dõi thông số từ cảm biến được tin cậy hơn trong các hệ thống điều khiển và giám sát.

Mô hình bài toán : x k = Ax k-1 + Bu k-1 + w k-1

Với giá trị thu đươc z ∈ R z k = Hx k + v k

Giá trị cần đo là x(t)

Tín hiệu thu được từ cảm biến là z(t) Nhiễu của quá trình là w(t)

Các phương trình cho bộ lọc Kalman :

Phương trình quá trình “Time update”: ̂̂ k - = ̂ k-1

Phương trình quá trình “easurement update”:

Tín hiệu cần đo là x(t) ~ (0,50) w(t) ~ (0,1e-3) Q = 1e-3 nhiễu đo lường trong bài toán mô phỏng này khi lấy giá trị từ cảm biến ta lấy khoảng 10% giá trị thật

Trong hệ thống, K và R có mối quan hệ tỉ lệ nghịch: khi R tăng lên, tốc độ ước lượng chậm lại và giá trị ước lượng có xu hướng ít tin cậy hơn giá trị đo được; ngược lại, khi R giảm, tốc độ ước lượng nhanh hơn và độ tin cậy của ước lượng được cải thiện Vì vậy, việc chọn giá trị R phù hợp ảnh hưởng trực tiếp đến tốc độ ước lượng và độ tin cậy của kết quả trong hệ thống.

Để bắt đầu quá trình ước lượng, chọn thông số ban đầu x(0)=0 và P0- = 5 Giá trị x(0) không quan trọng vì nó sẽ được thích nghi qua từng bước để đạt đến giá trị cần xác định, còn P0- khác 0 là điều kiện đủ để khởi động và duy trì tính ổn định của quá trình ước lượng.

Kết quả thực nghiệm

Ứng dụng của bộ lọc Kalman trong việc lấy góc từ cảm biến MPU6050:

Hình 2.5 Vị trí không đổi

Hình 2.6 Vị trí dao động

Kết quả này cho thấy thông số được lấy từ Gyroscopes X (vận tốc góc), và đồ thị lọc thể hiện hiệu quả tương đối tốt khi cảm biến ở vị trí cố định như hình 2.5 cũng như khi vị trí cảm biến được thay đổi như hình 2.6.

Ngày đăng: 16/12/2022, 14:54

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w