Professional Documents
Culture Documents
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI THÀNH PHỐ HỒ CHÍ MINH
NGHIÊN CỨU
ĐIỀU KHIỂN THÍCH NGHI CHO ROBOT LẶN TỰ HÀNH
LUẬN ÁN TIẾN SĨ
NGHIÊN CỨU
ĐIỀU KHIỂN THÍCH NGHI CHO ROBOT
LẶN TỰ HÀNH
LUẬN ÁN TIẾN SĨ
Người hướng dẫn khoa học: PGS. TS. Nguyễn Phùng Hưng
TS. Lê Văn Ty
MỤC LỤC
LỜI CAM ĐOAN ................................................................................................... vi
LỜI CẢM ƠN........................................................................................................ vii
TÓM TẮT……………………………………………………………………….viii
4.2 Mô phỏng điều khiển các chuyển động của AUV ..................................... 63
4.2.1 Điều khiển hướng....................................................................................... 64
4.2.2 Điều khiển hướng, độ sâu và góc chúi ...................................................... 65
4.2.3 Điều khiển hướng đi, độ sâu và tốc độ ...................................................... 69
4.2.4 Điều khiển tổng hợp các chuyển động khi có dòng chảy .......................... 71
4.3 Mô phỏng điều khiển dẫn đường AUV và thực hiện các nhiệm vụ dưới
nước .................................................................................................................... 75
4.3.1 Điều khiển AUV theo quỹ đạo đặt trước ................................................... 76
4.3.2 Điều khiển AUV bám theo địa hình đáy .................................................... 93
4.4 Mô phỏng điều khiển AUV thích nghi với ngoại cảnh ................................ 95
4.4.1 Điều khiển AUV dưới tác động của dòng chảy ......................................... 95
4.4.2 Điều khiển AUV thích nghi với tác động của dòng chảy........................... 98
4.5 Kết luận chương 4 .................................................................................... 103
KẾT LUẬN ......................................................................................................... 104
1 Các kết quả đạt được của đề tài ................................................................ 104
2 Những ưu điểm và hạn chế của đề tài ...................................................... 104
3 Hướng phát triển tiếp theo của lĩnh vực nghiên cứu ................................ 105
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC LIÊN QUAN ĐẾN LUẬN ÁN
TIẾN SỸ………………………………………………………………………..106
TÀI LIỆU THAM KHẢO………………………………………………………107
PHỤ LỤC ............................................................................................................ 121
CÁC FILE MATLAB ĐỂ THỰC HIỆN MÔ PHỎNG ĐIỀU KHIỂN AUV .... 121
PL1. File mô phỏng điều khiển hướng và độ sâu AUV .................................... 121
PL2. File mô phỏng điều khiển hướng, độ sâu và tốc độ AUV ........................ 125
PL3. File mô phỏng điều khiển dẫn đường AUV theo quỹ đạo ....................... 129
PL4. File LOSguide.m ...................................................................................... 134
PL5. File CurrGen.m ......................................................................................... 136
PL6. File mạng nơ-ron nhiều lớp truyền thẳng ................................................. 137
PL7. File huấn luyện mạng nơ-ron thích nghi .................................................. 138
vi
Tên tôi là Phạm Việt Anh - Nghiên cứu sinh ngành Khoa học hàng hải
và tác giả luận án tiến sĩ: “Nghiên cứu điều khiển thích nghi cho robot lặn tự
hành”, dưới sự hướng dẫn của PGS. TS. Nguyễn Phùng Hưng, TS. Lê Văn
Ty thực hiện tại Trường Đại học Giao thông Vận tải Thành Phố Hồ Chí Minh.
Bằng danh dự của bản thân, nghiên cứu sinh cam đoan rằng:
- Luận án này là công trình nghiên cứu của riêng nghiên cứu sinh,
không có phần nội dung nào được sao chép một cách bất hợp pháp, từ công
trình nghiên cứu của tác giả hay nhóm tác giả khác;
- Các số liệu, kết quả nghiên cứu được nêu trong luận án, chưa được ai
công bố trong bất kỳ công trình nghiên cứu nào khác trước đó;
- Các thông tin, số liệu trích dẫn, tài liệu tham khảo trong luận án đều
được chỉ rõ về xuất xứ, nguồn gốc và đảm bảo tính trung thực./.
Tp.HCM, ngày 27 tháng 03 năm 2022
Nghiên cứu sinh
LỜI CẢM ƠN
Tôi xin chân thành cảm ơn Trường Đại học Giao thông Vận tải Thành
Phố Hồ Chí Minh, Viện Đào tạo Sau Đại học - Trường Đại học Giao thông
Vận tải Thành Phố Hồ Chí Minh đã cho phép và tạo điều kiện cho tôi thực
hiện luận án này.
Tôi xin chân thành cảm ơn PGS.TS. Nguyễn Phùng Hưng, TS. Lê Văn
Ty đã tận tình, tâm huyết hướng dẫn, định hướng nghiên cứu giúp tôi hoàn
thành luận án này.
Tôi xin chân thành cám ơn Viện Hàng Hải, Bộ môn Điều Khiển Tàu
Biển Trường Đại học Giao thông Vận tải Thành Phố Hồ Chí Minh luôn giúp
đỡ và động viên tôi trong suốt quá trình học tập và nghiên cứu.
Tôi xin chân thành cảm ơn các Thầy cô giáo, nhà khoa học đã góp ý,
phản biện và đánh giá giúp tôi từng bước hoàn thiện luận án này. Cuối cùng,
tôi xin bày tỏ lòng biết ơn sâu sắc tới gia đình và bạn bè đã luôn động viên,
khuyến khích, tạo điều kiện cho tôi trong suốt thời gian tôi nghiên cứu hoàn
thành công trình này!
TÓM TẮT
Hiện nay, mạng nơ-ron nhân tạo (Artificial Neural Network) được ứng
dụng rộng rãi trong nhiều lĩnh vực, trong đó có lĩnh vực điều khiển tự động,
vì mạng nơ-ron có thể giải quyết những vấn đề điều khiển phức tạp, ngay cả
với đối tượng điều khiển có tính phi tuyến cao, có môi trường bên ngoài tác
động không dự đoán được, làm cho tính năng của đối tượng trở nên khó điều
khiển. Hơn nữa, khả năng tính toán nhanh của mạng nơ-ron cũng làm cho
chúng trở nên khả thi với các ứng dụng điều khiển theo thời gian thực.
Tại Việt Nam, việc nghiên cứu hệ thống điều khiển tiên tiến cho AUV
vẫn còn non trẻ và chưa được ứng dụng rộng rãi.
Mặc dù vậy nhu cầu ứng dụng AUV cho khảo sát biển, các công trình
ngầm dưới nước, thăm dò và bảo trì đường ống hay cáp ngầm, tìm kiếm cứu
nạn dưới biển tại Việt Nam vẫn ngày một tăng cao. Chúng ta vẫn chủ yếu
thuê hoặc mua các AUV nước ngoài cho các công tác này. Những nghiên cứu
nhằm nâng cao chất lượng hệ thống điều khiển AUV, từng bước tự chủ công
nghệ chế tạo, vận hành AUV tại Việt Nam là rất cần thiết cho ngành khai
thác, thăm dò, quản lý biển và phục vụ an ninh quốc phòng, bảo vệ biển đảo
và chủ quyền quốc gia trên biển.
Trên cơ sở nghiên cứu các phương pháp điều khiển AUV thông thường
và hiện đại, nghiên cứu các thuật toán điều khiển với mạng nơ-ron nhân tạo.
Luận án này đã phát triển ứng dụng bộ điều khiển nơ-ron thích nghi cho hệ
thống điều khiển hướng đi và độ sâu AUV, qua đó cải tiến nâng cao chất
lượng bộ điều khiển cho loại phương tiện này, nhằm đưa ra bộ điều khiển mới
và có tính ứng dụng thực tiễn.
Các kết quả lý thuyết và mô phỏng thành công đã cho thấy tính khả thi
của các thuật toán được NCS đề xuất.
ix
ABSTRACT
PD Proportion Derivative
𝑉 vector vận tốc dài và vận tốc góc của AUV ({b} so với {n})
trong hệ tọa độ {b}
𝑣 vận tốc dài của AUV ({b} so với {n}) trong hệ tọa độ {b}
𝜔 vận tốc góc của AUV ({b} so với {n}) trong hệ tọa độ {b}
𝜏 lực và moment tác động lên AUV trong hệ trục tọa độ {b}
j Độ lệch (bias)
g(𝜂) vector trọng lực/lực đẩy Acsimet và moment (lực phục hồi)
bước học
P ma trận đối xứng dương phản ánh các trọng số của các biến
của đối tượng được điều khiển
k Hướng đi thực tế
zk Độ sâu thực tế
Rk Góc bẻ lái
uk Tốc độ thực tế
Hình 1.1 Nghiên cứu AUV mô hình tại trường ĐH Bách khoa Hà Nội [7] . 10
Hình 1.2 KIAL – AUV của ĐH Bách khoa TP Hồ Chí Minh phối hợp nghiên
cứu với Hàn Quốc [10] ................................................................. 10
Hình 1.3 Hệ trục tọa độ ECEF ..................................................................... 11
Hình 1.4 Các vận tốc u, v, w, p, q, r trong hệ tọa độ Body-fixed. ................ 13
Hình 1.5 Các góc xoay Euler........................................................................ 15
Hình 2.1 Đơn vị xử lý của mạng nơ-ron nhân tạo ....................................... 28
Hình 2.2 Hàm truyền tuyến tính ................................................................... 29
Hình 2.3 Hàm truyền giới hạn cứng ............................................................. 30
Hình 2.4 Hàm truyền dạng sigma................................................................. 30
Hình 2.5 Hàm truyền dạng tang-sigma ........................................................ 31
Hình 2.6 Mạng nơ-ron truyền thẳng nhiều lớp ............................................ 31
Hình 2.7 Mạng nơ-ron hồi quy ..................................................................... 32
Hình 2.8 Sơ đồ phương pháp điều khiển gián tiếp [3] ................................. 33
Hình 2.9 Sơ đồ phương pháp điều khiển trực tiếp [3] ................................. 34
Hình 3.1 Mô hình NSP AUV II ..................................................................... 39
Hình 3.2 Sơ đồ cấu tạo các chi tiết của NSP AUV II ................................... 40
Hình 3.3 Cấu trúc bộ điều khiển NNC ......................................................... 48
Hình 3.4 Cấu trúc bộ điều khiển NNC. Véc-tơ tín hiệu vào gồm sai số ek và
các tín hiệu trễ của ek. Hàm mục tiêu Ek được xử lý bằng thuật
toán Brandt-Lin nhằm cập nhật các trọng số sao cho giá trị của Ek
được cực tiểu [3]. .......................................................................... 49
Hình 3.5 Sơ đồ giải thuật phương pháp huấn luyện lan truyền ngược “tăng
cường” với n và bước học cố định .............................................49
Hình 3.11 Sơ đồ hệ thống điều khiển AUV theo quỹ đạo tính đến độ dạt do
dòng chảy gây ra. .......................................................................... 59
Hình 4.1 Sơ đồ mô phỏng điều khiển hướng AUV ....................................... 63
Hình 4.2 Đáp ứng hướng đi của BĐK NNC ................................................. 64
Hình 4.3 Đáp ứng hướng đi của BĐK NNC và PID .................................... 64
Hình 4.4 Sơ đồ mô phỏng điều khiển độ sâu AUV ....................................... 65
Hình 4.5 Đáp ứng hướng đi của AUV trong TN2 ........................................ 66
Hình 4.6 Đáp ứng độ sâu của AUV trong TN2 ............................................ 66
Hình 4.7 Quỹ đạo chuyển động của AUV trong TN2 ................................... 67
Hình 4.8 Đáp ứng độ sâu của AUV khi có dòng chảy (TN3) ....................... 67
Hình 4.9 Đáp ứng hướng đi của AUV khi có dòng chảy (TN3) ................... 68
Hình 4.10 Vết chuyển động của AUV khi có dòng chảy (TN3) .................... 68
Hình 4.11 Sơ đồ mô phỏng điều khiển tốc độ AUV ...................................... 69
Hình 4.12 Đáp ứng hướng đi của AUV trong TN4 ...................................... 70
Hình 4.13 Đáp ứng độ sâu của AUV trong TN4 .......................................... 70
Hình 4.14 Đáp ứng tốc độ của AUV trong TN4 ........................................... 71
Hình 4.15 Vết chuyển động của AUV ........................................................... 71
Hình 4.16 Đáp ứng hướng đi của AUV khi có dòng chảy (TN5) ................. 72
Hình 4.17 Đáp ứng tốc độ của AUV trong TN5 ........................................... 72
Hình 4.18 Đáp ứng độ sâu của AUV trong TN5 .......................................... 73
Hình 4.19 Vết chuyển động của AUV khi có dòng chảy (TN5) .................... 73
Hình 4.20 Mô phỏng hệ thống điều khiển và dẫn đường AUV .................... 76
Hình 4. 21 Đáp ứng hướng đi của AUV trong TN6 ..................................... 77
Hình 4. 22 Đáp ứng độ sâu trong TN6 ......................................................... 77
Hình 4. 23 Đáp ứng tốc độ trong TN6.......................................................... 78
Hình 4. 24 Vết chuyển động của AUV trong TN6 ........................................ 78
Hình 4. 25 Quỹ đạo trên mặt phẳng ngang của AUV trong TN6 ................. 79
xv
Hình 4. 56 Độ sâu thực tế của AUV (nét liền, xanh) và đáy (nét đứt, đỏ) ... 95
Hình 4. 57 Đáp ứng hướng đi của AUV trong TN13 ................................... 95
Hình 4. 58 Đáp ứng tốc độ của AUV trong TN13 ........................................ 96
Hình 4. 59 Đáp ứng độ sâu của AUV trong TN13 ....................................... 96
Hình 4. 60 Quỹ đạo chuyển động của AUV trong TN13 .............................. 97
Hình 4. 61 Quỹ đạo trên mặt phẳng ngang của AUV trong TN13 ............... 97
Hình 4. 62 Khoảng cách dạt trên mặt phẳng ngang (TN13)........................ 97
Hình 4. 63 Đáp ứng hướng đi của AUV trong TN14 ................................... 98
Hình 4. 64 Đáp ứng tốc độ của AUV trong TN14 ........................................ 98
Hình 4. 65 Đáp ứng độ sâu của AUV trong TN14 ....................................... 99
Hình 4. 66 Qũy đạo chuyển động của AUV trong TN14 .............................. 99
Hình 4. 67 Qũy đạo trên mặt phẳng ngang của AUV (TN14) ...................... 99
Hình 4. 68 Khoảng cách dạt trên mặt phẳng ngang (TN14)...................... 100
Hình 4. 69 Đáp ứng hướng đi của AUV trong TN15 ................................. 100
Hình 4. 70 Đáp ứng tốc độ của AUV trong TN15 ...................................... 101
Hình 4. 71 Đáp ứng độ sâu của AUV trong TN15 ..................................... 101
Hình 4. 72 Quỹ đạo chuyển động của AUV trong TN15 ............................ 102
Hình 4. 73 Quỹ đạo trên mặt phẳng ngang của AUV trong TN15 ............. 102
Hình 4. 74 Khoảng cách dạt trên mặt phẳng ngang (TN15)...................... 102
xvii
MỞ ĐẦU
Cho đến ngày nay, các phương pháp điều khiển truyền thống để thiết
kế các hệ thống điều khiển tiên tiến cho phương tiện thủy điển hình như bộ
điều khiển tỷ lệ - vi phân – tích phân (PID) vẫn còn phổ biến bởi vì nó có cấu
trúc đơn giản và tính bền vững cao, dễ tổng hợp và thiết kế. Tuy nhiên, việc
cải tiến chất lượng bộ điều khiển PID của hệ thống điều khiển vẫn luôn là đề
tài nóng hổi cho các nhà nghiên cứu. Bởi vì khi thiết kế bộ điều khiển cho
phương tiện thủy, bộ điều khiển PID thường yêu cầu phải có mô hình động
học của phương tiện thủy đó. Nhưng trong thực tế, các tính năng động học
của chúng thường mang tính phi tuyến cao và chịu ảnh hưởng của nhiều yếu
tố nhiễu loạn bên ngoài. Đặc biệt là phương tiện lặn tự hành (AUV) trong môi
trường 6 bậc tự do. Các yếu tố nhiễu loạn bên ngoài cũng mang những đặc
tính phi tuyến và không xác định cao. Điều đó dẫn đến việc phải xây dựng
các cấu trúc và tham số không xác định đồng thời yêu cầu phải có những kỹ
thuật điều khiển tiên tiến.
Vì vậy, các nhà khoa học không ngừng nghiên cứu cải tiến chất lượng
bộ điều khiển PID theo hai hướng: một là, cải tiến cấu trúc bộ điều khiển PID;
hai là kết hợp lý thuyết lô-gic mờ, mạng nơ-ron nhân tạo, thuật toán di truyền
và các lý thuyết điều khiển thông minh khác với bộ điều khiển PID thông
thường để đạt được chất lượng điều khiển mong muốn. Do vậy, các bộ điều
khiển kết hợp này còn được gọi là bộ điều khiển PID thông minh. Bộ điều
khiển PID thông minh không yêu cầu phải có mô hình toán học của đối tượng
một cách chính xác, các tham số của hệ thống có tính bền vững hơn.
Hiện nay, mạng nơ-ron nhân tạo (Artificial Neural Network) được ứng
dụng rộng rãi trong nhiều lĩnh vực, trong đó có lĩnh vực điều khiển tự động,
vì mạng nơ-ron có thể giải quyết những vấn đề điều khiển phức tạp, ngay cả
với đối tượng điều khiển có tính phi tuyến cao, có môi trường bên ngoài tác
động không dự đoán được, làm cho tính năng của đối tượng trở nên khó điều
2
khiển. Hơn nữa, khả năng tính toán nhanh của mạng nơ-ron cũng làm cho
chúng trở nên khả thi với các ứng dụng điều khiển theo thời gian thực [1],
[2], [3], [5], [6], [33].
Để giải quyết được các bài toán có yếu tố không xác định trong các mô
hình động học tàu thủy mặt nước hay phương tiện ngầm cũng như nhiễu loạn
do môi trường bên ngoài như sóng, gió, dòng chảy…, phương pháp sử dụng
mạng nơ-ron nhân tạo đã chứng tỏ được hiệu quả và tính khả thi trong điều
khiển [8], [9], [14], [61-64] và đã được đề xuất, nghiên cứu và phát triển nhiều
trên thế giới trong thời gian gần đây.
1. Tính cấp thiết của đề tài
Với lợi thế về biển, Việt Nam đã có chủ trương phát triển mạnh ngành
vận tải biển và công nghiệp đóng tàu, quản lý và khai thác tài nguyên biển
theo hướng hội nhập quốc tế và đáp ứng nhu cầu của xã hội với mục tiêu
“phát triển kinh tế biển phù hợp với Chiến lược biển Việt Nam đến năm 2020,
phục vụ nhu cầu phát triển kinh tế - xã hội; góp phần củng cố quốc phòng, an
ninh và bảo vệ chủ quyền quốc gia trên các vùng biển và hải đảo của Tổ
quốc”. Tại Việt Nam, việc nghiên cứu hệ thống điều khiển tiên tiến cho AUV
vẫn còn non trẻ và chưa được ứng dụng rộng rãi.
Mặc dù vậy nhu cầu ứng dụng AUV cho khảo sát biển, các công trình
ngầm dưới nước, thăm dò và bảo trì đường ống hay cáp ngầm, tìm kiếm cứu
nạn dưới biển tại Việt Nam vẫn ngày một tăng cao. Chúng ta vẫn chủ yếu
thuê hoặc mua các AUV nước ngoài cho các công tác này. Những nghiên cứu
nhằm nâng cao chất lượng hệ thống điều khiển AUV, từng bước tự chủ công
nghệ chế tạo, vận hành AUV tại Việt Nam là rất cần thiết cho ngành khai
thác, thăm dò, quản lý biển và phục vụ an ninh quốc phòng, bảo vệ biển đảo
và chủ quyền quốc gia trên biển.
Vì vậy nghiên cứu điều khiển AUV sẽ là một trong những vấn đề quan
trọng cho sự nghiệp hiện đại hóa ngành chế tạo và điều khiển phương tiện
ngầm tại Việt Nam. Từ các lý do trên, tác giả đã chọn đề tài “Nghiên cứu
điều khiển thích nghi cho robot lặn tự hành”.
3
lượng tốt phục vụ cho điều khiển AUV trong thực tế, góp phần vào phát triển
kinh tế biển của đất nước. Đây chính là ý nghĩa khoa học và thực tiễn của đề
tài.
6. Những điểm đóng góp mới của luận án
Luận án có những kết quả mới đóng góp cho việc nghiên cứu lý thuyết
và thực nghiệm điều khiển AUV như sau:
- Hệ thống hóa lý thuyết và thực tiễn điều khiển AUV tại Việt Nam
và trên thế giới.
- Đề xuất BĐK nơ-ron thích nghi cho các tình huống điều khiển
chuyển động của AUV bằng mạng nơ-ron thích nghi trực tuyến.
- Khảo sát các thuật toán được đề xuất và ứng dụng trong điều khiển
AUV với các tình huống chuyển động thực tế được mô phỏng trên
máy tính.
- Đề xuất hệ thống điều khiển dẫn đường cho AUV sử dụng BĐK nơ-
ron, tăng cường khả năng thích nghi bằng cách nâng cấp hàm mục
tiêu và hàm huấn luyện mạng nơ-ron.
7. Kết cấu của luận án
Luận án gồm các nội dung chính được phân bố thành các phần như sau:
- Mở đầu
- Chương 1: Tổng quan về điều khiển robot lặn tự hành
(Autonomous Underwater Vehicle).
- Chương 2: Cơ sở lý thuyết điều khiển nơ-ron thích nghi thiết bị lặn
tự hành.
- Chương 3: Thiết kế hệ thống điều khiển nơ-ron thích nghi cho thiết
bị lặn tự hành.
- Chương 4: Mô phỏng điều khiển AUV bằng mạng nơ-ron thích
nghi.
- Kết luận
5
CHƯƠNG 1
Vấn đề đặt ra là các công việc dưới nước được thực hiện trong môi
trường khắc nghiệt như độ sâu, sóng, gió, ô nhiễm, nguy hiểm …, với các
công cụ thô sơ, các thợ lặn làm việc dưới nước thì khả năng còn giới hạn và
tính rủi ro cao. Vì vậy, sự trợ giúp của các công cụ nghiên cứu, giám sát hiện
đại là việc làm tất yếu. Đó chính là một trong những lý do quan trọng để
nghiên cứu và phát triển các loại phương tiện, thiết bị ngầm phục vụ cho các
nhiệm vụ dưới nước và phương tiện ngầm điều khiển từ xa, có khả năng tự
hành được chọn làm đề tài nghiên cứu trong luận án này.
Hiện nay, trên thế giới có nhiều loại phương tiện ngầm khác nhau để
thực hiện các công việc dưới nước nhưng phổ biến có hai loại sau: phương
tiện ngầm điều khiển từ xa (tên tiếng Anh: Remotely Operated Vehicles, tên
viết tắt: ROV), phương tiện ngầm tự hành (tên tiếng Anh: Autonomous
Underwater Vehicles, tên viết tắt: AUV)…Mỗi loại có tính ưu việt và ứng
6
dụng riêng, trong phạm vi luận án này tác giả nghiên cứu về điều khiển
phương tiện ngầm điều khiển từ xa có khả năng tự hành - được gọi là AUV.
Tuy nhiên, tác giả cũng giới thiệu sơ lược về AUV, nhằm cung cấp các kiến
thức tổng quan về các loại phương tiện ngầm này.
Trên thế giới có nhiều nước đã và đang phát triển rất mạnh về điều
khiển các phương tiện tự hành dưới nước với công nghệ điều khiển tích hợp
cao như là Na Uy, Mỹ, Nga và Pháp... Các mẫu phương tiện tự hành dưới
nước này sẽ được trình bày cụ thể trong bảng 1.1 [7], [10], [11], [12], [13]:
Bảng 1. 1 Một số mẫu AUV trên thế giới.
triển. AUV hiện đang góp mặt trong nhiều ứng dụng khác nhau, từ quân sự
đến dân sự, từ kinh tế đến nghiên cứu khoa học [7], [10].
Tại Việt Nam, AUV hiện chỉ mới được nghiên cứu những năm gần
đây. Những AUV đầu tiên do các nhóm nghiên cứu robot phát triển với mục
đích đơn thuần là xây dựng các mô hình nhỏ để nghiên cứu lý thuyết, với kết
cấu tương đối đơn giản, ví dụ như robot cá với khả năng di chuyển phỏng
sinh học, mô hình AUV, ROV.
Hình 1.1 Nghiên cứu AUV mô hình tại trường ĐH Bách khoa Hà Nội [7]
Hình 1.2 KIAL – AUV của ĐH Bách khoa TP Hồ Chí Minh phối hợp nghiên
cứu với Hàn Quốc [10]
11
1.1.3 Mô hình toán học và phương trình động học tổng quát của AUV
Mô hình hóa AUV thường dựa trên thiết kế cơ khí, các nguyên lí động
học và tĩnh học. Tĩnh học ở đây là quan tâm tới vấn đề cân bằng của AUV
khi không có lực tác dụng hoặc đang di chuyển với vận tốc không đổi. Động
học giải quyết bài toán gia tốc chuyển động khi có sự tác động của lực từ chân
vịt hoặc lực bên ngoài [4], [7], [8], [9], [10].
Để xây dựng mô hình toán học cho AUV, chúng ta có thể xem AUV
trong không gian như một robot có 6 bậc tự do độc lập (6 DOF), xem AUV
như một vật rắn, chuyển động xoay của Trái Đất không ảnh hưởng đến gia
tốc của khối tâm và các hệ số thủy động lực học là hằng số [21], [22], [26-
28], [31].
Khi phân tích chuyển động của tàu trong 6 DOF, để thuận tiện người
ta đưa ra 2 hệ trục tọa độ có tâm trái đất làm tham chiếu như hình dưới. Ngoài
ra cũng còn có thêm nhiều hệ trục tọa độ khác phù hợp với từng mục đích
nghiên cứu.
thống định hướng quán tính. Gốc {i} được đặt tại tâm Oi của Trái Đất như
hình 1.3
• Hệ trục tọa độ ECEF (the Earth-centered Earth-fixed): {e} = (xe,
ye, ze) có tâm Oe đặt tại tâm của Trái Đất nhưng các trục thì lại quay tương
đối so với hệ trục ECI ( được cố định trong không gian) với vận tốc góc là
𝜔𝑒 = 7.2921 × 10−5 rad/s. Đối với các thiết bị di chuyển với tốc độ tương
đối thấp, ảnh hưởng do sự xoay của Trái Đất có thể được loại bỏ, do đó hệ
{e} có thể được xem như là hệ quán tính. Tuy nhiên khi xét đến sự trôi của
tàu thì không nên loại bỏ sự quay của Trái Đất. Hệ tọa độ {e} thường được
sử dụng cho định hướng, dẫn đường và điều khiển toàn cầu, ví dụ để mô tả
chuyển động và vị trí của tàu bè khi di chuyển từ lục địa này sang lục địa
khác.
Các hệ trục tọa độ địa lý:
• Hệ trục tọa độ NED (the North-East-Down): Đây là hệ trục tọa độ
mà chúng ta luôn đề cập đến thường ngày. {n} = (xn, yn, zn) với gốc On được
định nghĩa liên quan tới mặt ellipsoid tham chiếu của Trái Đất. Nó thường
được định nghĩa như là một mặt phẳng tiếp xúc trên bề mặt Trái Đất di chuyển
cùng với AUV, nhưng có các trục hướng theo các hướng khác so với các trục
cố định của AUV. Đối với hệ trục này thì trục x hướng về phương Bắc, trục
y hướng về hướng Đông còn trục z thì chỉ xuống dưới bề mặt Trái Đất. Vị trí
của {n} tương đối so với {e} được xác định bằng việc sử dụng hai góc l và μ(
kinh độ và vĩ độ).
• Hệ trục tọa độ BODY của AUV (the body-fixed reference frame):
{b}=(xb, yb, zb) với gốc Ob là một hệ tọa độ chuyển động, nhưng cố định so
với AUV. Vị trí và hướng của AUV được mô tả tương đối so với hệ trục quán
tính (xấp xỉ bởi {e} hoặc {n} ) trong khi đó vận tốc dài và vận tốc góc của
AUV nên được mô tả trong hệ trục tọa độ body-fixed. Gốc Ob thường được
chọn trùng với điểm giữa của AUV, được gọi là CO. Đối với các phương tiện
hàng hải, các trục của hệ BODY được chọn như hình 1.4:
13
Các chuyển động chung của AUV trong hệ tọa độ 6 DOF có thể được
mô tả thành các vector sau:
𝜂 = [𝑝𝑇 , Θ𝑇 ] , 𝑝 = [𝑥, 𝑦, 𝑧]𝑇 , Θ = [𝜙, 𝜃, 𝜓]𝑇 ;
V = [𝑣 𝑇 , 𝜔𝑇 ] , 𝑣 = [𝑢, v, 𝑤]𝑇 , 𝜔 = [𝑝, 𝑞, 𝑟]𝑇 ;
14
Theo tài liệu [5], ta có được ma trận chuyển đổi vận tốc góc từ hệ tọa
độ {b} sang hệ tọa độ {n} như sau:
𝜔𝑏𝑛 = 𝑇𝑏𝑛 Θ̇ (1.4)
Động học:
Tổng kết lại những phần trên, ta được phương trình động học 6 DOF
dưới dạng vector như sau:
𝜂̇ = 𝐽(𝜂)V
𝑏
𝑝̇ 𝑅𝑏𝑛 03𝑥3 𝑣𝑏/𝑛 (1.7)
[ ]=[ ][ 𝑏 ]
Θ̇ 03𝑥3 𝑇𝑏𝑛 𝜔𝑏/𝑛
Theo định luật Newton cho vật rắn có khối lượng m, ta có phương trình
cân bằng lực và moment như sau:
𝑏 𝑏 𝑏 𝑏 𝑏 𝑏
𝑚[𝑣̇ 𝑏/𝑛 + 𝜔̇ 𝑏/𝑛 × 𝑟𝑔𝑏 + 𝜔𝑏/𝑛 × 𝑣𝑏/𝑛 + 𝜔𝑏/𝑛 × (𝜔𝑏/𝑛 × 𝑟𝑔𝑏 )] = 𝑓𝑏𝑏 (1.8)
𝑏 𝑏 𝑏 𝑏 𝑏 𝑏
𝐼𝑏 𝜔̇ 𝑏/𝑛 + 𝜔𝑏/𝑛 × (𝐼𝑏 𝜔𝑏/𝑛 ) + 𝑚𝑟𝑔𝑏 × (𝑣̇ 𝑏/𝑛 + 𝜔𝑏/𝑛 × 𝑣𝑏/𝑛 ) = ɱ𝑏𝑏 (1.9)
Trong đó:
𝑓𝑏𝑏 = [𝑋, 𝑌, 𝑍]𝑇 : lực tác dụng qua tâm Ob được biểu diễn trong {b}.
ɱ𝑏𝑏 = [𝐾, 𝑀, 𝑁]𝑇 : moment đối với Ob được biểu diễn trong {b}.
𝑏
𝑣𝑏/𝑛 = [𝑢, v, 𝑤]𝑇 : vận tốc dài của Ob đối với On được biểu diễn trong
{b}.
𝑏
𝜔𝑏/𝑛 = [𝑝, 𝑞, 𝑟]𝑇 : vận tốc góc của {b} so với {n} được biểu diễn trong
{b}.
𝑇
𝑟𝑔𝑏 = [𝑥𝑔 , 𝑦𝑔 , 𝑧𝑔 ] : vector từ Ob đến CG được biểu diễn trong {b}.
Từ trên ta suy ra phương trình các lực và moment trên AUV:
𝑚[𝑢̇ − v𝑟 + 𝑤𝑞 − 𝑥𝑔 (𝑞 2 + 𝑟 2 ) + 𝑦𝑔 (𝑝𝑞 − 𝑟̇ ) + 𝑧𝑔 (𝑝𝑟 + 𝑞̇ )] = 𝑋
𝑚[v̇ − 𝑤𝑝 + 𝑢𝑟 − 𝑦𝑔 (𝑟 2 + 𝑝2 ) + 𝑧𝑔 (𝑞𝑟 − 𝑝̇ ) + 𝑥𝑔 (𝑞𝑝 + 𝑟̇ )] = 𝑌
𝑚[𝑤̇ − 𝑢𝑞 + v𝑝 − 𝑧𝑔 (𝑝2 + 𝑞 2 ) + 𝑥𝑔 (𝑟𝑝 − 𝑞̇ ) + 𝑦𝑔 (𝑟𝑞 + 𝑝̇ )] = 𝑍
𝐼𝑥 𝑝̇ + (𝐼𝑧 − 𝐼𝑦 )𝑞𝑟 − (𝑟̇ + 𝑝𝑞)𝐼𝑥𝑧 + (𝑟 2 − 𝑞 2 )𝐼𝑦𝑧 + (𝑝𝑟 − 𝑞̇ )𝐼𝑥𝑦
(1.10)
+𝑚[𝑦𝑔 (𝑤̇ − 𝑢𝑞 + v𝑝) − 𝑧𝑔 (v̇ − 𝑤𝑝 + 𝑢𝑟)] = 𝐾
17
= 𝐼𝑦𝑥 (1.12)
= 𝐼𝑧𝑥
= 𝐼𝑧𝑦
Nếu chọn gốc tọa độ Ob trùng với trọng tâm của AUV thì 𝑟𝑔𝑏 = [0,0 , 0]𝑇 ,
phương trình sẽ đơn giản hơn trong quá trình tính toán.
𝑚(𝑢̇ − v𝑟 + 𝑤𝑞) = 𝑋
𝑚(v̇ − 𝑤𝑝 + 𝑢𝑟) = 𝑌
𝑚(𝑤̇ − 𝑢𝑞 + v𝑝) = 𝑍
𝐼𝑥 𝑝̇ + (𝐼𝑧 − 𝐼𝑦 )𝑞𝑟 = 𝐾 (1.13)
𝐼𝑦 𝑞̇ + (𝐼𝑥 − 𝐼𝑧 )𝑟𝑝 = 𝑀
𝐼𝑧 𝑟̇ + (𝐼𝑦 − 𝐼𝑥 )𝑝𝑞 = 𝑁
18
Phương trình tổng quát của AUV khi độ sâu không đổi được viết lại
thành:
𝑀𝑞 𝑀𝜃 𝑀𝛿𝑠
𝑞̇ 0 𝑞
[ 𝑧̇ ] = [𝐼𝑦𝑦 − 𝑀𝑞̇ 𝐼𝑦𝑦 − 𝑀𝑞̇ ] [ 𝑧 ] + [𝐼𝑦𝑦 − 𝑀𝑞̇ ] 𝛿𝑠 (1.14)
𝜃̇ 0 0 −𝑈 𝜃 0
1 0 0 0
Trong đó: 𝛿𝑠 là góc bánh lái ở đuôi của AUV, 𝑈 là vận tốc của AUV.
1.2.1 Các nghiên cứu về điều khiển AUV trên thế giới
Trong lĩnh vực điều khiển tự động, các nhà khoa học thường có xu
hướng tiếp tục nghiên cứu phát triển phương pháp điều khiển mới dựa trên
phương pháp cũ để khắc phục những nhược điểm tồn tại hoặc tìm kiếm các
phương pháp hoàn toàn khác không dựa trên phương pháp cũ đã có trước đây
[5]. Điều này làm thúc đẩy mạnh mẽ các ứng dụng trong lĩnh vực điều khiển
tự động ở phạm vi rộng.
Mặc dù có những bước tiến mạnh mẽ, nhưng cho đến giờ các phương
pháp điều khiển mới vẫn chưa thay thế hoàn toàn các kỹ thuật phổ biến, như
điều khiển PID truyền thống. Kể từ khi thuật toán điều khiển PID được kỹ sư
người Mỹ gốc Nga Nicolas Minorsky áp dụng vào hệ thống máy lái tự động
tàu thủy năm 1922 đến nay, đã có nhiều nghiên cứu về bộ điều khiển PID này
được ứng dụng rộng rãi trong lĩnh vực điều khiển tự động kể cả việc ứng dụng
trí tuệ nhân tạo [28]. Mặc dù vậy, bộ điều khiển PID vẫn chiếm hơn 90% ứng
dụng trong các hệ thống công nghiệp [6].
Trong những năm gần đây, kỹ thuật điều khiển dùng mạng nơ-ron và
hệ thống Logic mờ đã phát triển rất nhanh chóng. Nhiều hệ thống Logic mờ
với các cách ứng dụng khác nhau đã được đề xuất và ứng dụng rộng rãi trong
kỹ thuật [5], [6].
Bộ điều khiển PID thích nghi dựa trên việc điều hưởng các tham số KP,
KI và KD bằng hệ thống Logic mờ thích nghi hoặc mạng nơ-ron nhân tạo được
gọi là điều khiển PID mờ, PID nơ-ron được các nhà khoa học nghiên cứu ứng
19
dụng rộng rãi trong hệ thống công nghiệp như các công trình nghiên cứu của
[11], [12], [13], [15], [16]. Hơn nữa, tính đơn giản là một trong những đặc
trưng quan trọng của bộ điều khiển PID và các nhà thiết kế hệ thống đã giữ
lại đặc điểm này. Các thuật toán được đề xuất thường không thay đổi cấu trúc
của bộ điều khiển PID thông thường mà cố gắng sử dụng khả năng thích nghi
của mạng nơ-ron hay hệ thống Logic mờ, hoặc kết hợp cả 2 kỹ thuật này.
Phát triển hệ thống điều khiển AUV là mục tiêu nghiên cứu của rất
nhiều nhà khoa học. Một số công trình nghiên cứu thiết kế hệ thống điều khiển
AUV tiêu biểu trước đây và trong thời gian gần đây như [11] – [22], [24] –
[26], [29], [34-46], [48-55], [57-65]. Trong số các phương pháp ứng dụng kỹ
thuật điều khiển với trí thông minh nhân tạo cho các phương tiện thủy, bên
cạnh Logic mờ, mạng nơ-ron đã chứng tỏ được khả năng tốt, hiệu quả và khả
thi khi tham gia điều khiển các hệ thống phức tạp, giúp nâng cao chất lượng
điều khiển.
Các tài liệu về những nghiên cứu từ giai đoạn 1990 đã từng bước hoàn
thiện mô hình toán học phức tạp của AUV và phương án điều khiển. Được
tham khảo trong nhiều tài liệu là mô hình động học AUV trong [26], [31].
Aage C. và Smitt L.W. (1994) trình bày đặc tính thủy động học của AUV
dạng dẹt [17] và các kết quả mô phỏng cho đối tượng này [18]. R. Cristi, F.A.
Papoulias và A.J. Healey (1990) nghiên cứu điều khiển thích nghi cho hoạt
động lặn của AUV [19]. Năm 1992 Y. Nakamura và S. Savant trình bày điều
khiển phi tuyến AUV theo đường đi mong muốn [20] và trong [21] nghiên
cứu các cảm biến dùng cho AUV phục vụ nghiên cứu biển và đại dương.
Các nghiên cứu về hoạt động của AUV vùng nước sâu cũng được trình
bày trong [22] của Bjerrum A. (1997) và [23] của Chance T.S. và các cộng
sự (2000). N.E. Leonard nghiên cứu về tổng hợp bộ điều khiển và phương
pháp thích nghi cho đối tượng AUV (1995) trong [25]. Năm 1994 T. Prestero
trình bày mô phỏng hoạt động của REMUS AUV 6 bậc tự do, tổng hợp các
thông số thủy động học giúp cho mô hình có thể ứng dụng cho các hoạt động
mô phỏng [27].
20
Năm 1990, D. Yoerger và cộng sự trình bày nghiên cứu về ảnh hưởng
của tính năng hệ động lực đến hoạt động của AUV và đưa vào tính toán thiết
kế hệ thống điều khiển [41]. Các nghiên cứu về Phoenix AUV được D.
Brutzman cùng cộng sự (1998) trình bày trong [45], [48] và D. Davis (1996)
trình bày trong [46]. Năm 1996 D. Marco và cộng sự nghiên cứu điều khiển
AUV trong cả chuyển động và thực hiện các nhiệm vụ dưới nước một cách
đồng thời, bước đầu giải quyết điều khiển các vấn đề phức tạp của AUV.
Trong luận án Tiến sĩ (1994) D. Brutzman đã giới thiệu phương pháp mô
phỏng với mô hình ảo để nghiên cứu AUV [50]. Trong nghiên cứu (1999) của
mình M. Sfakiotakis và cộng sự tìm hiểu mô hình bơi của robot cá nhằm ứng
dụng cho AUV loại này [56]. Năm 1993 A.J. Healey và D. Lienard giới thiệu
kỹ thuật điều khiển dạng trượt nhiều biến áp dụng cho điều khiển hướng và
độ sâu AUV [95].
Từ đầu thập niên đầu tiên của Thế kỷ 21 đến nay với khoảng thời gian
20 năm, các nghiên cứu về AUV cũng phong phú và phát triển mạnh mẽ hơn.
Mô hình toán học đối tượng dần được hoàn thiện hơn, các phương pháp điều
khiển hiện đại được ứng dụng phổ biến.
Fossen (2001) trình bày rất hệ thống về mô hình thủy động học và điều
khiển các phương tiện thủy, trong đó có AUV kể cả nguyên lý điều khiển dẫn
đường cho các phương tiện [30]. Năm 2001, T. Prestero tiếp tục trình bày mô
phỏng hoạt động của REMUS AUV 6 bậc tự do, tổng hợp các thông số thủy
động học giúp cho mô hình có thể ứng dụng cho các hoạt động mô phỏng tại
một ấn phẩm khác của MIT [59]. McEwen và Streitlien (2001) nghiên cứu
mô hình hóa và điều khiển AUV có chiều dài thay đổi [71]. Các tác giả trình
bày phương pháp mô hình hóa, tổng hợp hệ thống điều khiển vòng kín cho
AUV đối với hướng đi, độ sâu.
Năm 2003 W. Naeem và cộng sự nghiên cứu thuật toán điều khiển
LQG/LTR cho AUV với hệ thống dẫn đường lai cho nhiệm vụ bám theo
đường dây cáp ngầm dưới nước [72]. Bộ điều khiển tuyến tính “Linear
quadratic Gaussian controller with loop transfer recovery” (LQG/LTR) có
21
tính ổn định tốt điều khiển AUV ở các tốc độ khác nhau. D. Xu và các cộng
sự (2000) trình bày bộ điều khiển phi tuyến cấu trúc thay đổi 2 chế độ cho
AUV [96], trong đó bộ điều khiển áp dụng cho hệ SISO cho từng chuyển
động riêng của AUV đảm bảo tốc độ đáp ứng tối ưu, độ quá điều khiển nhỏ,
không có sai số tĩnh, không dao động. Huanan Yu và Jun Dai giới thiệu BĐK
mờ tinh chỉnh bằng thuật toán di truyền ứng dụng cho AUV [100], trong đó
BĐK mờ được tự động chọn tham số thông qua một thuật toán di truyền.
Trong nghiên cứu [107] năm 2001, vấn đề nhận dạng mô hình AUV
được P. Ridao và cộng sự thực hiện. Các tác giả sử dụng phương pháp bình
phương nhỏ nhất tính toán nhận dạng các thông số AUV riêng biệt theo từng
bậc tự do, với giả thiết tốc độ AUV chậm. Năm 2005 A. Thomas và các cộng
sự trình bày nghiên cứu về hệ động lực phản lực nước cho phương tiện ngầm
cỡ nhỏ [35]. Bài báo này đề xuất hệ thống động lực phản lực nước làm tăng
khả năng điều động, xoay trở cho AUV. Cũng vào năm 2005 này, X. Deng
và S. Avadhanula giới thiệu phương tiện ngầm siêu nhỏ chuyển động bằng
vây lắc [40]. Bài báo đã phân tích thiết kế hệ thống và tính toán các lực cho
hệ động lực này. Cùng thời điểm, M. Krieg và các công sự (2005) công bố
nghiên cứu về tối ưu đặc tính đẩy cho động cơ phản lực nước ứng dụng vào
điều động ở tốc độ thấp cho AUV [44]. Các tác giả đã thiết kế và thử nghiệm
nguyên mẫu cho hệ động lực đẩy này.
Trong nghiên cứu của L.A. Gonzalez (2004) tác giả trình bày các vấn
đề về mô hình hóa và điều khiển AUV [109]. K. Mohseni (2004) trình bày về
động cơ đẩy phản lực nước theo nhịp xung cho chuyển động của AUV cỡ nhỏ
[57], với khả năng điều động hoặc định vị cho AUV. Cũng năm 2004 A.
Healey nghiên cứu về tránh va cho AUV REMUS khi đang chuyển động theo
địa hình đáy [52]. Bài báo cho thấy hệ thống điều khiển có khả năng giúp
AUV tránh vật cản bất ngờ do sự thay đổi đột ngột của địa hình đáy. Tiếp tục
ứng dụng cho AUV REMUS, D. Hemminger (2005) cũng trình bày nghiên
cứu điều khiển tránh va trong mặt thẳng đứng cho AUV này sử dụng tín hiệu
22
siêu âm phía trước [53]. Xu hướng về AUV sinh học được P.R.
Bandyopadhyay trình bày trong [37] cũng vào năm 2005.
T.H. Furukawa (2006) trong luận án của mình đã trình bày về thuật
toán bám đường đi và tránh va chạm cho AUV sử dụng tín hiệu siêu âm phía
trước mũi [51]. Năm 2007 R. Prasanth Kumar và các cộng sự đề xuất điều
khiển bền vững AUV theo quỹ đạo dùng luật điều khiển trễ thời gian [33]. Bộ
điều khiển này dựa trên việc ước lượng trực tiếp tính năng động học của AUV,
các thí nghiệm mô phỏng chứng minh sự hiệu quả của luật điều khiển. Xu
Yuru và cộng sự năm 2006 và 2007 trình bày sự phát triển công nghệ AUV
[92] và triển vọng tương lai [93]. L. Lapierre và D. Soetanto (2007) đã nghiên
cứu về điều khiển phi tuyến bám quỹ đạo cho AUV [112], trong đó bộ điều
khiển được xây dựng dựa trên lý thuyết Lyapunov và kỹ thuật phản hồi tín
hiệu.
Năm 2008 M. Krieg và K. Mohseni giới thiệu nghiên cứu về đặc tính
động lực đẩy của hệ động lực mới, sự dụng chuyển động dạng xung tạo ra
phản lực cho AUV chuyển động ở tốc độ thấp [43]. P. Patron và cộng sự
(2008) nghiên cứu về chẩn đoán và chỉnh sửa kế hoạch thích nghi cho sửa lỗi
trong AUV [54]. Cũng năm 2008 này, P. Jantapremjit và P. A. Wilson trình
bày về điều khiển AUV bám quỹ đạo dựa trên hệ thống dẫn đường [111].
Trong bài báo này kỹ thuật dẫn đường bám theo quỹ đạo bằng thuật toán Line-
of-Sight được áp dụng.
Năm 2009 O. Yildiz và cộng sự có bài nghiên cứu hệ thống hóa các
vấn đề về điều khiển chuyển động cho AUV [79]. B. Regardt (2009) cũng
trình bày nghiên cứu về mô hình hóa và mô phỏng AUV [32], trong đó mô
hình toán học cho AUV được thực hiện cả về mô hình tuyến tính và phi tuyến
được đề xuất. P. Krishnamurthy và cộng sự (2009) nghiên cứu về AUV sinh
học 6 bậc tự do, công bố các kết quả mô phỏng và thực nghiệm [36]. Năm
2010 E. Lee nghiên cứu về thiết kế robot dạng cá, mềm và tự hành [58].
Thập niên vừa qua, các nghiên cứu cùng lĩnh vực này cũng phát triển
mạnh mẽ, đa dạng và áp dụng các nền tảng kiến thức mới nhất đối với mô
23
phỏng và điều khiển AUV. Năm 2011 A. Mazumdar và H.H. Asada nghiên
cứu về AUV sử dụng van “highbandwith coanda-effect” hoạt động ở tốc độ
chậm [34]. E. Miguelanez và cộng sự (2011) nghiên cứu nâng cao khả năng
nhận thức tình huống cho AUV dựa trên “semantic-knowedge” [55]. G.
Martins và cộng sự (2011) nghiên cứu AUV thông minh với công nghệ
XMOS [60]. M. Mazumdar và cộng sự (2012) trình bày nghiên cứu về mẫu
AUV nhỏ dùng cho khảo sát đường ống nhà máy điện hạt nhân [38]. Cũng
trong năm này, M. Mazumdar và H. Asada trình bày tiếp nghiên cứu điều
khiển hệ van cho hệ động lực của AUV có khả năng điều động cao [42]. Năm
2013 F. Giorgio và cộng sự trình bày nghiên cứu về hệ động lực xoáy cho
mẫu AUV thân mềm mới [39]. F. Rezazadegan và K. Shojaei (2013) nghiên
cứu điều khiển thích nghi 6 bậc tự do cho AUV với các hàm bão hòa [84].
Năm 2014 B. Geranmehr và S.R. Nekoo đề xuất điều khiển độc lập trạng thái
theo điểm đặt và theo quỹ đạo cho AUV trong mặt phẳng ngang [83].
Cũng vào năm 2014 A. Adhami-Mirhosseini và cộng sự công bố
nghiên cứu về điều khiển tự động theo địa hình đáy cho AUV [113]. J.
Ghommam và M. Saad (2014) trình bày điều khiển phản hồi và bám quỹ đạo
thích nghi cho nhóm các AUV trong mặt phẳng ngang [121]. X. Qi (2014)
nghiên cứu về điều khiển thích nghi quỹ đạo cho nhiều AUV [117].
Năm 2015 M.H. Khodayari và S. Balochian đăng tải nghiên cứu về mô
hình hóa và điều khiển hướng đi, độ sâu AUV bằng bộ điều khiển PID mờ tự
thích nghi [69]. J.E. Ruiz Duarte và J.E. Loukianov (2015) đã trình bày nghiên
cứu về điều khiển độ sâu AUV với điều khiển trượt bậc cao hơn [77]. Cũng
năm 2015 B. Geranmehr và S.R. Nekoo nghiên cứu về điều khiển phi tuyến
tối ưu AUV với phương trình trạng thái phụ thuộc Riccati [81]. Trước đó hai
tác giả này cũng công bố (2014) về điều khiển phi tuyến tối ưu độ sâu AUV
[82]. K. Mukherjee và cộng sự (2015) đề xuất điều khiển bám quỹ đạo cho
AUV với kỹ thuật trễ tín hiệu đầu vào [97]. M. Kim và cộng sự (2015) nghiên
cứu về bộ điều khiển trượt tích phân điều động chính xác cho AUV trong điều
kiện nhiễu ngoại cảnh tác động [114].
24
Năm 2016 Y. Wang và cộng sự nghiên cứu về điều khiển phản hồi
nhiều đầu ra thích nghi dạng trượt cho AUV [116]. M.S.M. Aras và cộng sự
(2016) đã đề cập đến điều khiển bằng Logic mờ cho độ sâu của ROV, dạng
robot ngầm điều khiển qua dây cáp [66]. Z. Chu và D. Zhu (2016) nghiên cứu
về điều khiển tối ưu dạng trượt cho AUV có tính đến tính năng động học của
các thiết bị đẩy [80]. Trong [115] R. Cui và cộng sự đề xuất điều khiển thích
nghi dạng trượt cho AUV với các đầu vào phi tuyến (2016).
Năm 2017 L. Shahaji nghiên cứu về điều khiển AUV [28], trong đó
trình bày điều khiển bền vững cho nhiệm vụ dẫn đường của AUV. P. Londhe
(2017) trình bày về điều khiển AUV và hệ thống tay máy dùng Logic mờ
[29]. U. Ansari và A.H. Bajodah (2017) công bố nghiên cứu về điều khiển
bền vững động học nghịch đảo cho AUV [65]. Cũng năm này M. Farhan và
cộng sự (2017) đề xuất điều khiển MIMO kiểu trượt cho AUV [68]. B.N.
Rath và cộng sự (2017) nghiên cứu về điều khiển hướng đi và độ sâu AUV
với kỹ thuật điều khiển phản hồi mới [75]. C. Shen (2017) trình bày về thuật
toán C/GMRES cho điều khiển dùng mô hình dự đoán phi tuyến đối với AUV
[122].
Năm 2018 M.R. Ramezani-al và Z.T Sereshki trình bày nghiên cứu về
bộ điều khiển thích nghi dạng trượt với luật thích nghi mới cho điều khiển
bám quỹ đạo của AUV [74]. F. Yao và cộng sự (2018) trình bày các thí
nghiệm đánh giá điều khiển độ sâu AUV dùng thuật toán điều khiển dự đoán
nâng cao [78].
Các nghiên cứu được đề cập đến trong giai đoạn trên giúp gợi mở
hướng nghiên cứu điều khiển AUV, các mô hình toán học có thể kế thừa cũng
như các phương án điều khiển AUV thực thi các nhiệm vụ dưới nước. Các tài
liệu trên trình bày nhiều cấu trúc AUV khác nhau, các phương pháp tổng hợp
hệ thống điều khiển, giao tiếp điều khiển từ xa và các ứng dụng AUV trong
thực tiễn khảo sát, nghiên cứu, tìm kiếm cứu nạn, …
25
1.2.2 Các nghiên cứu về điều khiển AUV tại Việt Nam
Tại Việt Nam việc nghiên cứu thuật toán điều khiển AUV đã xuất hiện
nhưng cụ thể nghiên cứu thuật toán điều khiển thích nghi cho AUV với mạng
nơ-ron thì còn ít gặp [3], [8], [9], các tài liệu cho thấy các nghiên cứu mới chỉ
dừng lại ở việc thiết kế mô hình động lực cho các AUV với các thử nghiệm
trong hồ thử ở độ sâu hạn chế. Tài liệu [7] của tác giả Nguyễn Đông trình bày
khá chi tiết thiết kế và đánh giá động lực học của mô hình AUV. Tác giả cũng
đề xuất thuật toán điều khiển hướng đi AUV trong mặt phẳng ngang và kiểm
tra bằng thực nghiệm. Tuy nhiên nghiên cứu này chưa đề cập đến hoạt động
của AUV ngầm dưới nước do hạn chế về cảm biến, hệ động lực và các yêu
cầu kỹ thuật khác. Tác giả cũng nêu rõ giới hạn này trong tài liệu nghiên cứu
của mình.
Các tổng kết trong [10] cũng chưa nói đến điều khiển AUV sử dụng
thuật toán mạng nơ-ron nhân tạo thích nghi trong nghiên cứu hệ thống điều
khiển. Tuy nhiên nghiên cứu chế tạo AUV này đã hoàn chỉnh về kết cấu và
có thử nghiệm bước đầu, cơ sở nghiên cứu cũng tại TP Hồ Chí Minh. NCS
hy vọng sẽ được hợp tác thử nghiệm các thuật toán điều khiển của mình khi
có điều kiện. Nghiên cứu sinh nhận thấy việc kết hợp các kết quả nghiên cứu
và phát triển thuật toán điều khiển thích nghi với các AUV là hướng đi rõ
ràng.
Như vậy, vấn đề nghiên cứu của trong luận án mang tính thời sự và
không trùng lặp với các công trình trước đó.
Qua phân tích và đánh giá tình hình nghiên cứu ở trên, ta thấy điều
khiển nơ-ron có tiềm năng rất lớn đối với các ứng dụng hàng hải nói chung
và điều khiển AUV nói riêng. Việc nghiên cứu ứng dụng lựa chọn thuật toán
thích nghi để nâng cao chất lượng bộ điều khiển dựa trên lý thuyết mạng nơ-
ron nhân tạo cho hệ thống điều khiển phương tiện thủy luôn là vấn đề thời sự
và cần phát triển hiện nay.
26
CHƯƠNG 2
Mạng nơ-ron nhân tạo (ANN) là một mô phỏng xử lý thông tin, được
nghiên cứu từ hệ thống thần kinh của sinh vật, giống như bộ não để xử lý
thông tin, bao gồm số lượng lớn các mối gắn kết cấp cao để xử lý các yếu tố
làm việc trong mối liên hệ giải quyết vấn đề rõ ràng. ANN giống như con
người, được học bởi kinh nghiệm, lưu những kinh nghiệm hiểu biết và sử
dụng trong những tình huống phù hợp.
Đầu tiên ANN được giới thiệu năm 1943 bởi nhà thần kinh học Warren
Mc Culloch và nhà lô-gic học Walter Pits. Nhưng với những kỹ thuật trong
thời gian này chưa cho phép họ nghiên cứu được nhiều. Từ những năm cuối
thế kỷ 20, đặc biệt là những năm gần đây, mô phỏng ANN xuất hiện và phát
triển ngày càng rộng rãi. Các nghiên cứu ứng dụng đã được thực hiện trong
các ngành: điện, điện tử, kỹ thuật chế tạo, y học, quân sự, giao thông, kinh
tế,…và mới nhất là các nghiên cứu ứng dụng trong lĩnh vực điều khiển các
phương tiện thủy.
2.1.1 Tổng quan về mạng nơ-ron nhân tạo trong điều khiển
2.1.1.1 Cấu trúc của mạng nơ-ron
a) Đơn vị xử lý
Một đơn vị xử lý, cũng được gọi là một nơ-ron hay một nút (node),
thực hiện một công việc rất đơn giản: Nhận tín hiệu vào từ các đơn vị phía
trước hay một nguồn bên ngoài và sử dụng chúng để tính tín hiệu ra sẽ được
lan truyền sang các đơn vị khác (hình 1.1).
Trong đó: xi - Các đầu vào (i = 1,... n);
w ji - Các trọng số tương ứng với các đầu vào;
28
j - Độ lệch (bias);
ngoài mạng hoặc đầu ra của một đơn vị khác, hoặc là đầu ra của chính nó.
b) Hàm xử lý
- Hàm kết hợp: Mỗi đơn vị trong mạng kết hợp các giá trị đưa vào nó
thông qua các liên kết với các đơn vị khác, sinh ra một giá trị gọi là đầu vào
mạng (net input). Hàm thực hiện nhiệm vụ này gọi là hàm kết hợp, được định
nghĩa bởi một luật lan truyền cụ thể. Trong phần lớn các mạng nơ-ron, thường
giả sử rằng, mỗi một đơn vị cung cấp một bộ cộng như là đầu vào cho đơn vị
mà nó có liên kết. Tổng đầu vào đơn vị j đơn giản là tổng trọng số của các
đầu ra riêng lẻ từ các đơn vị kết nối cộng thêm ngưỡng hay độ lệch (bias) j
29
n
a j = w ji xi + j (2.1)
i =1
Một số trường hợp có thể sử dụng các thuật toán lan truyền phức tạp
hơn, trong số đó là luật sigma-pi, có dạng:
n m
a j = w ji xik + j (2.2)
i =1 k =1
Rất nhiều hàm kết hợp sử dụng một độ lệch hay ngưỡng để tính đầu
vào mạng tới đơn vị. Đối với một đơn vị đầu ra tuyến tính, thông thường j
- Hàm kích hoạt (hàm truyền): Phần lớn các đơn vị trong mạng nơ-ron
chuyển đầu vào mạng bằng cách sử dụng một hàm vô hướng (scalar-to-scalar
function) gọi là hàm kích hoạt, kết quả của hàm này là một giá trị gọi là mức
độ kích hoạt của đơn vị. Loại trừ khả năng đơn vị đó thuộc lớp ra, giá trị kích
hoạt được đưa vào một hay nhiều đơn vị khác. Các hàm kích hoạt hay được
sử dụng hiện nay là:
Hàm truyền tuyến tính (Linear transfer function) (hình 2.2), được gọi
là hàm đồng nhất (Identity function).
g ( x) = x (2.3)
Hàm truyền giới hạn cứng (Hard - Limit transfer function), được biết
đến với tên hàm ngưỡng (Threshold function hay Heaviside function) hay
hàm bước nhị phân. Đầu ra hàm này được giới hạn vào một trong hai giá trị:
1, nếu x ≥ 0
g(x) = (2.4)
0, nếu x < 0
30
Dạng hàm này được sử dụng trong các mạng chỉ có một lớp. Trong
hình 2.3, được chọn bằng 1.
số trường hợp, các giá trị kích hoạt của các đơn vị trải qua quá trình nới lỏng
(tăng giảm số đơn vị và thay đổi các liên kết) cho đến khi mạng đạt đến một
trạng thái ổn định và các giá trị kích hoạt không thay đổi nữa.
2.2 Ứng dụng mạng nơ-ron nhân tạo điều khiển AUV
Phần này tác giả tổng kết và phân tích các nghiên cứu gần đây về ứng
dụng mạng nơ-ron nhân tạo trong điều khiển nói chung và AUV nói riêng.
Những nghiên cứu này tiêu biểu cho giai đoạn 30 năm trở lại đây.
Năm 1995 F.L. Lewis và cộng sự nghiên cứu về bộ điều khiển nơ-ron
cho robot bám theo quỹ đạo với thuật toán bền vững [86]. Cũng năm này,
R.M. Sanner (1995) và cộng sự trình bày nghiên cứu về điều khiển thích nghi
cánh tay robot dùng mạng nơ-ron nhân tạo, trong đó thuật toán nơ-ron thích
nghi được áp dụng [108].
B. Borvic (2001) và cộng sự nghiên cứu về điều khiển AUV sử dụng
mạng nơ-ron nhân tạo [14]. Trong đó bộ điều khiển xử lý nhiệm vụ điều khiển
chính xác chuyển động của AUV tính đến tính năng động học của hệ động
lực, dòng chảy. Bộ điều khiển sử dụng kết hợp thuật toán truyền thống và
mạng nơ-ron nhân tạo thích nghi. J.H. Li và cộng sự (2002) trình bày nghiên
cứu điều khiển chuyển động của AUV với bộ điều khiển nơ-ron thích nghi
[104].
35
J.Q. Huang và F. L. Lewis (2003) đề xuất nghiên cứu về điều khiển các
hệ phi tuyến bằng kỹ thuật điều khiển dự đoán sử dụng mạng nơ-ron nhân tạo
với tín hiệu đầu vào trễ [118].
Yang Shil và Weiqi Qian (2007) trình bày nghiên cứu điều khiển thích
nghi độ sâu AUV áp dụng mạng nơ-ron truyền thẳng [94]. Đây là mạng nơ-
ron phổ biến và cũng được trình bày và ứng dụng trong [3], [8], [9]. A.
Forouzantabar (2007) và cộng sự đề xuất điều khiển mô hình robot mới có
thể bước đi dùng mạng nơ-ron [102] bộ điều khiển nơ-ron với thuật toán lan
truyền ngược tín hiệu [110].
Năm 2008 L. Zhang và cộng sự đề xuất nghiên cứu điều khiển AUV
dựa trên mạng nơ-ron mờ, đây là kỹ thuật kết hợp mạng nơ-ron với thuật toán
điều khiển mờ nhằm nâng cao chất lượng bộ điều khiển theo hướng tận dụng
ưu điểm của mạng nơ-ron và logic mờ [105].
Năm 2010 X. Liang và cộng sự đề xuất điều khiển chuyển động cho
AUV với mạng nơ-ron song song [103].
Năm 2012 A. Forouzantabar và cộng sự công bố nghiên cứu về điều
khiển nơ-ron thích nghi cho AUV [64]. Mô hình AUV này có tính phi tuyến
cao, vì vậy các tác giả sử dụng mạng nơ-ron phi tuyến để xấp xỉ đặc tính động
học của AUV giúp vượt qua được các hạn chế của các bộ điều khiển truyền
thống và đảm bảo chất lượng điều khiển tốt. Tính ổn định được đảm bảo bằng
nguyên lý Lyapunov và bộ điều khiển được kiểm chứng đánh gia qua mô
phỏng.
Năm 2013 J. Liu giới thiệu nghiên cứu về ứng dụng mạng nơ-ron
“Radial Basic Function” cho điều khiển các hệ thống cơ khí. Tác giả trình
bày phân tích hệ thống, thiết kế và mô phỏng trên Matlab [70]. B.B. Miao và
cộng sự (2013) trình bày nghiên cứu về điều khiển thích nghi bền vững cho
AUV bám quỹ đạo sử dụng mạng nơ-ron nhiều lớp [119].
Năm 2014 X. Lei và P. Lu đã trình bày về điều khiển cánh xoay của
phương tiện bay không người lái loại nhỏ dùng mạng nơ-ron thích nghi Radial
Basic Function [88]. M.M. Fateh và cộng sự (2014) cũng áp dụng mạng nơ-
36
ron này để điều khiển thích nghi hệ thống cánh tay robot [89]. J. Sun và J.
Chen (2014) đã nghiên cứu điều khiển dự đoán với mạng nơ-ron cho các hệ
thống cho các tín hiệu trễ không xác định hoặc xác định một phần [124],
nghiên cứu này có thể tham khảo cho điều khiển hệ thống động học phức tạp
như AUV. Tiếp theo C.F. Caruntu và C. Lazar (2014) trình bày về dự đoán
bù trễ cho mạng dựa trên mô hình trễ thời gian [127].
Năm 2015 M. Daachi và cộng sự nghiên cứu về bộ điều khiển nơ-ron
thích nghi cho khớp nối hỗ trợ đầu gối [87]. Bộ điều khiển này dùng mạng
nơ-ron Radial Basic Function. Y. Chu và J. Fei (2015) cũng đã sử dụng mạng
nơ-ron này cho điều khiển thích nghi dạng trượt kính viễn vọng MEMS [90].
Năm 2016 Y.C. Liu và cộng sự đã ứng dụng bộ điều khiển nơ-ron kết
hợp logic mờ điều khiển thích nghi bền vững cho AUV có tính đến động học
hệ động lực [120]. Cũng năm 2016 J. Gao và cộng sự đề xuất nghiên cứu điều
khiển thích nghi dự đoán sử dụng mạng nơ-ron với mô hình dự đoán nhận
dạng ảnh [123]. S. Li và G.P. Liu (2016) đề xuất nghiên cứu điều khiển dự
đoán sử dụng mạng nơ-ron cho các hệ phi tuyến cao có nhiễu loạn và mất dữ
liệu [125]. Tiếp theo Y. Sheng và cộng sự (2016) trình bày nghiên cứu về ổn
định toàn bộ cho trễ phụ thuộc của mạng nơ-ron hồi quy trễ [126]. Y. Ding
và cộng sự (2016) điều khiển độ sâu AUV bằng kỹ thuật điều khiển dự đoán
[128].
Năm 2017 B. Geranmehr và K. Vafaee trình bày nghiên cứu về bộ điều
khiển nơ-ron thích nghi lai dạng trượt với thành phần tham số bền vững cho
AUV [63]. Nghiên cứu này sử dụng điều khiển phi tuyến có khả năng loại bỏ
nhiễu loạn thông qua kỹ thuật ước lượng thông minh các đặc tính không chắc
chắn của AUV và môi trường. Tác giả sử dụng mạng nơ-ron Radial Basic
Function để ước lượng các thành phần không chắc chắn và chưa xác định của
đặc tính động học.
Cũng vào năm 2017, R. Cui và cộng sự trình bày nghiên cứu về điều
khiển AUV bằng mạng nơ-ron thích nghi với đầu vào điều khiển phi tuyến sử
dụng thuật toán học tăng cường [67]. Bài báo này trình bày điều khiển AUV
37
theo quỹ đạo trong mặt phẳng ngang tính đến ảnh hưởng của ngoại cảnh, tính
phi tuyến của tín hiệu vào và của mô hình AUV. Bộ điều khiển nơ-ron thích
nghi sử dụng 2 mạng nơ-ron critic và action để đánh giá chất lượng bộ điều
khiển vào thời điểm hiện tại và để bù thành phần động học không xác định.
Phần tử bù được các tác giả thêm vào để loại bỏ các yếu tố phi tuyến của tín
hiệu vào điều khiển. Bộ điều khiển nơ-ron thích nghi này được kiểm chứng
đánh giá bằng mô phỏng.
Năm 2018 Jiemei Zhao trình bày nghiên cứu về điều khiển dự đoán sử
dụng mạng nơ-ron cho AUV với kỹ thuật trễ tín hiệu đầu vào [62]. Trong đó
bộ điều khiển thực hiện nhiệm vụ điều khiển AUV bám theo đường đi. Để bù
độ trễ trong hệ thống điều khiển và thực hiện yêu cầu bám theo đường đi xác
định, tác giả đề xuất thuật toán điều khiển dự đoán. Một mạng nơ-ron được
sử dụng để ước lượng thành phần phi tuyến không chắc chắn trong tính năng
động học của AUV và do sự tương tác của các thành phần góc hướng, góc
chúi và góc nghiêng AUV. Tính ổn định được đảm bảo bằng nguyên lý
Lyapunov. Tác giả cũng mô phỏng kiểm chứng thuật toán đã đề xuất.
Năm 2019 U. Ansari và A.H. Bajodah nghiên cứu về điều khiển AUV
với thuật toán nơ-ron thích nghi và động học nghịch đảo [61]. Trong bài báo,
kết cấu điều khiển 2 vòng lặp được trình bày. Vòng ngoài (chậm) sử dụng bộ
điều khiển PD truyền thống để tạo lệnh điều khiển góc hướng và góc chúi dựa
trên sai số vị trí. Lệnh điều khiển độ sâu được đưa vào vòng điều khiển trong
(nhanh), trong đó sử dụng thuật toán điều khiển nơ-ron thích nghi và động
học nghịch đảo (Neuro-Adaptive Generalized Dynamic Inversion / NAGDI).
Thêm vào đó tác giả sử dụng mạng nơ-ron Radial Basic Function để ước
lượng thành phần phi tuyến trong chuyển động trục đứng của AUV nâng cao
khả năng thích nghi cho hệ thống điều khiển.
Tại Việt Nam các tác giả trong [3], [8] và [9] giới thiệu thuật toán điều
khiển nơ-ron cho AUV và mô phỏng kết quả trên máy tính. Những nghiên
cứu loại này chưa nhiều và chưa ứng dụng đầy đủ cho các tình huống làm
việc của AUV.
38
CHƯƠNG 3
Trong chương này tác giả nghiên cứu nguyên lý ứng dụng mạng nơ-
ron thích nghi tương tác [3] vào điều khiển đối tượng AUV với hai hướng
chính: điều khiển riêng các chuyển động của AUV và điều khiển dẫn đường
cho AUV thực hiện các nhiệm vụ dưới nước. Tác giả trình bày cách đưa vấn
đề điều khiển trong từng tình huống vào hàm mục tiêu của mạng nơ-ron và
đề xuất thuật toán huấn luyện mạng trực tuyến trong quá trình điều khiển để
đạt được các mục tiêu điều khiển. Kỹ thuật dẫn đường cho AUV cũng được
giới thiệu để kết hợp với thuật toán điều khiển giúp AUV thực hiện tự động
các nhiệm vụ dưới nước. Các kết quả mô phỏng minh họa cho từng tình huống
lần lượt được trình bày trong Chương 4.
Hình 3.2 Sơ đồ cấu tạo các chi tiết của NSP AUV II
Mô hình AUV này có chiều dài 3m, rộng 0,4m và cao 0,25m. Vỏ bằng
nhôm 6061 dày 0,25 inch. Trọng lượng toàn bộ là 220kg. Phần mũi làm bằng
vật liệu mica đặc biệt chứa ắc-quy, các cảm biến, các mạch điện và công tắc.
Nguồn cấp là ắc-quy 12V. Tốc độ cao nhất của AUV là 4 hải lý/giờ (knots),
ở tốc độ này AUV duy trì thời gian làm việc được 4 giờ. AUV được thiết kế
để hoạt động ở vùng nước nông với độ sâu hoạt động 30m, nếu gia cường
thêm có thể hoạt động ở độ sâu tối đa 100m.
Cấu tạo hệ động lực AUV này gồm 2 cánh điều khiển hướng phía trước,
2 cánh điều khiển hướng phía sau; 2 cánh điều khiển độ sâu phía trước, 2 cánh
điều khiển độ sâu phía sau; 2 chân vịt cố định phía sau vận hành bằng động
cơ điện. Ngoài ra NSP AUV II còn có chân vịt đẩy theo chiều ngang (thruster)
ở phía trước và phía sau, tuy nhiên với luận án này tác giả không sử dụng đến
trong các mô phỏng điều khiển của mình.
ẋ 1 −M −1 (C + D) −M −1 g(t) x1 −1
[ ]=[ ] [x ] + [M ] τc (3.2)
ẋ 2 JB/E (t) 0 2 0
Trong đó, x1(t) = Δν(t) = ν(t) - νref(t) và x2(t) = Δη(t) = η(t) - ηref(t) là
các đại lượng thu được thu được tự trạng thái; M, C, D, g, JB/E, và τC lần lượt
là ma trận khối lượng, ma trận lực Coriolis, ma trận lực cản thủy động, ma
trận lực trọng trường, ma trận chuyển đổi từ hệ trục Body-fixed{B} sang hệ
trục Earth-fixed {E}, và ma trận lực / mô-men điều khiển [30], [31].
Phương trình chuyển động của AUV:
Theo [30], [31], phương trình chuyển động động lực học phi tuyến của
AUV như sau:
𝑀𝑉̇ + 𝐶(𝑉)𝑉 + 𝐷(𝑉)𝑉 + g(𝜂) + g 0 = 𝜏 + 𝜏𝑤𝑖𝑛𝑑 + 𝜏𝑤𝑎𝑣𝑒 (3.3)
Trong trường hợp có xét vận tốc dòng chảy, ta được vector vận tốc
tương đối là:
𝑉𝑟 = 𝑉 − 𝑉𝑐 , 𝑉𝑐 = [𝑢𝑐 , v𝑐 , 𝑤𝑐 , 0,0,0]𝑇
Phương trình (3.3) trở thành:
𝑀𝑅𝐵 𝑉̇ + 𝐶𝑅𝐵 (𝑉)𝑉 + 𝑀𝐴 𝑉𝑟̇ + 𝐶𝐴 (𝑉𝑟 )𝑉𝑟 + 𝐷(𝑉𝑟 )𝑉𝑟 + g(𝜂) + g 0 (3.4)
= 𝜏 + 𝜏𝑤𝑖𝑛𝑑 + 𝜏𝑤𝑎𝑣𝑒
Nếu chỉ giới hạn ở nước tĩnh trong hồ thì có thể bỏ qua ảnh hưởng của
dòng chảy, ảnh hưởng của gió và của sóng. Phương trình chuyển động của
AUV cuối cùng là:
𝑀𝑉𝑟̇ + 𝐶(𝑉𝑟 )𝑉𝑟 + 𝐷(𝑉𝑟 )𝑉𝑟 + g(𝜂) + g 0 = 𝜏 (3.5)
Trong đó:
- 𝑀 = 𝑀𝑅𝐵 + 𝑀𝐴 : ma trận lực quán tính (tính cả quán tính chất lỏng).
- 𝐶(𝑉𝑟 ) = 𝐶𝑅𝐵 (𝑉𝑟 ) + 𝐶𝐴 (𝑉𝑟 ): ma trận lực hướng tâm Coriolis (tính cả
quán tính chất lỏng).
- 𝐷(𝑉𝑟 ): ma trận lực cản.
- g(𝜂): vector trọng lực/lực đẩy Acsimet và moment (lực phục hồi).
42
- g0: vector trọng lực thêm vào để làm AUV cân bằng.
- 𝜏: vector lực điểu khiển đầu vào.
Lực và moment xuất phát từ bản thân vật rắn:
Theo tài liệu [31], ta có công thức của ma trận quán tính vật rắn (Rigid-
body system inertial matrix) 𝑀𝑅𝐵 là duy nhất và thỏa mãn điều kiện sau:
𝑀𝑅𝐵 = 𝑀𝑅𝐵 𝑇 > 0, 𝑀̇𝑅𝐵 = 06×6 (3.6)
Trong đó:
𝑚 0 0 0 𝑚𝑧𝑔 −𝑚𝑦𝑔 (3.7)
0 𝑚 0 −𝑚𝑧𝑔 0 𝑚𝑥𝑔
0 0 𝑚 𝑚𝑦𝑔 −𝑚𝑥𝑔 0
𝑀𝑅𝐵 =
0 −𝑚𝑧𝑔 𝑚𝑦𝑔 𝐼𝑥 −𝐼𝑥𝑦 −𝐼𝑥𝑧
𝑚𝑧𝑔 0 −𝑚𝑥𝑔 −𝐼𝑦𝑥 𝐼𝑦 −𝐼𝑦𝑧
[−𝑚𝑦𝑔 𝑚𝑥𝑔 0 −𝐼𝑧𝑥 −𝐼𝑧𝑦 𝐼𝑧 ]
Cũng theo tài liệu [31], ma trận Coriolis 𝐶𝑅𝐵 (𝑉) thõa mãn điều kiện
sau:
𝐶𝑅𝐵 (𝑉) = −𝐶𝑅𝐵 (𝑉)𝑇 > 0, ∀𝑣𝑟 ∈ 𝑅6 (3.8)
0 0 0
0 0 0
0 0 0
𝐶𝑅𝐵 (𝑉) = −𝑚(𝑦𝑔 𝑞 + 𝑧𝑔 𝑟) 𝑚(𝑦𝑔 𝑝 + 𝑤) 𝑚(𝑧𝑔 𝑝 − v)
𝑚(𝑥𝑔 𝑞 − 𝑤) −𝑚(𝑧𝑔 𝑟 + 𝑥𝑔 𝑝) 𝑚(𝑧𝑔 𝑞 + 𝑢)
[ 𝑚(𝑥𝑔 𝑟 + v) 𝑚(𝑦𝑔 𝑟 − 𝑢) −𝑚(𝑥𝑔 𝑝 + 𝑦𝑔 𝑞) (3.9)
𝑚(𝑦𝑔 𝑞 + 𝑧𝑔 𝑟) −𝑚(𝑥𝑔 𝑞 − 𝑤) −𝑚(𝑥𝑔 𝑟 + v)
−𝑚(𝑦𝑔 𝑝 + 𝑤) 𝑚(𝑧𝑔 𝑟 + 𝑥𝑔 𝑝) −𝑚(𝑦𝑔 𝑟 − 𝑢)
−𝑚(𝑧𝑔 𝑝 − v) −𝑚(𝑧𝑔 𝑞 + 𝑢) 𝑚(𝑥𝑔 𝑝 + 𝑦𝑔 𝑞)
0 −𝐼𝑦𝑧 𝑞 − 𝐼𝑥𝑧 𝑝 + 𝐼𝑧 𝑟 𝐼𝑦𝑧 𝑟 + 𝐼𝑥𝑦 𝑝 − 𝐼𝑦 𝑞
𝐼𝑦𝑧 𝑞 + 𝐼𝑥𝑧 𝑝 − 𝐼𝑧 𝑟 0 −𝐼𝑥𝑧 𝑟 − 𝐼𝑥𝑦 𝑞 + 𝐼𝑥 𝑝
−𝐼𝑦𝑧 𝑟 − 𝐼𝑥𝑦 𝑝 + 𝐼𝑦 𝑞 𝐼𝑥𝑧 𝑟 + 𝐼𝑥𝑦 𝑞 − 𝐼𝑥 𝑝 0 ]
Vì chọn gốc tọa độ Ob trùng với trọng tâm của AUV, ngoài ra có thể coi
như AUV đối xứng qua các mặt phẳng Oxy, Oyz, Oxz (vì vận tốc nhỏ) nên các
ma trận 𝑀𝑅𝐵 và ma trận 𝐶𝑅𝐵 (𝑉) trở thành:
43
0 0 0 0 𝑚𝑤 −𝑚v
0 0 0 −𝑚𝑤 0 𝑚𝑢
0 0 0 𝑚v −𝑚𝑢 0
𝐶𝑅𝐵 (𝑉) = 0 𝐼𝑧 𝑟 −𝐼𝑦 𝑞
0 𝑚𝑤 −𝑚v
−𝐼𝑧 𝑟 0 𝐼𝑥 𝑝
(3.10)
−𝑚𝑤 0 𝑚𝑢
[ 𝑚v −𝑚𝑢 0 𝐼𝑦 𝑞 −𝐼𝑥 𝑝 0 ]
𝑚 0 0 0 0 0
0 𝑚 0 0 0 0
0 0 𝑚 0 0 0
𝑀𝑅𝐵 = 0 0 0 𝐼𝑥 0 0
0 0 0 0 𝐼𝑦 0 (3.11)
[0 0 0 0 0 𝐼𝑧 ]
Lực và moment thủy động lực học:
Với các giá trị trong ma trận là hệ số quán tính của chất lỏng. Ví dụ,
lực quán tính chất lỏng Y theo trục y gây ra bởi gia tốc 𝑢̇ theo trục x được
tính như sau:
𝜕𝑌 (3.14)
𝑌 = −𝑌𝑢̇ 𝑢̇ , 𝑌𝑢̇ ≔
𝜕𝑢̇
Theo [28], ma trận quán tính chất lỏng (added mass) phụ thuộc nhiều
vào hình dạng của AUV. Bởi vì, ta giả sử rằng AUV đối xứng qua 3 mặt
44
phẳng và gốc của hệ tọa độ {b} đặt tại trọng tâm AUV nên ma trận 𝑀𝐴 trở
thành:
𝑋𝑢̇ 0 0 0 0 0
0 𝑌𝜐̇ 0 0 0 0
0 0 𝑍𝑤̇ 0 0 0
𝑀𝐴 = − 0 0 0 𝐾𝑝̇ 0 0
(3.15)
0 0 0 0 𝑀𝑞̇ 0
[0 0 0 0 0 𝑁𝑟̇ ]
Các thông số này là hằng số khi AUV hoàn toàn chìm trong nước. Các
giá trị này thường khó tìm và thường được chọn theo kinh nghiệm trong lân
cận từ 10% - 100% giá trị từ ma trận 𝑀𝑅𝐵 . Theo tìm hiểu một số thông số từ
các AUV, có thể chọn các thông số quán tính chất lỏng ở ma trận 𝑀𝐴 bằng
50% giá trị từ ma trận 𝑀𝑅𝐵 .
Đối với 1 vật thể cứng khi đi xuyên qua 1 chất lỏng lý tưởng, lực hướng
tâm Coriolis 𝐶𝐴 (𝑉) có thể luôn được tham số hóa thỏa mãn điều kiện:
𝐶𝐴 (𝑉) = −𝐶𝐴 (𝑉)𝑇 > 0, ∀𝑣𝑟 ∈ 𝑅6 (3.16)
Trong đó:
0 0 0 0 −𝑎3 𝑎2
0 0 0 𝑎3 0 −𝑎1
0 0 0 −𝑎2 𝑎1 0 (3.17)
𝐶𝐴 (𝑉) =
0 −𝑎3 𝑎2 0 −𝑏3 𝑏2
𝑎3 0 −𝑎1 𝑏3 0 −𝑏1
[−𝑎2 𝑎1 0 −𝑏2 𝑏1 0 ]
Với:
𝑎1 = 𝑋𝑢̇ 𝑢 + 𝑋𝑣̇ v + 𝑋𝑤̇ 𝑤 + 𝑋𝑝̇ 𝑝 + 𝑋𝑞̇ 𝑞 + 𝑋𝑟̇ 𝑟
𝑎2 = 𝑌𝑢̇ 𝑢 + 𝑌𝑣̇ v + 𝑌𝑤̇ 𝑤 + 𝑌𝑝̇ 𝑝 + 𝑌𝑞̇ 𝑞 + 𝑌𝑟̇ 𝑟
𝑎3 = 𝑍𝑢̇ 𝑢 + 𝑍𝑣̇ v + 𝑍𝑤̇ 𝑤 + 𝑍𝑝̇ 𝑝 + 𝑍𝑞̇ 𝑞 + 𝑍𝑟̇ 𝑟 (3.18)
Bởi vì, giả sử rằng AUV đối xứng qua 3 mặt phẳng và AUV di chuyển
với vận tốc chậm nên ma trận 𝐶𝐴 (𝑉) có thể được viết dưới dạng đơn giản sau
đây:
45
𝐶𝐴 (𝑉𝑟 ) =
0 0 0 0 −𝑍𝑤̇ 𝑤𝑟 𝑌𝑣̇ v𝑟
0 0 0 𝑍𝑤̇ 𝑤𝑟 0 −𝑋𝑢̇ 𝑢𝑟
0 0 0 −𝑌𝑣̇ v𝑟 𝑋𝑢̇ 𝑢𝑟 0 (3.19)
−𝐶𝐴𝑇 (𝑉𝑟 ) = 0 −𝑍𝑤̇ 𝑤𝑟 𝑌𝑣̇ v𝑟 0 −𝑁𝑟̇ 𝑟 𝑀𝑞̇ 𝑞
𝑍𝑤̇ 𝑤𝑟 0 −𝑋𝑢̇ 𝑢𝑟 𝑁𝑟̇ 𝑟 0 −𝐾𝑝̇ 𝑝
[−𝑌𝑣̇ v𝑟 𝑋𝑢̇ 𝑢𝑟 0 −𝑀𝑞̇ 𝑞 𝐾𝑝̇ 𝑝 0 ]
Gọi ∇ là thể tích của chất lỏng bị chiếm bởi AUV, g là gia tốc trọng
trường, ρ là khối lượng riêng chất lỏng. Trọng lượng riêng W và lực đẩy
Acsimet Archimet B là:
𝑊 = 𝑚𝑔 , 𝐵 = 𝜌𝑔∇ (3.21)
Theo [5], công thức lực phục hồi được tính như sau:
𝑓𝑔𝑏 + 𝑓𝑏𝑏 𝑅𝑏𝑛 (𝑓𝑔𝑛 + 𝑓𝑏𝑛 ) (3.22)
g(𝜂) = [ ] = −[ 𝑏 ]
𝑟𝑔𝑏 × 𝑓𝑔𝑏 + 𝑟𝑏𝑏 × 𝑓𝑏𝑏 𝑟𝑔 × 𝑅𝑏𝑛 𝑓𝑔𝑛 + 𝑟𝑏𝑏 × 𝑅𝑏𝑛 𝑓𝑏𝑛
Trong đó:
0 0 (3.23)
𝑛
𝑓𝑔𝑛 = [ 0 ] 𝑣à 𝑓𝑏 = − [ 0 ]
𝑊 𝐵
Suy ra được công thức:
46
(𝑊 − 𝐵)s𝜃
−(𝑊 − 𝐵)𝑐𝜃s𝜙
−(𝑊 − 𝐵)c𝜃c𝜙
g(𝜂) = −(𝑦 𝑊 − 𝑦 𝐵)c𝜃c𝜙 + (𝑧 𝑊 − 𝑧 𝐵)c𝜃s𝜙 (3.24)
𝑔 𝑏 𝑔 𝑏
(𝑧𝑔 𝑊 − 𝑧𝑏 𝐵)s𝜃 + (𝑥𝑔 𝑊 − 𝑥𝑏 𝐵)c𝜃c𝜙
[ −(𝑥𝑔 𝑊 − 𝑥𝑏 𝐵)c𝜃s𝜙 − (𝑦𝑔 𝑊 − 𝑦𝑏 𝐵)s𝜃 ]
Với (𝑥𝑏 , 𝑦𝑏 , 𝑧𝑏 ) là tọa độ của tâm lực đẩy Acsimet.
Để đơn giản trong quá trình tính toán, chọn 𝑊 = 𝐵 nên:
̅̅̅̅
𝐵𝐺 = ( ̅̅̅̅
𝐵𝐺𝑥 , ̅̅̅̅
𝐵𝐺𝑦 , ̅̅̅̅
𝐵𝐺𝑧 )𝑇 = (𝑥𝑔 − 𝑥𝑏 , 𝑦𝑔 − 𝑦𝑏 , 𝑧𝑔 − 𝑧𝑏 )𝑇 (3.25)
Suy ra:
0
0
0
̅̅̅̅𝑦 𝑊c𝜃c𝜙 + 𝐵𝐺
g(𝜂) = −𝐵𝐺 ̅̅̅̅𝑧 𝑊c𝜃s𝜙 (3.26)
̅̅̅̅
𝐵𝐺𝑧 𝑊s𝜃 + ̅̅̅̅
𝐵𝐺𝑥 Wc𝜃c𝜙
[ −𝐵𝐺𝑥 Wc𝜃s𝜙 − ̅̅̅̅
̅̅̅̅ 𝐵𝐺𝑦 Ws𝜃 ]
Đối với trọng lực được thêm để AUV ở trạng thái cân bằng theo ý
muốn, theo [31] sẽ có công thức như sau:
0
0
−𝑍𝑏𝑎𝑙𝑙𝑎𝑠𝑡
g0 = (3.27)
−𝐾𝑏𝑎𝑙𝑙𝑎𝑠𝑡
−𝑀𝑏𝑎𝑙𝑙𝑎𝑠𝑡
[ 0 ]
Mô hình điều động trong mặt phẳng độ sâu
Trong đề tài nghiên cứu này, để tập trung vào việc điều khiển riêng độ
sâu của AUV, tác giả chỉ quan tâm đến mô hình điều động trong mặt phẳng
độ sâu. Do đó phương trình động lực mặt phẳng độ sâu sẽ được sử dụng như
là hàm truyền mô tả hệ thống. Đối với mô hình điều động trong mặt phẳng độ
sâu, góc pitch (𝜃) của AUV sẽ được điều khiển. Do đó, có thể bỏ qua các
biến trạng thái 𝑦, 𝜙, 𝜓, 𝜐, 𝑝, 𝑟 trong mặt phẳng nằm ngang, vậy nên phương
trình động lực học của hệ thống được rút gọn thành (3.28) với các hệ số được
mô tả trong bảng 4.1.
47
jN
Oi = g ( I i ) = g wij O j + i .
(3.30)
Mục tiêu của mạng là cực tiểu hóa sai số sau đây
ei2
1
E= , (3.31)
2 iN
trong đó ij
w là số gia hay tốc độ thay đổi của trọng số, g ( I i ) là đạo hàm của
g (Ii ) theo I i .
Phương trình (3.32) thể hiện thuật toán Brandt-Lin để cập nhật trọng
số của mạng nơ-ron. Sau đó trong nghiên cứu [3] một bộ điều khiển nơ-ron
dựa vào thuật toán Brandt-Lin được đề xuất và các thí nghiệm mô phỏng được
trình bày đã minh họa hiệu quả của bộ điều khiển.
j
w jp
p wij
ek
ek-1 i
Oi
Ii
ek-p+1
Op
Ij Oj
Trong đó Xkd và Xk lần lượt là các véc-tơ trạng thái mong muốn và trạng
49
thái thực tế; ukc là véc-tơ lệnh điều khiển và uk là véc-tơ điều khiển thực tế tác
động lên hệ thống; P là ma trận đối xứng dương phản ánh các trọng số của
các biến của đối tượng được điều khiển; Λ là ma trận đối xứng dương của
véc-tơ điều khiển.
+
Cơ cấu Đối
NNC tác động tượng -
ek
z-m
Hình 3.4 Cấu trúc bộ điều khiển NNC. Véc-tơ tín hiệu vào gồm sai số ek và
các tín hiệu trễ của ek. Hàm mục tiêu Ek được xử lý bằng thuật toán Brandt-
Lin nhằm cập nhật các trọng số sao cho giá trị của Ek được cực tiểu [3].
Đặt n và ;
Khởi tạo Ek = 0
Chu trình
mới Khởi tạo trọng số mạng
ite = 1
ite = ite + 1
k=k+1
ĐÚNG
Quá trình lặp cập ite n
nhật trọng số
SAI
Hình 3.5 Sơ đồ giải thuật phương pháp huấn luyện lan truyền ngược “tăng
cường” với n và bước học cố định.
50
Quá trình huấn luyện mạng nơ-ron được thực hiện trong mỗi chu trình
điều khiển chỉ thị bởi đối số k với n là số lần huấn luyện trong một chu trình.
Thuật toán thích nghi (3.32) được áp dụng để điều chỉnh trọng số của các kết
nối trong mạng nơ-ron sao cho hàm mục tiêu Ek đạt được cực tiểu. Thông số
đầu vào của bộ điều khiển nơ-ron bao gồm sai số ek = X kd − X k và các tín hiệu
trễ của sai số. Nhiệm vụ của bộ điều khiển nơ-ron là tạo ra các tín hiệu điều
khiển phù hợp trong chu trình điều khiển tiếp theo sau khi đã “học” được đặc
tính của trạng thái mong muốn cũng như trạng thái thực tế của đối tượng được
điều khiển thông qua sai số ek.
1
E1k = [ 1 ( kd − k ) 2 + 1 Rk2 + 1 rk2 ] , (3.38)
2
trong đó, Rk và rk lần lượt là góc bẻ lái và tốc độ đổi hướng phương tiện ngầm
tại thời điểm k , các hằng số 1 , 1 , và 1 tương ứng là hệ số tỷ lệ, hệ số phản
hồi góc bẻ lái và hệ số vi phân hướng đi.
Bộ điều khiển nơ-ron được chọn là một mạng nơ-ron nhiều lớp truyền
thẳng có một lớp ẩn. Mạng gồm bốn nơ-ron lớp vào, sáu nơ-ron lớp ẩn và một
nơ-ron lớp ra tương tự như đã mô tả ở [3]. Trong đó, wij là ký hiệu hàm trọng
lượng của nơ-ron lớp ra, w jp là ký hiệu hàm trọng lượng nơ-ron lớp ẩn. Các
chỉ số p, i và j tương ứng là số lượng nơ-ron lớp vào, lớp ra và lớp ẩn. Các tín
hiệu vào của bộ điều khiển chỉ gồm sai số hướng đi của phương tiện ngầm và
các giá trị trễ của sai số này. Ký hiệu kd là hướng đi mong muốn và k là
hướng đi thực tế của phương tiện ngầm, nhiệm vụ của bộ điều khiển là tính
toán góc bẻ lái phù hợp để hàm mục tiêu (3.38) đạt cực tiểu bằng luật cập
nhật trọng số sau:
w 1 jp = O1 p [1 j sig (− I1 j ) + 1 0] = O1 p1 j sig (− I1 j ) , (3.39)
w 1ij = 1 sig ( I1 j ) ( 1e1k + 1 Rk + 1rk ) = 1 O1 j ( 1e1k + 1 Rk + 1rk ) . (3.40)
Chỉ số 1 biểu thị BĐK nơ-ron thứ nhất dùng cho điều khiển hướng,
trong đó e1k = kd − k , và
1
O1 j = sig ( I1 j ) = , (3.41)
1 + exp(− I1 j )
I1 j = ( w1 jp O1 p ) + 1 j , (3.42)
p
thực; Sk là góc bẻ của bánh lái độ sâu; wk là tốc độ theo phương đứng; và k
là góc chúi của phương tiện ngầm (được thêm vào nhằm hạn chế góc chúi
trong quá trình thay đổi độ sâu).
Chỉ số 2 biểu thị BĐK nơ-ron thứ hai dùng cho điều khiển độ sâu, trong
đó 𝑒2𝑘 = 𝑧𝑘𝑑 − 𝑧𝑘 .
c. Hệ thống điều khiển tốc độ
Để thực hiện nhiệm vụ điều khiển tốc độ, hàm mục tiêu của bộ điều
khiển NNC được chỉnh với các thành phần như sau:
1
𝐸3𝑘 = [𝜌3 (𝑢𝑘𝑑 − 𝑢𝑘 )2 + 𝜆3 𝑛𝑘2 + 𝜎3 𝑢̇ 𝑘2 + 𝜅3 𝑍𝑘2 ], (3.47)
2
3.3.3 Điều khiển tổng hợp các chuyển động của AUV bằng phương pháp
tách rời (decoupled control)
Trong luận án này, ngoài việc điều khiển riêng từng chuyển động của
AUV (hướng, độ sâu và tốc độ) tác giả nghiên cứu điều khiển cả 3 yếu tố này
trong hoạt động của AUV một cách đồng thời. Sơ đồ hệ thống điều khiển
AUV về hướng đi, độ sâu, tốc độ và điều khiển dẫn đường, thực hiện các
nhiệm vụ làm việc dưới nước được thể hiện trên Hình 3.9.
3.4 Hệ thống điều khiển dẫn đường AUV và thực hiện các nhiệm vụ
dưới nước
3.4.1 Điều khiển AUV theo quỹ đạo đặt trước
Điều khiển AUV theo quỹ đạo đặt trước thường sử dụng trong trường
hợp AUV khảo sát đáy biển, tìm kiếm cứu nạn, dò tìm hư hỏng trên đường
ống ngầm… Việc điều khiển này giả định tốc độ AUV không thay đổi, quỹ
đạo theo mặt phẳng ngang được định trước bằng các điểm chuyển hướng tạo
thành tuyến (route). Độ sâu có thể thay đổi theo lệnh hoặc cố định. Trong đề
tài này, tác giả sử dụng luật dẫn đường LOS (Line-of-Sight) để điều khiển
AUV theo tuyến.
Giả sử AUV có tọa độ ( x, y ) trong hệ trục tọa độ {n} di chuyển trong
mặt phẳng nằm ngang và bám theo quỹ đạo mong muốn là một đoạn thẳng
được tạo thành từ hai điểm chuyển hướng pnk = x k , yk và pnk +1 = x k +1 , yk +1
T T
như trong hình 3.10, vận tốc và hướng đi AUV sẽ được xác định như sau:
U (t ) = x (t ) + y (t )
2 2
(3.51)
( t ) = a tan 2 ( y ( t ) , x ( t ) ) − , (3.52)
Để xác định sai số bám quỹ đạo của con tàu e(t), ta tiến hành chuyển
tọa độ ( x, y ) của con tàu trong hệ trục tọa độ {n} sang hệ trục tọa độ tham
chiếu với gốc đặt tại waypoint pnk = x k , yk và hệ trục tọa độ tham chiếu này
T
quay quanh trục zn của hệ trục tọa độ {n} một góc k được xác định như sau:
ak = a tan 2 ( yk +1 − yk , xk +1 − xk ) (3.53)
( t ) = Rp ( ak ) p n ( t ) − pkn
T
(3.54)
56
trong đó:
(t) = s(t),e(t) .
T
cos ak − sin ak
R p ( ak ) =
T
cos ak
(3.55)
sin ak
Ta có thể xác định được sai số bám quỹ đạo của con tàu như sau:
e ( t ) = − x ( t ) − xk sin ak + y ( t ) − yk cos ak (3.56)
Nhiệm vụ chính của hệ thống dẫn đường (Guidance) là tính toán các
trạng thái mong muốn giúp cho AUV bám theo quỹ đạo được định trước, điều
này cũng tương đương với việc hệ thống dẫn đường phải làm cho sai số bám
quỹ đạo e(t) tiến về 0 ( lim e(t) = 0 ). Để thực hiện được điều này thì hệ thống
t →
Trong đó p là góc tiếp tuyến của đoạn thẳng quỹ đạo mong muốn còn
r là góc tương quan giữa vận tốc và quỹ đạo chuyển. Góc r được thêm vào
d nhằm đảm bảo rằng vector vận tốc U của con tàu luôn hướng về điểm
chuyển hướng p nk +1 .
p = ak (3.58)
𝑒(𝑡)
𝜒𝑟 (𝑒) = 𝑎𝑟𝑐𝑡𝑎𝑛 (− ) (3.59)
Δ
Trong đó là khoảng cách từ hình chiếu của điểm pn (t) trên đoạn
thẳng quỹ đạo mong muốn cho đến điểm chuyển hướng pnk +1 .
Từ (3.57), (3.58) và (3.59) thì ta có thể tính được hướng đi mong muốn
(desired heading) theo nguyên lý Lookahead-based Steering như sau:
d = d − = p + r − (3.60)
v
Trong đó = arcsin là góc trượt của con tàu. Tuy nhiên vì v U
U
Khoảng cách từ vị trí AUV đến điểm chuyển hướng được tính như sau:
xn − x ( t ) + yn − y ( t ) Rn2
2 2
(3.62)
58
Đây là điều kiện để AUV chuyển sang điểm chuyển hướng tiếp theo.
Trong trường hợp không gian 3 chiều (3D), độ sâu điểm chuyển hướng được
tính đến:
[𝑥𝑛 − 𝑥(𝑡)]2 + [𝑦𝑛 − 𝑦(𝑡)]2 + [𝑧𝑛 − 𝑧(𝑡)]2 ≤ 𝑅𝑛2 (3.63)
Trong đề tài này, tác giả điều khiển AUV theo quỹ đạo vuông góc và
zig-zag. Các kết quả mô phỏng được trình bày ở Chương 4.
3.5 Các phương án thích nghi cho hệ thống điều khiển AUV
3.5.1 Mô hình dòng chảy tác động lên AUV
Đề tài sử dụng mô hình dòng chảy 3 chiều (Fossen, 2002) [31]. Các
thành phần dòng chảy theo hệ tọa độ cố định trên trái đất được mô tả bởi hai
tham số là: vận tốc dòng chảy trung bình 𝑉𝑐 và hướng dòng chảy 𝛾𝑐 , góc thẳng
đứng của dòng chảy là 𝑐 .
Các thành phần của hệ tọa độ cố định trên vật thể (AUV) được tính từ:
𝑢𝑐 = 𝑉𝑐 𝑐os(𝛾𝑐 − 𝜓)
𝑣𝑐 = 𝑉𝑐 𝑠𝑖𝑛(𝛾𝑐 − 𝜓)
𝑤𝑐 = 𝑉𝑐 𝑐𝑜𝑠(𝑐 − ) (3.65)
Vận tốc dòng chảy trung bình cho mô phỏng được tạo ra bằng cách sử
dụng phương pháp Gauss – Markov bậc nhất như sau:
dVc ( t )
+ 0Vc ( t ) = ( t ) (3.66)
dt
trong đó, 𝜔(𝑡)là một chuỗi nhiễu trắng Gaussian và 𝜇0 ≥ 0 là một hằng số.
Nếu 𝜇0 = 0, mô hình dòng chảy này rút gọn thành bước đi ngẫu nhiên
(random walk) tương ứng với tích phân nhiễu trắng theo thời gian. Một phần
tử bão hòa thường được sử dụng trong quá trình tích phân để giới hạn vận tốc
dòng chảy:
Vmin Vc ( t ) Vmax (3.67)
Với các số liệu dòng chảy cụ thể, ba thành phần vận tốc dòng chảy theo
3 trục tọa độ được đưa vào chuyển động của AUV trong chương trình mô
phỏng. Ba thành phần của dòng chảy đó được tính theo các phương trình
(3.65).
Hình 3.51 Sơ đồ hệ thống điều khiển AUV theo quỹ đạo tính đến độ dạt do
dòng chảy gây ra.
Hình 3.11 Mô tả sơ đồ hệ thống điều khiển AUV theo quỹ đạo đặt
trước. Hàm mục tiêu Ek để huấn luyện mạng nơ-ron điều khiển được điều
chỉnh. Tác giả dựa theo phương pháp giới thiệu trong [3], khoảng cách dạt
khỏi đường đi mong muốn (d) trên mặt phẳng ngang và dấu của khoảng cách
60
này có thể xác định được. Định nghĩa giá trị khoảng cách này theo chiều dài
thân tàu là = d/L, trong đó L là chiều dài thân tàu tính bằng mét.
Hàm mục tiêu sẽ có dạng sau đây:
1
𝐸𝑘 = [𝜌1 (𝜓𝑘𝑑 − 𝜓𝑘 )2 + 𝜌2 (𝜂𝑘𝑑 − 𝜂𝑘 )2 + 𝜆𝛿𝑘2 + 𝜎𝑟𝑘2 ] , (3.68)
2
trong đó kd và k lần lượt là hướng đi mong muốn và hướng đi thực tế của
AUV trên mặt phẳng ngang; kd và k là giá trị độ dạt khỏi đường đi mong
muốn và thực tế; k là góc bánh lái hướng; rk là tốc độ thay đổi hướng ( rk = k );
1, 2, , lần lượt là các hệ số dương. Gọi sai số hướng đi AUV là:
𝑒𝑘 = 𝜓𝑘𝑑 − 𝜓𝑘 (3.69)
Và chú ý là giá trị độ dạt khỏi đường đi cần đạt được là 𝜂𝑘𝑑 = 0, hàm
mục tiêu lúc này sẽ trở thành:
1
𝐸𝑘 = (𝜌1 𝑒𝑘2 + 𝜌2 𝜂𝑘2 + 𝜆𝛿𝑘2 + 𝜎1 𝑟𝑘2 + 𝜎2 𝑧𝑘2 + 𝜎3 𝑞𝑘2 ), (3.70)
2
Trong đó
𝑧𝑘 (𝑡) = ∫ 𝜂𝑘 (𝑡)𝑑𝑡, (3.71)
𝑞𝑘 = 𝜂̇ 𝑘 , (3.72)
and 1, 2, 3 cũng lần lượt là các hệ số dương.
Tương tự trong [3], có thể viết:
𝜕𝐸𝑘 𝜕𝐸𝑘 𝜕𝐸𝑘 𝜕𝐸𝑘 𝜕𝑟𝑘 𝜕𝐸𝑘 𝜕𝜂𝑘 𝜕𝐸𝑘 𝜕𝑧𝑘 𝜕𝐸𝑘 𝜕𝑞𝑘
= − +2 − + − . (3.73)
𝜕𝜓𝑘 𝜕𝜓𝑘 𝜕𝛿𝑘 𝜕𝑟𝑘 𝜕𝛿𝑘 𝜕𝜂𝑘 𝜕𝛿𝑘 𝜕𝑧𝑘 𝜕𝛿𝑘 𝜕𝑞𝑘 𝜕𝛿𝑘
Thay thế 𝜕𝑟𝑘 /𝜕𝛿𝑘 và 𝜕𝜂𝑘 /𝜕𝛿𝑘 lần lượt bằng 𝑠𝑖𝑔𝑛(𝜕𝑟𝑘 /𝜕𝛿𝑘 ) = −1
and 𝑠𝑖𝑔𝑛(𝜕𝜂𝑘 /𝜕𝛿𝑘 ) = −1; và để ý rằng có thể thay 𝜕𝑧𝑘 /𝜕𝛿𝑘 và 𝜕𝑞𝑘 /𝜕𝛿𝑘
bằng các giá trị 𝑠𝑖𝑔𝑛(𝜕𝑧𝑘 /𝜕𝛿𝑘 ) = 1 và 𝑠𝑖𝑔𝑛(𝜕𝑞𝑘 /𝜕𝛿𝑘 ) = −1, thu được:
𝜕𝐸𝑘 𝜕𝜂𝑘
= −𝜌1 (𝜓𝑘𝑑 − 𝜓𝑘 ) − 𝜌2 (𝜂𝑘𝑑 − 𝜂𝑘 )𝑠𝑖𝑔𝑛( )
𝜕𝜓𝑘 𝜕𝛿𝑘
𝜕𝑟𝑘 𝜕𝑧𝑘 𝜕𝑞𝑘
−𝜆𝛿𝑘 + 2𝜎1 𝑟𝑘 𝑠𝑖𝑔𝑛( ) + 𝜎2 𝑧𝑘 𝑠𝑖𝑔𝑛( ) + 𝜎3 𝑞𝑘 𝑠𝑖𝑔𝑛( ) , (3.74)
𝜕𝛿𝑘 𝜕𝛿𝑘 𝜕𝛿𝑘
𝜕𝐸𝑘
= −[𝜌1 (𝜓𝑘𝑑 − 𝜓𝑘 ) − 𝜌2 (𝜂𝑘𝑑 − 𝜂𝑘 ) + 𝜆𝛿𝑘
𝜕𝜓𝑘
+𝜎1 𝑟𝑘 − 𝜎2 𝑧𝑘 + 𝜎3 𝑞𝑘 ] . (3.75)
Khi thay 𝑒𝑘 = 𝜓𝑘𝑑 − 𝜓𝑘 , 𝜂𝑘𝑑 = 0 vào (3.75) sẽ được:
61
𝜕𝐸𝑘
= −[𝜌1 𝑒𝑘 + 𝜌2 𝜂𝑘 + 𝜆𝛿𝑘 + 𝜎1 𝑟𝑘 − 𝜎2 𝑧𝑘 + 𝜎3 𝑞𝑘 ]. (3.76)
𝜕𝜓𝑘
Sử dụng luật thích nghi cho mạng nơ-ron như trong [3] sẽ được:
𝑤̇𝑗𝑝 = 𝑂𝑝 [𝜑𝑗 𝜎(−𝐼𝑗 ) + 𝛾. 0] = 𝑂𝑝 𝜑𝑗 𝜎(−𝐼𝑗 ), (3.77)
𝜕𝐸𝑘
𝑤̇𝑖𝑗 = −𝛾. 𝜎(𝐼𝑗 ).
𝜕𝜓𝑘
, (3.78)
ở đó,
𝜑𝑗 = 𝑤𝑖𝑗 . 𝑤̇𝑖𝑗 , (3.79)
1
𝜎(𝐼𝑗 ) = , (3.80)
1+𝑒𝑥𝑝(−𝐼𝑗 )
𝐼𝑗 = ∑𝑝(𝑤𝑗𝑝 𝑂𝑝 ) + 𝜃𝑗 . (3.81)
Thay (3.76) vào (3.78) sẽ được
𝑤̇𝑖𝑗 = 𝛾. 𝜎(𝐼𝑗 ). (𝜌1 . 𝑒𝑘 + 𝜌2 𝜂𝑘 + 𝜆𝛿𝑘 + 𝜎1 𝑟𝑘 − 𝜎2 𝑧𝑘 + 𝜎3 𝑞𝑘 )
= 𝛾. 𝑂𝑗 . (𝜌1 . 𝑒𝑘 + 𝜌2 𝜂𝑘 + 𝜆𝛿𝑘 + 𝜎1 𝑟𝑘 − 𝜎2 𝑧𝑘 + 𝜎3 𝑞𝑘 ) . (3.81)
Tóm lại, bộ điều khiển nơ-ron cho AUV có luật cập nhật trọng số mạng
nơ-ron cho lớp ẩn và lớp ra lần lượt theo phương trình (3.79) và (3.81). Đây
là luật điều khiển thích nghi với độ lệch vị trí AUV do dòng chảy gây ra.
Trong Chương 4 tác giả trình bày kết quả các thí nghiệm mô phỏng
trên máy tính cho các thuật toán điều khiển được đề xuất ở Chương 3 và phân
tích các kết quả thu được.
62
CHƯƠNG 4
Mô hình toán học NPS AUV II viết trên Matlab M-file được Fossen
giới thiệu trong [31], chi tiết trong Phụ lục, các thông số chính liệt kê trong
Bảng 4.1. Sơ đồ các tình huống mô phỏng chính được thể hiện trên hình 4.1,
hình 4.4 và hình 4.11. Giả thiết về tình huống mô phỏng được nêu trong phần
đầu mỗi thí nghiệm mô phỏng.
Với BĐK nơ-ron đề xuất ở hình 3.6 hướng đi của AUV được điều khiển
thể hiện trên hình 4.2. Đồ thị trên phía trên là đáp hướng hướng đi của AUV
(nét xanh liền) đối với hướng đi mong muốn (nét đỏ đứt). Đồ thị phía dưới
hình 4.2 là góc bánh lái hướng của AUV theo thời gian.
Hình 4.3 so sánh hoạt động của BĐK PID và BĐK NNC. Trong thí
nghiệm mô phỏng này hướng đi thay đổi 10 độ cho cả 2 trường hợp BĐK
PID và NNC. Ở đồ thị phía trên của hình 4.3, hướng đi của BĐK NNC có
thời gian xác lập nhỏ hơn và ổn định hướng nhanh hơn, độ quá điều khiển
cũng nhỏ hơn so với BĐK PID. Ở đồ thị phía dưới là góc bánh lái của AUV
khi được điều khiển bằng BĐK NNC (nét liền) và BĐK PID (nét gạch chấm).
Nét liền thể hiện bánh lái hoạt động tích cực hơn để đạt được chất lượng điều
khiển tốt hơn ở đồ thị phía trên.
Hình 4.7 Quỹ đạo chuyển động của AUV trong TN2
Trong thí nghiệm mô phỏng này hướng đi thay đổi 10 độ, độ sâu thay
đổi từ 10m sang 4m. Độ sâu được điều khiển bởi BĐK nơ-ron đề xuất ở hình
3.7. Bánh lái độ sâu có giới hạn 20. Độ sâu AUV đạt giá trị mong muốn 4m
ở thời điểm 315 giây.
- Thí nghiệm 3: Mô phỏng điều khiển hướng đi và độ sâu AUV khi
dòng chảy tác động.
Hình 4.8 Đáp ứng độ sâu của AUV khi có dòng chảy (TN3)
68
Hình 4.9 Đáp ứng hướng đi của AUV khi có dòng chảy (TN3)
Hình 4.10 Vết chuyển động của AUV khi có dòng chảy (TN3)
69
Giả định về dòng chảy: Trong thực tế, khu vực làm việc của AUV
không quá lớn, thời gian làm việc không quá dài, nên dòng chảy trong đó có
thể coi là ổn định về hướng trong khoảng thời gian hoạt động của AUV. Vì
vậy tham số dòng chảy sử dụng trong mô phỏng có hướng 110, tốc độ thay
đổi trong khoảng 0.05 m/s đến 0.16 m/s (đồ thị dưới cùng trên hình 4.9).
Trong thí nghiệm mô phỏng này hướng đi thay đổi 10, độ sâu thay đổi từ 5m
sang 10m. AUV đạt độ sau 10m sau thời gian 175 giây và ổn định dần về độ
sâu này.
Hình 4.16 Đáp ứng hướng đi của AUV khi có dòng chảy (TN5)
Hình 4.19 Vết chuyển động của AUV khi có dòng chảy (TN5)
74
Trong thí nghiệm mô phỏng này, tương tự phần trên, hướng đi thay đổi
từ 0 sang 10, đến giây thứ 200 lại thay đổi về 0, sang giây thứ 400 lại thay
đổi sang 15; độ sâu thay đổi từ 10m sang 2m, tốc độ tăng từ 0.3m/s lên
0.4m/s. Dòng chảy làm hướng AUV dao động tuy nhiên hướng đi, độ sâu và
tốc độ vẫn đạt đến các giá trị đặt.
Nhận xét các kết quả:
Các kết quả điều khiển AUV trong chương này chưa ràng buộc AUV
chuyển động theo một quỹ đạo nhất định. Hướng đi, độ sâu và tốc độ được
điều khiển theo giá trị đặt. BĐK NNC được khởi tạo các giá trị ngẫu nhiên
ban đầu cho các trọng số của mạng nơ-ron. Qua quá trình điều khiển, mạng
nơ-ron được cập nhật các trọng số theo tiêu chí cực tiểu hóa hàm mục tiêu
của từng tình huống điều khiển. Việc cập nhật này diễn ra trong từng chu trình
điều khiển, được đảm bảo bởi cách thiết lập hàm mục tiêu và thuật toán tính
trọng số của các lớp ẩn, lớp ra của mạng nơ-ron để tính ra được lệnh điều
khiển.
Trong các phần đầu Chương 4 tác giả đã mô phỏng điều khiển bằng
BĐK NNC cho các tình huống riêng biệt về hướng đi, độ sâu và tốc độ của
AUV. Các BĐK làm việc hiệu quả và đạt được mục tiêu điều khiển theo giá
trị đặt. Trong trường hợp hoạt động đồng thời các chuyển động của AUV,
BĐK NNC thể hiện tốt khả năng điều khiển khi không có và có dòng chảy
tác động lên AUV.
Khi kết hợp với hệ thống dẫn đường, các BĐK sẽ giúp AUV chuyển
động theo quỹ đạo, theo độ sâu hay theo tốc độ mong muốn hoặc đồng thời
tuân theo các yêu cầu tổng hợp đó tùy vào tình huống công tác. Các phần tiếp
theo sau đây của Chương 4 sẽ mô phỏng hoạt động của AUV trong một số
hoạt động như vậy.
Điều khiển hoạt động của AUV ngầm dưới nước phục vụ các công việc
đặt ra một nhiệm vụ khó khăn, phức tạp. Không những hệ động lực của AUV
phải mạnh, hiệu quả, các cảm biến tốc độ, độ sâu, khoảng cách, vị trí phải
75
chính xác mà thuật toán điều khiển cũng phải bền vững, hệ thống dẫn đường
phải chính xác, tin cậy đạt hiệu quả cao.
Trong Chương 3 tác giả đề xuất kết hợp hệ thống dẫn đường LOS với
BĐK hướng đi AUV để dẫn đường theo quỹ đạo, đồng thời điều khiển độ sâu
và tốc độ AUV theo giá trị mong muốn. Đề tài chỉ giới hạn nghiên cứu đề
xuất hệ thống dẫn đường AUV đi theo các điểm chuyển hướng mà quãng
đường giữa các điểm là thẳng. Các yêu cầu điều khiển và hiệu chỉnh nâng cao
chất lượng điều khiển như đưa khoảng cách dạt khỏi đường đi trong mặt
phẳng ngang vào hàm mục tiêu BĐK hướng (phương trình 3.68), thành phần
tích phân sai số tốc độ Zk vào hàm mục tiêu BĐK tốc độ (phương trình 3.47)
đã giúp nâng cao chất lượng điều khiển, đạt được khả năng thích nghi với tác
động ngoại cảnh lên AUV và tính phi tuyến của động học AUV khi diễn ra
đồng thời các chuyển động trong 6 bậc tự do. Phần tiếp theo tác giả sẽ trình
bày kết quả các thí nghiệm mô phỏng minh họa cho hệ thống điều khiển dẫn
đường đã đề xuất trong Chương 3.
4.3 Mô phỏng điều khiển dẫn đường AUV và thực hiện các nhiệm vụ
dưới nước
Tình huống trong phần 4.3 của chương này gồm các mô-đun sau:
submarine.m: là file chương trình mô phỏng chính.
npsauv.m: là file mô hình toán học AUV.
CurrGen.m: là file tạo ra tác động của dòng chảy lên AUV.
annaiTrain.m: là file chương trình huấn luyện mạng nơ-ron điều
khiển theo thuật toán thích nghi tương tác.
mlnnc.m: là file mạng nơ-ron tạo ra các tham số điều khiển.
LOSguide.m: là file tính hướng đi LOS cho AUV.
offtrackdist.m: là file tính khoảng cách lệch khỏi đường đi trên mặt
phẳng ngang của AUV.
76
theo giá trị hướng đi mong muốn này và do đó, AUV chuyển động theo quỹ
đạo hình vuông mong muốn.
Hình 4.25 Quỹ đạo trên mặt phẳng ngang của AUV trong TN6
- Thí nghiệm 7: Điều khiển AUV chuyển động theo quỹ đạo hình
vuông, độ sâu thay đổi, không có dòng chảy tác động.
Hình 4.29 Quỹ đạo chuyển động của AUV trong TN7
Hình 4.30 Quỹ đạo trên mặt phẳng ngang của AUV trong TN7
Trong thí nghiệm mô phỏng này, độ sâu của điểm chuyển hướng thứ 3
giảm từ 10m về 3m. Cánh điều khiển phía trước được điều khiển bởi một
BĐK PD với hệ số khuếch đại tỉ lệ nhỏ để hỗ trợ. Trên từng đoạn của quỹ
đạo, AUV bám theo đường đi ở mặt phẳng ngang và ở phương độ sâu, giá trị
độ sâu đạt được như mong muốn.
82
- Thí nghiệm 8: Điều khiển AUV theo quỹ đạo zig-zag khi không có
dòng chảy tác động, độ sâu không đổi.
Hình 4.34 Quỹ đạo chuyển động của AUV trong TN8
Đây là hoạt động khá phức tạp của AUV khi quỹ đạo chuyển động là
đường zig-zag tạo bởi các đoạn vuông góc trong hoạt động khảo sát đáy biển
hoặc tìm kiếm cứu nạn, thăm dò,… (hình 4.34).
84
Hình 4.35 Quỹ đạo của AUV trên mặt phẳng ngang trong TN8
Hướng đi mong muốn trên từng đoạn có thể là LOS, hướng dọc theo
đoạn quỹ đạo hiện thời (từ điểm đầu đến điểm cuối đoạn đường hiện thời),
hoặc hướng từ vị trí hiện tại của AUV tới điểm chuyển hướng hiện tại phía
trước. Trong trường hợp này hướng LOS được chọn. BĐK NNC được dùng
cho cả bánh lái hướng và cánh điều khiển độ sâu phía trước và sau của NPS
AUV II.
- Thí nghiệm 9: Điều khiển AUV theo quỹ đạo zig-zag khi có dòng
chảy tác động, độ sâu không đổi.
Hình 4.39 Quỹ đạo chuyển động của AUV trong TN9
Hình 4.40 Quỹ đạo của AUV trên mặt phẳng ngang trong TN9
Trong Thí nghiệm 9 dòng chảy tác động làm hướng và vị trí AUV dịch
chuyển và dao động. Độ sâu cũng dao động nhưng vẫn đảm bảo trên mặt
phẳng ngang.
87
- Thí nghiệm 10: Mô phỏng điều động zig-zag khi tính đến độ lệch
khỏi đường đi theo mặt phẳng ngang.
Hình 4.44 Quỹ đạo chuyển động của AUV trong TN10
89
Hình 4.45 Quỹ đạo trên mặt phẳng ngang của AUV trong TN10
Hình 4.46 Khoảng cách dạt trên mặt phẳng ngang (TN10)
Trong Thí nghiệm 10, BĐK NNC chỉ điều khiển cánh điều khiển độ
sâu phía sau do AUV chỉ làm việc trong mặt phẳng ngang, BĐK PD điều
khiển cánh phía trước giúp ổn định góc chúi AUV. Hướng dẫn đường là
hướng giữa 2 điểm chuyển hướng của đoạn quỹ đạo hiện tại. Độ dạt ngang
được đưa vào thuật toán học online của BĐK NNC giúp AUV ổn định bám
theo quỹ đạo.
90
- Thí nghiệm 11: Mô phỏng điều động zig-zag khi tính đến độ lệch
khỏi đường đi theo mặt phẳng ngang, có dòng chảy tác động.
Hình 4.50 Quỹ đạo chuyển động của AUV trong TN11
Ảnh hưởng tác động của ngoại cảnh làm AUV dao động và dạt ngang
nhưng vẫn ổn định xung quanh quỹ đạo chuyển động mong muốn.
92
Hình 4.51 Quỹ đạo trên mặt phẳng ngang của AUV trong TN11
Hình 4.52 Khoảng cách dạt trên mặt phẳng ngang (TN11)
Mục đích của thí nghiệm này là minh họa hoạt động của hệ thống điều
khiển dẫn đường trên hình 3.11. Trong đó BĐK NNC nhận dạng tác động của
dòng chảy thông qua độ dạt do nó gây ra cho AUV được tính trong mỗi chu
trình điều khiển. Độ dạt này đại diện bởi tham số (mục 3.5.2). Quá trình
học của mạng nơ-ron được tính đến giá trị (phương trình 3.68) nên BĐK
93
thích nghi với tác động của dòng chảy qua mỗi chu trình điều khiển, làm cho
AUV bám sát quỹ đạo mong muốn mặc dù dòng chảy có xu hướng đẩy dạt
AUV ra xa quỹ đạo này, hoặc sau mỗi lần thay đổi hướng trên đoạn đường
tiếp theo, khoảng cách từ AUV đến đoạn quỹ đạo mới lại ổn định dần về zero
(hình 4.52, đồ thị phía trên).
Hình 4.56 Độ sâu thực tế của AUV (nét liền, xanh) và đáy (nét đứt, đỏ)
Trong thí nghiệm này, AUV đi thẳng theo hướng cố định 0 có tác động
của dòng chảy. Vị trí của AUV theo chiều thẳng đứng (trục Oz) luôn cách
đáy khoảng cách 5m. Trong thực tế khoảng cách này luôn xác định được bằng
máy đo sâu hồi âm. Kết quả mô phỏng cho thấy AUV luôn đi theo quỹ đạo
ổn định cách đáy một khoảng cách mong muốn 5m với sai số nhỏ và bám
theo hình dạng đáy.
4.4 Mô phỏng điều khiển AUV thích nghi với ngoại cảnh
4.4.1 Điều khiển AUV dưới tác động của dòng chảy
- Thí nghiệm 13: Mô phỏng điều khiển AUV bám theo đường thẳng
khi chưa tính đến độ dạt khỏi đường đi trong thuật toán điều khiển.
Hình 4.60 Quỹ đạo chuyển động của AUV trong TN13
Hình 4.61 Quỹ đạo trên mặt phẳng ngang của AUV trong TN13
Hình 4.62 Khoảng cách dạt của AUV và vận tốc dòng chảy trong TN13
98
Trong tình huống này tồn tại độ dạt ngang khoảng 5m so với đường đi
mong muốn. Tác giả dùng công thức tính độ dạt này và đưa vào hàm mục tiêu
của BĐK NNC cho hướng đi AUV. Kết quả được kiểm tra trong Thí nghiệm
14.
4.4.2 Điều khiển AUV thích nghi với tác động của dòng chảy
- Thí nghiệm 14: Mô phỏng điều khiển AUV bám theo đường thẳng
có tính đến độ dạt khỏi đường đi trong thuật toán điều khiển NNC.
Hình 4.66 Qũy đạo chuyển động của AUV trong TN14
Hình 4.67 Qũy đạo trên mặt phẳng ngang của AUV trong TN14
100
Hình 4.68 Khoảng cách dạt của AUV và vận tốc dòng chảy trong TN14
Trên đồ thị phía trên của hình 4.64, đáp ứng tốc độ của AUV sau khi
ổn định tồn tại sai số tĩnh. Để khắc phục nhược điểm này, thành phần tích
phân Zk của sai số tốc độ được đưa vào hàm mục tiêu để huấn luyện mạng nơ-
ron điều khiển. Kết quả mô phỏng để kiểm tra chất lượng điều khiển được
thực hiện qua Thí nghiệm 15.
- Thí nghiệm 15: Mô phỏng điều khiển AUV bám theo đường thẳng
có tính đến độ dạt khỏi đường đi trong thuật toán điều khiển NNC, thêm thành
phần tích phân cho BĐK tốc độ.
Hình 4.72 Quỹ đạo chuyển động của AUV trong TN15
Hình 4.73 Quỹ đạo trên mặt phẳng ngang của AUV trong TN15
Hình 4.74 Khoảng cách dạt trên mặt phẳng ngang trong TN15
103
Trên hình 4.70 đã không còn sai số tĩnh của tốc độ khi ổn định. Độ dạt
ngang của AUV khỏi quỹ đạo cũng đã được loại bỏ giúp AUV bám theo quỹ
đạo thẳng trên mặt phẳng ngang. Trên đồ thị 1 hình 4.71 độ vượt quá điều
khiển lớn của giá trị độ sâu ở giai đoạn đầu có thể hiểu là AUV vừa thay đổi
độ sâu vừa tăng tốc độ, góc chúi ngẩng lên đến 20 (đồ thị giữa của hình 4.71)
đã gây nên kết quả này.
Cũng trong chương này tác giả đã trình bày các tình huống mô phỏng
trên máy tính minh họa cho thuật toán điều khiển nơ-ron được đề xuất với các
tình huống dẫn đường AUV theo quỹ đạo hình vuông, hình zig-zag khi độ
sâu không đổi và khi độ sâu thay đổi; dẫn đường cho AUV bám theo địa hình
đáy ở khoảng cách không đổi; dẫn đường cho AUV bám theo đường thẳng
cho trước. Với mô hình phi tuyến của AUV NPS, các tình huống điều khiển
trên được mô phỏng khi không có dòng chảy và khi có dòng chảy tác động.
Hệ thống điều khiển đáp ứng thích nghi tốt với tác động của ngoại cảnh đến
độ lệch vị trí của AUV trong mặt phẳng ngang.
104
KẾT LUẬN
khiển với tính năng phi tuyến của đối tượng điều khiển và tính bất định
của ngoại cảnh.
- Với công cụ mô phỏng trên máy tính bằng Matlab, các tình huống phức
tạp và phong phú được thực hiện, kiểm tra và phân tích kết quả, làm rõ
được đáp ứng của BĐK trong từng trường hợp.
- Tác giả trình bày rõ ràng và logic các nghiên cứu lý thuyết và minh họa
bằng thí nghiệm mô phỏng.
Hạn chế:
Do điều kiện thời gian, vật chất và công nghệ của Lab nghiên cứu, tác
giả chưa kịp tiến hành thực nghiệm trên mô hình AUV thực và ở môi trường
nước thực tế. Rõ ràng giữa mô phỏng và thực nghiệm, áp dụng vào thực tiễn
còn một khoảng cách đáng kể mà tác giả và cộng sự cần phấn đấu để tiếp tục
thực hiện.
3 Hướng phát triển tiếp theo của lĩnh vực nghiên cứu
Để khắc phục và bổ khuyết cho những hạn chế của đề tài, đồng thời
phát huy thành công và những điểm mới trong nghiên cứu trên, tác giả dự
định sẽ tiếp tục hướng nghiên cứu như sau:
- Nghiên cứu lý thuyết và áp dụng BĐK NNC ở trên cho các đối tượng
AUV khác nhau, trong các điều kiện và môi trường làm việc với yêu
cầu hoạt động phức tạp hơn, nâng cao chất lượng điều khiển.
- Thực nghiệm các kết quả nghiên cứu trên mô hình AUV và tiến tới ứng
dụng vào thực tiễn, góp phần đổi mới công nghệ, sáng tạo các thuật
toán, kỹ thuật điều khiển cùng lĩnh vực.
Cụ thể, tác giả dự định cùng các cộng sự nghiên cứu điều khiển AUV
thực hiện nhiệm vụ tự động tránh vật cản, đi theo phương tiện dẫn đường (tàu
mẹ, AUV khác), đi theo quỹ đạo phức tạp hơn, điều khiển nhóm nhiều
AUV…
106
hành phục vụ quan trắc môi trường, khảo sát sông hồ và cứu hộ cứu
nạn”. Sở KHCN TP Hồ Chí Minh.
Tiếng Anh
[11] Sabiha Wadoo & Pushkin Kachroo, Autonomous Underwater Vehicles
(modeling, control design, and simulation), printed by (CRC) CRC
Press Taylor & Francis Group © 2011.
[12] Technology and Applications of Autonomous Underwater Vehicles
edited by Gwyn Griffiths, Taylor & Francis Group © 2003 / A series
of book in oceanology ISSN 1561-5928.
[13] Advance in Unmanned Marine Vehicles edited by GN Roberts & R
Sutton, IEE Control Engineering Series 69 (Series editors: Professor D.
Atherton & Professor S. Spurgeon).
[14] Bruno Borvic, Ognjen Kuljaca and Frank L. Lewis Neural Net
Underwater Vehicle Dynamic Position Control, IEEE.
[15] Khac Duc Do, Jie Pan, Control of Ships and Underwater Vehicles
(Design for underactuated and nonlinear marine systems) School of
Mechanical Engineering – The University of Western Australia.
[16] Underwater Acoustic Digital Signal Processing and Communication
Systems edited by Robert S.H.Istepanian, Brunel Univesity & Milica
Stojanovic / MIT – Kluwer Academic Publishers.
[17] Aage, C. and Smitt, L.W. (1994). Hydrodynamic manoeuvrability data
of a flatfish type AUV, Proceeding of the IEEE Conference Ocean’94,
[18] Brest, France, Aage, C. (1997). Manoeuvring simulations and trail of
flatfish type AUV. Department of Naval Architecture and Offshore
Engineering, Technical University of Denmark, Larsen, M.B.,
Department of Automation, Technical University of Denmark,
OMAE’97, Vol.IB, Tokyo.
[19] R. Cristi, F.A. Papoulias, A.J. Healy, Adaptive sliding mode control of
autonomous underwater vehicles in the dive plane, IEEE Journal of
Ocean Engineering, 15(3), 1990, 152-160.
109
Control (2001)
[31] Thor I. Fossen, Maritime Control Systems - Guidance, Navigation and
Control of Ships, Rigs and Underwater Vehicles, Marine Cybernetics,
Trondheim, Norway, ISBN 82-92356-00-2 (2002).
[32] Regardt, B.: Modelling and Simulation of an Autonomous Underwater
Vehicle. University of Stellenbosch, South Africa (2009)
[33] R. Prasanth Kumar, A. Dasgupta, and C. S. Kumar, “Robust trajectory
control of underwater vehicles using time delay control law,” Ocean
Engineering, vol. 34, no. 5-6, pp. 842–849, 2007.
[34] A. Mazumdar and H. H. Asada, “A compact underwater vehicle using
highbandwidth coanda-effect valves for low speed precision
maneuvering in cluttered environments” in 2011 IEEE International
Conference on Robotics and Automation, pp. 1544–1550, 2011.
[35] A. Thomas, M. Milano, M. G. G’Sell, K. Fischer, and J. Burdick,
“Synthetic Jet Propulsion for Small Underwater Vehicles” in
Proceedings of the 2005 IEEE International Conference on Robotics
and Automation, pp. 181–187, April 2005.
[36] P. Krishnamurthy, F. Khorrami, J. de Leeuw, M. E. Porter, K.
Livingston, and J. H. Long, “A multi-body approach for 6DOF
modeling of Biomimetic Autonomous Underwater Vehicles with
simulation and experimental results” in 2009 IEEE International
Conference on Control Applications, pp. 1282–1287, 2009.
[37] P. R. Bandyopadhyay, “Trends in biorobotic autonomous undersea
vehicles” IEEE J. Ocean. Eng., vol. 30, no. 1, pp. 109–139, Jan. 2005.
[38] A. Mazumdar, M. Lozano, A. Fittery, and H. Harry Asada, “A compact,
maneuverable, underwater robot for direct inspection of nuclear
power piping systems” in 2012 IEEE International Conference on
Robotics and Automation, pp. 2818–2823, 2012.
[39] F. Giorgio Serchi, A. Arienti, and C. Laschi, “Biomimetic Vortex
Propulsion: Toward the New Paradigm of Soft Unmanned Underwater
111
PHỤ LỤC
CÁC FILE MATLAB ĐỂ THỰC HIỆN MÔ PHỎNG
ĐIỀU KHIỂN AUV
r = x(6);
w = x(3);
% psi = x(6);
% control system
% Phuong an 1:
if i<2000, psi_ref(i) = 10*(pi/180); end
if i>=2000, psi_ref(i) = 0*(pi/180); end
if i>=4000, psi_ref(i) = 10*(pi/180); end
% Phuong an 2
% psi_ref(i) = 10*(pi/180);
Z_ref(i) = -4;
err_s = Z-Z_ref(i);
net_in_s(1) = err_s;
ii=round(i/10);
if round(i/10)==0,ii=2,end
ui = [delta
delta_s
0
0
0
300 ];
[xdot,U] = npsauv(x,ui);
% numerical integration
x = euler2(xdot,x,h); % Euler integration
% z = z + h*err;
% z = z + h*err_s;
net_in(2) = e_out(ii-1,1);
net_in(3) = e_out(ii-2,1);
net_in(4) = e_out(ii-3,1);
net_in_s(2) = e_out(ii-1,2);
net_in_s(3) = e_out(ii-2,2);
net_in_s(4) = e_out(ii-3,2);
end % end of "if ii>3"
%----------------------------------------------------------------------
end
% time-series
t = xout(:,1);
u = xout(:,2);
v = xout(:,3);
w = xout(:,4);
p = xout(:,5);
q = xout(:,6);
r = xout(:,7)*180/pi;
X = xout(:,8);
Y = xout(:,9);
Z = xout(:,10);
phi = xout(:,11);
theta = xout(:,12);
psi = xout(:,13)*180/pi;
U = xout(:,14);
delta = -xout(:,15)*180/pi;
delta_s = xout(:,16)*180/pi;
psi_ref = psi_ref*180/pi;
figure(2)
clf
hold on
subplot(211)
plot(t,Z_ref,'LineWidth',2,'Color','r','LineStyle','--')
hold on
124
plot(t,Z,'LineWidth',2,'Color','b','LineStyle','-')
title('NNC control - Actual depth Z (m)'),ylabel('[m]'),grid on
legend('Desired depth','Actual depth','Location','Best')
subplot(212)
plot(t,delta_s,'LineWidth',2,'Color','b','LineStyle','-')
title('Plane angle \delta_s (deg)')
xlabel('Time (s)'),ylabel('[Deg]'),grid on
figure(3)
clf
plot3(X,Y,Z,'LineWidth',2,'Color','b','LineStyle','-')
grid on
title('Simulation of the AUV track by NNC')
xlabel('X(m)'),ylabel('Y(m)'),zlabel('Z(m)')
% >>>>>>END<<<<<<<<
125
r = x(6);
w = x(3);
udot = u-x(1);
u = x(1);
q = x(5);
theta= x(11);
% psi = x(6);
% control system
% Phuong an 1:
if i<2000, psi_ref(i) = 10*(pi/180); end
if i>=2000, psi_ref(i) = 0*(pi/180); end
if i>=4000, psi_ref(i) = 15*(pi/180); end
% Phuong an 2
% psi_ref(i) = 10*(pi/180);
Z_ref(i) = -2;
% if i<3000, ud(i) = 0.4; end
% if i>=3000, ud(i) = 0.5; end
ud(i) = 0.4;
err_s = Z-Z_ref(i);
net_in_s(1) = err_s;
err_n = -u+ud(i);
net_in_n(1) = err_n;
ii=round(i/10);
if round(i/10)==0,ii=2,end
delta = mlnnc(1,6,4,net_in,W21,W32);
delta_s = mlnnc(1,6,4,net_in_s,W21_s,W32_s);
n = mlnnc(1,6,4,net_in_n,W21_n,W32_n)*1500;
if abs(delta)>max_delta,delta=sign(delta)*max_delta;end
if
abs(delta_s)>max_delta_s,delta_s=sign(delta_s)*max_delta_s;end
if abs(n)>max_n,n=sign(n)*max_n;end
ui = [delta
delta_s
0
0
127
0
n ];
[xdot,U] = npsauv(x,ui);
% numerical integration
x = euler2(xdot,x,h); % Euler integration
z = z + h*err;
z_s = z_s + h*err_s;
z_n = z_n + h*err_n;
err_s,delta_s,w,theta,rho_s,lambda_s,sigma1_s,sigma2_s); % Add
integration action
[W21_n,W32_n] = annaiTrainIte(h,0.5,50,1,6,4,net_in_n,...
err_n,n/1500,udot,z_n,rho_n,lambda_n,sigma1_n,sigma2_n);% Add
integration action
net_in(2) = e_out(ii-1,1);
net_in(3) = e_out(ii-2,1);
net_in(4) = e_out(ii-3,1);
net_in_s(2) = e_out(ii-1,2);
net_in_s(3) = e_out(ii-2,2);
net_in_s(4) = e_out(ii-3,2);
net_in_n(2) = e_out(ii-1,3);
net_in_n(3) = e_out(ii-2,3);
net_in_n(4) = e_out(ii-3,3);
end % end of "if ii>3"
%----------------------------------------------------------------------
----
end
% time-series
t = xout(:,1);
u = xout(:,2);
v = xout(:,3);
w = xout(:,4);
p = xout(:,5);
q = xout(:,6);
r = xout(:,7)*180/pi;
X = xout(:,8);
Y = xout(:,9);
Z = xout(:,10);
phi = xout(:,11);
theta = xout(:,12)*180/pi;
psi = xout(:,13)*180/pi;
U = xout(:,14);
delta = -xout(:,15)*180/pi;
delta_s = xout(:,16)*180/pi;
n = xout(:,17);
psi_ref = psi_ref*180/pi;
128
% PLOT THE RESULTS
figure(1)
clf
subplot(211)
plot(t,psi_ref,'LineWidth',2,'Color','r','LineStyle','--')
hold on
plot(t,psi,'LineWidth',2,'Color','b','LineStyle','-')
title('NNC control - Yaw angle \psi (deg)'),ylabel('[Deg]'),grid on
legend('Set course','Actual course','Location','Best')
%axes([0, -5, 600, 20])
subplot(212)
plot(t,delta,'LineWidth',2,'Color','b','LineStyle','-')
title('Rudder angle \delta_R (deg)')
xlabel('Time (s)'),ylabel('[Deg]'),grid on
% legend('ANNAI controller','PID controller')
figure(2)
clf
subplot(311)
plot(t,Z_ref,'LineWidth',2,'Color','r','LineStyle','--')
hold on
plot(t,Z,'LineWidth',2,'Color','b','LineStyle','-')
title('NNC control - Actual depth Z (m)'),ylabel('[m]'),grid on
legend('Desired depth','Actual depth','Location','Best')
subplot(312)
plot(t,theta,'LineWidth',2,'Color','b','LineStyle','-')
title('Pitch angle \theta (deg)'),ylabel('[Deg]'),grid on
subplot(313)
plot(t,delta_s,'LineWidth',2,'Color','b','LineStyle','-')
title('Plane angle \delta_S (deg)')
xlabel('Time (s)'),ylabel('[Deg]'),grid on
figure(3)
clf
subplot(211)
plot(t,ud,'LineWidth',2,'Color','r','LineStyle','--')
hold on
plot(t,u,'LineWidth',2,'Color','b','LineStyle','-')
title('NNC control - Actual speed U (m/s)'),ylabel('[m/s]'),grid on
legend('Desired speed','Actual speed','Location','Best')
subplot(212)
plot(t,n,'LineWidth',2,'Color','b','LineStyle','-')
title('Propeller speed n (rpm)')
xlabel('Time (s)'),ylabel('[rpm]'),grid on
figure(4)
clf
plot3(X,Y,Z,'LineWidth',2,'Color','b','LineStyle','-')
grid on
title('Simulation of the AUV control by FC')
xlabel('X(m)'),ylabel('Y(m)'),zlabel('Z(m)')
% >>>>>>>>>END<<<<<<<<<<<
129
PL3. File mô phỏng điều khiển dẫn đường AUV theo quỹ đạo
% Px = [0 0 50 50 0];
% Py = [0 50 50 0 0];
Px = [0 70 70 0 0 70 70];
Py = [0 0 70 70 0 0 70];
% Pz = [-10 -8 -8 -8 -10];
Pz = [-10 -10 -10 -10 -10 -10 -10];
% Pz = [-10 -10 -5 -10 -10 -10 -5];
% Psi = [135 45 315 225 135]*pi/180;
M = 2;
L = 5;
%----------------------------------------------------------------------
% Controller's parameters of the rudder
rho = 0.5; lambda = 0.1; sigma1 = 0.2; sigma2 = 0;
%----------------------------------------------------------------------
% Controller's parameters of the P&S stern planes
rho_s = 0.2; lambda_s = 0.1; sigma1_s = 0.2; sigma2_s = 0.01;
%----------------------------------------------------------------------
% Controller's parameters of the propeller
rho_n = 1.5; lambda_n = 0.1; sigma1_n = 0.2; sigma2_n = 0.05;
%----------------------------------------------------------------------
% ui = [ delta_r delta_s delta_b delta_bp delta_bs n ]'
r = x(6);
w = x(3);
udot = u-x(1);
u = x(1);
q = x(5);
theta= x(11);
xd(i) = x(7);
yd(i) = x(8);
zd(i) = x(9);
% psi_d(i) = Psi(m);
% psi_d(i) = LOSguide(Px(m-1),Py(m-1),Px(m-1),Py(m-
1),Px(m),Py(m),2,L); % H??ng d?c theo các ?o?n
psi_d(i) = LOSguide(xd(i),yd(i),xd(i),yd(i),Px(m),Py(m),2,L);
Z_ref(i) = Pz(m);
ud(i) = 0.4;
%--------------------------------------
% err = CourseError(psi_d(i),psi);
131
err = psi - psi_d(i); % Do lech huong di so voi huong dat
% Xu ly chuyen quadrant khi goc 0 va 360
if abs(err) > pi % Khi psi va psi_d nam o goc phan tu I va IV
err = 2*pi - sign(err)*err;
end
net_in(1) = err;
%--------------------------------------
err_s = zd(i) - Z_ref(i);
net_in_s(1) = err_s;
%--------------------------------------
err_n = -u + ud(i);
net_in_n(1) = err_n;
%--------------------------------------
ii=round(i/10);
if round(i/10)==0,ii=2,end
%----------------------------------------------------------------------
----
% Dau ra cua BDK duoc tinh toan 1 giay 1 lan (theo bien "ii")
if ii>3
% Calculate rudder command:
ui = [delta
delta_s
delta
delta_s
delta_s
n ];
[xdot,U] = npsauv(x,ui);
% numerical integration
x = euler2(xdot,x,h); % Euler integration
z = z + h*err;
z_s = z_s + h*err_s;
z_n = z_n + h*err_n;
err_s,delta_s,w,theta,rho_s,lambda_s,sigma1_s,sigma2_s); % Add
integration action
[W21_n,W32_n] = annaiTrainIte(h,0.5,50,1,6,4,net_in_n,...
132
err_n,n/1500,udot,z_n,rho_n,lambda_n,sigma1_n,sigma2_n);% Add
integration action
net_in(2) = e_out(ii-1,1);
net_in(3) = e_out(ii-2,1);
net_in(4) = e_out(ii-3,1);
net_in_s(2) = e_out(ii-1,2);
net_in_s(3) = e_out(ii-2,2);
net_in_s(4) = e_out(ii-3,2);
net_in_n(2) = e_out(ii-1,3);
net_in_n(3) = e_out(ii-2,3);
net_in_n(4) = e_out(ii-3,3);
end % end of "if ii>3"
%---------------------------------------------------------------------
end
% time-series
t = xout(:,1);
u = xout(:,2);
v = xout(:,3);
w = xout(:,4);
p = xout(:,5);
q = xout(:,6);
r = xout(:,7)*180/pi;
X = xout(:,8); X(1) = xd(1);
Y = xout(:,9); Y(1) = yd(1);
Z = xout(:,10);Z(1) = zd(1);
phi = xout(:,11);
theta = xout(:,12)*180/pi;
psi = xout(:,13)*180/pi; psi(1) = psi1*180/pi;
U = xout(:,14);
delta = -xout(:,15)*180/pi;
delta_s = xout(:,16)*180/pi;
n = xout(:,17);
psi_ref = psi_d*180/pi;
for i=1:NN
if psi_ref(i)<90
psi_ref(i) = (90 - psi_ref(i));
else
psi_ref(i) = (5*90 - psi_ref(i));
end
end
for i=1:NN
if psi(i)<90
psi(i) = (90-psi(i));
else
psi(i) = (5*90 - psi(i));
end
end
figure(2)
clf
subplot(311)
plot(t,Z_ref,'LineWidth',2,'Color','r','LineStyle','--')
hold on
plot(t,Z,'LineWidth',2,'Color','b','LineStyle','-')
title('NNC control - Actual depth Z (m)'),ylabel('[m]'),grid on
legend('Desired depth','Actual depth','Location','Best')
subplot(312)
plot(t,theta,'LineWidth',2,'Color','b','LineStyle','-')
title('Pitch angle \theta (deg)'),ylabel('[Deg]'),grid on
subplot(313)
plot(t,delta_s,'LineWidth',2,'Color','b','LineStyle','-')
title('Plane angle \delta_S (deg)')
xlabel('Time (s)'),ylabel('[Deg]'),grid on
figure(3)
clf
subplot(211)
plot(t,ud,'LineWidth',2,'Color','r','LineStyle','--')
hold on
plot(t,u,'LineWidth',2,'Color','b','LineStyle','-')
title('NNC control - Actual speed U (m/s)'),ylabel('[m/s]'),grid on
legend('Desired speed','Actual speed','Location','Best')
subplot(212)
plot(t,n,'LineWidth',2,'Color','b','LineStyle','-')
title('Propeller speed n (rpm)')
xlabel('Time (s)'),ylabel('[rpm]'),grid on
figure(4)
clf
% axis([-10 60 -10 60 -12 -8])
hold on
plot3(X,Y,Z,'LineWidth',2,'Color','b','LineStyle','-')
hold on
plot3(Px,Py,Pz,'LineWidth',3,'Color','r','LineStyle','--')
grid on
title('Simulation of the AUV track by NNC')
xlabel('X(m)'),ylabel('Y(m)'),zlabel('Z(m)')
figure(5)
clf
plot(X,Y,'LineWidth',2,'Color','b','LineStyle','-')
hold on
grid on
plot(Px,Py,'LineWidth',2,'Color','r','LineStyle','--')
title('Simulation of the AUV track by NNC')
xlabel('X(m)'),ylabel('Y(m)')
%>>>>>>>>>>>>END<<<<<<<<<<<<<
134
if delta_x==0
x_los = x_k_1; % x_los = x_k
if delta_y > 0
y_los = pos_y + n*L;
else % delta_y < 0
y_los = pos_y - n*L;
end
else % delta_x~=0
D = delta_y/delta_x;
E = x_k_1;
F = y_k_1;
G = -D*E + F;
A = 1 + D^2;
B = 2*(D*G - D*pos_y - pos_x);
C = pos_x^2 + pos_y^2 + G^2 - (n*L)^2 - 2*G*pos_y;
if delta_x > 0
x_los = (-B + sqrt(B^2 - 4*A*C))/(2*A);
else % delta_x < 0
x_los = (-B - sqrt(B^2 - 4*A*C))/(2*A);
end
y_los = D*(x_los - E) + F;
end % End of "if delta_x==0"
if x_los == pos_x
if y_los > pos_y
135
psi_los = pi/2;
else
psi_los = 3*(pi/2);
end
elseif x_los > pos_x
K = (y_los - pos_y)/(x_los - pos_x);
if y_los > pos_y
psi_los = atan(K);
elseif y_los < pos_y
psi_los = 2*pi + atan(K);
else % if y_los == pos_y
psi_los = 0;
end
else % if x_los < pos_x
K = (y_los - pos_y)/(x_los - pos_x);
if y_los ~= pos_y
psi_los = pi + atan(K);
% elseif y_los < pos_y
% psi_los = 2*pi + atan2(y_los - pos_y,x_los - pos_x);
else % if y_los == pos_y
psi_los = pi;
end
end
%>>>>>>>>>>>END<<<<<<<<<<<
136
% Setup values
% alph = 0.25;
Vcmax = 1;%0.2572;%1; % Maximum current velocity (m/s)
Vcmin = 0.25;%0.1028;%0.5; % Minimum current velocity (m/s)
Hc = 110;%220; % Current direction (deg)
%------------------------------------------------
%>>>>>>>>>>>END<<<<<<<<<<<
137
function Oi = mlnnc(outputs,hiddens,inputs,net_in,W21,W32)
neti = 0;
for j=1:hiddens
netj(j)=0;
for p=1:inputs
mod_inj(j,p) = net_in(p)*W21(j,p); % Calculated the modulated
input
netj(j) = mod_inj(j,p) + netj(j); % Calculated the accumulated
input
end % End of statement "for p=..."
Oj(j) = 1/(1+exp(-netj(j)));
mod_ini(j) = Oj(j)*W32(j); % Calculated the modulated
input
neti = neti + mod_ini(j); % Calculated the accumulated
input
end % End of statement "if j=..."
Oi = tansig(neti); % This is the output of NN
controller
%>>>>>>>>>>>END<<<<<<<<<<<
138
function [W21,W32] =
annaiTrain(h,lr,N,outputs,hiddens,inputs,net_in,e,U,r,...
ro_w,lamda_w,beta_w)