Luận án Nghiên cứu ứng dụng bộ điều khiển pid thích nghi dựa trên mạng nơ-Ron nhân tạo cho hệ thống điều khiển tàu thủy

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 tàu 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. 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 tàu thủy vẫn luôn là vấn đề thời sự cho các nhà nghiên cứu, bởi vì khi

thiết kế bộ điều khiển cho tàu 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 tàu thủy đó.

Thực tế, các tính năng động học của tàu thủy 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. Bản thân

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 và yêu cầu phải có kỹ thuật điều khiển tiên tiến.

Hiện nay, các nhà khoa học trong lĩnh vực này, đã 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 cơ bản sau:

- Thứ nhất, cải tiến cấu trúc bộ điều khiển PID;

- Thứ hai, 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à lý thuyết điều khiển thông minh khác với bộ điều khiển PID

thông thường, nhằm đạt được chất lượng điều khiển mong muốn.

Do vậy, 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.

pdf 138 trang dienloan 8740
Bạn đang xem 20 trang mẫu của tài liệu "Luận án Nghiên cứu ứng dụng bộ điều khiển pid thích nghi dựa trên mạng nơ-Ron nhân tạo cho hệ thống điều khiển tàu thủy", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Luận án Nghiên cứu ứng dụng bộ điều khiển pid thích nghi dựa trên mạng nơ-Ron nhân tạo cho hệ thống điều khiển tàu thủy

Luận án Nghiên cứu ứng dụng bộ điều khiển pid thích nghi dựa trên mạng nơ-Ron nhân tạo cho hệ thống điều khiển tàu thủy
BỘ GIAO THÔNG VẬN TẢI BỘ GIÁO DỤC VÀ ĐÀO TẠO 
TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM 
VÕ HỒNG HẢI 
NGHIÊN CỨU ỨNG DỤNG BỘ ĐIỀU KHIỂN 
PID THÍCH NGHI DỰA TRÊN MẠNG NƠ-RON 
NHÂN TẠO CHO HỆ THỐNG ĐIỀU KHIỂN 
TÀU THỦY 
LUẬN ÁN TIẾN SĨ KỸ THUẬT 
HẢI PHÒNG - 2020 
BỘ GIAO THÔNG VẬN TẢI BỘ GIÁO DỤC VÀ ĐÀO TẠO 
TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM 
VÕ HỒNG HẢI 
NGHIÊN CỨU ỨNG DỤNG BỘ ĐIỀU KHIỂN 
PID THÍCH NGHI DỰA TRÊN MẠNG NƠ-RON 
NHÂN TẠO CHO HỆ THỐNG ĐIỀU KHIỂN 
TÀU THỦY 
 LUẬN ÁN TIẾN SĨ KỸ THUẬT 
CHUYÊN NGÀNH: KHOA HỌC HÀNG HẢI 
MÃ SỐ: 9840106 
Người hướng dẫn khoa học: 1. PGS. TS. Phạm Kỳ Quang 
 2. PGS. TS. Nguyễn Phùng Hưng 
 HẢI PHÒNG – 2020
