Truong DHCNHN GVHD: PHAM VAN HUNG
LOI MO DAU
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 đề đờ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 Í: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
Trang 3
NOI 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 - -c c2 seẰ 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 Bai 1: Lay vi du ứng dụng GUI của Matlap thiết kết giao diện tương tác
Ø1Ữa nỹƯỜI Và THÁY con HS nh vn 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: cc SG Sn So Ơn on n5 DĐ 09 9 5 9 9969 6G 4 9 o4 9 Đ 9 0 990 0 6 6 0 6 6.8 22
Trang 5
CHUONG 1:
TONG QUAN VE MO HiNH HOA MO PHONG VA VAI TRO CUA MO HINH HOA MO PHONG MATLAB
1.1 Giới thiệu chung
MATLAB la 1 phan 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 rat dé su dung 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
Trang 6
Truong DHCNHN GVHD: PHAM VAN HUNG
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, lo ØIC 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 đữ 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 đữ 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, sim, cos, tang, sỐ học phức seuss tới các hàm phức tạp hơn như: nghịch đảo, ma trận, tìm tri riéng cua ma tran,
phép biến đổi Fourier nhanh
Trang 7
- Giao điện chương trình ứng dung 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 dé thao tac cho phép mô hình hóa một hệ thong bang cach vé một sơ đồ khối trên màn hình Nó có thể làm việc với các hệ thong tuyén tinh, 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ệ thong 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 tap
Trang 8
Truong DHCNHN GVHD: PHAM VAN HUNG
Chuong 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 Hgườ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
GUIDE Quick Start
CreateNew GUI Open Existing GUI
GUIDE templates: Preview
3 TT Ti
@\ GUI with Uicontrals # GU! with Axes and Menu
Trang 10Truong DHCNHN GVHD: PHAM VAN HUNG
-R6i sau d6 chon cdc static text, edit text, pushbutton như hình vẽ
Patni ere Poa a
Trang 11Ta thay đổi các khổi chức năng như sau:
*Tai static text 1:
Kick dup vao static text thay g14 tri string va tag ø1ữ nguyên: String: Giai phuong trinh bac 2: ax2+bx+c=0 Ex Property Inspector THT uicontral (text2 "Giai Phuong Trinh Bac 2: ax2+bxtc=0"5 hax 1.0 twlin 0.0 Position [17.6 28.308 70.6 2.923] SelectionHighlight [w]an sliderstep (0.01 0.1] String Giai Phuong Trinh Bac 2: a Style [+] text Tag text2 TooltipString LJlCnntexthlenu [~] =Nane= Units [¥] characters UserData Value Visible *Tai static text 2: String: a=
Tag: giữ nguyên *Tai static text 3: String: b=
Tag: giữ nguyên *Tai static text 4: String: c=
Tag: gift nguyén *Tai static text 5:
Trang 12
Truong DHCNHN GVHD: PHAM VAN HUNG String: Ket Luan Tag: kl *Tai static text 6: String: Nghiem x1 Tag: giữ nguyên *Tai static text 7: String: Nghiem x2 Tag: giữ nguyên * Tại các edit text l 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 cac edit text 4 String: xóa trắng Tag: nghiem_x1 *Tai cac edit text 5 String: xóa trắng Tag: nghiem_ x2
Thay cá gia tri cho nit Tinh va nút Tính mới
Kick dtp vao phan 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:
Trang 13
File Edit View Layout Tools Help
Owe Xoo | Bs) Deter
Giai Phuong Trinh Bac 2: ax2+bx+c=0 a= | | b= | «| | Tinh | ket Luan Nghiem x1 | Nghiem x2 | | Tinh Moi
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
®‡ C:\Documents and Settings\Iran Hiep\Desktop\matlab\bai 1.m
File Edit Text Window Help
Dak)? BRO” | & ASF, E3
1 function varargout = bailivarargin) ^
2| % BATL M-file for bail fig
S| $ BAI1, by itself, creates a new BAII or raises the existing
4) 3 singleton*
| 2%
B| $3 H = BAIL returns the handle to a new BAIL or the handle to
j| & the existing singleton’
8 =
9 $ BÀI 1 ( ' LÀLIBAECE' ,h0h]EcCt,Ewerntbara,handle5, ) calls the lacal
10 š function named CALLBACK in BAIL.M with the given input arguments
11 š
12) & BAI1('Froperty','Value', ) creates a new BAT] or raises the
13 % existing Singleton* fAtarting from the left, property value pairs are
14) 3 applied to the GUI before bail OpeningFunction gets called an
15) + unrecognized property name or invalid value makes property application
16 = stop All inputs are passed to bail _OpeningFcn via varargin
1i 3
18 % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one
Trang 14Truong DHCNHN GVHD: PHAM VAN HUNG
“) C:\Documents and Settings\Tran Hiep\Desktop\matlab\bai1_m*
File Edit Text Window Help
Dee + been 6 mh &)
151 = - Executes on button press in start ^
152) function start Eallback(hlhject, eventdata, handles]
183 (lập trình cho nút Tính ở đây)
154) * hObject handle to start {see GCEO)
155) % eventdata reserved - to be defined in a future version of MATLAB
156] *% handles structure with handles and user data {see GUIDATA)
157 158
159) *% - Executes during object creation, after setting all properties
160) function Ngyhiem xl CreateFen(hObject, eventdata, handles)
161] & hObject handle to Nghiem_xl {see GCBO}
162 * eUentdata reserved - to be defined in a future version of MATLAB
163) % handles empry - handles not created until after all CreateFens called
164
165 * Hint: edit controls usually have a white background on Windows 166 * See ISPC and COMPUTER 167| if ispe 168 set(hObject, 'BackgroundColor','white'): 169) else 170 set(hObject, 'BackgroundColor',get(0, 'defaultUicontrolBackgrowundColor')): 171| end sẻ s ? ‘bail /stat_Callback (Ln 153° Colt | —
Lập trình nút Tình Moi bên dưới dòng function Tĩnh_ MoIi_callback( ) như sau:
°) C;z\Documents and Settings\Tran Hiep\Desktop\matlab\bai1.m* File Edit Text Window Help
Dae Đ =đ Boo 6B mF
203) * handles structure with handles and user data (see GUIDATA) ^
204
205] *% Hints: get(hObject,'String'}) returns contents of Nghiem_xZ as text
206) š strédoublel(getithObject,'String')) returns contents of Nghiem_x2 as a double
207 208
209} % - Executes on butten press in Tinh Moi
210) function Tinh Moi Callback (hObject, eventdata, handles)
211 (lập trình nút Tính Mới tại đây)
212 = hObject handle to Tinh Moi (see GCEO)
213] % eventdata reserved - tơ be defined in a future version of MATLAB
Trang 15Chuong trinh lap trinh cho nit Tinh nhu sau:
a=str2double(get(handles.heso_a,'string')); //chuyén gid tri heso_a thanh q b=str2double(get(handles.heso_b,'string’));// c=str2double(get(handles.heso_c,'string’));// denta=b^2-4*a*c; /Hánh đen ta x1=(sqrt(denta)-b)/(2*a); //tinh x1 x2=-(sqrt(denta)+b)/(2*a); //tinh x2 1f denta>0 //néu den 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 /mế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 den ta <0 thì kết luận hién “Phuong trinh vo nghiem” set(handles.kl,'string', Phuong trinh vo nghiem); xl=[]; //dé chéng x1 x2=[]; //dé chong 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 Tỉnh Moi như sau: (để chống tất cả các edit text và phi ra kết luận là : Hay nhap so moi) Chương trình set(handles.Nghiem_xI1,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’,[]); //dé chong heso_c
set(handles.kl,'string',"Hay nhap so moi’); //ghi ra két luan 14 “hay nhap so moi
Trang 16
Truong DHCNHN GVHD: PHAM VAN HUNG
Bài2: Cho hệ thông điều khiển lò nhiệt có hàm truyền:
()=CŒ—y
Với K là số thứ tự nhúm
Ung dung SIMULINK dé
a Khảo sút đáp ứng quá độ của đối twong
b 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:
L” 5imulink Library Browser
File Edit View Help [ œ + mm | Continuous: simulink,Continuous l=::- 1 h==: i | tig ee Bs | | Continuous | | | Discontinuities NI | + Discrete | ` Discontinuities 3] Look-Up Tables a | Math Operations FP Discrete >| Model Verification Ao
| Model-Wide Utilities fia | Look-Up Tables
> Ports & Subsystems ưa
Trang 17
eats
File Edit View Simulation Format Tools Help
Die & te ¡ |Nomal He BET Ready (100% ode45 Bài tập ta có phương trình trạng thái Với nhóm 7 vay K=7 => SWE a Khao sat dap ứng quá độ của hàm G(s) F5 Từ simulink tà tìm các khối Enc: hàm truyền Scope: hiển thị đồ thị Step: ham 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
day ta duoc so đồ sau
Tai Fen ta nhap G(s)
File Edit View Simulation Format Tools Help
Trang 18Truong DHCNHN GVHD: PHAM VAN HUNG
Ta vao tab simulation/simulation parameters dat thoi gidn bat dau va két thtiic mô phong
0 day 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é thay d6 thi hién lén
tai scope
roi nhan nuit autoscale(hinh 6ng nhom dé xem toàn bộ đồ thị) Ta có được đồ thị như sau:
2H SAY ABE
Để tìm k và T,,T; 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: vao parameter trén scope
Trang 19
Cai dat nhu sau: eis ‘Scope’ parameters General} Data history | Tip: try right clicking on axes
[Limit data points to last: |
IY Save data to workspace Variable name: ScopeData Format: | Structure with time x OK | Cancel Help | Apply 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
Trang 21Từ đây ta có bộ điều chỉnh PID Wep= Kp(1 + —+T,.P) Trong d6 Kp=1,2.— =1,2.—.0,47=4.653 Ti=2T,=2.4=8(s) T,=T,/2=33/2=16,5 (s) > W ep=4,653(1 + —+16,5P)
#Mô phỏng sau khi có bộ điều chỉnh PID
Trang 23KET LUAN
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à:
“UNG DUNG GUI TRONG MATLAB VA SIMULINK TRONG BÀI TOÁN CỤ THE”
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 đã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