BAOCAO LVTN v7

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 111

LỜI CAM ĐOAN

Chúng em tên là Ngô Quốc Trưởng; Phan Đình Hoài. Chúng em xin cam đoan
và xin hoàn toàn chịu trách nhiệm về toàn bộ nội dung của đồ án tốt nghiệp “Thiết kế
bộ điều khiển cho robot một bánh tự cân bằng” là công trình nghiên cứu do chúng
em thực hiện dưới sự hướng dẫn của ThS. Trần Quang Vinh. Các tài liệu tham khảo
trong quá trình thực hiện luận án đều được trích dẫn rõ ràng theo quy định. Kết quả và
kết luận trong đồ án tốt nghiệp là hoàn toàn trung thực.
Tp. HCM, tháng 12 năm 2023
(Ký và ghi rõ họ tên)

……………………

i
LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn sâu sắc và chân thành nhất đến quý thầy cô đã đồng
hành và hỗ trợ trong suốt hành trình 4 năm học tập tại trường. Với sự giảng dạy tận
tâm và lòng nhiệt huyết của quý thầy cô giúp chúng em trang bị được nền tảng kiến
thức vững chắc và những kỹ năng quan trọng, là nguồn động viên lớn giúp chúng em
vượt qua mọi thách thức trong quãng đường học tập của mình.
Đặc biệt, chúng em muốn bày tỏ lòng biết ơn sâu sắc đến thầy Trần Quang
Vinh đã tận tâm hướng dẫn, đưa ra các hướng phát triển trong suốt quá trình thực hiện
đề tài tốt nghiệp. Sự hỗ trợ chân thành từ phía thầy không chỉ giúp chúng em hiểu rõ
hơn về chủ đề đề tài, mà còn khám phá và phát triển khả năng sáng tạo, tư duy lập luận
và nghiên cứu khoa học của bản thân.
Đề tài tốt nghiệp không chỉ là cột mốc kết thúc của quá trình học tập tại trường
mà còn là cơ hội để chúng em áp dụng những kiến thức đã học vào thực tế và khẳng
định bản thân trong lĩnh vực chuyên ngành của mình. Những kiến thức và kinh nghiệm
thu được từ đồ án này không chỉ giúp chúng em cơ hội cho hành trình sự nghiệp sắp
tới.
Cuối cùng, chúng em xin được bày tỏ lòng biết ơn chân thành nhất đến toàn thể
thầy cô và các bạn trong lớp, người đã tạo nên một môi trường học tập tích cực và đầy
động lực tại trường. Chúng em tự hào và biết ơn vì đã được là một trong những sinh
viên của trường, nơi mà chúng em đã học hỏi, trưởng thành và xây dựng những kỷ
niệm quý báu suốt quãng thời gian học tập của mình.

Trân trọng cảm ơn!


Tp. HCM, tháng 12 năm 2023
(Ký và ghi rõ họ tên)

……

ii
TÓM TẮT
Báo cáo này trình bày quá trình toàn diện của nhóm trong việc thực hiện đề tài,
bắt đầu từ khâu lên ý tưởng cho đến xây dựng mô hình, tính toán, mô phỏng và lập
trình điều khiển. Mô hình ban đầu được tham khảo từ tác giả ReM-RC và đã được
nhóm điều chỉnh và phát triển để phù hợp với yêu cầu cụ thể của các thiết bị và linh
kiện được sử dụng. Trong quá trình triển khai thuật toán, nhóm áp dụng phương pháp
điều khiển chính là LQR, đồng thời mô phỏng thêm phương pháp PID và ANN để
thực hiện sự so sánh các bộ điều khiển với nhau. Đối với tính toán và mô phỏng, nhóm
sử dụng phần mềm chính là Matlab/Simulink giúp cho việc tính toán và mô phỏng bộ
điều khiển một cách dễ dàng. Cùng với Arduino IDE được sử dụng để lập trình cho vi
điều khiển. Nhóm tự hào giới thiệu quá trình nghiên cứu đầy đủ và chi tiết trong báo
cáo này.

iii
MỤC LỤC
LỜI CAM ĐOAN...........................................................................................................i
LỜI CẢM ƠN................................................................................................................ii
TÓM TẮT.....................................................................................................................iii
MỤC LỤC.....................................................................................................................iv
DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT...........................................................vi
DANH MỤC HÌNH ẢNH...........................................................................................vii
CHƯƠNG 1. GIỚI THIỆU...........................................................................................1
1.1. Lý do chọn đề tài...................................................................................................1
1.2. Mục tiêu và nội dung thực hiện luận văn..............................................................1
1.3. Đối tượng và phương pháp nghiên cứu.................................................................2
CHƯƠNG 2. TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT.............................................4
2.1. Tổng quan về mô hình robot một bánh.................................................................4
2.1.1. Các nghiên cứu trong nước.............................................................................4
2.1.2. Các nghiên cứu ngoài nước............................................................................5
2.2. Hệ xe một bánh tự cân bằng..................................................................................7
2.2.1. Mô hình hóa hệ con lắc ngược........................................................................7
2.2.2. Mô hình hóa hệ con lắc bánh đà...................................................................11
2.2.3. Tuyến tính hóa hệ thống...............................................................................13
2.3. Thành lập hệ phương trình không gian trạng thái (State Space).........................14
2.3.1. Chuyển đổi tín hiệu điều khiển.....................................................................14
2.3.2. Hệ phương trình không gian trạng thái.........................................................16
2.4. Giải thuật điều khiển LQR..................................................................................16
2.5. Giải thuật điều khiển PID....................................................................................17
2.6. Giải thuật điều khiển ANN..................................................................................18
CHƯƠNG 3. TRIỂN KHAI XÂY DỰNG MÔ HÌNH THỰC NGHIỆM..............22
3.1. Xây dựng mô hình phần cứng.............................................................................22
3.1.1. Phát triển mô hình 3D...................................................................................22
3.1.2. Sơ đồ khối phần cứng...................................................................................22
3.1.3. Lắp đặt và hoàn thiện phần cứng..................................................................23
3.2. Các thiết bị và giải thuật đo lường được sử dụng................................................30
3.2.1. Cảm biến MPU6050 và bộ lọc bù................................................................30

iv
3.2.2. Cảm biến AS5600.........................................................................................35
3.2.3. Mạch điều khiển BGC 3.1............................................................................36
3.2.4. Động cơ BLDC và thư viện SimpleFOC......................................................38
3.2.5. Tính toán và đo đạc thông số của mô hình...................................................40
CHƯƠNG 4. THIẾT KẾ BỘ ĐIỀU KHIỂN, MÔ PHỎNG VÀ ĐÁNH GIÁ HỆ
THỐNG TRÊN SIMULINK......................................................................................44
4.1. Tính điều khiển được và tính quan sát được.......................................................44
4.2. Khảo sát hệ thống khi chưa có bộ điều khiển......................................................45
4.3. Thiết kế bộ điều khiển LQR................................................................................47
4.3.1. Mô phỏng hệ thống ở miền liên tục..............................................................47
4.3.2. Mô phỏng hệ thống ở miền rời rạc...............................................................54
4.4. Thiết kế bộ điều khiển PID..................................................................................64
4.5. Thiết kế bộ điều khiển ANN...............................................................................66
CHƯƠNG 5. TRIỂN KHAI THUẬT TOÁN ĐIỀU KHIỂN LÊN MÔ HÌNH
THỰC NGHIỆM.........................................................................................................73
5.1. Lưu đồ thuật toán................................................................................................73
5.2. Xác định chiều của tín hiệu điều khiển và các biến trạng thái............................75
5.3. Thiết kế giao diện điều khiển và giám sát...........................................................75
5.4. Điều chỉnh thông số bộ điều khiển trên mô hình thực nghiệm...........................76
5.4.1. Triển khai thông số bộ điều khiển tìm được từ Matlab................................76
5.4.2. Điều chỉnh thông số trục Roll.......................................................................78
5.4.3. Điều chỉnh thông số trục Pitch.....................................................................79
5.4.4. Kết quả điều chỉnh toàn mô hình..................................................................85
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN..........................................90
6.1. Kết luận...............................................................................................................90
6.1.1. Kết quả mô phỏng.........................................................................................90
6.1.2. Kết quả thực nghiệm.....................................................................................90
6.2. Hạn chế và hướng phát triển...............................................................................91
6.2.1. Hạn chế.........................................................................................................91
6.2.2. Hướng phát triển...........................................................................................91
TÀI LIỆU THAM KHẢO...........................................................................................92

v
DANH MỤC CÁC THUẬT NGỮ VIẾT TẮT

TT Viết tắt Tiếng Anh Tiếng Việt

Bộ điều chỉnh tuyến tính bậc


1 LQR Linear Quadratic Regulator
hai

2 ANN Artificial Neural Network Mạng neu ron nhân tạo

Proportional Integral Bộ điều khiển tỉ lệ, vi, tích


3 PID
Derivative phân

Động cơ một chiều không


4 BLDC Brushless Direct Current
chổi than

vi
DANH MỤC HÌNH ẢNH
Hình 1.1. Phương pháp nghiên cứu.................................................................................3
Hình 2.1. Hình ảnh robot thực tế của tác giả Bùi Thái Công..........................................4
Hình 2.2. Hình ảnh robot thực tế của tác giả Lâm Gia Đức............................................5
Hình 2.3. Hình ảnh thực tế robot của tác giả Vries, J.F. de.............................................6
Hình 2.4. Robot thực tế của đề tài Wheelbot: A jumping reaction wheel unicycle........6
Hình 2.5. Robot thực tế của tác giả ReM-RC..................................................................7
Hình 2.6. Ký hiệu của hệ con lắc ngược.........................................................................8
Hình 2.7. Ký hiệu của hệ con lắc bánh đà.....................................................................11
Hình 2.8. Mô hình ANN đơn giản. [8]..........................................................................19
Hình 2.9. Mạng thần kinh truyền thẳng một lớp. [9].....................................................19
Hình 2.10. Mạng thần kinh truyền thẳng ba lớp. [9].....................................................19
Hình 2.11. Mạng thần kinh truyền thẳng một lớp và ba lớp. [9]...................................20
Hình 2.12. Mạng thần kinh hồi quy nhiều lớp. [9]........................................................20
Hình 3.1. Mô hình 3D trên phần mềm Inventor............................................................22
Hình 3.2. Sơ đồ khối của hệ thống................................................................................22
Hình 3.3. Các bộ phận của robot được in 3D................................................................23
Hình 3.4. Lắp encoder vào khung..................................................................................24
Hình 3.5. Lắp động cơ và MPU6050.............................................................................24
Hình 3.6. Đặt nam châm vào trục động cơ....................................................................24
Hình 3.7. Lắp bánh xe vào động cơ...............................................................................25
Hình 3.8. Lắp thêm ốc vít vào các bánh đà...................................................................25
Hình 3.9. Robot sau khi được lắp đặt hoàn tất (nhìn trực diện)....................................26
Hình 3.10. Robot sau khi lắp đặt hoàn thiện (nhìn từ bên phải)....................................27
Hình 3.11. Robot sau khi lắp đặt hoàn thiện (nhìn từ bên trái).....................................28
Hình 3.12. Robot được gắn kèm giá đỡ trục Pitch........................................................29
Hình 3.13. Robot được gắn kèm giá đỡ trục Pitch........................................................30
Hình 3.14. Thông tin chi tiết cảm biến MPU6050........................................................31
Hình 3.15. Con quay hồi chuyển gồm 4 phần M1, M2, M3, M4 [10]..........................31
Hình 3.16. M1, M3 chuyển động xung quanh trục X [10]............................................32
Hình 3.17. M2, M4 chuyển động xung quanh trục Y [10]............................................32
Hình 3.18. M2, M4 chuyển động qua lại quanh trục Z [10]..........................................32

vii
Hình 3.19. Con quay hồi chuyển dưới kính hiển vi [10]...............................................33
Hình 3.20. Cấu trúc của gia tốc kế [10].........................................................................33
Hình 3.21. Hình ảnh thực tế cảm biến MPU6050-GY521............................................33
Hình 3.22. Sơ đồ mô tả bộ lọc bù..................................................................................35
Hình 3.23. Sơ đồ khối cảm biến AS5600......................................................................36
Hình 3.24. Module cảm biến AS5600 sử dụng trong mô hình......................................36
Hình 3.25. Mạch BGC 3.1 tích hợp cảm biến MPU6050..............................................37
Hình 3.26. hình ảnh thực tế chip Atmega328P..............................................................37
Hình 3.27. Hình ảnh động cơ thực tế............................................................................38
Hình 3.28. Hình ảnh thực tế module Bluetooth HC-05.................................................39
Hình 3.29. Khối lượng của toàn bộ robot......................................................................40
Hình 3.30. Khối lượng của bánh đà...............................................................................41
Hình 3.31. Mô tả hình vành khăn và đặt gốc tọa độ......................................................42
Hình 3.32. Mô tả hình khối trục tròn.............................................................................42
Hình 4.1. Sơ đồ phỏng hệ thống khi chưa có bộ điều khiển trên Simulink...................45
Hình 4.2. Đáp ứng của các thông số trục pitch khi chưa có bộ điều khiển...................46
Hình 4.3. Đáp ứng của các thông số trục roll khi chưa có bộ điều khiển......................47
Hình 4.4. Sơ đồ mô phỏng hệ thống ở miền liên tục trên Simulink..............................48
Hình 4.5. Kết quả mô phỏng trục Pitch lần 1................................................................49
Hình 4.6. Kết quả mô phỏng trục Roll lần 1.................................................................50
Hình 4.7. Kết quả mô phỏng trục Pitch lần 2................................................................51
Hình 4.8. Kết quả mô phỏng trục Roll lần 2.................................................................52
Hình 4.9. Kết quả mô phỏng trục Pitch lần 3................................................................53
Hình 4.10. Kết quả mô phỏng trục Roll lần 3................................................................54
Hình 4.11. Mô phỏng hệ thống ở miền rời rạc trên Simulink.......................................55
Hình 4.12. Kết quả mô phỏng miền rời rạc trục Pitch lần 1..........................................56
Hình 4.13. Kết quả mô phỏng miền rời rạc trục Roll lần 1...........................................57
Hình 4.14. Kết quả mô phỏng miền rời rạc trục Pitch lần 2..........................................59
Hình 4.15. Kết quả mô phỏng miền rời rạc trục Roll lần 2...........................................60
Hình 4.16.Kết quả mô phỏng miền rời rạc trục Pitch lần 3...........................................61
Hình 4.17.Kết quả mô phỏng miền rời rạc trục Roll lần 3............................................62
Hình 4.18. Mô phỏng hệ thống ở miền rời rạc với nhiễu tác động...............................63

