Thông số Trị số Đơn vị C X 6 m C Y 6 m C pi/2 rad 3.3 Kết quả mô phỏng
Để ghi lại hiệu suất điều khiển tương ứng, sai số toàn phương trung bình (MSE) của vị trí bám tương ứng được xác định như sau:
2 1 1 T d c i MSE q i q i T
Trong đó T là tổng thời gian lấy mẫu, q i q id( ), c( ) là vị trí đặt và vị trí hiện tại.
3.3.1 Robot hoạt động không nhiễu
3.3.1.1 Trường hợp 1
Cho robot di chuyển theo quỹ đạo đường tròn tâm O(6,6), bán kính R=1m, ta có hệ
phương trình: 6 1* ; 6 1* ; xd sin t yd cos t ( 3-28)
Ta so sánh giữa thuật toán PID và thuật toán PID-Neural
Hình 3.4 Bám trục X khi robot di chuyển theo trường hợp 1
Hình 3.6 Bám góc theta khi robot di chuyển theo trường hợp 1
Hình 3.8 Momen điều khiển của robot khi di chuyển theo trường hợp 1 Bảng 3.3 MSE của quá trình robot di chuyển theo trường hợp 1 Bảng 3.3 MSE của quá trình robot di chuyển theo trường hợp 1
Bộ điều khiển Sai số PID PID-Neural x 0.0016 7.2728 x 10-5 y 0.0182 0.0168 theta 0.0488 0.0446 Nhận xét:
Bộ điều khiển PID và PID-Neural đã bám quỹ đạo rất tốt khi di chuyển với điều kiện không nhiễu, cụ thể được trình bày qua từng hình:
Hình 3.3 là quỹ đạo bám của robot sử dụng hai bộ điều khiển PID và PID-Neural, ta thấy cả hai bộ điều khiển đều bám tốt quỹ đạo đặt trước. Tiếp theo là Hình 3.4, Hình 3.5 và Hình 3.6 thể hiện đáp ứng của robot thông qua việc bám theo trục tọa
độ x, y và góc bám theta. Ở đây ta thấy sai số bám khá tốt của hai bộ điều khiển cũng được thể hiện qua Hình 3.7, Hình 3.8 thể hiện momen điều khiển u1, u2, u3 để điều khiển cho ba động cơ của robot Omni 3 bánh, momen điều khiển được nhìn thấy giao động ổn định, nên sẽ tốt cho động cơ lúc hoạt động.
Tuy nhiên nhìn vào kết quả sai số toàn phương trung bình ở bảng 3.3 ta nhận thấy PID-Neural có sai số nhỏ hơn.
3.3.2 Robot hoạt động có nhiễu
3.3.2.1 Trường hợp 2
Ta cho robot di chuyển theo quỹ đạo đường tròn tâm O (6,6) bán kính R=1m:
6 1* ; 6 1* ; xd sin t yd cos t ( 3-29)
Nhiễu td 0.1*sin t ;0.1*cos t ;0 ;
Ở giây thứ 6, ta tăng khối lượng robot từ 2kg lên 5kg.
Hình 3.10 Bám trục x khi robot di chuyển theo trường hợp 2
Hình 3.12 Bám góc theta khi robot di chuyển theo trường hợp 2
Hình 3.14 Momen điều khiển của robot khi di chuyển theo trường hợp 2
Bảng 3.4 MSE của quá trình robot di chuyển theo trường hợp 2 Bộ điều khiển Bộ điều khiển Sai số PID PID-Neural x 0.0034 8.8376e-05 y 0.0219 0.0168 theta 0.0481 0.0444 Nhận xét trường hợp 2:
Ở trường hợp 1 cả hai bộ điều khiển đã bám tốt quỹ đạo định trước, tuy nhiên trường hợp 1 không có nhiễu. Nhưng ở trường hợp 2, ta thêm nhiễu td can thiệp vào trục x và trục y, ở giây thứ 6 trở đi, khối lượng robot tăng lên từ 2kg lên 5kg. Bộ điều khiển PID-Neural tỏ ra thích ứng hơn bộ điều khiển PID. Cụ thể:
Hình 3.9 là quỹ đạo bám của robot sử dụng hai bộ điều khiển PID và PID-Neural, ta thấy bộ điều khiển PID chưa bám tốt được quỹ đạo, còn bị lệch ra khỏi quỹ đạo nhiều, trong khi bộ điều khiển PID-Neural bám tốt.
Tiếp theo là Hình 3.10, Hình 3.11 thể hiện đáp ứng của robot thông qua việc bám theo trục tọa độ X, Y, ở giây thứ 6 khối lượng robot tăng, bộ điều khiển PID chưa thích nghi được nên quỹ đạo đã bị lệch ra nhiều. Hình 3.13 và Hình 3.14 mô tả sai số bám của robot theo x, y, theta và momen điều khiển robot. Qua đó ta thấy sai số robot tiến về không, và momen điều khiển không bị đảo chiều liên tục, điều này giúp cho robot bảo quản thiết bị được lâu hơn.
Ở Hình 3.15, ta thấy ở giây thứ 6, khối lượng robot tăng, biểu đồ có sự thay đổi, mạng Neural lúc này thể hiện được tính thích nghi tuy chưa được tốt cho lắm, nhưng nó đã làm cho chất lượng của bộ điều khiển PID-Neural tốt hơn PID.
Nhìn vào kết quả sai số toàn phương trung bình (MSE) ở bảng 3.4 ta nhận thấy PID-Neural hoạt động tốt hơn.
3.3.2.2 Trường hợp 3
Robot bám quỹ đạo số 8, có tâm quỹ đạo tại O(6,6), vị trí xuất phát của robot tại C(6,6), ta có hệ phương trình quỹ đạo như sau:
6 1* 6 1* 0.5* xd sin t yd cos t ( 3-30)
Lưu ý ở đây ta cho nhiễu tác động lên trục x,y như sau:
0.1* ;0.1* ;0
td sin t cos t . Robot di chuyển theo quỹ đạo bình thường đến giây thứ 6, ta tăng khối lượng robot từ 2kg lên 5kg để xem đáp ứng của hai bộ điều khiển.
Hình 3.17 Bám trục X khi robot di chuyển theo trường hợp 3
Hình 3.19 Bám góc Theta khi robot di chuyển theo trường hợp 3
Hình 3.21 Momen điều khiển của robot khi di chuyển theo trường hợp 3
Bảng 3.5 MSE của robot khi di chuyển theo trường hợp 3 Bộ điều khiển Bộ điều khiển Sai số PID PID-Neural x 0.0034 8.8343e-05 y 0.0179 0.0170 theta 0.0481 0.0444 Nhận xét trường hợp 3:
Ở Hình 3.16 Robot đang di chuyển theo quỹ đạo hình số 8, với điều kiện có nhiễu và khối lượng thay đổi, bộ điều khiển PID-Neural tỏ ra thích nghi hơn, và nó cho kết quả bám quỹ đạo tốt hơn bộ điều khiển PID.
Qua các Hình 3.17 đến Hình 3.19, lúc khối lượng robot thay đổi, bộ điều khiển PID chưa thích ứng được, nên chất lượng bám theo trục x, trục y bị giảm đi rõ rệch. Hình 3.20 và Hình 3.21 thể hiện sai số bám của robot và momen cấp vào robot của bộ điều khiển PID-Neural. Ở đây ta thấy sai số bám tiến về không, và momen cấp vào động cơ ổn định, không có hiện tượng đảo chiều động cơ liên tục, giúp cho robot hoạt động ổn định.
Hình 3.22 mô tả ước lượng của bộ điều khiển PID-Neural, tuy nhiên việc ước lượng chưa chính xác hoàn toàn. Chất lượng của bộ điều khiển được thể hiện qua bảng 3.5, ta thấy rằng PID-Neural có chất lượng tốt hơn bộ điều khiển PID.
3.3.2.3 Trường hợp 4
Robot bám quỹ đạo đường cong rhodonea, có tâm quỹ đạo tại O(6,6), vị trí xuất phát của robot tại C(6,6), ta có hệ phương trình quỹ đạo như sau:
t xd = 6+r.cos( ).cos( ); 2 4 t yd = 6+r.cos( ).sin( ); 2 4 t t ( 3-31)
Lưu ý ở đây ta cho nhiễu tác động lên trục x,y như sau:
0.1* ;0.1* ;0
td sin t cos t
Robot di chuyển theo quỹ đạo bình thường đến giây thứ 6, ta tăng khối lượng robot từ 2kg lên 5kg để xem đáp ứng của hai bộ điều khiển.
Hình 3.23 Robot bám quỹ đạo trường hợp 4
Hình 3.25 Đáp ứng theo trục y của robot khi bám quỹ đạo trường hợp 4
Hình 3.27 Sai số bám theo x, y, theta của robot ở trường hợp 4
Hình 3.28 Momen điều khiển robot khi robot di chuyển theo trường hợp 4 Bảng 3.6 MSE của quá trình robot di chuyển theo trường hợp 4 Bảng 3.6 MSE của quá trình robot di chuyển theo trường hợp 4
Bộ điều khiển Sai số PID PID-Neural x 0.0313 0.0173 y 0.0176 6.0786 x 10-4 theta 0.0481 0.0430
Nhận xét trường hợp 4:
Ở Hình 3.23 Robot đang di chuyển theo quỹ đạo đường cong, với điều kiện có nhiễu và khối lượng thay đổi, ta có thể thấy rõ ràng bộ điều khiển PID bám theo quỹ đạo không tốt, bộ điều khiển PID-Neural bám quỹ đạo tốt hơn, cụ thể được thể hiện qua các hình tiếp theo. Hình 3.24 đến Hình 3.25 là đáp ứng của robot với trục x và y, ta nhận thấy khi khối lượng robot thay đổi, đáp ứng của bộ điều khiển PID trở nên không tốt, sai số bám lớn, còn bộ điều khiển PID-Neural thì thích ứng được với điều kiện thay đổi này.
Hình 3.26 cho thấy đáp ứng của robot với góc theta của hai bộ điều khiển tương đối tốt. Hình 3.27 và Hình 3.28 thể hiện sai số bám và momen cấp vào động cơ cho robot khi sử dụng bộ điều khiển PID-Neural. Ở đây ta thấy momen cấp vào động cơ không có hiện tượng đảo chiều động cơ liên tục, giúp cho robot hoạt động ổn định, tránh tình trạng hư hỏng thiết bị.
Qua bảng 3.6 ta có thể thấy bộ điều khiển PID-Neural thích ứng với điều kiện nhiễu và khối lượng thay đổi đột ngột của robot hơn bộ điều khiển PID truyền thống.
3.4 Kết luận mô phỏng
Trong điều kiện không nhiễu, ta thấy bộ điều khiển PID và PID-Neural đều đáp ứng tốt. Tuy nhiên sai số của bộ điều khiển PID-Neural vẫn nhỏ hơn.
Trong điều kiện có nhiễu và khối lượng đột ngột thay đổi, bộ điều khiển PID-Neural tỏ ra thích ứng tốt hơn.
Bộ điều khiển PID-Neural đã thể hiện được tính thích nghi của nó với các thành phần nhiễu và yếu tố bất định của mô hình. Tuy nhiên việc nhận dạng nhiễu và các thông số không chắc chắn của mô hình còn chưa tốt, cần được cải tiến.
CHƯƠNG 4 MÔ HÌNH THỰC NGHIỆM 4.1 Sơ đồ khối toàn bộ hệ thống robot
Các thiết bị được dùng để xây dụng hệ thống Omni robot 3 bánh được trình bày ở Hình 4.1
Hình 4.1 Sơ đồ khối phần cứng của hệ thống robot
Chức năng của từng thiết bị trong sơ đồ khối Hình 4.1
Camera: thu ảnh màu.
Máy tính: lấy hình ảnh từ camera thu về, xử lý hình ảnh.
Module RF: truyền dữ liệu không dây
Vi điều khiển: Xử lý dữ liệu và xuất tín hiệu điều khiên động cơ.
Mạch khuếch đại: điều khiển động cơ.
Nguồn 12v, 5v: cung cấp điện cho các thiết bị.
Mạch chuyển DC: giúp chuyển điện áp 12v sang 5v.
Quy trình hoạt động của các thành phần được thực hiện như sau:
Máy tính:
Mở cổng COM.
Xử lý ảnh: nhận dạng màu, lọc nhiễu, tìm tọa độ tâm của màu, chuyển đổi tọa độ pixel ra tọa độ thực tế (centimet). Lưu ý: tâm của màu cũng chính là tâm của robot.
Gửi tọa độ này cho robot thông qua module RF (giao tiếp UART). Robot:
Nhận tọa độ từ máy tính gửi xuống vi điều khiển.
Tính ra sai số giữa tọa độ đặt và tọa độ thực.
Đưa sai số này vào bộ điều khiển.
Bộ điều khiển xuất tín hiệu điều khiển đến mạch khuếch đại để điều khiển động cơ.
4.2 Mô hình thực tế trong phòng thí nghiệm
Hình 4.2 Khu vực chạy thử robot
Ở Hình 4.2 mô tả khu vực robot chạy thử nghiệm được lắp đặt trong phòng thí nghiệm của trường SaigonTech, ta có thể nhìn thấy robot đang được đặt trong một
sân có nền đen. Phía trên có một camera Logitech c270, robot sẽ di chuyển trong sân này, và camera phía trên sẽ định vị tọa độ robot trong sân.
Hình 4.3 Robot Omni 3 bánh thực tế
Trong hình 4.3 ta thấy đây là một Omni robot 3 bánh, phía trên robot được dán màu đỏ và màu xanh lá. Mục định của việc này là để định vị robot trong không gian.
4.3 Kết quả thực nghiệm:
Hình 4.4 là giao diện trên Matlab, cho ta thấy được tọa độ robot trong không gian, ở đây có hình tròn màu xanh dương, là quỹ đạo định trước mà robot phải bám theo. Nhờ giao diện này mà ta có thể quan sát quỹ đạo robot hoạt động một cách dễ dàng hơn.
Để kiểm nghiệm thuật toán PID-Neural vừa được thiết kế ở phần trên, ta tiến hành làm thực tế.
4.3.1 Thực nghiệm 1
Cho robot di chuyển theo đường tròn tâm O (100,75) với bán kính là 45cm. Trong trường hợp này có để vật nặng 2kg lên robot. Ta xét 15 giây đầu tiên cho robot di chuyển với thuật toán PID, sau 15 giây robot di chuyển với thuật toán PID-Neural, việc này giúp ta có thể so sánh được đáp ứng của hai bộ điều khiển.
Kết quả thực nghiệm như sau:
Trong hình 4.5 miêu tả robot bám theo quỹ đạo định trước, đường màu đen là quỹ đạo đặt, đường màu xanh dương là quỹ đạo di chuyển của robot khi sử dụng bộ điều khiển PID-Neural, còn đường màu đỏ là quỹ đạo di chuyển của robot khi sử dụng bộ điều khiển PID. Ta có thể nhận thấy quỹ đạo của robot khi sử dụng thuật toán PID-Neural bám tốt hơn.
Ta quan sát đáp ứng của robot theo trục x và y trong Hình 4.6 và Hình 4.7. Ở 15 giây đầu tiên, ta thấy quỹ đạo đặt (màu đen) và quỹ đạo di chuyển thực tế (màu đỏ) của robot còn cách một đoạn nhỏ, tuy nhiên qua giây thứ 15 trở đi, ta thấy quỹ đạo bám của robot tốt hơn, điều này cho ta thấy được bộ điều khiển PID-Neural đang hoạt động có hiệu quả. Để cụ thể hơn ta quan sát sai số theo trục x, y qua hình 4.8.
Hình 4.7 Đáp ứng của robot theo trục y
Trong hình 4.9 trình bày về sai số theo trục x (màu đen) và sai số theo trục y (màu đỏ). Ta quan sát ở 15s đầu tiên, tương ứng với điểm 4611 trở về trước, sai số của robot nằm trong khoảng 15cm, tuy nhiên từ giây thứ 15 trở đi, sai số của robot giảm đi đáng kế, nằm trong khoảng8cm.
Hình 4.8 Sai số bám theo trục x,y
S a i số (c m )
Quan sát Hình 4.9, ta thấy 15 giây đầu tiên, chỉ có bộ điều khiển PID hoạt động, cho nên xung PWM [0-255] để điều khiển robot ở đây là từ bộ điều khiển PID xuất ra. Còn sau 15s, xung PWM điều khiển robot có sự tác động của thành phần mạng neural, fx là thành phần bù của mạng neural xuất ra. Hình 4.9 mô tả momen điều khiển theo trục x, tương tự như thế với Hình 4.10, mô tả momen điều khiển theo trục y.
Hình 4.9 Momen điều khiển robot theo trục x
Hình 4.10 Momen điều khiển robot theo trục y
T ín h iệ u đi ều k h iể n x u n g P W M T ín h iệ u đi ều k h iể n x u n g P W M
Bảng 4.1 MSE của quá trình robot di chuyển theo thực nghiệm 1 Bộ điều khiển Bộ điều khiển Sai số PID PID-Neural x 0.0088 0.0016 y 0.0087 0.0016 4.3.2 Thực nghiệm 2
Cho robot di chuyển theo đường tròn tâm O (100,75) với bán kính là 45cm. Trong trường hợp này không để vật nặng. Ta xét 15 giây đầu tiên cho robot di chuyển với