1. Trang chủ
  2. » Luận Văn - Báo Cáo

Lập trình tính toán tính năng tàu trên phần mềm rhinoceros

104 76 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 104
Dung lượng 2,82 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mọi kết quả nghiên cứu của đề tài “Lập trình tính toán tính năng tàu trên phần mềm Rhinoceros” chưa từng được công bố trong bất cứ công trình khoa học nào khác cho đến thời điểm này.. Ch

Trang 1

BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG

Trang 2

BỘ GIÁO DỤC ĐÀO TẠO TRƯỜNG ĐẠI HỌC NHA TRANG

Người hướng dẫn khoa học:

TS HUỲNH LÊ HỒNG THÁI

Chủ tịch Hội đồng:

TS HUỲNH VĂN VŨ

Phòng ĐT Sau Đại học:

KHÁNH HÒA - 2019

Trang 3

LỜI CAM ĐOAN Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi với sự hướng dẫn của thầy TS Huỳnh Lê Hồng Thái Mọi kết quả nghiên cứu của đề tài “Lập trình tính toán tính năng tàu trên phần mềm Rhinoceros” chưa từng được công bố trong bất cứ công trình khoa học nào khác cho đến thời điểm này

Khánh Hòa, ngày tháng năm 2019

Tác giả luận văn

Trần Văn Của

Trang 4

LỜI CẢM ƠN Sau thời gian thực hiện đề tài đến nay đã hoàn thành Trong suốt thời gian thực hiện, tôi xin gửi lời cảm ơn đến quý phòng ban Trường Ðại học Nha Trang, Khoa Kỹ thuật giao thông, Khoa Sau đại học đã tạo điều kiện tốt nhất cho tôi được hoàn thành

đề tài này Ðặc biệt tôi xin cảm ơn thầy TS Huỳnh Lê Hồng Thái đã trực tiếp giúp đỡ, hướng dẫn tôi trong suốt thời gian thực hiện đề tài

Cuối cùng tôi xin gửi lời cảm ơn chân thành đến gia đình và tất cả bạn bè đã giúp

đỡ, động viên tôi trong suốt quá trình học tập và thực hiện đề tài

Mặc dù tôi đã nỗ lực cố gắng để hoàn thành tốt đề tài, nhưng do trình độ chuyên môn còn hạn chế nên thiếu sót là điều khó tránh khỏi, rất mong được sự đánh giá góp ý của quý thầy cô

Tôi xin chân thành cảm ơn!

Khánh Hòa, ngày tháng năm 2019

Tác giả luận văn

Trần Văn Của

Trang 5

MỤC LỤC

LỜI CAM ĐOAN iii

LỜI CẢM ƠN iv

MỤC LỤC v

DANH MỤC KÝ HIỆU viii

DANH MỤC CHỮ VIẾT TẮT xi

DANH MỤC BẢNG xii

DANH MỤC HÌNH xiv

TRÍCH YẾU LUẬN VĂN xvi

LỜI NÓI ĐẦU 1

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 2

1.1GIỚITHIỆUĐỀTÀI 2

1.2.TÌNHHÌNHNGHIÊNCỨUTRONGVÀNGOÀINƯỚC 3

1.2.1 Tình hình nghiên cứu trên thế giới 3

1.2.2 Tình hình nghiên cứu trong nước 4

1.3MỤCTIÊU,ĐỐITƯỢNGVÀPHẠMVINGHIÊNCỨU 5

1.3.1 Mục tiêu nghiên cứu 5

1.3.2 Đối tượng, phạm vi nghiên cứu 5

1.3.2.1 Đối tượng nghiên cứu 5

1.3.2.2 Phạm vi nghiên cứu 5

1.4PHƯƠNGPHÁPNGHIÊNCỨU 6

1.5ÝNGHĨAKHOAHỌCVÀTHỰCTIỄN 6

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 7

2.1NGÔNNGỮLẬPTRÌNHCHORHINOCEROS 7

2.1.1 Ngôn ngữ lập trình VBScript 7

2.1.2 Các kiểu dữ liệu 8

2.1.3 Các toán tử trong VBScript 9

2.1.4 Các cấu trúc điều kiện 10

2.1.4.1 Lệnh If 10

2.1.4.2 Lệnh Case 11

2.1.5 Câu lệnh lặp 12

Trang 6

2.1.5.1 For Next 12

2.1.5.2 Do … Loop 12

2.1.6 Thủ tục (Procedure) 13

2.1.6.1 Sub Procedure 14

2.1.6.2 Function Procedure (Hàm) 14

2.2TÍNHTOÁNTÍNHNĂNG 14

2.2.1 Khai báo dữ liệu đầu vào 15

2.2.2 Tính toán thủy tĩnh 19

2.2.2.1 Đọc dữ liệu 23

2.2.2.2 Tạo mặt đường nước 23

2.2.2.3 Xác định các yếu tố mặt đường nước 24

2.2.2.4 Tạo khối 3D phần chìm thân tàu 26

2.2.2.5 Xác định các yếu tố thể tích 28

2.2.2.6 Xây dựng dữ liệu, vẽ đồ thị và xuất kết quả 30

2.2.3 Tính toán Bonjean 33

2.2.3.1 Đọc dữ liệu 35

2.2.3.2 Tạo mặt sườn và tạo mặt đường nước 35

2.2.3.3 Xác định phần chìm mặt sườn 36

2.2.3.4 Xác định yếu tố Bonjean theo đường nước và mạn tàu 37

2.2.4 Tính toán Pantokaren 38

2.2.5 Tính toán ổn định tàu thủy 46

2.2.5.1 Ổn định ban đầu 47

2.2.5.2 Ổn định ở góc nghiêng lớn 48

2.2.5.3 Ổn định động 49

CHƯƠNG 3: KẾT QUẢ NGHIÊN CỨU 51

3.1CHƯƠNGTRÌNHTÍNHTOÁNTÍNHNĂNG 51

3.1.1 Tổng quan về chương trình 51

3.1.2 Trình tự sử dụng chương trình 52

3.2KẾTQUẢCHẠYCHƯƠNGTRÌNH 52

3.2.1 Mẫu tàu số 1 52

3.2.1.1 Tính toán thủy tĩnh mẫu tàu số 1 53

3.2.1.2 Tính toán Bonjean mẫu tàu số 1 54

Trang 7

3.2.1.3 Tính toán ổn định ban đầu mẫu tàu số 1 57

3.2.1.4 Tính toán Pantokaren mẫu tàu số 1 58

3.2.1.5 Tính toán ổn định mẫu tàu số 1 59

3.2.1.6 So sánh kết quả tính với phần mềm DelftShip và Maxsurf 65

3.2.2 Mẫu tàu số 2 68

3.2.2.1 Tính toán thủy tĩnh mẫu tàu số 2 69

3.2.2.2 Tính toán Bonjean mẫu tàu số 2 70

3.2.2.3 Tính toán ổn định ban đầu mẫu tàu số 2 72

3.2.2.4 Tính toán Pantokaren mẫu tàu số 2 74

3.2.2.5 Tính toán ổn định mẫu tàu số 2 74

3.3.2.6 So sánh kết quả tính toán với phần mềm Maxsurf 80

CHƯƠNG 4: KẾT LUẬN VÀ ĐỀ XUẤT 84

4.1KẾTLUẬN 84

4.1.1 Ưu điểm 85

4.1.2 Nhược điểm 85

4.2ĐỀXUẤT 85

TÀI LIỆU THAM KHẢO 87

