1. Trang chủ
  2. » Luận Văn - Báo Cáo

thiết kế và chế tạo xe hai bánh tự cân bằng

75 1,3K 6

Đ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

Định dạng
Số trang 75
Dung lượng 5,79 MB

Nội dung

thiết kế và chế tạo xe hai bánh tự cân bằng

Trang 1

Kính gửi: Hội đồng bảo vệ đồ án tốt nghiệp Khoa Điện Tử - Viễn Thông, Trường

Đại Học Dân Lập Duy Tân

Em tên là: Nguyễn Phạm Công Đức

Lớp: K15EVT, Khoa Điện Tử - Viễn Thông, Trường Đại Học Dân Lập Duy Tân

Em xin cam đoan nội dung của đồ án này không phải là bản sao chép của bất

cứ đồ án hoặc công trình đã có từ trước Đây là đồ án do em thực hiện dưới sự

hướng dẫn trực tiếp của TS Hà Đắc Bình Mọi tham khảo dùng trong đồ án đều

được trích dẫn rõ ràng tên tác giả, thời gian, địa điểm công bố Mọi sao chép khônghợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu hoàn toàn trách nhiệm

Đà Nẵng, ngày 9 tháng 12 năm 2013

Sinh viên thực hiện

Trang 2

Qua đồ án này em xin chân thành cảm ơn thầy giáo hướng dẫn TS Hà Đắc Bình

đã tận tình giúp đỡ em thực hiện đồ án, đồng thời em cũng xin cảm ơn Thầy TS Đặng Việt Hùng và các thầy cô trong khoa Điện tử - Viễn thông đã luôn tạo điều

kiện thuận lợi cho em học tập để thực hiện đồ án này một cách tốt nhất

Trang 3

LỜI CẢM ƠN

MỤC LỤC

DANH MỤC CÁC HÌNH VẼ

DANH MỤC CÁC BẢNG BIỂU

DANH MỤC CÁC TỪ VIẾT TẮT

LỜI MỞ ĐẦU 1

ĐẶT VẤN ĐỀ 3

CHƯƠNG 1: LÝ THUYẾT TIẾP CẬN 8

1.1 Tổng quan về Robot cân bằng 8

1.2 Thế nào là xe 2 bánh tự cân bằng 9

1.3 Phân tích lực 11

1.4 Thuật toán điều khiển PID 12

1.5 Lọc nhiễu tín hiệu từ cảm biến 21

CHƯƠNG 2: THIẾT KẾ PHẦN CỨNG 23

2.1 Thiết kế cơ khí 23

2.2 Mạch điện tử 24

2.2.1 Nguồn điện 24

2.2.2 Mạch driver điều khiển động cơ 25

2.2.2.1 Điều khiển động cơ với IC L6203 25

2.2.2.2 Kết nối chân cho IC L6203 26

2.2.2.3 Mạch nguyên lý điều khiển động cơ 27

2.2.2.4 Điều khiển tốc độ 27

2.2.3 Cảm biến gia tốc góc ADXL335 28

2.2.4 Bộ xử lý trung tâm – Kit LM3S1968 31

2.2.4.1 Tính năng của vi điều khiển LM3S1968 31

2.2.4.2 Mạch điều khiển trung tâm 35

2.2.5 Hình chụp các mạch điện tử 37

CHƯƠNG 3: LẬP TRÌNH VÀ THỬ NGHIỆM 43

3.1 Sơ đồ khối điều khiển chính 43

Trang 4

3.3 Sơ đồ khối Read ADC 46

3.3.1 Sơ đô khối đọc dữ liệu từ ADXL33 46

3.3.2 Cấu hình hoạt động ADC0 46

3.4 Sơ đồ khối điều khiển động cơ 49

3.5 Quá trình thực nghiệm 52

3.6 Kết quả thử nghiệm 54

3.6.1 Dạng sóng đo được của cảm biến gia tốc 54

3.6.2 Dạng sóng đo được của xung PWM 56

3.6.3 Kết luận 58

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 59

1.Những kết quả đạt được 59

2.Những kết quả chưa đạt được 59

3.Những vấn đề chưa giải quyết 59

4.Hướng phát triển 59

TÀI LIỆU THAM KHẢO 61

Trang 5

Hình 1.1 Các module được thêm vào xe tự cân bằng 8

Hình 1.2 Các module được thêm vào xe tự cân bằng 9

Hình 1.3 Mô tả nguyên lý giữ thăng bằng 9

Hình 1.4 Mô tả cách bắt đầu di chuyển 10

Hình 1.5 Phân tích lực 11

Hình 1.6 Sơ đồ khối thuật toán PID 12

Hình 1.7 Đồ thị hàm truyền đáp ứng khi chưa có Kp, Ki, Kd 14

Hình 1.8 Đồ thị hàm truyền theo thời gian ứng với giá trị Kp 15

Hình 1.9 Đồ thị hàm truyền theo thời gian ứng với giá trị Kp, Kd 16

Hình 1.10 Đồ thị hàm truyền theo thời gian ứng với giá trị Kp, Ki 17

Hình 1.11 Đồ thị hàm truyền theo thời gian ứng với giá trị Kp, Ki, Kd 18

Hình 1.12 Mô tả vị trí của xe cân bằng 18

Hình 1.13 Bộ lọc trung bình 22

Hình 2.1 Mô hình khung đế đơn giản 24

Hình 2.2 Sơ đồ khối nguồn điện cung cấp toàn mạch 25

Hình 2.3 Mạch cầu H L6203 26

Hình 2.4 Sơ đồ chân IC L6203 26

Hình 2.5 Sơ đồ khối mạch Driver 27

Hình 2.6 Điều chế xung PWM 28

Hình 2.7 Cảm biến gia tốc ADXL3352 29

Hình 2.8 Sơ đồ khối của cảm biến gia tốc góc ADXL335 29

Hình 2.9 Phân tích lực 30

Hình 2.10 Hệ trục tộ độ của cảm biến 30

Hình 2.11 Giá trị góc nghiêng tính theo hàm arcsin của gia tốc 31

Hình 2.12 Giao diện Kit Stellaris LM3S1968 32

Hình 2.13 Sơ đồ nguyên lý mạch điều khiển trung tâm 35

Hình 2.14 Khối điều khiển trung tâm sử dụng Kit Stellaris LM3S1968 37

