Bộ điều khiển PID+Động lực học ngược được thiết kế chi tiết và trình bày trong mục 4.1.2 của Chương 4, mô hình của bộ điều khiển cho trong Hình 4.4, trong mục này sẽ áp dụng bộ điều khiển này vào việc điều khiển robot di động hai chân thực hiện chuyển động theo quỹ đạo cho trước trong ba trường hợp. Thứ nhất là khi đã xác định chính xác các đại lượng động lực và hai trường hợp còn lại là đại lượng động lực bị thiếu và có sai số trong mô hình động lực. Mục đích đưa ra ba trường hợp sử dụng của bộ điều khiển ở đây là để so sánh chất lượng điều khiển của bộ điều khiển.
Các ma trận hệ số khuếch đại tỷ lệ, vi phân, đạo hàm được chọn như sau:
{0, 16000, 8100, 8100, 8100, 22000, 22000} P K =diag (5.1) {0, 1000, 300, 600, 600, 600, 1000} I K =diag (5.2)
106
{0, 180, 180, 160, 160, 180, 180}
D
K =diag (5.3)
Ở đây các phần từ đầu tiên của KP, KI, KD bằng không bởi vì không điều khiển tọa độ q1 là góc giữa bàn chân trụ và mặt đất.
Các thông số kích thước, thông số động lực và momen quán tính các khâu được cho trong các bảng 5.1÷5.3. Chương trình thực hiện điều khiển robot chuyển động bám theo quỹ đạo của các khớp cho dưới dạng các file ma trận dữ liệu của Matlab, đó là dữ liệu của bài toán động học ngược thực hiện trên quỹ đạo của khớp hông và khớp cổ chân như cho trong các hình 2.18÷2.20. Như vậy đầu vào của bộ điều khiển PID+Động lực học ngược sẽ là các file dữ liệu pqtsj.mat, vqtsj.mat, aqtsj.mat tương ứng với chuyển vị, vận tốc, gia tốc của các khớp.
Sơ đồ của bộ điều khiển PID+Động lực học ngược trong phần mềm Matlab SIMULINK được mô tả trong Hình 5.1 bên dưới.
Hình 5.1 Mô hình điều khiển trong SIMULINK
Khối Input là khối nhập dữ liệu đầu vào cho bộ điều khiển gồm các file dữ liệu ma trận như mô tả ở trên, là các giá trị đặt của bộ điều khiển.
Khối PD Control là khối bao gồm sự kết hợp của điều khiển PID và Động lực học ngược.
107
Hình 5.3 Khối chương trình con – Control PID
Hình 5.4 Khối chương trình con – Tính động lực học ngược
Khối Robot là thể hiện của robot di động hai chân, nếu bộ điều khiển được ứng dụng trực tiếp vào mô hình robot thực tế thì đầu ra của bộ điều khiển sẽ được đấu nối làm sao để điều chỉnh các động cơ dẫn động tại các khớp và dữ liệu trả về là các thông tin của sensor đo các chuyển vị, vận tốc tại các khớp. Tuy nhiên ở đây thì sử dụng một khối để thay thế cho robot thực, có chức năng giải động học thuận để tìm ra chuyển vị, vận tốc, gia tốc thực của các khớp như trong Hình 5.5.
Hình 5.5 Khối cơ cấu chấp hành – Robot
Khối Graph là khối hiện thị kết quả của bộ điều khiển.
Như đã trình bày ở trên, phần tiếp sẽ thực hiện áp dụng bộ điều khiển PID+Động lực học ngược cho robot di động hai chân trong ba trường hợp. Thứ nhất là khi các đại lượng động lực đã biết chính xác, thứ hai là khi robot bị tác động bởi các lực nhiễu và lực cản nhưng không được tính đến trong bộ điều khiển, thứ 3 là khi robot bị lực cản, lực nhiễu tác động và sai số của mô hình động lực lên đến 50% nhưng không được tính đến trong bộ điều khiển.
108
5.2.1.1 Kết quả mô phỏng bộ điều khiển PID+Động lực học ngược trong trường
hợp 1 - đã biết được chính xác các đại lượng động lực.
Giả thiết robot chịu tác động của lực nhiễu và lực cản có công thức như sau:
1 2 3 4 4 5 6 7
15 sin cos sin sin cos sin 2 cos 2 sin
dis Q = q q q q q q q q (5.4) 1 2 3 4 5 6 7 5 fr Q = q q q q q q q (5.5)
a) Kết quả điều khiển ở bước khởi động 1
Hình 5.6 là kết quả mô phỏng của bộ điều khiển PID+Động lực học ngược trong trường hợp đã biết được chính xác các đại lượng động lực của robot và thực hiện cho bước khởi động 1 có quỹ đạo khớp hông và khớp mắt cá chân được thiết kế ở Hình 2.13 trong Chương 2.
109
Hình 5.6 Kết quả điều khiển PID+ĐLH ngược TH 1 ở bước khởi động 1
b) Kết quả điều khiển ở bước khởi động 2
Hình 5.7 là kết quả mô phỏng của bộ điều khiển PID+Động lực học ngược trong trường hợp đã biết được chính xác các đại lượng động lực của robot và thực hiện cho bước khởi động 2 có quỹ đạo của khớp hông và khớp mắt cá chân được thiết kế trong Hình 2.15.
110
Hình 5.7 Kết quả điều khiển PID+ĐLH ngược TH 1 ở bước khởi động 2
c) Kết quả điều khiển ở bước đi đều
Trong Hình 5.8 là kết quả mô phỏng của bộ điều khiển PID+Động lực học ngược cho bước đi đều có quỹ đạo bước đi ở Hình 2.16 trong trường hợp đã biết được chính xác các đại lượng động lực trong phương trình vi phân của robot.
111
Hình 5.8 Kết quả điều khiển PID+ĐLH ngược TH 1 ở bước đi đều
d) Kết quả điều khiển ở bước kết thúc
Kết quả mô phỏng của bộ điều khiển PID+Động lực học ngược cho bước đi kết thúc được cho trong Hình 5.9 với quỹ đạo bước đi đã đưa ra ở Hình 2.17.
132
5.2.4.1 Kết quả mô phỏng bộ điều khiển noron tích hợp PID
Hình 5.29 Kết quả điều khiển noron+PID ở bước khởi động 1
Kết quả điều khiển của bộ điều khiển noron khi tích hợp với PID cũng cho kết quả điều khiển tương tự như với bộ điều khiển mờ và điều khiển đại số gia tử. Chất lượng điều khiển tương đối tốt, điều khiển nhanh hơn vì không phải tính toán động lực học ngược.
133
5.2.4.2 Kết quả mô phỏng bộ điều khiển noron thuần túy
Tương tự như với bộ điều khiển đại số gia tử thuần túy, bộ điều khiển noron thuần túy thì các tọa độ ứng với các khớp 1, 2, 5, 6 cho kết quả hầu như giống với kết quả của bộ điều khiển mờ thuần túy nên ở đây không trình bày nữa, có thể xem trên mục 5.2.2.4, ở đây chỉ trình bày các kết quả điều khiển cho các tọa độ ứng với các khớp còn lại 3, 4, 7.
Hình 5.30 Kết quả bộ điều khiển noron thuần túy ở bước khởi động 1
Kết quả điều khiển của bộ điều khiển noron thuần túy có chất lượng kém hơn bộ điều khiển có sự tích hợp của PID, song kết quả vẫn điều khiển được robot, bộ điều khiển sẽ thích hợp với trường hợp điều khiển mạng noron mà không cần phải học các kiến thức về điều khiển PID.
5.2.5 Đánh giá kết quả của các bộ điều khiển
Bốn bộ điều khiển chính được sử dụng là bộ điều khiển PID+Động lực học ngược, bộ điều khiển mờ, bộ điều khiển đại số gia tử và bộ điều khiển mạng noron. Các bộ điều khiển đều được sử dụng độc lập và tích hợp với nhau trong các trường hợp cụ thể. Mỗi bộ điều khiển đều có những ưu điểm riêng tùy từng trường hợp và bài toán khác nhau.
Bộ điều khiển PID+Động lực học ngược sẽ cho kết quả điều khiển tốt, chính xác trong trường hợp biết đẩy đủ và chính xác các đại lượng trong phương trình vi phân
134
chuyển động của robot. Trong trường hợp khuyết thiếu đại động lực hay mô hình động lực có sai số thì điều khiểu PID+Động lực học ngược lại cho ra kết quả không tốt.
Các bộ điều khiển thông minh khi tích hợp với điều khiển rõ như PID+Động lực học ngược hay chỉ với PID thì đều có thể khắc phục được những nhược điểm của phương pháp điều khiển rõ gặp phải. Ngoài ra thì khi chỉ sử dụng các phương pháp thông mình thuần túy cũng có thể điều khiển được robot di động hai chân lúc đó thì không cần quan tâm đến mô hình động lực phức tạp của robot nữa và cũng không cần đến kiến thức về điều khiển PID.
Kết quả sai số điều khiển của ba bộ điều khiển mờ, điều khiển đại số gia tử và điều khiển mạng noron tương đối giống nhau bởi vì các bộ điều khiển này sử dụng chung miền giá trị vật lý của các biến vào ra và có các thuật toán điều khiển tương đối giống nhau. Tuy nhiên mỗi bộ điều khiển lại có thế mạnh khác nhau. Bộ điều khiển mờ dựa trên logic mờ có lối tư duy giống nên dễ dàng cài đặt, có tính linh hoạt, đơn giản trong thiết kế, cũng như sự ổn định. Bộ điều khiển dựa trên đại số gia tử thì có khả năng tính toán nhanh hơn bởi lý thuyết đại số gia tử có các công thức, phương pháp lượng hóa, sấp xỉ hóa. Bộ điều khiển mạng noron sau khi huấn luyện có tốc độ tính toán nhanh do có cấu trúc tính toán song song như hệ thần kinh của con người. Như vậy tùy vào từng yêu cầu mà có thể chọn bộ điều khiển tương ứng.
5.3 Xây dựng chương trình mô phỏng robot di động
5.3.1 Cấu trúc chương trình mô phỏng
Cấu trúc chung của một chương trình mô phỏng robot cho trongHình 5.31.
Hình 5.31 Cấu trúc chung chương trình mô phỏng robot
SolidWorks là phần mềm thiết kế 3D được dùng để thiết kế vẽ các bộ phận của robot như các chân, các tay, đầu và thân trong các file part riêng lẻ và lắp ráp chúng lại với nhau thành một file assembly tổng thể. Từ đó xuất ra định dạng file .STL là định dạng chung của file dữ liệu mô hình 3D. Chương trình sẽ tự động nạp các file .STL cho từng chi tiết.
135
Maple là phần mềm được sử dụng để tính toán các ma trận chuyển hệ tọa độ, thiết lập phương trình động học, giải bài toán động học ngược, kết quả tính toán được xuất ra file dữ liệu dạng .TXT và cũng sử dụng kết quả tính toán để vẽ ra các đồ thị tọa độ, vân tốc, gia tốc.
Chương trình Robot simualtor là một dự án phần mềm viết trong môi trường lập trình Visual C++. Dự án sử dụng thư viện hàm chuẩn MFC để xây dựng giao diện, sử dụng thư viện lập trình đồ họa OpenGL để tạo môi trường mô phỏng 3D.
Để kết nối phần xử lý giao diện MFC với phần xử lý môi trường đồ họa OpenGL, chương trình sử dụng lớp dựng sẵn COpenGLInit có tác dụng khởi tạo môi trường đồ họa OpenGL, kết nối với các sự kiện trong MFC như sự kiện khởi tạo, sự kiện khung cửa sổ bị thay đổi hay các sự kiện về bấm chuột hay bàn phím. Mỗi sự kiện này được xử lý trong một hàm, ví dụ các sự kiện về chuột sẽ được xử lý để làm thay đổi camera, góc nhìn trong OpenGL.
Các file mô hình 3D sẽ được load vào chương trình và lưu trữ, xử lý trong lớp CModel. Lớp CMoldel sẽ chứa các thông tin tương ứng với một khâu của robot, bao gồm các thông tin về dữ liệu 3D STL, các thông tin về động học của khâu như các kích thước θ, a, d, α. Ngoài ra còn có thông tin về màu sắc, vật liệu của khâu.
Để quản lý các thông tin về robot thì sử dụng lớp CRobot. Lớp này sẽ chứa danh sách các khâu của robot, danh sách các tọa độ, vận tốc, gia tốc của các khâu mà được đọc từ các tệp dữ liệu TXT đã được xuất ra từ phần mềm Maple khi giải các bài toán động học.
Lớp CRobot còn có các hàm để khởi tạo dữ liệu cho robot, đọc dữ liệu từ file TXT, có hàm để vẽ các dữ liệu 3D của các khâu vào môi trường đồ họa OpenGL.
5.3.2 Chương trình mô phỏng robot di động
Chương trình mô phỏng robot di động phải thực hiện được các yêu cầu của một chương trình mô phỏng 3D, có hình ảnh trực quan sinh động thể hiện hình ảnh robot hoạt động, thể hiện được các bài toán động học thuận và ngược.
Các hình bên dưới là chương trình mô phỏng robot. Phần bên trái là khung cửa sổ thao tác điều khiển, gồm có lựa chọn bài toán thuận và bài toán ngược. Với bài toán thuận thì có thể điểu chỉnh các góc khớp, khi đó dữ liệu về tọa độ của các bàn chân sẽ thay đổi theo. Tương tự như vậy với bài toán ngược, khi tọa độ của các bàn chân thay đổi thì các góc khớp cũng tự thay đổi theo và robot di chuyển đến vị trí tọa độ mới.
Chương trình được xây dựng trên ngôn ngữ lập trình C++ sử dụng thư viện lập trình giao diện hướng đối tượng MFC kết hợp với thư viên đồ họa OpenGL cho phép hiện thị các khâu của robot dạng 3D cho dễ dàng quan sát, có cái nhìn trực quan về mô hình từ đó kiểm chứng các kết quả tính toán động học, thiết kế quỹ đạo chuyển động.
136
Hình 5.32 Mô phỏng robot di động tại một số vị trí di chuyển
Kết luận Chương 5
Chương 5 đã áp dụng các bộ điều khiển được thiết kế trong chương 4 vào điều khiển robot di động hai chân bao gồm bộ điều khiển PID+Động lực học ngược, bộ điều khiển mờ, bộ điều khiển đại số gia tử và bộ điều khiển noron. Kết quả mô phỏng số của các bộ điều khiển trên khi áp dụng độc lập và khi tích hợp với nhau cũng được trình bày.
Đóng góp mới của luận án trong chương này là việc sử dụng các phần mềm và ngôn ngữ lập trình để xây dựng được chương trình mô phỏng số để mô phỏng các bộ điều khiển, các kết quả nhận được để kiểm chứng các giải thuật điều khiển và các hệ luật được xây dựng trong chương 4 cũng như các kết quả nhận được ở chương 2, chương 3.
Bộ điều khiển PID+Động lực học ngược cho kết quả chính xác khi biết được đầy đủ và chính xác mô hình động lực của robot. Khi tích hợp các bộ điều khiển thông minh với điều khiển PID+Động lực học ngược đã giải quyết được bài toán thiếu hụt đại lượng động lực hoặc mô hình động lực có sai số, kết quả điều khiển tương đương với kết quả của bộ điều khiển kinh điển trong trường hợp biết đầy đủ các đại lượng động lực. Ngoài ra chỉ cần tích hợp các bộ điều khiển thông minh trên với điều khiển PID thuần túy mà không cần quan tâm đến mô hình động lực của robot thì kết quả điểu khiển cũng không giảm đi mà tốc độ tính toán khi điều khiển nhanh lên do không phải tính toán động lực học ngược. Thậm chí khi áp dụng các bộ điều khiển thông minh thuần túy cho robot di động hai chân thì kết quả điều khiển vẫn chấp nhận được. Các bộ điều khiển thông minh đã tỏ ra ưu việt xử lý được tất cả các tình huống điều khiển cho kết quả tin cậy.
137
KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO
Luận án đã thực hiện đầy đủ các nội dung nghiên cứu đề ra, giải quyết các bài toán động học, động lực học và điều khiển robot di động hai chân. Các kết quả đạt được và những đóng góp mới của luận án đạt được như sau.
1. Kết luận:
Luận án đã xây dựng mô hình robot di động hai chân, thiết lập phương trình động học cho robot chuyển động không gian và chuyển động phẳng, đưa ra giải thuật giải các bài toán động học và giải thuật thiết kế quỹ đạo chuyển động của robot.
Luận án đã xây dựng mô hình động lực học, thiết lập phương trình vi phân chuyển động của robot, tính toán các đại lượng động lực và đưa ra thuật giải các bài toán động lực học bằng phương pháp số cho phép tính toán monen dẫn động tại các khớp của robot.
Luận án đã áp dụng phương pháp điều khiển kinh điển xây dựng bộ điều khiển PID+Động lực học ngược điều khiển robot trong trường hợp biết được đầy đủ và chính xác mô hình động lực cho kết quả điều khiển chính xác.