Trang 8

DANH MỤC KÝ HIỆU

Lmax: Chiều dài tàu lớn nhất

Bmax: Chiều rộng tàu lớn nhất

H: Chiều cao mạn tàu

L: Chiều dài tàu

B: Chiều rộng tàu

Lf: Chiều dài đường nước

Bf: Chiều rộng đường nước

d: Chiều chìm trung bình

D: Lượng chiếm nước

V: Thể tích chiếm nước

Sf: Diện tích mặt đường nước

Xf: Hoành độ tâm diện tích mặt đường nước

XB: Hoành độ tâm nổi

ZB: Cao độ tâm nổi

Ix: Mômen quán tính riêng của diện tích mặt đường nước lấy đối với trục dọc

Iy: Mômen quán tính riêng của diện tích mặt đường nước lấy đối với trục ngang

SB: Diện tích mặt biên của mặt đường nước

VB: Thể tích hộp biên của phần chìm tàu

ω: Diện tích mặt cắt ngang

Trang 9

Mω: Mô men diện tích mặt cắt ngang

Zω: Cao độ trọng tâm diện tích mặt cắt ngang f: Hàm số

φ: Góc nghiêng ngang

ψ: Góc nghiêng dọc

G: Trọng tâm tàu

XG: Hoành độ trọng tâm tàu

ZG: Cao độ trọng tâm tàu

S: Diện tích hứng gió của cabin

AV: Diện tích hứng gió của tàu

PV: Áp lực gió

ZV: Chiều cao tâm hứng gió

MV: Mô men nghiêng do gió

θr, θ1r: Góc lắc

θf: Góc vào nước

lw1: Tay đòn nghiêng do gió

lw2: Tay đòn nghiêng do gió giật

T: Chu kỳ lắc

Ak: Diện tích vây giảm lắc

Tm: Chiều chìm mũi tàu

Trang 10

B’: Tâm nổi khi tàu nghiêng

Mhp: Mô men hồi phục

Lφ = GZ : Cánh tay đòn ổn định tĩnh

GM = ho : Chiều cao tâm nghiêng ngang ban đầu

KG = ZG : Chiều cao trọng tâm tàu so với mặt phẳng qua đáy tàu

KB = ZB : Chiều cao tâm nổi khi tàu không nghiêng

BM = r0 : Bán kính tâm nghiêng ngang khi tàu không nghiêng

BR = Lk : Cánh tay đòn ổn định hình dáng

LG: Cánh tay đòn ổn định trọng lượng

KG = ZG: Cao độ trọng tâm tàu

Ahp: Công của mô men hồi phục

Trang 11

DANH MỤC CHỮ VIẾT TẮT 2D: Two Dimensions (Hai chiều)

3D: Three Dimensions (Ba chiều)

3D Solid: Three Dimensions Solid (Vật rắn ba chiều)

CAD: Computer – Aided Design (Thiết kế với sự hỗ trợ của máy tính)

Rhino: Rhinoceros (Phần mềm Rhinoceros)

NURBS: Non-uniform rational B-spline (Mô hình toán học được sử dụng trong

kĩ thuật đồ họa máy tính để biểu diễn đường cong và bề mặt.)

Trang 12

DANH MỤC BẢNG

Bảng 2.1 Mô tả các kiểu dữ liệu 8

Bảng 2.2 Toán tử số học 9

Bảng 2.3 Toán tử logic 9

Bảng 2.4 Toán tử so sánh 10

Bảng 2.5 Thông số tàu 15

Bảng 2.6 Thông số trường hợp tải trọng 16

Bảng 2.7 Dữ liệu yêu cầu cho kiểm tra ổn định thời tiết 16

Bảng 3.1 Kết quả tính toán thủy tĩnh mẫu tàu số 1 53

Bảng 3.2 Kết quả tính toán Bonjean mẫu tàu số 1 54

Bảng 3.3 Thông số các trường hợp tải mẫu tàu số 1 57

Bảng 3.4 Kết quả tính toán ổn định ban đầu mẫu tàu số 1 57

Bảng 3.5 Bảng tính Pantokaren mẫu tàu số 1 58

Bảng 3.6 Dữ liệu yêu cầu cho kiểm tra ổn định thời tiết mẫu tàu số 1 59

Bảng 3.7 Bảng tính cánh tay đòn ổn định mẫu tàu số 1 60

Bảng 3.8 Bảng tính ổn định theo tiêu chuẩn thời tiết mẫu tàu số 1 61

Bảng 3.9 Bảng kiểm tra ổn định theo tiêu chuẩn đồ thị mẫu tàu số 1 62

Bảng 3.10 So sánh kết quả tính toán thủy tĩnh mẫu tàu số 1 65

Bảng 3.11 So sánh tính ổn định mẫu tàu số 1 67

Bảng 3.12 Kết quả tính toán thủy tĩnh mẫu tàu số 2 69

Bảng 3.13 Kết quả tính toán Bonjean mẫu tàu số 2 70

Bảng 3.14 Thông số các trường hợp tải mẫu tàu số 2 72

Bảng 3.15 Kết quả tính toán ổn định ban đầu mẫu tàu số 2 73

Bảng 3.16 Bảng tính Pantokaren mẫu tàu số 2 74

Bảng 3.17 Dữ liệu yêu cầu cho kiểm tra ổn định thời tiết mẫu tàu số 2 74

Trang 13

Bảng 3.18 Bảng tính cánh tay đòn ổn định mẫu tàu số 2 75

Bảng 3.19 Bảng tính ổn định theo tiêu chuẩn thời tiết mẫu tàu số 2 76

Bảng 3.20 Bảng kiểm tra ổn định theo tiêu chuẩn đồ thị mẫu tàu số 2 77

Bảng 3.21 So sánh kết quả thủy tĩnh mẫu tàu số 2 80

Bảng 3.22 So sánh kết quả ổn định mẫu tàu số 2 81

Trang 14

DANH MỤC HÌNH

Hình 2.1 Giao diện RhinoScriptEditor [12] 8

Hình 2.2 Hệ tọa độ thân tàu 14

Hình 2.3 Mô hình 3D vỏ tàu 15

Hình 2.4 Xác định các yếu tố mặt đường nước 19

Hình 2.5: Cách xác định các yếu tố mặt cắt ngang 21

Hình 2.6 Sơ đồ khối tính toán các yếu tố thủy tĩnh 22

Hình 2.7 Kết quả tạo mặt phẳng đường nước 24

Hình 2.8 Khối hộp 3D bao phủ phần nổi thân tàu 27

Hình 2.9 Phần chìm thân tàu 28

Hình 2.10 Đồ thị thủy tĩnh 32

Hình 2.11: Xác định các yếu tố mặt cắt ngang 33

Hình 2.12 Sơ đồ khối tính toán Bonjean 34

Hình 2.13 Mặt phẳng sườn 36

Hình 2.14 Mặt phẳng phần chìm của sườn 37

Hình 2.15 Đồ thị Bonjean 38

Hình 2.16 Sơ đồ khối tính toán các yếu tố của đồ thị trung gian 39

Hình 2.17 Mô hình tàu nghiêng ngang góc φ 40

Hình 2.18 Khối hộp 3D bao phủ phần nổi thân tàu nghiêng ngang 41

Hình 2.19 Phần chìm thân tàu nghiêng ngang 42

Hình 2.20 Các trạng thái nghiêng cùng góc φ 43

Hình 2.21 Đồ thị trung gian 43