Hình 2.15 Mạch Driver sử dụng IC L6203 38

Hình 2.16 Pin Li-ion 4.2V 38

Hình 2.17 Động cơ DC 39

Trang 6

Hình 2.19 Cảm biến gia tốc ADXL335 40

Hình 2.20 Khung xe 41

Hình 2.21 Mô hình xe tự cân bằng hoàn chỉnh 42

Hình 3.1 Sơ đồ khối chính 43

Hình 3.2 Sơ đồ khối điều khiển bằng thuật toán PID 45

Hình 3.3 Sơ đồ khối đọc dữ liệu từ ADXL33 46

Hình 3.4 Sơ đồ khối Cấu hình hoạt động ADC0 46

Hình 3.5 Sơ đồ khối điều khiển động cơ 49

Hình 3.6 Xung trên chân X_OUT của cảm biến gia tốc khi robot ở vị trí cân bằng 55

Hình 3.7 Xung trên chân X_OUT của cảm biến gia tốc khi robot nghiêng về trước 55

Hình 3.8 Xung trên chân X_OUT của cảm biến gia tốc khi robot nghiêng về sau 56

Hình 3.9 Độ rộng xung PWM khi robot ở vị trí cân bằng 56

Hình 3.10 Độ rộng xung PWM khi robot ngã về phía sau 57

Hình 3.11 Độ rộng xung PWM khi robot ngã về phía trước 57

Trang 7

Bảng 2.1 Kiểm soát logic cho IC L6203 26 Bảng 3.1 Đặc tính của luật điều khiển P, I và D khi thử nghiệm 54

Trang 8

IC Ingrated Circuit Mạch điện tích hợp

ADC Analog Digital Converter Bộ chuyển đổi tín hiệu tương tự

sang tín hiệu sốGPIO General Purpose Input Output Ngõ vào ra để giao tiếp của vi

điều khiển

Trang 9

LỜI MỞ ĐẦU

Với sự phát triển của khoa học công nghệ hiện nay, các mô hình Robot đangdần thay thế con người trong cuộc sống hằng ngày hay trong các quá trình sảnxuất.Việc lên ý tưởng và thiết kế thành công một mô hình xe tự cân bằng trên 2bánh đồng trục cũng đã được nhiều tác giả nghiên cứu và chế tạo thành công

Đề tài xe hai bánh tự cân bằng có thể xem là một cầu nối kinh nghiệm từ môhình thăng bằng con lắc ngược đến việc nghiên cứu và chế tạo các loại robot dichuyển bằng 2 bánh trong tương lai Mục tiêu của đề tài là thiết kế và chế tạo một

xe hai bánh tự cân bằng Đề tài này được quan tâm từ việc tính toán các thông sốđầu vào và ra, dựa trên đó để xây dựng các mô phỏng, đến việc thiết kế mô hình,thực hiện phần điện tử và điều khiển, viết các chương trình điều khiển với mục đíchcuối cùng là tạo ra một mô hình xe di chuyển cân bằng trên hai bánh xe đồng trụcđược lắp trên hai động cơ dựa theo các định luật cơ học Newton và lực quán tính

Mô hình là một chiếc xe có hai bánh được đặt dọc trục với nhau (khác với xeđạp là trục của hai bánh xe song song) Trên mô hình sử dụng các cảm biến để đogia tốc góc của thân xe Nhờ cảm biến này, xe sẽ có thể tự giữ thăng bằng và dichuyển

Trong hệ thống cảm biến, để loại trừ các tín hiệu nhiễu từ hệ thống và nhiễu

từ tín hiệu đo, sai số của ngõ ra, đồng thời có thể ước lượng chính xác giá trị đotrong tương lai của cảm biến cũng như kết hợp các tín hiệu, bộ lọc tính trung bìnhđược sử dụng nhằm cho một kết quả tốt hơn về gia tốc góc của xe Từ các tín hiệu

đo, thông qua một số đại lượng đặc trưng của mô hình (khối lượng, chiều dài, chiềucao vật, đường kính bánh…) ta sẽ tính được momen quán tính nghiêng (lật của môhình), từ đó đưa ra các giá trị điều khiển phù hợp cho các bánh xe để giữ cho môhình luôn đứng vững hoặc di chuyển với một vận tốc ổn định

Toàn bộ mô hình được điều khiển bằng một vi điều khiển LM3S1968 Đây làthế hệ tương đối cao cấp của họ Cortex-M3 based Microcontroller có thể xử lý vàthực thi chương trình ở tốc độ cao (đạt đến 50MHz) trong việc tính toán các giá trịcảm biến và đưa ra bộ truyền động (động cơ điện) Bộ vi điều khiển đóng vai trò thứnhất trong đề tài như một bộ lọc trung bình với tín hiệu vào từ gyro Với các dữliệu về góc đã xử lý và tín hiệu tạo xung cho động cơ DC, vai trò thứ hai của vi điều

Trang 10

khiển trong đề tài sẽ tính toán dựa vào thuật toán PID và đưa ra tín hiệu điều khiển

bộ truyền động, đến bánh xe để giữ thăng bằng/di chuyển

Trang 11

ĐẶT VẤN ĐỀ+Mục tiêu và phạm vi nghiên cứu

Mục tiêu của đề tài là xây dựng xe hai bánh cân bằng di chuyển trên địa hình

phẳng Khả năng di chuyển cân bằng trên hai bánh làm phương tiện di chuyển hiệuquả và linh động hơn, dễ dàng xoay trở trong điều kiện không gian chật hẹp Trongkhuôn khổ 8 tuần thực hiện luận văn tốt nghiệp đại học, những mục tiêu của đề tàiđược đề ra như sau:

− Tìm hiểu về các loại xe tự cân bằng, nguyên lý cơ bản về cân bằng

− Tính toán các tham số khi phân tích lực của mô hình

− Thiết kế bản vẽ, chế tạo mô hình theo kích thước thực

− Thiết kế mạch điều khiển trung tâm, làm nhiệm vụ xử lý tín hiệu đo và đưa ra cácquyết định điều khiển

− Thiết kế mạch điện tử kết hợp các cảm biến thực hiện chức năng đo gia tốc góc − Thiết kế mạch điều khiển công suất cho hai động cơ DC

− Kết hợp giải thuật PID cho vi điều khiển kết hợp và bù trừ cảm biến để có đượcgiá trị gia tốc góc chính xác