viii
Hình 4.19. Kết quả mô phỏng trục Pitch của hệ thống ở miền rời rạc khi có nhiễu tác
động...............................................................................................................................63
Hình 4.20. Kết quả mô phỏng trục Roll của hệ thống ở miền rời rạc khi có nhiễu tác
động...............................................................................................................................64
Hình 4.21. Mô phỏng bộ điều khiển góc lệch con lắc (ψ )............................................65
Hình 4.22. Kết quả bộ điều khiển PID cho góc lệch con lắc theo phương thẳng đứng (ψ
)......................................................................................................................................65
Hình 4.23. Mô phỏng kiểm chứng bộ điều khiển góc quay bánh xe ( φ1 )....................66
Hình 4.24. Kết quả mô phỏng bộ điều khiển góc quay bánh xe (φ1 )...........................66
Hình 4.25. Sơ đồ thu thập dữ liệu hệ thống...................................................................67
Hình 4.26. Cấu trúc mạng..............................................................................................68
Hình 4.27. Thông số quá trình huấn luyện....................................................................68
Hình 4.28. Đồ thị Performance......................................................................................68
Hình 4.29. So sánh hai bộ điều khiển ANN và LQR....................................................69
Hình 4.30. Đồ thị so sánh kết quả biến x của hai bộ điều khiển...................................69
Hình 4.31. Đồ thị so sánh kết quả biến psi của hai bộ điều khiển.................................70
Hình 4.32. Đồ thị so sánh kết quả biến phi1_dot của hai bộ điều khiển.......................70
Hình 4.33. Đồ thị so sánh kết quả biến psi_dot của hai bộ điều khiển..........................71
Hình 4.34. Đồ thị so sánh kết quả trục Pitch của hai bộ điều khiển..............................71
Hình 4.35. Đồ thị so sánh kết quả trục Roll của hai bộ điều khiển...............................72
Hình 5.1. Giao diện điều khiển và giám sát hệ thống....................................................75
Hình 5.2. Kết quả mô phỏng biến Phi2 và Phi2_dot.....................................................76
Hình 5.3. Kết quả biến Theta và Theta_dot...................................................................77
Hình 5.4. Kết quả biến Psi và Phi1_dot.........................................................................77
Hình 5.5. Kết quả biến Theta và Theta_dot sau khi điều chỉnh thông số......................78
Hình 5.6. Kết quả biến Phi2 và Phi2_dot sau khi điều chỉnh thông số.........................79
Hình 5.7. Kết quả biến Psi và Psi_dot sau khi điều chỉnh thông số lần 1.....................80
Hình 5.8. Kết quả biến Phi1 và Phi1_dot sau khi điều chỉnh thông số lần 1................80
Hình 5.9. Kết quả biến Psi và Psi_dot sau khi điều chỉnh thông số lần 2.....................81
Hình 5.10. Kết quả biến Phi1 và Phi1_dot sau khi điều chỉnh thông số lần 2..............82
Hình 5.11. Kết quả biến Psi và Psi_dot sau khi điều chỉnh thông số lần 3...................82
Hình 5.12. Kết quả biến Phi1 và Phi1_dot sau khi điều chỉnh thông số lần 3..............83

ix
Hình 5.13. Kết quả biến Phi1 và Phi1_dot sau khi điều chỉnh thông số lần 4..............84
Hình 5.14. Kết quả biến Psi và Psi_dot sau khi điều chỉnh thông số lần 4...................84
Hình 5.15. Kết quả mô phỏng biến Phi2 và Phi2_dot...................................................85
Hình 5.16. Kết quả biến Theta và Theta_dot.................................................................86
Hình 5.17. Kết quả biến Phi1 và Phi1_dot....................................................................86
Hình 5.18. Kết quả biến Psi và Psi_dot.........................................................................87
Hình 5.19. Kết quả biến Phi2 và Phi2_dot khi có tác động ngoại lực...........................87
Hình 5.20. Kết quả biến Theta và Theta_dot sau có tác động ngoại lực.......................88
Hình 5.21. Kết quả mô phỏng biến Phi1 và Phi1_dot khi có tác dộng ngoại lực..........88
Hình 5.22. Kết quả mô phỏng biến Psi và Psi_dot khi có tác dộng ngoại lực...............89

x
DANH MỤC BẢNG
Bảng 2.1. Bảng giải thích các ký hiệu sử dụng trong mô hình con lắc ngược................8
Bảng 2.2. Bảng giải thích các ký hiệu sử dụng trong mô hình con lắc bánh đà............11
Bảng 3.1 Thông số kỹ thuật của mạch BGC 3.1 [11]....................................................37
Bảng 3.2 Đặc tính /thông số kỹ thuật của Atmega328P [12]........................................38
Bảng 3.3. Bảng thông số kỹ thuật động cơ [13]............................................................38
Bảng 3.4. Bảng thông số kỹ thuật của mạch HC-05.....................................................40
Bảng 3.5. Bảng giá trị thông số của phần con lắc ngược..............................................42
Bảng 3.6. Bảng giá trị thông số của phần con lắc bánh đà............................................43
Bảng 3.7. Bảng giá trị thông số của động cơ và hệ số ma sát.......................................43

xi
CHƯƠNG 1. GIỚI THIỆU

1.1. Lý do chọn đề tài


Con lắc ngược và các biến thể của chúng đã trở nên phổ biến và quen thuộc với
cộng đồng nghiên cứu trong nước và trên thế giới. Tuy nhiên, đối với xe tự cân bằng
một bánh (cũng là một biến thể của con lắc ngược), có một sự chênh lệch đáng kể về
tần suất nghiên cứu giữa Việt Nam và các nước khác.
Đối tượng này thu hút sự quan tâm lớn từ cộng đồng nghiên cứu quốc tế vì tính
phi tuyến cao hơn và yêu cầu độ chính xác của bộ điều khiển tốt hơn so với nhiều đối
tượng phi tuyến kinh điển khác. Các nước nghiên cứu tiên tiến đã đề xuất và áp dụng
nhiều thuật toán điều khiển độc đáo để tối ưu hóa hiệu suất và ổn định của xe tự cân
bằng một bánh. Tuy nhiên, tại Việt Nam, lĩnh vực này vẫn còn khá hạn chế và chưa
được đào tạo và phát triển mạnh mẽ.
Trong bối cảnh này, ý tưởng chọn đề tài nghiên cứu về việc thiết kế bộ điều
khiển cho xe tự cân bằng một bánh là một vấn đề tương đối cấp thiết. Việc nghiên cứu
đối tượng phi tuyến này không chỉ mở ra những khả năng mới để tối ưu hóa hiệu suất
và ứng dụng trong thực tế một cách hiệu quả mà còn đóng góp vào sự phát triển của
lĩnh vực điều khiển tự động trong nước.
Bên cạnh đó, việc thực hiện đề tài này cũng tạo tiền đề cho sinh viên tiếp cận và
nắm bắt những thuật toán điều khiển phức tạp khác, từ đó nâng cao kỹ năng thực hành
và hiểu rõ hơn về cách ứng dụng kiến thức vào thực tế. Điều này giúp xây dựng lực
lượng nhân lực có năng lực và sẵn sàng đáp ứng nhu cầu ngày càng cao về công nghệ
và ứng dụng tự động trong nước.
Vậy nên, nhóm quyết định chọn đề tài nghiên cứu là “Thiết kế bộ điều khiển
cho xe tự cân bằng một bánh”.
1.2. Mục tiêu và nội dung thực hiện luận văn
Mục tiêu của đề tài là nghiên cứu và áp dụng các phương pháp điều khiển khác
nhau vào việc điều khiển xe tự cân bằng một bánh. Chúng em hướng đến việc khám
phá, so sánh và đánh giá hiệu quả của các phương pháp điều khiển, từ đó rút ra các
nhận xét quan trọng về tính hiệu quả và khả năng áp dụng chúng vào thực tế.
Đề tài này không chỉ tập trung vào việc nghiên cứu các phương pháp điều khiển,
mà còn mở ra cơ hội thử nghiệm và áp dụng chúng vào đối tượng thực tế - xe tự cân
bằng một bánh. Điều này giúp chúng em kiểm tra tính ứng dụng và hiệu quả của các
giải pháp điều khiển trong môi trường thực tế, từ đó cung cấp những kết quả nghiên
cứu chính xác và cụ thể hơn về hiệu suất và khả năng ứng dụng của từng phương pháp.

1
Tóm lại, mục tiêu của đề tài là tập trung vào việc nghiên cứu, thử nghiệm và so
sánh các phương pháp điều khiển khác nhau cho xe tự cân bằng một bánh. Qua quá
trình này, chúng em mong muốn đưa ra những nhận xét và giải pháp hiệu quả, góp
phần nâng cao hiệu suất và tính ứng dụng của xe tự cân bằng một bánh trong thực tế.
1.3. Đối tượng và phương pháp nghiên cứu
Đối tượng nghiên cứu là robot cân bằng một bánh. Để tiếp cận đề tài một cách
đúng đắn và có hiệu quả nhóm đã thực hiện thông qua các bước nghiên cứu và thử
nghiệm có hệ thống như sau:
 Tìm hiểu về đối tượng nghiên cứu: Đầu tiên, chúng em sẽ tiến hành nghiên
cứu kỹ lưỡng về đối tượng xe tự cân bằng một bánh, từ cơ cấu và cấu trúc của
nó đến các yếu tố ảnh hưởng đến hiệu suất điều khiển. Việc hiểu rõ về tính
chất và đặc điểm của đối tượng là cơ sở quan trọng để phát triển các giải pháp
điều khiển thích hợp.
 Nghiên cứu các phương pháp điều khiển hiện có: Tiếp theo, chúng em sẽ tìm
hiểu và nghiên cứu các phương pháp điều khiển khác nhau. Bằng cách tìm
hiểu các phương pháp này, chúng em có thể xác định được những tiềm năng
và giới hạn của chúng trong việc điều khiển xe tự cân bằng một bánh.
 Xây dựng mô hình và mô phỏng: Sau đó, chúng em sẽ xây dựng mô hình toán
học và mô phỏng máy tính của xe tự cân bằng một bánh, từ đó tái hiện các tình
huống và điều kiện thực tế. Mô phỏng giúp chúng em kiểm tra và đánh giá
hiệu quả và tính khả thi của các phương pháp điều khiển trước khi triển khai
thực nghiệm trên đối tượng thực tế.
 Thử nghiệm trên xe tự cân bằng thực tế: Để đảm bảo tính ứng dụng và hiệu
quả của các giải pháp điều khiển, chúng em sẽ lựa chọn các giải thuật tối ưu
nhất để thực hiện các thử nghiệm trên xe tự cân bằng một bánh thực tế. Thông
qua việc tiến hành các thử nghiệm này, chúng em có thể thu thập dữ liệu và
đánh giá hiệu suất của các phương pháp điều khiển trong môi trường thực tế.
 So sánh và đánh giá kết quả: Cuối cùng, chúng em sẽ so sánh và đánh giá kết
quả của các phương pháp điều khiển khác nhau. Việc so sánh này giúp chúng
em xác định được những ưu điểm và hạn chế của từng phương pháp và đưa ra
các nhận xét quan trọng để cải thiện và tối ưu hóa hiệu suất của xe tự cân bằng
một bánh.
Tóm lại, cách tiếp cận đề tài này sẽ bao gồm nghiên cứu kỹ lưỡng về đối tượng,
tìm hiểu và nghiên cứu các phương pháp điều khiển hiện có, xây dựng mô hình và mô
phỏng, thử nghiệm trên xe thực tế và cuối cùng so sánh và đánh giá kết quả để đạt
được mục tiêu nghiên cứu.

2
Hình 1.1. Phương pháp nghiên cứu.

3
CHƯƠNG 2. TỔNG QUAN VÀ CƠ SỞ LÝ THUYẾT

2.1. Tổng quan về mô hình robot một bánh


Mô hình robot cân bằng một bánh là một mô hình robot di động đặc biệt được
thiết kế để di chuyển và duy trì cân bằng trên một bánh xe. Mô hình này nhắm đến mô
phỏng và điều khiển các tính chất của xe đạp, trong đó robot duy trì sự ổn định bằng
cách điều chỉnh trọng tâm và lực điều khiển.
Tương tự như các hệ phi tuyến khác như con lắc ngược, con lắc bánh đà, bóng và
thanh … thì hệ xe một bánh tự cân bằng cũng có cấu trúc SIMO (tức là chỉ có một ngõ
vào nhưng nhiều ngõ ra) đối với từng thành phần riêng biệt. Vì vậy, mô hình Unicycle
Robot đòi hỏi sự cân nhắc kỹ lưỡng trong thiết kế và điều khiển để đảm bảo sự ổn định
và an toàn khi di chuyển trên một bánh xe. Các nghiên cứu về mô hình này tập trung
vào việc phát triển thuật toán điều khiển hiệu quả, tối ưu hóa cân bằng và cải thiện khả
năng đáp ứng của robot trong các môi trường và tình huống khác nhau.
2.1.1. Các nghiên cứu trong nước
Đối với đề tài, nhóm có tham khảo được một số mô hình của các tác giả ở các
trường Đại học trong nước như sau:
 Đề tài: Robot một bánh xe tự thăng bằng của tác giả Bùi Thái Công [1] sử
dụng thuật toán LQR điều khiển cân bằng mô hình robot một bánh, mô hình
này có khả năng giữ thăng bằng và di chuyển trên địa hình phẳng. Tác giả đã
kết hợp thêm một bánh xe ở giữa để giúp robot có thể điều hướng được.

Hình 2.1. Hình ảnh robot thực tế của tác giả Bùi Thái Công.

4
 Đề tài: Điều khiển tối ưu hệ robot cân bằng một bánh xe dùng qui hoạch
động thích nghi của tác giả Lâm Gia Đức [2] sử dụng giải thuật quy hoạch
động thích nghi để cân bằng robot một bánh, ở mô hình này ngoài việc cân
bằng robot có khả năng di chuyển theo quỹ đạo thẳng cho trước.

Hình 2.2. Hình ảnh robot thực tế của tác giả Lâm Gia Đức.

2.1.2. Các nghiên cứu ngoài nước


So với nghiên cứu trong nước thì bên ngoài nước chủ đề này được nhiều tác giả
quan tâm nhiều hơn và nó được triển khai từ rất sớm. Nhóm đã tìm trên các website
như Google, Youtube, … để tham khảo một số bài báo, video nói về chủ đề này.
 Trong đề tài Redesign & Implementation of a Moment Exchange Unicycle
Robot của tác giả Vries, J.F. de [3] đã sử dụng phần mềm Matlab/Simulink để
mô phỏng và điều khiển cho hệ thống. Robot có khả năng cân bằng và di
chuyển theo quỹ đạo; Có khả năng cân bằng và di chuyển trên địa hình phẳng
khi mang một vật nặng lên tới 0.8 Kg; Có khả năng lên và xuống dốc có độ
nghiêng là 10o; Có khả năng di chuyển trên mặt phẳng nghiêng lên tới 12o.