Hình 2.22 Cánh tay đòn hình dáng Lk 43

Hình 2.23 Sơ đồ khối tính toán patokaren 44

Trang 15

Hình 2.24 Đồ thị Pantokaren 46

Hình 2.25 Ổn định ban đầu 47

Hình 2.26 Xác định cánh tay đòn ổn định tại góc nghiêng lớn 48

Hình 2.27 Đồ thị ổn định tĩnh 49

Hình 2.28 Đồ thị ổn định tĩnh và đồ thị ổn định động 50

Hình 3.1 Tuyến hình mẫu tàu số 1 53

Hình 3.2 Đồ thị thủy tĩnh mẫu tàu số 1 54

Hình 3.3 Đồ thị Bonjean mẫu tàu số 1 56

Hình 3.4 Đồ thị Pantokaren mẫu tàu số 1 59

Hình 3.5 Đồ thị ổn định TH1 mẫu tàu số 1 62

Hình 3.6 Đồ thị ổn định TH2 mẫu tàu số 1 63

Hình 3.7 Đồ thị ổn định TH3 mẫu tàu số 1 63

Hình 3.8 Đồ thị ổn định TH4 mẫu tàu số 1 64

Hình 3.9 Đồ thị ổn định TH5 mẫu tàu số 1 64

Hình 3.10 Tuyến hình mẫu tàu số 2 69

Hình 3.11 Đồ thị thủy tĩnh mẫu tàu số 2 70

Hình 3.12 Đồ thị Bonjean mẫu tàu số 2 72

Hình 3.13 Đồ thị Pantokaren mẫu tàu số 1 74

Hình 3.14 Đồ thị ổn định TH1 mẫu tàu số 2 77

Hình 3.15 Đồ thị ổn định TH2 mẫu tàu số 2 78

Hình 3.16 Đồ thị ổn định TH3 mẫu tàu số 2 78

Hình 3.17 Đồ thị ổn định TH4 mẫu tàu số 2 79

Hình 3.18 Đồ thị ổn định TH5 mẫu tàu số 2 79

Trang 16

TRÍCH YẾU LUẬN VĂN

Tự động hóa tính toán tính năng tàu thủy là một trong những vấn đề đã và đang được quan tâm nghiên cứu rộng rãi nhằm mục đích phục vụ tốt hơn cho việc tính toán thiết kế tàu và công tác đào tạo Rhinoceros (Rhino) là một phần mềm thương mại đơn

lẻ, là một công cụ mô hình hóa 3D dựa trên nền tảng NURBS [15] Phần mềm đang được phần lớn sinh viên và các công ty thiết kế tàu sử dụng nhưng chưa thể tự động hóa tính toán tính năng tàu Đề tài: “Lập trình tính toán tính năng tàu trên phần mềm Rhinoceros” được đề xuất không ngoài mục đích nói trên

Mục tiêu của đề tài là lập trình tính toán tính năng tàu thủy trên phần mềm Rhinoceros bằng ngôn ngữ RhinoScript đảm bảo độ chính xác cần thiết

Kết quả nghiên cứu đạt được của đề tài là chương trình tính toán tính năng tàu dùng cho phần mềm Rhino Qua những phân tích, so sánh, đánh giá có thể khẳng định chương trình tính toán tính năng tàu trên phần mềm Rhino là một chương trình tính toán tính năng mới, hợp lý mang lại kết quả đáng tin cậy Tuy nhiên để hoàn thiện hơn

có thể thêm phần tự động xây dựng mô hình vỏ tàu 3D

Bố cục của luận văn được chia làm bốn chương

Chương 1: Giới thiệu tổng quan về đề tài, tình hình nghiên cứu trong và ngoài nước Chương 2: Trình bày cơ sở lý thuyết của phương pháp tính toán tính năng tàu trên phần mềm Rhino và ngôn ngữ lập trình cho phần mềm Rhino

Chương 3: Trình bày kết quả nghiên cứu bao gồm các mô đun tính toán tính nổi

và tính ổn định của chương trình tính toán tính năng tàu trên phần mềm Rhino, thực hiện tính toán với mẫu tàu cụ thể và đi so sánh kết quả tính toán của chương trình với phần mềm DelftShip và Maxsurft

Chương 4: Trình bày những kết luận và khuyến nghị

Từ khóa:

“Tính toán tính năng tàu”

“Phần mềm Rhinoceros”

“Lập trình RhinoScript”

Trang 17

LỜI NÓI ĐẦU Ngành công nghiệp đóng tàu Việt Nam đang phát triển mạnh mẽ và ngày càng khẳng định vị thế trên thế giới Để có được kết quả này, các khâu từ thiết kế sơ bộ, thiết kế kỹ thuật, thiết kế công nghệ, nhà máy đóng tàu không ngừng cải tiến Các khâu điều có các đặc thù riêng và đóng vai trò quan trọng trong toàn bộ quá trình sản xuất một con tàu Trong quá trình thực hiện khâu thiết kế kỹ thuật, nhiệm vụ đặt ra là phải khẳng định các kết quả thiết kế đạt được các mục đích cần thiết của con tàu, đảm bảo các tính năng hàng hải cần thiết Để trợ giúp cho công việc tính toán thiết kế này, hiện nay có rất nhiều phần mềm thiết kế chuyên dụng như AutoShip, Maxsurf Trong thiết kế tàu, toàn bộ cả quá trình thiết kế kỹ thuật khá tốn thời gian Vì vậy, nhu cầu tự động hóa cho quá trình này rất cần thiết

Ngoài ra, Rhino là một phần mềm thương mại đơn lẻ, là một công cụ mô hình hóa 3D dựa trên nền tảng NURBS Phần mềm này thường được sử dụng cho thiết kế

mỹ thuật, tàu thủy, đồ trang sức, thiết kế ôtô… bởi tính năng xây dựng mô hình tương đối dễ dàng và được phần lớn sinh viên và các công ty thiết kế tàu sử dụng Hơn nữa, bản thân phần mềm Rhino không hỗ trợ các công cụ tính toán tính năng tàu thủy, nhưng nó lại hỗ trợ các ngôn ngữ lập trình như Rhinoscript, PythonScript Nhờ vậy, có thể xây dựng được các chương trình tính toán một cách tự động, nhanh chóng và chính xác hơn Từ thực tế đó tôi lựa chọn thực hiện đề tài: “Lập trình tính toán tính năng tàu trên phần mềm Rhinoceros” Mục tiêu chính của đề tài là lập trình tính toán tính năng tàu chạy trên phần mềm Rhinoceros

Đề tài được chia làm các chương:

Chương 1: Tổng quan về đề tài

Chương 2: Cơ sở lý thuyết

Chương 3: Kết quả nghiên cứu

Chương 4: Thảo luận kết quả và kết luận

Trần Văn Của

Trang 18

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI

1 1 GIỚI THIỆU ĐỀ TÀI