− Xây dựng thuật toán điều khiển cho động cơ, giữ thăng bằng và ngăn ngừa quátải của các bánh xe

− Lập trình điều khiển

+Phương pháp nghiên cứu

− Tham khảo mô hình lý thuyết gồm có:

 Tiếp cận từ mô hình con lắc ngược đến mô hình thật của đề tài

 Mô phỏng mô hình bằng MatLAB từ mô hình con lắc ngược

− Tiếp cận mô hình thực, gồm có:

 Thiết kế khung sườn cơ khí của mô hình

 Mạch điều khiển bánh xe

Trang 12

những động cơ, điều khiển những cảm biến cần thiết để đo các giá trị góc Các tínhiệu đo gia tốc góc từ cảm biến gyro được thông qua một bộ lọc tính trung bìnhđược lập trình trên vi điều khiển LM3S1968 để có các thông số đo góc chính xác.Bảng OLED trên Kit hiển thị các thông số hoạt động của xe Pin được lắp 2 bênthân xe bằng nhựa để cung cấp toàn bộ năng lượng cho xe hoạt động.

+Ý nghĩa khoa học và thực tiễn

-Ý nghĩa khoa học

Xây dựng được một phương tiện vận chuyển mới trong khu vực chật hẹp.Làm phương tiện vận chuyển hàng hoá đến những nơi đã được lập trình sẵn ở trongcác tòa nhà, phòng làm việc, những không gian chật hẹp, khó xoay trở Thậm chíkết hợp trên các humanoid robot, nếu được kết hợp với các robot camera, robot dòđường, robot lái mặt đường thì hiệu quả các công dụng cụ thể cực kỳ linh hoạt Tuyvậy, cần phải tiến hành giải quyết thêm về phần lên, xuống dốc cầu thang (khôngthể leo lên các bậc thang cao)

-Tình hình nghiên cứu trong và ngoài nước

Hiện nay chưa có thông tin cụ thể nào về việc chế tạo xe hai bánh tự cânbằng dùng trên robot cũng như xe hai bánh tự cân bằng ở Việt Nam Nhưng trên thếgiới, ở một vài nước, các kỹ thuật viên và một số sinh viên đã nghiên cứu và cho rađời các dạng xe hai bánh như thế Dưới đây là một số thông tin về chúng

+ nBot[16]

nBot do David P Anderson sáng chế nBot được lấy ý tưởng để cân bằngnhư sau: các bánh xe sẽ phải chạy xe theo hướng mà phần trên robot sắp ngã Nếubánh xe có thể được lái theo cách đứng vững theo trọng tâm robot, robot sẽ vẫnđược giữ cân bằng Trong thực tế, điều này đòi hỏi hai cảm biến thông tin phản hồi:cảm biến góc nghiêng để đo góc nghiêng của robot với trọng lực, và encoder trênbánh xe để đo vị trí cơ bản của robot Bốn thông số

ngõ vào để xác định hoạt động và vị trí của xe con

lắc ngược cân bằng là:

1) góc nghiêng

2) đạo hàm của góc nghiêng, vận tốc góc

3) vị trí bánh xe

Trang 13

4) đạo hàm vị trí bánh, vận tốc bánh xe

Bốn giá trị đo lường được cộng lại và phản hồi tới điện áp động cơ, tươngứng với momen quay, cân bằng, và bộ phận lái robot

+ Balance bot I

Balance-bot I (do Sanghyuk, Hàn Quốc

thực hiện) là một robot hai bánh tự cân bằng bằng

cách kiểm soát thông tin phản hồi Hệ thống cao

50cm Khung chính được làm bằng nhôm Nó có

hai trục bánh xe nối với hộp giảm tốc và động cơ

DC cho sự phát động Tổng cộng có ba bộ vi xử lý

Atmel được sử dụng Vi điều khiển chính (master)

thi hành những nguyên lý kiểm soát và thuật toán

ước lượng Một vi điều khiển khác kiểm soát tất cả

cảm biến analog Vi điều khiển thứ ba điều khiển động cơ DC Linear quadraticregulator (LQR) được thiết kế và thực thi mạch điều khiển Nó có bốn giá trị khácnhau – góc nghiêng, vận tốc góc nghiêng, góc quay bánh xe, và vận tốc góc quay,sau đó nó tạo lệnh cho động cơ DC để điều chỉnh tốc độ bánh xe

+BaliBot

Balibot, một robot hai bánh cân bằng, là một trong các mẫu đầu tiên về robothai bánh có trọng tâm phía trên các bánh xe Không có hệ thống điều khiển hoạtđộng, robot sẽ bị ngã Khi robot có nhận biết hướng mà nó sặp ngã, các bánh xe sẽ

di chuyển về phí ngã và thẳng góc với chính nó

Trang 14

Cảm biến góc nghiêng để đo góc nghiêng của robot, gia tốc kế MotorolaMMA2260 được sử dụng, thiết bị có cấu trúc MEMS.

PIC16F7876 của hãng Microchip được chọn làm trung tâm điều khiển chorobot.PIC tích hợp một bộ biến đổi A/D nhiều kênh để đo cảm biến góc nghiêng vàcác ngõ I/O để kiểm soát hai servo được mô tả cho sự quay vòng tiếp theo Điệnđược cung cấp bằng 4 cục pin AA và được ổn áp dropout Nguồn điện 6V khôngqua ổn áp được phân phối đến động cơ servo qua tụ điện 3300  F qua bù nănglượng cho vi mạch điều khiển khi công suất ngõ ra từ các servo được hoạt động.Mạch điện tử được xây dựng trên bảng project board Radio Shack RS 276-150 vàlắp ráp phí trên các motor servo, trên khung bằng nhôm Nguồn điện được đặt gầnđỉnh và hoat động như trọng lượng của con lắc ngược Một phiên bản khác củaBaliBot sử dụng các cảm biến hồng ngoại để đo khoảng cách thay vì dùng các cảmbiến đo góc

Trang 15

+ Equibot

Equibot là robot cân bằng do Dan Piponi thực

hiện Cơ bản nó dựa vào vi điều khiển ATMega32

RISC Cả hai servo Hitec HS-311 chuẩn được sửa

đổi cho xoay vòng 360o và nguồn điện vào được nối

trực tiếp với các động cơ để PWM kiểm soát chúng