5
Hình 2.3. Hình ảnh thực tế robot của tác giả Vries, J.F. de.

 Đề tài The Wheelbot: A jumping reaction wheel unicycle [4] của nhóm tác
giả đến từ trường đại học RWTH Achen University phần mô hình robot được
in 3D. Nhóm tác giả dùng giải thuật LQR để điều khiển robot, robot có khả
năng cân bằng và di chuyển trên địa hình phẳng, mặt phẳng nghiêng và đặc
biệt robot có khả năng tự đứng dậy và cân bằng khi ta đặt robot nằm ở bất kì vị

trí nào.

Hình 2.4. Robot thực tế của đề tài Wheelbot: A jumping reaction wheel unicycle.

6
 Mô hình robot Unicycle balancing robot with reaction wheel của tác giả
ReM-RC [5] mô hình robot được in 3D, tác giả dùng giải thuật LQR để điều
khiển robot. Robot chỉ có khả năng cân bằng trên địa hình phẳng.

Hình 2.5. Robot thực tế của tác giả ReM-RC.

Trên đây nhóm đã trình bày một số đề tài của các tác giả nước ngoài. Nhìn chung
về phần thiết kế mô hình cơ khí và sử dụng thuật toán điều khiển có khác nhau giữa
các tác giả nhưng điểm chung ở đây là tất cả hoạt động cùng một nguyên lý chung là
cân bằng robot bằng việc kết hợp bánh đà phía trên để giữ thăng bằng theo trục Roll và
bánh xe phía dưới để giữ thăng bằng robot theo trục Pitch.
Mô hình robot của nhóm tham khảo theo mô hình Unicycle balancing robot
with reaction wheel của tác giả ReM-RC đã được giới thiệu ở trên. Nhóm cũng sử
dụng công nghệ in 3D để làm phần khung cho robot, giải thuật điều khiển cho robot
được nhóm triển khai mới hoàn toàn theo kiến thức mà các thành viên học được trên
trường, thông qua quá trình nghiên nghiên cứu…
2.2. Hệ xe một bánh tự cân bằng
2.2.1. Mô hình hóa hệ con lắc ngược
Để dễ dàng trong việc mô hình hóa hệ thống, ta sẽ sử dụng phương pháp
Lagrange, nhưng trước hết chúng ta phải định nghĩa các ký hiệu của hệ thống như hình
bên dưới:

7
Hình 2.6. Ký hiệu của hệ con lắc ngược.

Bảng 2.1. Bảng giải thích các ký hiệu sử dụng trong mô hình con lắc ngược.
Kí hiệu Đơn vị Mô tả
x1 m Vị trí của robot theo trục x
x2 m Vị trí của trọng tâm robot theo trục x
z2 m Độ cao của trọng tâm thân robot
φ1 Độ Góc quay của bánh xe robot
ψ Độ Góc lệch của robot theo phương thẳng đứng
m1 kg Khối lượng của bánh xe
I1 kg.m2 Momen quán tính của bánh xe
l1 Khoảng cách từ tâm bánh xe đến trọng tâm dọc theo thân
m
robot
R1 m Bán kính của bánh xe
m2 kg Khối lượng của robot (ngoại trừ bánh xe)
I2 kg.m2 Momen quán tính của thân robot

Đầu tiên ta có thể viết x , x , z , x , x , như sau [6]:


1 2 2 1 2
z2

x1  R1φ1 (2.1) x1  R1φ1 (2.2)

x2  R1φ1  l sinψ (2.3) x2  R1φ1  lψ cosψ (2.4)

z2  R1  l cosψ (2.5) z2  lψ sinψ (2.6)

8
Bây giờ chúng ta sử dụng phương pháp Lagrange để tìm các phương trình động
học của hệ thống [7].
L(q, q)  Ek (q, q)  Ep (q, q) (2.7)
d  ∂ L  ∂ L
dt ∂ q ∂ q  iτ (2.8)
 i i

Trong đó, τ i i 1, là lực tổng quát tác động lên tọa độ tổng quát qi tương
, 2,3...n
ứng, L ,
Ek , E p lần lượt là toán tử Lagrangian, tổng động năng và tổng thế năng của hệ
thống
Tiếp theo, chúng ta có thế năng E p (xem thế năng tại điểm cân bằng là 0) như

tổng sau [6]:


Ep  m1 gR1  m2 g(R1  l cosψ )  m2 g(R1  l) (2.9)
Tuy nhiên, thế năng tại trục bánh xe rất nhỏ so với thế năng tại trọng tâm con lắc
(V1  V2 ) nên ta có thể bỏ qua thế năng tại trục bánh xe để đơn giản các bước tính
toán
bên dưới. Vậy ta có thể viết lại (2.9) như sau:

Ep  m2 g(R1  l cosψ )  m2 g(R1  l)  m2 gl(cosψ 1) (2.10)

Và động năng tổng E :


k

1 1 1 1 ˙ 2
E  m x2  I φ 2 mx 2  m z c  1 Iθ 2

k
2
w
2
w 2 c 2 2
1 1
 I  m R  mR φ  mRL cosθφθ  I  mL2 θ 2
2 2 2

w w
2 2
1 1 1 1 1
E  mx2 Iφ2 m x2 m z 2 Iψ2
k 1 1 1 1 2 2 2 2 2
12 2 2 2 2 1
  I  m R 2
 m R 2
 φ 2
 m R l cos θφψ   I  m l 2 ψ 2
1 1 1 2 1 1 2 1 1 2 2
2 2
Đa thức Lagrangian L là sự chênh lệch của động năng và thế năng của hệ thống:
L  Ek  Ep
1 1
 
I  m R 2  m R 2 φ 2  m R l cosψφψ  
I  m l 2 ψ 2  m gl(cosψ 1)  
1 1 1 2 1 1 2 1 1 2 2 2
2 2
Bây giờ, ta có thể tìm được phương trình động học của hệ thống lần lượt theo tọa
độ φ1 và ψ như sau:

9
d  ∂  ∂
dt ∂φ ∂φ  μ (2.11)
 1 1

d  ∂  ∂
dt ∂ψ ∂ψ  χ (2.12)
 

Phân tích lần lượt các thành phần trong hai phương trình trên:
d ∂ 
  I  m R 2  m R 2 φ  m R l cosψψ  m R l sinψψ 2
  1 1 1 2 1 1 2 1 2 1
(2.13)
dt  ∂φ1 

0
(2.14)
∂φ
d ∂ 
  I  m l 2 ψ
  2 2
(2.15)
dt  ∂ψ 

 m R l sinψφψ  m gl sinψ
2 1 1 2
(2.16)
∂ψ

Thay (2.13), (2.14), (2..15) và (2.16) vào (2.11) và (2.12) ta được:


d ∂  ∂
   I  m R 2  m R 2 φ  m R l cosψψ  m R l sinψψ 2  μ
  1 1 1 2 1 1 2 1 2 1
(2.17)
dt  ∂φ1  ∂φ1
d ∂  ∂
   I  m l 2 ψ  m R l cosψφ  m gl sinψ  χ
  2 2 2 1 1 2
(2.18)
dt  ∂ψ  ∂ψ

Với μ và χ lần lượt là momen tác động lên các tọa độ tương ứng và ψ . Các
φ1
momen này là tổng tất cả các momen tác động bao gồm momen do động cơ tạo ra τ 0 và
momen hao phí (do ma sát giữa nền và bánh xe τ
bg
và trên trục động cơ τ ax ) nên ta có

thể tìm được như sau [6]:

μ  τ 0 τax τ bg
 μ  τ 0  βax (φ1 ψ )  βbgφ1 (2.19)
 μ  τ 0  (βax  βbg )φ1  βaxψ

χ  τ 0 τ ax
(2.20)
 χ  τ 0  βax (φ1 ψ )

Trong đó, β và βbg là các hệ số ma sát tương tương ứng.


ax

10
Thay (2.19) vào (2.17) ta có:

I  m R
1 1 1
2
 m2 R1 2 1  m2 R1 l cosψψ  m2 R1 l sinψψ 2  0  β β ψ
τ (β ax
)φ bg 1 ax

φ
  I  m R 2  m R 2 φ  m R l cosψψ  (β  β )φ
1 1 1 2 1 1 2 1 ax bg 1
(2.21)
(m2 RL sinψψ  βax )ψ  τ0

11
Tương tự, thay (2.20) vào (2.18):

 I  m l ψ  m R l
2 2
2
2 1 1  m2 gl sinψ  τ0  ax (φ1 ψ )
cosψφ β

 2 2

 I  m l 2 ψ  m R l cosψφ  β φ  β ψ  m gl sinψ  τ
2 1 1 ax 1 ax 2 0 (2.22)
Để tiện cho việc quan sát, ta có thể viết các phương trình động học của hệ thống
dưới dạng ma trận:

I 1  (m1  m2 )R1 2 m2R1l cosψ  φ1  βax  βbg m2R1l sinθθ  βax  φ1 
 m R l cosψ
2 1
I 2  m2 l 2  ψ   β ax βax  ψ 
(2.23)
 0   1  0
 m gl sinψ  1 τ
 2   

2.2.2. Mô hình hóa hệ con lắc bánh đà


Khi nhìn vào trục roll của robot, ta có thể dễ dàng thấy đây là hệ con lắc ngược
bánh đà với trục quay là điểm tiếp xúc giữa bánh xe và mặt đất. Hệ này hoạt động dựa
trên nguyên lý bảo toàn momen động lượng, khi không có tín hiệu điều khiển, con lắc
sẽ ngã xuống, yêu cầu đặt ra là điều khiển tốc độ đảo chiều bánh xe liên tục để tạo ra
momen xoắn triệt tiêu với momen do nhiễu gây ra giữ cho con lắc không bị ngã xuống.
Để thực hiện được việc này, vấn đề đặt ra là thiết kế bộ điều khiển với tín hiệu đầu ra
là điện áp điều khiển đối tượng.

Hình 2.7. Ký hiệu của hệ con lắc bánh đà.

Bảng 2.2. Bảng giải thích các ký hiệu sử dụng trong mô hình con lắc bánh đà.

12
Kí hiệu Đơn vị Mô tả
y3 m Vị trí của trọng tâm robot theo trục y
z3 m Độ cao của trọng tâm robot theo trục x
y4 m Vị trí của trục bánh đà theo trục y
z4 m Độ cao của trục bánh đà theo trục z
φ2 Độ Góc quay của bánh đà
θ Độ Góc lệch của robot theo phương trái – phải
m3 kg Khối lượng của cả robot
I3 kg.m2 Momen quán tính của robot với điểm quay là điểm tiếp đất
l3 m Khoảng cách điểm tiếp đất đến trọng tâm của robot
R2 m Bán kính của bánh đà
m4 kg Khối lượng của bánh đà
I4 kg.m2 Momen quán tính của bánh đà với trục quay là tâm của nó
l4 m Khoảng cách điểm tiếp đất đến tâm bánh đà

Đối với hệ này, ta cũng có thể tìm các phương trình động học của hệ thống tương
tự như ở hệ con lắc ngược ở trên [3].

y3  l3 sinθ (2.24) y3  l3θ cosθ (2.25)

z3  l3 cosθ (2.26) z3  l3θ sinθ (2.27)

y4  l4 sinθ (2.28) y4  l4θ cosθ (2.29)

z4  l4 cosθ (2.30) z4  l4θ sinθ (2.31)

Tiếp theo, ta có tổng thế năng của hệ thống P :


rwip

P3  m3 gz3  m3 gl3 cosθ (2.32)


P4  m4 gz4  m4 gl4 cosθ (2.33)
Prwip  P3  P4  (m3l3  m4l4 )g cosθ (2.34)
Và tổng động năng của hệ con lắc bánh đà K :
rwip

1 1 1
K  m y 2
 z2  Iθ2 m l 2
I θ 2
(2.35)
3 3 3 3 3 3 3 3
2 2 2
1 1 1 1
y  θ  φ  θ 
2
K  m 2
z 2
I  m l2θ 2  I 2
 φ 2  2θφ (2.36)
4 4 4 4 4 2 4 4 4 2 2
2 2 2 2

13
Krwip  K3  K4
1 1 1
  
m l 2  I θ 2  m l 2θ 2  I θ 2  φ 2  2θφ   (2.37)
3 3 3 4 4 4 2 2
2 2 2
1 1
 m l 2
ml2I I θ 2
 I φ 2  I θφ
3 3 4 4 3 4 4 2 4 2
2 2
Toán tử Largragian 𝔏:
L = Krwip  Prwip
1 1 (2.38)
 
ml2ml2I I θ 2
 I φ 2  I θφ  (m l  m l )g cosθ
3 3 4 4 3 4 4 2 4 2 3 3 4 4
2 2
Sử dụng phương trình Largange cho hai gốc tọa độ tổng quát θ và φ2 ta có:

d  ∂  ∂
dt ∂θ  ∂θ  βθ θ (2.39)
 
d ∂  ∂
   τ  β φ2
(2.40)
dt ∂φ ∂φ 2 φ2
 2 2

Với βθ , β và τ lần lượt là hệ số ma sát giữa điểm tiếp xúc bánh xe và mặt đất,
2
φ2
hệ số ma sát trên trục động cơ bánh đà và momen do động cơ bánh đà tạo ra.
Phân tích lần lượt các thành phần tương tự như đã làm ở hệ con lắc ngược và
thay vào (2.39), (2.40) ta được:
m l 2
 m l 2  I  I θ  I φ  m l  m l   g sinθ  (2.41)
βθθ (2.42)
3 3 4 4 3 3 4 2 3 3 4 4

I4 (θ φ2 )  τ2  βφ2 φ2

2.2.3. Tuyến tính hóa hệ thống


Như vậy, ở phần trên ta đã tìm ra được các phương trình toán học miêu tả hệ
thống xe tự cân bằng một bánh. Tuy nhiên, các phương trình này là các phương trình
phi tuyến, để giải được các phương trình này thì chúng ta phải tuyến tính hóa hệ thống
xung quanh điểm làm việc. Ở đây, hệ thống xe tự cân bằng một bánh chỉ hoạt động
quanh một phạm vi rất nhỏ (quanh vị trí thẳng đứng), nghĩa là θ  0, ψ  0 . Trong
phạm vi này, ta có giả
sử rằng cosθ 1, sinθ  0, cosψ 1, sinψ  [3]. Vì vậy ta có thể viết lại cái phương
0
trình (2.21), (2.22), (2.41) và (2.42) như sau:
 I  m R  m R  φ  m R l ψ  (β  β )φ  β ψ  τ
