Microsoft Word Bia ISO doc BỘ CÔNG THƯƠNG VIỆN NGHIÊN CỨU CƠ KHÍ BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CÔNG NGHỆ CẤP BỘ NĂM 2008 Tên đề tài “NGHIÊN CỨU KHAI THÁC CÁC PHẦN MỀM CHUYÊN DỤNG, ỨNG DỤ[.]
BỘ CƠNG THƯƠNG VIỆN NGHIÊN CỨU CƠ KHÍ BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CÔNG NGHỆ CẤP BỘ NĂM 2008 Tên đề tài: “NGHIÊN CỨU KHAI THÁC CÁC PHẦN MỀM CHUYÊN DỤNG, ỨNG DỤNG VÀO TÍNH TỐN THIẾT KẾ CẦU TRỤC CHÂN DÊ TRONG CÁC CƠNG TRÌNH THUỶ ĐIỆN” Ký hiệu : 242.08.RD/HĐ-KHCN Cơ quan chủ quản : Cơ quan chủ trì đề tài : Chủ nhiệm đề tài : Bộ Công Thương Viện Nghiên cứu Cơ khí Nguyễn Đăng Hiếu 7266 26/3/2009 Hà Nội - 2008 BỘ CƠNG THƯƠNG VIỆN NGHIÊN CỨU CƠ KHÍ BÁO CÁO TỔNG KẾT ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CÔNG NGHỆ CẤP BỘ NĂM 2008 Tên đề tài: “NGHIÊN CỨU KHAI THÁC CÁC PHẦN MỀM CHUYÊN DỤNG, ỨNG DỤNG VÀO TÍNH TỐN THIẾT KẾ CẦU TRỤC CHÂN DÊ TRONG CÁC CƠNG TRÌNH THUỶ ĐIỆN” Ký hiệu : 242.08.RD/HĐ-KHCN Thủ trưởng đơn vị (Ký tên, đóng dấu) Chủ nhiệm đề tài (Ký, ghi rõ họ tên) Nguyễn Đăng Hiếu Hà Nội - 2008 MỤC LỤC MỤC LỤC DANH SÁCH CÁC THÀNH VIÊN THAM GIA .3 LỜI NÓI ĐẦU .4 Chương TỔNG QUAN 1.1 Tình hình nghiên cứu sử dụng phần mềm thiết kế nước 1.2 Đối tượng, phạm vi nội dung nghiên cứu .7 1.3 Tổng quan phần mềm tính tốn thiết kế, kiểm nghiệm .7 1.3.1 Những công nghệ CAD .7 1.3.2 Tổng quan phần mềm thiết kế khí: 1.4 Tiêu chuẩn, Quy phạm quy định thiết kế cầu trục 15 1.4.1 Tiêu chuẩn, Quy phạm: 1.4.2 Quy định chung: .15 16 1.5 Kết luận: 18 Chương 19 GIỚI THIỆU CÔNG DỤNG CÁC PHẦN MỀM THÔNG DỤNG 19 2.1 SAP2000 19 2.1.1 Sơ lược phần mềm SAP2000 .19 2.1.1.1 Trình tự giải tốn phần mềm phần tử hữu hạn: 19 2.1.1.2 Khả nguyên lý hoạt động SAP: 20 2.1.2 Kết cấu hệ 22 2.2 MSC Visual Nastran 25 2.2.1 Khả kết hợp khả sử dụng: 25 2.2.2 Các thành phần ứng dụng: 27 2.3 Inventor Cosmos 29 2.3.1 Phần mềm Inventor 29 2.3.1.1.Giới thiệu sơ lược phần mềm Inventor 29 2.3.1.2 Khả tính tốn chi tiết máy Inventor 32 2.3.2 Phần mềm Cosmos Design Star 33 2.4 Kết luận 40 Chương PHƯƠNG PHÁP THỰC HIỆN VÀ ỨNG DỤNG 41 3.1 Giới thiệu sơ lược cầu trục chân dê 41 3.2 Tổng quan trình tự tính tốn thiết kế cầu trục 45 3.3 Lựa chọn kiểm chứng kết 53 3.3.1 Các sở so sánh .53 3.3.2 So sánh kết 53 a So sánh kết tính tốn với phương pháp giải tích .53 b So sánh kết tính toán phần mềm khác .55 3.4 Kết luận 63 Chương KẾT LUẬN VÀ ĐỀ XUẤT 64 TÀI LIỆU THAM KHẢO 66 PHỤ LỤC 67 P.1 Thuyết minh tính tốn cầu trục chân dê thủy điện Bản chát .67 P.2 Bản vẽ chung cầu trục CLN thủy điện Bản Chát P.3 Hợp đồng phát triển khoa học công nghệ LỜI CẢM ƠN DANH SÁCH CÁC THÀNH VIÊN THAM GIA TT Họ tên Học hàm, học vị, Cơ quan công tác chuyên môn Nguyễn Đăng Hiếu Kỹ sư Cơ tin Nguyễn Hà An Thạc sỹ kỹ thuật Trần Anh Tuấn Thạc sỹ kỹ thuật Mai Văn Hào Thạc sỹ kỹ thuật Nguyễn Văn Miên Tiến sỹ kỹ thuật Nguyễn Đức Toàn Thạc sỹ kỹ thuật Viện NARIME Trần Quang Sơn Kỹ sư chế tạo máy Viện NARIME Hà Huy Hưng Thạc sỹ kỹ thuật Học viện KTQS Viện NARIME Viện NARIME Viện NARIME Viện NARIME Viện NARIME LỜI NÓI ĐẦU Chương trình nội địa hố nhà máy thuỷ điện nước ta triển khai mạnh mẽ góp phần giảm ngoại tệ trả cho nước đồng thời tạo cơng việc, tích luỹ trang bị cho ngành khí Việt Nam, tạo lực cho ngành thời đại hội nhập toàn diện với giới Trong thiết bị khí thủy cơng có hạng mục thiết bị quan trọng hạng mục cầu trục chân dê, hạng mục mà có nhiều chi tiết phức tạp địi hỏi cần nhiều tính tốn Vấn đề đặt với kỹ sư khả tính tốn tối ưu thiết bị khí Hiện nước phần lớn đơn vị tính tốn thiết kế cầu trục chủ yếu tính tốn cơng thức kinh nghiệm theo tài liệu Nga, thường có kết cấu thừa bền khối lượng lớn Do đòi hỏi kỹ sư cần ứng dụng phương pháp tính tốn kế thừa tài liệu nước tư khai thác tốt phần mềm chun dụng cho tính tốn thiết kế cầu trục để đảm bảo tối ưu hóa q trình tính tốn Trong năm gần với hội nhập với giới bên phần mềm chuyên dụng cho việc phân tích thiết kế kết cấu phương pháp phần tử hữu hạn du nhập vào nước ta Nhiều hãng tiếng giới đưa phần mềm chuyên dụng Tìm hiểu phần mềm giới Việt nam chọn phần mềm chuyên dụng ứng dụng vào tính tốn cầu trục chân dê cơng trình thuỷ điện, gồm có phần mềm tính tốn kết cấu thép SAP2000, phần mềm mô động lực học MSC.Visual Nastran, phần mềm tính tốn thiết kế chi tiết máy cầu trục Inventor COSMOS CHƯƠNG TỔNG QUAN 1.1 Tình hình nghiên cứu sử dụng phần mềm thiết kế nước Trong lĩnh vực thiết kế khí, số quan thiết kế nước sử dụng phương án cổ điển chế tạo mẫu thực (thu gọn mơ hình) thử nghiệm mẫu điều kiện thực tế thử loại ứng suất kéo, nén, thử sức bền mỏi, thử áp suất, nhiệt độ…điều khiến cho chi phí thiết kế nói chung chi phí sản xuất cao Ngồi kết kiểm nghiệm khơng phù hợp phải tiến hành thay đổi thiết kế kiểm nghiệm lại dẫn đến chi phí cao Trong điều kiện kiểm nghiệm thử tải thực tế, kết thay đổi nhiều phải thay đổi thiết kế, chế tạo lại mẫu lại tiếp tục quy trình tính tốn kiểm nghiệm Do đó, nước có cơng nghiệp phát triển Cơ khí đưa phương án sử dụng mơ hình phát triển ảo, việc sử dụng phần mềm tính tốn thiết kế kiểm nghiệm phương pháp phần tử hữu hạn Trước cơng cụ máy tính, tin học chưa phát triển thông thường họ áp dụng phương pháp tính tốn cổ điển, đưa tốn để tính tốn Với lý thuyết tính tốn dùng phương pháp tính tốn cổ điển có số hạn chế mơ hình tính, điều kiện biên bị đơn giản khơng thể tính tổ hợp tải trọng cho tồn kết cấu cơng trình Do chưa tối ưu mặt kết cấu khả tiết kiệm vật liệu chưa cao… Ngày với phát triển công cụ tin học, ứng dụng phần mềm chuyên dụng công ty chuyên thiết bị khí thuỷ cơng đạt thành tựu to lớn, tính tốn phần mềm chun dụng cho kết tính tốn tổng hợp đảm bảo xác, tối ưu hóa kết cấu, giảm giá thành thời gian chế tạo thiết bị Hiện giới có nhiều phần mềm chuyên dụng, việc sử dụng khai thác nước nhiều hạn chế Một số nơi nước mua phần mềm việc khai thác cịn hạn chế khơng mua đồng phần mềm hỗ trợ Việc mua đồng phần mềm tốn ngoại tệ ngồi việc mua phần mềm cịn phải th chun gia hãng đào tạo Việc cử cán để tiếp thu phần mềm khó khăn người giỏi chun mơn khí lại có trình độ máy tính chưa tương xứng với yêu cầu phần mềm, người giỏi máy tính lại có trình độ khí chế tạo cịn hạn chế Trong nước số nơi cơng ty khí Quang Trung Ninh bình, cơng ty cơng nghiệp Tàu Thuỷ Việt nam, Cơng ty Cổ phần khí Hồng Nam , có nghiên cứu phần mềm SAP, inventor Nhưng việc khai thác nhiều hạn chế, chưa nghiên cứu thấu đáo, chủ yếu việc thiết kế cầu trục dựa vào tính tốn tay, việc ứng dụng cịn nhiều hạn chế Hiện nước chưa có nơi nghiên cứu thấu đáo, đầy đủ phần mềm SAP, Inventor, COSMOS, MSC.VisualNastran kiểm nghiệm vào tính tốn thiết kế Cầu trục chân dê cơng trình thủy điện Trên giới nhiều nước sử dụng nguồn lượng thủy điện nước có thủy điện phát triển họ xây dựng lý thuyết tính tốn thiết kế thiết bị khí thủy cơng ứng dụng vào nhiều cơng trình thủy điện giới công ty U.S Army Corps of Engineerings Mỹ, Viện Zaporozhgidrostal UKRAINA, Viện thiết kế thủy công Consortium Nga, nhà máy chế tạo thiết bị thủy điện Đông Phong Trung Quốc…Đối với cơng ty họ có nhiều kinh nghiệm việc thiết kế chế tạo thiết bị khí thủy công họ cung cấp thiết bị khí thủy cơng cho nước phát triển Châu lục có Việt Nam Tại cơng ty chun thiết bị khí thủy cơng họ khai thác tối đa ứng dụng phần mềm chun dụng tính tốn phương pháp phần tử hữu hạn vào cơng việc tính tốn kiểm nghiệm thiết kế 1.2 Đối tượng, phạm vi nội dung nghiên cứu a Đối tượng: Cầu trục chân dê Cửa nhận nước 2x50+2x10+5 Cơng trình thủy điện Bản chát, cầu trục chân dê Cửa lấy nước 2x63/2x10 Cơng trình thủy điện A.Vương b Phạm vi: Tính tốn hệ khung cầu trục, mô động học cầu trục, tính tốn số chi tiết máy điển hình cầu trục c Nội dung nghiên cứu: - Nghiên cứu làm chủ phần mềm tính tốn kết cấu thép SAP2000 - Nghiên cứu làm chủ phần mềm mô động lực học MSC.VisualNastran - Nghiên cứu làm chủ phần mềm tính tốn thiết kế chi tiết máy Inventor COSMOS - Kiểm nghiệm kết tính tốn cầu trục theo tài liệu nước +Kiểm nghiệm kết tính tốn cầu trục chân dê 2x63/2x10 thủy điện A.Vương - Ứng dụng kết nghiên cứu tính tốn cầu trục + Đưa vẽ thiết kế chung Cầu trục chân dê Cửa lấy nước thủy điện Bản chát 1.3 Tổng quan phần mềm tính tốn thiết kế, kiểm nghiệm 1.3.1 Những công nghệ CAD Các phần mềm CAD 2D AutoCAD buộc người dùng phải nhập xác kích thước quan hệ hình học đối tượng vào vẽ Điều khơng thể thực chưa có thiết kế hồn chỉnh Vì vậy, chức vẽ dù tốt đến đâu giúp CAD trở thành công cụ trợ giúp thiết kế thực Muốn có mơi trường thiết kế phải có CAD 3D với chức mơ hình hóa phân tích mạnh mẽ với cơng nghệ thiết kế Các công nghệ đảm bảo cho người kỹ sư thiết kế theo “quy trình thuận” theo hình 1.1 Hình 1.1 Sơ đồ thiết kế theo quy trình thuận Các phần mềm CAD đại sử dụng cơng cụ mơ hình hóa 3D có tích hợp cơng nghệ sau: a Thiết kế theo tham số (Parametric Design) Với công nghệ thay phải vẽ xác từ đầu, bắt đầu vẽ phác thảo, sau xác hóa việc gán kích thước liên kết hình học cho đối tượng Chúng ta gán mối quan hệ kích thước (ví dụ phụ thuộc đường kính lỗ vào chiều dài moay ơ) để thay đổi chiều dài moay đường kính tự động thay đổi theo Cơng nghệ tham số có ưu điểm: - Giúp người kỹ sư hình thành thể ý tưởng thiết kế theo quy luật tự nhiên trình tư duy: từ phác thảo ý đồ đến xác hóa mơ hình xuất tài liệu thiết kế - Làm cho thiết kế mềm dẻo linh hoạt Các sản phẩm thiết kế sửa đổi cách dễ dàng, giai đoạn - Dễ kế thừa kết thiết kế có, nhờ cơng nghệ mà người dùng tạo thư viện thiết kế sử dụng cách hiệu b Thiết kế hướng đối tượng (Feature Based Design) Hình 1.2 Quản lý mơ hình theo đối tượng 2.4 Vector Ma trận 15 Tích số vector: Hai vector a b có độ dài nhân với theo hai trình tự ab ba Kết số vô hướng (scalar) với trường hợp tích (inner product) ma trận với trường hợp tích ngồi (outer product) Ví dụ: » a = [-1 4] a = -1 » b = [3; 8; 10] b = 10 » a*b ans = 53 » b*a ans = -3 12 -8 16 32 -10 20 40 Nhân ma trận: tích hai ma trận C = AB xác định chiều cột A chiều hàng B, số chúng số vơ hướng Nếu kích thước A m × p B p × n, ma trận tích C chúng có kích thước m × n Ví dụ, nhân ma trận A có kích thước ×3 với ma trận B có kích thước ×2 cho ta ma trận C có kích thước ×2 » A=[2 6; 3] A = 16 Chương Tính tốn Lập trình sử dụng Matlab » B=[4 9; 2; 1] B = » C=A*B C = 79 34 50 20 Trong trường hợp nhân số vơ hướng với ma trận kết ma trận với phần tử tích phần tử với số vơ hướng Ví dụ » A=[2 6; 3] A = » b=5 b = » A*b ans = 10 25 30 20 15 Đối với trường hợp hai ma trận có kích thước, Matlab cho phép thực nhân phần tử với thơng qua phép tốn nhân phần tử (.∗) Ví dụ: » A=[2 6; 5; 2] 2.4 Vector Ma trận 17 A = » B=[6 5; 8; 4] B = » C=A.*B C = 12 30 63 40 Đảo ma trận: phép toán đảo ma trận thực nhờ hàm số có sẵn (built-in function) inv Ma trận đảo inv(A) ma trận A tồn A ma trận vuông không gần đơn điệu (nearly singular) Ví dụ: » A=rand(4,4) A = 0.9077 0.6220 0.2050 0.2539 0.1772 0.1251 0.5769 0.9528 0.8046 0.2110 0.4998 0.6918 0.5592 0.1788 0.0873 0.3441 » B=inv(A) B = -0.4924 -1.2604 1.5160 0.8057 2.3661 1.4403 -2.5141 -0.6797 18 Chương Tính tốn Lập trình sử dụng Matlab 0.5983 -0.5830 3.4275 -5.7183 -0.5812 1.4479 -2.0271 3.4014 trường hợp ma trận cần đảo gần với đơn điệu Matlab thơng báo lỗi A = » inv(A) Warning: Matrix is singular to working precision (Type "warning off MATLAB:singularMatrix" to suppress this warning.) ans = Inf Inf Inf Inf Inf Inf Inf Inf Inf Định thức ma trận: để tính định thức ma trận, sử dụng hàm built-in det(·) Matlab det(·) Ví dụ, tạo ma trận ngẫu nhiên với hàng, cột với phần tử số ngẫu nhiên phân bố chuẩn, tính định thức ma trận » randn(’seed’,0) » A=randn(4,4) A = 1.1650 -0.6965 0.6268 1.6961 0.8717 -0.6390 0.0751 0.0591 -1.4462 0.5774 0.3516 1.7971 -0.7012 -0.3600 » det(A) ans = 0.2641 1.2460 2.5 Lập trình với Matlab 19 0.0914 2.5 Lập trình với Matlab 2.5.1 Điều khiển luồng (flow control) Matlab cung cấp cho người lập trình cấu trúc luồng sau: if, switch cases, for, while, continue, break • Câu lệnh if, esle, elseif Câu lệnh if đánh giá biểu thức logic thi hành nhóm câu lệnh biểu thức TRUE Các từ khóa tùy chọn khác elseif hay else thi hành nhóm câu lệnh khác Một từ khóa end, khớp với if, sử dụng phần cuối nhóm nhóm câu lệnh cuối Ví dụ sau hiển thị mà hình yêu cầu nhập câu trả lời nhận câu trả lời dạng ký tự (string) từ bàn phím Nếu câu trả lời Y máy tính in hình thơng báo “Bạn đồng ý.” câu trả lời N máy tính thơng báo “Bạn khơng đồng ý.” Trong trường hợp chữ nhập vào khác Y hay N máy tính in hình thơng báo “Bạn nhập sai câu trả lời.” thực ngắt chế độ nhập bàn phím r=input(’Nhap "Y" neu dong y hoac "N" neu khong (Y/N):’,’s’); if r==’Y’ disp(’Ban da dong y.’) elseif r==(’N’) disp(’Ban khong dong y.’) else disp(’Ban nhap sai cau tra loi.’) return end • Câu lệnh switch case Câu lệnh switch thi hành nhóm câu lệnh dựa vào giá trị biến biểu thức Các từ khóa case and otherwise dùng cho nhóm câu lệnh Chỉ có trường hợp khớp với điều kiện thi hành Kết thúc luồng switch từ khóa end Ví dụ sau mơ tả ví dụ nhập câu trả lời từ bàn phím mục sử dụng cấu trúc switch s=input(’Nhap "Y" neu dong y hoac "N" neu khong (Y/N):’,’s’); switch s case ’Y’ 20 Chương Tính tốn Lập trình sử dụng Matlab disp(’Ban da dong y.’) case ’N’ disp(’Ban khong dong y.’) otherwise disp(’Ban nhap sai cau tra loi.’) end • Câu lệnh for Vịng lặp for lặp lại nhóm câu lệnh số thời gian cố định cho trước Cấu trúc vòng lặp kết thúc bới từ khóa end Ví dụ sau mơ tả việc cách dùng vịng for để tìm phần tử ma trận lớn giá trị cho trước1 (bằng 5) H=[1 3; 6; 5] [nRow,nCol]=size(H); disp(’Cac phan tu sau >= 5:’) for i=1:nRow for k=1:nCol if H(i,k)>=5 disp([’Phan tu o dong ’ num2str(i) ’ cot ’ num2str(k)]) end end end Kết vòng for H = Cac phan tu sau >= 5: Phan tu o dong cot Phan tu o dong cot Phan tu o dong cot Phan tu o dong cot Phan tu o dong cot Do hàm disp làm việc với ký tự (string) nên hàm num2str dùng phần đối số hàm disp để biến đổi số i k dạng ký tự • Câu lệnh while Vịng lặp while lặp lại nhóm câu lệnh số lần định điều khiển điều kiện logic Cấu trúc vòng lặp while kết thúc từ khố end Ví dụ sau mơ tả cách tạo chuỗi liệu {1, −1} chứa 10 bit 1 Sau quen với Matlab dùng hàm có sẵn find thay cho vịng for 2.5 Lập trình với Matlab 21 clear all rand(’seed’,0) noOne=0; k=1; while noOne0.5; s(k)=1-2*n(k); if s(k)==1 noOne=noOne+1 end k=k+1; end s Kết thu chuỗi 24 bit 1, −1 có chứa 10 bit s = Columns through 15 1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 Columns 16 through 24 -1 -1 -1 -1 • Câu lệnh break Câu lệnh break cho phép sớm khỏi vịng lặp for hay vịng lặp while Trong trường hợp có nhiều vịng lặp lồng vào câu lệnh break cho phép khỏi vịng lặp Ví dụ sau mô tả lại phương pháp tạo chuỗi liệu {1, −1} chứa 10 bit sử dụng vòng lặp for kết hợp với câu lệnh break Trong trường hợp có 100 bit tạo chưa có đủ 10 bit chương trình dừng lại rand(’seed’,0) noOne=0; for k=1:100 n(k)=rand>0.5; s(k)=1-2*n(k); if s(k)==1 noOne=noOne+1; end if noOne==10 break end end s Kết thu chuỗi 24 bit giống ví dụ câu lệnh while 1 22 Chương Tính tốn Lập trình sử dụng Matlab s = Columns through 15 1 -1 -1 -1 -1 -1 -1 1 -1 -1 Columns 16 through 24 2.5.2 -1 -1 -1 -1 -1 Tạo chương trình MATLAB tệp m Trong phần trước thấy MATLAB mơi trường tính tốn tương tác Ngồi chức mơi trường tính tốn tương tác, MATLAB cịn cho phép xây dựng chương trình lập trình ngơn ngữ lập trình thơng dụng với kho liệu hàm xây dựng sẵn (built-in functions) Các chương trình MATLAB lưu giữ với phần tên tệp mở rộng m thường gọi tệp m (m-file) Có hai loại tệp m: • Chương trình (script): thực tập hợp câu lệnh làm việc với liệu nằm khơng gian cơng tác (workspace) Các chương trình (script) không nhận đối số đầu vào không trả đối số đầu • Hàm (function): thực tập hợp câu lệnh chứa Tuy nhiên, function nhận đối số đầu vào cho đối số đầu Các biến khai bao bên function tồn function Để xem hướng dẫn sử dụng function từ Command Window nhập vào help functionName Ví dụ, để xem cách sử dụng hàm or nhập vào »help or nhận hướng dẫn sau | Logical OR A | B is a matrix whose elements are 1’s where either A or B has a non-zero element, and 0’s where both have zero elements A and B must have the same dimensions unless one is a scalar C = OR(A,B) is called for the syntax ’A | B’ when A or B is an object See also XOR Để soạn thảo script hay function MATLAB sử dụng chương trình soạn thảo văn lưu lại với tên mở rộng m Chúng ta sử dụng chương trình soạn thảo MATLAB (MATLAB Editor) Để xem hay soạn thảo lại m-file có sẵn cần sử dụng câu lệnh » edit fileName Để tạo tệp cần sử dụng câu lệnh 1 2.5 Lập trình với Matlab 23 » edit khơng cần tên tệp • Tạo hàm MATLAB Để tạo function MATLAB cần tạo script với dịng có cấu trúc function [Output1, , OutputM]=functionName(Input1, ,InputN) Trong {Input1, , InputN} N đối số vào {Output1, , OutputM} M đối số Tên hàm functionName thiết phải giống với tên tệp m khơng trùng với tên tệp có sẵn Ví dụ sau hướng dẫn cách viết function để tính biệt thức ∆ = a − 4ac phương trình bậc hai ax2 + bx + c = function delta=discriminant(a,b,c) % Function to calculate the discriminant of a quaratic equation % ax^2 + bx + c = delta=b^2 - 4*a*c; Giả sử phương trình bậc hai cần tìm nghiệm số x2 + 4x + = Các hệ số phương trình a = 1, b = c = Sử dụng hàm discriminant.m vừa tạo tính biệt thức phương trình »delta=discriminant(a,b,c) delta = • Tạo chương trình MATLAB Một chương trình MATLAB chứa tập hợp câu lệnh Khi chạy chương trình MATLAB MATLAB tiến hành tất câu lệnh chứa Các chương trình MATLAB làm việc với liệu tồn workspace, tạo liệu để làm việc Tuy chương trình MATLAB khơng trả lại đối số (output argument) biến chương trình tạo lưu lại workspace sử dụng câu lệnh Ví dụ chương trình quadEqn.m sau mơ tả chương trình MATLAB để tính nghiệm phương trình bậc hai ax2 + bx + c = Vi dụ: Chương trình quadEqn.m % Chuong trinh tinh nghiem so cua mot phuong trinh bac hai 24 Chương Tính tốn Lập trình sử dụng Matlab % Nhap cac hang so a, b, c disp(’Chuong trinh tinh nghiem cua phuong trinh bac 2’) a=input(’Nhap vao hang so a=’); b=input(’Nhap vao hang so b=’); c=input(’Nhap vao hang so c=’); % Tinh biet thuc delta delta=discriminant(a, b, c) % Xet biet thuc va tinh nghiem so if delta > x1=(-b + sqrt(delta))/(2*a); x2=(-b - sqrt(delta))/(2*a); disp([’Hai nghiem cua pt la x1=’ num2str(x1) ’ va x2=’ num2str(x2)]) elseif delta==0 x1=-b/(2*a); disp([’Phuong trinh co mot nghiem nhat x=’ num2str(x1)]) elseif delta < disp(’Phuong trinh vo nghiem! ’) end Sử dụng chương trình quadEqn.m tính nghiệm số phương trình x2 + 4x + = cho ta kết sau: » quadEqn Chuong trinh tinh nghiem cuar phuong trinh bac Nhap vao hang so a=1 Nhap vao hang so b=4 Nhap vao hang so c=3 Hai nghiem cua phuong trinh la x1=-1 va x2=-3 phương trình 4x2 + 3x + » quadEqn Chuong trinh tinh nghiem cuar phuong trinh bac Nhap vao hang so a=4 Nhap vao hang so b=3 Nhap vao hang so c=2 Phuong trinh vo nghiem! 2.6 2.6.1 Sử dụng đồ hoạ MATLAB Vẽ đồ thị Phương pháp phổ biến để vẽ đồ thị sử dụng hàm plot có sẵn MATLAB Câu lệnh plot(x,y) vẽ đồ thị y theo x, y x vector có độ dài Trong trường hợp Y X ma trận câu lệnh plot(X,Y) vẽ đồ thị với cột (hay hàng) Y tương ứng với cột (hay hàng) X Trường hợp muốn vẽ nhiều đồ thị hình vẽ khai 2.6 Sử dụng đồ hoạ MATLAB 25 báo theo dạng plot(x1,y1,x2,y2, ,xN,yN) với {xn,yn} cặp giá trị đồ thị Để đánh dấu đồ thị gán cho chúng dấu (marker), màu, kiểu đường đồ thị riêng, hay kết hợp với Các định dạng đường đồ thị định nghĩa MATLAB liệt kê bảng sau Bảng 2.1: Các tham số định Ký hiệu màu Màu Ký hiệu dấu b blue g green o r red x c cyan + m magenta * y yellow s k black d v ∧ < > p h dạng đường đồ thị MATLAB Dấu Ký hiệu đường Kiểu đường point solid circle : dotted x-mark - dashdot plus – dashed star square diamond triangle (down) triangle (up) triangle (left) triangle (right) pentagram hexagram Ví dụ sau mơ tả phương pháp sử dụng hàm plot để vẽ hai đồ thị sin(x) cos(x) chung hình vẽ x = 0:pi/10:2*pi; y = sin(x); z= cos(x); plot(x,y,’r+:’, x,z, ’b-.o’) xlabel(’x’) ylabel(’sin(x)/cos(x)’) title(’Do thi ham sin(x) va cos(x)’) legend(’sin(x)’,’cos(x)’) grid Trong đường đồ thị sin(x) biểu diễn đường đứt nét màu đỏ với dấu cộng (+), đường đồ thị cos(x) biểu diễn đường “gạch chấm” (.−) màu xanh nước biển với dấu tròn Câu lệnh xlabel(’x’) xlabel(’sin(x)/cos(x)’) dùng để đánh dấu trục hoành trục tung đồ thị Câu lệnh title(’Do thi ham sin(x) va cos(x)’) dùng để đặt tên cho đồ thị Câu lệnh legend(’sin(x)’,’cos(x)’) dùng để ghi giải cho đồ thị cuối cùng, câu lệnh grid dùng để hiển thị đường lưới giá trị đồ thị Kết cụ thể biểu diễn Hình vẽ 2.2 Sử dụng câu lệnh help plot biết thêm chi tiết cách dùng hàm plot Một câu lệnh vẽ đồ thị khác thường sủ dụng nhiều thông tin số để vẽ tỉ số lỗi bit (BER: Bit Error Rate) câu lệnh semilogy(x,y) Câu lệnh tương tự câu lệnh plot cho phép biểu diễn trục tung đồ thị thang logarith 26 Chương Tính tốn Lập trình sử dụng Matlab Do thi ham sin(x) va cos(x) sin(x) cos(x) 0.8 0.6 0.4 sin(x)/cos(x) 0.2 −0.2 −0.4 −0.6 −0.8 −1 x Hình 2.1: Đồ thị sin(x) cos(x) Ví dụ, tỉ số BER hệ thống truyền dẫn BPSK qua kênh pha-đinh Rayleigh phân tích lý thuyết [1] 1 (2.7) BERBPSK−Fading = 1 − q 1+ Eb /N0 Eb /N0 tỉ số lượng bit tín hiệu phổ tần số tạp âm (một số trường hợp hiểu gọi tỉ số tín hiệu tạp âm S/N) Sử dụng chương trình BERBPSKFading.m sau với câu lệnh semilogy(BER,EbNodB) cho phép vẽ đồ thị BER theo tỉ số Eb /N0 thang logarith [BERBPSKFading.m] % Chuong trinh ve thi BER cua h/t BPSK tren kenh fading Rayleigh EbNodB=0:30 EbNo=10.^(EbNodB./10) BER=1/2*(1-1./sqrt(1+1./EbNo)) semilogy(EbNodB,BER) xlabel(’Eb/No’) ylabel(’BER’) title(’Ti so BER cua he thong BPSK qua kenh pha-dinh Rayleigh ’) 2.6 Sử dụng đồ hoạ MATLAB 27 grid Ti so BER cua he thong BPSK qua kenh pha−dinh Rayleigh 10 −1 BER 10 −2 10 −3 10 −4 10 10 15 Eb/No 20 25 30 Hình 2.2: Mô tả BER hệ thống BPSK kênh pha-đinh Rayleigh Một số câu lệnh vẽ đồ thị thường dùng khác gồm bar hay hist Để biết thêm chi tiết câu lệnh sử dụng lệnh help MATLAB Bài tập Sử dụng hàm randn tạo chuỗi ngẫu nhiên gồm N = 1000 giá trị x = {x1 , x2 , , xk , , xN } Viết chương trình tính giá trị trung bình (kỳ vọng) Ex , phương sai σx2 độ lệch chuẩn σx sử dụng công thức sau 28 Chương Tính tốn Lập trình sử dụng Matlab N X Ex = xk N k=1 (2.8) σx2 = E(x2 ) − Ex2 = σx = N X x2k k=1 N p σx2 N X 2 xk k=1 − N (2.9) (2.10) Viết chương trình tạo chuỗi −1 +1 ngẫu nhiên x có độ dài 104 bit Tạo chuỗi bit thứ y giống x nhiên phần tử thứ 10, 50, 100, 150, 250, 300, 350 bị đảo dấu so với phần tử tương ứng y Tức là, y10 = −x10 , , y350 = −x350 So sánh y x tính tốn tỉ số sai số hai chuỗi Dựa vào ví dụ vẽ đồ thị BER hệ thống BPSK kênh pha-đinh Rayleigh mục 2.6.1 hàm sai số bù erfc có sẵn MATLAB, i Viết chương trình vẽ đồ thị BER hệ thống BPSK kênh tạp âm Gauss theo công thức sau[1] p Eb /N0 BERBPSK−AWGN = erfc (2.11) ii Vẽ đồ thị BER hệ thống BPSK kênh tạp âm Gauss kết hợp với đồ thị BER hệ thống BPSK kênh pha-đinh Rayleigh vào hình vẽ, đánh dấu đặt giải cho đồ thị Viết hàm MATLAB y=QPSKMap(x) nhận đối số chuỗi ngẫu nhiên có độ dài N bit Hàm QPSKMap thực kiểm tra cặp bit liên tiếp xn xn+1 thực phép biến đổi sau xn xn+1 00 01 10 11 ym → → → → √1 − √12 − √12 √1 + j √12 + j √12 − j √12 − j √12 n = 1, 2, , N m = 1, 2, , N/2 Viết chương trình QPSKMod tạo 20 bit 0, ngẫu nhiên Sử dụng hàm MATLAB QPSKMap ví dụ để chuyển chuỗi bit {0,1} thành chuỗi dấu QPSK ym Tài liệu tham khảo 29 Tài liệu tham khảo [1] H Harada and R Prasad, Simulation and Software Radio for Mobile Communications Artech House, 2002