i 
MỤC LỤC 
MỤC LỤC ........................................................................................................ i 
LỜI CAM ĐOAN .......................................................................................... iv 
LỜI CÁM ƠN ..................................................................................................v 
DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU ................................. vi 
DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ ......................................................... vii 
DANH MỤC CÁC BẢNG ............................................................................. x 
MỞ ĐẦU .......................................................................................................... 1 
1. Tính cấp thiết của đề tài luận án .............................................................. .1 
2. Mục đích nghiên cứu ................................................................................... 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 .................................................................... 4 
6. Những điểm đóng góp mới ......................................................................... 5 
7. Kết cấu của luận án ..................................................................................... 6 
CHƯƠNG 1. TỔNG QUAN VẤN ĐỀ NGHIÊN CỨU VÀ MẠNG NƠ-
RON NHÂN TẠO TRONG ĐIỀU KHIỂN ........................... 8 
1.1. Tổng quan vấn đề nghiên cứu của luận án ........................................... 8 
1.1.1. Tình hình nghiên cứu trên thế giới liên quan đến luận án .......... 8 
1.1.2. Tình hình nghiên cứu trong nước liên quan đến luận án .......... 11 
1.2. Mạng nơ-ron nhân tạo trong điều khiển ............................................. 12 
1.2.1. Cấu trúc mạng nơ-ron nhân tạo ................................................ 12 
1.2.2. Nhận dạng hệ thống sử dụng mạng nơ-ron nhân tạo ............... 18 
1.2.3. Phương pháp ứng dụng mạng nơ-ron trong điều khiển ........... 20 
1.3. Nghiên cứu một số bộ điều khiển PID nơ-ron cho hệ thống điều khiển 
hướng đi tàu thủy ......................................................................................... 21 
1.3.1. Bộ điều khiển PID dựa trên mạng nơ-ron lan truyền ngược cho 
điều khiển hướng đi tàu thủy .............................................................. 21 
ii 
1.3.2. Bộ điều khiển PID dựa trên mạng nơ-ron hàm cơ sở xuyên tâm 
cho điều khiển hướng đi tàu thủy........................................................ 26 
1.4. Cơ sở lý thuyết về các hệ tọa độ và và động học tàu thủy .................. 29 
1.4.1. Các hệ trục tọa độ tham chiếu .................................................. 29 
1.4.2. Phương trình động học của con tàu ......................................... 34 
1.4.3. Phương trình động lực học của vật rắn ..................................... 36 
1.4.4. Phương trình động lực học của con tàu .................................... 38 
1.4.5. Thủy động lực học .................................................................... 39 
1.4.6. Lực phục hồi ............................................................................. 41 
1.4.7. Trọng lực thêm vào ................................................................... 42 
1.5. Kết luận chương 1 ................................................................................. 42 
CHƯƠNG 2. BỘ ĐIỀU KHIỂN PID NƠ-RON THÍCH NGHI DỰA 
TRÊN MẠNG NƠ-RON LAN TRUYỀN NGƯỢC CHO 
HỆ THỐNG ĐIỀU KHIỂN HƯỚNG ĐI TÀU THỦY .... 44 
2.1. Bộ điều khiển PID nơ-ron dựa trên mạng nơ-ron lan truyền ngược 
không có bộ nhận dạng cho hệ thống điều khiển hướng đi tàu thủy ....... 44 
2.1.1. Sơ đồ nguyên lý ......................................................................... 44 
2.1.2. Thuật toán điều khiển PID ......................................................... 63 
2.1.3. Thuật toán điều khiển mạng nơ-ron lan truyền ngược .............. 45 
2.1.4. Huấn luyện lan truyền ngược tăng cường ................................. 49 
2.1.5. Sơ đồ thuật toán huấn luyện ...................................................... 50 
2.2. Bộ điều khiển PID nơ-ron dựa trên mạng nơ-ron lan truyền ngược 
có bộ nhận dạng cho hệ thống điều khiển hướng đi tàu thủy .......... 51 
2.2.1. Sơ đồ nguyên lý ....................................................................... 51 
2.2.2. Mạng nhận dạng nơ-ron ............................................................ 52 
2.3. Kết luận chương 2 ................................................................................. 55 
iii 
CHƯƠNG 3. KẾT QUẢ MÔ PHỎNG ...................................................... 57 
3.1. Mô hình toán học cho mô phỏng ......................................................... 57 
3.1.1. Mô hình toán học tàu hàng Mariner ......................................... 57 
3.1.2. Mô hình toán học sóng, gió và dòng chảy ............................... 58 
3.2. Bộ điều khiển PID nơ-ron dựa trên mạng lan truyền ngược không có 
bộ nhận dạng nơ-ron ..................................................................................... 65 
3.2.1. Khi không có gió và nhiễu tác động ......................................... 65 
3.2.2. Khi có gió và nhiễu tác động .................................................... 67 
3.3. Bộ điều khiển PID nơ-ron dựa trên mạng lan truyền ngược có bộ 
nhận dạng nơ-ron .......................................................................................... 70 
3.3.1. Khi không có gió và nhiễu tác động ......................................... 70 
3.3.2. Khi có gió và nhiễu tác động .................................................... 73 
3.4. Kết luận chương 3 ................................................................................. 76 
CHƯƠNG 4. KẾT QUẢ THỰC NGHIỆM ............................................... 77 
4.1. Điều kiện thực nghiệm ........................................................................... 77 
4.2. Kết quả thực nghiệm .............................................................................. 79 
4.3. Kết luận chương 4 ................................................................................. 84 
KẾT LUẬN VÀ KIẾN NGHỊ ...................................................................... 86 
KẾT LUẬN ..................................................................................................... 86 
KIẾN NGHỊ .................................................................................................... 87 
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ LIÊN 
QUAN ĐẾN ĐỀ TÀI LUẬN ÁN .................................................................. 89 
TÀI LIỆU THAM KHẢO ............................................................................ 90 
PHẦN PHỤ LỤC (Gồm 3 phụ lục) 
iv 
LỜI CAM ĐOAN 
Tên tôi là Võ Hồng Hải - Nghiên cứu sinh chuyên ngành Khoa học 
hàng hải và tác giả luận án tiến sĩ: “Nghiên cứu ứng dụng bộ điều khiển PID 
dựa trên mạng nơ-ron nhân tạo thích nghi cho hệ thống điều khiển tàu thủy”, 
dưới sự hướng dẫn của tập thể người hướng dẫn khoa học: Thầy PGS. TS. 
Phạm Kỳ Quang và thầy PGS. TS. Nguyễn Phùng Hưng, thực hiện tại Trường 
Đại học Hàng hải Việt Nam. 
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. 
 Hải Phòng, ngày 19 tháng 11 năm 2020 
 Nghiên cứu sinh 
 Võ Hồng Hải 
