You are on page 1of 156

BỘ GIAO THÔNG VẬN TẢI BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI THÀNH PHỐ HỒ CHÍ MINH

PHẠM VIỆT ANH

NGHIÊN CỨU
ĐIỀU KHIỂN THÍCH NGHI CHO ROBOT LẶN TỰ HÀNH

LUẬN ÁN TIẾN SĨ

TP. HỒ CHÍ MINH – 2022


BỘ GIAO THÔNG VẬN TẢI BỘ GIÁO DỤC ĐÀO TẠO
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI THÀNH PHỐ HỒ CHÍ MINH

PHẠM VIỆT ANH

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ÀNH: KHOA HỌC HÀNG HẢI


MÃ SỐ: 9840106

Người hướng dẫn khoa học: PGS. TS. Nguyễn Phùng Hưng
TS. Lê Văn Ty

TP. HỒ CHÍ MINH – 2022


iii

MỤC LỤC
LỜI CAM ĐOAN ................................................................................................... vi
LỜI CẢM ƠN........................................................................................................ vii
TÓM TẮT……………………………………………………………………….viii

DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU ............................................. x


DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ .................................................................. xiii
DANH MỤC CÁC BẢNG .................................................................................. xvii
MỞ ĐẦU ................................................................................................................. 1
1. Tính cấp thiết của đề tài ............................................................................... 2
2. Mục đích nghiên cứu của đề tài.................................................................... 3
3. Đối tượng và phạm vi nghiên cứu ................................................................ 3
4. Phương pháp nghiên cứu .............................................................................. 3
5. Ý nghĩa khoa học và thực tiễn ...................................................................... 3
6. Những điểm đóng góp mới của luận án ....................................................... 4
7. Kết cấu của luận án ...................................................................................... 4
CHƯƠNG 1 ............................................................................................................. 5
TỔNG QUAN VỀ ĐIỀU KHIỂN ROBOT LẶN TỰ HÀNH (AUTONOMOUS
UNDERWATER VEHICLE) .................................................................................. 5
1.1. Tổng quan về robot lặn tự hành AUV (Autonomous Underwater Vehicle) 5
1.1.1 Các ứng dụng của AUV trên thế giới ........................................................... 6
1.1.2 Các ứng dụng của AUV tại Việt Nam .......................................................... 9
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 ............. 11
1.2 Tổng quan về điều khiển AUV hiện nay .................................................... 18
1.2.1 Các nghiên cứu về điều khiển AUV trên thế giới ....................................... 18
1.2.2 Các nghiên cứu về điều khiển AUV tại Việt Nam ...................................... 25
1.3 Kết luận chương 1 ...................................................................................... 26
CHƯƠNG 2 ........................................................................................................... 27
CƠ SỞ LÝ THUYẾT ĐIỀU KHIỂN NƠ-RON THÍCH NGHI THIẾT BỊ LẶN
TỰ HÀNH ............................................................................................................. 27
2.1 Mạng nơ-ron nhân tạo ................................................................................ 27
2.1.1 Tổng quan về mạng nơ-ron nhân tạo trong điều khiển ............................. 27
2.1.1.1 Cấu trúc của mạng nơ-ron ..................................................................... 27
iv

2.1.1.2 Các hình trạng của mạng ....................................................................... 31


2.1.1.3 Các luật học của mạng nơ-ron nhân tạo ................................................ 32
2.1.2 Điều khiển tự động dùng mạng nơ-ron nhân tạo ...................................... 33
2.2 Ứng dụng mạng nơ-ron nhân tạo điều khiển AUV .................................... 34
2.3 Kết luận chương 2 ...................................................................................... 38
CHƯƠNG 3 ........................................................................................................... 39
THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN NƠ-RON THÍCH NGHI CHO ROBOT
LẶN TỰ HÀNH .................................................................................................... 39
3.1 Mô hình toán học AUV sử dụng trong nghiên cứu .................................... 39
3.1.1 Cấu tạo của mô hình NPS AUV II .............................................................. 39
3.1.2 Mô hình toán học AUV ............................................................................... 40
3.2 Mạng nơ-ron thích nghi trong điều khiển .................................................. 47
3.2.1 Bộ điều khiển nơ-ron thích nghi tương tác ................................................ 47
3.2.2 Mô hình tổng quát của bộ điều khiển NNC huấn luyện trực tuyến ............ 48
3.3 Thiết kế hệ thống điều khiển nơ-ron cho AUV .......................................... 50
3.3.1 Điều khiển riêng biệt các chuyển động của AUV....................................... 50
3.3.2 Thiết kế bộ điều khiển nơ-ron cho các hệ thống con ................................. 51
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) ........................................................................................... 54
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
.................................................................................................................... 55
3.4.1 Điều khiển AUV theo quỹ đạo đặt trước .................................................... 55
3.4.2 Điều khiển AUV bám theo địa hình đáy ..................................................... 58
3.5 Các phương án thích nghi cho hệ thống điều khiển AUV ......................... 58
3.5.1 Mô hình dòng chảy tác động lên AUV ....................................................... 58
3.5.2 Thích nghi với tác động của dòng chảy ..................................................... 59
3.6 Kết luận chương 3 ...................................................................................... 61
CHƯƠNG 4 ........................................................................................................... 62
MÔ PHỎNG ĐIỀU KHIỂN AUV BẰNG BỘ ĐIỀU KHIỂN NƠ-RON THÍCH
NGHI ..................................................................................................................... 62
4.1 Giới thiệu phương pháp và điều kiện mô phỏng ........................................ 62
4.1.1 Phương pháp mô phỏng ............................................................................. 62
4.1.2 Điều kiện mô phỏng .................................................................................... 62
v

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

LỜI CAM ĐOAN

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

Phạm Việt Anh


vii

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!

Tp.HCM, ngày 27 tháng 03 năm 2022


Tác giả

Phạm Việt Anh


viii

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

Nowadays artificial neural network has been widely applied in many


fields including automatic control as its ability to solve many complicated
control problems, even for high nonlinear objects in unpredictable external
environment that makes the objects hard to control. Furthermore, fast
processing ability of neural networks make them feasible for real time control
applications.
The research in advanced control systems for AUV has still been young
and not enough widely applied in Vietnam.
However the demand for application of AUV for sea exploring,
underwater construction, surveying and maintaining submerged cables and
tubes, under sea search and rescue has been increasing in Vietnam. The AUV
have been bought or hired from oversea countries for those works. Studies to
improve AUV control systems, and step to step master manufacturing
technology, operation of AUV is very necessary for exploring, surveying,
managing sea for the sake of national security, defense, protecting sea and
national sovereignty at sea.
Based on studying conventional and modern control methods of AUV,
researching neural network control algorithm, this dissertation developed an
application of adaptive neural network controller for AUV. The author
upgrades and improve the controller quality applying for this kind of vehicle
to introduce a new controller with applicable functions.
Theoretical and simulation results proved the feasibility of the control
algorithms proposed by the author.
x

DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU

Chữ viết tắt Giải thích ý nghĩa

AUV Autonomous Underwater Vehicle

ANN Artificial Neural Network

BĐK Bộ điều khiển

LOS Line of Sight

NNC Neural Network Controller

PD Proportion Derivative

PID Proportion Integration Derivative

𝐼𝑥 , 𝐼𝑦 , 𝐼𝑧 momen quán tính đối với trục xb , yb, zb


𝑅𝑏𝑛 ma trận chuyển đổi

𝜂 vector vị trí và hướng của AUV trong hệ trục tọa độ {n}

𝑝 vị trí của hệ trục tọa độ {b} so với hệ trục tọa độ {n}

Θ góc xoay giữa hệ trục tọa độ {b} và hệ trục tọa độ {n}

𝑉 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}

𝑓 lực tác động lên AUV trong hệ trục tọa độ {b}

ɱ moment tác động lên AUV trong hệ trục tọa độ {b}

w ji Các trọng số tương ứng với các đầu vào

j Độ lệch (bias)

aj Đầu vào mạng (net-input)


xi

zj Đầu ra của nơ-ron

g ( x) Hàm truyền (hay hàm kích hoạt)

𝐶(𝑉𝑟 ) ma trận lực hướng tâm Coriolis

𝐷(𝑉𝑟 ) 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)

g0 vector trọng lực thêm vào để làm AUV cân bằng


Oi tín hiệu ra của nơ-ron thứ i
Ii tín hiệu vào của nơ-ron thứ i
i giá trị ngưỡng của nơ-ron thứ i
wij trọng số của liên kết từ nơ-ron thứ i đến nơ-ron thứ j

Oid giá trị đầu ra mong muốn của nơ-ron thứ i

 bước học

Xkd véc-tơ trạng thái mong muốn

Xk véc-tơ trạng thái thực tế

ukc véc-tơ lệnh điều khiển

uk véc-tơ điều khiển thực tế

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

Λ ma trận đối xứng dương của véc-tơ điều khiển

k Chu trình điều khiển

n số lần huấn luyện trong một chu trình

Ek Hàm mục tiêu

ek Sai số điều khiển

 kd hướng đi mong muốn


xii

k Hướng đi thực tế

z kd Độ sâu mong muốn

zk Độ sâu thực tế

k Góc chúi của AUV

 Rk Góc bẻ lái

 Sk Góc bánh lái độ sâu

wk Tốc độ theo phương đứng

rk Tốc độ đổi hướng

u kd Tốc độ mong muốn

uk Tốc độ thực tế

𝑍𝑘 Tích phân sai số độ sâu


xiii

DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ

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.6 Sơ đồ hệ thống điều khiển hướng AUV .........................................51

Hình 3.7 Sơ đồ hệ thống điều khiển độ sâu AUV .........................................53

Hình 3.8 Sơ đồ hệ thống điều khiển tốc độ AUV ..........................................53


xiv

Hình 3.9 Sơ đồ hệ thống dẫn đường và điều khiển AUV..............................54

Hình 3.10 Luật điều hướng LOS...................................................................56

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. 26 Đáp ứng hướng đi của AUV trong TN7 ..................................... 79


Hình 4. 27 Đáp ứng độ sâu của AUV trong TN7 ......................................... 80
Hình 4. 28 Đáp ứng tốc độ của AUV trong TN7 .......................................... 80
Hình 4. 29 Quỹ đạo chuyển động của AUV trong TN7 ................................ 81
Hình 4. 30 Quỹ đạo trên mặt phẳng ngang của AUV trong TN7 ................. 81
Hình 4. 31 Đáp ứng hướng đi của AUV trong TN8 ..................................... 82
Hình 4. 32 Đáp ứng độ sâu của AUV trong TN8 ......................................... 82
Hình 4. 33 Đáp ứng tốc độ của AUV trong TN8 .......................................... 83
Hình 4. 34 Quỹ đạo chuyển động của AUV trong TN8 ................................ 83
Hình 4. 35 Quỹ đạo của AUV trên mặt phẳng ngang trong TN8 ................. 84
Hình 4. 36 Đáp ứng hướng đi của AUV trong TN9 ..................................... 84
Hình 4. 37 Đáp ứng tốc độ của AUV trong TN9 .......................................... 85
Hình 4. 38 Đáp ứng độ sâu của AUV trong TN9 ......................................... 85
Hình 4. 39 Quỹ đạo chuyển động của AUV trong TN9 ................................ 86
Hình 4. 40 Quỹ đạo của AUV trên mặt phẳng ngang trong TN9 ................. 86
Hình 4. 41 Đáp ứng hướng đi của AUV trong TN10 ................................... 87
Hình 4. 42 Đáp ứng độ sâu của AUV trong TN10 ....................................... 87
Hình 4. 43 Đáp ứng tốc độ của AUV trong TN10 ........................................ 88
Hình 4. 44 Quỹ đạo chuyển động của AUV trong TN10 .............................. 88
Hình 4. 45 Quỹ đạo trên mặt phẳng ngang của AUV trong TN10 ............... 89
Hình 4. 46 Khoảng cách dạt trên mặt phẳng ngang (TN10)........................ 89
Hình 4. 47 Đáp ứng hướng đi của AUV trong TN11 ................................... 90
Hình 4. 48 Đáp ứng độ sâu của AUV trong TN11 ....................................... 90
Hình 4. 49 Đáp ứng tốc độ của AUV trong TN11 ........................................ 91
Hình 4. 50 Quỹ đạo chuyển động của AUV trong TN11 .............................. 91
Hình 4. 51 Quỹ đạo trên mặt phẳng ngang của AUV trong TN11 ............... 92
Hình 4. 52 Khoảng cách dạt trên mặt phẳng ngang (TN11)........................ 92
Hình 4. 53 Đáp ứng hướng của AUV trong TN12........................................ 93
Hình 4. 54 Đáp ứng độ sâu của AUV trong TN12 ....................................... 94
Hình 4. 55 Đáp ứng tốc độ AUV trong TN12 ............................................... 94
xvi

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

DANH MỤC CÁC BẢNG

Bảng 1. 1 Một số mẫu AUV trên thế giới. ...................................................... 6


Bảng 1. 2 Thống kê tàu tự hành AUV ............................................................. 8
Bảng 1. 3 Bảng quy ước các đại lượng ........................................................ 13
Bảng 4. 1 Các hệ số của mô hình động học NPS AUV II (Matlab code) ..... 62
1

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

2. Mục đích nghiên cứu của đề tài


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.
Mục đích nghiên cứu của đề tài là 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. Từ đó, thiết kế thử nghiệm bộ
điều khiển trên mô phỏng và thực nghiệm.
3. Đối tượng và phạm vi nghiên cứu
Nghiên cứu các thuật toán điều khiển nơ-ron và điều khiển thích nghi
dựa trên hoạt động của mạng nơ-ron nhân tạo.
Đề xuất phát triển thuật toán và ứng dụng vào thiết kế Bộ điều khiển
nơ-ron thích nghi cho điều khiển hướng đi, độ sâu và tốc độ AUV.
Sử dụng phần mềm Matlab để mô phỏng bộ điều khiển được đề xuất,
đánh giá chất lượng bộ điều khiển nơ-ron thích nghi trong các phương án điều
khiển AUV ứng dụng vào thực tiễn.
4. Phương pháp nghiên cứu
Phân tích, tổng hợp hệ thống điều khiển AUV dựa trên mạng nơ-ron
thích nghi.
Nghiên cứu ứng dụng thuật toán điều khiển nơ-ron thích nghi cho hệ
thống điều khiển hướng đi, độ sâu và tốc độ AUV.
Phương pháp mô phỏng sử dụng Matlab làm công cụ để mô phỏng
kiểm chứng lại tính khả thi và chính xác của thuật toán.
Phương pháp so sánh: so sánh với bộ điều khiển PID thông thường để
chứng minh tính hiệu quả của bộ điều khiển nơ-ron.
5. Ý nghĩa khoa học và thực tiễn
Kết quả nghiên cứu của luận án có thể đóng góp về lý thuyết, làm tài
liệu tham khảo cho các sinh viên, học viên, nghiên cứu sinh và những người
quan tâm đến lĩnh vực điều khiển. Thuật toán điều khiển và kết quả nghiên
cứu cũng có thể ứng dụng vào nghiên cứu chế tạo các bộ điều khiển có chất
4

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

