Tải bản đầy đủ (.docx) (22 trang)

Ứng dụng gui trong matlab và simulink trong bài toán cụ thể

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.08 MB, 22 trang )

Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

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.

BTL: GTM&MPTMT

1


SVTH: Nhóm 7 LT Điện 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

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

BTL: GTM&MPTMT

2

SVTH: Nhóm 7 LT Điện 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG
NHẬN XÉT

………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………

………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………

Hà Nội … Ngày … Tháng … Năm
SVTH: Nhóm 7 LT Điện 2-K6
BTL: GTM&MPTMT

3

SVTH: Nhóm 7 LT Điện 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

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
BTL: GTM&MPTMT

4

SVTH: Nhóm 7 LT Điện 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

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.

BTL: GTM&MPTMT

5

SVTH: Nhóm 7 LT Điện 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

- 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.

BTL: GTM&MPTMT

6

SVTH: Nhóm 7 LT Điện 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

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

BTL: GTM&MPTMT

7

SVTH: Nhóm 7 LT Điện 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

-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:

BTL: GTM&MPTMT

8

SVTH: Nhóm 7 LT Điện 2-K6


Trng HCNHN

GVHD: PHM VN HNG

-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

BTL: GTM&MPTMT

9

SVTH: Nhúm 7 LT in 2-K6


Trng HCNHN

GVHD: PHM VN HNG

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
BTL: GTM&MPTMT

10


SVTH: Nhúm 7 LT in 2-K6


Trng HCNHN

GVHD: PHM VN HNG

*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:

BTL: GTM&MPTMT

11

SVTH: Nhúm 7 LT in 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

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
BTL: GTM&MPTMT

12

SVTH: Nhóm 7 LT Điện 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

LËp tr×nh nót Tinh Moi bªn díi dßng function Tinh_Moi_callback(…)
nh sau:

BTL: GTM&MPTMT

13

SVTH: Nhóm 7 LT Điện 2-K6


Trng HCNHN

GVHD: PHM VN HNG

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

BTL: GTM&MPTMT

14

SVTH: Nhúm 7 LT in 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

Bài2: Cho hệ thống điều khiển lò nhiệt có hàm truyền:

Với K là số thứ tự nhóm
Ứng dụng SIMULINK để
a. Khảo sát đáp ứng quá độ của đối tượng
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:

Sau ®ã chänfile/new/modehiÖn lªn b¶ng simulink nh sau

BTL: GTM&MPTMT

15

SVTH: Nhóm 7 LT Điện 2-K6


Trng HCNHN

GVHD: PHM VN HNG

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)==
a. 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)

BTL: GTM&MPTMT

16


SVTH: Nhúm 7 LT in 2-K6


Trng HCNHN

GVHD: PHM VN HNG

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

BTL: GTM&MPTMT

17

SVTH: Nhúm 7 LT in 2-K6


Trng HCNHN


GVHD: PHM VN HNG

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:

BTL: GTM&MPTMT

18

SVTH: Nhúm 7 LT in 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG

Tõ ®å thÞ ta kÎ ®êng tiÕp tuyÕn víi ®iÓm uèn ®Ó t×m T1,T2,K

BTL: GTM&MPTMT

19

SVTH: Nhóm 7 LT Điện 2-K6



Trng HCNHN

GVHD: PHM VN HNG

Từ đồ thị => T1=4 (s), T2=33(s), k=0.47
Từ đây ta có bộ điều chỉnh PID

W(PID)= Kp+Td.P)
Trong đó Kp=1,2.=1,2.0,47=4.653
Ti=2T1=2.4=8(s)
Td=T2/2=33/2=16,5 (s)
W(PID)=4,653+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+ + 16,5P) =4,653 + + 76,7745P
Sơ đồ nh sau:

BTL: GTM&MPTMT

20

SVTH: Nhúm 7 LT in 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG


M« phángvíi thêi gian 300s ta cã ®å thÞ nh sau:

BTL: GTM&MPTMT

21

SVTH: Nhóm 7 LT Điện 2-K6


Trường ĐHCNHN

GVHD: PHẠM VĂN HÙNG
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

BTL: GTM&MPTMT

22

SVTH: Nhóm 7 LT Điện 2-K6



×