v 
LỜI CẢM ƠN 
Tôi xin chân thành cảm ơn Trường Đại học Hàng hải Việt Nam, Viện 
Đào tạo sau đại học Trường Đại học Hàng hải Việt Nam đã 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 hai Thầy hướng dẫn khoa học, PGS.TS. 
Phạm Kỳ Quang và PGS.TS. Nguyễn Phùng Hưng đã 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 Đào tạo sau Đại học, Khoa Hàng hải, 
Bộ môn Hàng hải Trường Đại học Hàng hải Việt Nam 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 Trường Đại học Giao thông Vận tải 
TPHCM đã tạo điều kiện cho tôi được thí nghiệm đề tài luận án của mình; 
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! 
Hải phòng, ngày 19 tháng 11 năm 2020 
 Tác giả 
 Võ Hồng Hải 
vi 
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 
ANN Artificial Neural Network: Mạng nơ-ron nhân tạo 
ANNAI Adaptive Neural Network by Adaptive Interection: Mạng 
nơ-ron thích nghi theo phương pháp thích nghi tương tác 
BĐK Bộ điều khiển 
BPNN Back-Propagation Network: Mạng nơ-ron lan truyền ngược 
ĐKTĐ Điều khiển tự động 
MATLAB Công cụ làm toán trên ma trận 
MLTĐ Máy lái tự động 
NCKH Nghiên cứu khoa học 
NCS Nghiên cứu sinh 
NNC Neural Network Controller: Bộ điều khiển mạng nơ-ron 
PID Proportional – Integral – Derivative: Tỷ lệ - Tích phân – Vi 
phân 
ROV Phương tiện ngầm điều khiển từ xa 
vii 
DANH MỤC HÌNH VẼ VÀ ĐỒ THỊ 
Số hình Tên hình vẽ và đồ thị Trang 
1.1 Đơn vị xử lý của mạng nơ-ron nhân tạo 13 
1.2 Hàm truyền tuyến tính 14 
1.3 Hàm truyền giới hạn cứng 15 
1.4 Hàm truyền dạng sigma 15 
1.5 Hàm truyền dạng tang-sigma 16 
1.6 Mạng nơ-ron truyền thẳng nhiều lớp 17 
1.7 Mạng nơ-ron hồi quy 17 
1.8 Mô hình nhận dạng cơ bản 19 
1.9 Sơ đồ phương pháp điều khiển gián tiếp 20 
1.10 Sơ đồ phương pháp điều khiển trực tiếp 21 
1.11 Sơ đồ cấu trúc BĐK PID dựa trên mạng BPNN 22 
1.12 Cấu trúc mạng nơ-ron lan truyền ngược 23 
1.13 Mô phỏng sự thay đổi của pK , iK và dK 24 
1.14 Mô phỏng hướng đi 25 
1.15 Sự thay đổi của góc bẻ lái 25 
1.16 Sơ đồ cấu trúc BĐK PID dựa trên mạng RBF 26 
1.17 Cấu trúc mạng nơ-ron RBF 27 
1.18 Hướng đi của tàu khi không có nhiễu 28 
1.19 Hướng đi của tàu khi có nhiễu 28 
1.20 Mô phỏng sự thay đổi của pK , iK và dK 29 
viii 
1.21 Các hệ tọa độ tham chiếu 30 
1.22 Hệ trục toạ độ và các đại lượng 32 
1.23 Các góc xoay Euler 35 
2.1 Sơ đồ nguyên lý BĐK PID nơ-ron lan truyền ngược 44 
2.2 Cấu trúc mạng nơ-ron lan truyền ngược 45 
2.3 Sơ đồ khối thuật toán điều khiển PID - BPNN 50 
2.4 
Sơ đồ nguyên lý BĐK PID nơ-ron NN1 với bộ nhận 
dạng nơ-ron NN2 
51 
2.5 Cấu trúc mạng nơ-ron nhận dạng NN2 51 
2.6 Mô hình đầu vào – đầu ra 53 
2.7 Cấu trúc nhận dạng song song 54 
2.8 Cấu trúc nhận dạng chuỗi song song 55 
3.1 Tốc độ gió V và hướng gió r 60 
3.2 
Hướng tàu và góc bẻ lái khi không có gió và nhiễu tác 
động 
65 
3.3 Sự thay đổi các tham số Kp, Ki và Kd 66 
3.4 
Sai số hướng đi, tốc độ và gia tốc quay trở hướng mũi 
tàu 
67 
3.5 Hướng đi và góc bẻ lái khi có gió và nhiễu tác động 68 
3.6 Sự thay đổi các tham số Kp, Ki và Kd 68 
3.7 
Sai số hướng đi, tốc độ và gia tốc quay trở hướng mũi 
tàu 
69 
3.8 
Hướng tàu và góc bẻ lái khi không có gió và nhiễu tác 
động 
71 
ix 
3.9 Sự thay đổi các tham số Kp, Ki và Kd 71 
3.10 Sai số hướng đi, tốc độ và gia tốc quay trở hướng tàu 72 
3.11 Đầu ra của bộ nhận dạng nơ-ron NN2 72 
3.12 Hướng tàu và góc bẻ lái khi có gió và nhiễu tác động 73 
3.13 Sự thay đổi các thông số Kp, Ki và Kd 74 
3.14 Sai số hướng đi, tốc độ và gia tốc quay trở hướng tàu 74 
3.15 Đầu ra của bộ nhận dạng nơ-ron NN2 75 
4.1 Quỹ đạo di chuyển mong muốn của con tàu 77 
4.2 Điều kiện thực nghiệm tàu mô hình trên thực tế 78 
4.3 Tàu mô hình 79 
4.4 
Sơ đồ khối hệ thống điều khiển hướng tàu sử dụng 
BĐK PID nơ-ron 
79 
4.5 Quỹ đạo của tàu với BĐK PID nơ-ron 80 
4.6 Sai số bám quỹ đạo của tàu với BĐK PID nơ-ron 81 
4.7 Sai số góc mũi tàu của tàu với BĐK PID nơ-ron 82 
4.8 Góc bánh lái với BĐK PID nơ-ron 83 
4.9 Góc mũi tàu với BĐK PID nơ-ron 84 
x 
DANH MỤC CÁC BẢNG 
Số bảng Tên bảng Trang 
1.1 Ký hiệu của SNAME (1950) đối với tàu biển 33 
3.1 
Tổng bình phương độ lệch hướng và tổng bình phương 
góc bẻ lái khi không có gió và nhiễu 
66 
3.2 
Tổng bình phương độ lệch hướng và tổng bình phương 
góc bẻ lái khi có nhiễu và gió 
69 
3.3 
Tổng bình phương độ lệch hướng và tổng bình phương 
góc bẻ lái khi không có nhiễu và gió 
73 
3.4 
Tổng bình phương độ lệch hướng và tổng bình phương 
góc bẻ lái khi có nhiễu và gió 
75 
1 
MỞ ĐẦU 
1. Tính cấp thiết của luận án 
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 tàu 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. 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 tàu thủy vẫn luôn là vấn đề thời sự cho các nhà nghiên cứu, bởi vì khi 
thiết kế bộ điều khiển cho tàu 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 tàu thủy đó. 
Thực tế, các tính năng động học của tàu thủy 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. Bản thân 
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 và yêu cầu phải có kỹ thuật điều khiển tiên tiến. 
Hiện nay, các nhà khoa học trong lĩnh vực này, đã 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 cơ bản sau: 
- Thứ nhất, cải tiến cấu trúc bộ điều khiển PID; 
- Thứ hai, 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à lý thuyết điều khiển thông minh khác với bộ điều khiển PID 
thông thường, nhằm đạt được chất lượng điều khiển mong muốn. 
Do vậy, 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  ...  độ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. 
 16/PL1 