TỔNG QUAN VỀ ĐIỀU KHIỂN ROBOT LẶN TỰ HÀNH


(AUTONOMOUS UNDERWATER VEHICLE)

1.1. Tổng quan về robot lặn tự hành AUV (Autonomous Underwater


Vehicle)
Nước ta có một bờ biển dài hơn 3000 km và một diện tích rất lớn ao
hồ, đầm lầy… Việc thăm dò và khai thức những nguồn tài nguyên trong lòng
đại dương đã gặp phải những hạn chế trong những vùng biển sâu. Đối với các
công trình trên biển như giàn khoan, đường ống dẫn dầu, đường dây cáp
quang… trong quá trình xây dựng và khai thác thì nhu cầu thăm dò, khảo sát,
tiến hành các công việc dưới nước là tất yếu. Trong quân sự, việc rà quét và
tháo gỡ thủy lôi, mìn làm sạch các vùng nước sau chiến tranh và chuẩn bị cho
việc đổ bộ tác chiến… cũng được tiến hành dưới nước. Các công việc cứu hộ,
cứu nạn, trục vớt trên biển cũng phát sinh khi giao thông vận tải ngày càng
phát triển.

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.

1.1.1 Các ứng dụng của AUV trên thế giới

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.

AUV Mô tả Hình ảnh

SPURV - SPURV được phát triển bởi


trường Đại học Washington,
(Self-
Mỹ, 1957.
Propelled
- Lặn sâu 3.000m và thời gian lặn
Under-
liên tục trong 4 giờ.
water
- Có khả năng đo nhiệt độ và độ
Research
truyển được sử dụng để hỗ trợ
Vehicle)
nghiên cứu hải dương học, bao
gồm nghiên cứu truyền tải âm
thanh và phát hiện tàu ngầm.

Epaulard - Epaulard được chế tạo bởi


Viện nghiên cứu đại dương
(IFREMER), Pháp, 1980.
- Dài 4m và nặng 2,9 tấn.
- Lặn sâu tới 6.000m, được sử
dụng trong nghiên cứu đại đại
dương.

AUSS - AUSS được chế tạo bởi trung


tâm nghiên cứu quân sự về
đại dương và không gian
(SPAWAR), Mỹ, 1983.
- Hoạt động ở độ sâu lên đến
6.000m.
- Có thể chụp và truyền hình ảnh
đáy của đại dương thông qua
7

một máy truyền âm ở tốc độ lên


đến 4.800 bít/giây.
- Được trang bị các Sonar quét
bên và các Sonar nhìn về phía
trước để giúp xác định vị trí các
đối tượng lạ trong đại dương.

REMUS - REMUS 6000 được chế tạo bởi


6000 tập đoàn Kongsberg Maritime,
Na Uy, 1997.
- Có thể lặn sâu tới 6.000m.
- Phục vụ nghiên cứu giám sát,
thăm dò và lập bản đồ đại
dương.
- Dễ dàng tùy biến cho các tác vụ
dân sự và quân khác khi trang bị
các Sonar chức năng.

SEAOTE - SEAOTTER MKII được chế


R MKII tạo bởi tập đoàn Atlas
Elektronik, Đức, 2007.
- Chiều dài 3,65m,trọng lượng
1000 kg, chiều sâu lặn tới
600m, tải trọng mang thêm đến
160kg và thời gian hoạt động
một lần 20 giờ.
- Tác vụ: thăm dò và khai khoáng
tài nguyên biển, chống xâm
nhập tàu ngầm, trinh sát và giám
sát vùng kinh tế biển đảo và lập
bản đồ.

Bluefin-9 - Bluefin-9 được phát triển bởi


tập đoàn Bluefin Robotics, Mỹ,
2010.
- Trọng lượng 60,5kg, Kích
thước L x W = 1,65m x
0,24m,
- Lặn sâu lớn nhất 200m, tốc độ di
chuyển 2m/s, thời gian hoạt
động một lần 12giờ.
- Tác vụ: thăm dò và khai khoáng
tài nguyên biển, theo dõi và bảo
vệ môi trường, trinh sát và giám
sát vùng kinh tế biển đảo, bảo
vệ hải cảng và giàn khoan.
8

Các ứng dụng của AUV:


Quân sự: AUV có thể kết hợp với công nghệ sonar cho phép phát hiện
các vật thể không xác định để đảm bảo an toàn cho một khu vực biển, điều
này là đặc biệt quan trọng trong chiến lược chống chiến tranh trên biển.
Khai thác: Khả năng khai thác khoáng sản của AUV được thể hiện ở
khả năng dò tìm kim loại quặng dưới lòng đại dương, thay vì trước đây phải
dò tìm trên tàu với độ tin cậy thấp hơn. Không những thế, AUV có thể quét
những vùng có nhiều hải sản cho phép tàu bè đánh bắt với hiệu suất cao nhất.
Nghiên cứu: Khai phá các tầng đại dương, nghiên cứu các sự sống nằm
sâu dưới đáy biển, các mặt cắt địa chất, các mẫu nước, mẫu vật chất sẽ được
gửi lên bờ để phân tích và xử lí.
Môi trường: Sử dụng các công cụ tiến tiến như camera kỹ thuật số,
camera hồng ngoại, sóng siêu âm… để giám sát tác động của sự bào mòn, tắc
nghẽn, các vết nứt của các công trình biển. Bám theo các đường ống dẫn dầu,
dẫn khí để kiểm tra có hay không sự rò rỉ, xác định độ bền của ống, đảm bảo
xử lí sự cố nhanh nhất có thể. Nếu có sự cố như nứt, rò rỉ xảy ra, thì các AUV
được trang bị cánh tay robot sẽ thực hiện các chức năng cắt, hàn, nối… tránh
dầu, khí chảy loang ra biển gây ô nhiễm. Theo thống kê trong [10], loại AUV
và chức năng, nhiệm vụ có thể kể đến như Bảng 1.2.
Bảng 1. 2 Thống kê tàu tự hành AUV
Quốc gia Năm Tên thiết bị Ứng dụng
Kiểm tra tính ổn
Mỹ 2000 C-series AUVs định, khảo sát môi
trường
FENRIR Chuyên chở UUV
Khảo sát và bảo vệ
Sentry
bến cảng
Điều tra mỏ khoáng
2003 SWIMS
sản
Kiểm tra khả năng
thích ứng kết hợp
SeaFox
định vị, điều khiển,
dẫn đường
Khảo sát môi trường,
2004 Springer mẫu thí nghiệm
giảng dạy
9

Trinh sát, phòng thủ


2011 MUSCL
quân sự
Phát hiện mục tiêu
Anh 2000 Barracuda
trên biển
2008 Blackfish Giám sát hải cảng
Ứng dụng năng
Gầy C –Enduro lượng mặt trời cho
đây USV tàu tự hành để giám
sát môi trường biển
Mô phỏng lại khả
Canada 2000 HammerHead năng tránh các mối
đe dọa
2004 SESAMO Quan trắc môi trường
2005 Charlie Quan trắc môi trường
2007 ALANIS Quan trắc môi trường
Gần đây Kingfisher Phục vụ quân sự
Italy 2000 CARVELA Lập bản đồ
2004 DELFIM Giao tiếp với UUV
2008 U-Rangger Phục vụ quân sự
Quan trắc môi
2006 Swordfish
Bồ Đào Nha trường
Kiểm tra hệ thống
2008 Kaasboll định vị và điều
khiển
Kiểm tra nhiều mục
2008 Viknes
đích
Israel 2007 Silver Marlin Giám sát, trinh sát
Khảo sát đường
Đức 2005 Basil
ống ngoài khơi
Pháp 2007 Inspector Giám sát, trinh sát
Singapore 2008 Tianxiang One Khảo sát khí tượng
2010 Venus Nhiều ứng dụng
Thu thập dữ liệu
Trung Quốc 2010 USV-ZhengHe môi trường thủy
văn
Khảo sát môi
Nhật Bản 2004 UMV series
trường biển
Nguồn: Báo cáo phân tích xu hướng công nghệ: “Xu hướng nghiên cứu và ứng dụng robot ngầm
tự 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 2019.
1.1.2 Các ứng dụng của AUV tại Việt Nam
Cùng với sự phát triển của công nghệ, các thiết bị di chuyển dưới nước
tự động (Autonomous Underwater Vehicle - AUV) đang ngày càng trở nên
phổ biến. Do là phương tiện tự hành dưới nước không cần người lái nhằm
thực hiện nhiệm vụ khảo sát nghiên cứu hoặc quân sự với nhiều ưu điểm vượt
trội thay thế con người nên tại Việt Nam cũng đã có những nghiên cứu phát
10

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.

Hình 1.3 Hệ trục tọa độ ECEF


Hệ trục tọa độ tham chiếu tâm Trái Đất:
• Hệ trục tọa độ ECI (the Earth-centered Earth-fixed): {i} = (xi, yi,
zi) là một hệ trục tọa độ quán tính được dùng trong định hướng trên mặt đất,
trong đó áp dụng các định luật chuyển động của Newton. Bao gồm các hệ
12

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

Hình 1.4 Các vận tốc u, v, w, p, q, r trong hệ tọa độ Body-fixed.


- xb: trục dọc (từ đuôi tàu đến mũi tàu)
- yb: trục ngang (mạn tàu hướng từ trái qua phải).
- zb: trục vuông góc (hướng từ trên xuống đáy tàu).
Bảng 1. 3 Bảng quy ước các đại lượng
Vị trí và
Lực và Vận tốc dài
DOF Chuyển động góc
Moment và vận tốc góc
Euler
Chuyển động trong trục x
1 X u x
(surge)
Chuyển động trong trục y
2 Y v y
(sway)
Chuyển động trong trục z
3 Z w z
(heave)
4 Quay quanh trục x (roll, heel) K p 𝜙
Quay quanh trục y (pitch,
5 M q 𝜃
trim)
6 Quay quanh trục z (yaw) N r 𝜓

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

𝜏 = [𝑓 𝑇 , ɱ𝑇 ] , 𝑓 = [𝑋, 𝑌, 𝑍]𝑇 , ɱ = [𝐾, 𝑀, 𝑁]𝑇 ;


Trong đó:
𝜂: vector vị trí và hướng của AUV trong hệ trục tọa độ {n}.
𝑝: vị trí của hệ trục tọa độ {b} so với hệ trục tọa độ {n}.
Θ: góc xoay giữa hệ trục tọa độ {b} và hệ trục tọa độ {n}.
𝑉: 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}.
𝑓: lực tác động lên AUV trong hệ trục tọa độ {b}.
ɱ: moment tác động lên AUV trong hệ trục tọa độ {b}.
Sự chuyển đổi giữa hệ BODY và hệ NED:
Hệ trục tọa độ {b} được xác định hướng so với hệ trục tọa độ quy chiếu
{n} bằng 3 góc roll (𝜙 ), pitch (𝜃 ) và yaw (𝜓 ).
Nếu xoay hệ trục tọa độ {b} xung quanh trục z, y, x của hệ trục tọa độ
{n} ta có các ma trận chuyển đổi lần lượt như sau:
1 0 0 𝑐𝜃 0 −𝑠𝜃
𝑅𝑥,𝜙 = [0 𝑐𝜙 𝑠𝜙] , 𝑅𝑦,𝜃 = [ 0 1 0 ],
0 −𝑠𝜙 𝑐𝜙 𝑠𝜃 0 𝑐𝜃
(1.1)
𝑐𝜓 𝑠𝜓 0
𝑅𝑧,𝜓 = [−𝑠𝜓 𝑐𝜓 0]
0 0 1
Chúng ta kết hợp 3 phép xoay ở trên để có được ma trận chuyển đổi 𝑅𝑏𝑛 :

𝑅𝑏𝑛 = 𝑅𝑧,𝜓 𝑅𝑦,𝜃 𝑅𝑥,𝜙 (1.2)


𝑐𝜓𝑐𝜃 𝑐𝜓𝑠𝜃𝑠𝜙 − 𝑠𝜓𝑐𝜙 𝑐𝜓𝑠𝜃𝑐𝜙 + 𝑠𝜓𝑠𝜙
= [𝑠𝜓𝑐𝜃 𝑠𝜓𝑠𝜃𝑠𝜙 + 𝑐𝜓𝑐𝜙 𝑠𝜓𝑠𝜃𝑐𝜙 − 𝑐𝜓𝑠𝜙]
−𝑠𝜃 𝑐𝜃𝑠𝜙 𝑐𝜃𝑐𝜙
15

Hình 1.5 Các góc xoay Euler.


Ta được công thức:
𝑏
𝑝̇ = 𝑅𝑏𝑛 𝑣𝑏/𝑛 (1.3)

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)

1 𝑠𝜙𝑡𝜃 𝑐𝜙𝑡𝜃 (1.5)


𝑇𝑏𝑛 = [0 𝑐𝜙 −𝑠𝜙 ]
0 𝑠𝜙/𝑐𝜃 𝑐𝜙/𝑐𝜃
Cần lưu ý là ma trận 𝑇𝑏𝑛 không xác định tại góc pitch 𝜃 = ±900 .
Với một lượng góc xoay nhỏ 𝛿𝜙 , 𝛿𝜃 , 𝛿𝜓 ma trận 𝑇𝑏𝑛 được viết đơn
giản thành:
1 0 𝛿𝜃 (1.6)
𝑇𝑏𝑛 = [0 1 −𝛿𝜙]
0 𝛿𝜙 1
16

Độ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 𝑇𝑏𝑛 𝜔𝑏/𝑛

Động lực học:

Phương trình chuyển động của vật rắn:

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