Như đã biết, thiết kế đường hình tàu và tính toán tính năng hàng hải cần thiết của tàu là một công việc hết sức khó khăn, phức tạp, khối lượng công việc rất lớn và đòi hỏi sự chính xác cao Từ khi ra đời, thiết kế tàu không ngừng phát triển, trong chừng mực nhất định luôn có sự hỗ trợ có hiệu quả của các phương pháp tính và đặc biệt công cụ đắc lực nhất là máy tính Những phương pháp số được đưa vào giải quyết các bài toán thiết kế tàu cho kết quả chính xác hơn, tốc độ xử lý công việc nhanh hơn Nhưng hầu hết các phương pháp đều sử dụng dữ liệu từ bản vẽ đường hình 2D, áp dụng các phép tính tích phân gần đúng nên độ chính xác của kết quả tính cần phải được đánh giá Tiến tiếp trên con đường phát triển này là phương pháp tính toán dựa trên mô hình vận rắn 3D và tự động hóa tính toán, thiết kế đang dần được ưu tiên nghiên cứu hàng đầu Mô hình vật rắn 3D kết hợp với tự động hóa thiết kế tàu làm cho công việc thiết kế, tính toán trở nên dễ dàng hơn, chính xác hơn và thời gian giải quyết công việc rút ngắn lại nhiều lần so với cách làm trước nay

Hiện nay, phần lớn các phần mềm thiết kế tàu như AutoShip, Maxsurf, DelfShip, Napa, Solidworks… cho phép người sử dụng hoàn thiện các tính toán thiết kế của mình một cách bán tự động, nghĩa là sau khi tính toán thiết kế trên các phần mềm cần phải qua giai đoạn xử lý các số liệu kết quả từ các phần mềm theo quy định của đăng kiểm

Rhino là một phần mềm đơn lẻ, là một công cụ mô hình hóa 3D dựa trên nền tảng NURBS, được phát triển bởi Robert McNeel và những người cộng tác Phần mềm này thường được sử dụng cho thiết kế mỹ thuật, tàu thủy, đồ trang sức, ôtô[13]…Rhino trở nên phổ biến nhờ tính đa dạng của nó, có khả năng nhập xuất hơn

30 định dạng dữ liệu từ đó cho phép Rhino làm việc như một trình chuyển đổi giữa các phần mềm trong quá trình thiết kế Rhino chuyên về tạo mô hình bằng bề mặt NURBS

tự do Các công cụ phụ trợ được phát triển bởi McNeel bao gồm Flamingo (công cụ dựng hình Raytrace), Penguin (dựng hình kiểu vẽ tay), và Bongo (công cụ đồ họa) Đặc biệt Rhino là một phần mềm với mã nguồn mở cho phép phát triển bởi phía thứ

Trang 19

ba Giống như nhiều phần mềm khác, Rhino cũng có tính năng cho phép lập trình dựa trên cơ sở ngôn ngữ Visual Basic và một bộ công cụ phát triển phần mềm SDK [17] cho phép đọc và viết file Rhino một cách trực tiếp Hiện nay, các mô đun thiết kế tàu xây dựng cho phần mềm Rhino đã được các công ty thiết kế tàu sử dụng như Orca3D, Seanaptic nhưng lại có một số nhược điểm như sau:

+ Giá thành cho các mô đun này tương đối cao không những vượt xa khả năng của sinh viên, và một số công ty thiết kế tàu

+ Các mô đun này thường được thiết kế, kiểm tra tính toán theo các tiêu chuẩn nước ngoài nên trong nhiều trường hợp kết quả tính toán cần phải được kiểm tra lại một lần nữa theo các quy định của đăng kiểm Việt Nam

Ngoài ra trong thực tế chuyên môn, hầu hết quá trình tính toán tính năng tàu thủy điều bắt đầu từ việc xây dựng mô hình tàu 3D trên phần mềm Rhino Nhưng hiện tại Rhino chỉ mới đáp ứng được việc xây dựng tuyến hình còn phần tính toán tính năng tàu thì phải nhờ đến phần mềm khác như Autoship, Maxsurf

Từ những lý do đó, tôi mạnh dạn chọn đề tài “ Lập trình tính toán tính năng tàu thủy trên phần mềm Rhinoceros” Trong đề tài này tôi tiến hành nghiên cứu các thuật toán tính toán tính năng tàu thủy và lập trình tính toán năng tàu thủy trên phần mềm Rhino

1.2 TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGOÀI NƯỚC

1.2.1 Tình hình nghiên cứu trên thế giới

Liên quan đế vấn đề này, hiện nay trên thế giới cũng có nhiều chương trình, các

mô đun thiết kế tàu xây dựng cho phần mềm Rhino đã được các công ty thiết kế tàu sử dụng như Orca3D, Seanaptic

Orca3D là một gói Plug-in bên lĩnh vực hàng hải dành cho Rhino, được xây dựng

và phát triển bởi một nhóm kiến trúc sư hải quân Orca3D cung cấp các công cụ hỗ trợ trong việc thiết kế tàu như thiết kế vỏ tàu và làm trơn mịn, tính toán thủy tĩnh, ổn định, sức cản, lựa chọn công suất máy, tính toán khối lượng vỏ tàu và dự toán giá thành [14]

Seanaptic cũng là một gói Plug-in cho Rhino, bản quyền thuộc về công ty Seanaptic tại Barcelona Nó cung cấp các công cụ mô hình hóa, ước tính khối lượng và

Trang 20

tính toán tọa độ trọng tâm vỏ tàu Đây là gói phần mềm chuyên bên lĩnh vực kết cấu tàu thủy [15]

Sau khi tìm hiểu, tôi nhận thấy các chương trình, mô đun này có đặc điểm như sau:

+ Công việc tính toán tính năng tàu trên các mô đun này điều được thực hiện qua các bước khá phức tạp, đòi hỏi người sử dụng phải có trình độ chuyên môn

+ Các phương pháp và thuật toán được xây dựng bên trong các chương trình, mô đun này điều được đóng gói chỉ cho phép người dùng sử dụng, người dùng không thể can thiệp sâu vào nội dung bên trong

Vì thế, theo ý kiến riêng tôi, việc tìm hiểu các chương trình, mô đun này để phục

vụ nghiên cứu, học tập, giảng dạy và thiết kế, tính toán tính năng tàu ở nước ta là còn nhiều hạn chế, khó khăn và tốn kém

1.2.2 Tình hình nghiên cứu trong nước

Như đã trình bày ở trên, hiện nay ở Việt Nam phần mềm có kỹ thuật vẽ đơn giản như Rhinoceros đang được phần lớn sinh viên và các công ty thiết kế vừa và nhỏ sử dụng Nhưng sau khi vẽ mô hình tàu trên những phần mềm này cần phải xuất qua một phần mềm khác như Autoship, Maxsurf để tính toán tính năng

Trong nước có các chương trình tự động vẽ tuyến hình tàu, tính toán tính năng tàu, một số thuật toán đã được nghiên cứu và ứng dụng như kết quả nghiên cứu của PGS.TS Trần Gia Thái, thông qua đề tài cấp Bộ “Tự động hóa thiết kế đường hình tàu đáp ứng nhu cầu đa dạng tàu nghề cá Việt Nam”[11] trong đó đã công bố phần mềm cho phép thiết kế đường hình cũng như tính toán tính năng của các mẫu tàu cá Việt Nam Kết quả nghiên cứu của Bùi Công Lộc với đề tài “Viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu khác nhau theo mẫu truyền thống tỉnh Ninh Thuận” [7], nhưng nhìn chung đa phần được viết bằng ngôn ngữ Autolisp ứng dụng cho phần mềm Autocad và sử dụng dữ liệu từ bản vẽ 2D nên các kết quả tính toán phần nào sẽ còn sai số và một hạn chế nữa là các nghiên cứu này là bị giới hạn trong một số mẫu tàu cá nhất định

Gần đây, Tác giả Nguyễn Xuân Hải, đã nghiên cứu đề tài “Nghiên cứu tính toán tay đòn ổn định tĩnh tàu thủy theo mô hình vật rắn 3D” Kết quả nghiên cứu này là một