Hình 1.9. Luật điều hướng LOS 
 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 con tàu đế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 nk 1p + trên đoạn thẳng quỹ đạo mà 
con tàu đang bám theo như hình 1.9. 
 Theo tài liệu [25] 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  = + (1.32) 
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 
n
k 1p + . 
p ka = (1.33) 
 ( )
( )
arctanr
e t
e
= − 
 (1.34) 
 17/PL1 
Trong đó là khoảng cách từ hình chiếu của điểm np (t) trên đoạn 
thẳng quỹ đạo mong muốn cho đến điểm chuyển hướng nk 1p + . 
Từ (1.31), (1.32) và (1.33) 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     = − = + − (1.35) 
Trong đó 
v
arcsin
U

= 
 là góc trượt của con tàu. Tuy nhiên vì v U 
nên ta có thể xtác giả như 0 . 
Khi đó, (1.35) được viết lại thành: 
 ( )d p r e  = + (1.36) 
1.2.4. Bán kính đường tròn giới hạn chuyển hướng tàu 
Trong quá trình bám theo đoạn quỹ đạo mong muốn, nếu như con tàu 
đi vào bên trong đường tròn giới hạn bán kính nR có tâm là điểm chuyển 
hướng ( )n nx , y thì hệ thống lựa chọn điểm chuyển hướng sẽ phát hiện và ra 
lệnh cho hệ thống dẫn đường (Guidance System) nhằm tính toán các thông số 
cần thiết giúp tàu chuyển hướng nhằm bám theo đoạn thẳng quỹ đạo mong 
muốn kế tiếp. Hay nói cách khác, lúc này điểm chuyển hướng có tọa độ 
( )n 1 n 1x , y+ + sẽ được chọn làm điểm chuyển hướng mong muốn tiếp theo mà con 
tàu cần hướng đến nếu tọa độ con tàu thỏa mãn điều kiện sau: 
( ) ( )
2 2 2
n n nx x t y y t R− + − (1.37) 
 Theo [25] thì bán kính nR có thể được như sau: 