𝐼𝑦 𝑞̇ + (𝐼𝑥 − 𝐼𝑧 )𝑟𝑝 − (𝑝̇ + 𝑞𝑟)𝐼𝑥𝑦 + (𝑝2 − 𝑟 2 )𝐼𝑧𝑥


+ (𝑝𝑞 − 𝑟̇ )𝐼𝑦𝑧
+𝑚[𝑧𝑔 (𝑢̇ − v𝑟 + 𝑤𝑞) − 𝑥𝑔 (𝑤̇ − 𝑢𝑞 + v𝑝)] = 𝑀
𝐼𝑧 𝑟̇ + (𝐼𝑦 − 𝐼𝑥 )𝑝𝑞 − (𝑞̇ + 𝑟𝑝)𝐼𝑦𝑧 + (𝑞 2 − 𝑝2 )𝐼𝑥𝑦
+ (𝑟𝑞 − 𝑝̇ )𝐼𝑧𝑥
+𝑚[𝑥𝑔 (v̇ − 𝑤𝑝 + 𝑢𝑟) − 𝑦𝑔 (𝑢̇ − v𝑟 + 𝑤𝑞)] = 𝑁
Với Ib là moment quán tính đối với gốc Ob , ta có:
𝐼𝑥 −𝐼𝑥𝑦 −𝐼𝑥𝑧 (1.11)
𝑇
𝐼𝑏 = [−𝐼𝑦𝑥 𝐼𝑦 −𝐼𝑦𝑧 ] , 𝐼𝑏 = 𝐼𝑏 > 0
−𝐼𝑧𝑥 −𝐼𝑧𝑦 𝐼𝑧
Với 𝐼𝑥 , 𝐼𝑦 , 𝐼𝑧 là momen quán tính đối với trục xb , yb, zb và 𝐼𝑥𝑦 = 𝐼𝑦𝑥 , 𝐼𝑥𝑧
= 𝐼𝑧𝑥 , 𝐼𝑦𝑧 = 𝐼𝑧𝑦 là momen quán tính ly tâm được định nghĩa như sau:

𝐼𝑥 = ∫ (𝑦 2 + 𝑧 2 )𝜌𝑚 𝑑𝑉 ; 𝐼𝑥𝑦 = ∫ 𝑥𝑦𝜌𝑚 𝑑𝑉 = ∫ 𝑦𝑥𝜌𝑚 𝑑𝑉


𝑉 𝑉 𝑉

= 𝐼𝑦𝑥 (1.12)

𝐼𝑦 = ∫ (𝑥 2 + 𝑧 2 )𝜌𝑚 𝑑𝑉 ; 𝐼𝑥𝑧 = ∫ 𝑥𝑧𝜌𝑚 𝑑𝑉 = ∫ 𝑧𝑥𝜌𝑚 𝑑𝑉


𝑉 𝑉 𝑉

= 𝐼𝑧𝑥

𝐼𝑧 = ∫ (𝑥 2 + 𝑦 2 )𝜌𝑚 𝑑𝑉 ; 𝐼𝑦𝑧 = ∫ 𝑦𝑧𝜌𝑚 𝑑𝑉 = ∫ 𝑧𝑦𝜌𝑚 𝑑𝑉


𝑉 𝑉 𝑉

= 𝐼𝑧𝑦
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 Tổng quan về điều khiển AUV hiện nay

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

1.3 Kết luận chương 1


Trong chương 1 tác giả giới thiệu tổng quan về robot lặn tự hành AUV,
các ứng dụng của AUV trên thế giới và tại Việt Nam trong thời điểm hiện
nay. Mô hình toán học tổng quát của AUV trong không gian 3 chiều, 6 bậc tự
do cũng được trình bày. Tác giả cũng tổng kết tình hình nghiên cứu về AUV
và điều khiển AUV tiêu biểu trong khoảng 30 năm trở lại đây, nhằm làm nền
tảng cho nghiên cứu, đánh giá ứng dụng của mình trong luận án.
27

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

2.1 Mạng nơ-ron nhân tạo

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);

aj - Đầu vào mạng (net-input);

zj - Đầu ra của nơ-ron;

g ( x) - Hàm truyền (hay hàm kích hoạt).

Hình 2.1 Đơn vị xử lý của mạng nơ-ron nhân tạo


Trong một mạng nơ-ron có ba kiểu đơn vị:
1) Các đơn vị đầu vào (Inputs units), nhận tín hiệu từ bên ngoài;
2) Các đơn vị đầu ra (Output units), gửi dữ liệu ra bên ngoài;
3) Các đơn vị lớp ẩn (Hidden units), tín hiệu vào (input) và ra (output)
của nó nằm trong mạng.
Mỗi đơn vị j có thể có một hoặc nhiều đầu vào: x0 , x1 , x2 ,...xn , nhưng
chỉ có một đầu ra z j . Mỗi đầu vào tới một đơn vị có thể là dữ liệu từ bên

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

được chọn là hằng số và trong bài toán xấp xỉ đa thức thì  j = 1 .

- 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ình 2.2 Hàm truyền tuyến tính

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.

Hình 2.3 Hàm truyền giới hạn cứng


Hàm truyền dạng Sigma (Sigmoid transfer function) (hình 2.4): Hàm
này thuận lợi khi sử dụng cho các mạng được huấn luyện bởi thuật toán lan
truyền ngược (Back-propagation), bởi vì nó dễ lấy đạo hàm, do đó có thể
giảm đáng kể tính toán trong quá trình huấn luyện. Hàm này hay được dùng
cho chương trình ứng dụng mà các đầu ra mong muốn rơi vào khoảng [0,1].
1
g ( x) = (2.5)
1 + e− x

Hình 2.4 Hàm truyền dạng sigma


Hàm truyền dạng tang-sigma (tan-sigmoid transfer function) (hình
2.5):
1 − e− x
g ( x) = (2.6)
1 + ex
Hàm này có thuộc tính tương tự hàm Sigma, có khả năng làm việc tốt
đối với các ứng dụng có đầu ra yêu cầu trong khoảng [-1, 1].
31

Hình 2.5 Hàm truyền dạng tang-sigma


Các hàm truyền của đơn vị ẩn (Hidden units) cần thiết cho việc biểu
diễn sự phi tuyến vào trong mạng. Tuy nhiên, đối với luật học lan truyền
ngược, hàm phải khả vi và sẽ có ích nếu như hàm được gắn trong một khoảng
nào đó. Do vậy, hàm Sigma là lựa chọn thông dụng nhất.

2.1.1.2 Các hình trạng của mạng


Hình trạng của mạng được định nghĩa bởi: số lớp, số đơn vị trên mỗi
lớp và sự liên kết giữa các lớp như thế nào. Các mạng về tổng thể được chia
thành hai loại dựa trên cách thức liên kết các đơn vị:

Hình 2.6 Mạng nơ-ron truyền thẳng nhiều lớp


- Mạng truyền thẳng (hình 2.6): Dòng dữ liệu từ đơn vị đầu vào đến
đơn vị đầu ra được truyền thẳng. Việc xử lý dữ liệu có thể mở rộng ra nhiều
lớp, nhưng không có các liên kết phản hồi. Nghĩa là, không thể có các liên kết
mở rộng từ các đơn vị đầu ra tới các đơn vị đầu vào trong cùng một lớp hay
các lớp trước đó.
- Mạng hồi quy (hình 2.7): Có chứa các liên kết ngược và khác với
mạng truyền thẳng, các thuộc tính động của mạng mới quan trọng. Trong một
32

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.

Hình 2.7 Mạng nơ-ron hồi quy


2.1.1.3 Các luật học của mạng nơ-ron nhân tạo
Luật học là một trong ba yếu tố quan trọng tạo nên một mạng nơ-ron
nhân tạo (mô hình của nơ-ron, cấu trúc và sự liên kết giữa các nơ-ron, phương
pháp học được áp dụng cho mạng nơ-ron). Có hai vấn đề cần học đối với mỗi
mạng nơ-ron nhân tạo đó là học tham số (parameter learning) và học cấu trúc
(structure learning).
Học tham số là việc thay đổi trọng số của các liên kết giữa các nơ-ron
trong một mạng, còn học cấu trúc là việc điều chỉnh cấu trúc của mạng bao
gồm thay đổi số lớp nơ-ron, số nơ-ron của mỗi lớp và cách liên kết giữa
chúng. Hai vấn đề này có thể được thực hiện đồng thời hoặc tách biệt.
Về mặt phương pháp học, có thể chia ra làm ba loại: học có giám sát
hay còn gọi là học có thầy (supervised learning), học tăng cường
(reinforcement learning) và học không có giám sát hay còn gọi là học không
có thầy (unsupperviced learning).
33

2.1.2 Điều khiển tự động dùng mạng nơ-ron nhân tạo


Có nhiều phương pháp khác nhau để biến mạng nơ-ron thành bộ điều
khiển thích nghi cho đối tượng điều khiển và các phương pháp đó có thể được
chia làm hai loại là điều khiển gián tiếp và điều khiển trực tiếp [3], [11], [12].
Phương pháp điều khiển gián tiếp, dùng một mạng nơ-ron để nhận dạng
và ước lượng các thông số của đối tượng điều khiển và các thông số của BĐK
được lựa chọn dựa vào giả thiết các thông số đã được nhận dạng chính là giá
trị chính xác của véc tơ thông số đối tượng điều khiển dựa trên nguyên lý
tương đương. Phương pháp này không yêu cầu phải biết trước các thông số
của đối tượng điều khiển. Tuy nhiên, nó yêu cầu, ngoài mạng nơ-ron đóng
vai trò bộ điều khiển, phải thêm vào một mạng nơ-ron khác dùng để mô phỏng
đối tượng điều khiển (hình 2.8).
Bộ mô phỏng nhận dạng đối tượng điều khiển cần một giai đoạn huấn
luyện trước với một tập dữ liệu đủ lớn để nhận dạng các mô hình động học
chính xác hay mô hình nghịch đảo của đối tượng điều khiển.

Hình 2.8 Sơ đồ phương pháp điều khiển gián tiếp [3]


34

Hình 2.9 Sơ đồ phương pháp điều khiển trực tiếp [3]


Phương pháp điều khiển trực tiếp (hình 2.9), đơn giản hơn phương pháp
gián tiếp, không yêu cầu quá trình huấn luyện trước để nhận dạng các thông
số của đối tượng điều khiển và cung cấp các luật thích nghi để cập nhật các
hàm trọng lượng của mạng nơ-ron.

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

2.3 Kết luận chương 2


Trong chương này, tác giả đã trình bày tổng quan về mạng nơ-ron nhân
tạo và kỹ thuật ứng dụng mạng nơ-ron nhân tạo vào điều khiển thích nghi các
đối tượng. Cấu trúc mạng nơ-ron nhiều lớp truyền thẳng và các hàm phổ biến
được trình bày. Tác giả cũng nghiên cứu tình hình ứng dụng mạng nơ-ron
nhân tạo trong điều khiển nói chung và điều khiển AUV nói riêng một cách
hệ thống trong khoảng thời gian 30 năm trở lại đây nhằm làm rõ nền tảng
công nghệ, kỹ thuật ứng dụng điều khiển thích nghi bằng mạng nơ-ron cho
các hệ thống động học, đặc biệt với đối tượng phức tạp là AUV.
39

CHƯƠNG 3

THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN NƠ-RON THÍCH


NGHI CHO ROBOT LẶN TỰ HÀNH

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.

3.1 Mô hình toán học AUV sử dụng trong nghiên cứu


3.1.1 Cấu tạo của mô hình NPS AUV II
Trong đề tài, tác giả sử dụng mô hình toán học phi tuyến robot lặn tự
hành AUV của Naval Postgraduate School (Monterrey) được mô tả trong
(Fossen, 2002) [31]. Các chi tiết về mô hình này như hình 3.1 và hình 3.2.
Mô hình toán học của nó được trình bày tại 3.1.2, các thông số động học và
động lực học tại bảng 4.1 và m-file (Matlab) được trình bày tại Phụ lục.

Hình 3.1 Mô hình NSP AUV II


40

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.

3.1.2 Mô hình toán học AUV


Phần này mô tả sơ bộ phương pháp diễn giải phương trình động học
tuyến tính 6 bậc tự do, các vấn đề chi tiết đã được trình bày trong [31]. Dạng
tổng quát và đầy đủ của hệ phương trình động học được thể hiện trong (3.1)
và (3.2).
ẋ = Ax + Bu (3.1)
41

ẋ 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:

Các lực và moment này gồm 3 thành phần:


- 𝑀𝐴 : quán tính chất lỏng.
- 𝐶𝐴 (𝑉𝑟 ) : Lực hướng tâm Coriolis khi xét tới quán tính chất lỏng.
- 𝐷(𝑉𝑟 ) : lực cản thủy động lực học (hydrodynamic damping).
Gọi 𝑇𝐴 là năng lượng thủy động lực học của dòng lưu chất, ta có được
phương trình:
1 (3.12)
𝑇𝐴 = 𝑉 𝑇 𝑀𝐴 𝑉, 𝑀̇𝐴 = 0
2
Trong đó, ma trận 𝑀𝐴 = 𝑀𝐴 𝑇 ≥ 0 là 1 ma trận quán tính 6x6:
𝑋𝑢̇ 𝑋𝜐̇ 𝑋𝑤̇ 𝑋𝑝̇ 𝑋𝑞̇ 𝑋𝑟̇
𝑌𝑢̇ 𝑌𝜐̇ 𝑌𝑤̇ 𝑌𝑝̇ 𝑌𝑞̇ 𝑌𝑟̇
𝑍𝑢̇ 𝑍𝜐̇ 𝑍𝑤̇ 𝑍𝑝̇ 𝑍𝑞̇ 𝑍𝑟̇
𝑀𝐴 = − (3.13)
𝐾𝑢̇ 𝐾𝜐̇ 𝐾𝑤̇ 𝐾𝑝̇ 𝐾𝑞̇ 𝐾𝑟̇
𝑀𝑢̇ 𝑀𝜐̇ 𝑀𝑤̇ 𝑀𝑝̇ 𝑀𝑞̇ 𝑀𝑟̇
[ 𝑁𝑢̇ 𝑁𝜐̇ 𝑁𝑤̇ 𝑁𝑝̇ 𝑁𝑞̇ 𝑁𝑟̇ ]

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)

𝑏1 = 𝐾𝑢̇ 𝑢 + 𝐾𝑣̇ v + 𝐾𝑤̇ 𝑤 + 𝐾𝑝̇ 𝑝 + 𝐾𝑞̇ 𝑞 + 𝐾𝑟̇ 𝑟