Một trong hai servo được gắn với bộ điều khiển tứ

cực LQR, đó là phần phức tạp nhất trong cấu trúc

robot, bánh còn lại bắt chước tốc độ của bánh thứ

nhất Equibot chỉ có một loại cảm biến hồng ngoại

Sharp thay cho cảm biến về góc Nó được đặt thấp để

đo khoảng cách với sàn Ngõ ra từ thiết bị được dùng

để xác định hướng robot di chuyển

-Tình hình thực tế:

Hiện tại, trong điều kiện đường xá giao thông ngày càng chật hẹp, không khíngày càng ô nhiễm, việc nghiên cứu và chế tạo một mô hình xe điện gọn nhẹ, dễxoay xở, không tốn nhiên liệu đốt là một nhu cầu thực sự cần thiết

Về khía cạnh khoa học và công nghệ, mô hình xe 2 bánh tự cân bằng thực sự

là một bước đệm quan trọng để có kinh nghiệm trong việc tính toán mô hình và chếtạo các robot hai chân.Ngoài ra mô hình còn là sự bổ sung cần thiết về các giải phápcông nghệ di chuyển của các robot di động 3 bánh, 4 bánh…làm phong phú nhữnglựa chọn giải pháp để chuyển dộng trong không gian cho các robot

Về yếu tố tâm lý con người, mô hình xe hai bánh tự cân bằng thực sự là mộtdấu chẩm hỏi lớn cho những người chưa từng thấy hay dùng nó: tại sao xe có thể dichuyển và thăng bằng được? Điều này cuốn hút nhu cầu được sử dụng một chiếc xehai bánh tự cân bằng

Với nhứng lý do khách quan như đã nêu, đề tài có lẽ có một nhu cầu nhấtđịnh trong tình hình hiện nay của Việt Nam cũng như toàn thế giới

Trang 16

CHƯƠNG 1

LÝ THUYẾT TIẾP CẬN

1.1 Tổng quan về Robot cân bằng.

Hình 1.1 Các module được thêm vào xe tự cân bằng Khối cảm biến

Bộ phận không thể thiếu của xe cân bằng đó là khối cảm biến Khối này cóchức năng nhận biết (phân biệt) đâu là góc ngã của thân robot khi di chuyển Thôngthường là những loại cảm biến gia tốc, cảm biến vận tốc góc và cảm biến góc

Bộ điều khiển

Bộ điều khiển là trung tâm xử lý của hệ thống xe Bộ điều khiển có nhiệm vụnhận tín hiệu từ khối cảm biến và phát tín hiệu điều khiển 2 động cơ bánh xe để dichuyển xe đúng theo ý đồ thiết kế

Khối công suất

Nói đúng hơn đây là khối driver Driver là một mạch điện có khả năng nhậnxung điều khiển (thường là xung PWM) từ bộ điều khiển và xuất ra điện áp để điềukhiển tốc độ 2 động cơ bánh xe Driver là khối rất quan trọng của hệ thống, bởi nó

là một trong những yếu tố quan trọng ảnh hưởng tới độ chính xác của việc điều

khiển Khối nguồn

Đúng nguyên tắc điều khiển, hệ thống sẽ có 2 nguồn riêng biệt gọi là “nguồnđiều khiển” và “nguồn công suất” Nguồn điều khiển là nguồn cấp điện cho bộ điềukhiển, khối cảm biến thông thường có mức điện áp khoảng 5V Trong khi đó nguồncông suất là nguồn cấp cho Driver, các động cơ, điện áp của nguồn này phụ thuộcvào điện áp của động cơ hoạt động Thiết kế một bộ nguồn tốt cũng là một thànhcông trong việc làm xe tự cân bằng

Khối cảm

biến

Nguồn công suất

Nguồn điều khiển

Bộ điều khiển

Phần công

bánh xeĐộng cơ bánh xe

Trang 17

Thiết bị ngoại vi

Tùy thuộc vào đặc thù công việc thực hiện mà trên xe được trang bị nhiềuthiết bị ngoại vi khác nhau như các module giao tiếp, camera, cơ cấu nâng (dùngtrong việc sắp xếp hàng hóa ở nhà máy, cảng biển, nhà hàng)…

Các module thông thường được dùng trong xe tự cân bằng có thể xem ở hìnhsau:

Hình 1.2 Các module được thêm vào xe tự cân bằng.

Bộ điều khiển

Phần công

bánh xe

Động cơ bánh xe

Khối cảm

biến

Khối cảm biến

Cơ cấu tác động khác

Khối lái (RC servo)

Trang 18

Đối với các xe ba hay bốn bánh, việc thăng bằng và ổn định của chúng lànhờ trọng tâm của chúng nằm trong bề mặt chân đế do các bánh xe tạo ra Đối vớicác xe 2 bánh có cấu trúc như xe đạp, việc thăng bằng khi không di chuyển là hoàntoàn không thể, vì việc thăng bằng của xe dựa trên tính chất con quay hồi chuyển ởhai bánh xe khi đang quay Còn đối với xe hai bánh tự cân bằng, là loại xe chỉ cóhai bánh với trục của hai bánh xe trùng nhau, để cho xe cân bằng, trọng tâm của xe(bao gồm các vật đặt trên xe) cần được giữ nằm ngay giữa các bánh xe Điều nàygiống như ta giữ một cây gậy dựng thẳng đứng cân bằng trong lòng bàn tay

Thực ra, trọng tâm của toàn bộ xe không được biết nằm ở vị trí nào, cũngkhông có cách nào tìm ra nó, và có thể không có khả năng di chuyển bánh xe đủnhanh để giữ nó luôn ở dưới toàn bộ trọng tâm

Về mặt kỹ thuật, góc giữa sàn xe và chiều trọng lực có thể biết được Do vậy,thay vì tìm cách xác định trọng tâm nằm giữa các bánh xe, xe cần được giữ thẳngđứng, vuông góc với sàn xe (góc cân bằng khi ấy là zero)

Hình 1.4 Mô tả cách bắt đầu di chuyển.

Khi robot đứng cân bằng thì góc nghiêng θ của thân robot và trục thẳng đứng(trục gia tốc trọng trường) bằng 0