Trang 21

phương pháp mới, hợp lý có độ tin cậy trong việc tính toán cánh tay đòn ổn định tàu thủy theo mô hình vật rắn 3D, đã góp phần hạn chế những sai số cho những phương pháp tính toán truyền thống từ trước [8] Hạn chế của phương pháp này khó lập trình

tự động hóa tính toán nên khi sử dụng phương pháp này trong thiết kế tính toán tính năng tàu vẫn còn khá tốn thời gian

Tác giả Nguyễn Công Chánh đã thực hiện đề tài “Nghiên cứu sử dụng ngôn ngữ lập trình RhinoScript vẽ hệ lái tàu cá theo các thông số cho trước” [9] Kết quả của đề tài, khẳng định rằng có thể sử dụng ngôn ngữ lập trình RhinoScript để lập trình tính toán tính năng tàu thủy trên phần mềm Rhino

Nhìn chung hiện tại, trong nước vẫn chưa có công trình nghiên cứu chính thức nào liên quan đến vấn đề về tự động hóa tính toán tính năng tàu bằng ngôn ngữ RhinoScript

1.3 MỤC TIÊU, ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

1.3.1 Mục tiêu nghiên cứu

Mục tiêu chung của đề tài là lập trình tính toán tính năng tàu thủy trên phần mềm Rhino bằng ngôn ngữ RhinoScript đảm bảo độ chính xác cần thiết, cụ thể như sau: + Xây dựng chương trình tính toán thủy tĩnh

+ Xây dựng chương trình tính toán Bonjean

+ Xây dựng chương trình tính toán ổn định

1.3.2 Đối tượng, phạm vi nghiên cứu

1.3.2.1 Đối tượng nghiên cứu

Đề tài chủ yếu nghiên cứu các thuật toán và chương trình tính toán tính năng tàu thủy

1.3.2.2 Phạm vi nghiên cứu

Trong thời gian nghiên cứu cho phép, tôi dự kiến viết chương trình thực hiện một

số nội dung sau:

- Tính toán tính nổi tàu thủy

- Tính toán Bonjean

Trang 22

- Tính toán tính ổn định tàu thủy

- Kiểm tra ổn định theo các tiêu chuẩn của đăng kiểm

1.4 PHƯƠNG PHÁP NGHIÊN CỨU

Đề tài được nghiên cứu dựa trên cơ sở lý thuyết được trang bị tại Trường Đại học Nha Trang, kết hợp với yêu cầu quy định của đăng kiểm Việt Nam và tìm hiểu phân tích mối liên hệ giữa việc tính toán tính năng tàu và ngôn ngữ lập trình trên phần mềm Rhino bao gồm những phương pháp sau:

+ Phương pháp lý thuyết

+ Phương pháp thực nghiệm

Dựa vào các kết quả từ phần mềm Maxsurf và DelftShip đã được đăng kiểm phê duyệt để so sánh và đánh giá

1.5 Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN

Kết quả nghiên cứu của đề tài bước đầu có những đóng góp quan trọng nhất định

cả về mặt khoa học và thực tiễn, cụ thể như sau:

Trang 23

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT 2.1 NGÔN NGỮ LẬP TRÌNH CHO RHINOCEROS

2.1.1 Ngôn ngữ lập trình VBScript

Rhino là một phần mềm đồ họa CAD và 3D được phát triển bởi Robert McNeel

& Associates, một công ty tư nhân được thành lập vào năm 1980 Rhino được phát triển theo thuật toán NURBS, thuật toán tập trung vào việc trình bày chính xác các đường cong và bề mặt tự do toán học trong đồ họa máy tính [13]

RhinoScript là một công cụ soạn thảo kịch bản được sử dụng để thêm chức năng cho Rhino Nó dựa trên ngôn ngữ VBScript (Visual Basic Scripting Edition) của Microsoft VBScript là tập hợp con nghiêm ngặt của ngôn ngữ Visual Basic, được ứng dụng phổ biến trong Microsoft Excel, Microsoft Access, Microsoft Project và hệ thống phát triển Visual Basic Tuy nhiên, nó sẽ được thêm các hàm để phù hợp với phần mềm Rhino Khi Rhino nhận các lệnh RhinoScript thì nó sẽ chuyển lệnh này đến trình biên dịch của RhinoScript, các dòng text ứng với các lệnh của Rhino thì chúng sẽ đánh giá và thi hành lệnh như mong muốn

VBScript chỉ có một kiểu khai báo dữ liệu duy nhất được gọi là biến (Variant) [6] Biến thể là một loại dữ liệu đặc biệt có thể chứa các loại thông tin khác nhau, tùy thuộc vào cách sử dụng Bởi vì biến là kiểu dữ liệu duy nhất trong VBScript, nó cũng

là kiểu dữ liệu được trả về bởi tất cả các hàm trong VBScript Đơn giản nhất, một biến thể có thể chứa thông tin số hoặc chuỗi Biến thể hoạt động như một số khi nó được sử dụng nó trong ngữ cảnh số và dưới dạng chuỗi khi sử dụng nó trong ngữ cảnh chuỗi

Để viết một đoạn RhinoScript chúng ta có thể sử dụng các chương trình soạn thảo như: Notepad, Microsoft Word, nhưng việc tìm kiếm lỗi và nhận dạng biến rất khó khăn Vì vậy để khắc phục điều đó Rhino cung cấp môi trường lập trình RhinoScriptEditor như hình 2.1, môi trường này giúp viết và gỡ rối chương trình RhinoScript cũng như cho phép liên kết trực tiếp với Rhino để chạy thử chương trình

Trang 24

Hình 2.1 Giao diện RhinoScriptEditor [12]

Trong VBScript, để thực hiện một lệnh bất kỳ nào đó trong phần mềm Rhino sẽ được viết theo cú pháp sau:

Rhino.<tên lệnh><Các tham số cho lệnh của Rhino>

Ví dụ để thực hiện vẽ một đường thẳng qua 2 điểm A (0,0,0) và B (10,5, 0) ta có

dữ liệu khác nhau Thông thường trong Visual Basic thì biến được gán cùng với kiểu

dữ liệu của biến, nhưng trong VBSrcipt thì không yêu cầu về điều này Các kiểu dữ liệu của biến được mô tả cụ thể như bảng 2.1

Bảng 2.1 Mô tả các kiểu dữ liệu

Kiểu dữ

Empty Biến là chưa được khởi tạo Giá trị là 0 cho các biến số hoặc

chuỗi có độ dài bằng không ("") cho các biến chuỗi Null Biến không chứa dữ liệu hợp lệ

Trang 25

Long Chứa số nguyên trong phạm vi -2147483648 đến 2147483647 Single Biểu diễn giá trị từ ±1.510-45 đến ±3.4 × 1038 với độ chính xác 7

chữ số thập phân Double Biểu diễn giá trị từ ±5.0 × 10xác 15-16 chữ số thập phân -324 đến ±1.7 × 10308 với độ chính Date

Error Chứa dữ liệu lỗi

2.1.3 Các toán tử trong VBScript

Toán tử là ký hiệu chỉ ra phép toán nào đó được thực hiện trên các toán hạng (có thể là một hoặc hai toán hạng)

Not Trả về giá trị ngược lại của toán hạng

And Trả về True (1) khi và chỉ khi hai toán hạng cùng là True (1)

AndAlso Trả về giá trị như And nhưng khi toán hạng thứ nhất là False (0) sẽ không kiểm tra toán hạng thứ hai và trả về False

