ĐẠ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