Khi robot nghiêng về phía trước θ > 0, nếu không có điều khiển thì theo quántính, hai bánh xe sẽ chạy về phía sau (phía ngược lại của thân robot đang nghiêng),dẫn đến robot sẽ bị ngã Nên trong trường hợp này, chúng ta sẽ điều khiển cho 2bánh xe chạy về phía trước (phía mà robot đang nghiêng ) nhằm cho góc lệch θ = 0,robot sẽ thăng bằng trở lại Ngược lại khi robot nghiêng về phía sau θ < 0, thì chúng

ta điều khiển cho 2 bánh xe chạy về phía trước

Trang 19

g1x a

ax

ay

1.3 Phân tích lực

Hệ thống xe hai bánh tự cân bằng được đặc trưng bởi các biến gia tốc trọng

trường Góc lệch của xe so với mặt phẳng nằm ngang là góc Gia tốc

do bánh xe gây ra có chiều ngược với bánh xe Gia tốc g1 tổng hợp từ gia tốc giatốc trọng trường và gia tốc a của bánh xe được điều khiển

Trang 20

1x g y

g

1.4 Thuật toán điều khiển PID.

PID là cách viết tắc của các từ Propotional (tỉ lệ), Integral (tích phân) vàDerivative (đạo hàm) Tuy xuất hiện rất lâu nhưng đến nay PID vẫn là giải thuậtđiều khiển được dùng nhiều nhất trong các ứng dụng điều khiển tự động

Hình 1.6 Sơ đồ khối thuật toán PID

Trang 21

Hàm truyền của phương pháp điều khiển PID có dạng như sau:

U = Kp*e + Ki*∫edt + Kd*

dt de

 Kp = Hệ số tỉ lệ

 Ki = Hệ số tích phân

 Kd = Hệ số vi phân

Trước tiên, ta tìm hiểu xem bộ điều khiển PID làm việc như thế nào, ta lấy sơ

đồ hệ thống ở trên Biến e thể hiện cho sai số giữa đầu vào mong muốn Setpoint vàđầu ra Output Tín hiệu lệch này sẽ được gửi đến bộ điều khiển PID và bộ điềukhiển PID sẽ tính được tích phân và vi phân của sai số Tín hiệu điều khiển U có giátrị bằng Kp lần biên độ của sai số cộng với Ki lần tích phân của sai số cộng với Kdlần vi phân của sai số

U = Kp*e + Ki*∫edt + Kd*

dt de

Tín hiệu U sẽ được gửi tới cơ câu chấp hành, và cho ra đầu ra Output Đầu raOutput sẽ được gửi đến sensor đo và ta lại có giá trị sai số e mới Bộ điều khiển sẽlại lấy giá trị sai số mới, tính toán tích phân, vi phân và lại đưa ra tín hiệu điềukhiển Quá trình này sẽ được lặp đi lặp lại

Đặc tính của luật điều khiển P, I và D

Luật điều khiển P có tác dụng làm giảm thời gian quá độ nhưng không thểkhử được steady-state error Luật điều khiển I có tác dụng khử được steady-state error,nhưng nó làm giảm khả năng đáp ứng tức thời của hệ thống Luật điều khiển D có tác dụngtăng độ ổn định của hệ thống giảm overshoot, và cải thiện khả năng đáp ứng tức thời Hiệuquả của từng luật điều khiển P, I, và D lên hệ thống vòng kín được tổng kết qua bảng sau:

Thông số Thời gian quá

độ

Độ vọt lố

Thời gian đáp ứng

Steady-state error

Bảng 1.1 Đặc tính của luật điều khiển P, I và D.

Trang 22

Sau đây là một minh họa bằng Matlab cho việc chọn Kp, Ki và Kd sao cho hệ thốngđáp ứng được 3 tiêu chí sau:

 Quá độ nhanh

 Overshoot nhỏ nhất

 Không có steady-state error

Trước hết ta khảo sát đáp ứng bậc thang đơn vị của hệ thống hở Tạo một m-file cócác lệnh như sau:

num=1;

den=[1 10 20];

plant=tf(num, den);

step(plant)

Chạy m-file này ta sẽ có đồ thị như sau:

Hình 1.7 Đồ thị hàm truyền đáp ứng khi chưa có Kp, Ki, Kd.

Giá trị DC gain của hàm truyền là 1/20, do vậy 0.05 là giá trị cuối của outputđáp ứng đầu vào bậc thang đơn vị Như vậy steady-state error là 0.95, thực sự là khálớn Hơn nữa, thời gian quá độ khoảng 1 giây, thời gian để ổn định khoảng 1, 5giây Bây giờ nhiệm vụ của ta là thiết kế bộ điều khiển sao cho giảm thời gian quá

độ, thời gian đến ổn định ngắn, và khử được steady-state error

Luật điều khiển P

Chúng ta đã biết luật điều khiển P làm giảm thời gian quá độ, tăng overshoot,

và giảm steady-state error

Trang 23

Chọn Kp = 300 và thêm vào m-file đoạn mã lệnh sau:

Chạy m-file trong MATLAB ta được kết quả như sau

Hình 1.8 Đồ thị hàm truyền theo thời gian ứng với giá trị Kp

Chú ý: Hàm feedback dùng để tạo một hàm truyền vòng kín từ một hàm truyền

vòng hở cho trước (thay cho việc thiết lập lại bằng tay)

Từ đồ thị trên ta thấy rằng luật điều khiển P làm giảm thời gian quá độvàsteady-state error, nhưng tăng độ quá điều chỉnh, và làm kéo dài thời gian đến ổnđịnh đi 1 chút

Điều khiển tỉ lệ-vi phân

Bây giờ chúng ta xét đến luật điều khiển PD Như bảng đã nêu ở phần trước,

ta thấy rằng luật điều khiển D làm giảm được độ quá điều chỉnh và làm hệ thốngnhanh đến ổn định

Như trước ta vẫn lấy Kp = 300, lấy Kd = 10 và ta thêm vào m-file đoạn mãlệnh sau và chạy cho ra đồ thị

Kp=300;

Trang 24

Hình 1.9 Đồ thị hàm truyền theo thời gian ứng với giá trị Kp, Kd.

Đồ thị này cho ta thấy ngay luật điều khiển D đã giảm được độ quá điềuchỉnh và làm hệ thống nhanh đến ổn định so với trước, và tác động không đáng kểtới thời gian quá độ cũng như steady-state error

Điều khiển tỉ lệ-tích phân

Trước khi xây dựng bộ điều khiển PID, chúng ta xem xét tới luật điều khiển