Rn = 2LOA (1.38) 
Trong đó LOA là chiều dài toàn bộ của tàu như trong hình 1.10. 
 18/PL1 
Hình 1.10. Chiều dài toàn bộ LOA của con tàu 
 1/PL2 
PHỤ LỤC 2 
 MÃ CODE MATLAB CHO MÔ HÌNH TÀU MARINER 
function [xdot,U] = mariner(x,ui,U0) 
% [xdot,U] = mariner(x,ui) returns the speed U in m/s (optionally) and 
% the time derivative of the state vector: x = [ u v r x y psi delta n ]' 
% for the Mariner class vessel L = 160.93 m, where 
% u = pertubed surge velocity about Uo (m/s) 
% v = pertubed sway velocity about zero (m/s) 
% r = pertubed yaw velocity about zero (rad/s) 
% x = position in x-direction (m) 
% y = position in y-direction (m) 
% psi = pertubed yaw angle about zero (rad) 
% delta = actual rudder angle (rad) 
% The inputs are : 
% ui = commanded rudder angle (rad) 
% U0 = nominal speed (optionally). Default value is U0 = 7.7175 m/s = 
% 15 knots. 
% Reference: M.S. Chislett and J. Stroem-Tejsen (1965). Planar Motion 
%Mechanism Tests and Full-Scale Steering and Maneuvering Predictions for 
%a Mariner Class Vessel, 
%Technical Report Hy-5, Hydro- and Aerodynamics Laboratory, Lyngby, 
% Denmark. 
% Author: Trygve Lauvdal 
% Date: 12th May 1994 
% Revisions: 19th July 2001 (Thor I. Fossen): added input/ouput U0 and U, 
%changed order of x-vector 
% 20th July 2001 (Thor I. Fossen): replaced inertia matrix 
with correct values 
% 11th July 2003 (Thor I. Fossen): max rudder is changed from 
% 30 deg to 40 deg to satisfy IMO regulations for 35 deg rudder execute 
% Check of input and state dimensions 
if (length(x) ~= 7),error('x-vector must have dimension 7 !'); end 
if (length(ui) ~= 1),error('ui must be a scalar input!'); end 
if nargin==2, U0 = 7.7175; end 
% Normalization variables 
L = 160.93; 
 2/PL2 
U = sqrt((U0 + x(1))^2 + x(2)^2); 
% Non-dimensional states and inputs 
delta_c = -ui; % delta_c = -ui such that positive delta_c -> positive r 
u = x(1)/U; 
v = x(2)/U; 
r = x(3)*L/U; 
psi = x(6); 
delta = x(7); 
% Parameters, hydrodynamic derivatives and main dimensions 
delta_max = 40; % max rudder angle (deg) 
Ddelta_max = 5; % max rudder derivative (deg/s) 
m = 798e-5; 
Iz = 39.2e-5; 
xG = -0.023; 
Xudot = -42e-5; Yvdot = -748e-5; Nvdot = 4.646e-5; 
Xu = -184e-5; Yrdot =-9.354e-5; Nrdot = -43.8e-5; 
Xuu = -110e-5; Yv = -1160e-5; Nv = -264e-5; 
Xuuu = -215e-5; Yr = -499e-5; Nr = -166e-5; 
Xvv = -899e-5; Yvvv = -8078e-5; Nvvv = 1636e-5; 
Xrr = 18e-5; Yvvr = 15356e-5; Nvvr = -5483e-5; 
Xdd = -95e-5; Yvu = -1160e-5; Nvu = -264e-5; 
Xudd = -190e-5; Yru = -499e-5; Nru = -166e-5; 
Xrv = 798e-5; Yd = 278e-5; Nd = -139e-5; 
Xvd = 93e-5; Yddd = -90e-5; Nddd = 45e-5; 
Xuvd = 93e-5; Yud = 556e-5; Nud = -278e-5; 
 Yuud = 278e-5; Nuud = -139e-5; 
 Yvdd = -4e-5; Nvdd = 13e-5; 
 Yvvd = 1190e-5; Nvvd = -489e-5; 
 Y0 = -4e-5; N0 = 3e-5; 
 Y0u = -8e-5; N0u = 6e-5; 
 Y0uu = -4e-5; N0uu = 3e-5; 
