Professional Documents
Culture Documents
BAOCAO LVTN v7
BAOCAO LVTN v7
BAOCAO LVTN v7
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.
……
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
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
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
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.
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.
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
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ư
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)
∂ψ
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ó
μ τ 0 τax τ bg
μ τ 0 βax (φ1 ψ ) βbgφ1 (2.19)
μ τ 0 (βax βbg )φ1 βaxψ
χ τ 0 τ ax
(2.20)
χ τ 0 βax (φ1 ψ )
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
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].
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
ml2I 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)
ml2ml2I 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
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
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
Trong đó:
I (m m )R 2 m Rl I m l 2
ml2I 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 (E1G )11 (E1F )11 (E1F )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
D0;
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:
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 SBR1BT 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
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.
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ý.
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]
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
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
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.
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).
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.
33
Hình 3.13. Robot được gắn kèm giá đỡ trục Pitch.
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.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.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ự.
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ù.
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.
40
Hình 3.25. Mạch BGC 3.1 tích hợp cảm biến MPU6050.
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.
42
Dòng diện cực đại 5A
Hệ số KV 147
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 .
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.
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.
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
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.
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)
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
R5
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
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 ;
Q0 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
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.
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
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
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
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
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 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
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:
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.
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
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:
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
83
Hình 5.3. Kết quả biến Theta và Theta_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ố.
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:
92
Hình 5.16. Kết quả biến Theta và Theta_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.
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
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].
[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.
[9] H. T. Hoàng, Hệ thống điều khiển thông minh, Vietnam: ĐHQG TP.HCM, 2006, pp. 91-92.
[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].
10
0