BÀI LẬP TRÌNH 3,XÁCĐỊNH PHỔ TRUYỀN QUA CỦA MÀNG, DỰA VÀO BƯỚC SÓNG, ĐỘ DÀY, VÀ PHƯƠNG TRÌNH CHIẾT SUẤT
BÀI LẬP TRÌNH XÁC ĐỊNH PHỔ TRUYỀN QUA CỦA MÀNG DỰA VÀO BƯỚC SĨNG, ĐỘ DÀY VÀ PHƯƠNG TRÌNH CHIẾT SUẤT Các yêu cầu lập trình này: 1) Lập trình chọn vùng bước sóng hoạt động, vùng: vùng truyền suốt (0 – 0.4μm), vùng hấp thụ yếu trung bình (0.4 – 0.7μm), vùng hấp thụ mạnh (0.7 – 1μm) 2) Lập trình chọn bước sóng nhỏ lớn tương ứng với vùng chọn 3) Tạo mảng bước sóng Chọn bước nhảy bước sóng 2nm = 0.002μm 4) Viết chương trình chọn chất cần mơ phỏng, số 12 chất sau: PbTe, Ge, CdTe, ZnSe, ZnS, Ta2O5, YbF3, YF3, SiO2, MgF2, CaF2, BaF2 5) Từ phương trình chiết suất 12 chất, tính chiết suất chất thay đổi theo bước sóng Cho biết phương trình chiết suất cụ thể chất là: PbTe (Lead Telluride) n = 5.0781 + 8.0749 × 107 4.( σ − 6715) + 6.0882 × 107 Ge (Germanium) 6.0528 × 107 n = 4.0517 + (σ − 8131 5) + 7.9566 × 106 CdTe (Cadmium Telluride) n = 2.0681 + 9.2789 × 107 (σ − 8157 6) + 1.2387 × 108 ZnSe (Zinc Selenide) n = 2.0845 + 3.4469× 108 ( σ − 6715) + 2.7301 × 108 ZnS (Zinc Sulphide) 7.0775 × 108 n = 1.7951 + ( σ − 35622) + 8.3564 × 108 Ta2O5 (Tantalum Pentoxide) n = 1.9079 + 6.4378 × 107 (σ − 27923) + 2.2668 × 109 YbF3 (Ytterbium Fluoride) n = 20.09287 + 2.7005 × 109 (σ − 15717 ) + 1.9486 × 109 YF3 (Yttrium Fluoride) 4.8652 × 108 n = 1.0527 + ( σ − 14675) + 1.1942 × 109 SiO2 (Silicon Dioxide) n = 0.76991 + 4.3456 × 109 (σ − 40506) + 4.4229 × 109 MgF2 (Magnesium Fluoride) n = 1.371 + 1.9465 × 108 (σ − 132800 ) + 2.9588 × 109 CaF2 (Calcium Fluoride) n = 1.1199 + 1.1747 × 109 (σ − 41379) + 4.8958 × 109 BaF2 (Barium Fluoride) n = 0.86148 + σ= 1.50799 × 109 (σ − 30788 ) + 2.3347 × 109 λ Trong đó: 6) Viết chương trình chọn độ dày màng: 0.5μm, 5μm 15μm 7) Chọn Ta2O5 làm chất khảo sát Tính độ truyền qua theo bước sóng dựa vào công thức (3.8): CT (3.8): T= Ax B − Cx cos ϕ + Dx2 Trong đó: A = 16n2S B = (n+1)3(n+S2) C = 2(n2-1)(n2-S2) D = (n-1)3(n-S2) φ = 4πnd/λ x = exp(-αd) 8) Vẽ đồ thị độ truyền qua T thay đổi theo bước sóng chất Ta 2O5 Hướng dẫn: Đây toán ngược lập trình lại mức độ đơn giản dễ lập trình Bốn câu đầu bạn dễ dàng đối phó mà khơng chút khó Bạn tham khảo vài đoạn chương trình CÂU Cách 1: Clc clear all % Cau 1: Lap trinh chon vung hoat dong fprintf('Chon vung hoat dong Nhap so ung voi vung truyen suot, so voi vung hap thu yeu - trung binh, so voi vung hap thu manh ') key1=input('Nhap:'); if (key1~=1)&(key1~=2)&(key1~=3) error('So lieu khong hop le Vui long nhap lai.') end Cách 2: Chỉ cần thay fprintf thành disp, bạn có thêm cách clc clear all % Cau 1: Lap trinh chon vung hoat dong disp('Chon vung hoat dong Nhap so ung voi vung truyen suot, so voi vung hap thu yeu - trung binh, so voi vung hap thu manh.') key1=input('Nhap:'); if (key1~=1)&(key1~=2)&(key1~=3) error('So lieu khong hop le Vui long nhap lai.') end Ở đây, thấy có xuất hàm error Hàm có độc đáo người chạy chương trình phạm lỗi nhập sai, báo lỗi vứt bỏ nhiệm vụ, không làm tiếp Hay chưa? Bạn sử dụng vịng lặp, bắt người chạy nhập hoài nhập hoài số liệu hợp lệ thơi Cách thí dụ, cho thấy hàm while sử dụng hiệu Cách 3: clc clear all % Cau 1: Lap trinh chon vung hoat dong disp('Chon vung hoat dong Nhap so ung voi vung truyen suot, so voi vung hap thu yeu - trung binh, so voi vung hap thu manh.') key1=input('Nhap:'); while (key1~=1)&(key1~=2)&(key1~=3) key1=input('So lieu khong hop le Vui long nhap lai Nhap:'); end CÂU “Phóng lao phải theo lao”, có vùng phổ hoạt động nên bạn có mảng bước sóng khác Cách lập trình khéo léo điều cần thiết Dưới vài cách tham khảo Cách 1: Dùng lenh dieu kien if % Cau 2: Chon buoc song nho nhat, lon nhat tuong ung voi tung vung lamdamin=input('Nhap vao buoc song nho nhat:') lamdamax=input('Nhap vao buoc song lon nhat:') if (lamdamax=0.35)&(lamdamax=0.4)&(lamdamax=0.7)&(lamdamax