PI Như bảng tổng kết, ta thấy rằng luật điều khiển I làm giảm thời gian quá độ,nhưng làm tăng độ quá điều chỉnh và kéo dài thời gian đến ổn định của hệ thống,nhưng lại khử được steady-state error

Bây giờ ta chọn lại Kp = 30, Ki = 70 Tạo m-file với các dòng lệnh sau Kp=30;

Trang 25

Chạy chương trình trong MATLAB ta được đồ thị sau:

Hình 1.10 Đồ thị hàm truyền theo thời gian ứng với giá trị Kp, Ki.

Lý do chúng ta giảm Kp đi là vì luật điều khiển I cũng có tác dụng làm giảmthời gian quá độ và tăng độ quá điều chỉnh như luật điều khiển P Đồ thị trên cho ta thấy luật điều khiển I đã khử được sai số xác lập

Điều khiển tỉ lệ-tích phân-vi phân(PID)

Bây giờ ta xét đến bộ điều khiển PID

Sau một số lần chạy thử với các tham số khác nhau, ta chọn được Kp=350,Ki=300, và Kd=50 hệ thống sẽ đạt được đặc tính như mong muốn

Trang 26

Hình 1.11 Đồ thị hàm truyền theo thời gian ứng với giá trị Kp, Ki, Kd.

Bây giờ ta đã có một hệ thống điều khiển vòng kín không có độ quá điềuchỉnh, quá độ nhanh, và không có sai số xác lập

Áp dụng vào mô hình xa tự cân bằng

Để có cái nhìn rõ hơn bản chất của giải thuật PID trong việc giúp xe tự cânbằng, Luận văn sẽ đề cập một ví dụ điều khiển tốc độ của một xe trên đường thẳng.Giả sử có một xe 2 bánh đồng trục có gắn 2 động cơ DC Động cơ sinh ra một lực

để đẩy xe chạy tới hoặc lui trên một đường thẳng để giúp xe đến được vị trí cânbằng

Bị nghiêng Cân bằng Bị nghiêng

Hình 1.12 Mô tả vị trí của xe cân bằng

Trang 27

Gọi F là lực do động cơ tạo ra điều khiển xe Ban đầu xe ở vị trí bị nghiêngnhiệm vụ đặt ra là điều khiển lực F (một cách tự động) để đẩy xe đến đúng vị trí cânbằng với các yêu cầu: chính xác (accurate), nhanh (fast response), ổn định (smallovershot)

Một điều rất tự nhiên, nếu vị trí hiện tại của xe bị nghiêng có góc nghiênglớn so với vị trí cân bằng, hay nói cách khác sai số(error) lớn, chúng ta cần tác độnglực F lớn để nhanh chóng đưa xe về vị trí cân bằng Một cách đơn giản để công thứchóa ý tưởng này là dùng quan hệ tuyến tính:

F=Kp*eTrong đó:

+ Kp là một hằng số dương nào đó mà chúng ta gọi là hệ số P+e là sai số cần điều khiển tức là độ chênh lệch giữa góc nghiêng và vịtrí cân bằng của xe

Mục tiêu điều khiển là đưa e tiến về 0 càng nhanh càng tốt Rõ ràng nếu Kplớn thì F cũng sẽ lớn và xe rất nhanh chóng tiến về vị trí cân bằng Tuy nhiên, lực Fquá lớn sẽ làm cho gia tốc của xe rất nhanh (định luật II của Newton: F=ma) Khi xe

đã đến vị trí cân bằng (tức e=0), thì tuy lực F=0 (vì F=Kp*e=F=Kp*0) nhưng doquán tính xe vẫn tiếp tục tiến về bên phải và lệch vị trí cân bằng về bên phải, sai số

e lại trở nên khác 0, giá trị sai số lúc này được gọi là overshot (độ vọt lố) Lúc này,sai số e là số âm, lực F lại xuất hiện nhưng với chiều ngược lại để kéo xe về lại vị trícân bằng Nhưng một lần nữa, do Kp lớn nên giá trị lực F cũng lớn và có thể kéo xelệch về bên trái vị trí cân bằng Quá trình cứ tiếp diễn, xe cứ mãi dao động quanh vịtrí cân bằng Có trường hơp xe dao động càng ngày càng xa vị trí cân bằng Bộ điềukhiển lúc này được coi là không ổn định Một đề xuất nhằm giảm độ vọt của xe là

sử dụng một thành phần “thắng” trong bộ điều khiển Sẽ rất lý tưởng nếu khi xeđang ở xa vị trí cân bằng, bộ điều khiển sinh ra lực F lớn nhưng khi xe đã tiến gầnđến vị trí cân bằng thì thành phần “thắng” sẽ giảm tốc độ xe lại Chúng ta đều biếtkhi một vật dao động quanh 1 điểm thì vật đó có vận tốc cao nhất ở tâm dao động(quanh vị trí cân bằng) Nói một cách khác, ở gần vị trí cân bằng sai số e của xethay đổi nhanh nhất (cần phân biệt: e thay đổi nhanh nhất không phải e lớn nhất).Mặt khác, tốc độ thay đổi của e có thể tính bằng đạo hàm của biến này theo thời

Trang 28

gian Như vậy, khi xe từ vị trí bị nghiêng tiến về gần vị trí cân bằng, đạo hàm củasai số e tăng giá trị nhưng ngược chiều của lực F (vì e đang giảm nhanh dần) Nếu

sử dụng đạo hàm làm thành phần “thắng” thì có thể giảm được độ vọt lố của

xe Thành phần “thắng” này chính là thành phần D (Derivative) trong bộ điều khiểnPID mà chúng ta đang khảo sát Thêm thành phần D này vào bộ điều khiển P hiệntại, chúng ta thu được bộ điều khiển PD như sau:

F = Kp*e+Kd*

dt de

Trong đó:

+ (de/dt) là vận tốc thay đổi của sai số e

+Kd là một hằng số không âm gọi là hệ số D (Derivative gain)

Sự hiện diện của thành phần D làm giảm độ vọt của xe, khi xe tiến gần về vịtrí cân bằng, lực F gồm 2 thành phần Kp*e > =0 (P) và Kd*(de/dt) < = 0 (D) Trongmột số trường hợp thành phần D có giá trị lớn hơn thành phần P và lực F đổi chiều,