Trang 26

Trong đó <điều kiện> có thể là biểu thức trả về giá trị True/False hoặc là một giá trị số Giá trị số khác 0 tương ứng với True, ngược lại là False

Sử dụng cú pháp này, người lập trình muốn khai báo với trình biên dịch rằng các câu lệnh trong vùng If … End If chỉ được thực hiện nếu như <điều kiện> là đúng

Trang 27

Mẫu 2

If <điều kiện> Then ' Các câu lệnh khi điều kiện đúng Else

' Các câu lệnh khi điều kiện sai End if

Nếu chỉ có một câu lệnh được thực hiện trong mỗi trường hợp khi điều kiện đúng hoặc sai ta có thể viết như sau:

If <điều kiện> Then Câu_lệnh1 Else Câu_lệnh2

Trong đó câu_lệnh 1 là lệnh được thực hiện khi điều kiện đúng còn câu_lệnh 2 là lệnh được thực hiện khi điều kiện sai

2.1.4.2 Lệnh Case

Select Case<biểu thức>

Case<danh sách 1>

' Các lệnh thực hiện trong nhánh 1 Case <danh sách 2>

' Các lệnh thực hiện trong nhánh 2

Case Else ' Các lệnh thực hiện khi không có nhánh nào ở trên được chọn End Select

Danh sách được đưa ra để làm điều kiện rẽ nhánh có thể rơi vào một trong các trường hợp sau:

- biểu thức

Trang 28

' Các câu lệnh Next [biến đếm]

- Các câu lệnh trong vùng For … Next chỉ được thực hiện nếu <biến đếm>

có giá trị trong đoạn [<giá trị đầu>, <giá trị cuối>]

- Sau mỗi lần thực hiện, <biến đếm> sẽ được tăng thêm <bước> Nếu không chỉ định, <bước> có giá trị là 1

- Nếu <bước> có trị > 0, cấu trúc chỉ thực hiện khi <giá trị đầu><= <giá trị cuối>

- Nếu <bước> có trị < 0, cấu trúc chỉ thực hiện khi <giá trị đầu>>= <giá trị cuối>

- Mệnh đề Exit For dùng để thoát ngang khỏi vòng lặp

2.1.5.2 Do … Loop

Mẫu 1

Do While <biểu thức logic>

' Các câu lệnh Loop

Trang 29

Với cú pháp này, các câu lệnh đặt trong vùng Do While … Loop chỉ thực hiện khi <biểu thức logic> có giá trị True Sau mỗi lần thực hiện các câu lệnh trong vùng

Do While Loop, <biểu thức logic> sẽ được kiểm tra lại:

- Nếu trị True, thực hiện lại vòng lặp

Với cú pháp này, các câu lệnh đặt trong vùng Do Untile … Loop chỉ thực hiện khi <biểu thức logic> có giá trị False Sau mỗi lần thực hiện các câu lệnh trong vùng

Do While Loop, <biểu thức logic> sẽ được kiểm tra lại:

- Nếu trị True, thực hiện thì kết thúc vòng lặp

- Nếu trị False, thực hiện tiếp tục vòng lặp

có thể được gọi trong một câu lệnh hoặc được gọi trong một biểu thức

Trong ngôn ngữ lập trình VBScript thủ tục được chia thành hai loại: Sub Procedure, Function Procedure

Trang 30

2.1.6.1 Sub Procedure

Sub là một dãy các câu lệnh để thực thi một công việc, một chức năng đặc thù nào đó, sub được xem như là một thành phần của chương trình Nói một cách khác, sub là các câu lệnh được nhóm vào một khối và được đặt tên

Các sub có thể được gọi để thi hành thường là thông qua subname Điều này cho phép gọi tới những thủ tục nhiều lần mà không cần phải lặp lại các khối lệnh giống nhau một khi đã hoàn tất việc viết mã lệnh cho các thủ tục đó chỉ một lần

2.1.6.2 Function Procedure (Hàm)

Một hàm là dãy các lệnh để thực thi một thao tác đặc thù nào đó như là một phần của chương trình lớn hơn Nói một cách khác, hàm là các câu lệnh được nhóm vào một khối, được đặt tên và có một giá trị trả về

Các hàm có thể được gọi để thi hành (thường là thông qua tên của hàm) Điều này cho phép gọi tới hàm nhiều lần mà không cần phải lặp lại các khối mã giống nhau một khi đã hoàn tất việc viết mã cho các hàm đó chỉ một lần

2.2 TÍNH TOÁN TÍNH NĂNG

Phương pháp chung để tính toán tính năng tàu thủy được sử dụng trong đề tài này

là dựa trên mô hình 3D và ứng dụng các công cụ có sẵn trên phần mềm Rhino để tính toán trực tiếp các đặc trưng hình học phần chìm thân tàu Các đại lượng đặc trưng này luôn gắn trong một hệ tọa độ nhất định là hệ tọa độ thân tàu Theo lý thuyết tàu thủy,

hệ tọa độ thân tàu là hệ tọa độ Đề-các Oxyz có gốc O đặt tại giao điểm ba mặt phẳng: Mặt cắt ngang giữa tàu, mặt cắt dọc giữa tàu, mặt cơ bản qua đáy tàu Trục Ox hướng

về mũi, trục Oy hướng sang mạn phải, trục Oz hướng lên như hình 2.2 [5] Để định vị

mô hình ta di chuyển mô hình về gốc tọa độ mặc định của Rhino để thuận lợi khi sử dụng kết quả tính

Hình 2.2 Hệ tọa độ thân tàu

Trang 31

Các đại lượng đặc trưng hình học thân tàu đều có đơn vị phụ thuộc vào đơn vị

đo của chúng ta đã khai báo sử dụng trong Rhino

2.2.1 Khai báo dữ liệu đầu vào

Các dữ liệu đầu vào cần thiết cho chương trình tính toán tính năng tàu được xây dựng trong một file excel File excel này cũng chính là file lưu trữ dữ liệu của kết quả tính toán được xuất ra từ chương trình Ngoài dữ liệu ở file excel, còn có thêm mô hình như mô hình 3D vỏ tàu, các đường bao để xây dựng bản vẽ tuyến hình và mô hình vật rắn 3D của vỏ tàu này để tính toán tính năng như hình 2.3

Hình 2.3 Mô hình 3D vỏ tàu

Dữ liệu đầu vào trong file excel bao gồm ba nhóm cơ bản được gọi là: Thông số tàu, các trường hợp tải trọng và thông số kiểm tra tiêu chuẩn ổn định thời tiết được trình bày trong sheet 1 của file “TINHNANG.xlsx”

- Thông số tàu được mô tả cụ thể như bảng 2.5

Bảng 2.5 Thông số tàu NHẬP THÔNG SỐ TÀU

Trang 32

+ Tàu không có gãy góc: 0

- Trường hợp tải trọng được mô tả ở bảng 2.6

Bảng 2.6 Thông số trường hợp tải trọng

P (tấn) XG (m) ZG (m) Trường hợp 1 200.0 -0.780 2.180 Trường hợp 2 166.5 0.284 2.000 Trường hợp 3 150.0 0.404 2.057 Trường hợp 4 118.5 0.166 2.210 Trường hợp 5 178.5 -0.370 2.015

Giá trị “5” trong bảng 2.6 là tổng số các trường hợp tải trọng Trong thực tế, khi

