1. Trang chủ
  2. » Luận Văn - Báo Cáo

Bài tập lớn lập trình giao diện trong matlab

22 2,2K 31

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 602 KB
File đính kèm BTL_NguyenCuongThinh_41301662.rar (569 KB)

Nội dung

Báo cáo bài tập lớn môn lập trình mô phỏng, lập trình giao diện GUI. Bao gồm file .m và .figĐề bài:Viết giao diện thực hiện những yêu cầu sau:(3 điện trở Rx lần lượt là 10, 20, 15 Ω)1)Hiển thị mạch điện lên giao diện2)Đóng, mở khóa Kx bằng check box3)Cho phép nhập giá trị R và điện áp V4)Hiển thị chỉ số gá trị các linh kiện5)Hiển thị chỉ số ampe kế và vôn kế, cảnh báo quá dòng qua R (I¬max=5A)

Trang 1

MATLAB

Trang 2

1) Hiển thị mạch điện lên giao diện

2) Đóng, mở khóa Kx bằng check box

3) Cho phép nhập giá trị R và điện áp V

4) Hiển thị chỉ số gá trị các linh kiện

5) Hiển thị chỉ số ampe kế và vôn kế, cảnh báo quá dòng qua R (Imax=5A)

Trang 3

1.1 CƠBẢNVỀLẬPTRÌNHGUIDETRONGMATLAB 1 1.2 GIAODIỆNTHỰCHIỆNĐỀBÀI 5

CHƯƠNG 2 THIẾT KẾ GIAO DIỆN 6

2.1 THIẾTKẾGIAODIỆN 6

Trang 4

CHƯƠNG 1 GIỚI THIỆU

1.1 Cơ bản về GUI trong matlab

Để vào guide, ta làm như sau:

Mở phần mềm Matlab (ở đây là Matlab 2015a, các phiên bản khác cũng tương tự):

Hình 1-

Trong cửa sổ Command Windows, nhập lệnh “guide” nhấn Enter sẽ xuất hiện cửa

sổ Guide Quick Start:

Hình 1-

Chọn OK sẽ xuất hiện 1 cửa sổ khác, chúng ta sẽ thực hiện tạo giao diện tại đây.

Trang 5

Hình 1-

Phía trái cửa sổ có các thành phần sau:

+ Push Button: là nút nhấn, khi nhấn vào sẽ thực thi lệnh trong cấu trúc hàm

callback của nó.

+ Slider: là thanh trượt cho phép người dùng di chuyển thanh trượt để thục thi lệnh + Radio Button: Nó giống như Check Box nhưng thường được sử dụng để tạo sự lựa chọn duy nhất, tức là 1 lần chỉ được chọn 1 trong số các nhóm nhiều nút Khi một ô được chọn thì các ô còn lại trong nhóm bị bỏ chọn.

+ Check box: Sử dụng để đánh dấu tích (thực thi) vào và có thể check nhiều ô để thực thi.

+ Edit Text: là nơi các kí tự được nhập vào từ người dùng, người dùng có thể thay đổi được.

+ Static Text: Là các kí tự được hiển thị thông qua các callback, hoặc thông thường

để viết nhãn cho các biểu tượng, người dùng không thể thay đổi nội dung.

Trang 6

+ Pop-up Menu: mở ra danh sách các lực chọn khi người dùng nhấp chuột vào Chỉ chọn được 1 mục trong danh sách các mục.

+ List Box: hộp thoại danh sách cách mục, cho phép người dùng chọn một hoặc nhiều mục.

+ Toggle Button: là nút nhấn có 2 điều khiển, khi nhấp chuột và nhả ra, nút nhấn được giữ và lệnh thực thi, khi nhấp chuột vào lần thứ 2, nút nhấn nhả ra, hủy bỏ lệnh vừa thực thi.

+ Table: tạo ra một bảng tương tự trong Excel.

+ Axes: Đây là giao diện đồ họa hiển thị hình ảnh, nó có nhiều thuộc tính bao gồm: không gian 2D (theo trục đứng và trục ngang), 3D (hiển thị không gian 3 chiều) + Panel: Tạo ra một mảng nhóm các biểu tượng lại với nhau giúp ta dễ kiểm soát và thao tác khi di chuyển.

+ Button Group: quản lí sự lựa chọn của nút Radio Button.

+ Active Control: Quản lí một nhóm các bút hoặc các chương trình liên quan với nhau trong Active.

Trang 7

Ví dụ để tạo 1 nút nhấn, ta chọn Push Button sau đó kéo thả trong vùng làm việc:

Trang 8

1.2 Giao diện thực hiện đề bài

Hình 1-

Giao diện thực hiện yêu cầu hiển thị mạch điện, đóng/mở khóa K bằng check box, cho phép nhập R và V, hiển thị chỉ sổ giá trị linh kiện, hiển thị chỉ số ampe kế, volt kế, cảnh báo quá dòng qua R.

Việc sử dụng giao diện rất đơn giản, người dùng chỉ cần check chọn khóa K nào đóng/mở, nhập giá trị R, V trong phần tùy chỉnh mạch điện, sau đó nhấn nút “tính toán” các chỉ sổ sẽ được hiện lên trên giao diện.

Trang 9

CHƯƠNG 2 THIẾT KẾ GIAO DIỆN

Trong phần này sẽ mô tả các bước để tạo được giao diện thực hiện yêu cầu của

đề bài như trong phần 1B

2.1 Thiết kế giao diện

Mở matlab, nhập “guide” vào command windows sau đó nhấn enter để vào gui, thêm các thành phần như sau:

Hình 2 -

Trang 10

Chỉnh sửa String trong Inspector và save lại vào 1 thư mục nào đó:

Hình 2 - Đặt tag cho từng thành phần:

Để tiện cho việc gọi các thành phần ra trong code thì ta đặt tên tag được thống kê trong bảng dưới đây (có thể chỉnh sửa theo ý thích):

Trang 11

Hình 2 -

Nếu đã ưng ý thì tiếp tục đến phần thứ 2: Lập trình cho các thành phần.

Trang 12

2.2 Lập trình cho các thành phần

Có 2 thành phần cơ bản mà ta cần phải lập trình đó là axes hiển thị mạch điện và nút nhấn cho ra kết quả.

2.2.1 Hiển thị mạch điện lên giao diện:

Để có mạch điện hiển thị trong giao diện thì tất nhiên chúng ta cần phải vẽ rồi, đơn giản nhất là dùng Paint có sẵn trong windows:

Mở paint lên:

Hình 2 -

Trang 15

Sau đó nhập code vào dưới phần này:

function tinh_Callback(hObject, eventdata, handles)

% hObject handle to tinh (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

Rtd = 1/ ((t1/R1) + (t2/R2) + (t3/R3)); % tinh dien tro tuong duong cua

%3 dien tro R, them t vao bieu thuc de neu khoa k mo thi t =0, nhu vay

%xem nhu khong co R

IR = V/(Rtd + R); % tinh dong qua cac dien tro

IR1 = t1*(V-IR*R)/R1;

IR2 = t2*(V-IR*R)/R2;

IR3 = t3*(V-IR*R)/R3;

% hien thi ket qua

set(handles.I, 'String', IR); % dat gia tri IR vao thuoc tinh String cua thanh phan I

set(handles.I1, 'String', IR1); % tuong tu o tren

set(handles.I2, 'String', IR2);

set(handles.I3, 'String', IR3);

set(handles.v, 'String', V-IR*R)

set(handles.V1, 'String', IR1*R1)

set(handles.V2, 'String', IR2*R1)

set(handles.V3, 'String', IR3*R1)

if IR>=5 %hien thi canh bao qua dong, neu dong lon hon 5A thi dat mau cua

Trang 16

CHƯƠNG 3 THỰC NGHIỆM

Giao diện hoàn chỉnh:

Hình 3 -

Trang 17

Thử nghiệm giao diện với các thông số sau:

Trang 18

 Thử nghiệm quá dòng:

Hình 3 -

Khi dòng qua R >5A đã cảnh báo quá dòng bằng cách bôi đỏ giá trị dòng

điệnPASS

Trang 19

Phụ lục: Code đầy đủ

function varargout = BTL_41301662(varargin)

% BTL_41301662 MATLAB code for BTL_41301662.fig

% BTL_41301662, by itself, creates a new BTL_41301662 or raises the existing

% applied to the GUI before BTL_41301662_OpeningFcn gets called An

% unrecognized property name or invalid value makes property

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help BTL_41301662

% Last Modified by GUIDE v2.5 18-Oct-2015 11:10:09

% Begin initialization code - DO NOT EDIT

Trang 20

% End initialization code - DO NOT EDIT

% - Executes just before BTL_41301662 is made visible

function BTL_41301662_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% varargin command line arguments to BTL_41301662 (see VARARGIN)

% Choose default command line output for BTL_41301662

% - Outputs from this function are returned to the command line

function varargout = BTL_41301662_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% - Executes on button press in tinh

function tinh_Callback(hObject, eventdata, handles)

% hObject handle to tinh (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

Trang 21

Rtd = 1/ ((t1/R1) + (t2/R2) + (t3/R3)); % tinh dien tro tuong duong cua

3 dien tro R, them t vao bieu thuc de neu khoa k mo thi t =0, nhu vay xemnhu khong co R

IR = V/(Rtd + R); % tinh dong qua cac dien tro

IR1 = t1*(V-IR*R)/R1;

IR2 = t2*(V-IR*R)/R2;

IR3 = t3*(V-IR*R)/R3;

% hien thi ket qua

set(handles.I, 'String', IR); % dat gia tri IR vao thuoc tinh String cua thanh phan I

set(handles.I1, 'String', IR1); % tuong tu o tren

set(handles.I2, 'String', IR2);

set(handles.I3, 'String', IR3);

set(handles.v, 'String', V-IR*R)

set(handles.vr, 'String', IR*R)

set(handles.V1, 'String', IR1*R1)

set(handles.V2, 'String', IR2*R2)

set(handles.V3, 'String', IR3*R3)

if IR>=5 %hien thi canh bao qua dong, neu dong lon hon 5A thi dat mau cua

IR thanh mau do

set(handles.I,'BackgroundColor','Red');

end

% - Executes on button press in K1

function K1_Callback(hObject, eventdata, handles)

% hObject handle to K1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of K1

% - Executes on button press in K2

function K2_Callback(hObject, eventdata, handles)

% hObject handle to K2 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of K2

% - Executes on button press in K3

function K3_Callback(hObject, eventdata, handles)

% hObject handle to K3 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of K3

% - Executes during object creation, after setting all properties

Trang 22

function R_Callback(hObject, eventdata, handles)

% hObject handle to R (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of R as text

% str2double(get(hObject,'String')) returns contents of R as a double

% hObject handle to VR (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Hints: get(hObject,'String') returns contents of VR as text

% str2double(get(hObject,'String')) returns contents of VR as a double

% - Executes during object creation, after setting all properties

function hinh_CreateFcn(hObject, eventdata, handles)

% hObject handle to hinh (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles empty - handles not created until after all CreateFcns called

imshow('C:\Users\5480\Pictures\machdien.png');

% Hint: place code in OpeningFcn to populate hinh

Ngày đăng: 05/11/2015, 21:01

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w