intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Thiết kế bộ điều khiển PID cho hệ thống xe hai bánh cân bằng

Chia sẻ: Mộ Dung Vân Thư | Ngày: | Loại File: PDF | Số trang:8

17
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài báo "Thiết kế bộ điều khiển PID cho hệ thống xe hai bánh cân bằng" thảo luận về thiết kế, cách thức xây dựng một hệ thống điều khiển xe cân bằng hai bánh một cách ổn định nhất. Do đối tượng là xe hai bánh nên cần ít động cơ, trang thiết bị hơn so với xe bốn bánh nên bài toán về hệ thống điều khiển càng phức tạp hơn. Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Thiết kế bộ điều khiển PID cho hệ thống xe hai bánh cân bằng

  1. THIẾT KẾ BỘ ĐIỀU KHIỂN PID CHO HỆ THỐNG XE HAI BÁNH CÂN BẰNG Trần Thị Yến Nhi, Lê Hoàng Long, Trần Thị Kim Thi, Lê Viết Hoàng Viện Kỹ thuật, Trường Đại học Công nghệ Thành phố Hồ Chí Minh GVHD: Phạm Quốc Thiện TÓM TẮT Bài báo thảo luận về thiết kế, cách thức xây dựng một hệ thống điều khiển xe cân bằng hai bánh một cách ổn định nhất. Do đối tượng là xe hai bánh nên cần ít động cơ, trang thiết bị hơn so với xe bốn bánh nên bài toán về hệ thống điều khiển càng phức tạp hơn. Điều đó sẽ được bài báo phân tích rõ trong phần thiết kế. Các thành phần chính của hệ thống bao gồm bảng vi điều khiển Adruino Mega, động cơ DC, con quay hồi chuyển, cảm biến góc nghiêng, mạch ổn áp và module điều khiển động cơ. Đặc biệt, hệ thống sử dụng bộ điều khiển PID được sử dụng với ngõ vào là góc nghiêng từ cảm biến và ngõ ra là module điều khiển hai động cơ DC. Từ khóa: xe hai bánh cân bằng, điều khiển PID, Arduion mega 2560 R3, MPU-6050. 1. TỔNG QUAN Trong thập kỷ qua, robot là một công nghệ tích hợp giữa lý thuyết và công nghệ đa ngành đang được sử dụng rộng rãi các lĩnh vực khác nhau như một loại công cụ sản xuất mới. Có được điều này là do robot thể hiện tính ưu việt rất lớn trong việc giảm cường độ lao động, nâng cao năng suất lao động và giảm thiểu nguy hiểm khi vận hành. Robot được chia làm hai loại: robot vận hành và robot di động. Đặc biệt với robot di động có bánh xe là tâm điểm đang được nghiên cứu chuyên sâu, được triển khai để không chỉ thích ứng với môi trường mà còn thích ứng linh hoạt cao trong sự kiện thay đổi linh hoạt với các môi trường phức tạp chưa biết. Xuất phát từ bối cảnh đó, robot hai bánh tự cân bằng ra đời. Là một nghiên cứu mới, robot hai bánh tự cân bằng kết hợp các đặc điểm của robot di động có bánh xe và tự động liên tục điều chỉnh vị trí của nó, đổng thời có những ưu điểm vượt trội so với công nghệ robot truyền thống. Vào những năm 90, Kazuo Yamafuji và Atsushi Koshiyama, giáo sư người Nhật Bản đã xây dựng mô hình đầu tiên mô phỏng về con lắc ngược [1]. Mô hình một chiếc xe đạp song song được trang bị cánh tay làm việc. Tác giả đã nghiên cứu thành công với mục đích kiểm soát ổn định tư thế và vị trí của xe. Tuy nhiên, xe vẫn còn phụ thuộc vào cánh tay bằng cách hài hòa giữa tác động của cánh tay và bánh xe để có thể nâng xe từ vị trí nằm, chuyển vị trí từ xe 3 bánh thành 2 bánh. Như vậy, ta thấy xe vẫn còn phụ thuộc vào cánh tay như một bộ phận hỗ trợ như bánh xe phụ. Nhưng chính nhờ vào ý tưởng độc đáo này đã góp phần giúp nhiều nhà nghiên cứu, sinh viên phát triển, xây dựng nhiều đề tài nghiên cứu. 218
  2. Vì vậy, robot hai bánh tự cân bằng đã trở thành một phần nghiên cứu phổ biến, có nhiều triển vọng ứng dụng tiềm năng trong nhiều lĩnh vực, chẳng hạn như giao thông vận tải và thăm dò,…Và có rất nhiều về giải thuật được ứng dụng vào điều khiển xe hai bánh tự cân bằng: điều khiển xe hai bánh sử dụng giải thuật backstepping control, điều khiển trượt (sliding mode control), điều khiển LQR, điều khiển thông minh fuzzy, noron, giải thuật điều khiển PID. Sau đây là các ứng dụng của robot tự cân bằng [2]: 1. Segway [3]: là một phương tiện giao thông cá nhân có hai bánh và có tay lái, người sử dụng chỉ việc ngả về đằng trước, đằng sau để điều khiển. Xe sử dụng để di chuyển trên vỉa hè, làn đường dành cho xe đạp hoặc đường giao thông. 2. Hoverboard [4]: Hoverboard gần giống như Segway, nhưng nó không có tay cầm và có bánh xe nhỏ. Chúng đang trở thành xu hướng phát triển rộng rãi hiện nay, đặc biệt trở thành phương tiện đi lại cực kỳ hiện đại được giới trẻ yêu thích. Xe Winglet [5]: xe Winglet của Toyata phát triển dựa trên mô hình xe 2 bánh tự cân bằng. Xe nhỏ gọn, có cảm biến để nhận biết cử động của người điều khiển, từ đó đưa ra các lệnh hoạt động phù hợp với người dùng. Iswing Toyota [6]: Iswing là biểu tượng cho phương tiện cá nhân trong tương lai. Xe có ghế ngồi, được điều khiển thông qua tay nắm và trọng lượng nghiêng của người điều khiển. Bài báo này xây dựng và mô tả một cách chi tiết thiết kế phần cứng, mô tả các giải thuật một cách cụ thể, hướng dẫn chi tiết cách thiết kế bộ điều khiển PID và điều khiển một robot tự cân bằng nhỏ, hai bánh, ở cấp độ nghiên cứu. Những điều làm cho bài nghiên cứu độc đáo hơn so với các tài liệu hiện có trên thị trường là bài báo này thể hiện rõ chi tiết về thiết kế, xây dựng và mô tả một cách chi tiết và giải thích từng bước về kết nối. Sử dụng Arduino Mega giúp lưu trữ được duex liệu lớn và xử lý nhanh hơn so với một số bộ điều khiển khác, ngoài ra sử dụng driver L298 thuận tiện có thể điều khiển được hai động cơ cùng một lúc. Và bên cạnh đó, các đối tượng có hứng thú với đề tài này có thể dễ dàng tiếp cận, nghiên cứu một cách dễ dành nhất. 2. PHƯƠNG PHÁP 2.1 Thiết lập phần cứng 2.1.1 Arduino IDE Arduino IDE là một phần mềm mã nguồn mở chủ yếu được sử dụng để viết và biên dịch mã vào module Arduino. Đây là một phần mềm Arduino chính thức, giúp cho việc biên dịch mã trở nên dễ dàng mà ngay cả một người bình thường không có kiến thức kỹ thuật cũng có thể làm được. Arduino IDE có thể viết trên các nên tảng khác như studio, sublime text, ... Môi trường IDE chủ yếu chứa hai phần cơ bản: Trình chỉnh sửa và Trình biên dịch, phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử dụng để biên dịch và tải mã lên module Arduino. Môi trường này hỗ trợ cả ngôn ngữ C và C ++. Đây là trang đầu tiên nhận tất cả các bản cập nhật của thư viện và bảng nhiều thư viện có sẵn giúp viết mã trong ardurino IDE thuận tiện. 2.1.2 Arduino mega 2560 R3 219
  3. Arduino Mega R3 là sản phẩm được phát triển trên con chip ATmega2560 được phát triển dựa trên dòng mạch Mega là dòng mạch được cải tiến so với Arduino Uno (54 chân digital I/O và 16 chân analog I/O). Đặc biệt bộ nhớ flash của MEGA được tăng lên một cách đáng kể, gấp 4 lần so với bảng mạch Arduino Uno R3. Việc được trang 3 bị timer và 6 cổng interrupt khiến Arduino Mega R3 có thể xử lý song song nhiều luồng dữ liệu số cũng như tương tự. Arduino Mega 2560 R3 tương thích với tất cả Shield của Arduino Uno. Như các Shield sử dụng để điều khiển motor, kết nối wifi hay kết nối với các thiết bị điện tử trong nhà. 2.1.3 MPU-6050 MPU-6050 là hệ thống cơ điện tử vi mô (MEMS) bao gồm Gia tốc kế 3 trục và Con quay hồi chuyển 3 trục bên trong (có cảm biến nhiệt độ nhưng ít sử dụng). Cảm biến này nhận được sự căn chỉnh của robot, được xử lý thêm để thực hiện các hành động điều khiển điều này giúp nó đo lường gia tốc, vận tốc, định hướng, tốc độ dịch chuyển. MPU 6050 mang lại kết quả chính xác và có thể cung cấp hàng trăm phép đo mỗi giây. Nó nằm bắt hướng x, y, z cùng một lúc. Nó sử dụng I2C-bus để tương tác với Arduino. 2.1.4 Module hạ áp Module hạ áp dùng chuyển đổi điện áp bước xuống siêu nhỏ DC-DC hỗ trợ đầu vào DC 5-16V và đầu ra điện áp cố định 5V. Chip MP1495 trên bo mạch với hiệu suất chuyển đổi công suất cao lên đến 90%, tiết kiệm năng lượng. Thiết kế điều chỉnh điện áp kết nối ngắn độc đáo đảm bảo độ chính xác đầu ra hiệu suất tốt hơn module bộ chuyển đổi điện áp loại chiết áp. 2.1.5 Động cơ DC Một động cơ DC dựa trên ý tưởng rằng khi một dây dẫn mang dòng điện được đặt trong từ trường, nó tạo ra lực cơ học. Hướng của lực được xác định bởi quy tắc tay trái. Vì động cơ DC và máy phát điện DC có cùng cấu trúc, chúng có thể được sử dụng thay thế cho nhau. Đối với các ứng dụng điện lớn, chẳng hạn như nhà máy thép và tàu điện, dòng điện xoay chiều (AC) được chuyển đổi thành dòng điện DC vì các đặc tính tốc độ và mô-men xoắn của động cơ DC vượt trội so với động cơ AC. Trong trường hợp các ứng dụng công nghiệp, động cơ DC được sử dụng rộng rãi như động cơ cảm ứng ba pha. Như đã nêu trước đó, động cơ bước cung cấp chuyển động chính xác, nó có thể chính xác tới 0.9 độ trên nửa cung. Nó có đủ momen xoắn để ổn định cho Robot. Động cơ DC thông thường đạt được mô- men xoắn cần thiết bằng cách sử dụng các bánh răng khiến chung hơi không phù hợp với dự án này. Động cơ DC có một số chuyển động không cần thiết khiến Robot không ổn định và thời gian phản ứng của chúng cũng cao. Vì những lý do này, động cơ bước được ưa chuộng hơn động cơ DC. 2.1.6 Trình điều khiển động cơ DC L298 Driver điều khiển động cơ DC là trình điều khiển động cơ H-Bridge kép cho phép điều khiển tốc độ và điều hướng động cơ cùng lúc. Với thiết kế nhỏ gọn nhưng module có thể điều khiển động cơ DC có điện áp từ 5v-35v, cường độ dòng điện lên đến 2A. Module này có hai nhóm chân cho động cơ A và B, và một chân ở giữa cho chân Ground, VCC cho động cơ và chân 5V có thể là đầu vào hoặc đầu ra. Điều này phụ thuộc vào điện áp được sử dụng tại 220
  4. động cơ VCC. Module này có bộ điều chỉnh 5V trên board được bật hoặc tắt bằng cách sử dụng dây nối. Nếu điện áp cung cấp động cơ lên đến 12V, chúng ta có thể kích hoạt bộ điều chỉnh 5V và chân 5V có thể được sử dụng làm đầu ra, ví dụ để cấp nguồn cho board Arduino của chúng ta. Nhưng nếu điện áp động cơ lớn hơn 12V, chúng ta phải ngắt kết nối dây vì những điện áp đó sẽ làm hỏng cho bộ điều chỉnh 5V trên board. Trong trường hợp này, chân 5V sẽ được sử dụng làm đầu vào vì chúng ta cần kết nối nó với nguồn điện 5V để IC hoạt động bình thường. Các chân Bật A và Bật B được sử dụng để bật và kiểm soát tốc độ của động cơ. Nếu một dây có mặt trên chân này, động cơ sẽ được kích hoạt và hoạt động ở tốc độ tối đa, và nếu chúng ta loại bỏ dây, chúng ta có thể kết nối một đầu vào PWM với chân này và theo cách đó kiểm soát tốc độ của động cơ. Nếu chúng ta kết nối chân này với Ground, động cơ sẽ bị vô hiệu hóa. Các chân đầu vào 1 và đầu vào 2 được sử dụng để điều khiển hướng quay của động cơ A và đầu vào 3 và 4 cho động cơ B. Sử dụng các chân này, chúng tôi thực sự điều khiển các công tắc của mạch cầu H bên trong IC L298N. Nếu đầu vào 1 ở mức THẤP và đầu vào 2 là CAO thì động cơ sẽ di chuyển về phía trước và ngược lại, nếu đầu vào 1 ở mức CAO và đầu vào 2 ở mức THẤP thì động cơ sẽ di chuyển lùi. Trong trường hợp cả hai đầu vào đều giống nhau, cùng THẤP hoặc CAO, động cơ sẽ dừng. Điều tương tự áp dụng cho đầu vào 3 và 4 và động cơ B. 2.1.7 Sơ đồ khối Hình 2. Sơ đồ khối Đường truyền năng lượng Đường truyền tín hiệu 2.2 Bộ điều khiển PID 221
  5. Hình 3. Sơ đồ PID Hệ thống điều khiển vòng kín của robot tự cân bằng được thể hiện trong hình 2. Đầu ra hiển thị góc nghiêng thực tế của robot được đọc từ cảm biến MPU6050. Cảm biến phản hồi dữ liệu này để so sánh với đầu vào tham chiếu hoặc mục tiêu của robot. Việc so sánh đầu vào và đầu ra của hệ thống thể hiện tình trạng góc nghiêng. Độ nghiêng này là lỗi, cần được giảm xuống bằng không. Nó cần một bộ điều khiển tốc độ cao để xử lý nhiệm vụ giảm lỗi này. Đây là lý do bộ điều khiển PID được sử dụng trong dự án này. Bộ điều khiển PID gửi lệnh đến driver L298 và kết quả là nó điều khiển chuyển động của động cơ DC một cách chính xác. Bộ điều khiển PID được thể hiện trong hình 4, về mặt toán học nó có thể viết là: Trong đó: u(t) là phản hồi của bộ điều khiển; Kp, Ki, Kd lần lượt là hằng số tỷ lệ, tích phân và đạo hàm tương ứng với các bộ điều khiển tỷ lệ, tích phân và đạo hàm; e(t) là tín hiệu lỗi thể hiện góc lệch trục X mong muốn và thực tế của robot. Các điểm đặt góc mà robot phải duy trì mặc định và các giá trị PID được cung cấp cho Arduino được thực nghiệm, khảo sát, khai báo trực tiếp trong phần lập trình. Độ lợi tỉ lệ Kp, giá trị càng lớn thì đáp ứng càng nhanh do đó sai số càng lớn, bù khâu tỉ lệ càng lớn. Một giá trị độ lợi tỉ lệ quá lớn sẽ dẫn đến quá trình mất ổn định và dao động. Độ lợi tích phân Ki, giá trị càng lớn kéo theo sai số ổn định bị khử càng nhanh. Đổi lại là độ vọt lố càng lớn: bất kỳ sai số âm nào được tích phân trong suốt đáp ứng quá độ phải được triệt tiêu tích phân bằng sai số dương trước khi tiến tới trạng thái ổn định. Độ lợi vi phân Kd, giá trị càng lớn càng giảm độ vọt lố, nhưng lại làm chậm đáp ứng quá độ và có thể dẫn đến mất ổn định do khuếch đại nhiễu tín hiệu trong phép vi phân sai số. Các giá trị của PID được thiết lập với sự trợ giúp của phương pháp điều chỉnh Ziegler-Nichols [7]. 2.3 Lập trình điều khiển Để lập trình vi điều khiển, bài báo này đã tham khảo từ một số mã nguồn mở liên quan đến Balancing. Lưu đồ giải thích phương pháp lập trình cơ bản ở tại hình 5. Dựa vào lưu đồ giải thuật ta có thể thấy đây là một vòng tuần hoàn kín do sử dụng bộ điều khiển PID. Việc bắt đầu cho việc điều khiển xe 2 222
  6. bánh cân bằng, cần xác định được giá trị góc nghiêng ban đầu của robot. Từ đó, lập trình xét lỗi sai số giữ góc cân bằng và góc hiện tại thu từ MPU6050, qua bộ điều khiển PID, đưa ra ngõ ra phù hợp. Trong trường hợp, sai số góc nghiêng là 10 độ, trong khoảng có thể điều chỉnh cân bằng được, lập trình xử lý tín hiệu ngõ ra điều khiển driver L298. Driver L298 nhận lệnh từ bộ điều khiển điểu chỉnh chiều và tốc độ hai động cơ DC để đưa góc nghiêng về vị trí cân bằng. Trong trường hợp góc nghiêng hiện tại quá lớn (hơn 10 độ), động cơ sẽ dừng, lúc này robot cần sự trợ giúp đưa về góc nghiêng có thể xử lý được. Quá trình này được lặp lại nhiều lần, robot sẽ cố gắng ổn định sau một số chuyển động. Hình 4. Lưu đồ giải thuật Kết nối phần cứng Sơ đồ kết nối phần cứng: Arduino Driver L298 MPU6050 Power (4 pin x 4VDC) Hạ áp 5V Vin 5VDC VCC Vout 5VCD GND GND GND GND 8 EnA 9 In1 10 In2 11 In3 12 In4 13 EnB SCL SCL 223
  7. SDA SDA 12VDC VCC Vin GND GND 3. KẾT QUẢ VÀ THẢO LUẬN Hình 5. Hệ thống thực Hình 6. Tín hiệu MPU6050 Sơ đồ trên, chúng tôi chọn Kp = 90, Ki = 0.5, Kd = 1. Giá trị đọc được từ MPU6050 so với vị trí cân bằng được xác định (sai số) không quá lớn, thời gian xác lập nhỏ để robot có thể bắt đầu tự cân bằng. Nếu tăng giá trị Kp = 120 thì sai số giảm, xe cân bằng tốt hơn, nhưng thời gian xác lập lớn nên chúng tôi không chọn giá trị này. Tuy nhiên, kết quả xe có thể cân bằng nhưng chưa ổn định tốt, sau khi đứng được một khoảng thời gian xe sẽ mất cân bằng và ngã. Sau những thực nghiệm và điều chỉnh, robot hai bánh có thể tự cân bằng một cách độc lập. Tuy vẫn còn những hạn chế, nhưng đó sẽ là tiền đề để phát triển và khắc phục một cách tốt nhất. Từ bài nghiên cứu góp phần làm cho quá trình học tập trở nên thú vị hơn và có thể hiểu rõ được những ưu nhược điểm mà xe robot hai bánh tự cân bằng mang lại. 4. KẾT LUẬN Qua nghiên cứu, sinh viên có điều kiện ôn lại và áp dụng những kiến thức đã học, tìm hiểu và nâng cao các kiến thức chuyên ngành. Tác giả đã xây dựng thành công chương trình mô phỏng điều khiển PID, xây dựng thành công mô hình thực tế đối với một hệ thống xe hai bánh tự cân bằng, và điều khiển 224
  8. thành công hệ xe hai bánh tự cân bằng ổn định. Tuy nhiên bên cạnh đó bài báo vẫn còn hạn chế: chưa lựa chọn được thông số điều khiển PID tối ưu hơn, chương trình truyền nhận dữ liệu còn bị treo trong một số trường hợp. Đề tài xe hai bánh tự cân bằng tuy đã được nghiên cứu nhiều trên thế giới và cũng đã được thực hiện ở Việt Nam nhung vẫn còn nhiều hướng để mở rộng: - Ứng dụng giải thuật điều khiển thông minh, kết nội mạng để điều khiển. - Thích nghi với trọng lượng khác nhau. - Ứng dụng cho xe máy khi ở vận tốc nhỏ vẫn có thể dễ dàng tự cân bằng. TÀI LIỆU THAM KHẢO 1. K. Yamafuji and A. Koshiyama, (1991). Postural and driving control of a variable configuration type parallel bicycle. J. Robotics and Mechatronics Vol.3 No.5,365, 372. 2. Trần Anh Tứ, (2014). Nghiên cứu, thiết kế, thử nghiệm xe hai bánh tự cân bằng, Luận văn thạc sĩ, Trường Đại học Công nghệ TP.HCM, 4-10. 3. Nguyen, H. G., Morrell, J., Mullens, K. D., Burmeister, A. B., Miles, S., Farrington, N., ... & Gage, D. W. (2004, December, tháng 12). Segway robotic mobility platform. In Mobile Robots XVII Vol. 560, 207-220. 4. Tarragó Sanchis, E. (2019). A remotely driven hoverboard with platform leaning control. Master's thesis, Universitat Politècnica de Catalunya, 8-11. 5. Thế Đạt (28/11/2013). TOYOTA WINGLET – XE CHO NGƯỜI LƯỜI ĐI BỘ. 6. I-Swing concept (2005). TOYOTA UK MEDIA SITE. 7. Sobuj Kumar Ray, Diponkar Paul (01/2011). Performance Comparison of Electronic Printwheel System by PI and PID Controller Using Genetic Algorithms. 8. MR Innovative (20/01/2021). DIY SELF BALANCING ROBOT. 225
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
3=>0