bố trí các thành phần tải trọng, người thiết kế luôn cố gắng bố trí đối xứng qua mặt cắt dọc giữa tàu vì vậy YG = 0 nên trong bảng 2.6 không có thành phần YG Trường hợp đặc biệt YG ≠ 0 sẽ không được đề cập đến trong đề tài này

- Thông số kiểm tra ổn định thời tiết được thể hiện ở bảng 2.7

Bảng 2.7 Dữ liệu yêu cầu cho kiểm tra ổn định thời tiết NHẬP THÔNG SỐ KIỂM TRA ỔN ĐỊNH THỜI TIẾT

S (m2) XG (m) YG (m) ZG (m) Diện tích hứng gió của cabin 70.5 -7.2 5.7

Trang 33

Giải thích:

Diện tích hứng gió của cabin

+ “70.5” Diện tích hứng gió của cabin (m2)

+ “-7.2” Hoành độ tâm diện tích hứng gió của cabin (m)

+ “5.7” Cao độ tâm diện tích hứng gió cabin (m)

Diện tích vây giảm lắc

+ “0” Diện tích vây giảm lắc (m2)

Vùng hoạt động của tàu

+ Vùng hoạt động SII: SII

Vị trí vào nước của tàu

+ “5.5” Tung độ của điểm vào nước

+ “4” Cao độ điểm vào nước

Hầu hết mọi chương trình muốn hoạt động thì phải có dữ liệu, vì vậy việc đầu tiên là phải khai báo dữ liệu trong file dữ liệu “TINHNANG.xlsx” theo mẫu trên Việc khai báo này mang tính thủ công và chỉ là dữ liệu bên ngoài chương trình Để chương trình có thể hiểu và sử dụng được thì phải trải qua giai đoạn lấy dữ liệu từ file dữ liệu

“TINHNANG.xlsx” và gán giá trị trong các ô dữ liệu đến các biến số mà ta đã tạo Lúc này, dữ liệu xem như là được lưu trữ trong bộ nhớ của chương trình thông qua các biến số

Quá trình này được mô tả bằng ngôn ngữ RhinoScript như sau:

Trang 34

- Gọi ứng dụng excel chạy và mở file chứa dữ liệu TINHNANG.xlsx

Set objXL = CreateObject ("Excel.Application")

objXL.Visible = True

Call objXL WorkBooks.Open ("D:\CHUONGTRINH\TINHNANG")

- Lấy dữ liệu và gán cho các biến số

Dim Lmax, Bmax, H, KCS, SLS, KCDN, SLDN

Lmax = objXL.Worksheets(1) Cells (3, 4) Value

Bmax = objXL.Worksheets(1) Cells (4, 4) Value

H = objXL.Worksheets(1) Cells (5, 4) Value

KCS = objXL.Worksheets(1) Cells (9, 4) Value

SLS = objXL.Worksheets(1) Cells (10, 4) Value

KCDN = objXL.Worksheets(1) Cells (11, 4) Value

SLDN = objXL.Worksheets(1) Cells (12, 4) Value

Trên đây là cách thức để lấy dữ liệu và gán cho các biến

Trong đó:

Chiều dài lớn nhất có tên biến là “Lmax” được gán giá trị tại ô dữ liệu (3, 4) (hàng 3, cột 4) trong Worksheets1 của file dữ liệu “TINHNANG.xlsx” Tương tự cho chiều rộng lớn nhất có tên biến là “Bmax” được gán giá trị tại ô dữ liệu (4, 4), chiều cao mạn có tên biến là “H” được gán giá trị tại ô dữ liệu (4, 4), khoảng cách sườn có tên biến là “KCS” được gán giá trị tại ô dữ liệu (9, 4), số lượng sườn có tên biến là

“SLS” được gán giá trị tại ô dữ liệu (10, 4), khoảng cách đường nước có tên biến là

“KCDN” được gán giá trị tại ô dữ liệu (11, 4), số lượng đường nước có tên biến là

“SLDN” được gán giá trị tại ô dữ liệu (12, 4)

Ngoài những dữ liệu này, còn một dữ liệu rất quan trọng trong toàn bộ quá trình tính toán là mô hình vỏ tàu 3D Việc nhập kiểu dữ liệu này cho chương trình được mô

tả như sau:

Dim VTTN

Trang 35

VTTN = Rhino.GetObject("CHON BE MAT VO TAU TINH TOAN TINH NANG") Trong đó:

“VTTN” là biến số được đặt cho mô hình vỏ tàu 3D thông qua câu lệnh Dim Với cấu trúc này, ta phải click chọn vào mô hình vỏ tàu 3D để thực hiện tính toán tính năng

2.2.2 Tính toán thủy tĩnh

Tính nổi tàu thủy là khả năng tàu nổi cân bằng ở vị trí xác định ứng với chế độ tải đang xét Đây là tính năng hàng hải quan trọng nhất của tàu Trong quá trình thiết kế phải xác định nhanh các yếu tố tính nổi ở các mớn nước tàu thực tế Để giải quyết vấn

đề này, ta có thể tính toán các yếu tố tính nổi ở các mớn nước nằm ngang, tàu cân bằng tức là không có góc nghiêng ngang, nghiêng dọc và xây dựng thành đồ thị thủy tĩnh (hay đồ thị thủy lực)

Đồ thị thủy tĩnh biểu diện các yếu tố tính nổi theo từng mớn nước của tàu bao gồm:

+ Thể tích chiếm nước V + Hệ số mặt đường nước α + Diện tích mặt đường nước Sf + Hệ số mặt cắt ngang β

+ Hoành độ diện tích mặt đường nước Xf + Hệ số béo thể tích δ

Để xác định các yếu tố tính nổi, tiến hành xét một mặt đường nước của tàu có chiều dài L như hình 2.4:

Hình 2.4 Xác định các yếu tố mặt đường nước

Trang 36

Các công thức thức xác định các yếu tố của mặt đường nước

- Diện tích mặt đường nước Sf

Trang 37

Xét mặt cắt ngang giữa tàu có diện tích ω trong giới hạn chiều chìm T trong mặt phẳng yOz như hình 2.5

mà sẽ dùng các công cụ của Rhino đã lập trình sẵn để tính toán trực tiếp các yếu tố thủy tĩnh theo các công thức trên

Trong chương trình này, khi tính toán thủy tĩnh, chương trình sẽ tự động lấy các giá trị từ các biến số đại diện cho những thông số như: Số lượng đường nước tính toán, khoảng cách giữa các đường nước theo mục 2.2.1

Tiếp theo chương trình sẽ thực hiện các bước tính toán lần lượt như sau: Tạo mặt đường nước, xác định các yếu tố mặt đường nước và gán dữ liệu kết quả tính toán như diện tích mặt đường nước, hoành độ tâm diện tích mặt đường nước đến biến số đại diện cho dữ liệu đồ thị thủy tĩnh, tạo khối 3D phần chìm thân tàu, xác định các yếu tố thể tích và gán dữ liệu kết quả tính toán như thể tích chiếm nước, hoành độ, cao độ tâm nổi đến biến số đại diện cho dữ liệu đồ thị thủy tĩnh Toàn bộ quá trình này được lặp đi lặp lại cho đến khi hết số lượng đường nước xem hình 2.6

Sau tính toán và xây dựng dữ liệu đồ thị thủy tĩnh cho tất cả đường nước, chương trình sẽ tự động chuyển sang giai đoạn vẽ đồ thị và xuất dữ liệu kết quả ra ngược lại file “TINHNANG.xlsx”

Trang 38