% Masses and moments of inertia 
m11 = m-Xudot; 
m22 = m-Yvdot; 
 3/PL2 
m23 = m*xG-Yrdot; 
m32 = m*xG-Nvdot; 
m33 = Iz-Nrdot; 
% Rudder saturation and dynamics 
if abs(delta_c) >= delta_max*pi/180, 
 delta_c = sign(delta_c)*delta_max*pi/180; 
end 
delta_dot = delta_c - delta; 
if abs(delta_dot) >= Ddelta_max*pi/180, 
 delta_dot = sign(delta_dot)*Ddelta_max*pi/180; 
end 
% Forces and moments 
X = Xu*u + Xuu*u^2 + Xuuu*u^3 + Xvv*v^2 + Xrr*r^2 + Xrv*r*v + Xdd*delta^2 
+... 
 Xudd*u*delta^2 + Xvd*v*delta + Xuvd*u*v*delta; 
Y = Yv*v + Yr*r + Yvvv*v^3 + Yvvr*v^2*r + Yvu*v*u + Yru*r*u + Yd*delta + 
... 
 Yddd*delta^3 + Yud*u*delta + Yuud*u^2*delta + Yvdd*v*delta^2 + ... 
 Yvvd*v^2*delta + (Y0 + Y0u*u + Y0uu*u^2); 
N = Nv*v + Nr*r + Nvvv*v^3 + Nvvr*v^2*r + Nvu*v*u + Nru*r*u + Nd*delta + 
... 
 Nddd*delta^3 + Nud*u*delta + Nuud*u^2*delta + Nvdd*v*delta^2 + ... 
 Nvvd*v^2*delta + (N0 + N0u*u + N0uu*u^2); 