“thắng” xe lại, vận tốc của xe vì thế giảm mạnh ở gần vị trí cân bằng Một vấn đềnảy sinh là nếu thành phần D quá lớn so với thành phần P hoặc bản thân thành phần

P nhỏ thì khi xe tiến gần vị trí cân bằng (chưa thật sự đến vị trí cân bằng), xe có thểdừng hẳn, thành phần D bằng 0 (vì sai số e không thay đổi nữa), lực F = Kp*e.Trong khi Kp và e lúc này đều nhỏ nên lực F cũng nhỏ và có thể không thắng đượclực ma sát tĩnh Hãy tưởng tượng tình huống bạn dùng sức của mình để đẩy một xetải nặng vài chục tấn, tuy lực đẩy tồn tại nhưng xe không thể di chuyển Như thế, xe

sẽ đứng yên mãi dù sai số e vẫn chưa bằng 0 Sai số e trong tình huống này gọi làsteady state error (sai số trạng thái tĩnh) Để tránh steady state error, người ta thêmvào bộ điều khiển một thành phần có chức năng “cộng dồn” sai số Khi steady stateerror xảy ra, 2 thành phần P và D mất tác dụng, thành phần điều khiển mới sẽ “cộngdồn” sai số theo thời gian và làm tăng lực F theo thời gian Đến một lúc nào đó, lực

F đủ lớn để thắng ma sát tĩnh và đẩy xe tiến tiếp về vị trí cân bằng Thành phần

“cộng dồn” này chính là thành phần I (Integral - tích phân) trong bộ điều khiển PID

Vì chúng ta điều biết, tích phân một đại lượng theo thời gian chính là tổng của đạilượng đó theo thời gian Bộ điều khiển đến thời điểm này đã đầy đủ là PID:

Trang 29

F= Kp*e + Ki*∫edt + Kd*

dt de

(chú ý: ∫edt là tích phân của biến e theo t)

Trong đó:

+ ∫edt là tích phân của biến e theo t

+Ki là một hằng số không âm gọi là hệ số I (Integral gain)

Như vậy, chức năng của từng thành phần trong bộ điều khiển PID giờ đã rõ.Tùy vào mục đích và đối tượng điều khiển mà bộ điều khiển PID có thể được lượtbớt để trở thành bộ điều khiển P, PI hoặc PD Công việc chính của tác giả thiết kế

bộ điều khiển PID áp dụng cho robot cân bằng là chọn các hệ số Kp, Kd và Ki saocho bộ điều khiển hoạt động tốt và ổn định (quá trình này gọi là PID gain tuning).Đây không phải là việc dễ dàng vì nó phụ thuộc vào nhiều yếu tố Vậy ta chọn các

hệ số cho PID như sau:

- Chọn Kp trước: thử bộ điều khiển P với mô hình xe cân bằng thật (hoặc môphỏng), điều chỉnh Kp sao cho thời gian đáp ứng đủ nhanh, chấp nhận độ vọt nhỏ

- Thêm thành phần D để loại bỏ độ vọt lố, tăng Kd từ từ, thử nghiệm và chọn giátrị thích hợp Steady state error có thể sẽ xuất hiện

- Thêm thành phần I để giảm steady-state error Nên tăng Ki từ bé đến lớn đểgiảm steady state error đồng thời không để cho overshot xuất hiện trở lại

1.5 Lọc nhiễu tín hiệu từ cảm biến

Để xử lý nhiễu từ cảm biến, luận văn này sử dụng bộ lọc trung bình Đây là

kỹ thuật lọc tuyến tính, hoạt động như 1 bộ lọc thông thấp Bộ lọc này được sử dụng

để lọc các tín hiệu từ cảm biến gia tốc góc đọc về Ở đây luận văn sử dụng một cửa

sổ lọc(ma trận 1 x n) quét qua lần lượt các giá trị của cảm biến nhận được Vậy giátrị đầu ra của cảm biến sau khi qua bộ lọc là giá trị trung bình của n giá trị liên tiếp

mà vi điều khiển đọc về Việc tính toán này khá đơn giản với hai bước gồm tínhtổng các thành phần trong cửa sổ lọc và sau đó chia tổng này cho n phần tử của cửa

sổ lọc

Mục đích của việc sử dụng bộ lọc trung bình này giúp cho vi điều khiển nhậnđược những giá trị trả về của cảm biến được mịn hơn và hạn chế được nhiễu tínhiệu

Trang 30

Sẽ dễ hình dung hơn bằng mô tả các giá trị cảm biến đọc về như hình dướiđây:

Hình 1.13 Bộ lọc trung bình

Trang 31

CHƯƠNG 2 THIẾT KẾ PHẦN CỨNG 2.1 Thiết kế cơ khí.

Cấu trúc cơ khí của đề tài được chia làm hai phần: khung và hai động cơ

- Khung được làm bằng Nhựa (20 cm x 30 cm x 4 cm)

- Hai động cơ đặt trên hai bánh xe bằng hợp kim nhôm có đường kính 10cm

+ Độ cứng vững

Phần này liên quan tới khả năng thiết kế của từng người, nếu có kinh nghiệmtrong thiết kế cơ khí phần này tương đối đơn giản, quan trọng là làm sao cho nhữngphần kết nối giữa trục động cơ, khung đế với phần thân của xe được chắc chắn

+ Độ đồng phẳng

Đây gần như là một trong những vấn đề quan trọng nhất khi tiến hành lắp ráp

1 khung đế Robot, như bạn đã biết, nếu làm một Robot với 3 bánh xe thì chẳng cầnphải quan tâm đến điều này nhiều, vì 3 bánh sẽ luôn nằm trên một mặt phẳng,nhưng nếu muốn chế tạo 1 khung đế chỉ có 2 bánh thì vấn đề đặt ra là làm sao cho 2bánh phải nằm trên 1 mặt phẳng Đó không chỉ đơn giản là việc canh đều trên 1 tấmphằng cho đều mà cái chính là làm sao “giữ” được cho nó luôn phẳng, vì như bạnbiết địa hình khi di chuyển là rất khác nhau vì thế không phải khi chế tạo thật phẳngthì di chuyển trên sân cũng phẳng

Trang 32

Hình 2.1 Mô hình khung đế đơn giản 2.2 Mạch điện tử

2.2.1 Nguồn điện