𝑏2 = 𝑀𝑢̇ 𝑢 + 𝑀𝑣̇ v + 𝑀𝑤̇ 𝑤 + 𝑀𝑝̇ 𝑝 + 𝑀𝑞̇ 𝑞 + 𝑀𝑟̇ 𝑟
𝑏3 = 𝑁𝑢̇ 𝑢 + 𝑁𝑣̇ v + 𝑁𝑤̇ 𝑤 + 𝑁𝑝̇ 𝑝 + 𝑁𝑞̇ 𝑞 + 𝑁𝑟̇ 𝑟

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 ]

Lực cản thủy động lực học:


Vì trong thực tế rất khó để có thể xác định toàn bộ các hệ số để xác
định các lực cản. Theo [28], xấp xỉ công thức như sau:
𝐷(𝑉𝑟 ) = −𝑑𝑖𝑎𝑔{𝑋𝑢 + 𝑋𝑢|𝑢| |𝑢| , 𝑌v + 𝑌v|v| |v| , 𝑍𝑤 + 𝑍𝑤|𝑤| |𝑤| ,
𝐾𝑝 + 𝐾𝑝|𝑝| |𝑝| , 𝑀𝑞 + 𝑀𝑞|𝑞| |𝑞| , 𝑁𝑟 + 𝑁𝑟|𝑟| |𝑟|} (3.20)
Với:
𝑋𝑢 , 𝑌v , 𝑍𝑤 , 𝐾𝑝 , 𝑀𝑞 , 𝑁𝑟 : là thành phần tuyến tính của hệ số cản thủy động.
𝑋𝑢|𝑢| , 𝑌v|v|, , 𝑍𝑤|𝑤| , 𝐾𝑝|𝑝| , 𝑀𝑞|𝑞| , 𝑁𝑟|𝑟| : thành phần bậc hai của hệ số cản
thủy động.
Lực phục hồi:

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𝜃 ]

Trọng lực thêm vào:

Đố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

𝐼𝑦𝑦 − 𝑀𝑞̇ 0 0 𝑞̇ −𝑀𝑞 0 −𝑀𝜃 𝑞 𝑀𝛿𝑠


[ 0 1 0] [ 𝑧̇ ] + [ 0 0 𝑈 ] [𝑧 ] = [ 0 ] (3.28)
0 0 1 𝜃̇ −1 0 0 𝜃 0
trong đó: 𝐼𝑦𝑦 là moment quán tính quanh trục Y; 𝑀𝜃 , 𝑀𝑞 , 𝑀𝑞̇ là các hệ số
thủy động lực học được mô tả trong bảng 4.1.

3.2 Mạng nơ-ron thích nghi trong điều khiển


Trong [3] tác giả đề xuất phương pháp điều khiển thích nghi với mạng
nơ-ron bằng lý thuyết thích nghi tương tác. Theo nghiên cứu này, các nơ-ron
trong mạng được xem như các hệ thống con gọi là các thiết bị trong một hệ
thống phức tạp. Phương pháp này tương tự như thuật toán lan truyền ngược
nhưng không cần đến mạng lan truyền ngược để truyền ngược tín hiệu sai số.
Mạng nơ-ron điều khiển thích nghi của một số hệ thống dùng phương pháp
này được mô phỏng trong [3] và ứng dụng trong [8], [9] để minh họa tính khả
thi và hiệu quả của phương pháp. Phần 3.2.1 sẽ mô tả tóm tắt thuật toán thích
nghi tương tác áp dụng cho mạng nơ-ron để tạo thành bộ điều khiển nơ-ron
thích nghi tương tác (Adaptive Neural Network by Adaptive Interaction -
ANNAI).

3.2.1 Bộ điều khiển nơ-ron thích nghi tương tác


Tham khảo trong tài liệu [3] và sử dụng các ký hiệu dưới đây với i, j  N
Oi tín hiệu ra của nơ-ron thứ i;
Ii tín hiệu vào của nơ-ron thứ i;
i giá trị ngưỡng của nơ-ron thứ i;
wij trọng số của liên kết từ nơ-ron thứ i đến nơ-ron thứ j;
g (x) hàm kích hoạt của một nơ-ron;
Oid giá trị đầu ra mong muốn của nơ-ron thứ i (đối với nơ-ron lớp
ra);
 bước học,
Mạng nơ-ron sẽ được mô tả như sau:
Ii = w O
jN
ij j + i , (3.29)
48

 
 jN 
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 iN

trong đó ei = Oid − Oi nếu i là nơ-ron lớp ra.


Thuật toán cập nhật trọng số cho mạng nơ-ron trong [3] được viết như
sau
Oj
w ij = g ( I i )
Oi
 wki w ki − g ( I i )O j ei , (3.32)
kN

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

Hình 3.3 Cấu trúc bộ điều khiển NNC


3.2.2 Mô hình tổng quát của bộ điều khiển NNC huấn luyện trực tuyến
Cấu trúc của bộ điều khiển NNC giới thiệu trong chương này được thể
hiện trên hình 3.4. Sử dụng hàm mục tiêu dưới đây như trong tài liệu [3], [8],
[9]:
1 1
Ek = ( X kd − X k ) T P( X kd − X k ) + u kT u k , (3.33)
2 2

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.

Thuật toán Ek Tác động bên


Brandt-Lin ngoài

+
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

Tính tín hiệu ra của nơ- Vòng lặp


ron lớp ẩn và lớp ra mới

Hiệu chỉnh trọng số


(Thuật toán BP)

ite = ite + 1

k=k+1
ĐÚNG
Quá trình lặp cập ite  n
nhật trọng số
SAI

Tính giá trị hàm mục Tính trọng số và


tiêu Ek+1 tín hiệu điều khiển
cho chu trình thứ k

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.

3.3 Thiết kế hệ thống điều khiển nơ-ron cho AUV


3.3.1 Điều khiển riêng biệt các chuyển động của AUV
Harley và Marco trong nghiên cứu [26] đã giả thiết rằng một mô hình
động học đầy đủ các bậc tự do có thể được chia ra 3 hệ thống con độc lập, gọi
là điều khiển tốc độ theo chiều dọc, điều khiển hướng và điều khiển độ sâu
[25-29]. Các phương trình họ đưa ra đều thu được từ phương trình chính (3.2),
trong đó các thành phần không liên quan của các hệ thống con khác đều được
bỏ qua.
Điều khiển tốc độ theo chiều dọc: Hệ thống con này chủ yếu điều
khiển tốc độ theo chiều dọc của AUV là giá trị u, có phương trình vi phân
như sau [31]:
(m − Xu̇ )u̇ = Xu|u| u|u| + Xthruster (3.34)
Trong đó, Xthruster là lực tạo bởi chân vịt của AUV. Lực này có thể
tính được từ giá trị vận tốc điều khiển uc:
Xthruster = -Xu|u|uC|uC| (3.35)
Điều khiển hướng: Là hệ thống con điều khiển hướng làm nhiệm vụ
điều khiển chuyển động xoay trên mặt phẳng ngang của AUV với các giá trị
v, r, ψ. Phương trình vi phân của hệ thống con này được thể hiện như (3.36)
[30], [31]:
51

m − Yv̇ mxG − Yṙ 0 v̇ −Yv muref − Yr 0 u Yuuδr u2ref


[mxG − Nv̇ Izz − Nṙ 0] [ ṙ ] + [−Nv mxG − Nr 0] [ v ] = [Nuuδr u2ref ] δr (3.36)
0 0 1 ψ̇ 0 −1 0 ψ 0
Trong đó, uref là vận tốc mong muốn, δr là góc bẻ lái gắn trên thân
AUV.
Điều khiển độ sâu: Là hệ thống con điều khiển chuyển động của AUV
theo chiều đứng với các giá trị w, , và z. Phương trình vi phân hệ thống con
này được mô tả như sau (2.6):
𝑚 − 𝑍𝑤̇ 𝑚𝑥𝐺 − 𝑍𝑞̇ 0 0 𝑤̇ −𝑍𝑤 𝑚𝑢𝑟𝑒𝑓 − 𝑍𝑞 0 0 𝑤
𝑚𝑥 − 𝑀𝑤̇ 𝐼𝑧𝑧 − 𝑀𝑞̇ 0 0 𝑞̇ −𝑀𝑤 𝑚𝑥𝐺 𝑢𝑟𝑒𝑓 − 𝑀𝑞 𝑧𝐺 𝑊 0 𝑞
[ 𝐺 ][ ] + [ ]=
0 0 1 0 𝜃̇ 0 −1 0 0 𝜃
0 0 0 1 𝑧̇ [ −1 0 𝑢𝑟𝑒𝑓 0] 𝑧
𝑍𝑢𝑢𝛿𝑠 𝑢𝑟𝑒𝑓 2
𝑀𝑢𝑢𝛿𝑠 𝑢𝑟𝑒𝑓 2  (3.37)
𝑠
0
[ 0 ]
Trong đó, δs là góc của cánh chỉnh độ sâu gắn ở phần đuôi AUV.
3.3.2 Thiết kế bộ điều khiển nơ-ron cho các hệ thống con
Trong phần này tác giả thiết kế 3 hệ thống điều khiển nơ-ron độc lập
cho 3 hệ thống con nói trên. Các biến vào và ra của mỗi BĐK nơ-ron phụ
thuộc vào phương trình vi phân mô tả ở (3.34), (3.36) và (3.37).
a. Hệ thống điều khiển hướng

Hình 3.6 Sơ đồ hệ thống điều khiển hướng AUV


Dựa theo tài liệu [3], ta có thể sử dụng hàm mục tiêu cho bộ điều khiển
dưới dạng:
52

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 p1 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

1 j = w1ij  w 1ij . (3.43)

b. Hệ thống điều khiển độ sâu


Tương tự [9] ta chọn hàm mục tiêu cho BĐK độ sâu như sau:
1
E2 k = [  2 ( z kd − z k ) 2 + 2 Sk2 +  2 wk2 +  2 k2 ] , (3.44)
2

trong đó  2 , 2 ,  2 , và  2 là hằng số; z kd , zk là độ sâu mong muốn và độ sâu


53

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).

Hình 3.7 Sơ đồ hệ thống điều khiển độ sâu AUV


Luật cập nhật trọng số trong trường hợp này, áp dụng phương pháp
biến đổi trong [3], được tính như sau:
w 2 jp = O2 p [2 j sig (− I 2 j ) +  2  0] = O2 p2 j sig (− I 2 j ) , (3.45)
w 2ij =  2  sig ( I 2 j )  ( 2e2 k + 2 Sk +  2 wk +  2 k ) .

=  2  O2 j  (  2e2 k + 2 Sk +  2 wk +  2 k ). (3.46)

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 độ

Hình 3.8 Sơ đồ hệ thống điều khiển tốc độ AUV


54

Để 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

trong đó  3 , 3 ,  3 , và  3 là các hằng số; u kd , u k là giá trị mong muốn và


giá trị thực tế của tốc độ phương tiện; 𝑛𝑘 là tốc độ vòng quay của máy; u k là
thành phần vi phân của tốc độ phương tiện; 𝑍𝑘 là tích phân của sai số tốc độ.
Luật cập nhật trọng số trong trường hợp này, áp dụng phương pháp
biến đổi trong [3], được tính như sau:
𝑤̇3𝑗𝑝 = 𝑂3𝑝 [𝜑3𝑗 𝑠𝑖𝑔(−𝐼3𝑗 ) + 𝛾3 ⋅ 0] = 𝑂3𝑝 𝜑3𝑗 𝑠𝑖𝑔(−𝐼3𝑗 ), (3.48)
𝑤̇3𝑖𝑗 = 𝛾3 ⋅ 𝑠𝑖𝑔(𝐼3𝑗 ) ⋅ (𝜌3 𝑒3𝑘 + 𝜆3 𝑛𝑘 + 𝜎3 𝑢̇ 𝑘 + 𝜅3 𝑍𝑘
= 𝛾3 ⋅ 𝑂3𝑗 ⋅ (𝜌3 𝑒3𝑘 + 𝜆3 𝑛𝑘 + 𝜎3 𝑢̇ 𝑘 + 𝜅3 𝑍𝑘 ). (3.49)
Chỉ số 3 biểu thị BĐK nơ-ron thứ ba dùng cho điều khiển tốc độ, trong
đó e3k = ukd − uk , và

Z k (t ) =  e3k (t )dt (3.50)

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)

Hình 3.9 Sơ đồ hệ thống dẫn đường và điều khiển AUV


55

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

s(t) : là khoảng cách along-track.


e(t): là sai số bám quỹ đạo.
Theo tài liệu [31] thì giá trị ma trận R p ( k )T được tính như sau:

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 →

dẫn đường LOS sử dụng nguyên lý Lookahead-based Steering để tính toán


hướng đi mong muốn  d và từ đó tính ra góc mũi tàu mong muốn  d cung
cấp cho hệ thống máy lái tự động. Hệ thống máy lái tự động sẽ sử dụng  d
như là tín hiệu điều khiển đầu vào nhằm điều khiển con tàu bám theo quỹ đạo
mong muốn và làm cho sai số bám quỹ đạo của con tàu giảm dần về 0.

Hình 3.10 Luật điều hướng LOS


57

Phương pháp điều khiển tàu bằng nguyên lý Lookahead-based Steering


sẽ làm cho sai số bám quỹ đạo e(t) tiến về 0 bằng cách hướng vector vận tốc
của AUV đến điểm chuyển hướng kế tiếp trên quỹ đạo mà con tàu cần phải
đi đến hay cũng chính là điểm chuyển hướng pnk +1 trên đoạn thẳng quỹ đạo mà
con tàu đang bám theo như hình 3.10.
Theo tài liệu [31] thì hướng đi mong muốn  d theo nguyên lý
Lookahead-based Steering sẽ được tách thành hai thành phần như sau:
d =  p + r ( e) (3.57)

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

nên ta có thể giả thiết như   0 .


Khi đó (3.60) được viết lại thành:
 d =  p + r ( e) (3.61)

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.4.2 Điều khiển AUV bám theo địa hình đáy


