thiết kế và chế tạo xe hai bánh tự cân bằng
Trang 1Kí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 2Qua đồ á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 3LỜ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 43.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 5Hì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 6Hì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 7Bả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 8IC 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 9LỜ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 10khiể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 12nhữ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 134) đạ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 14Cả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 16CHƯƠ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 17Thiế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 19g1x 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 201x 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 21Hà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 22Sau đâ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 23Chọ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 24Hì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 25Chạ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 26Hì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 27Gọ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 28gian 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 29F= 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 30Sẽ 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 31CHƯƠ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 32Hì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 33Hì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 352.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 362.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 37Về 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)