Hệ thống điện tử được lấy từ nguồn chính 12V(4 Pin li-on 4.2V nối tiếpnhau) được đưa qua IC ổn áp LM7805 để chuyển thành điện áp 5V cung cấp cho viđiểu khiển, các bảng mạch nối với nhau bằng cáp điện và kết nối với những nguồnđiện khác nhau để cách ly xung nhiễu, trong đó 2 bảng mạch đóng vai trò chính là

bộ lái công suất của mỗi bánh xe với công suất 2A, điện áp 12V, và một bảng mạchkết hợp giữa cảm biến gia tốc góc với kit điều khiển trung tâm LM3S1968

Sơ đồ khối làm việc của toàn bộ các thành phần điện – điện tử của mô hình

có thể được mô tả theo hình dưới đây:

Trang 33

Hình 2.2 Sơ đồ khối nguồn điện cung cấp toàn mạch

Tín hiệu từ cảm biến gyro được thu nhận vào vi điều khiển LM3S1968, được

xử lý cùng với thuật toán PID để có được các lệnh điều khiển tốc độ bánh xe phùhợp Các lệnh này được mã hoá thông qua mạch driver, đưa tới bộ MOSFET côngsuất để cung cấp năng lượng phù hợp (PWM duty cycle) cho hai động cơ hoạt động

2.2.2 Mạch driver điều khiển động cơ

2.2.2.1 Điều khiển động cơ với IC L6203

IC L6203 là mạch điều khiển cầu đầy đủ cho các ứng dụng trong việc điềukhiển động cơ DC thể hiện trong kỹ thuật MultiPower-BCD

Bằng cách sử dụng kỹ thuật tích hợp để tối ưu hóa các mạch logic và giaiđoạn tổng hợp để đạt được hiệu suất tốt nhất có thể.Các stransistor DMOS đầu ra cóthể hoạt động ở mức điện áp lên đến 42V đạt hiệu quả tốc độ chuyển đổi cao Tất cảcác thông số đầu vào là TL, CMOS với các cổng logic tương thích Mỗi kênh(nữacầu) của IC được điều khiển bới 1 cổng logic riêng biệt

Mạch tích hợp L6203 là mạch điều khiển cầu đầy đủ cho động cơ DC, nó cóthể điều khiển động cơ ở mức điện áp từ 12V đến 42V và có tần số hoạt động hiệuquả cao lên đến 100KHz

Động Cơ DC1

Vi Điều Khiển Kit LM3S1968 Gyro-61 ADXL 335

Trang 35

2.2.2.3 Mạch nguyên lý điều khiển động cơ

Hình 2.5 Sơ đồ khối mạch Driver

Để điểu khiển 1 động cơ, cần dùng 3 tín hiệu từ vi điều khiển LM3S1968.Trên Pin 11 của IC L6203 luôn đặt ở mức điện áp cao(5V) để cho phép mạch luônhoạt động Trên Pin 5(PWM) của L6203 đặt các tín hiệu PWM từ vi điều khiểnvào.Điện áp của tín hiệu sẽ quyết định động cơ quay nhanh hay chậm Trên Pin 7(I/O) sẽ do vi điều khiển quy ước là 0 hoặc 1(quay tới hoặc lui)

Hình dưới đây sẽ minh họa cho khái niệm này, Ton và Toff lần lượt làkhoảng thời gian kích(trạng thái HIGHT) và ngắt tín hiệu(trạng thái LOW) trongmột chu kỳ

Trang 36

2.2.3 Cảm biến gia tốc góc ADXL335

Cảm biến gia tốc góc ADXL335 là một module nhỏ, mỏng, điện năng thấp,đưa ra thông số trên 3 trục tọa độ X, Y, Z, giá trị đọc về của cảm biến sẽ là “hìnhchiếu của gia tốc trọng trường” trên từng trục tọa độ tương ứng. Nó có thể đo giatốc tĩnh, tức là gia tốc trọng trường trong các ứng dụng cảm biến độ nghiêng, cũngnhư trong các chuyển động, sốc, hoặc rung động…

Ta biết rằng, gia tốc trọng trường tại một điểm là không đổi (g = 9, 8 m/s2).Khi cảm biến quay 1 góc nào đó, hệ trục tọa độ gắn với cảm biến cũng quay theo,

do đó hình chiếu của gia tốc trọng trường lên các trục tọa độ đó sẽ thay đổi

Từ các giá trị đó, ta xác định được góc nghiêng hiện tại của cảm biến, cũngnhư góc mà cảm biến đã quay đi so với vị trí trước

Giá trị đọc về của các cảm biến gia tốc thường được tính theo đơn vị "g", g

tức là gia tốc trọng trường(m/s2) Do đó kết quả tính toán góc nghiêng, sau khi chiacho nhau sẽ mất đi thành phần "g" Suy ra, kết quả đo góc không phụ thuộc gia tốctrọng trường, tức không phụ thuộc vào vị trí địa lý

Trang 37

Về cảm biến gia tốc ADXL335:

+Giá trị đọc về từ cảm biến là hình chiếu của g trên 3 trục toạ độ X, Y, Z.

+Kết quả ngõ ra ở dạng tín hiệu tương tự, có thể lựa chọn kết quả dạng 10-bithoặc 8-bit

+Tiêu thụ điện năng: 400uA Hình 2.7 Cảm biến gia tốc ADXL335

Hình 2.8 Sơ đồ khối của cảm biến gia tốc góc ADXL335

Cảm biến gia tốc ba chiều kiểu tụ cho phép xác định một cách độc lập cácgia tốc theo các phương trục toạ độ X, Y và Z Theo sơ đồ khối ta thấy cảm biếnnày có ba đầu trên các kênh Xout, Yout và Zout (độ rộng xung tỉ lệ với gia tốc) Cảmbiến có thể được sử dụng để đo cả gia tốc tĩnh và gia tốc động

Xác định góc nghiêng bằng giá trị gia tốc trên 1 trục:

Góc nghiêng được xác định dựa vào giá trị gia tốc tĩnh Luận văn này chỉ sửdụng trục X để tính toán góc nghiêng

Gọi θ chính là góc nghiêng của trục x so với mặt phẳng ngang Ta gọi trụcnằm ngang là (œ), với chiều dương của góc nghiêng θ là chiều kim đồng hồ (chiềuhướng về gia tốc trọng trường g)

Ngày đăng: 21/10/2015, 16:18

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w