Luận văn Ứng dụng GUI trong matlab và simulink trong bài toán cụ thể

Sau một thời gian thực hiện bài tập lớn với sự hướng dẫn của thầy giáo Phạm Văn Hùng , cùng với sự giúp đỡ nhiệt tình của các bạn trong lớp, cùng với sự nỗ lực của cả nhóm đã hoàn thành bài tập lớn môn giải tích mạng và mô phỏng trên máy tính với đề tài là: “ỨNG DỤNG GUI TRONG MATLAB VÀ SIMULINK TRONG BÀI TOÁN CỤ THỂ”. Hiểu được cách thức lập trình được GUI và SIMULINK trong matlab, các ứng dụng được ứng dụng rộng dãi trong ngành điện. - Lập trình được căn bản trong 2 chương trình GUI và SIMULINK trên. Tuy nhiên do thời gian và trình độ có hạn cũng như kinh nghiệm còn hạn chế. Bài tập lớn không thể tránh khỏi những thiếu sót, chúng em rất mong được sự giúp đỡ chỉ bảo của các thầy cô để chúng em có thể hoàn thiện tốt hơn trong những lần sau.

docx23 trang | Chia sẻ: lylyngoc | Lượt xem: 3877 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Ứng dụng GUI trong matlab và simulink trong bài toán cụ thể, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Luận văn Đề tài: ỨNG DỤNG GUI TRONG MATLAB VÀ SIMULINK TRONG BÀI TOÁN CỤ THỂ LỜI MỞ ĐẦU Trong những năm gần đây khoa học công nghệ phát triển hết sức nhanh chóng, đặc biệt là trong lĩnh vực và truyền thông, tin học ứng dụng. Những thiết bị nghe nhìn, thiết bị kỹ thuật số máy tính,…đã trở thành những phương tiện hết sức phổ biến trong xã hội , nhất là máy tính .Có thể nói máy tính là phương tiện thiết yếu đối với tất cả moi người.Một trong những yêu cầu của người học đối với việc giải mạch điện là kiểm tra lại kết quả đã tìm được là đúng hay sai. Vì vậy việc sử dụng máy tính làm công việc này là rất thích hợp.Với những lý do trên tôi quyết định nghiên cứu đề tài “ỨNG DỤNG GUI TRONG MATLAB VÀ SIMULINK TRONG BÀI TOÁN CỤ THỂ”.Từ các yêu cầu của đề bài trên ta xẽ chia nhỏ các phần yêu cầu của bài để giải quyết vấn đề.Đề tài trên xẽ được chia ra làm 2 phần nghiên cứu và ứng dụng cụ thể cho từng phần và được chia ra làm 3 chương để tìm hiểu và thao tác chương trình của bài. Chương 1:Tổng quan về mô hình hóa mô phỏng và vai trò của phầnmềm Matlab trong mô hình hóa mô phỏng Chương 2: Thực hiện các yêu cầu của bài tập 1,2 Chương 3: Kết luận. NỘI DUNG TRANG * Chương 1: Tổng quan về mô hình hóa mô phỏng và vai trò của phần mềm Matlap trong mô hình hóa mô phỏng……… 4 1.1 Giới thiệu chung……………………………………………………... 4 * Chương 2: Thực hiện các yêu cầu của Bài tập 1 và Bài tập 2………. 7 Bài 1: Lấy ví dụ ứng dụng GUI của Matlap thiết kết giao diện tương tác giữa người và máy………………………………………………… 7 Bài 2: Bài tập về hàm truyền của hệ thống điều khiển…………………… 15 Kết luận: ………………………………………………………………… 22 NHẬN XÉT ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… Hà Nội … Ngày … Tháng … Năm SVTH: Nhóm 7 LT Điện 2-K6 CHƯƠNG 1: TỔNG QUAN VỀ MÔ HÌNH HÓA MÔ PHỎNG VÀ VAI TRÒ CỦA MÔ HÌNH HÓA MÔ PHỎNG MATLAB 1.1. Giới thiệu chung MATLAB là 1 phần mềm ứng dụng chạy trong môi trường Windows do hãng MathWorks sản xuất và cung cấp, nó tích hợp các công cụ rất mạnh phục vụ tính toán, lập trình, thiết kế, mô phỏng, V.V... trong một môi trường rất dễ sử dụng trong đó các bài toán và các lời giải được biểu diễn theo các ký hiệu toán học quen thuộc. Có thể nói Matlab là ngôn ngữ của kỹ thuật, đang được rất nhiều các nhà khoa học, các cán bộ kỹ thuật, giảng viên và sinh viên các trường đại học kỹ thuật ứng dùng. Các ứng dụng điển hình là: - Toán học và tính toán. - Phát triển thuật toán. - Tạo mô hình, mô phỏng và tạo giao thức. - Khảo sát, phân tích số liệu. - Đồ hoạ khoa học kỹ thuật. - Phát triển ứng dụng, gồm cả xây dựng giao diện người dùng đồ hoạ GUI. - Thiết kế các hệ thống điều khiển trong thời gian thực Matlab cung cấp một họ các phương pháp theo hướng chuyên dụng hóa được gọi là các Toolbox (hộp công cụ). Các Toolbox cho phép người sử dụng học và áp dụng các kỹ thuật chuyên dụng cho một lĩnh vực nào đó. Toolbox là một tập hợp toàn diện các hàm của Matlab (M-file) cho phép mở rộng môi trường Matlab để giải các lớp bài toán cụ thể. Các lĩnh vực trong đó có sẵn các Toolbox bao gồm: Xử lý tín hiệu, hệ thống điều khiển, logic mờ, mạng nơron, mô phỏng ... Hệ thống Matlab gồm có 5 phần chính: - Ngôn ngữ Matlab: Là một ngôn ngữ ma trận, mảng cấp cao với các câu lệnh, hàm, cấu trúc dữ liệu vào / ra, các tính năng lập trình hướng đối tượng. Nó cho phép lập trình các ứng dụng từ nhỏ đến các ứng dụng lớn, từ các ứng dụng đơn giản đến các ứng dụng phức tạp. - Môi trường làm việc của Matlab: Đây là một bộ các công cụ và phương tiện mà bạn sử dụng với tư cách là người dùng hoặc người lập trình Matlab. Nó bao gồm các phương tiện cho việc quản lý các biến trong không gian làm việc Workspace cũng như xuất nhập khẩu dữ liệu. Nó cũng bao gồm các công cụ để phát triển, quản lý, gỡ rối và định hình M-file, ứng dụng của Matlab. - Xử lý đồ họa: Đây là một hệ thống đồ họa của Matlab. Nó bao gồm các lệnh cao cấp cho trực quan hóa dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động, ... Nó cũng cung cấp các lệnh cấp thấp cho phép bạn tùy biến giao diện đồ họa cũng như đi xây dựng một giao diện đồ họa hoàn chỉnh cho ứng dụng Matlab của mình. - Thư viện toán học Matlab: Đây là một tập hợp khổng lồ các thuật toán tính toán từ các hàm cơ bản như: cộng, trừ, nhân, chia, sin, cos, tang, số học phức .....tới các hàm phức tạp hơn như: nghịch đảo, ma trận, tìm trị riêng của ma trận, phép biến đổi Fourier nhanh. - Giao diện chương trình ứng dụng Matlab API (Application Program Interface): Đây là một thư viện cho phép bạn viết các chương trình C và Fortran tương thích với Matlab. Simulink là một chương trình đi kèm với Matlab, là một hệ thống tương tác với việc mô phỏng các hệ thống động học phi tuyến. Nó là một chương trình đồ họa sử dụng chuột để thao tác cho phép mô hình hóa một hệ thống bằng cách vẽ một sơ đồ khối trên màn hình. Nó có thể làm việc với các hệ thống tuyến tính, phi tuyến, hệ thống liên tục theo thời gian, hệ thống gián đoạn theo thời gian, hệ thống đa biến ... Đối với các hệ thống phức tạp, phi tuyến, ngẫu nhiên, các tham số biến đổitheo thời gian, phương pháp giải tích truyền thống không thể cho ta lời giải chính xác được. Lúc này, phương pháp mô hình hóa và mô phỏng phát huy thế mạnh của mình và trong nhiều trường hợp nó là giải pháp duy nhất để nghiên cứu các hệ thống phức tạp. Chương 2: Thực hiện các yêu cầu của 1,bài tập 2 Bµi 1:Lấy ví dụ ứng dụng GUI của Matlab thiết kế giao diện tương tác giữa người và máy. VÝ dô øng dông Gui gi¶i ph­¬ng tr×nh bËc 2: -Vµo comment window matlab gâ lÖnh guide -Cöa sæ matlab hiÖn lªn -Ta chän Blank Gui (Default) (chän lµm viÖc víi mét Gui trèng) -Cöa sæ Gui hiÖn lªn nh­ sau: -Råi sau ®ã chän c¸c static text, edit text, pushbutton nh­ h×nh vÏ -Khi lËp tr×nh Matlab ta cÇn quan t©m ®Õn string, vµ tag cña c¸c khèi chøc n¨ng Ta thay ®æi c¸c khæi chøc n¨ng nh­ sau: *T¹i static text 1: Kick ®óp vµo static text thay gi¸ trÞ string vµ tag gi÷ nguyªn: String: Giai phuong trinh bac 2: ax2+bx+c=0 *T¹i static text 2: String: a= Tag: gi÷ nguyªn *T¹i static text 3: String: b= Tag: gi÷ nguyªn *T¹i static text 4: String: c= Tag: gi÷ nguyªn *T¹i static text 5: String: Ket Luan Tag: kl *T¹i static text 6: String: Nghiem x1 Tag: gi÷ nguyªn *T¹i static text 7: String: Nghiem x2 Tag: gi÷ nguyªn *T¹i c¸c edit text 1 String: xãa tr¾ng Tag: heoso_a *T¹i c¸c edit text 2 String: xãa tr¾ng Tag: heoso_b *T¹i c¸c edit text 3 String: xãa tr¾ng Tag: heoso_c *T¹i c¸c edit text 4 String: xãa tr¾ng Tag: nghiem_x1 *T¹i c¸c edit text 5 String: xãa tr¾ng Tag: nghiem_x2 Thay c¸ gi¸ trÞ cho nót TÝnh vµ nót TÝnh míi Kick ®óp vµo phÇn pushbutton *Pushbutton 1: String: Tinh Tag: start *Pushbutton 2: String: Tinh Moi Tag: Tinh_moi Sau khi c¨n nhËp tag vµ string cho c¸c kh«i kÐo c¸c nót vµ « sao cho c©n b»ng dÔ nh×n. Ta ®­îc giao diÖn nh­ sau: Khi c©n chØnh xong giao diÖn ta vµo file/save th× matlab sinh ra file cïng tªn víi bµi lµm cã ®u«i .m vµ chóng ta cã thÓ lËp tr×nh t¹i file nµy Ta lËp tr×nh cho nót Tinh bªn d­íi dßng function start_callback(……) nh­ h×nh LËp tr×nh nót Tinh Moi bªn d­íi dßng function Tinh_Moi_callback(…) nh­ sau: Ch­¬ng tr×nh lËp tr×nh cho nót Tinh nh­ sau: a=str2double(get(handles.heso_a,'string')); //chuyÓn gi¸ trÞ heso_a thµnh q b=str2double(get(handles.heso_b,'string'));//…….. c=str2double(get(handles.heso_c,'string'));//……….. denta=b^2-4*a*c; //tÝnh ®en ta x1=(sqrt(denta)-b)/(2*a); //tÝnh x1 x2=-(sqrt(denta)+b)/(2*a); //tÝnh x2 if denta>0 //nÕu ®en ta >0 th× kÕt luËn hiÖn “Phuong trinh co 2 nghiem” set(handles.kl,'string','Phuong trinh co 2 nghiem'); elseif denta==0 //nÕu ®en ta =0 th× kÕt luËn hiÖn “Phuong trinh co nghiem kep” set(handles.k1,'string','Phuong trinh co nghiem kep'); else //nÕu ®en ta <0 th× kÕt luËn hiÖn “Phuong trinh vo nghiem” set(handles.kl,'string','Phuong trinh vo nghiem'); x1=[]; //®Ó chèng x1 x2=[]; //®Ó chèng x2 end set(handles.Nghiem_x1,'string',x1); //ghi x1 ra nghiem_x1 set(handles.Nghiem_x2,'string',x2); //ghi x2 ra nghiem x_2 Ch­¬ng tr×nh lËp tr×nh cho nót Tinh Moi nh­ sau: (®Ó chèng tÊt c¶ c¸c edit text vµ ghi ra kÕt luËn lµ : Hay nhap so moi) Ch­¬ng tr×nh set(handles.Nghiem_x1,'string',[]); //®Ó chèng nghiem_x1 set(handles.Nghiem_x2,'string',[]); //®Ó chèng nghiem_x2 set(handles.heso_a,'string',[]); //®Ó chèng heso_a set(handles.heso_b,'string',[]); //®Ó chèng heso_b set(handles.heso_c,'string',[]); //®Ó chèng heso_c set(handles.kl,'string','Hay nhap so moi'); //ghi ra kÕt luËn lµ “hay nhap so moi Bài2: Cho hệ thống điều khiển lò nhiệt có hàm truyền: Gs=K100.S+3(K.S+5) Với K là số thứ tự nhóm Ứng dụng SIMULINK để Khảo sát đáp ứng quá độ của đối tượng Tổng hợp hệ thống điều khiển lò nhiệt với bộ điều khiển PID thiết kế theo phương pháp Zigler- Nichols 1 T¹i cña sæ comment window gâ simulink hiÖn lªn b¶ng c¸c khæi nh­ sau: Sau ®ã chänfile/new/modehiÖn lªn b¶ng simulink nh­ sau Bµi tËp ta cã ph­¬ng tr×nh tr¹ng th¸i Víi nhãm 7 vËy K=7 => G(s)=7(100s+3)(7s+5)=7700s2+521s+15 Kh¶o s¸t ®¸p øng qu¸ ®é cña hµm G(s) Tõ simulink tµ t×m c¸c khèi Fnc: hµm truyÒn Scope: hiÓn thÞ ®å thÞ Step: hµm b­íc nh¶y Råi sau ®ã kÐo th¶ sang m« mµn h×nh m« pháng mode ta võa míi t¹o sau ®ã nèi d©y ta ®­îc s¬ ®å sau T¹i Fcn ta nhËp G(s) Ta vµo tab simulation/simulation parameters ®Æt thêi gi¸n b¾t ®Çu vµ kÕt thóc m« pháng. ë ®©y ta chon start time: 0 stop time: 200s sau ®ã kick ®óp vµo scope hiÖn lªn ®å thÞ b¾t ®Çu m« pháng b»ng c¸ch vµo tab simulation/start => ta sÏ thÊy ®å thÞ hiÖn lªn t¹i scope råi nhÊn nót autoscale(h×nh èng nhßm ®Ó xem toµn bé ®å thÞ) Ta cã ®­îc ®å thÞ nh­ sau: §Ó t×m k vµ T1,T2 th× t¹i ®iÓm uèn cña ®å thÞ ta kÎ tiÕp tuyÕn ®Ó t×m c¸c thèng sè trªn: Ta cµi ®Æt scope nhø sau: vµo parameter trªn scope Cµi ®Æt nh­ sau: Råi sau ®ã vµo comment window ®¸nh lÖnh sau >>plot(ScopeData.time,ScopeData.signals.values); >>grid on //hiÖn l­íi ®å thÞ sÏ ®­îc l­u sang figure Figure hiÖn lªn nh­ sau: Tõ ®å thÞ ta kÎ ®­êng tiÕp tuyÕn víi ®iÓm uèn ®Ó t×m T1,T2,K Tõ ®å thÞ => T1=4 (s), T2=33(s), k=0.47 Tõ ®©y ta cã bé ®iÒu chØnh PID W(PID)= Kp(1+1Ti.P+Td.P) Trong ®ã Kp=1,2.T2T1.k=1,2.334.0,47=4.653 Ti=2T1=2.4=8(s) Td=T2/2=33/2=16,5 (s) W(PID)=4,653(1+18P+16,5P) *M« pháng sau khi cã bé ®iÒu chØnh PID Sau khi thµnh lËp bé ®iÒu chØnh PID ta m« pháng trªn matlab theo s¬ ®å sau: VíiW(PID)=4,653(1+1 8P + 16,5P) =4,653 + 4,6538P + 76,7745P S¬ ®å nh­ sau: M« phángvíi thêi gian 300s ta cã ®å thÞ nh­ sau: KẾT LUẬN Sau một thời gian thực hiện bài tập lớn với sự hướng dẫn của thầy giáo Phạm Văn Hùng , cùng với sự giúp đỡ nhiệt tình của các bạn trong lớp, cùng với sự nỗ lực của cả nhóm đã hoàn thành bài tập lớn môn giải tích mạng và mô phỏng trên máy tính với đề tài là: “ỨNG DỤNG GUI TRONG MATLAB VÀ SIMULINK TRONG BÀI TOÁN CỤ THỂ”. Hiểu được cách thức lập trình được GUI và SIMULINK trong matlab, các ứng dụng được ứng dụng rộng dãi trong ngành điện. Lập trình được căn bản trong 2 chương trình GUI và SIMULINK trên. Tuy nhiên do thời gian và trình độ có hạn cũng như kinh nghiệm còn hạn chế. Bài tập lớn không thể tránh khỏi những thiếu sót, chúng em rất mong được sự giúp đỡ chỉ bảo của các thầy cô để chúng em có thể hoàn thiện tốt hơn trong những lần sau. Chúng em xin chân thành cảm ơn thầy giáo PHẠM VĂN HÙNG và các bạn bè trong lớp đã giúp đỡ chúng em làm bài tập này. Hà nội, Ngày 18 Tháng 4 Năm 2013 SVTH:Nhóm 7 LT Điện 2-K6

Các file đính kèm theo tài liệu này:

  • docxbtl_matlab_6807.docx
Luận văn liên quan