Trong hoạt động này, AUV có thể chuyển động thẳng hoặc chuyển
hướng nhưng luôn giữ một độ sâu nhất định so với đáy ở vị trí hiện tại. Giá
trị độ sâu mong muốn mà hệ thống điều khiển độ sâu nhận được phụ thuộc
vào độ sâu đo được từ máy đo sâu hồi âm. Vị trí của AUV theo chiều thẳng
đứng thay đổi theo địa hình đáy.
Thực chất trong nghiên cứu này, bộ điều khiển sẽ giúp AUV bám theo
giá trị độ sâu mong muốn khi độ sâu thay đổi. Hàm mục tiêu của trường hợp
này giống như tình huống điều khiển độ sâu đơn thuần nhưng điểm đặt thay
đổi liên tục trong khi bộ điều khiển hướng và tốc độ giữ ổn định hướng đi và
tốc độ mong muốn.

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)

𝑉𝑐 = √𝑢𝑐2 + 𝑣𝑐2 + 𝑤𝑐2


59

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).

3.5.2 Thích nghi với tác động của dòng chảy

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.

3.6 Kết luận chương 3


Trong Chương 3, tác giả đã trình bày chi tiết mô hình toán học NPS
AUV II được sử dụng trong các tình huống mô phỏng. Chương này cũng trình
bày nguyên lý BĐK nơ-ron ứng dụng cho AUV mà tác giả đề xuất theo
phương án điều khiển riêng biệt (decoupled control) cho các chuyển động của
AUV. Các nguyên lý lý thuyết thiết kế BĐK nơ-ron cho hướng đi, độ sâu, tốc
độ và toàn bộ chuyển động của AUV được trình bày. Tác giả cũng đề xuất hệ
thống điều khiển AUV theo quỹ đạo và bám theo đáy biển. Các phương trình
toán học bộ điều khiển, hệ thống dẫn đường trong chương này là cơ sở lập
trình mô phỏng và lập trình điều khiển của toàn bộ luận án.

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Ô PHỎNG ĐIỀU KHIỂN AUV BẰNG BỘ ĐIỀU KHIỂN


NƠ-RON THÍCH NGHI

4.1 Giới thiệu phương pháp và điều kiện mô phỏng


4.1.1 Phương pháp mô phỏng
Theo nguyên lý và kết quả trong [3], [8], [9] cấu trúc BĐK nơ-ron dùng
cho mô phỏng điều khiển là mạng 3 lớp truyền thẳng. Số lượng nơ-ron lớp
vào, lớp ẩn và lớp ra lần lượt là 4, 6 và 1. Phương pháp huấn luyện mạng trực
tuyến được áp dụng với số lần huấn luyện trong một chu trình là 50. Thuật
toán điều khiển và mạng nơ-ron được viết bằng Matlab M-file.
Dữ liệu mô phỏng và kết quả được tạo và lưu dạng file *.dat để xử lý,
phân tích.

4.1.2 Điều kiện mô phỏng


Bảng 4. 1 Các hệ số của mô hình động học NPS AUV II (Matlab code)

Xpp = 7.0e-3; Xqq = -1.5e-2; Xrr = 4.0e-3; Xpr = 7.5e-4;


Xudot = -7.6e-3; Xwq = -2.0e-1; Xvp = -3.0e-3; Xvr = 2.0e-2;
Xqds = 2.5e-2; Xqdb2 = -1.3e-3; Xrdr = -1.0e-3; Xvv = 5.3e-2;
Xww = 1.7e-1; Xvdr = 1.7e-3; Xwds = 4.6e-2; Xwdb2 = 0.5e-2;
Xdsds = -1.0e-2; Xdbdb2 = -4.0e-3; Xdrdr = -1.0e-2; Xqdsn = 2.0e-3;
Xwdsn = 3.5e-3; Xdsdsn = -1.6e-3;

Ypdot = 1.2e-4; Yrdot = 1.2e-3; Ypq = 4.0e-3; Yqr = -6.5e-3;


Yvdot = -5.5e-2; Yp = 3.0e-3; Yr = 3.0e-2; Yvq = 2.4e-2;
Ywp = 2.3e-1; Ywr = -1.9e-2; Y v = -1.0e-1; Yvw = 6.8e-2;
Ydr = 2.7e-2;

Zqdot = -6.8e-3; Zpp = 1.3e-4; Zpr = 6.7e-3; Zrr = -7.4e-3;


Zwdot = -2.4e-1; Zq = -1.4e-1; Zvp = -4.8e-2; Zvr = 4.5e-2;
Zw = -3.0e-1; Zvv = -6.8e-2; Zds = -7.3e-2; Zdb2 = -1.3e-2;
Zqn = -2.9e-3; Zwn = -5.1e-3; Zdsn = -1.0e-2;

Kpdot = -1.0e-3; Krdot = -3.4e-5; Kpq = -6.9e-5; Kqr = 1.7e-2;


Kvdot = 1.2e-4; Kp = -1.1e-2; Kr = -8.4e-4; Kvq = -5.1e-3;
Kwp = -1.3e-4; Kwr = 1.4e-2; Kv = 3.1e-3; Kvw = -1.9e-1;
Kdb2 = 0; Kpn = -5.7e-4; Kprop = 0;

Mqdot = -1.7e-2; Mpp = 5.3e-5; Mpr = 5.0e-3; Mrr = 2.9e-3;


Mwdot = -6.8e-3; Muq = -6.8e-2; Mvp = 1.2e-3; Mvr = 1.7e-2;
Muw = 1.0e-1; Mvv = -2.6e-2; Mds = -4.1e-2; Mdb2 = 3.5e-3;
Mqn = -1.6e-3; Mwn = -2.9e-3; Mdsn = -5.2e-3;

Npdot = -3.4e-5; Nrdot = -3.4e-3; Npq = -2.1e-2; Nqr = 2.7e-3;


Nvdot = 1.2e-3; Np = -8.4e-4; Nr = -1.6e-2; Nvq = -1.0e-2;
Nwp = -1.7e-2; Nwr = 7.4e-3; Nv = -7.4e-3; Nvw = -2.7e-2;
Ndr = -1.3e-2; Nprop = 0;
63

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.

4.2 Mô phỏng điều khiển các chuyển động của AUV


Các tình huống mô phỏng được thiết lập trên Matlab M-file gồm
chương trình chính và nhiều mô-đun có chức năng khác nhau. Tình huống
trong phần 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.

Hình 4.1 Sơ đồ mô phỏng điều khiển hướng AUV


Phần này chỉ mới sử dụng bánh lái hướng và cánh điều khiển độ sâu
phía sau của NPS AUV II. Các thí nghiệm mô phỏng được thực hiện trong
phần này bao gồm:
- Thí nghiệm 1: Mô phỏng điều khiển riêng hướng đi AUV và so sánh
với BĐK PID đơn giản.
- Thí nghiệm 2: Mô phỏng điều khiển độ sâu AUV.
64

- Thí nghiệm 3: Mô phỏng điều khiển hướng đi và độ sâu AUV khí


dòng chảy tác động.
- Thí nghiệm 4: Mô phỏng điều khiển tổng hợp hướng đi, độ sâu và
tốc độ AUV.
- Thí nghiệm 5: Mô phỏng điều khiển tổng hợp hướng đi, độ sâu và
tốc độ AUV khi có dòng chảy tác động.

4.2.1 Điều khiển hướng


- Thí nghiệm 1: Mô phỏng điều khiển riêng hướng đi AUV và so sánh
với BĐK PID đơn giản.

Hình 4.2 Đáp ứng hướng đi của BĐK NNC

Hình 4.3 Đáp ứng hướng đi của BĐK NNC và PID


65

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.

4.2.2 Điều khiển hướng, độ sâu và góc chúi


- Thí nghiệm 2: Mô phỏng điều khiển độ sâu AUV.

Hình 4.4 Sơ đồ mô phỏng điều khiển độ sâu AUV


66

Hình 4.5 Đáp ứng hướng đi của AUV trong TN2

Hình 4.6 Đáp ứng độ sâu của AUV trong TN2


67

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.

4.2.3 Điều khiển hướng đi, độ sâu và tốc độ


- Thí nghiệm 4: Mô phỏng điều khiển tổng hợp hướng đi, độ sâu và
tốc độ AUV.

Hình 4.11 Sơ đồ mô phỏng điều khiển tốc độ AUV


Trong thí nghiệm mô phỏng này 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. BĐK thực
hiện điều khiển tốt hướng đi, độ sâu và tốc độ AUV đến điểm đặt mong muốn.
Trường hợp này AUV hoạt động trong điều khiện không có tác động
của dòng chảy.
70

Hình 4.12 Đáp ứng hướng đi của AUV trong TN4

Hình 4.13 Đáp ứng độ sâu của AUV trong TN4


71

Hình 4.14 Đáp ứng tốc độ của AUV trong TN4

Hình 4.15 Vết chuyển động của AUV


4.2.4 Điều khiển tổng hợp các chuyển động khi có dòng chảy
- Thí nghiệm 5: Mô phỏng điều khiển tổng hợp hướng đi, độ sâu và
tốc độ AUV khi có dòng chảy tác động.
72

Hình 4.16 Đáp ứng hướng đi của AUV khi có dòng chảy (TN5)

Hình 4.17 Đáp ứng tốc độ của AUV trong TN5


73

Hình 4.18 Đáp ứng độ sâu của AUV trong 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

Hình 4.20 Mô phỏng hệ thống điều khiển và dẫn đường AUV


Trong phần này tác giả mô phỏng những tình huống sau đây:
- Thí nghiệm 6: Điều khiển AUV chuyển động theo quỹ đạo hình
vuông, độ sâu không đổi, không có dòng chảy tác động.
- 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.
- 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.
- 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.
- 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.
- 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.

4.3.1 Điều khiển AUV theo quỹ đạo đặt trước


- Thí nghiệm 6: Điều khiển AUV chuyển động theo quỹ đạo hình
vuông, độ sâu không đổi, không có dòng chảy tác động.
Đồ thị phía trên của hình 4.21 là hướng đi thực tế của AUV (nét liền,
xanh) và hướng đi mong muốn (nét đứt, đỏ). Hướng đi mong muốn được thuật
toán dẫn đường tính toán tự động. BĐK NNC làm cho hướng đi thực tế bám
77

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.21 Đáp ứng hướng đi của AUV trong TN6

Hình 4.22 Đáp ứng độ sâu trong TN6


78

Hình 4.23 Đáp ứng tốc độ trong TN6

Hình 4.24 Vết chuyển động của AUV trong TN6


Hình 4.21 và 4.22 cho thấy tác động qua lại phức tạp của hướng đi và
độ sâu khi AUV chuyển hướng. Độ sâu AUV dao động mỗi khi nó chuyển
sang hướng đi mới tại góc vuông của quỹ đạo.
79

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.26 Đáp ứng hướng đi của AUV trong TN7


80

Hình 4.27 Đáp ứng độ sâu của AUV trong TN7

Hình 4.28 Đáp ứng tốc độ của AUV trong TN7


81

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.31 Đáp ứng hướng đi của AUV trong TN8

Hình 4.32 Đáp ứng độ sâu của AUV trong TN8


83

Hình 4.33 Đáp ứng tốc độ của AUV trong TN8

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.36 Đáp ứng hướng đi của AUV trong TN9


85

Hình 4.37 Đáp ứng tốc độ của AUV trong TN9

Hình 4.38 Đáp ứng độ sâu của AUV trong TN9


86

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.41 Đáp ứng hướng đi của AUV trong TN10

Hình 4.42 Đáp ứng độ sâu của AUV trong TN10


88

Hình 4.43 Đáp ứng tốc độ của AUV trong TN10

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.47 Đáp ứng hướng đi của AUV trong TN11

Hình 4.48 Đáp ứng độ sâu của AUV trong TN11


91

Hình 4.49 Đáp ứng tốc độ của AUV trong TN11

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).

4.3.2 Điều khiển AUV bám theo địa hình đáy


- Thí nghiệm 12: Mô phỏng điều khiển AUV bám theo địa hình đáy.

Hình 4.53 Đáp ứng hướng của AUV trong TN12


94

Hình 4.54 Đáp ứng độ sâu của AUV trong TN12

Hình 4.55 Đáp ứng tốc độ AUV trong TN12


95

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.57 Đáp ứng hướng đi của AUV trong TN13


96

Hình 4.58 Đáp ứng tốc độ của AUV trong TN13

Hình 4.59 Đáp ứng độ sâu của AUV trong TN13


97

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.63 Đáp ứng hướng đi của AUV trong TN14

Hình 4.64 Đáp ứng tốc độ của AUV trong TN14


99

Hình 4.65 Đáp ứng độ sâu của AUV trong TN14

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.69 Đáp ứng hướng đi của AUV trong TN15


101

Hình 4.70 Đáp ứng tốc độ của AUV trong TN15

Hình 4.71 Đáp ứng độ sâu của AUV trong TN15


102

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.

4.5 Kết luận chương 4


Ở 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.

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

1 Các kết quả đạt được của đề tài


Luận án đã trình bày các kết quả nghiên cứu của tác giả qua 4 chương,
trong đó 3 chương tổng qua và cơ sở lý thuyết, 1 chương thí nghiệm mô
phỏng. Đề tài luận án đã đạt được những kết quả sau:
- Hệ thống hóa được tình hình nghiên cứu về điều khiển AUV tại Việt
Nam và trên thế giới, đặc biệt là trong giai đoạn 30 năm trở lại đây, về
tình hình phát triển và công nghệ áp dụng.
- Hệ thống hóa tình hình nghiên cứu BĐK sử dụng mạng nơ-ron nhân
tạo cho AUV gần đây và trong giai đoạn hiện nay, về bối cảnh nghiên
cứu, xu hướng phát triển và công nghệ áp dụng mạng nơ-ron thích nghi
trong điều khiển.
- Đề xuất áp dụng BĐK NNC cho điều khiển hướng đi, độ sâu và tốc độ
AUV bằng mạng nơ-ron thích nghi, sử dụng phương pháp huấn luyện
trực tuyến, nâng cao chất lượng của BĐK NNC.
- Đề xuất hệ thống dẫn đường cho AUV sử dụng BĐK NNC phù hợp
cho các tình huống dẫn đường trog thực tiễn.
- Mô phỏng kiếm chứng các BĐK đã đề xuất trên máy tính.
Điểm mới của các kết quả nghiên cứu mà đề tài đạt được:
- Đề xuất BĐK NNC 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.
- Đề xuất hệ thống điều khiển dẫn đường cho AUV sử dụng BĐK NNC,
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
2 Những ưu điểm và hạn chế của đề tài
Ưu điểm:
- Đề tài tận dụng và kế thừa thuật toán nơ-ron thích nghi tương tác và áp
dụng cho đối tượng điều khiển là AUV, giải quyết được bài toán điều
105

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

DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC


LIÊN QUAN ĐẾN LUẬN ÁN TIẾN SĨ
1. Đăng trên tạp chí
[1] Chau Giang Nguyen, Viet Anh Pham, Duy Anh Nguyen, Heading and Depth
Control of Autonomous Underwater Vehicles via Adaptive Neural Network
Controller, AETA 2017-Recent Advances in Electrical Engineering and
Related Sciences, 776, 2017, ISSN 1876-1100, ISSN 1876-1119 (electronic).
[2] Dinh Due Vo, Viet Anh Pham, Phung Hung Nguyen, Duy Anh Nguyen,
Designing a PID controller for ship autopilot system, AETA 2018-Recent
Advances in Electrical Engineering and Related Sciences, 618, 2018, ISSN
1876-1100. ISSN 1876-1119 (electronic).
[3] Long Le Ngoc Bao, Pham Viet Anh, Duy Anh Nguyen, Designing a controller
for Autonomonus Underwater Vehicles Using Decoupled Model and Fuzzy
Logic, AETA 2019 - Recent Advances in Electrical Engineering and Related
Sciences, vol 685, 42, 2019, ISSN 1876-1100, ISSN 1876-1119 (electronic).
[4] Phạm Việt Anh, Nguyễn Phùng Hưng, Lê Văn Ty, Điều khiển AUV di chuyển
bám theo địa hình đáy dung mạng nơ-ron nhân tạo, Tạp chí Giao thông Vận
tải, tháng 05/2021, ISSN 2615-9751, trang 91-97.
2. Đăng trên kỷ yếu hội nghị, hội thảo
[5] Chau Giang Nguyen, Viet Anh Pham, Duy Anh Nguyen, The Hybrid Neural
Adaptive Controller for Heading and Depth Control of Autonomous
Underwater Vehicles, 21st International Conference on Mechatronics
Technology October 20 – 23, 2017 in Ho Chi Minh City, Vietnam.
[6] Dinh Due Vo, Viet Anh Pham, Duy Anh Nguyen, Design an Adaptive
Autopilot for an Unmanned Surface Vessel, Proceeding 2018 4th International
Conference on Green Technology and Sustainable Development, GTSD 2018,
2018.
[7] Viet Anh Pham, Phung Hung Nguyen, Van Ty Le, Track and Depth Control
of Autonomous Underwater Vehicle using Adaptive Neural Networks,
submitted to the International Conference of Maritime Science & Technology
NAŠE MORE 2021, Dubrovnik (Croatia).
107

TÀI LIỆU THAM KHẢO


Tiếng Việt
[1] Nguyễn Như Hiền và Lại Khắc Lãi (2007), Hệ mờ và nơ ron trong kỹ
thuật điều khiển, Nhà xuất bản Khoa học tự nhiên và công nghệ Hà
Nội.
[2] Nguyễn Hoàng Dũng (2011), Điều khiển hệ phi tuyến dựa trên giải
thuật feedforward – feedback, Tạp chí Khoa học 2011: 19a 17-26,
Trường Đại học Cần Thơ.
[3] Nguyễn Phùng Hưng (2013), Mạng nơ-ron nhân tạo- ứng dụng trong
điều khiển phương tiện thủy, Nhà xuất bản Khoa học và kỹ thuật.
[4] Phạm Hữu Đức Dục (2008), Mô hình điều khiển dự báo và ứng dụng
điều khiển thích nghi hướng tàu thủy, Tạp chí Khoa học và công nghệ,
số 1 (45), tập 1.
[5] Nguyễn Doãn Phước (2007), Lý thuyết điều khiển nâng cao, Nhà xuất
bản khoa học và kỹ thuật.
[6] Nguyễn Đình Thúc (2008), Trí tuệ nhân tạo – lập trình tiến hóa, Nhà
xuất bản Giáo dục.
[7] Nguyễn Đông (2016), Phân tích thuỷ động lực học và thiết kế hệ thống
điều khiển theo công nghệ hướng đối tượng cho phương tiện tự hành
dưới nước, Luận án Tiến sĩ kỹ thuật, Chuyên ngành Cơ chất lỏng, MS
62440108, Trường ĐH Bách khoa Hà Nội.
[8] Võ Hồng Hải, Nguyễn Phùng Hưng (2009). Điều khiển hướng đi
phương tiện ngầm tự hành bằng mạng nơron nhân tạo thích nghi. Tạp
chí Giao thông Vận tải 08/2009, tr.39-41.
[9] Nguyễn Phùng Hưng, Võ Hồng Hải (2009). Điều khiển hướng đi và độ
sâu phương tiện ngầm tự hành bằng mạng nơron nhân tạo thích nghi.
Tạp chí KHCN Hàng hải, số 18, 06/2009, tr.32-36.
[10] Tôn Thiện Phương, Trần Ngọc Huy (2019). Báo cáo phân tích xu
hướng công nghệ: “Xu hướng nghiên cứu và ứng dụng robot ngầm tự
108

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

[20] Y. Nakamura, S. Savant, Nonlinear tracking control of autonomous


underwater vehicles, in Proceeding of the 1992 IEEE Iternational
Conference on Robotics and Automation, Nice, France, May 1992, A4-
A9.
[21] Lawrence C. Langebrake, AUV sensors for marine research,
University of South Florida, 140 Seventh Avenue South, St Petersburg,
FL 33701-5016, USA.
[22] Bjerrum, A. (1997). Autonomous Unrderwater Vehicles for offshore
surveys. Technologies for Remote Subsea Operations-Forum 1997,
Aberdeen.
[23] Chance, TS. Et al. (2000). The Autonomous Underwater Vehicles: A
Cost-effective Alternative to Deep-towed Technology. Integrated
Coastal Zone Management, ICG Publishing Ltd.
[24] M. Krstic, I. Kanellakopoulos, and P. Kokotovic, Nonlinear and
Adaptive Control Design. New York: Wiley, 1995.
[25] N.E. Leonard, “Control synthesis and adaptation for an underactualed
autonomous underwater vehicles”, IEEE Journal of Ocean
Engineering, vol.20, no.2, pp.211-220, 1995.
[26] Thor I. Fossen (1994), Guidance and Control of Ocean Vehicles, John
Wiley and Sons, Ltd.
[27] Prestero, T.,Verification of a Six-Degree of Freedom Simulation Model
for the REMUS Autonomous Underwater Vehicle. University of
California at Davis (1994)
[28] Shahaji, L., Some studies on Control of Autonomous Underwater
Vehicles. Swami Ramanand Teerth Marathwada University (2017)
[29] Londhe P., Santhakumar M., Patre B., Waghmare L., Task space
control of an autonomous underwater vehicle manipulator system by
robust single-input fuzzy logic control scheme. In: IEEE Journal of
Oceanic Engineering, vol. 42, no. 1, pp. 13-28 (2017)
[30] Fossen: Handbook of Marine Craft Hydrodynamics and Motion
110

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

Vehicles”, IEEE/ASME Trans. Mechatronics, vol. 18, no. 2, pp. 484–


493, Apr. 2013.
[40] X. Deng and S. Avadhanula, “Biomimetic Micro Underwater Vehicle
with Oscillating Fin Propulsion: System Design and Force
Measurement” in Proceedings of the 2005 IEEE International
Conference on Robotics and Automation, pp. 3312–3317, April 2005.
[41] D. Yoerger, J. G. Cooke, and J.-J. E. Slotine, “The influence of thruster
dynamics on underwater vehicle behavior and their incorporation into
control system design”, IEEE J. Ocean. Eng., vol. 15, no. 3, pp. 167–
178, Jul. 1990.
[42] A. Mazumdar and H. Asada, “Valve-PWM control of integrated pump-
valve propulsion systems for highly maneuverable underwater
vehicles” in American Control Conference (ACC), pp. 5414–5420,
2012. 88
[43] M. Krieg and K. Mohseni, “Thrust Characterization of a Bioinspired
Vortex Ring Thruster for Locomotion of Underwater Robots”, IEEE J.
Ocean. Eng., vol. 33, no. 2, pp. 123–132, Apr. 2008.
[44] M. Krieg, A. Pitty, M. Salehi, and K. Mohseni, “Optimal Thrust
Characteristics of a Synthetic Jet Actuator for Application in Low
Speed Maneuvering of Underwater Vehicles” in Proceedings of
OCEANS 2005 MTS/IEEE, pp. 1–6, 2005.
[45] D. Brutzman, T. Healey, D. Marco, and B. McGhee, “The Phoenix
autonomous underwater vehicle”, Artif. Intell. Mob. Robot. Case Stud.
Success. Robot Syst., pp. 323–360, 1998.
[46] D. Davis, “Precision maneuvering and control of the Phoenix
Autonomous Underwater Vehicle for entering a recovery tube”, Naval
Postgraduate School, MONTEREY, CA, 1996.
[47] R. B. Byrnes, A. J. Healey, R. B. McGhee, M. L. Nelson, S. Kwak, and
D. P. Brutzman, “The Rational Behavior Software Architecture for
Intelligent Ships”, Nav. Eng. J., vol. 108, no. 2, pp. 43–55, 1996.
112

[48] D. Brutzman and M. Compton, “AUV Research at the Naval


Postgraduate School”, Sea Technol. J., vol. 32, no. 12, pp. 35–40,
1991.
[49] D. Marco, A. Healey, and R. McGhee, Autonomous underwater
vehicles: Hybrid control of mission and motion. pp. 169–186, Springer
US, 1996.
[50] D. Brutzman, “A virtual world for an autonomous underwater vehicle”,
Naval Postgraduate School, MONTEREY, CA, 1994.
[51] T. Furukawa, “Reactive obstacle avoidance for the remus autonomous
underwater vehicle utilizing a forward looking sonar”, Naval
Postgraduate School, MONTEREY, CA, 2006.
[52] A. Healey, “Obstacle avoidance while bottom following for the
REMUS autonomous underwater vehicle” in IFAC Symposium on
Intelligent Autonomous Vehicles, 2004. 89
[53] D. Hemminger, “Vertical Plane Obstacle Avoidance and Control of the
REMUS Autonomous Underwater Vehicle Using Forward Looking
Sonar”, Naval Postgraduate School, MONTEREY, CA, 2005.
[54] P. Patron, E. Miguelanez, Y. R. Petillot, D. M. Lane, and J. Salvi,
“Adaptive mission plan diagnosis and repair for fault recovery in
autonomous underwater vehicles” in OCEANS 2008, pp. 1–9, 2008.
[55] E. Miguelanez, P. Patron, K. E. Brown, Y. R. Petillot, and D. M. Lane,
“Semantic Knowledge-Based Framework to Improve the Situation
Awareness of Autonomous Underwater Vehicles”, IEEE Trans. Knowl.
Data Eng., vol. 23, no. 5, pp. 759–773, May 2011.
[56] M. Sfakiotakis, D. M. Lane, and J. B. C. Davies, “Review of fish
swimming modes for aquatic locomotion”, IEEE J. Ocean. Eng., vol.
24, no. 2, pp. 237–252, Apr. 1999.
[57] K. Mohseni, “Zero-mass Pulsatile Jets for Unmanned Underwater
Vehicle Maneuvering” in AIAA 3rd “Unmanned Unlimited” Technical
Conference, Workshop and Exhibit, pp. 1–9, 2004.
113

[58] E. Lee, “Design of a soft and autonomous biomimetic micro-robotic


fish” in 2010 5th IEEE Conference on Industrial Electronics and
Applications, pp. 240–247, 2010.
[59] T. Prestero, “Verification of a Six-Degree of Freedom Simulation
Model for the REMUS Autonomous Underwater Vehicle”, MIT, 2001.
[60] G. Martins, A. Moses, M. J. Rutherford, and K. P. Valavanis,
“Enabling intelligent unmanned vehicles through XMOS Technology”,
J. Def. Model. Simul. Appl. Methodol. Technol., vol. 9, no. 1, pp. 71–
82, Jan. 2011.
[61] Uzair Ansari, Abdulrahman H. Bajodah, Autonomous Underwater
Vehicles Attitude control using Neuro-Adaptive Generalized Dynamic
Inversion¸International Federation of Automatic Control online 52-29
(2019), pp. 103-109.
[62] Jiemei Zhao, Neural Network Predictive Control for Autonomous
Underwater Vehicle with Input Delay, Journal of Control Science and
Engineering Volume 2018, ID 2316957.
[63] Behdad Geranmehr, Kamran Vafaee, Hybrid Adaptive Neural Network
AUV Controller Design with Sliding Mode Robust Term, International
Journal of Maritime Technology, Vol.7 (2017), pp.49-55.
[64] Ahmad Forouzantabar, Babak Gholami, Mohammad Azadi, Adaptive
Neural Network Control of Autonomous Underwater Vehicles,
International Journal of Elwctrical and Computer Engineering, Vo;.6,
No.7, 2012, pp.866-871.
[65] Ansari, U. and Bajodah, A.H. (2017a). Robust generalized dynamic
inversion based control of autonomous underwater vehicles,
Proceedings of the Institution of Mechanical Engineers, Part M:
Journal of Engineering for the Maritime Environment,
1475090217708640.
[66] Aras M.S.M., Abdullah S.S., Othman S.Y.B., Sulaiman M., Basar
M.F., Zambri M.K.M., and Kamarudin M.N. (2016). Fuzzy logic
114

controller for depth control of underwater remotely operated vehicle.


Journal of Theoretical & Applied Information Technology, 91(2).
[67] Cui, R., Yang, C., Li, Y., and Sharma, S. (2017). Adaptive neural
network control of auvs with control input nonlinearities using
reinforcement learning. IEEE Transactions on Systems, Man, and
Cybernetics: Systems, 47(6), 1019–1029.
[68] Farhan M., Bhatti A., Kamal W., and Yousafzai I. (2017). Sliding mode
based mimo control of autonomous underwater vehicle. In Control
Conference (ASCC), 2017 11th Asian, 2899–2904. IEEE.
[69] Khodayari, M.H. and Balochian, S. (2015). Modeling and control of
autonomous underwater vehicle (AUV) in heading and depth attitude
via self-adaptive fuzzy PID controller. Journal of Marine Science and
Technology, 20(3), 559–578.
[70] Liu, J. (2013). Radial Basis Function (RBF) neural network control for
mechanical systems: design, analysis and Matlab simulation. Springer
Science & Business Media.
[71] McEwen, R. and Streitlien, K. (2001). Modeling and control of a
variable-length AUV. Proc 12th UUST.
[72] W. Naeem, W., Sutton, R., and Ahmad, S. (2003). LQG/LTR control
of an autonomous underwater vehicle using a hybrid guidance law.
International Federation on Automatic Control Journal.
[73] Nelson R. (1997). Flight Stability and Automatic Control. McGraw-
Hill, New York, second edition.
[74] M.R. Ramezani-al and Tavanaei - Sereshki Z. (2018). An adaptive
sliding mode controller with a new reaching law for tracking problem
of an autonomous underwater vehicles. Transactions of the Institute of
Measurement and Control, 0142331218790791.
[75] Rath B.N., Subudhi B., Filaretov V., and Zuev A. (2017). A new
backstepping control design method for autonomous underwater
vehicle in diving and steering plane. In Region 10 Conference,
115