Hình 2.6 Sơ đồ khối tính toán các yếu tố thủy tĩnh

ĐỌC DỮ LIỆU

TẠO MẶT ĐƯỜNG NƯỚC

HẾT ĐƯỜNG NƯỚC

XÂY DỰNG DỮ LIỆU ĐỒ THỊ

THỦY TĨNH SAI

Trang 39

2.2.2.1 Đọc dữ liệu

Khi tính toán thủy tĩnh, chương trình sẽ tự động sử dụng các biến số “SLDN”,

“KCDN” theo mục 2.2.1 là các biến đại diện cho khoảng cách đường nước và số lượng đường nước tính toán thủy tĩnh

2.2.2.2 Tạo mặt đường nước

Để xác định các yếu tố mặt đường nước, đầu tiên ta phải tạo mặt phẳng đường nước: Dùng lệnh “Line” vẽ đường thẳng nằm ngang, dọc theo chiều dài tàu và có cao

độ bằng cao độ của đường nước Dùng lệch “Project” để tạo ra đường bao của mặt đường nước, cuối cùng dùng lệnh “PlanarSfr” để tạo mặt phẳng đường nước

Quá trình này được mô tả như sau:

Command: Line

Start of line (BothSides Normal Angled Vertical FourPoint Bisector Perpendicular Tangent Extension):

(Chọn điểm bắt đầu của đường thẳng)

End of line (BothSides):

(Chọn điểm kết thúc của đường thẳng)

Command: Project

Select curves and points to project (Loose=No DeleteInput=No OutputLayer=Current):

(Chọn đường thẳng đại diện cho đường nước)

Select surfaces, polysurfaces and meshes to project onto (Loose=No

DeleteInput=No OutputLayer=Current): Press Enter when done

(Chọn mặt phẳng là bề mặt vỏ tàu, rồi nhấn enter)

Command: _PlanarSrf

Select planar curves to build surface Press Enter when done:

(Chọn đường bao của mặt đường nước, rồi nhấn Enter)

Trang 40

Khi viết dưới dạng ngôn ngữ RhinoScript sẽ có dạng như sau:

linedn = Rhino.AddLine(Array (-12000, 0.0, 500), Array (-12000, 0.0, 500)) dbmatduongnuoc = Rhino.ProjectCurveToSurface(linedn, VTTN, Array(0, -1, 0)) matduongnuoc = Rhino.AddPlanarSrf(dbmatduongnuoc)

Trong đó:

Linedn: là đường thẳng đại diện cho đường nước có cao độ 500 mm

dbmatduongnuoc: Đường bao của mặt đường nước 500 mm với bề mặt vỏ tàu VTTN: bề mặt vỏ tàu tính toán tính năng theo mục 2.2.1

Rhino.AddPlanarSrf: Tạo ra mặt phẳng mặt đường nước từ đường bao của mặt đường nước

Kết quả quá trình tạo mặt đường nước được thể hiện ở hình 2.7

Hình 2.7 Kết quả tạo mặt phẳng đường nước 2.2.2.3 Xác định các yếu tố mặt đường nước

Từ mặt phẳng đường nước đã được tạo theo 2.2.2.2, ta dùng các lệnh trong tập lệnh “Mass Properties” như “SurfaceArea”, “SurfaceAreaCentroid”, “AreaMoments”

để xác định các đặc trưng hình học của mặt đường nước

+ Xác định diện tích mặt đường nước Sf

Ngày đăng: 26/01/2021, 11:30

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Bộ Giao Thông Vận Tải (2010), Quy chuẩn kỹ thuật quốc gia (QCVN21: 2010) Quy phạm phân cấp và đóng tàu biển vỏ thép Sách, tạp chí
Tiêu đề: Quy chuẩn kỹ thuật quốc gia (QCVN21: 2010) Quy phạm phân cấp và đóng tàu biển vỏ thép
Tác giả: Bộ Giao Thông Vận Tải
Năm: 2010
2. Bộ Giao Thông Vận Tải (2013), Quy chuẩn kỹ thuật quốc gia (QCVN72: 2013) Quy phạm phân cấp và đóng phương tiện thủy nội địa Sách, tạp chí
Tiêu đề: Quy chuẩn kỹ thuật quốc gia (QCVN72: 2013) Quy phạm phân cấp và đóng phương tiện thủy nội địa
Tác giả: Bộ Giao Thông Vận Tải
Năm: 2013
5. Trần Công Nghị (2009), Lý thuyết tàu thủy, NXB Đại học Giao Thông Vận Tải TP Hồ Chí Minh Sách, tạp chí
Tiêu đề: Lý thuyết tàu thủy
Tác giả: Trần Công Nghị
Nhà XB: NXB Đại học Giao Thông Vận Tải TP Hồ Chí Minh
Năm: 2009
6. Trịnh Thị Ngọc Linh (2010), Giáo trình lập trình Visual Basic.Net, NXB thông tin và truyền thông Sách, tạp chí
Tiêu đề: Giáo trình lập trình Visual Basic.Net
Tác giả: Trịnh Thị Ngọc Linh
Nhà XB: NXB thông tin và truyền thông
Năm: 2010
9. Nguyễn Công Chánh (2019), Nghiên cứu sử dụng ngôn ngữ lập trình RhinoScript vẽ hệ lái tàu cá theo các thông số cho trước, Luận văn đại học, Trường Đại học Nha Trang Sách, tạp chí
Tiêu đề: Nghiên cứu sử dụng ngôn ngữ lập trình RhinoScript vẽ hệ lái tàu cá theo các thông số cho trước
Tác giả: Nguyễn Công Chánh
Nhà XB: Trường Đại học Nha Trang
Năm: 2019
10. Trần Văn Của (2016), Tính toán tính năng tàu lưới rê vỏ composite mẫu Khánh Hòa bằng phần mềm Delftship, Luận Văn đại học, Trường Đại học Nha Trang Sách, tạp chí
Tiêu đề: Tính toán tính năng tàu lưới rê vỏ composite mẫu Khánh Hòa bằng phần mềm Delftship
Tác giả: Trần Văn Của
Nhà XB: Trường Đại học Nha Trang
Năm: 2016
11. Trần Gia Thái , Tự động hóa thiết kế đường hình tàu đáp ứng nhu cầu đa dạng tàu nghề cá Việt Nam,Tiếng Anh Sách, tạp chí
Tiêu đề: Tự động hóa thiết kế đường hình tàu đáp ứng nhu cầu đa dạng tàu nghề cá Việt Nam
Tác giả: Trần Gia Thái
3. Bộ Giao Thông Vận Tải (2000), Tiêu chuẩn Việt Nam (TCVN 6718: 2000) Quy phạm phân cấp và đóng tàu cá biển (Tàu có chiều dài trên 20 m) Khác
4. Bộ Giao Thông Vận Tải (2002), Tiêu chuẩn Việt Nam (TCVN 7111: 2002) Quy phạm phân cấp và đóng tàu cá biển cỡ nhỏ Khác
7. Bùi Công Lộc (2012), Viết chương trình vẽ đường hình và tính toán tính năng các mẫu tàu đánh cá khác nhau theo mẫu truyền thống của tỉnh Ninh Thuận, Luận văn đại học, Trường Đại học Nha Trang Khác
8. Nguyễn Xuân Hải (2015), Nghiên cứu tính toán cánh tay đòn ổn định tĩnh theo mô hình vật rắn 3D, Luận văn thạc sĩ, Trường Đại học Nha Trang Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w