1 1 1
2
2 1
2
1 2 1 ax bg 1 ax 0 (2.43)
 I  m l ψ  m R lφ  β φ  β ψ  m glψ  τ
2 2
2
2 1 1 ax 1 ax 2 0 (2.44)

14
m l
3 3
2
4 4 3 4

 m l 2  I  I θ  I φ  β θ  m l  m l
4 2 θ 3 3 4 4
 gθ  0 (2.45)
I4 (θ φ2 )  βφ2 φ2  τ2 (2.46)

15
Để tiện cho việc quan sát, ta có thể viết các phương trình động học của hệ thống
dưới dạng ma trận:
I   m )R 2 mR  φ  βax  βbg βax  φ1 
(m l 
1 1 2 1 2 1   1   

m2 R1l  m l ψ  βax βax  ψ 
2

I 2  2 
 0   1  1
 m gl ψ  1 τ
 2   
I m l 2  m l 2  I  I   φ  
βθ  φ2 
0
4 3 3 4 4 3 4 2
 
   
β
I4 I4   θ  φ2 0θ 

m3l3  m4l4  g  0
  θ  2 τ
0 1
   

2.3. Thành lập hệ phương trình không gian trạng thái (State Space)
2.3.1. Chuyển đổi tín hiệu điều khiển
Đầu tiên, ta phải chuyển đổi tín hiệu điều khiển từ mô-men sang điện áp. Mối
quan hệ giữa điện áp cấp động cơ và mô-men tác động được mô tả thông qua tỉ số
truyền động cơ như sau:

(U  Ke .φ)
τ  Kt Ia  Kt (2.47)
Ra  La
Với:
o K : hằng số momen
t

Ke : hằng số điện động


o I : dòng điện phần ứng
a

o
o U : điện áp
o Ra : điện trở phần ứng
o La : điện cảm phần ứng.
Tuy nhiên điện cảm của phần ứng nhỏ hơn rất nhiều so với điện trở phần ứng, nên
ta có thể bỏ qua giá trị điện cảm của phần ứng và viết lại như sau:

16
Kt Kt Ke
τ U φ (2.48)
Ra Ra
Như vậy bây giờ ta có các phương trình động học của hệ thống với tính hiệu điều
khiển là điện áp đặt vào động cơ:

17
 Kt Ke 
  βax  βbg β ax 
I  (m  m )R 2 m Rl  φ  R φ 
1 1 2 1 2 1 1
  a
 1
 m Rl I  m l 2ψ   KK  ψ 
  t e β β
2 1 2 2
 ax ax 
(2.49)
 Ra 
 Kt 
 0  R
 ψ   a U
 1
m gl K
 2   
 R 
t

 a

 0 βax 
I m l 2  m l 2  I  I   φ  φ 
4 3 3 4 4 3 4 2    θ 
2
   θ   Kt Ke  βφ 0
I4 I4     
 Ra 2

0
  m l  m l  g  (2.50)
  
θ  Kt U 2
3 3 4 4

0  
   R a 

Viết lại dạng ký hiệu để làm gọn hệ phương trình:


φ1  φ1 
E F  Gψ  HU
ψ  ψ  1 (2.51)
   
φ2  φ2 
K L  Mθ  NU
θ θ 2 (2.52)
   

Trong đó:
I  (m  m )R 2 m Rl  I m l 2
ml2I I
E 1 
1 2 1 2 1

 m R l
2 1
I 2
 m 2l 2 
4 3 3 4 4 3 4
 Kt Ke  K  
β β β I4 I4
 Ra ax bg ax 
F    
KK
 t e β β  0 βθ 
 Ra
ax ax   
  L KK
 0   t e β 2 0
G  m gl   Ra φ 
 2 
 Kt  m3l3  m4l4  g 
M 
 R   0 
H  
a

 Kt  0
 
 R  N K
 a  t
 R a 

18
2.3.2. Hệ phương trình không gian trạng thái
Đặt
xT φ ψ φ ψ φ θ φ θ là ma trận trạng thái của hệ thống, vậy ta

 1 1 2 2 
tìm được hệ phương trình không gian trạn thái của hệ thống:
x(t)  Ax(t)  Bu(t)
y(t)  Cx(t)  Du(t)

Trong đó:

0 0 1 0 0 0 0 0 
 
0 0 0 1 0 0 0 0 
0 (E G )
1 1
(E F ) 1
(E F ) 0 0 0 0 

 0 (E1G )11 (E1F )11 (E1F )12 0 0 0 0
A 
0 0 21 0 21 0 22 0 0 1 0
;
0 0 0 0 0 0 0 1 
0 0 0 0 1
0 (K M ) (K 1L) (K 1L)1 

0 0 0 0 0 (K 1M )11 (K 1L) 11 (K 1L) 2 
 21 21 22 

 0 0 
 
 10 0 
(E H ) 0 
 11

1
B  (E H ) 21 0  ;
0 0
 
 
 0 0 
0 (K 1N ) 
 11

 0 (K 1N 21 
)
R 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0
 0 0 0 0 0 0 0
0
 0 0 0 0 0 0 0
C  0 0 0 0 1 0 0 0 ;

0 0 0 0 0 1 0 0
 
0 0 0 0 0 0 0
0
0 0 0 0 0 0 0 0

 0
D0;
2.4. Giải thuật điều khiển LQR

19
Thiết kế bộ điều khiển tối ưu dựa trên phương pháp Linear Quadratic Regulator
hay còn gọi là phương pháp LQR.
Hệ thống được mô tả bằng phương trình trạng thái như sau:

20
x(t)  Ax(t)  Bu(t)
y(t)  Cx(t)  Du(t) (2.53)

Ở đây x(t) là vector trạng thái của hệ thống, u(t) là các vector tín hiệu điều khiển.

Mục tiêu là ta đi tìm ma trận K của vector điều khiển tối ưu:
u(t)  Kx(t) (2.54)
Muốn tìm được ma trận K ta cần phải căn cứ vào trạng thái hệ thống x(t) và tín
hiệu điều khiển u(t) .
Đi tìm ma trận K dựa trên chỉ tiêu chất lượng sao cho J đạt cực tiểu. J là một hàm
chi phí của phương pháp thiết kế bộ điều khiển tối ưu LQR được thể hiện qua công
thức sau:

J   (xTQx  uT Ru)dt (2.55)


0

Theo phương trình (3.55) trên. Để cho hàm chi phí J đạt cực tiểu thì ta phải chọn
ma trận Q và R dựa vào đặc tính hệ thống. Bằng cách giải phương trình Ricati để ta
tìm ra được ma trận K phù hợp giúp ổn định được hệ thống.
Phương trình Ricati như sau:

AT S  SA  SBR1BT S  Q  0 (2.56)
Nhóm đã lựa chọn tìm ma trận K bằng phần mềm Matlab giúp tiết kiệm thời gian
hơn. Dưới đây nhóm sẽ liệt kê các bước chính để tìm ma trận điều khiển K bằng
Matlab. Phần trình bày chi tiết về thiết kế bộ điều khiển sẽ được nhóm trình bãy cụ thể
ở chương 5 bên dưới.
 Bước 1: Mô tả hệ thống bằng phương trình trạng thái.
 Bước 2: Dựa vào phương trình mô tả trên tính toán các ma trận A và B.
 Bước 3: Rời rạc hệ thống.
 Bước 3: Lựa chọn ma trận Q và R phù hợp.
 Bước 4: Tìm ma trận K bằng Matlab thông qua câu lệnh
 lqr  A, B,Q, R
K

2.5. Giải thuật điều khiển PID


PID là một phương pháp điều khiển phản hồi phổ biến được sử dụng trong hệ
thống tự động. PID là viết tắt của Proportional-Integral-Derivative, và đây là ba thành
phần chính của thuật toán. Mục tiêu của thuật toán PID là duy trì một giá trị đầu ra
mong muốn (setpoint) thông qua điều khiển hệ số của ba thành phần này.

21
 Proportional (P): Độ lớn của thành phần này tỉ lệ thuận với sự chênh lệch giữa
giá trị đo được và giá trị setpoint. Nó tạo ra một tín hiệu điều khiển tỉ lệ với sự
sai lệch hiện tại.
 Integral (I): là tích phân của sai lệch. Điều khiển tích phân là phương pháp
điều chỉnh để tạo ra các tín hiệu điều chỉnh sao cho độ sai lệch giảm về 0. Từ
đó cho ta biết tổng sai số tức thời theo thời gian hay sai số tích lũy trong quá
khứ. Khi thời gian tích phân càng nhỏ thể hiện tác động điều chỉnh tích phân
càng mạnh, tương ứng với độ lệch càng nhỏ.
 Derivative (D): là vi phân của sai lệch. Điều khiển vi phân tạo ra tín hiệu điều
chỉnh sao cho tỉ lệ với tốc độ thay đổi sai lệch đầu vào. Thời gian càng lớn thì
phạm vi điều chỉnh vi phân càng mạnh, tương ứng với bộ điều chỉnh đáp ứng
với thay đổi đầu vào càng nhanh.
Thuật toán PID được biểu diễn qua công thức sau:
1
K (s)  k (1 τ s) (2.57)
PID c d
τi s
 Trong đó:
 kc : hệ số khuếch đại của bộ điều khiển.

 τ i : thời gian tích phân.

 τ d : thời gian vi phân.


2.6. Giải thuật điều khiển ANN
ANN (Artificial Neural Network) là một mô hình máy học được lấy cảm hứng từ
cách mà hệ thống thần kinh của con người hoạt động. ANN được thiết kế để nhận biết
mẫu, học từ dữ liệu, và thực hiện các nhiệm vụ thông minh mà không cần phải được
lập trình cụ thể cho từng nhiệm vụ.
Cấu trúc của ANN bao gồm các đơn vị xử lý thông tin được gọi là nơ-ron nhân
tạo, các liên kết giữa chúng có trọng số, và các lớp (layers) của nơ-ron. ANN thường
chia thành ba loại lớp chính:
 Lớp đầu vào (Input Layer): Nhận các tín hiệu đầu vào từ dữ liệu hoặc môi
trường.
 Lớp ẩn (Hidden Layers): Các lớp giữa đầu vào và đầu ra, nơi mà xử lý thông
tin và học diễn ra. Mỗi nơ-ron trong lớp này kết nối với tất cả các nơ-ron trong
các lớp liền kề.
 Lớp đầu ra (Output Layer): Tạo ra đầu ra của mô hình dự đoán dựa trên xử lý
thông tin từ các lớp trước đó.

22
Hình 2.8. Mô hình ANN đơn giản. [8]

Tùy theo cấu trúc mạng, người ta chia ra các loại mạng sau:
 Mạng một lớp là mạng chỉ gồm một lớp tế bào thần kinh xử lý.

Hình 2.9. Mạng thần kinh truyền thẳng một lớp. [9]

 Mạng nhiều lớp là mạng gồm nhiều lớp tế bào thần kinh xử lý.

Hình 2.10. Mạng thần kinh truyền thẳng ba lớp. [9]

 Mạng truyền thẳng là mạng mà trong đó tín hiệu chỉ truyền theo một chiều từ
ngõ vào đến ngõ ra.

23
Hình 2.11. Mạng thần kinh truyền thẳng một lớp và ba lớp. [9]

 Mạng hồi quy là mạng mà trong đó có tín hiệu hồi tiếp từ ngõ ra trở về ngõ vào.

Hình 2.12. Mạng thần kinh hồi quy nhiều lớp. [9]

Các phương pháp huấn luyện mạng ANN


Mạng ANN có hai kiểu học đó là:
 Học thông số (Parameter Learning): để cập nhật các trọng số liên kết giữa các
tế bào thần kinh trong mạng.
 Học cấu trúc (Structure Learning): để thay đổi cấu trúc mạng, bao gồm số tế
bào thần kinh và cách liên kết giữa chúng.
Đối với phương pháp học thông số thì có ba cách học như sau:
 Học giám sát (Supervised Learning): Là phương pháp phổ biến nhất trong
ANN. Mô hình được huấn luyện bằng cách sử dụng một tập dữ liệu đào tạo
có cặp đầu vào và đầu ra đã biết trước. Mục tiêu là để mô hình học mối
quan hệ giữa các đầu vào và đầu ra để có thể dự đoán đầu ra mới cho các
đầu vào chưa biết.
 Học không giám sát (Unsupervised Learning): Trong trường hợp này, mô
hình được huấn luyện trên dữ liệu không có nhãn hoặc đầu ra đã biết trước.
Mục tiêu là để mô hình tự động tìm ra các cấu trúc hoặc đặc trưng trong dữ
liệu, chẳng hạn như phân cụm hoặc biểu diễn biểu đồ của dữ liệu.

24
 Học tăng cường (Reinforcement Learning): Mô hình học từ môi trường qua
thời gian thông qua việc tương tác với môi trường và nhận phản hồi theo
thời gian. Mục tiêu là tối ưu hóa một hàm thưởng hoặc chi phí thông qua
các hành động.

25
CHƯƠNG 3. TRIỂN KHAI XÂY DỰNG MÔ HÌNH THỰC NGHIỆM

3.1. Xây dựng mô hình phần cứng


3.1.1. Phát triển mô hình 3D
Như đã đề cập trước đó, nhóm đã tận dụng mô hình có sẵn của tác giả ReM-RC
để tiết kiệm thời gian thực hiện đề tài, tập trung vào giải thuật điều khiển hệ thống.
Tuy nhiên mô hình này chỉ phù hợp với các thông số của động cơ và thiết bị mà tác giả
sử dụng.
Vậy nên nhóm đã tiến hành chỉnh sửa và bổ sung một số chi tiết để phù hợp với
các thiết bị mà nhóm đã chuẩn bị cũng như tăng tính thẩm mỹ cho mô hình.

Hình 3.1. Mô hình 3D trên phần mềm Inventor.

3.1.2. Sơ đồ khối phần cứng

Hình 3.2. Sơ đồ khối của hệ thống.

Chức năng của các khối:

26
 MCU: Khối điều khiển toàn bộ hệ thống
 BLDC Driver: Board driver điều khiển động cơ BLDC được tích hợp sẵn trên
MCU.
 BLDC Roll: Động cơ BLDC điều khiển bánh đà
 BLDC Pitch: Động cơ BLDC điều khiển bánh xe
 Encoder Roll: Encoder đo tốc độ của động cơ BLDC Roll gửi về MCU
 Encoder Pitch: Encoder đo tốc độ của động cơ BLDC Pitch gửi về MCU
 MPU6050: Module cảm biến gia tốc và tốc độ góc
 Module Bluetooth: Module thu nhận dữ liệu giữa MCU và điện thoại – máy tính
 Mobile phone – PC: Điều khiển và thu thập dữ liệu hệ thống.
3.1.3. Lắp đặt và hoàn thiện phần cứng

Hình 3.3. Các bộ phận của robot được in 3D.

Sau khi in 3D, chúng ta tiến hành kết nối các phần của robot lại với nhau bằng ốc
vít một cách chắn chắn.

27
Hình 3.4. Lắp encoder vào khung.

Hình 3.5. Lắp động cơ và MPU6050.

Hình 3.6. Đặt nam châm vào trục động cơ.

Khi lắp đặt động cơ thì ta cần lưu ý phải đặt nam châm vào trục của động cơ rồi
sau đó mới có thể lắp cảm biến encoder AS5600 vào. Thì lúc này cảm biến và động cơ
mới có thể hoạt động được.

28
Hình 3.7. Lắp bánh xe vào động cơ.

Ở bước này, chúng ta cần phải lắp đặt cẩn thận sao cho bánh xe phải song song
với động cơ và khung robot để đảm bảo việc di chuyển tới lui không bị lệch trọng tâm
robot làm ảnh hưởng đến hoạt động cân bằng theo phương ngang (trái – phải).

Hình 3.8. Lắp thêm ốc vít vào các bánh đà.

Vì bánh đà được in bằng chất liệu nhựa nên sẽ khá nhẹ. Nên ta cần lắp thêm ốc –
vít để tăng khối lượng cũng như momen quán tính của bánh đà. Lưu ý phân bố đều ốc
– vít trên toàn bánh đà, tránh tình trạng bánh đà mất cân đối khi quay.
Cuối cùng, ta tiến hành cố định các phần còn lại với nhau.

29
Hình 3.9. Robot sau khi được lắp đặt hoàn tất (nhìn trực diện).

30
Hình 3.10. Robot sau khi lắp đặt hoàn thiện (nhìn từ bên phải).

31
Hình 3.11. Robot sau khi lắp đặt hoàn thiện (nhìn từ bên trái).

Để cho việc triển khai, điều chỉnh thông số của bộ điều khiển dễ dàng và không
làm cho robot bị ngã gây hư hỏng phần cứng, nhóm đã tiến hành thiết kế thêm hai giá
đỡ cho từng trục của robot. Tuy nhiên, việc thiết kế hai giá đỡ này phải đảm bảo không
ảnh hưởng quá lớn đến hệ thống.
Cụ thể, khi điều chỉnh thông số của trục Roll ta cần khóa trục Picth của robot lại
bằng giá đỡ gắn kèm như hình bên dưới.

32
Hình 3.12. Robot được gắn kèm giá đỡ trục Pitch.

Tượng tự đối với trục Pitch.

33
Hình 3.13. Robot được gắn kèm giá đỡ trục Pitch.

3.2. Các thiết bị và giải thuật đo lường được sử dụng


3.2.1. Cảm biến MPU6050 và bộ lọc bù
3.2.1.1. Cảm biến MPU6050
MPU6050 là cảm biến dùng để giám sát thiết bị chuyển động được thiết kế với
mức tiêu thụ năng lượng thấp, chi phí thấp và hiệu suất cao của hãng TDK
InvenSense. MPU6050 được tích hợp một con quay hồi chuyển 3 trục và một gia tốc
kế 3 trục, cùng với bộ xử lý chuyển động kỹ thuật số DMP. Cảm biến này có thể kết
nối với các cảm
biến khác thông qua chuẩn I 2C .
Để theo dõi chính xác cả chuyển động nhanh và chậm, con quay hồi chuyển có dải
thang đo đầy đủ là ±250, ±500, ±1000 và ±2000 °/s (dps) và dải thang đo đầy đủ của gia

34
tốc kế do người dùng lập trình là ±2g, ±4g, ±8g và ±16g. Các tính năng bổ sung bao
gồm cảm biến nhiệt độ nhúng và bộ tạo dao động trên chip với độ biến thiên ±1%
trong phạm vi nhiệt độ hoạt động.

Hình 3.14. Thông tin chi tiết cảm biến MPU6050.


Nguyên lý hoạt động của con quay hồi chuyển và gia tốc kế trong cảm biến MPU 6050:

Con quay hồi chuyển:


 Con quay hồi chuyển hoạt động dựa trên hiệu ứng Coriolis, về cấu tạo nó được
chia thành 4 phần như hình bên dưới, chúng được duy trì dao động liên tục để
tương tác với lực Corioli nhằm phát hiện sự thay đổi điện dung bên trong từ đó
đo được giá trị góc thay đổi.
 Hiệu ứng Coriolis phát biểu rằng: khi một vật m chuyển động theo một hướng
cụ thể với một vận tốc v và tốc độ góc ω thì lực Coriolis sẽ được tạo ra và có
phương vuông góc với mặt phẳng tạo bởi v và ω .
 Theo như hình 3.15 bên dưới con quay hồi chuyển gồm 4 phần M1, M2, M3,
M4. Hình 3.16, 3.17 và 3.18 thể hiện nguyên lý hoạt động của con quay hồi
chuyển ở 3 trục là Roll, Pitch và Yaw. ở trục Roll thì M1 và M3 của con quay
hồi chuyển chuyển động lên xuống quanh trục X, đối với trục Pitch thì M2 và
M4 chuyển động lên xuống quanh trục Y và với trục Yaw thì M2, M4 chuyển
động qua lại xung quanh trục Z.

Hình 3.15. Con quay hồi chuyển gồm 4 phần M1, M2, M3, M4 [10].

35
Hình 3.16. M1, M3 chuyển động xung quanh trục X [10].

Hình 3.17. M2, M4 chuyển động xung quanh trục Y [10].

Hình 3.18. M2, M4 chuyển động qua lại quanh trục Z [10].

 Khi hiệu ứng Coriolis được phát hiện, chuyển động của các phần M1, M2,
M3, M4 sẽ gây ra sự thay đổi điện dung. Sự thay đổi đó được phát hiện bởi
cấu trúc cảm biến và chuyển đổi thành tín hiệu điện áp.

36
Hình 3.19. Con quay hồi chuyển dưới kính hiển vi [10].

Gia tốc kế: Gia tốc kế được cấu tạo gồm 5 thành phần chính được thể hiện như
hình bên dưới. khi cảm biến chuyển động thì có sự chênh lệch giá trị điện dung giữa
phần chuyển động (Suspended mass) được gắn với lò xo Polysilicon và phần cố định
(fixed plates) cảm biến sẽ xử lý sự chênh lệch đó và chuyển đổi thành tín hiệu điện áp
đầu ra dạng tương tự.

Hình 3.20. Cấu trúc của gia tốc kế [10].

Hình 3.21. Hình ảnh thực tế cảm biến MPU6050-GY521.

Cụ thể các chân như sau:

37
 VCC: chân cấp nguồn cho mạch, điện áp sử dụng từ +3VDC đến +5VDC.
 GND: Chân nối đất.
 SCL: Chân clock để đồng bộ hoạt động giữa MPU6050 và vi điều khiển.
 SDA: chân giao tiếp dữ liệu giữa MPU6050 và vi điều khiển.
 XDA: chân kết nối dữ liệu với các cảm biến bên ngoài.
 XCL: chân clock kết nối với các cảm biến bên ngoài.
 ADD/AD0: chân địa chỉ, chân này cho phép thay đổi địa chỉ của MPU6050
bằng cách kết nối với các mức logic giúp kết nối nhiều cảm biến MPU6050
trên cùng một bus I2C.
 INT: chân ngắt, được sử dụng để thông báo cho vi điều khiển khi có dữ liệu
mới hoặc khi xảy ra sự kiện quan trọng.
Nhóm sử dụng cảm biến MPU6050 cho mô hình với mục đích để đo góc nghiêng
của robot.
3.2.1.2. Bộ lọc bù (Complementary filter)
Đối với mô hình robot một bánh tự cân bằng này thì điều quan trọng là cần phải
thu thập dữ liệu từ cảm biến chính xác nhất. Khi đọc trực tiếp dữ liệu từ cảm biến kết
quả trả về có xuất hiện nhiễu trong đó, dữ liệu không chính xác dẫn đến cân bằng robot
khó khăn. Để xử lý điều này chúng ta phải tiến hành lọc nhiễu dữ liệu từ cảm biến
trước khi sử dụng dữ liệu đó thực hiện các mục đích tính toán tiếp theo.
Có nhiều phương pháp để lọc dữ liệu, ở đây nhóm chọn sử dụng bộ lọc bù
(Complementary Filter) xử lý dữ liệu vì cách triển khai đơn giản nhưng không kém
phần hiệu quả.
Bộ lọc bù là một phương pháp đơn giản nhưng hiệu quả. Bộ lọc này được sử
dụng để cải thiện độ chính xác và ổn định dữ liệu đo từ cảm biến. Phương pháp này
phù hợp cho các ứng dụng cần độ chính xác tương đối cao, nhưng không yêu cầu tính
toán phức tạp như bộ lọc Kalman.
Cơ bản, bộ lọc bù là sự kết hợp của hai bộ lọc: bộ lọc thông cao cho con quay hồi
chuyển và bộ lọc thông thấp cho gia tốc kế. Ý tưởng chính là ước tính hướng quay của
thiết bị bằng cách kết hợp giữa dữ liệu gia tốc kế để ước tính góc nghiêng và dữ liệu từ
con quay hồi chuyển để ước tính góc quay.
Bộ lọc bù sử dụng trọng số (hay hệ số) khác nhau cho gia tốc kế và con quay hồi
chuyển để ước tính hướng quay của thiết bị. Trọng số này thường có giá trị từ 0 đến 1,
và tổng của chúng thường bằng 1. Trong thực tế, việc chọn trọng số phụ thuộc vào
nhiều yếu tố như độ nhạy cảm của cảm biến, tần số lấy mẫu, …

38
Hình 3.22. Sơ đồ mô tả bộ lọc bù.

 Công thức tính góc:

accel (1 - ) gyro (3.1)


 Trong đó:
  : góc tính toán được.
 accel : góc đo được từ gia tốc kế.

 gyro : góc đo được từ con quay hồi chuyển.

  : trọng số cho gia tốc kế.


 (1 ) : trọng số cho con quay hồi chuyển.
Quá trình tính toán đó được lặp lại liên tục theo tần suất lấy mẫu. Mỗi lần lặp lại,
bộ lọc bù sẽ cập nhật góc ước tính dựa trên dữ liệu mới từ cảm biến gia tốc kế và con
quay hồi chuyển, giúp cải thiện độ chính xác và ổn định của kết quả.
3.2.2. Cảm biến AS5600
Cảm biến AS5600 là một cảm biến góc quay từ tính (magnetic rotary position
sensor) dễ lập trình với đầu ra PWM hoặc analog 12-bit có độ phân giải cao hoạt động
dựa trên nguyên lý của hiệu ứng Hall. Hỗ trợ chuẩn giao I 2C giúp cho lập trình đơn
tiếp giản hơn.
Khi hoạt động cảm biến chuyển đổi từ trường phát hiện được thành tín hiệu điện
áp, sau đó tín hiệu điện áp sẽ được khuếch đại và lọc trước khi được chuyển đổi từ
dạng tương tự sang dạng số. Sau khi được chuyển đổi tín hiệu sẽ được xử lý bởi khối
CORDIC (Coordinate Rotation Digital Computer) để tính toán giá trị góc và độ lớn
của vector từ trường. Giá trị góc sau khi được tính toán người dùng có thể sử dụng
bằng cách lựa chọn đầu ra dạng tương tự (analog) hoặc dạng PWM.

39
Hình 3.23. Sơ đồ khối cảm biến AS5600.

Trong mô hình, nhóm lựa chọn module cảm biến AS5600 DIY để dễ dàng trong
việc lắp đặt và đọc dữ liệu từ cảm biến.

Hình 3.24. Module cảm biến AS5600 sử dụng trong mô hình.

3.2.3. Mạch điều khiển BGC 3.1


Mạch điều khiển BGC 3.1 là một sản phẩm của hãng BaseCam chuyên dùng để
điều khiển đông cơ không chổi than (BLDC) trên gimbal (thiết bị chống rung cho
camera), phiên bản 3.1 tích hợp sẵn driver điều khiển 02 động cơ BLDC được đặt tên
là Roll và Pitch. Nó còn tích hợp sẵn jack kết nối I2C để giao tiếp với cảm biến
MPU6050.

40
Hình 3.25. Mạch BGC 3.1 tích hợp cảm biến MPU6050.

Bảng 3.1 Thông số kỹ thuật của mạch BGC 3.1 [11]


Vi xử lý trung tâm Atmega328P
Chế độ driver MOS
Kích thước mạch 5.1x5.1cm
Dòng điện cực đại 10A
Driver điều khiển động cơ 2
Hỗ trợ số động cơ mắc nối tiếp 2-8
Mạch điều khiển này sử dụng chip Atmega328P làm bộ xử lý trung tâm. Sau đây
chúng ta cùng tìm hiểu một số đặc điểm của chip Atmega328P.

Hình 3.26. hình ảnh thực tế chip Atmega328P.

 ATmega328P là một bộ vi điều khiển tiên tiến và nhiều tính năng nó là một bộ
vi điều khiển thuộc họ vi điều khiển megaMVR của Atmel.
 Mạch bên trong của ATmega328P được thiết kế với tính năng tiêu thụ dòng
điện thấp. Chip này chứa 32 kilobyte bộ nhớ flash trong, 1 kilobyte EEPROM
và 2 kilobyte SRAM. EEPROM và bộ nhớ flash là bộ nhớ lưu thông tin và
thông tin đó vẫn thoát ra mỗi khi nguồn điện bị ngắt nhưng SRAM là bộ nhớ
chỉ lưu

41
thông tin cho đến khi có điện và khi ngắt nguồn điện tất cả thông tin được lưu
trong SRAM sẽ bị xóa.
Bảng 3.2 Đặc tính /thông số kỹ thuật của Atmega328P [12].
Thông số Giá trị
Analog input 6
Flash 32 KB.
SRAM 2 KB.
EEPROM 1 KB.
Tốc độ xung nhịp 16 MHZ.
Dải nhiệt độ hoạt động -400C đến 1500C.
I/O digital 14
Tổng số chân I/O 23
Bộ định thời 3(2 bộ 8bit và 1 bộ 16bit).
PWM 6
Dải điện áp hoạt động 1.8VDC đến 5.5VDC.
3.2.4. Động cơ BLDC và thư viện SimpleFOC
3.2.4.1. Động cơ BLDC
Động cơ nhóm sử dụng là Mitoot 2804/100T là loại động cơ một chiều không chổi
than thường được sử dụng trong các gimbal chống rung dành cho camera.

Hình 3.27. Hình ảnh động cơ thực tế.

Bảng 3.3. Bảng thông số kỹ thuật động cơ [13].


Thông số kỹ thuật Mitoot 2804/100T
Mã động cơ 22804/100T
Kích thước động cơ 34x15mm
Kích thước stator 28x4mm
Đường kính dây đồng 0.19mm
Cấu hình 12N14P
Điện trở 11.2 
Điện áp hoạt động 11.1 V – 14.8V
Dòng điện không tải 0.099A

42
Dòng diện cực đại 5A
Hệ số KV 147

3.2.4.2. Thư viện SimpleFOC


SimpleFOC (Simple Field Oriented Control) là một thư viện mã nguồn mở được
tác giả Antun Skuric và nhóm cộng sự viết. Nó dễ dàng được cài đặt trên các phần
mềm như: Arduino IDE, PlatformIO. Dễ dàng cài đặt và cấu hình để điều khiển động
cơ BLDC. Tương thích hầu hết các bo mạch phổ biến như: Arduino Uno, MEGA,
DUE,
…; STM32; ESP32; … Thông tin chi tiết về SimpleFOC được công khai trên trang
web: https://github.com/simplefoc/Arduino-FOC.
Thư viện SimpleFOC được các tác giả viết dựa trên phương pháp điều khiển
hướng từ trường, vì vậy chúng ta hãy tìm hiểu sơ về phương pháp này là gì.

Phương pháp FOC là biến đổi từ hệ trục tọa độ quay a,b, c sang hệ trục tọa độ
d  q để giúp cho quá trình điều khiển động cơ được dễ dàng hơn.

Việc mô tả động cơ trên hệ trục tọa độ d  q , chúng ta không còn quan tâm
đến từng dòng điện pha riêng lẻ nữa mà là toàn bộ vector không gian dòng
stator

của động cơ. Khi đó vector dòng stator sẽ gồm hai thành phần chính là: isd và
isq , isd
điều khiển từ thông rotor và điều khiển momen động cơ.
isq

Vậy tóm lại phương pháp này giúp điều khiển tốc độ động cơ thông qua điều khiển
hai phần tử của dòng điện stator là isd và isq .

3.2.4.3. Module bluetooth HC-05


Module Bluetooth HC-05 là một module Bluetooth thông dụng được sử dụng
trong ứng dụng giao tiếp không dây. HC-05 là một trong những module Bluetooth có
giá rẻ và phổ biến được sử dụng rộng rãi trong các dự án điện tử và robot.
HC-05 hỗ trợ chuẩn kết nối Bluetooth 2.0 và có khả năng hoạt động ở chế độ
Master hoặc Slave. Chế độ Master cho phép nó kết nối với nhiều thiết bị Slave, trong
khi chế độ Slave cho phép nó kết nối với một thiết bị Master. Với chuẩn kết nối UART
giúp giao tiếp với các vi điều khiển, Arduino, Raspberry Pi, … được dễ dàng.

43
Hình 3.28. Hình ảnh thực tế module Bluetooth HC-05.

44
Bảng 3.4. Bảng thông số kỹ thuật của mạch HC-05.
Thông số Mô tả
Kích thước 15.2x35.7x5.6mm.
Chuẩn Bluetooth Bluetooth 2.0 + EDR
Chế độ hoạt động Chế độ Slave hoặc Master
Chuẩn giao tiếp UART
Tần số hoạt động 2.4 GHz ISM band.
Tốc độ truyền dữ liệu 2.1 Mbps (max)
Khoảng cách hoạt động ~ 10m
Giao thức hỗ trợ Bluetooth SPP
1200, 2400, 4800, 9600, 19200, 38400,
Baudrate
57600, 115200
Điện áp hoạt động: 3.3VDC - 5VDC
3.2.5. Tính toán và đo đạc thông số của mô hình
Trong việc đo đạc các thông số như khối lượng hay khoảng cách, chúng ta có thể
dễ dàng thực hiện việc này một cách chính xác.

Hình 3.29. Khối lượng của toàn bộ robot.

45
Hình 3.30. Khối lượng của bánh đà.

Tuy nhiên, khi đối diện với việc đo đạc momen quán tính, tình hình hoàn toàn
khác. Tham số này đòi hỏi quá trình tính toán và đo lường phức tạp, bởi vì hình dạng
của robot là sự kết hợp của nhiều khối khác nhau. Do đó, nhóm sẽ áp dụng các công
thức tương đối để ước tính momen quán tính một cách chính xác vừa đủ để có thể mô
phỏng được hệ thống, cụ thể:
Đối với tham số của bánh xe và bánh đà, thì ta có thể xem nó giống như một khối
hình vành khăn và sử dụng công thức [14]:
Iyy  mr 2
(3.2)
Với m là khối lượng của khối, r là bán kính của khối.

46
Hình 3.31. Mô tả hình vành khăn và đặt gốc tọa độ.

Tương tự momen quán tính của toàn robot, ta dùng công thức tính momen quán
tính cho khối trụ tròn [15]:
 mr2 mL2 
I   (3.3)
 4 3 
Với m, L và r lần lượt là khối lượng, bán kính đáy, và khoảng cách của 2 đáy.

Hình 3.32. Mô tả hình khối trục tròn.

3.2.5.1. Các thông số của phần con lắc bánh ngược


Bảng 3.5. Bảng giá trị thông số của phần con lắc ngược.
Kí hiệu Giá trị Đơn vị Mô tả
m1 0,016 kg Khối lượng của bánh xe
-5
I1 1,96.10 kg.m2 Momen quán tính của bánh xe
Khoảng cách từ tâm bánh xe đến trọng tâm
l 0,063 m
dọc theo thân robot
R1 0,035 m Bán kính của bánh xe
m2 0,325 kg Khối lượng của robot (ngoại trừ bánh xe)
-4
I2 4.62.10 kg.m 2
Momen quán tính của thân robot

47
3.2.5.2. Các thông số của phần con lắc bánh đà
Bảng 3.6. Bảng giá trị thông số của phần con lắc bánh đà.
Kí hiệu Giá trị Đơn vị Mô tả
m3 0,341 kg Khối lượng của cả robot
Momen quán tính của robot với trục quay là
I3 1,12.10-3 kg.m2
điểm tiếp đất song song với bánh xe
Khoảng cách điểm tiếp đất đến trọng tâm
l3 0,098 m
của robot
R2 0,06 m Bán kính của bánh đà
m4 0,043 kg Khối lượng của bánh đà
Momen quán tính của bánh đà với trục quay
I4 1,55.10-4 kg.m2
là tâm của nó
l4 0,12 m Khoảng cách điểm tiếp đất đến tâm bánh đà
3.2.5.3. Các thông số của phần động cơ và các thông số khác
Đối với các hằng số của động cơ ta có thể tính toán dựa trên các công thức sau
[16]:
1
K  8,3. (3.4)
t
KV
3
K  .K (3.5)
e e
2
Còn đối với các hệ số ma sát thì đòi hỏi chúng ta phải có quá trình thực nghiệm
tính toán phức tạp để có được giá trị tương đối. Tuy nhiên ở phạm vi đề tài này nhóm
chỉ dừng lại việc ước lượng dựa trên các thực nghiệm có trước [17].
Bảng 3.7. Bảng giá trị thông số của động cơ và hệ số ma sát.
Kí hiệu Giá trị Đơn vị Mô tả
Ra 11,2 ohm Điện trở động cơ
KV 147 rpm/V Hằng số tốc độ
Kt 0,0564 Nm/A Hằng số momen
Ke 0,0488 Vs/rad Hằng số điện động (back emf)
Bax 0 - Hệ số ma sát trong trục động cơ
Bbg 0,0001 - Hệ số ma sát lăn giữa nền và bánh xe

48
CHƯƠNG 4. THIẾT KẾ BỘ ĐIỀU KHIỂN, MÔ PHỎNG VÀ ĐÁNH GIÁ
HỆ THỐNG TRÊN SIMULINK

4.1. Tính điều khiển được và tính quan sát được


Từ các ma trận A, B và C mà chúng ta đã xác định trong chương 3 cho hệ thống,
chúng ta có thể tạo ra các ma trận quan sát và ma trận điều khiển để kiểm tra khả năng
điều khiển và khả năng quan sát của hệ thống.
Để kiểm tra khả năng quan sát (observability) của hệ thống, ta tạo ma trận quan
sát (Observability matrix) bằng cách sắp xếp các ma trận A và C như sau:
 C 
 CA 
 
O   CA2  (4.1)
 
 
 CA 
n1
 
Ở đây, n là số biến trạng thái của hệ thống.
Kiểm tra tính hạng của ma trận O. Nếu hạng của O bằng số chiều của trạng thái,
hệ thống là quan sát được.
rank(O)  n (4.2)
Để kiểm tra tính điều khiển (controllability) của hệ thống, ta tạo ma trận điều
khiển (Controllability matrix) bằng cách sắp xếp các ma trận B, A như sau:

CONT  B AB A2B An1B (4.3)


Kiểm tra tính hạng của ma trận C. Nếu hạng của C bằng số chiều của trạng thái,
hệ thống là điều khiển được.
rank(CONT)  n (4.4)
Bằng cách thực hiện các bước này, ta có được hạng của ma trận điều khiển và ma
trận quan sát của hệ thống xe tự cân bằng một bánh là bằng 8 và cũng bằng với số biến
trạng thái của hệ thống là 8.
rank(CONT)  rank(O)  8 (4.5)
Vậy nên, hệ thống của chúng ta hoàn toàn có thể điều khiển được với 2 tính hiệu
điều khiển U1 , U và hoàn toàn có thể quan sát được 8 biến trạng thái của hệ thống.
2

49
4.2. Khảo sát hệ thống khi chưa có bộ điều khiển

Hình 4.1. Sơ đồ phỏng hệ thống khi chưa có bộ điều khiển trên Simulink.

Với A, B là các ma trận của hệ phương trình trạng thái ta đã tìm được ở chương
trước. Tuy nhiên để có thể quan sát được tất cả các biến trạng thái, ta phải thay đổi ma
trận C thành ma trận đơn vị. Và điều kiện đầu: φ1  φ2  φ1  φ2 ψ  θ ; ψ  θ  5 .

Bằng cách sử dụng Matlab để tính toán, ta có được các ma trận của hệ thống như
sau:

0 0 1 0 0 0 0 0 
 
0 0 0 1 0 0 0 0 
0 -569,3492 -3,3840 0,2835 0 0 0 0 
 
0 347,4490 1,5816 -0,1730 0 0 0 0
A  0 
0 0 0 0 0 1 0 
 
0 0 0 0 0 0 0 1 
0 0 0 0 0 -75,3897 -1,6415 0,0199 
 
0 0 0 0 0 75,3897 0,0491 -0,0199

 0
 0 
 0

 49,2337 0 

-23,0104 0  0, 0350 0 0 0 0 0 0 0
B    ; D  0
 0 0 1 0 0 0 0 0 
0 C; 0 0 0 0 0 1 0
0
0
0 0
 0   0 0 0 0 1 0 0 0
 0 33,5708
 
 0 -1,0043 

50
Hình 4.2. Đáp ứng của các thông số trục pitch khi chưa có bộ điều khiển.

51
Hình 4.3. Đáp ứng của các thông số trục roll khi chưa có bộ điều khiển.

Nhìn vào đáp ứng ở trên ta có thể thấy hệ thống hoàn toàn không ổn định nếu
không có bộ điều khiển, điều này đúng với thực tế.
4.3. Thiết kế bộ điều khiển LQR
4.3.1. Mô phỏng hệ thống ở miền liên tục
Trong phần này nhóm sẽ trình bày kết quả mô phỏng hệ thống ở miền liên tục
trên phần mềm Matlab/Simulink. Như đã đề cập ở chương 3, để tìm được các thông số
của bộ điều khiển LQR thì ta phải đi tìm nghiệm của phương trình Ricatti. Tuy nhiên,
ta có thể sử dụng MATLAB để thực hiện việc giải phương trình này. Vậy nên chúng ta
chỉ cần quan sát đáp ứng của hệ thống và lựa chọn hai ma trận Q và R một cách phù

52
hợp.

53
Hình 4.4. Sơ đồ mô phỏng hệ thống ở miền liên tục trên Simulink.

Ma trận Q, và R được lựa chọn ban đầu như sau:


1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0

Q 0 0 0 1 0 0 0 0
R1
0 0 0 1 0 0 0
; 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0

0 0 0 0 0 0 0 1
0

0

 Giá trị ban đầu được cho bởi ma trận như sau:
 π π 
initial_status  0 10 0 0 0 5.6 0 0
 
 180 180 

 Các giá trị ban đầu cho bởi ma trận trên tương ứng với các biến như sau:
π
x  0; psi  10 ; phi1_ dot  0; psi _ dot  0
180
π
phi2  0;theta  5.6 ; phi2 _ dot  0;theta _ dot  0
180

Chuyển các ma trận hệ thống thành hệ phương trình trạng thái bằng câu lệnh sau:
Gs  ss(A, B,C, D)

 Tiếp theo ta tính toán ma trận hồi tiếp K để điều khiển hệ thống. Nhóm đã sử
dụng Matlab để tính toán ra ma trận điều khiển K bằng câu lệnh:
K  lqr(Gs.a,Gs.b,Q, R)

 Tính toán bằng Matlab kết quả:

1 66, 7402 1, 3329 6, 0450 0 0 0 0 


K  0 0 0 1 805, 3235 1, 3137 93,8050 
0
54
 Kết quả mô phỏng:

Hình 4.5. Kết quả mô phỏng trục Pitch lần 1.

55
Hình 4.6. Kết quả mô phỏng trục Roll lần 1.

Theo kết quả mô phỏng ở trên ta nhận thấy, hai ma trận Q và R ta chọn ban đầu
đều không thể điều khiển được hệ thống. Tiếp theo ta tiếp tục điều chỉnh hệ số tương
ứng trong hai ma trận đó, tiến hành mô phỏng và kiểm chứng kết quả.
 Ma trận Q, R được lựa chọn lần 2 có thông số như sau:
2 0 0 0 0 0 0 0
 
0 2 0 0 0 0 0 0
0 0 1 0 0 0 0 0
 
Q   0 0 1 0 0 0 0
0
R5
0 0 0 1 0 0 0
; 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
 
 0 0 0 0 0 0 0 1  
0

0
56
 Ma trận điều khiển K như sau:
0, 6325 46, 2773 0, 7255 3, 6423 0 0 0 0 
 
K
51
 0 0 0 0 0, 4472 452, 7055 0, 6325 52, 61 

 Kết quả mô phỏng:

Hình 4.7. Kết quả mô phỏng trục Pitch lần 2.

57
Hình 4.8. Kết quả mô phỏng trục Roll lần 2.

Giá trị các biến ban đầu vẫn giữ nguyên như lần mô phỏng đầu tiên. Kết quả mô
phỏng lần này cho thấy ta lựa chọn ma trận Q và R đã giúp ổn định được hệ thống.
Tuy nhiên kết quả chưa được tốt, cụ thể ở trục Pitch giá trị x (vị trí của xe) ổn định sau
thời gian 3,5s. Ở trục Roll biến cần quan tâm nhiều nhất là theta thời gian ổn định của
nó là 1s đó là kết quả tương đối tốt. Mục tiêu mô phỏng là muốn thời gian ổn định của
biến x ngắn nhất. Vì thế ta tiếp tục điều chỉ các thông số tương ứng trong hai ma trận
Q và R để cho kết quả mô phỏng được tối ưu nhất.
Ma trận Q, R được lựa chọn lần 3 có thông số như sau:

58
0 10 0 0 0 0 0 0
 0 10 0 0 0 0 0 0
 0 0 1 0 0 0 0 0

 0 1 0 0 0 0 ;
Q0 0
R  100

0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1
0
  0 0 0 0 0 0 0 1

Ma trận điều khiển K như sau:
0, 3162 36, 3674 0, 3720 2, 4244 0 0 0 0 
K  0, 2082 27, 0454
 0 0 0 0 0,1 233,8085 

Kết quả mô phỏng:

Hình 4.9. Kết quả mô phỏng trục Pitch lần 3.

59
Hình 4.10. Kết quả mô phỏng trục Roll lần 3.

Sau khi điều chỉnh thông số tương ứng của hai ma trận Q và R ta được kết quả
mô phỏng tương đối tốt. Cụ thể, ở trục Pitch thời gian ổn định của biến x đã được cải
thiện với 2,65s. Ở trục Roll thì kết quả mô phỏng không có thay đổi nhiều so với lần 2,
thời gian ổn định của biến theta là 1,4s so với kết quả mô phỏng lần 2 thì có thể chấp
nhận được. Bộ thông số này là kết quả cuối cùng được nhóm lựa chọn cho hệ thống ở
miền liên tục.
Nhận xét: Hệ thống ở miền liên tục có thể ổn định được bằng việc lựa chọn hai
ma trận Q và R phù hợp. Muốn hệ thống ổn định nhanh thì ta cần lựa chọn thông số
tương ứng trong ma trận Q. Muốn quan tâm đến năng lượng hệ thống thì ta cần lựa
chọn thông số cho ma trận R phù hợp.
4.3.2. Mô phỏng hệ thống ở miền rời rạc
Trong phần này nhóm sẽ trình bày kết quả mô phỏng được của hệ thống ở miền
rời rạc trên Simulink. Các bước tiến hành cũng gần giống như khi mô phỏng ở miền
liên

60
tục, bước khác biệt ở đây là ta cần phải chuyển hệ phương trình trạng thái của hệ thống
từ miền liên tục sang rời rạc. Và nhóm chọn thời gian lấy mẫu là Ts = 4ms.

Hình 4.11. Mô phỏng hệ thống ở miền rời rạc trên Simulink.

 Dựa vào các kết quả tính toán ở miền liên tục, nhiệm vụ bây giờ ta sẽ phải
chuyển từ miền liên tục sang miền rời rạc bằng câu lệnh như sau trên Matlab:
Gd  c2d(Gs,Ts)

 Việc chuyển đổi đã xong. Bước tiếp theo là đi lựa chọn thông số cho hai ma trận
Qd Rd để tính toán ma trận hồi Kd điều khiển hệ thống.
và tiếp
 Ma trận
Qd và Rd được lựa chọn ban đầu như sau:
1 0 0 0 0 0 0 0

0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0

Q  0 0 0 1 0 0 0 0
Rd  1
0 0 0 1 0 0 0
; 0 0 0 0 1 0 0
d
0 0 0 0 0 0 1 0
 
0 0 0 0 0 0 1
0
0

0

 Tương tự như miền liên tục, giá trị ban đầu được cho bởi ma trận như sau:
 π π 
initial_status  0 10 0 0 0 5, 6 0 0
 
 180 180 

 Tiếp theo ta tính toán ma trận hồi tiếp Kd để điều khiển hệ thống. Nhóm đã sử
dụng Matlab để tính toán ra bằng câu lệnh:
Kd  dlqr(Gd.a, Gd.b, Qd , Rd )
Kr  Kd

61
 Tính toán bằng Matlab kết quả:

62
0,8635 60,1251 1,1622 5, 3434 0 0 0 0 
K 
r  0 51 86, 3900
 0 0 0 0, 9047 741,8037 1,19 

 Kết quả mô phỏng:

Hình 4.12. Kết quả mô phỏng miền rời rạc trục Pitch lần 1.

63
Hình 4.13. Kết quả mô phỏng miền rời rạc trục Roll lần 1.

Cũng tương tự như miền liên tục, khi ta lựa chọn hai ma trận Qd và là những
Rd
ma trận đơn vị thì không thể ổn định được hệ thống. Ta sẽ đi điều chỉnh các thông số
tương ứng của hai ma trận để tìm ra ma trận điều khiển giúp ổn định được hệ thống.
 Ma trận và được lựa chọn lần 2 có thông số như sau:
Qd Rd

64
10 0 0 0 0 0 0 0

0 10 0 0 0 0 0 0 
0 0 1 0 0 0 0 0


Q 0 0 0 1 0 0 0 0
Rd  100
0 0 0 1 0 0 0
; 0 0 0 0 10 0 0 
d
0
 0 0 0 0 0 1 0 
0 0 0 0 0 0 0 10
0

 0

 Ma trận điều khiển K r như sau:


0, 2934 34, 9558 0, 3508 2, 3188 0 0 0 0 
Kr  0 0 0 0 0, 0960 288, 5330 0, 2021 26, 4352
 

 Kết quả mô phỏng:

65
Hình 4.14. Kết quả mô phỏng miền rời rạc trục Pitch lần 2.

66
Hình 4.15. Kết quả mô phỏng miền rời rạc trục Roll lần 2.

Quan sát hình vẽ, ta lựa chọn hai ma trận lần nãy đã giúp ổn định được hệ thống.
Kết quả ở trục Pitch thời gian ổn định của biến x là 2,5s. Trên trục Roll thời gian ổn
định của biến theta là 3s. Tuy nhiên ta tiếp tục lựa chọn hai ma trận để giúp điều khiển
hệ thống tối ưu nhất.
 Ma trận và được lựa chọn lần 3 có thông số như sau:
Qd Rd

67
100 0 0 0 0 0 0 0 
0 100 0 0 0 0 0 0
 
 0 0 10 0 0 0 0 0
0 0 0 1 0 0 0 0
Q  ; Rd  250
d  0 0 0 0 1 0 0 0
 
 0 0 0 0 0 20 0 0
 0
 0 0 0 0 0 0 1 
 0 0 0 0 0 0 0 10

 Ma trận điều khiển K r như sau:


0, 5837 
K 
r  0 38, 5800 0, 5109 2, 7637 0 0 0 0 80
 
0 0 0 0, 0609 207, 3333 0,1607 23,
95
 Kết quả mô phỏng:

Hình 4.16.Kết quả mô phỏng miền rời rạc trục Pitch lần 3.

68
Hình 4.17.Kết quả mô phỏng miền rời rạc trục Roll lần 3.

Qua kết quả mô phỏng lần này, Trên trục Pitch thời gian ổn định của biến x là 2s
đã cải thiện hơn lần mô phỏng thứ hai. Đối với trục Roll thì kết quả mô phỏng không
khác nhiều so với lần thứ hai. Kết quả này được nhóm sử dụng cuối cùng cho mô
phỏng hệ thống ở miền rời rạc.
 Kiểm chứng tính ổn định của hệ thống ghi mô phỏng với nhiễu tác động

69
Hình 4.18. Mô phỏng hệ thống ở miền rời rạc với nhiễu tác động

 Ma trận nhiễu được cho như sau:


Variance 
 103 103 0 0 103 103 0 0

 Kết quả mô phỏng:

Hình 4.19. Kết quả mô phỏng trục Pitch của hệ thống ở miền rời rạc khi có nhiễu tác
động.

70
Hình 4.20. Kết quả mô phỏng trục Roll của hệ thống ở miền rời rạc khi có nhiễu tác
động.

Qua kết quả mô phỏng khi có nhiễu tác động ta nhận thấy rằng bộ thông số nhóm
đã lựa chọn giúp ổn định được hệ thống xung quanh điểm cân bằng.
4.4. Thiết kế bộ điều khiển PID
Trong phần này nhóm tiến hành thiết kế bộ điều khiển PID sau đó mô phỏng trên
Simulink để kiểm chứng bộ điều khiển có giúp ổn định được hệ thống hay không. Dựa
vào các ma trận trạng thái đã tìm được ở chương 3 ta suy ra được hàm truyền tương
ứng và tiến hành dùng công cụ Tune PID trong Simulink để tìm ra các thông số PID.
Kiểm chứng bộ điều khiển PID đối với trục Pitch
 Hàm truyền góc lệch con lắc theo phương thẳng đứng (ψ )

tf (ψ )  -23.01 s + 5.003e-14
s  3.557s2  347.3s 
3

275.3

71
 Hàm truyền góc quay bánh xe robot ( φ1 )
1.723s2  0.06979s 140.2
tf ( φ1 ) 
s4  3.557s3  347.3s2  275.3s

 Sau khi tìm được hàm truyền ta tiến hành mô phỏng trên Simulink và dùng
công cụ Tool PID để tìm ra thông số PID ổn định góc lệch con lắc (ψ ).

Hình 4.21. Mô phỏng bộ điều khiển góc lệch con lắc (ψ ).

 Hình trên mô phỏng bộ điều khiển cho góc lệch con lắc (ψ ) kết quả mô phỏng
như sau:

Hình 4.22. Kết quả bộ điều khiển PID cho góc lệch con lắc theo phương thẳng đứng (ψ ).

Ta sẽ dùng bộ PID vừa tìm được để điều khiển hàm truyền góc quay bánh xe.

72
Hình 4.23. Mô phỏng kiểm chứng bộ điều khiển góc quay bánh xe (φ1 ).

Hình 4.24. Kết quả mô phỏng bộ điều khiển góc quay bánh xe (φ1 ).

Mục đích ở đây là kiểm chứng với bộ PID ổn định được góc lệch con lắc thì có
thể ổn định được góc quay bánh xe hay không. Theo như kết quả ta thấy được bộ PID
này mặc dù ổn định được góc lệch con lắc (ψ ) mà không ổn định được góc quay bánh
xe ( φ1 ). Kết luận bộ điều khiển PID không ổn định được trục Pitch của robot vì thế
phương
pháp dùng bộ điều khiển PID sẽ không phù hợp để ổn định toàn hệ thống.
4.5. Thiết kế bộ điều khiển ANN
Dựa vào bộ điều khiển LQR đã thiết kế được phần trước, nhóm sử dụng ANN
học bộ điều khiển LQR để ổn định hệ thống. Phương pháp học nhóm sử dụng là học
giám

73
sát (Supervised Learning) vì vậy nhiệm vụ chính ở đây là ta phải thu thập dữ liệu của hệ
thống và tiến hành huấn luyện cho bộ dữ liệu đó.
Thiết kế bộ điều khiển ANN dựa trên dữ liệu mô phỏng.
Thu thập dữ liệu hệ thống

Hình 4.25. Sơ đồ thu thập dữ liệu hệ thống.

Sử dụng khối chức năng To Workspace của Simulink để được dữ liệu qua cửa sổ
Workspace của Matlab để ta tiến hành bước huấn luyện.
Số lượng dữ liệu nhóm thu thập là 2501 mẫu tương ứng với 8 biến hệ thống và
2501 mẫu tương ứng với 2 tín hiệu ra điều khiển hệ thống.
Huấn luyện bộ điều khiển ANN và mô phỏng kiểm chứng.
Để huấn luyện được bộ điều khiển ANN ta cần quan tâm các thông số sau:
 Số lượng đầu vào: 8.
 Số lượng đầu ra: 2.
 Phương pháp học: học giám sát.
 Số lần chạy: 20000
 Hệ số học: 1e-4.
 Hệ số mục tiêu: 1e-6.

74
Hình 4.26. Cấu trúc mạng.

Sau khi chạy được 6939 epochs nhóm thấy rằng hệ số Performance không thay
đổi nữa nên nhóm đã dừng quá trình và thu được một bộ điều khiển ANN. Kết quả
huấn luyện được thể hiện như các hình dưới đây:

Hình 4.27. Thông số quá trình huấn luyện.

Hình 4.28. Đồ thị Performance.

So sánh bộ điều khiển ANN và LQR

75
Hình 4.29. So sánh hai bộ điều khiển ANN và LQR.

Sau khi kết thúc quá trình huấn luyện ta thu được bộ điều khiển ANN. Nhóm tiến
hành mô phỏng và so sánh với bộ điều khiển LQR. Kết quả được thể hiện như các hình
dưới đây:
 Kết quả mô phỏng trục Pitch:

Hình 4.30. Đồ thị so sánh kết quả biến x của hai bộ điều khiển.

76
Hình 4.31. Đồ thị so sánh kết quả biến psi của hai bộ điều khiển.

Hình 4.32. Đồ thị so sánh kết quả biến phi1_dot của hai bộ điều khiển.

77
Hình 4.33. Đồ thị so sánh kết quả biến psi_dot của hai bộ điều khiển.

Hình 4.34. Đồ thị so sánh kết quả trục Pitch của hai bộ điều khiển.

 Kết quả mô phỏng trục Roll:

78
Hình 4.35. Đồ thị so sánh kết quả trục Roll của hai bộ điều khiển.

Thông quả kết quả mô phỏng trên ta thấy rằng bộ điều khiển ANN đã điều khiển
được hệ thống rất tốt. Khi so sánh với bộ điều khiển LQR thì sự chênh lệch này rất
thấp. Vậy ta có thể kết luận được rằng bằng cách thu thập dữ liệu và chọn các thông số
huấn luyện một cách hợp lý ta có thể huấn luyện một bộ điều khiển ANN giúp ổn định
được hệ thống.

79
CHƯƠNG 5. TRIỂN KHAI THUẬT TOÁN ĐIỀU KHIỂN LÊN MÔ
HÌNH THỰC NGHIỆM

5.1. Lưu đồ thuật toán

80
81
5.2. Xác định chiều của tín hiệu điều khiển và các biến trạng thái
Trước khi triển khai thuật toán điều khiển lên hệ thống, ta cần phải xác định được
chiều của tín hiệu điều khiển và các biến trạng thái, việc này rất quan trọng. Vì nếu
như sai dấu của tín hiệu điều khiển cũng như sai đơn vị của các biến trạng thái thì sẽ
không đảm bảo cho bộ điều khiển có thể hoạt động được. Ta có thể xác định như sau:
 ψ ,ψ : Chiều dương là chiều robot ngã về phía sau
 φ1,φ1 : Chiều dương là chiều bánh xe quay ngược chiều kim đồng hồ
(nhìn robot từ bên phải)
 θ ,θ : Chiều dương là chiều robot nghiêng sang bên trái (nhìn trực diện)
 φ2 ,φ2 : Chiều dương là chiều bánh đà quay ngược chiều kim đồng
hồ (nhìn trực diện)
 U1,U2 : Tác động cùng chiều với góc động cơ
5.3. Thiết kế giao diện điều khiển và giám sát
Để tiện cho việc theo dõi cũng như điều chỉnh các thông số của hệ thống dễ dàng,
nhóm đã lựa chọn sử dụng Visual C# để xây dựng một ứng dụng Winform đơn giản có
các chức năng cụ thể như sau:

Hình 5.1. Giao diện điều khiển và giám sát hệ thống.

82
 Connect: Lựa chọn kết nối cổng giao tiếp với mô hình thông qua Bluetooth.
 Setpoint: Đặt giá trị vị trí để điều khiển vị trí của robot (nút Tune sử dụng để
cho phép tinh chỉnh các hệ số của bộ điều khiển LQR.
 Parameters: Hiển thị các thông số hiện tại của bộ điều khiển đồng thời cho
phép tăng giảm các giá trị này.
 Đồ thị: Hiển thị các thông số của hệ thống theo tùy chọn của người sử dụng.
 Các hệ số K1X – K4X và K1Y – K4Y: lần lượt là các giá trị của ma trận Kr
tương ứng.
 X Offset và Y Offset: là giá trị để bù cho góc tính được của hệ thống ở vị trí
cân bằng.
5.4. Điều chỉnh thông số bộ điều khiển trên mô hình thực nghiệm
Sau khi đọc được các giá trị của cảm biến và xác định được chiều như đã đề cập
ở trên. Ta tiến hành đưa các thông số của bộ điều khiển rời rạc đã tìm được ở chương 5
vào chương trình trên vi điều khiển.
Nhắc lại ma trận K của bộ điều khiển rời rạc:
0, 2934 34, 9558 0, 3508 2, 3188 0 0 0 0 
Kr  0 0 0 0 0, 0960 288, 5330 0, 2021 26, 4352
 

5.4.1. Triển khai thông số bộ điều khiển tìm được từ Matlab

Hình 5.2. Kết quả mô phỏng biến Phi2 và Phi2_dot.

83
Hình 5.3. Kết quả biến Theta và Theta_dot.

Hình 5.4. Kết quả biến Psi và Phi1_dot.

84
Sau khi triển khai bộ thông số tìm được từ Matlab vào mô hình, thông qua kết
quả mô phỏng ở trên ta thấy được rằng mặc dù ở trục Roll ổn định được góc Theta
nhưng đối với trục Pitch thì góc Psi lại không ổn định được. Điều đó cho thấy thông số
ta tìm được ở Matlab chỉ mang tính tương đối chưa chính xác hoàn toàn so với mô
hình thực tế vì còn nhiều thông số và biến hệ thống trong quá trình tính toán nhóm có
bỏ qua như hệ số ma sát; Giá trị moment quán tính của động cơ lựa chọn được tính
toán tương đối,
… Do đó ta cần điều chỉnh thông số để giúp ổn định được toàn bộ hệ thống.
5.4.2. Điều chỉnh thông số trục Roll
Đối với thông số bộ điều khiển trục Roll lấy từ MATLAB thì hệ thống đã ổn định
được, tuy nhiên khi có tác động nhẹ thì bánh đà sẽ quay rất nhanh do hệ số K2X (hệ số
của biến góc con lắc theo trục Roll) quá lớn, làm cho robot dễ bị mất cân bằng.
Vì vậy nhóm đã giảm hệ số K2X xuống giá trị 204,02.

Hình 5.5. Kết quả biến Theta và Theta_dot sau khi điều chỉnh thông số.

85
Hình 5.6. Kết quả biến Phi2 và Phi2_dot sau khi điều chỉnh thông số.

5.4.3. Điều chỉnh thông số trục Pitch


Ở hình 6.4, ta thấy robot bắt đầu dao động và sau đó bị ngã, lý do là vì thông số
K2Y chưa đủ lớn để có thể giúp robot cân bằng được, vậy nên nhóm sẽ thử tăng giá trị
K2Y lên.

86
Hình 5.7. Kết quả biến Psi và Psi_dot sau khi điều chỉnh thông số lần 1.

Hình 5.8. Kết quả biến Phi1 và Phi1_dot sau khi điều chỉnh thông số lần 1.

87
Thông qua kết quả trục Pitch ở hình 6.7, 6.8 ta thấy rằng thông số ta điều chỉnh
đã ổn định được hệ thống. Tuy nhiên giá trị tốc độ góc (Psi_dot) bị giật rất nhiều. Vì
vậy ta có thể tăng hệ số K4Y để khắc phục điều này.

Hình 5.9. Kết quả biến Psi và Psi_dot sau khi điều chỉnh thông số lần 2.

88
Hình 5.10. Kết quả biến Phi1 và Phi1_dot sau khi điều chỉnh thông số lần 2.

Hình 5.11. Kết quả biến Psi và Psi_dot sau khi điều chỉnh thông số lần 3.

89
Hình 5.12. Kết quả biến Phi1 và Phi1_dot sau khi điều chỉnh thông số lần 3.

Sau khi tăng hệ số K2Y và K4Y, biên độ dao động của robot đã giảm đi đáng kể,
nhưng lúc này robot không thể giữ được vị trí, biên độ dao động khá lớn. Tiếp đến ta
phải điều chỉnh 2 hệ số của lại là K1Y và K3Y (tức hệ số tác động trực tiếp lên góc
của động cơ).

90
Hình 5.13. Kết quả biến Phi1 và Phi1_dot sau khi điều chỉnh thông số lần 4.

Hình 5.14. Kết quả biến Psi và Psi_dot sau khi điều chỉnh thông số lần 4.

91
Thông qua kết quả điều chỉnh lần thứ 4, hệ thống đã ổn được góc của robot theo
trục Pitch. Tuy nhiên vị trí của con lắc vẫn dao động ở khoảng 0-5cm.
5.4.4. Kết quả điều chỉnh toàn mô hình
Với điều kiện không tác động ngoại lực lên mô hình:

Hình 5.15. Kết quả mô phỏng biến Phi2 và Phi2_dot.

92
Hình 5.16. Kết quả biến Theta và Theta_dot.

Hình 5.17. Kết quả biến Phi1 và Phi1_dot.

93
Hình 5.18. Kết quả biến Psi và Psi_dot.

Với điều kiện tác động ngoại lực vào trục Roll:

Hình 5.19. Kết quả biến Phi2 và Phi2_dot khi có tác động ngoại lực.

94
Hình 5.20. Kết quả biến Theta và Theta_dot sau có tác động ngoại lực.

Với điều kiện tác động nhiễu vào trục Pitch:

Hình 5.21. Kết quả mô phỏng biến Phi1 và Phi1_dot khi có tác dộng ngoại lực.

95
Hình 5.22. Kết quả mô phỏng biến Psi và Psi_dot khi có tác dộng ngoại lực.

96
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

6.1. Kết luận


6.1.1. Kết quả mô phỏng
Tổng quát, đội đã đạt được thành công trong việc mô phỏng hệ thống dựa trên
phương trình không gian trạng thái. Kết quả mô phỏng cho thấy rằng hệ thống, dựa
trên phương trình không gian trạng thái mà nhóm đã xây dựng, có sự tương đồng đáng
kể với thực tế, khẳng định tính chính xác của mô hình. Đối với các bộ điều khiển được
thiết kế, kết quả chi tiết như sau:
 Bộ điều khiển LQR: Hệ thống hoạt động ổn định ngay cả khi có nhiễu. Các
giá trị biến trạng thái của hệ thống đáp ứng rất nhanh.
 Bộ điều khiển PID: Không thể ổn định hệ thống thông qua việc điều chỉnh
thông số của bộ điều khiển dựa trên hàm truyền của hệ thống.
 Bộ điều khiển ANN: Tham số đầu vào/ra được sử dụng để huấn luyện bộ điều
khiển này được lấy từ kết quả của bộ điều khiển LQR. Do đó, kết quả của bộ
điều khiển ANN tương đối giống với bộ điều khiển LQR, bao gồm khả năng
đáp ứng dưới tác động của lực ngoại vi.
6.1.2. Kết quả thực nghiệm
Sau khi mô phỏng thành công với cả bộ điều khiển LQR và ANN, nhóm đã quyết
định triển khai bộ điều khiển LQR trên mô hình thực tế do cách triển khai này đơn
giản hơn và yêu cầu ít phần cứng hơn so với bộ điều khiển ANN. Các kết quả cụ thể
bao gồm:
 Nhóm đã điều chỉnh và xây dựng mô hình phần cứng thành công, đảm bảo
tính chắc chắn và thẩm mỹ.
 Triển khai thành công các bộ lọc để đọc các trạng thái của hệ thống một cách
tương đối chính xác, đóng góp vào việc hoạt động hiệu quả của bộ điều khiển.
 Lập trình triển khai bộ điều khiển LQR dựa trên thông số của bộ điều khiển
được mô phỏng trên MATLAB lên mô hình thực tế. Hệ thống hoạt động ổn
định, có khả năng chống lại lực ngoại vi (vừa phải).
 Robot có thể theo đuổi vị trí đã đặt trước, tuy nhiên sự chênh lệch giữa vị trí
đặt và vị trí hiện tại không vượt quá 30cm, vì nhóm không sử dụng bộ điều
khiển khác để xử lý vị trí này.
 Thiết kế thành công giao diện điều khiển và giám sát với các chức năng như
hiển thị biểu đồ thời gian thực của hệ thống, cho phép điều chỉnh các tham số
của bộ điều khiển, và đặc biệt có thể điều chỉnh vị trí hiện tại của robot.

97
6.2. Hạn chế và hướng phát triển
6.2.1. Hạn chế
 Trên bề mặt nhẵn, mô hình không thể duy trì vị trí và có dao động khoảng 4-
5cm.
 Đối với trục Roll, có nguy cơ mất thăng bằng khi chịu tác động mạnh từ lực
ngoại vi do công suất của động cơ nhỏ.
 Bo mạch điều khiển còn hạn chế, gây khó khăn trong việc triển khai các thuật
toán phức tạp.
6.2.2. Hướng phát triển
 Sử dụng các bo mạch xử lý tốc độ cao như STM32 hoặc máy tính nhúng như
Raspberry Pi, Jetson Nano, để triển khai nhiều thuật toán hơn.
 Sử dụng động cơ công suất lớn hơn để cải thiện độ ổn định khi có nhiễu.
 Chế tạo lốp xe bằng cao su để robot có thể giữ vị trí ổn định với dao động nhỏ.
 Kết hợp thêm một bánh đà để robot không chỉ dừng lại ở việc tiến lùi mà còn
có thể di chuyển tự do theo cả hai chiều.

98
TÀI LIỆU THAM KHẢO

[1] B. T. Công, "Robot một bánh xe tự thăng bằng," Hồ Chí Minh, 2014.

[2] L. G. Đức, "Điều khiển tối ưu hệ robot cân bằng một bánh dùng quy hoạch động thích nghi," Hồ
Chí Minh, 2022.

[3] J. (. D. Vries, "Redesign and Implementation of a moment exchange Unicycle robot," Twente,
2018.

[4] A. René Geist, Naomi Tashiro, Zheng Jia, Jonathan Fiene, Sebastian Trimpe, "Wheelbot v2.5,"
2022. [Online]. Available: https://sites.google.com/view/wheelbot/start?authuser=0. [Accessed
09 05 2023].

[5] ReM-RC, "Unicycle balancing robot with reaction wheel (open source)," 19 04 2021. [Online].
Available: https://www.youtube.com/watch?app=desktop&v=yYkTyglPhxs. [Accessed 05 03
2023].

[6] Y. DING, J. GAFFORD AND M. KUNIO, "Modeling, Simulation and Fabrication of a


Balancing Robot," Harvard University, Massachusettes Institute of Technology, 2012.

[7] K. Kanjanawanishkul, "LQR and MPC controller design and comparison for a stationary self-
balancing bicycle robot with a reaction wheel," Kybernetika, vol. 51, no. 1, pp. 173 - 191, 2015.

[8] v. IDC, 23 05 2022. [Online]. Available: https://viettelidc.com.vn/tin-tuc/cam-nang-ai-artificial-


neural-network-la-gi-cau-truc-cach-hoat-dong-va-ung-dung-cua-mo-hinh-nay. [Accessed 02 01
2024].

[9] H. T. Hoàng, Hệ thống điều khiển thông minh, Vietnam: ĐHQG TP.HCM, 2006, pp. 91-92.

[10] "Last Minute ENGINEERS," [Online]. Available: https://lastminuteengineers.com/mpu6050-


accel-gyro-arduino-tutorial/. [Accessed 4 August 2023].

[11] "Speedy FPV," [Online]. Available: https://speedyfpv.com/products/bgc-3-1-2-axis-ptz-


brushless-gimbal-controller-board-with-6050-sensor-and-cables?variant=8596706459699.
[Accessed 4 August 2023].

[12] "VINAFE," [Online]. Available: https://dientutuonglai.com/tim-hieu-atmega328p.html.


[Accessed 4 August 2023].

[13] "Huicheng Techno Motor Factory," [Online]. Available:


https://www.technomotor.com/en/product_detail-36-48-93.html#. [Accessed 4 August 2023].

[14] "Center of Mass and Mass Moments of Inertia for Homogeneous Bodies," [Online]. Available:
http://mechanicsmap.psu.edu/websites/centroidtables/centroids3D/centroids3D.html. [Accessed
11 5 2023].

[15] Laxmi, "Moment of Inertia of Homogeneous Rigid Bodies | Physics – Rotational Motion," 5 9
2020. [Online]. Available: https://www.learncram.com/physics/moment-of-inertia-of-rigid-
body/. [Accessed 11 5 2023].

99
[16] "Things in Motion," 25 12 2018. [Online]. Available: https://things-in-
motion.blogspot.com/2018/12/how-to-estimate-torque-of-bldc-pmsm.html. [Accessed 11 5
2023].

[17] S. Udegbunam, "Coefficient of Rolling Friction (Fully Explained)," 23 10 2020. [Online].


Available:https://afrilcate.com/coefficient-of-rolling- friction/#:~:text=Ans%3A%20The
%20coefficient%20of%20rolling,dry%20surfaces%20and%2
0smooth%20roads.. [Accessed 12 5 2023].

10
0

You might also like