TENCON 2017-2017, IEEE, 1984–1987. IEEE.


[76] Rout, R. and Subudhi, B. (2017). Inverse optimal selftuning PID
control design for an autonomous underwater vehicle. International
Journal of Systems Science, 48(2), 367–375.
[77] Ruiz-Duarte, J.E. and Loukianov, A.G. (2015). Higher
order sliding mode control for autonomous underwater vehicles in the
diving plane. IFAC-PapersOnLine, 48(16), 49–54.
[78] Yao F., Yang C., Liu X., and Zhang M. (2018). Experimental
evaluation on depth control using improved model predictive control
for autonomous underwater vehicle (AUVs). Sensors, 18(7), 2321.
[79] Yildiz, O., G¨okalp, R.B., and Yilmaz, A.E. (2009). A review on motion
control of the underwater vehicles. In Electrical and Electronics
Engineering, 2009. ELECO 2009. International Conference on, II–337.
IEEE.
[80] Chu, Z. and D. Zhu. (2016), Adaptive sliding mode heading control for
autonomous underwater vehicle including actuator dynamics in
OCEANS 2016- Shanghai. 2016. IEEE.
[81] Geranmehr, B. and S.R. Nekoo, (2015), Nonlinear suboptimal control
of fully coupled non-affine sixDOF autonomous underwater vehicle
using the statedependent Riccati equation. Ocean Engineering, 2015.
96: p. 248-257.
[82] Geranmehr, B. and S.R. Nekoo. (2014), The nonlinear suboptimal
diving control of an autonomous underwater vehicle. in Robotics and
Mechatronics (ICRoM), 2014 Second RSI/ISM International
Conference on. 2014. IEEE.
[83] Geranmehr, B. and S.R. Nekoo. (2014) The statedependent set-point
regulation and tracking control of horizontal motion of AUV. in
Robotics and Mechatronics (ICRoM), Second RSI/ISM International
Conference on. 2014. IEEE.
[84] Rezazadegan, F. and K. Shojaei. (2013) An Adaptive Control Scheme
116

for 6-DOF Control of an AUV Using Saturation Functions. in


Proceedings of the 3rd International Conference on Intelligent
Computational Systems.
[85] T. Wang, H. Gao, and J. Qiu, “A combined adaptive neural network
and nonlinear model predictive control for multirate networked
industrial process control,” IEEE Transactions on Neural Networks
and Learning Systems, vol. 27, no. 2, pp. 416– 425, 2016.
[86] Lewis, F.L., K. Liu, and A. Yesildirek, (1995) Neural net robot
controller with guaranteed tracking performance. IEEE Transactions
on Neural Networks, 1995. 6(3): p. 703-715.
[87] Daachi, M., et al., (2015) A radial basis function neural network
adaptive controller to drive a powered lower limb knee joint orthosis.
Applied Soft Computing, 2015. 34: p. 324-336.
[88] Lei, X. and P. Lu, (2014) The adaptive radial basis function neural
network for small rotary-wing unmanned aircraft. IEEE Transactions
on Industrial Electronics, 2014. 61(9): p. 4808-4815.
[89] Fateh, M.M., S.M. Ahmadi, and S. Khorashadizadeh, (2014) Adaptive
RBF network control for robot manipulators. Journal of AI and Data
Mining, 2014. 2(2): p. 159-166.
[90] Chu, Y. and J. Fei, (2015) Adaptive global sliding mode control for
MEMS gyroscope using RBF neural network. Mathematical Problems
in Engineering, 2015.
[91] Slotine, J.-J.E. and W. Li, (1991) Applied nonlinear control. Vol. 199.
prentice-Hall Englewood Cliffs, NJ.
[92] Xu Yuru, Xiao Kun, “Technology development of autonomous ocean
vehicle”, Journal of Automation, vol. 33, no. 5, pp.518-521, 2007.
[93] Xu Yuru, Pang Yongjie, Wan Lei, Sun Yushan, “AUV-state-of-the-art
and prospect”, CAAI Transactions on Intelligent Systems, vol. 1, no.
1, pp.9-16, 2006.
[94] Yang Shi1. Weiqi Qian. “Adaptive Depth Control for Autonomous
117

Underwater.Vehicles Based on Feedforward Neural Networks’’. Vol.


4, Issue 3, pp 107-118,2007.
[95] A. J. Healey and D. Lienard, “Multivariable sliding mode control for
autonomous diving and steering o f unmanned underwater vehicles”
IEEE Journal of Oceanic Engineering, vol. 18, no. 3,pp. 327-339, 1993.
[96] D. Xu, W. Yan, and Y. Shi, “Nonlinear variable structure double mode
control of autonomous underwater vehicles”, Proc. IEEE International
Symposium on Underwater Technology, pp. 425-430, Tokyo, May 23-
26, 2000.
[97] K. Mukherjee, I. N. Kar, and R. K. P. Bhatt, “Region tracking based
control of an autonomous underwater vehicle with input delay,” Ocean
Engineering, vol. 99, pp. 107–114, 2015.
[98] J. Nie, J. Yuh, E. Kardash, and T. I. Fossen, “Onboard sensor-based
adaptive control of small UUVs in the very shallow water”, Proc.
IFACControl Applications in Marine Systems, Fukuoka, Japan, pp.
201-206, 1998.
[99] N. Kato, “Applications of fuzzy algorithm to guidance and control of
underwater vehicles”, Underwater Robotic Vehicles: Design and
Control, J. Yuh (Ed.), TSI: Albuquerque, 1995.
[100] Huanan Yu, Jun Dai, “Control of autonomous underwater vehicle
using fuzzy logic tuned by genetic algorithm”, Journal of Harbin
Engineering University, vol. 23, no. 5, pp.12-15, 2002.
[101] F.L.Lewis, S.Jagannathan and A. Yesildirek , “Neural Network
Control of Robot Manipulators and Nonlinear systems”, Taylor &
Francis, 1999.
[102] Ahmad Forouzantabar, Ahmadreza Khoogar, Mohammad Javade
Fakharzadegan, “Controlling a New Biped Robot Model Since Walking
Using Neural Network”, IEEE ICIT Conference, March 2007,
Shenzhen, China.
[103] Xiao Liang, Yong Gan, Lei Wan, “Motion Controller for Autonomous
118

Underwater Vehicle Based on Parallel Neural Network’’, International


Journal of Digital Content Technology and its Applications, Vol 4, no
9, 2010.
[104] Ji-Hong Li, Pan-Mook Lee, Sang-Jeong Lee, “Motion control of an
AUV using a neural network adaptive controller”. Proceedings of the
2002 International Symposium on Underwater Technology, pp.217-
221, 2002.
[105] Lei Zhang, Yongjie Pang, Lei Wan, and Ye Li, “Fuzzy neural network
control of AUV based on IPSO Fuzzy”, IEEE International Conference
on Robotics and Biomimetics, pp. 1561-1566, 2008.
[106] J. Yuh. Modeling and control of underwater robot vehicles. In IEEE
Transactions on Systems, Man and Cybernetics, volume 20, pages
1475–1483, 1990.
[107] P. Ridao et al. Model identification of a low-speed UUV. In Control
Applications in Marine Systems, International Federation on
Automatic Control, 2001.
[108] Sanner R.M, Slotin, J.J.E, and W. LI, “Stable adaptive control of robot
manipulators using “neural” networks”, Neural Computation,
Volume 7, Issue 4 (July 1995) Pages: 753 - 790.
[109] Gonzalez, L.A. Design, Modeling and control of an autonomous
underwater vehicle. Bachelor of Engineering Honours Thesis. The
University of Western Australia. 2004.
[110] Ahmad Forouzantabar, Ahmadreza khoogar, Ahmad Reza Vali,
“Neural Network Control of a New Biped Robot Model with Back
Propagation Algorithm”, IEEE RO-MAN 2007, August 26-29, Korea.
[111] P. Jantapremjit and P. A. Wilson, “Guidance-control based path
following for homing and docking using an autonomous underwater
vehicle,” in Proceedings of the OCEANS’08 MTS/IEEE Kobe-
Techno-Ocean’08 - Voyage toward the Future, OTO’08, JPN, April
2008.
119

[112] L. Lapierre and D. Soetanto, “Nonlinear path-following control of an


AUV,” Ocean Engineering, vol. 34, no. 11-12, pp. 1734–1744, 2007.
[113] A. Adhami-Mirhosseini, M. J. Yazdanpanah, and A. P. Aguiar,
“Automatic bottom-following for underwater robotic vehicles,”
Automatica, vol. 50, no. 8, pp. 2155–2162, 2014.
[114] M. Kim, H. Joe, J. Kim, and S.-c. Yu, “Integral sliding mode controller
for precise manoeuvring of autonomous underwater vehicle in the
presence of unknown environmental disturbances,” International
Journal of Control, vol. 88, no. 10, pp.2055–2065, 2015.
[115] R. Cui, X. Zhang, and D. Cui, “Adaptive sliding-mode attitude
control for autonomous underwater vehicles with input nonlinearities,”
Ocean Engineering, vol. 123, pp. 45–54, 2016.
[116] Y. Wang, L. Gu, M. Gao, and K. Zhu, “Multivariable output feedback
adaptive terminal sliding mode control for underwater vehicles,”
Asian Journal of Control, vol. 18, no. 1, pp. 247–265, 2016.
[117] X. Qi, “Adaptive coordinated tracking control of multiple autonomous
underwater vehicles,” Ocean Engineering, vol. 91, pp. 84–90, 2014.
[118] R. Cui, C. Yang, Y. Li, and S. Sharma, “Adaptive Neural Network
Control of AUVs With Control Input Nonlinearities Using
Reinforcement Learning,” IEEE Transactions on Systems, Man, and
Cybernetics: Systems, vol. 47, no. 6, pp. 1019–1029, 2017.
[119] B. B. Miao, T. S. Li, and W. L. Luo, “A DSC and MLP based robust
adaptive NN tracking control for underwater vehicle,”
Neurocomputing, vol. 111, pp. 184–189, 2013.
[120] Y.C. Liu, S.Y. Liu, and N. Wang, “Fully-tuned fuzzy neural network
based robust adaptive tracking control of unmanned underwater
vehicle with thruster dynamics,” Neurocomputing, vol. 196, pp. 1–13,
2016.
[121] J. Ghommam and M. Saad, “Backstepping-based cooperative and
adaptive tracking control design for a group of underactuated AUVs
120

in horizontal plan,” International Journal of Control, vol. 87, no. 5, pp.


1076–1093, 2014.
[122] C. Shen, B. Buckham, and Y. Shi, “Modified C/GMRES Algorithm for
Fast Nonlinear Model Predictive Tracking Control of AUVs,” IEEE
Transactions on Control Systems Technology, vol. 25, no. 5, pp. 1896–
1904, 2017.
[123] J. Gao, A. A. Proctor, Y. Shi, and C. Bradley, “Hierarchical Model
Predictive Image-Based Visual Servoing of Underwater Vehicles with
Adaptive Neural Network Dynamic Control,” IEEE Transactions on
Cybernetics, vol. 46, no. 10, pp. 2323–2334, 2016.
[124] J. Sun and J. Chen, “Networked predictive control for systems with
unknown or partially known delay,” IET Control Theory &
Applications, vol. 8, no. 18, pp. 2282–2288, 2014.
[125] S. Li and G.P. Liu, “Networked predictive control for nonlinear
systems with stochastic disturbances in the presence of data losses,”
Neurocomputing, vol. 194, pp. 56–64, 2016.
[126] Y. Sheng, Y. Shen, and M. Zhu, “Delay-dependent global exponential
stability for delayed recurrent neural networks,” IEEE Transactions on
Neural Networks and Learning Systems, 2016.
[127] C. F. Caruntu and C. Lazar, “Network delay predictive compensation
based on time-delay modelling as disturbance,” International Journal
of Control, vol. 87, no. 10, pp. 2012–2026, 2014.
[128] Y. Ding, Z. Xu, J. Zhao, K. Wang, and Z. Shao, “Embedded MPC
controller based on interior-point method with convergence depth
control,” Asian Journal of Control, vol. 18, no. 6, pp. 2064–2077, 2016.
[129] J.Q. Huang and F. L. Lewis, “Neural-network predictive control for
nonlinear dynamic systems with time-delay,” IEEE Transactions on
Neural Networks and Learning Systems, vol. 14, no. 2, pp. 377–389,
2003.
121

PHỤ LỤC
CÁC FILE MATLAB ĐỂ THỰC HIỆN MÔ PHỎNG
ĐIỀU KHIỂN AUV

PL1. File mô phỏng điều khiển hướng và độ sâu AUV

% Submarine control test


% Date: 2019/Apr/14th
% ANNAI control of heading and depth
% Author: PHAM VIET ANH – HCM Unv. Of Transport
%======================================================================
clear; % clear all variables

NN = 6000; % number of sample


h = 0.1; % sample time (sec)
i = 0;
% --------------------------------------
z = 0;
delta = 0;
delta_s = 0;
max_delta = 20*(pi/180);
max_delta_s = 20*(pi/180);

% Controller's parameters of the rudder


% rho = 1; lambda = 0.2; sigma1 = 0.2; sigma2 = 0.05;
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;

% ui = [ delta_r delta_s delta_b delta_bp delta_bs n ]'

% initial states: x = [ u v w p q r x y z phi theta psi ]'


x = [0.3 0 0 0 0 0 0 0 -10 0 0 0*pi/180]';
U = 0.3;

%*************** START SIMULATION *******************


disp('Running...')

% We start executing the controller with ralative small weights:


W21 = rand(6,4)*0.0001; % Set random hidden layer weights
W32 = rand(1,6)*0.0001; % Set random output layer weights
W21_s = rand(6,4)*0.0001; % Set random hidden layer weights
W32_s = rand(1,6)*0.0001; % Set random output layer weights

% lr_rate(3) = 0.01; % Initial learning rate


% N(3) = 5; % Initial number of iterations
net_in = zeros(4,1); % Set initial inputs of neural network
net_in_s = zeros(4,1);

while i < NN,


i=i+1;
time = (i-1)*h; % simulation time in seconds
clc;
122
fprintf('Running...\n*Counter = %d (%d)\n',round(i/10),round((NN-
i)/10));

r = x(6);
w = x(3);

% Sensor noise for the heading sensor with a uniform distribution on


% [-0.1,+0.1] deg.
% s = 0.1*(pi/180)*(2*rand - 1);
s = 0; % This allow us to remove the noise
psi = x(12) + s; % Heading of the ship with sensor noise
Z = x(9);

% 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 = psi-psi_ref(i); % Do lech huong di so voi huong dat


net_in(1) = err;

err_s = Z-Z_ref(i);
net_in_s(1) = err_s;

ii=round(i/10);
if round(i/10)==0,ii=2,end

% store data for presentation


xout(i,:) = [time,x',U,delta,delta_s];
e_out(ii,:) = [err; err_s];
%----------------------------------------------------------------------
----
% Dau ra cua BDK duoc tinh toan 1 giay 1 lan (theo bien "ii")
if ii>3
% Calculate rudder command:
delta = mlnnc(1,6,4,net_in,W21,W32);
delta_s = mlnnc(1,6,4,net_in_s,W21_s,W32_s);
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

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;

% Now update the weights of NN using adaptive interaction algorithm


123
% (intensive training):
[W21,W32] = annaiTrainIte(h,0.5,50,1,6,4,net_in,...
err,delta,r,z,rho,lambda,sigma1,sigma2); % Add
integration action
[W21_s,W32_s] = annaiTrainIte(h,0.5,50,1,6,4,net_in_s,...

err_s,delta_s,w,z,rho_s,lambda_s,sigma1_s,sigma2_s); % 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);
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;

% 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','Heading','Location','Best')
subplot(212)
hold on
plot(t,delta,'LineWidth',2,'Color','b','LineStyle','-')
title('Rudder angle \delta (deg)')
xlabel('Time (s)'),ylabel('[Deg]'),grid on
% legend('PID','NNC')

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

PL2. File mô phỏng điều khiển hướng, độ sâu và tốc độ AUV

% Submarine control test


% Decoupled control of speed, depth and course
% Date: 2009/May/01st
% Author: PHAM VIET ANH – HCM Unv. Of Transport
%======================================================================
clear; % clear all variables

NN = 6000; % number of sample


h = 0.1; % sample time (sec)
i = 0;
% --------------------------------------
z = 0;
z_s = 0;
z_n = 0;
delta = 0;
delta_s = 0;
n = 150;
u = 0.3;
max_delta = 20*(pi/180);
max_delta_s = 20*(pi/180);
max_n = 1500;
%----------------------------------------------------------------------
% 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 ]'

% initial states: x = [ u v w p q r x y z phi theta psi ]'


x = [0.3 0 0 0 0 0 0 0 -10 0 0 0*pi/180]';
U = 0.3;

%*************** START SIMULATION *******************


disp('Running...')

% We start executing the controller with ralative small weights:


W21 = rand(6,4)*0.0001; % Set random hidden layer weights
W32 = rand(1,6)*0.0001; % Set random output layer weights
W21_s = rand(6,4)*0.0001; % Set random hidden layer weights
W32_s = rand(1,6)*0.0001; % Set random output layer weights
W21_n = rand(6,4)*0.0001; % Set random hidden layer weights
W32_n = rand(1,6)*0.0001; % Set random output layer weights

net_in = zeros(4,1); % Set initial inputs of neural network


net_in_s = zeros(4,1);
net_in_n = zeros(4,1);

while i < NN,


i=i+1;
time = (i-1)*h; % simulation time in seconds
clc;
fprintf('Running...\n*Counter = %d (%d)\n',round(i/10),round((NN-
i)/10));
126

r = x(6);
w = x(3);
udot = u-x(1);
u = x(1);
q = x(5);
theta= x(11);

% Sensor noise for the heading sensor with a uniform distribution on


% [-0.1,+0.1] deg.
% s = 0.1*(pi/180)*(2*rand - 1);
s = 0; % This allow us to remove the noise
psi = x(12) + s; % Heading of the ship with sensor noise
Z = x(9);

% 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 = psi-psi_ref(i); % Do lech huong di so voi huong dat


net_in(1) = err;

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

% store data for presentation


xout(i,:) = [time,x',U,delta,delta_s,n];
e_out(ii,:) = [err; err_s;err_n];
%---------------------------------------------------------------------
% Dau ra cua BDK duoc tinh toan 1 giay 1 lan (theo bien "ii")
if ii>3
% Calculate rudder command:

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;

% Now update the weights of NN using adaptive interaction algorithm


% (intensive training):
[W21,W32] = annaiTrainIte(h,0.5,50,1,6,4,net_in,...
err,delta,r,z,rho,lambda,sigma1,sigma2);
% Add integration action
[W21_s,W32_s] = annaiTrainIte(h,0.5,50,1,6,4,net_in_s,...

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

% Submarine control test


% Decoupled control of speed, depth and course
% Path following in Oxyz
% Date: 2009/May/01st
% Modified: 2019/Apr/14th
% Modified: 2021/Feb/19th
% - Heading control on Oxy axis
% - Depth control separately
% Written by: PHAM VIET ANH – HCM Univ. of Transport
%======================================================================
clear; % clear all variables

NN = 6000; % number of sample


h = 0.1; % sample time (sec)
i = 1;
% --------------------------------------
z = 0;
z_s = 0;
z_n = 0;
delta = 0;
delta_s = 0;
n = 150;
u = 0.3;
max_delta = 20*(pi/180);
max_delta_s = 20*(pi/180);
max_n = 1500;

% 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 ]'

% initial states: x = [ u v w p q r x y z phi theta psi ]'


x = [0.3 0 0 0 0 0 -1 -1 -10 0 0 5*pi/180]';
U = 0.3;
xd(1) = x(7);
yd(1) = x(8);
zd(1) = x(9);
psi1 = x(12);
psi_d(1) = x(12);
epsi(1) = 0;
130
Z_ref(1) = x(9);
dist2w = sqrt((Px(m) - xd(1))^2 + (Py(m) - yd(1))^2 + (Pz(m)-zd(1))^2);

%*************** START SIMULATION *******************


disp('Running...')

% We start executing the controller with ralative small weights:


W21 = rand(6,4)*0.0001; % Set random hidden layer weights
W32 = rand(1,6)*0.0001; % Set random output layer weights
W21_s = rand(6,4)*0.0001; % Set random hidden layer weights
W32_s = rand(1,6)*0.0001; % Set random output layer weights
W21_n = rand(6,4)*0.0001; % Set random hidden layer weights
W32_n = rand(1,6)*0.0001; % Set random output layer weights

% lr_rate(3) = 0.01; % Initial learning rate


% N(3) = 5; % Initial number of iterations
net_in = zeros(4,1); % Set initial inputs of neural network
net_in_s = zeros(4,1);
net_in_n = zeros(4,1);

while i < NN,


i=i+1;
time = (i-1)*h; % simulation time in seconds
clc;
fprintf('Running...\n*Counter = %d (%d)\n',round(i/10),round((NN-
i)/10));

r = x(6);
w = x(3);
udot = u-x(1);
u = x(1);
q = x(5);
theta= x(11);

if dist2w <= 4.5*L,m=m+1;end

% Sensor noise for the heading sensor with a uniform distribution on


% [-0.1,+0.1] deg.
% s = 0.1*(pi/180)*(2*rand - 1);
s = 0; % This allow us to remove the noise
psi = x(12) + s; % Heading of the ship with sensor noise

xd(i) = x(7);
yd(i) = x(8);
zd(i) = x(9);
% psi_d(i) = Psi(m);

dist2w = sqrt((Px(m) - xd(i))^2 + (Py(m) - yd(i))^2 + (Pz(m)-


zd(i))^2);

% 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

% store data for presentation


xout(i,:) = [time,x',U,delta,delta_s,n];
e_out(ii,:) = [err; err_s;err_n];

%----------------------------------------------------------------------
----
% Dau ra cua BDK duoc tinh toan 1 giay 1 lan (theo bien "ii")
if ii>3
% Calculate rudder command:

% delta = 1.25*err-0.015*x(6); % Kp=1, Kd=0.01 % PID


controller
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
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;

% Now update the weights of NN using adaptive interaction algorithm


% (intensive training):
[W21,W32] = annaiTrainIte(h,0.5,50,1,6,4,net_in,...
err,delta,r,z,rho,lambda,sigma1,sigma2);
% Add integration action
[W21_s,W32_s] = annaiTrainIte(h,0.5,50,1,6,4,net_in_s,...

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

% PLOT THE RESULTS


figure(1)
clf
subplot(211)
plot(t,psi_ref,'LineWidth',2,'Color','r','LineStyle','--')
133
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
% 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

PL4. File LOSguide.m

function psi_los = LOSguide(pos_x,pos_y,x_k_1,y_k_1,x_k,y_k,n,L)

% LOSGUIDE calculate Light-Of-Sight guidance heading


%
% Inputs:
% pos_x current ship's position in X
% pos_y current ship's position in Y
% x_k_1 previuos way-point in X
% y_k_1 previuos way-point in Y
% x_k current way-point in X
% y_k current way-point in Y
% n number of ship length
% L ship's length
%
% Outputs:
% psi_los Light-Of-Sight guidance heading (rad)
%
% Reference: Morten Breivik (2003)-"Nonlinear Maneuvering Control of
% Underactuated Ships", MSc thesis, Norwegian University of
% Science and Technology, Department of Engineering
% Cybernetics, Trondheim, Norway
%
% Author: Phung-Hung Nguyen
% Date: 2005/Dec/4th
%=====================================================================

delta_x = x_k - x_k_1;


delta_y = y_k - y_k_1;

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"

% Next, we calculate the psi_los (from 0 to 2*pi)

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

PL5. File CurrGen.m

function [Vc,uc,vc] = CurrGen(Vc_k_1,psi,h)

% CURRGEN generates values of current to input into simulation programs


%
% Inputs:
% Vc_k_1 current velocity at previuos time step (m/s)
% psi ship's heading (rad)
% h sampling time (sec)
%
% Outputs:
% Vc current velocity at present time step (m/s)
% uc longitudinal velocity caused by current (m/s)
% vc lateral velocity caused by current (m/s)
%
% Author: Phung-Hung Nguyen, Korea Maritime University
% Date: 2006/Jan/10th
%
%======================================================================
=

% 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)
%------------------------------------------------

Vc_dot = (2*rand-1)*0.15;% - alph*Vc_k_1;


Vc = Vc_k_1 + h*Vc_dot;
if Vc<Vcmin
Vc = Vcmin;%Vc_k_1 - h*Vc_dot;
elseif Vc>Vcmax
Vc = Vcmax;%Vc_k_1 - h*Vc_dot;
end

% Vc = 0; % This is to set zero current

sslip = psi - Hc*pi/180;


if sslip<=-pi
sslip = sslip + 2*pi;
elseif sslip<=pi
sslip = sslip;
else % pi<sslip<=2*pi
sslip = sslip - 2*pi;
end
uc = Vc*cos(sslip);
vc = -Vc*sin(sslip);

%>>>>>>>>>>>END<<<<<<<<<<<
137

PL6. File mạng nơ-ron nhiều lớp truyền thẳng

function Oi = mlnnc(outputs,hiddens,inputs,net_in,W21,W32)

% MLNNC calculate outputs of multi-layer neural network controller. s


% This isingle hidden layer feedforward network
%
% Inputs:
% outputs = i number of neurons in output layer, integer
% hiddens = j number of neurons in hidden layer, integer
% inputs = p number of neurons in input layer, integer
% net_in input signal of neural network, (px1) column vector
% W21 hidden weights, (jxp) matrix
% W32 output weight, (ixj) matrix
%
% Outputs:
% Oi output signal of neural network, (ix1) column vector
%
% Author: Phung-Hung Nguyen (Vietnam Maritime University)
% Date: 2005/Dec/4th
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Check input dimension


if (length(net_in)~=inputs)
error('Length of input vector and number of inputs are not equal
!');
end

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

PL7. File huấn luyện mạng nơ-ron thích nghi

function [W21,W32] =
annaiTrain(h,lr,N,outputs,hiddens,inputs,net_in,e,U,r,...
ro_w,lamda_w,beta_w)

% ANNAITRAIN calculate weights of multi-layer feedforward neural


network
% using "ANNAI" algorithm
%
% Inputs:
% h sampling inteval
% lr learning rate
% N number of training iterations
% outputs number of neurons in output layer, integer
% hiddens number of neurons in hidden layer, integer
% inputs number of neurons in input layer, integer
% net_in input signal of neural network, column vector
% e controlled error
% U control input
% r additional controlled item
% ro_w constant
% lamda_w constant
% beta_w constant
%
% Outputs:
% W21 hidden weights, matrix
% W32 output weight, matrix
%
% Author: Phung-Hung Nguyen
% Date: 2005/Dec/4th
% Modified to apply to AUV by PHAM VIET ANH 2019/Jun/10th
%======================================================================

W21 = rand(hiddens,inputs)*0.0001; % Set random hidden layer weights


W32 = rand(outputs,hiddens)*0.0001; % Set random output layer weights
A = ro_w*e + lamda_w*U + beta_w*r;

itr = 0; % Iterations of training


while itr<N
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=..."
% calculate new weights:
for j=1:hiddens
% W32_dot(j) = lr*Oj(j)*exp(-2*neti)/(1+exp(-2*neti))^2*A;
W32_dot(j) = lr*Oj(j)*A;
W32(j) = W32(j) + h*W32_dot(j);
for p=1:inputs
W21_dot(j,p) =
net_in(p)*W32(j)*W32_dot(j)*(1/(1+exp(netj(j))));
139
W21(j,p) = W21(j,p) + h*W21_dot(j,p);
end
end
itr = itr+1;
end % End of "while itr<N"
%>>>>>>>>>>>END<<<<<<<<<<<

You might also like