% Dimensional state derivative 
detM22 = m22*m33-m23*m32; 
xdot = [ X*(U^2/L)/m11 
 -(-m33*Y+m23*N)*(U^2/L)/detM22 
 (-m32*Y+m22*N)*(U^2/L^2)/detM22 
 (cos(psi)*(U0/U+u)-sin(psi)*v)*U 
 (sin(psi)*(U0/U+u)+cos(psi)*v)*U 
 r*(U/L) 
 delta_dot 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% END OF PROGRAM 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 1/PL3 
PHỤ LỤC 3 
 MÃ CODE MATLAB CHO BỘ ĐIỀU KHIỂN PID NƠ-RON LAN 
TRUYỀN NGƯỢC 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% PID control based on Back Propagation neuron network for Mariner Ship 
Heading Regulation 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% Simulation on computer 
% This control method uses NN1 for approximating the ship model, 
% and NN2 for outputing Kp, Ki, Kd (NN1 và NN2) 
% - MOMENTUM in learning is used for NN1 
% Author: NGUYEN PHUNG HUNG & VO HONG HAI 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
clc; 
clear; % Clear all variables in memory 
% The BPNN-PID Controller is of the form (4 - 5 - 3): 
% (4 input norons, 5 hidden norons, 3 output noron) 
IN = 6; H = 7; Out = 3; %NN Structure 
% Input layer consists of 4 norons with unity weights and zero bias, 
% include: reference course (psi_r), actual course(psi), actual course 
%(error) and d(error)/dt 
% Backpropagation algorithm: 
%delta(wij(k)) = - eta*(dEk/dwij)+alfa*delta(wij(k-1)) 
eta = 0.5; % learning rate 
alfa = 0.05;% momentum coefficient 
% We start executing the controller with ralative small weights: 
W21 = rands(H,IN)*0.00001; % Set random hidden layer weights 
W32 = rands(Out,H)*0.00001;% Set random output layer weights 
% x = [ u v r x y psi delta]' 
x = zeros(7,1); % Set initial state of the ship 
% delta=x(7); 
delta_1=0; 
delta_2=0; %rudder angle at k-1,..., k-5 
delta_3=0; 
 2/PL3 
psi_1=0; 
psi_2=0;% actual heading at k,k-1,.., k-3 
error_1=0; % heading error at k,k-1,..,k-3 
error_2=0; 
error_3=0; 
h=0.1; % Sampling time for integration (integration step size) 
k=1; % This is time's index (not time, its index). 
t=0; % Reset time to zero 
N = 150; 
%======================================================================== 
ro_w = 1.5; 
lamda_w = 1.5; 
beta_w = 0.3; 
kp_1 = 0; 
ki_1 = 0; 
kd_1 = 0; 
r = 0; 
d_psi_dot_1 =0; 
d_psi_dot_2 =0; 
psi_dot_1 =0; 
psi_dot_2 =0; 
psi_dot_3 =0; 
T = 10; 
rd_1 = 0; % Desired yaw rate calculated by reference model 
psi_d_1 = 0; 
Z_sum = 0; 
Z_psi_1=0; 
E1_1 = 0; 
E1_2 = 0; 
E1_3 = 0; 
net_in=zeros(IN,1); 
 3/PL3 
%----------------------- 
% For reference model: 
z = 1; % relative damping ratio 
w = 0.05; % natural frequency 
damper = 1; % nonlinear damping coeff. 
%----------------------- 
Twv = 50; % period of wind velocity 
Twd = 6; % period of wind direction 
U0 = 7.7175; % nominal speed. Default value is U0 = 7.7175 m/s = 15 
 % knots. 
U = U0; 
t_final = 9000; 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% START SIMULATION: 
% disp('Simulating PID based on BPNN') 
for k=1:t_final 
 t=k*h; 
% psi_r(k)=20*(pi/180); 
 % Firstly, we define the reference input psi_r (desired heading) 
 if t<300, psi_r(k) = 25*(pi/180); end % Desired heading is 20 deg 
 if t>=300, psi_r(k) = -25*(pi/180); end % Desired heading is -20 deg 
 if t>600, psi_r(k) = 25*(pi/180); end % Desired heading is 20 deg 
% Sensor noise for the heading 
% sensor with a uniform 
% distribution on[-0.01,+0.01] 
% deg. 
% s(k) = 0.01*(pi/180)*(2*rand - 1); 
 s(k) = 0; % This allow us to remove the noise 
 psi(k) = x(6) + s(k); % Heading of the ship with sensor noise 
 %r(k) = x(3); % This is pertubed yaw velocity about zero 
 % (rad/s) at time step k 
 delta_a(k) = x(7); 
%------------------------------------------- 
% Use reference model to produce desired heading psi_d(k). This is 
% reference model with nonlinear damping:(Fossen 2002) 
 psi_d_dot = rd_1; 
 rd_dot = w^2*(psi_r(k)-psi_d_1) - 2*z*w*rd_1 - 
damper*abs(rd_1)*rd_1; 
 rd(k) = rd_1 + h*rd_dot; 
 4/PL3 
 psi_d(k) = psi_d_1 + h*psi_d_dot; 
 %--------- wind -------------- 
 if Twv==50 
 Twv = 0; 
 if Twd==6 
 Twd = 0; 
 Windir = (180/pi)*(inf2ber(60*rand(1)*pi/180) + psi(k)); 
 end 
 Twd = Twd + 1; 
 [wind,V_w] = WindGen2(psi(k),Windir,U,h); 
 end 
 Twv = Twv + 1; 
 wdr(k) = Windir; wve(k) = V_w; 
%------------------------------ 
 error(k) = psi_d(k) - psi(k); % This is heading error 
 psi_dot(k) = psi(k)- psi_1; 
 d_psi_dot(k)= psi_dot(k) - psi_dot_1; 
% Z_psi(k) = h*(Z_psi_1 + error(k)); 
 Z_psi(k) = Z_psi_1 + error(k); 
 if k>=T+1 
 Z_sum = 0; 
 for ii=1:T 
 Z_sum = Z_sum + Z_psi(k-ii); 
 end 
 end 
%------------Output of NN------------------ 
Oi = mlnnc(Out,H,IN,net_in,W21,W32); 
kp(k) = 50*Oi(1); 
ki(k) = 10*Oi(2); 
kd(k) = 10*Oi(3); 
%------------------------------------------- 
%------PID Command-------------------------- 
delta(k) = delta_a(k) + (kp(k)+ki(k)+kd(k))*error(k)... 
 - (kp(k)+2*kd(k))*error_1... 
 + kd(k)*error_2; 
%------------------------------------------- 
 xx(1) = error_1; 
 xx(2) = error_2; 
 xx(3) = error_3; 
 5/PL3 
 xx(4) = error(k) - error_1; 
 xx(5) = error_1 - error_2; 
 xx(6) = error_2 - error_3; 
 net_in = [xx(1);xx(2);xx(3);xx(4);xx(5);xx(6)]; 
%------------------------------------------- 
E = [error(k) sign(Z_psi(k))*Z_psi(k) error(k)-error_1]; 
%-------------------------------------------------------------------- 
clc; 
fprintf('Simulating PID based on BPNN...please wait!\n*Counter = %d 
(%d)\n',k,t_final-k); 
%-------------------------------------------------------------------- 
 if delta(k)>= 35*(pi/180) %Restricting the output of controller 
 delta(k)=35*(pi/180); 
 end 
 if delta(k)<=-35*(pi/180) 
 delta(k)=-35*(pi/180); 
 end 
%-------------------------------------------------------------------- 
% Next we use 2nd order Euler method to calculate ship state: 
 [xdot,U] = mariner3(x,delta(k),U0,wind); 
% xdot = mariner(x,delta(k)); 
 x = euler2(xdot,x,h); % Calculated next state 
%================================================================= 
% NN Training 
Moment21 = alfa*W21; 
Moment32 = alfa*W32; 
[W21,W32] = bpnnTrain(h,eta,N,Out,H,IN,net_in,E,0,0,... 
 ro_w,lamda_w,beta_w); 
W21 = W21 + Moment21; 
W32 = W32 + Moment32; 
%------------------------------------------- 
%Parameters Update 
kp_1 = kp(k); 
ki_1 = ki(k); 
kd_1 = kd(k); 
% E1_3 = E1_2; 
% E1_2 = E1_1; 
% E1_1 = E1; 
 6/PL3 
delta_3 = delta_2; 
delta_2 = delta_1; 
delta_1 = delta(k); 
psi_2 = psi_1; 
psi_1 = psi(k); 
psi_dot_3=psi_dot_2; 
psi_dot_2=psi_dot_1; 
psi_dot_1=psi_dot(k); 
% Z_psi_1 = Z_psi(k); 
d_psi_dot_2 = d_psi_dot_1; 
d_psi_dot_1 = d_psi_dot(k); 
error_3 = error_2; 
error_2 = error_1; 
error_1 = error(k); 
psi_d_1 = psi_d(k); 
rd_1 = rd(k); 
time(k) = t; 
end 
% Squared sum of heading error and rudder angles 
E_psi = 0; 
E_rudder = 0; 
for i=1:k 
 E1(i) = (psi_d(i)-psi(i))^2; 
 E(i) = delta_a(i)^2; 
 E_psi = E_psi + E1(i); 
 E_rudder = E_rudder + E(i); 
end 
E_psi 
E_rudder 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% Plot the results: 
% Convert from radian to degree 
psi = psi*(180/pi); 
 7/PL3 
psi_r = psi_r*(180/pi); 
psi_d = psi_d*(180/pi); 
error = error*(180/pi); 
psi_dot = psi_dot*(180/pi); 
% psi_dot_hat = psi_dot_hat*(180/pi); 
d_psi_dot = d_psi_dot*(180/pi); 
delta = delta*(180/pi); 
%-------------------------------------------------------------------- 
figure(1); 
clf; 
subplot(211) 
plot(time,psi,'k-',time,psi_r,'k--',time,psi_d,'b:') 
title('Ship heading (solid) and desired ship heading (dashed),deg') 
legend('Ship heading','Reference heading',0) 
grid on 
subplot(212) 
plot(time,delta,'k-') 
title('Rudder angle (\delta),deg') 
grid on 
%-------------------------------------------------------------------- 
figure(2); 
clf; 
subplot(311); 
plot(time,kp,'r'); 
xlabel('time(s)');ylabel('kp'); 
title('KP') 
grid on 
subplot(312); 
plot(time,ki,'g'); 
xlabel('time(s)');ylabel('ki'); 
title('KI') 
grid on 
subplot(313); 
plot(time,kd,'b'); 
xlabel('time(s)');ylabel('kd'); 
title('KD') 
grid on 
%-------------------------------------------------------------------- 
figure(3) 
 8/PL3 
clf 
subplot(311) 
plot(time,error,'k-') 
title('Course error (deg)') 
grid on 
subplot(312) 
plot(time,psi_dot,'k-') 
title('Rate of turn (deg/s)') 
grid on 
subplot(313) 
plot(time,d_psi_dot,'k-') 
title('Turning accelarator (deg/s^2)') 
grid on 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
% END OF PROGRAM 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

File đính kèm:

  • pdfluan_an_nghien_cuu_ung_dung_bo_dieu_khien_pid_thich_nghi_dua.pdf
  • pdf2.BIA TOM TAT LUAN AN.pdf
  • pdf2.TOM TAT LUAN AN CAP TRUONG-VO HONG HAI-18.11.pdf
  • pdf3.THONG TIN TOM TAT LUAN AN-NCS. HAI.pdf