Academia.eduAcademia.edu

Two-Wheeled Self-Balancing Robot

control algorithms: PID, LQR, Fuzzy Logic

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ BÁO CÁO MÔN HỌC Đề tài: Thiết kế bộ điều khiển cho xe hai bánh cân bằng Môn học: Mô hình hóa và mô phỏng hệ thống điều khiển Hà Nội, 2 tháng 5 năm 2024 Mục lục Phần 1. Giới thiệu .......................................................................................................... 3 Phần 2. Mô hình thực ..................................................................................................... 4 2.1. Thành phần phần cứng .......................................................................................... 4 2.2. Thiết kế và lắp ráp ................................................................................................ 7 2.3. Cấu trúc hệ thống điều khiển ................................................................................ 8 Phần 3. Mô hình toán học .............................................................................................. 9 3.1. Giản đồ lực............................................................................................................ 9 3.2. Phương trình tổng hợp lực của xe đẩy .................................................................. 9 3.3. Phương trình tổng hợp lực của con lắc ................................................................. 9 3.4. Tổng hợp ............................................................................................................. 10 3.5. Tuyến tính hóa .................................................................................................... 10 3.6. Hàm truyền hệ thống .......................................................................................... 11 3.7. Biểu diễn không gian trạng thái của hệ thống .................................................... 12 Phần 4. Xác nhận mô hình ........................................................................................... 13 4.1. Ước lượng tham số mô hình ............................................................................... 13 4.2. Kiểm chứng mô hình .......................................................................................... 13 4.3. Mô hình toán học hệ thống thực ......................................................................... 14 Phần 5. Thuật toán điều khiển ...................................................................................... 16 5.1. Điều khiển cổ điển: PID ..................................................................................... 16 5.2. Điều khiển hiện đại: điều khiển tối ưu LQR....................................................... 21 5.3. Điều khiển thông minh: Fuzzy Logic ................................................................. 24 Phần 6. Tổng kết .......................................................................................................... 29 1 Tóm tắt Một hệ thống con lắc ngược trên xe là một hệ thống phổ biến thường được sử dụng để thử nghiệm các lý thuyết điều khiển. Hệ thống này bao gồm một chiếc xe có thể di chuyển ở mặt phẳng ngang và một hệ thống con lắc được gắn vào xe thông qua một trục xoay. Hệ thống được điều khiển bằng cách áp dụng một lực lên xe, làm cho nó di chuyển. Bài báo cáo gồm hai mục tiêu. Mục tiêu thứ nhất là xây dựng một mô hình thí nghiệm của hê thống con lắc ngược. Mục tiêu thứ hai là tạo ra một bộ điều khiển có thể giữ ổn định cho mô hình con lắc ngược. Mô hình thí nghiệm được xây dựng ở đây là mô hình Xe hai bánh tự cân bằng, nó có một vài ưu điểm cũng như nhược điểm sao với mô hình con lắc ngược chuẩn. Nhưng vấn đề và cách giải quyết đối với hai mô hình là tương tự. Mô hình toán học của hệ thống đã được xây dựng. Mô hình toán học của hệ thống tạo nền tảng cho việc thiết kế bộ điều khiển và cũng được sử dụng để mô phỏng/khảo sát hệ thống và bộ điều khiển trong MATLAB/Simulink trước khi triển khai trên hệ thống thực tế. Bộ điều khiển được xây dựng dựa trên các phương pháp điều khiển cơ bản: điều khiển truyền thống, điều khiển hiện đại, điều khiển thông minh. Các bộ điều khiển đã được xây dựng và triển khai thành công. 2 Phần 1. Giới thiệu Con lắc ngược trên xe (IPC) là một vấn đề kinh điển của hệ thống điều khiển được sử dụng rộng rãi cả trong giáo dục và kiểm tra các thuật toán điều khiển. Vấn đề này bao gồm một con lắc được gắn trên xe. Mục tiêu là cân bằng con lắc ở vị trí thẳng đứng bằng cách sử dụng một lực tác động lên xe trên mặt phẳng ngang như đầu vào điều khiển, như minh họa trong Figure 1. Figure 1. Inverted Pendulum on a Cart Bài toán con lắc ngược thường được coi là một phép so sánh với việc cân bằng một que gỗ trên tay. Bài toán này có nhiều điểm tương đồng với các ứng dụng thực tế như thiết bị vận chuyển cân bằng hai bánh, được biết đến dưới tên thương mại là Segway. Từ góc độ của hệ thống điều khiển, hệ thống IPC có nhiều tính chất thú vị. Do sự xoay của con lắc, hệ thống có đặc tính phi tuyến, hệ thống là SIMO chỉ có một đầu vào là lực đẩy theo hướng ngang và hai bậc tự do, vị trí của xe và góc của con lắc . Với con lắc ở vị trí thẳng đứng, hệ thống là không ổn định và do đó cần điều khiển hoạt động để duy trì trạng thái này. 3 Phần 2. Mô hình thực 2.1. Thành phần phần cứng a) Stepper Motor Động cơ bước được sản xuất với nam châm vĩnh cửu và một stator gồm nhiều cuộn dây. Từ trường do các cuộn dây thay đổi làm cho động cơ quay, điều này tạo ra đặc tính bước của động cơ, nghĩa là việc kích hoạt các cuộn dây phải liên tục được thay đổi luân phiên để động cơ có thể được kích hoạt. Do đó cần một bộ điều khiển cho động cơ bước để điều khiển chiều quay và tốc độ của động cơ. Đặc tính bước của động cơ bước và việc sử dụng bộ điều khiển với động cơ bước đồng nghĩa với việc góc quay, vận tốc góc và gia tốc góc được điều khiển, chứ không phải là momen xoắc đầu ra. Điều này được giả định rằng momen xoắn được tạo ra đủ để di chuyển tải trọng gắn vào động cơ. Nếu không đủ, động cơ sẽ không di chuyển. Điều này có nghĩa là sự kết hợp giữa động cơ và bộ điều khiển phải có khả năng tạo đủ momen xoắn để đáp ứng đủ các yêu cầu có thể có. Momen xoắn của động cơ đạt cực đại ở vận tốc góc bằng 0. Ở trạng thái này, không có sự thay đổi về việc kích hoạt các cuộn dây của động cơ hoặc bất kỳ sự di chuyển nào của động cơ. Và khi tốc độ góc của động cơ tăng lên, momen xoắn của động cơ bước giảm đi. Do đó cần giới hạn tốc độ góc của động cơ trong phạm vi mà nó có đủ momen xoắn để kéo tải. Với động cơ bước, đầu vào điều khiển sẽ luôn tạo đầu ra di chuyển giống nhau do sự chính xác của động cơ bước so với động cơ DC, vì vậy sẽ giảm thiểu được sự mô hồ về tọa độ của hệ thống cũng như giảm thiểu được thiết bị để giám sát động cơ DC – encoder. Các công thức cơ bản của động cơ bước được xây dựng: Momen xoắn yêu cầu: 𝜏𝑟𝑒𝑞𝑢𝑖𝑟𝑒𝑑 = 𝑚 ∗ 𝑎 ∗ 𝑟 Với m là khối lượng tải, a là gia tốc yêu cầu đối với tải, r là cánh tay đòn. Vận tốc bước của động cơ bước: 4 𝑣𝑠𝑡𝑒𝑝 = 𝑣 ∗ 𝑠𝑡𝑒𝑝𝑠 𝑝𝑒𝑟 𝑟𝑜𝑢𝑛𝑑 2∗𝜋∗𝑟 Với v là vận tốc yêu cầu theo chiều ngang, r là cánh tay đòn Các thông số của động cơ được đưa ra từ nhà sản xuất: Stepper Motor: KV4234-F2B009 STEP ANGLE (°/STEP) 1.8 VOLTAGE (V) 4.00 CURRENT (A/PHASE) 0.8 WINDING RESISTANCE (Ω/PHASE) 5.0 INDUCTANCE (Mh/PHASE) 7.5 HOLDING TORQUE (mN*m) 260 ROTOR INERTIA (g*cm^2) 42 STEP PER ROUND 200 WEIGHT (kg) 0.21 Table 1. Thông số động cơ Nema17 Stepper driver: A4988 SUPPLY VOLTAGE (V) 35 OUTPUT CURRENT (A) 2 HIGHEST RESOLUTION 16 micro steps per full step Table 2. Thông số Driver A4988 Figure 2. Động cơ bước NEMA17 và Driver A4988 5 b) Microcontroller Atmega328p là một vi điều khiển thuộc họ AVR 8-bit do Atmel (Microchip) sản xuất. Nó được sử dụng rộng rãi trong các ứng dụng nhúng do giá thành rẻ, dễ sử dụng và có hiệu suất tốt. Atmega328p có 32 KB bộ nhớ flash, 2 KB RAM và 1 KB EEPROM. Nó cũng có 23 chân I/O đa năng, có thể được sử dụng cho các mục đích khác nhau như đầu vào/đầu ra kỹ thuật số, bộ chuyển đổi A/D, giao tiếp nối tiếp, v.v. Arduino Nano là một bo mạch vi điều khiển dựa trên Atmega328p. Nó là một phiên bản thu nhỏ của Arduino Uno, nhưng vẫn giữ nguyên các tính năng cơ bản như khả năng lập trình bằng ngôn ngữ Arduino, giao tiếp USB và hỗ trợ nhiều shield Arduino. Arduino Nano được thiết kế để sử dụng cho các dự án đòi hỏi tính nhỏ gọn và linh hoạt. Figure 3. Arduino Nano c) IMU MPU6050 IMU MPU6050 là một bộ cảm biến quán tính 6 DoF (Degree of Freedom) được sản xuất bởi InvenSense. Nó kết hợp gia tốc kế 3 trục và con quay hồi chuyển 3 trục trên một con chip nhỏ gọn, cung cấp cho người dùng dữ liệu chuyển động và định hướng chính xác. Figure 4. MPU6050 6 d) CNC Shield V4 CNC Shield V4 là một mạch mở rộng được thiết kế để sử dụng với Arduino Nano để điều khiển máy CNC (Computer Numerical Control). Nó cung cấp một cách dễ dàng để kết nối và điều khiển động cơ bước, công tắc hành trình và các thiết bị khác cần thiết cho máy CNC. Trong dự án này, nó được sử dụng để liên kết toàn bộ các thành phần của mô hình bao gồm: động cơ bước, bộ điều khiển động cơ bước, IMU, vi điều khiển. Figure 5. CNC Shield V4 2.2. Thiết kế và lắp ráp Một mô hình xe hai bánh tự cân bằng được xây dựng dựa trên những linh kiện có sẵn. Figure 6. Mô hình thực 7 Figure 7. Mô hình xây dựng 3D 2.3. Cấu trúc hệ thống điều khiển Sơ đồ khối kết nối hệ thống như sau: Figure 8. Cấu trúc hệ thống Mô hình được lập trình bằng ngôn ngữ của Arduino, gửi trạng thái qua Serial đến PC để có thể xử lý bằng Python, sau đó tín hiệu điều khiển lại được gửi từ Python đến mô hình qua Serial. 8 Phần 3. Mô hình toán học 3.1. Giản đồ lực Để đơn giản hóa mô hình, giả định mô hình có thể biểu diễn dưới dạng một mô hình con lắc ngược gắn trên xe đẩy. Các phép tính về mô hình con lắc ngược trên xe đẩy có thể tìm thấy dễ dàng trên internet. Figure 9. Giản đồ lực 3.2. Phương trình tổng hợp lực của xe đẩy Phương trình tổng hợp lực của xe đẩy được tổng hợp theo phương X: 𝐹𝑖𝑛𝑝𝑢𝑡 = 𝑚𝑐𝑎𝑟𝑡 𝑥̈ + 𝑓𝑥̇ + 𝑁𝑥 [3.1] với 𝐹𝑖𝑛𝑝𝑢𝑡 là lực tác dụng (sinh ra từ động cơ), 𝑚𝑐𝑎𝑟𝑡 là khối lượng của xe đẩy, 𝑓 là hệ số ma sát và 𝑁𝑥 là lực liên hệ giữa con lắc và xe đẩy. 3.3. Phương trình tổng hợp lực của con lắc Tổng hợp lực theo trục X của con lắc là: 𝑁𝑥 = 𝑚𝑝𝑒𝑛𝑑 𝑥̈ + 𝑚𝑝𝑒𝑛𝑑 𝑙𝜃̈ cos 𝜃 − 𝑚𝑝𝑒𝑛𝑑 𝑙𝜃̇ 2 sin 𝜃 [3.2] với 𝑚𝑝𝑒𝑛𝑑 là khối lượng con lắc, 𝑙 là khoảng cách đến điểm đặt của tâm con lắc, 𝜃 là góc hợp bởi con lắc với phương thẳng đứng hướng xuống. 9 Tổng hợp lực của tất cả các lực tác dụng lên con lắc là: 𝑁𝑦 sin 𝜃 + 𝑁𝑥 cos 𝜃 − 𝑚𝑝𝑒𝑛𝑑 𝑔 sin 𝜃 = 𝑚𝑝𝑒𝑛𝑑 𝑙𝜃̈ + 𝑚𝑝𝑒𝑛𝑑 𝑥̈ cos 𝜃 [3.3] với 𝑁𝑦 là lực tác dụng theo phương Y, 𝑔 là hằng số trọng lực. Momen xoắn của con lắc tác dụng lên tâm của con lắc được xác định bởi phương trình sau: −𝑁𝑦 𝑙 sin 𝜃 − 𝑁𝑥 𝑙 cos 𝜃 = 𝐼𝑝𝑒𝑛𝑑 𝜃̈ [3.4] với 𝐼𝑝𝑒𝑛𝑑 là momen quán tính của con lắc. 3.4. Tổng hợp Chèn phương trình [3.2] vào phương trình [3.1] ta thu được: 𝐹𝑖𝑛𝑝𝑢𝑡 = (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 )𝑥̈ + 𝑓𝑥̇ + 𝑚𝑝𝑒𝑛𝑑 𝑙𝜃̈ cos 𝜃 − 𝑚𝑝𝑒𝑛𝑑 𝑙𝜃̇ 2 sin 𝜃 [3.5] Tổng hợp phương trình [3.2], [3.3] và [3.4] ta thu được: (𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙2 )𝜃̈ + 𝑚𝑝𝑒𝑛𝑑 𝑔𝑙 sin 𝜃 = −𝑚𝑝𝑒𝑛𝑑 𝑙𝑥̈ cos 𝜃 3.5. [3.6] Tuyến tính hóa Phương trình [3.5] và [3.6] là cần thiết để thu được hàm truyền của vị trí 𝑥 và độ lệch góc 𝜓. Để tính toán các hàm truyền, các phương trình cần tuyến tính hóa tại điểm giới hạn. Điểm cân bằng sẽ được chọn khi con lắc ở vị trí thẳng đứng. Góc sẽ đại diện cho độ lệch của con lắc ở trạng thái cân bằng. Các xấp xỉ của phương trình lượng giác cho độ lệch nhỏ sẽ được sử dụng trong các phương trình phi tuyến [3.5] và [3.6]. cos 𝜃 = cos(𝜋 + 𝜓) ≃ −1 [3.7] sin 𝜃 = cos(𝜋 + 𝜓) ≃ −𝜓 [3.8] 𝜃̇ 2 = 𝜓̇ 2 ≃ 0 [3.9] Thực hiện tuyến tính hóa với phương trình [3.5] và [3.6] thu được các phương trình tuyến tính gần đúng sau đây. (𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙2 )𝜓̈ − 𝑚𝑝𝑒𝑛𝑑 𝑔𝑙𝜓 = 𝑚𝑝𝑒𝑛𝑑 𝑙𝑥̈ [3.10] 𝑢𝑖𝑛𝑝𝑢𝑡 = (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 )𝑥̈ + 𝑓𝑥̇ − 𝑚𝑝𝑒𝑛𝑑 𝑙𝜓̈ [3.11] 10 3.6. Hàm truyền hệ thống Để thu được hàm truyền, các phương trình [3.10] và [3.11] được chuyển về miền Laplace: (𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙2 )Ψ(𝑠)𝑠 2 − 𝑚𝑝𝑒𝑛𝑑 𝑔𝑙Ψ(𝑠) = 𝑚𝑝𝑒𝑛𝑑 𝑙𝑋(𝑠)𝑠 2 [3.12] 𝑈𝑖𝑛𝑝𝑢𝑡 (𝑠) = (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 )𝑋(𝑠)𝑠 2 + 𝑓𝑋 (𝑠)𝑠 − 𝑚𝑝𝑒𝑛𝑑 Ψ(𝑠)𝑠 2 [3.13] Hàm truyền là mối quan hệ giữa một đầu vào và một đầu ra duy nhất, do đó cần rút 𝑋(𝑠) từ phương trình [3.12]: 𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙2 𝑔 ( ) 𝑋 𝑠 =[ − 2 ] Ψ (𝑠 ) 𝑚𝑝𝑒𝑛𝑑 𝑙 𝑠 [3.14] Thay [3.14] vào phương trình [3.13] thu được: 𝑈𝑖𝑛𝑝𝑢𝑡 (𝑠) = (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 ) [ 𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙2 𝑔 − 2 ] Ψ (𝑠 ) 𝑠 2 𝑚𝑝𝑒𝑛𝑑 𝑙 𝑠 [3.15] 𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙2 𝑔 +𝑓[ − 2 ] Ψ(𝑠)𝑠 − 𝑚𝑝𝑒𝑛𝑑 Ψ(𝑠)𝑠 2 𝑚𝑝𝑒𝑛𝑑 𝑙 𝑠 Từ đó thu được biểu diễn hàm truyền của hệ thống: 𝑚𝑝𝑒𝑛𝑑 𝑙 Ψ(𝑠) 𝑞 𝑠 = 𝑈𝑖𝑛𝑝𝑢𝑡 (𝑠) 𝑓(𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙 2 ) 2 (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 )𝑚𝑝𝑒𝑛𝑑 𝑔𝑙 𝑓𝑚𝑝𝑒𝑛𝑑 𝑔𝑙 𝑠3 + 𝑠 − 𝑠 − 𝑞 𝑞 𝑞 [3.16] 𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙 2 2 𝑔𝑚𝑝𝑒𝑛𝑑 𝑙 𝑠 − 𝑋(𝑠) 𝑞 𝑞 = 2 𝑈𝑖𝑛𝑝𝑢𝑡 (𝑠) 𝑓(𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙 ) 3 (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 )𝑚𝑝𝑒𝑛𝑑 𝑔𝑙 2 𝑓𝑚𝑝𝑒𝑛𝑑 𝑔𝑙 𝑠4 + 𝑠 − 𝑠 − 𝑠 𝑞 𝑞 𝑞 [3.17] với biểu thức q là: 2 𝑞 = [(𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 )(𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙2 ) − (𝑚𝑝𝑒𝑛𝑑 𝑙) ] 11 3.7. Biểu diễn không gian trạng thái của hệ thống Có thể trình bày hệ thống dưới dạng không gian trạng thái. Dạng ma trận là: 𝑥 𝑥̇ 𝑥̇ 𝑥̈ [𝜓̇] = 𝐴 [𝜓] + 𝐵𝑢𝑖𝑛𝑝𝑢𝑡 𝜓̇ 𝜓̈ [3.18] Với: 𝐴 0 0 = 0 0 [ 1 −(𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙 2 )𝑓 𝑚𝑝𝑒𝑛𝑑 𝑔𝑙 𝐼𝑝𝑒𝑛𝑑 (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 ) + 𝑚𝑐𝑎𝑟𝑡 𝑚𝑝𝑒𝑛𝑑 𝑙 2 0 −𝑚𝑝𝑒𝑛𝑑 𝑙𝑓 𝐼𝑝𝑒𝑛𝑑 (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 ) + 𝑚𝑐𝑎𝑟𝑡 𝑚𝑝𝑒𝑛𝑑 𝑙 2 0 𝑚𝑝𝑒𝑛𝑑 𝑔𝑙(𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 ) 𝐼𝑝𝑒𝑛𝑑 (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 ) + 𝑚𝑐𝑎𝑟𝑡 𝑚𝑝𝑒𝑛𝑑 𝑙 2 𝐼𝑝𝑒𝑛𝑑 (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 ) + 𝑚𝑐𝑎𝑟𝑡 𝑚𝑝𝑒𝑛𝑑 𝑙 2 0 2 2 0 0 1 0 ] 0 𝐼𝑝𝑒𝑛𝑑 + 𝑚𝑝𝑒𝑛𝑑 𝑙 2 𝐵= 𝐼𝑝𝑒𝑛𝑑 (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 ) + 𝑚𝑐𝑎𝑟𝑡 𝑚𝑝𝑒𝑛𝑑 𝑙 2 0 𝑚𝑝𝑒𝑛𝑑 𝑙 [𝐼𝑝𝑒𝑛𝑑 (𝑚𝑐𝑎𝑟𝑡 + 𝑚𝑝𝑒𝑛𝑑 ) + 𝑚𝑐𝑎𝑟𝑡 𝑚𝑝𝑒𝑛𝑑 𝑙 2 ] 𝐶= [ 1 0 0 0 0 0 ] 1 0 12 Phần 4. Xác nhận mô hình 4.1. Ước lượng tham số mô hình Các tham số của hệ thống được tìm thấy bằng cách kết hợp giữa kết quả mô phỏng của dao động con lắc với các dao động đo được tương ứng của hệ thống thực. - Khối lượng của con lắc được tìm thấy bằng cách cân con lắc. - Khối lượng của xe đẩy được tìm thấy bằng cách cân xe đẩy (bánh xe). - Khoảng cách từ tâm của con lắc đến điểm bản lề xoay được tìm thấy bằng cách lộn ngược con lắc lại và thực hiện dao động tắt dần của con lắc đơn sau đó tính ngược lại từ chu kì dao động. - Gia tốc trọng trường ước tính. - Mô men quán tính của con lắc được tính bằng công thức mô men quán tính của thanh thẳng đồng chất có trục quay ở một đầu của thanh. - Hệ số ma sát ước tính. Kết quả: 𝑚𝑐𝑎𝑟𝑡 = 0.175 𝑘𝑔 𝑚𝑝𝑒𝑛𝑑 = 0.83 𝑘𝑔 𝑙 = 0.046𝑚 𝑔 = 9.8 𝑚/𝑠 2 𝐼 = 0.0006 𝑘𝑔𝑚2 𝑓 = 0.01 Table 3. Tham số mô hình 4.2. Kiểm chứng mô hình Một bộ tham số PID được sử dụng để xác nhận mô hình toán học hệ thống do giá trị xác lập của hệ thống vòng hở khi có tác dụng của ngoại lực là vô cùng. 13 Figure 10. Phản hồi của hệ thống vòng hở 4.3. Mô hình toán học hệ thống thực Hàm truyền của hệ thống: Ψ (𝑠 ) 𝑈𝑖𝑛𝑝𝑢𝑡 (𝑠) 3.164 ∗ 10−8 ∗ 𝑠 7.544 ∗ 10−10 ∗ 𝑠 3 + 1.953 ∗ 10−11 ∗ 𝑠 2 − 3.116 ∗ 10−7 ∗ 𝑠 − 3.101 ∗ 10−9 𝑋 (𝑠 ) 𝑈𝑖𝑛𝑝𝑢𝑡 (𝑠) [4.1] = [4.2] 1.953 ∗ 10−9 ∗ 𝑠 2 − 3.101 ∗ 10−7 = 7.544 ∗ 10−10 ∗ 𝑠 4 + 1.953 ∗ 10−11 ∗ 𝑠 3 − 3.116 ∗ 10−7 ∗ 𝑠 2 − 3.101 ∗ 10−9 ∗ 𝑠 Không gian trạng thái của hệ thống: 14 0 1 𝐴 = [0 −0.02588 0 0 0 −0.4194 0 15.69 0 413.1 0 0] 1 0 0 𝐵 = [2.588] 0 41.94 𝐶= [ 1 0 0 0 0 1 0 ] 0 Từ mô hình toán học đã được xây dựng, có thể nhận ra rằng yếu tố được điều khiển ở hệ thống con lắc ngược trên xe đẩy là lực đầu vào, tuy nhiên đối với hệ thống xe hai bánh cân bằng được sử dụng, yếu tố được điều khiển trực tiếp là gia tốc bước của bánh xe. Phương trình toán học được sử dụng để chuyển đổi từ lực đầu vào sang gia tốc góc được trình bày như dưới: Gia tốc tức thời theo phương ngang của cả hệ thống là: 𝑎= 𝐹 (𝑚/𝑠 2 ) 𝑀+𝑚 Chuyển từ gia tốc tức theo phương ngang sang gia tốc góc của bánh xe: 𝜀= 𝑎 𝐹 = (𝑟𝑎𝑑/𝑠 2 ) 𝑟 (𝑀 + 𝑚 ) ∗ 𝑟 Với r là bán kính bánh xe. Chuyển từ gia tốc góc của bánh xe ra gia tốc bước của bánh xe với mỗi bước là 1.8° = 0.01𝜋 𝑟𝑎𝑑𝑖𝑎𝑛: 𝑠𝑡𝑒𝑝_𝑎𝑐𝑐𝑒𝑙𝑒𝑟𝑎𝑡𝑖𝑜𝑛 = 100𝑎 100 ∗ 𝐹 = (𝑠𝑡𝑒𝑝/𝑠 2 ) (𝑀 + 𝑚 ) ∗ 𝜋 ∗ 𝑟 𝜋𝑟 𝑠𝑡𝑒𝑝_𝑎𝑐𝑐𝑒𝑙𝑒𝑟𝑎𝑡𝑖𝑜𝑛 = 688.53 ∗ 𝐹 15 Phần 5. Thuật toán điều khiển 5.1. Điều khiển cổ điển: PID a) Sơ đồ khối hệ thống điều khiển: Figure 11. Sơ đồ khối điều khiển PID Giải thích các khối: - Controller: Bộ điều khiển - Extend force: Ngoại lực tác động từ môi trường - P_pend: Hàm truyền của con lắc - Gain K: chuyển đổi từ gia tốc bước của bánh xe sang lực - R2D: chuyển đổi từ radian sang độ của góc nghiêng con lắc Có thể vẽ sơ đồ khối gọn lại như sau: 16 Đầu ra của bộ điều khiển được giới hạn ở [-6400; 6400], đầu ra tích phân giới hạn ở mức [-2000; 2000]. Thời gian lấy mẫu là 0.005s. Bộ lọc cho khâu vi phân ở tần số 10000Hz. Hệ thống được rời rạc hóa bằng Backward Euler Method. b) Rời rạc hóa: Bộ điều khiển PID liên tục: 𝐾𝑝 𝑡 ∫ 𝑒(𝑡 ) 𝑑𝑡 + 𝐾𝑝 𝑇𝑑 𝑒̇ (𝑡) 𝑢(𝑡 ) = 𝑢0 + 𝐾𝑝 𝑒(𝑡 ) + 𝑇𝑖 0 [5.1] Trong đó 𝑢0 là control bias, 𝑒 là control error: 𝑒 (𝑡 ) = 𝑟(𝑡 ) − 𝑦(𝑡) Áp dụng Backward Euler cho phương trình PID liên tục ta được: [5.2] 𝑢(𝑡𝑘 ) − 𝑢(𝑡𝑘−1 ) 𝑇𝑠 = 𝑢0 (𝑡𝑘 ) − 𝑢0 (𝑡𝑘−1 ) 𝑒(𝑡𝑘 ) − 𝑒(𝑡𝑘−1 ) 𝐾𝑝 + 𝐾𝑝 + 𝑒 (𝑡𝑘 ) 𝑇𝑠 𝑇𝑠 𝑇𝑖 + 𝐾𝑝 𝑇𝑠 𝑒̇ (𝑡𝑘 ) − 𝑒̇ (𝑡𝑘−1 ) 𝑇𝑠 Áp dụng Backward Euler cho 𝑒̇ (𝑡𝑘 ) và 𝑒̇ (𝑡𝑘−1 ) ta thu được kết quả cuối cùng: 𝑢(𝑡𝑘 ) = 𝑢(𝑡𝑘−1 ) + [𝑢0 (𝑡𝑘 ) − 𝑢0 (𝑡𝑘−1 )] + 𝐾𝑝 [𝑒(𝑡𝑘 ) − 𝑒(𝑡𝑘−1 )] + + 𝐾𝑝 𝑇 𝑒 (𝑡 ) 𝑇𝑖 𝑠 𝑘 [5.3] 𝐾𝑝 𝑇𝑑 [𝑒(𝑡𝑘 ) − 2𝑒(𝑡𝑘−1 ) + 𝑒(𝑡𝑘−2 )] 𝑇𝑠 c) Kết quả: Bộ tham số Kp = 400; Ki = 5000; Kd = 10; kết quả mô phỏng: 17 Figure 12. Phản hồi của hệ thống với Kp = 400, Ki =5000, Kd = 10 - Thời gian quá độ: 1s - Độ vọt lố: 80% - Thời gian lên: 0.2s Kết quả của mô hình thực: Figure 13. Phản hồi của hệ thống thực - Thời gian quá độ: 2.5s - Độ vọt lố: 45% - Thời gian lên: 0.5s 18 Có thể thấy mô hình toán học của hệ thống với hệ thống thực có sai lệch, điều này có thể xảy ra là do: - Tuyến tính hóa chỉ đúng với các góc nghiêng nhỏ của hệ thống - Chưa đánh giá hết ngoại lực của hệ thống, lực cản được thêm vào chỉ có linear damping đối với tọa độ xe, ngoài ra có thể có air drag, Coulomb friction, … - Mô hình toán học đơn giản trong khi mô hình thực phức tạp hơn. - Việc giả định hệ thống thực thành dựa trên hệ thống Inverted Pendulum on a Cart là một giả định phổ biến giúp đơn giản hóa hệ thống tuy nhiên chưa được kiểm định về độ tin cậy. - Giả định nhiễu và trễ không được đưa vào mô hình. d) Điều chỉnh bộ điều khiển: Việc điều chỉnh các tham số PID tiếp được thực hiện theo nguyên tắc sau: - Tăng Kp: Tăng tốc độ phản hồi, tuy nhiên tăng Kp quá mức dẫn đến dao động. - Tăng Ki: thời gian quá độ giảm, tuy nhiên tăng Ki quá mức dẫn đến dao động. - Tăng Kd: Thời gian lên giảm, tuy nhiên nhạy với nhiễu. Kết quả mô phỏng với 𝐾𝑝 = 400; 𝐾𝑖 = 3000; 𝐾𝑑 = 10: Các tiêu chuẩn đáp ứng của hệ thống: - Thời gian quá độ: 0.7s - Độ vọt lố: 74% - Thời gian lên: 0.2s 19 Figure 14. Phản hồi của hệ thống với Kp=400, Ki=3000, Kd=10 Một số xung lực được tác động vào mô hình thực và dữ liệu được phân tích. Kết quả mô hình thực: Figure 15. Phản hồi của mô hình thực - Thời gian quá độ: 1.4s - Độ vọt lố: 38% - Thời gian lên: 0.75s 20 e) Kết luận: Có thể thấy bộ điều khiển PID đã được thực thi tốt trên hệ thống SISO. Việc mô hình hóa hệ thống đã được thực hiện dựa trên sự cân bằng giữa hai yêu cầu đơn giản/chính xác. Các kết quả từ mô phỏng có thể tham khảo để xây dựng hệ thống thực. Tuy nhiên trên mô hình thực còn tồn tại rất nhiều nhiễu từ cảm biến, tạo ra dao động khi hệ thống ở trạng thái xác lập. 5.2. Điều khiển hiện đại: điều khiển tối ưu LQR a) Khả năng điều khiển và khả năng quan sát: Khả năng điều khiển của hệ thống là khả năng đưa một hệ thống từ một trạng thái ban đầu bất kỳ đến một trạng thái mong muốn thông qua tác dụng của bộ điều khiển. Để kiểm tra khả năng điều khiển của hệ thống, ta tính ma trận điều khiển, nếu hạng của ma trận điều khiển bằng số trạng thái của hệ thống thì hệ thống có thể điều khiển. - Kiểm tra bằng MATLAB: >> Co = ctrb(sys_ss); rank(Co) ans = 4 Khả năng quan sát xác định của hệ thống là khả năng xác định được trạng thái của một hệ thống trong hiện tại hoặc lịch sử dựa trên thông tin thu nhập được từ các đầu ra của hệ thống. Để kiểm tra khả năng quan sát của một hệ thống , ta thường sử dụng ma trận quan sát. Nếu ma trận quán sát có hạng bằng số trạng thái của hệ thống thì hệ có khả năng quan sát. - Kiểm tra bằng MATLAB: >> Ob = obsv(sys_ss); rank(Ob) ans = 4 21 b) Sơ đồ khối hệ thống điều khiển: Figure 12. Sơ đồ khối hệ thống điều khiển bằng LQR Giải thích thành phần: - Khối State Space: mô hình không gian trạng thái hệ hống - Khối Điều khiển: ma trận điều khiển K - Khối ngoại lực: Đại diện lực tác dụng vào hệ thống Cho hệ thống được biểu diễn dưới dạng không gian trạng thái, vấn đề của bộ điều khiển là xác định ma trận K của vector điều khiển tối ưu: 𝑢(𝑡 ) = −𝐾𝑥(𝑡) Để giảm thiểu tối đa nhất làm tối ưu: ∞ 𝐽 = ∫ (𝑥 𝑇 𝑄𝑥 + 𝑢𝑇 𝑅𝑢)𝑑𝑡 0 Trong đó ma trận Q xác định hệ số quan trọng của từng biến trạng thái, ma trận R xác định hệ số quan trọng của mức tiêu hao năng lượng cho việc điều khiển. Sau khi xác định được ma trận trạng thái hệ thống A và B, ma trận hệ số Q và R. Ma trận K được giải bằng phương trình Riccati. Giải tìm ma trận K bằng MATLAB: >> K = lqr(A,B,Q,R) 22 c) Kết quả: 1 Với ma trận hệ số 𝑄 = [0 0 0 0 1 0 0 0 0 1000 0 Ma trận K tính được là: 𝐾 = [−1.0000 0 0 ], 𝑅 = [1] 0 80 −3.0557 50.4034 9.2657] Figure 13. Phản hồi của hệ thống - Thời gian quá độ: 4.3s - Độ vọt lố: 17% - Thời gian lên: 0.8s Đáp ứng hệ thống thực: Figure 14. Phản hồi của hệ thống thực 23 - Thời gian quá độ: 2.25 - Độ vọt lố: 20% - Thời gian lên: 0.5s d) Kết luận: Bộ điều khiển tối ưu LQR có thể điều khiển cho hệ thống SIMO, tuy nhiên phản hồi của các trạng thái lại có ảnh hưởng với nhau, khiến hiệu suất của hệ thống bị giảm bớt so với bộ điều khiển PID. Yêu cầu mô hình hóa của hệ thống chính xác rất cao vì nó được dùng để tính ma trận điều khiển. Ảnh hưởng của nhiễu từ cảm biến rất nhiều. 5.3. Điều khiển thông minh: Fuzzy Logic Một sơ đồ khối của hệ thống điều khiển mờ bao gồm bốn yếu tố sau: 1. Một rule-base (tập hợp các quy tắc If - Then), chứa mô tả của người điều khiển về cách mà điều khiển đạt được hiệu suất tốt 2. Một inference mechanism (hay còn gọi là công cụ suy luận hoặc suy luận mờ) mô phỏng việc đưa ra quyết định của người điều khiển trong việc diễn giải và áp dụng kiến thức về việc điều khiển hệ thống 3. Giao diện fuzzification, giúp chuyển đổi đầu vào của bộ điều khiển thành thông tin mà công cụ suy luận có thể dễ dàng sử dụng để kích hoạt và áp dụng các quy tắc 4. Giao diện defuzzification, giúp chuyển đổi các kết luận từ bộ suy luận sang đầu vào của hệ thống. Figure 15. Sơ đồ khối bộ suy luận Fuzzy Logic 24 a) Chọn đầu vào và đầu cho hệ thống điều khiển mờ: Chọn hai đầu vào cho bộ điều khiển: 1. Giá trị sai số của góc nghiêng: 𝑒(𝑡 ) = 𝑟(𝑡 ) − 𝑦(𝑡) 2. Tốc độ thay đổi sai số của góc nghiêng: 𝑑 𝑑𝑡 𝑒(𝑡) Chọn đầu ra của bộ điều khiển: 1. Lực tác dụng vào hệ thống : 𝑢(𝑡) b) Sơ đồ khối hệ thống điều khiển: Sau khi xác định được các đầu vào và đầu ra cho bộ điều khiển Fuzzy, sơ đồ khối hệ thống có thể viết lại như sau: Figure 16. Sơ đồ khối hệ thống điều khiển c) Hàm thành viên của đầu vào và đầu ra: Các hàm thành viên được thử nghiệm với các loại hàm đơn giản, các đầu vào/đầu ra được giới hạn ở khoảng giá trị [-1000; 1000] do đó sẽ đi cùng với các hệ số độ lợi cho từng thành phần đầu vào/đầu ra. 25 Figure 17. Hàm thành viên của error Figure 18. Hàm thành viên của d_error Figure 19. Hàm thành viên của output 26 Figure 20. Biểu diễn hệ thống với hệ số độ lợi. d) Luật suy luận của bộ điều khiển: NL NM NS ZE PS PM PL NL PL PL PL PM PM PS ZE NM PL PL PM PM PS ZE NS NS PL PM PM PS ZE NS NM ZE PM PM PS ZE NS NM NM PS PM PS ZE NS NM NM NL PM PS ZE NS NM NM NL NL PL ZE NS NM NM NL NL NL error d_error output e) Kết quả: Bộ điều khiển được thử nghiệm trên hệ thống thực với 𝑔0 = 120, 𝑔1 = 0.5, ℎ = 6.4: 27 - Thời gian xác lập: 1.5s - Độ vọt lố: 35% - Thời gian lên: 1s f) Kết luận: Bộ điều khiển Fuzzy Logic đã áp dụng được cho hệ thống SIMO, tuy nhiên việc điều chỉnh các công cụ giải mờ và mờ hóa là khó khăn hơn nhiều so với PID và LQR, bộ điều khiển Fuzzy thích hợp cho các hệ thống mờ điều khiển có biến biểu thị dưới dạng ngôn ngữ và các quy tắc điều khiển biểu diễn dưới dạng ngôn ngữ. Bộ điều khiển Fuzzy Logic thường có thể kết hợp với các bộ điều khiển tuyến tính như PID để có thể điều khiển được hệ thống phức tạp hoặc phi tuyến tính. 28 Phần 6. Tổng kết Từ các bộ điều khiển đã xây dựng, có thể thấy bộ điều khiển PID là đủ dùng cho việc điều khiển góc nghiêng của mô hình, tuy nhiên các bộ điều khiển khác cũng được xây dựng để so sánh và kiểm tra thuật toán điều khiển. Dựa trên ba bộ điều khiển đã xây dựng, nhóm đưa ra tổng kết giữa các bộ điều khiển: • Bộ điều khiển PID là bộ điều khiển vòng lặp kín phổ biến nhất, sử dụng ba tham số điều chỉnh: tỉ lệ khuếch đại tích phân (Kp), tỉ lệ khuếch đại sai phân (Ki) và tỉ lệ khuếch đại sai số (Kd). Ưu điểm của bộ điều khiển PID là đơn giản, dễ cài đặt và hiệu quả trong nhiều ứng dụng. Tuy nhiên, nó có hạn chế là hiệu suất có thể không tối ưu cho các hệ thống phức tạp hoặc phi tuyến tính. • Bộ điều khiển LQR (Linear Quadratic Regulator) là một phương pháp điều khiển tối ưu dựa trên mô hình toán học của hệ thống. LQR tối ưu hóa hiệu suất hệ thống bằng cách giảm thiểu hàm chi phí quadratic. Ưu điểm của bộ điều khiển LQR là hiệu suất cao. Tuy nhiên, nó có hạn chế là phức tạp hơn để thiết kế và cài đặt so với bộ điều khiển PID, và yêu cầu mô hình toán học chính xác của hệ thống. • Bộ điều khiển Fuzzy là một phương pháp điều khiển dựa trên logic mờ, sử dụng các quy tắc "nếu-thì" để mô phỏng suy luận của con người. Ưu điểm của bộ điều khiển Fuzzy là dễ dàng xử lý các hệ thống phi tuyến tính và không chắc chắn, và có khả năng thích ứng với sự thay đổi của hệ thống. Tuy nhiên, nó có hạn chế là có thể khó khăn để thiết lập các quy tắc fuzzy hiệu quả và có thể dẫn đến kết quả không rõ ràng. Bảng so sánh: Đặc điểm PID LQR Fuzzy Độ phức tạp Thấp Cao Trung bình Khả năng thiết lập Dễ Khó Trung bình Hiệu suất Tốt Tối ưu Tốt Hệ thống phi tuyến Hạn chế Tốt Tốt Mô hình toán học Cần hoặc không Cần thiết Không cần thiết Khả năng giải thích Dễ Khó Khó 29 Lựa chọn bộ điều khiển phù hợp: Lựa chọn bộ điều khiển phù hợp phụ thuộc vào nhiều yếu tố, bao gồm độ phức tạp của hệ thống, yêu cầu hiệu suất, khả năng sẵn có của mô hình toán học và chuyên môn của người điều khiển. • Bộ điều khiển PID là lựa chọn tốt cho các hệ thống đơn giản, dễ dự đoán. • Bộ điều khiển LQR là lựa chọn tốt cho các hệ thống phức tạp, có mô hình toán học chính xác và yêu cầu hiệu suất cao. • Bộ điều khiển Fuzzy là lựa chọn tốt cho các hệ thống phi tuyến tính, không chắc chắn và có yêu cầu về khả năng thích ứng. Tuy các vấn đề về thuật toán điều khiển đã thực thi thành công, tuy nhiên vẫn còn các vấn đề xung quanh phần cứng như nhiễu từ cảm biến, nhiễu được thể hiện rõ ràng như sau: Mặc dù mô hình đang đứng yên nhưng giá trị của cảm biến dao động rất nhiều. Việc áp dụng bộ lọc cần cân bằng giữa việc lọc và việc trễ pha của tín hiệu, vì việc trễ pha sẽ khiến tín hiệu phản hồi không còn chính xác. Trong bài báo cáo này, nhóm không sử dụng bộ lọc cho tín hiệu đo từ cảm biến, do đó các thành phần của bộ điều khiển sử dụng tốc độ thay đổi của góc nghiêng sẽ ảnh hưởng rất nhiều bởi nhiễu (thành phần Kd của PID; biến trạng thái thứ tư của ma trận trạng thái hoặc đầu vào thứ hai của bộ điều khiển Fuzzy). Nếu không thể xử lý được nhiễu từ cảm biến thì bộ điều khiển tối ưu nhất dành cho hệ thống là điều khiển PI. 30