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.
23 trang |
Chia sẻ: lylyngoc | Lượt xem: 3877 | Lượt tải: 1
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 lu 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:
- btl_matlab_6807.docx