59
BÀI TẬP THỰC HÀNH SỐ 1 CÁC LỆNH CƠ BẢN TRONG MATLAB I. Làm quen với môi trường cửa sổ làm việc Matlab. 1. Một số thao tác cơ bản trong MATLAB Trong MATLAB, thanh trình đơn thay đổi tùy theo cửa sổ mà ta lựa chọn. Tuy vậy các trình đơn File, Desktop, Window, Help mặt hầu hết trong các thanh trình đơn. Trình đơn File: New: tạo một đối tượng mới (biến, m-file, figure, model, GUI). Open: mở một file theo định dạng của MATLAB (*.m, *.mat, *.mdl) Import data…: nhập dữ liệu từ các file khác vào MATLAB. Save workspace…: lưu các biến trong MATLAB vào file *.mat.

Bài tập thực hành số 1

Embed Size (px)

Citation preview

Page 1: Bài tập thực hành số 1

BÀI TẬP THỰC HÀNH SỐ 1CÁC LỆNH CƠ BẢN TRONG MATLAB

I. Làm quen với môi trường cửa sổ làm việc Matlab.1. Một số thao tác cơ bản trong MATLAB

Trong MATLAB, thanh trình đơn thay đổi tùy theo cửa sổ mà ta lựa chọn. Tuy vậy các trình đơn File, Desktop, Window, Help có mặt hầu hết trong các thanh trình đơn.

Trình đơn File: New: tạo một đối tượng mới (biến, m-file, figure, model, GUI). Open: mở một file theo định dạng của MATLAB (*.m, *.mat, *.mdl) Import data…: nhập dữ liệu từ các file khác vào MATLAB. Save workspace…: lưu các biến trong MATLAB vào file *.mat. Set path: khai báo các đường dẫn của các thư mục chứa các m-file. Preferences: thay đổi các định dạng về font, font size, color cũng như các tùy chọn

cho Editor, Command Window v.v. Page Setup: định dạng trang in. Print: in.

Trình đơn Desktop: Desktop layout: sắp xếp các cửa sổ trong giao diện.

Page 2: Bài tập thực hành số 1

Save layout: lưu cách sắp xếp cửa sổ.Trình đơn Window dùng để kích họat (activate) cửa sổ.Nút Start cung cấp shortcut tới các công cụ trong MATLAB+ Command Window (Cửa sổ lệnh ).+ Current Directory ( Cửa sổ thư mục hiện hành ).+ Command History (Cửa sổ lịch sử ).+ Work Space ( Không gian làm việc )

2. Các chức năng trên cửa sổ lệnh: Clc: làm sạch màn hình.

Clear: làm sạch cửa sổ workspace. Help: lấy thông tin trợ giúp. Edit: soạn thảo chương trình. Type: xem nội dung của file. ←, → : dịch chuyển con trỏ trái phải.

↑, ↓: chọn lại những lệnh đă thực hiện.3. Gán các kiểu dữ liệu cho biến:

Thực hiện các dòng lệnh sau và kiểm tra kết quả.>> a = 5 % gán dữ liệu số nguyên>> b = pi % gán số pi = 3.14159265 cho biến d >>h = nan % khoâng phaûi soá

4. Định dạng các kiểu dữ liệu số với lệnh format : long, long e, short, short e, trong đó e là cơ số 10.

Thực hiện 2 dòng lệnh sau:>> format long % số chấm cố định là 15 con số>> A = piThực hiện tiếp 2 dòng lệnh sau rồi so sánh kết quả.>> format long e % số dấu chấm động là 15 con số>> A = piSo saùnh keát quaû khi laàn löôït thöïc hieän caùc doøng leänh

treân cho thaáy : keát quaû baèng nhau. Nhöng ñöôïc bieåu dieãn khaùc nhau:

vôùi A = 3,14159265358973e+000 trong ñoù e + 000 = 100 = 1Tương tự thực hiện các dòng lệnh sau.>> format short% số chấm cố định là 5 con số ( mặc định )>> A = pi>> format short e % số dấu chấm động là 5 con số>> A = piTöông töï so saùnh keát quaû khi laàn löôït thöïc hieän caùc

doøng leänh tieáp theo ôû treân cho thaáy : keát quaû baèng nhau. Nhöng ñöôïc bieåu dieãn khaùc nhau:

vôùi A = 3,1416e+000 trong ñoù e + 000 = 100 = 1

Page 3: Bài tập thực hành số 1

5. Qui ước biến và thực hiện các phép toán trên cửa sổ lệnh.Cộng +, trừ -, nhân *, chia phải /, chia trái \, lũy thừa ^.

Độ ưu tiên Phép toán Tính ưu tiên

1 ( , ) trong ra ngoài

2 ^ trái qua phải

3 ± a

4 * , / , \ trái qua phải

5 + , - trái qua phải

II. Làm việc với mảng trên cửa sổ lệnh.1. Gán dữ liệu nguyên, thực, phức cho mảng một chiều, hai chiều bằng chỉ số.

- mảng 1 chiều.Thực hiện các dòng lệnh sau lưu lại kết quả . >> X(3) = 4 % phần tử thứ 3 của mảng là 4.>> X(2) = 1 + 3i % phần tử thứ 2 của mảng là 1 +3i- mảng 2 chiều :Thực hiện các dòng lệnh sau lưu lại kết quả.

>> T(1,1) = 1 % gán giá trị cho mảng theo chỉ số , >> T(1,2) = 46>> T(2,1) = 3 + 2i>> T(2,2) = 4.34

2. Gán dữ liệu nguyên, thực, phức cho mảng một chiều, hai chiều bằng nội dung.- mảng 1 chiều.Thực hiện các dòng lệnh sau lưu lại kết quả:>> x = [ 3 1 5 ] % gán vevtor hàng 3 1 5 cho biến x.>> y = [ 2.1 4.6 3.8 ]>> z = [ 2+3i 7-4i 9+5i ]- mảng 2 chiều:Thực hiện các dòng lệnh sau lưu lại kết quả.>> t = [ 6 5 ; 5 3 ]>> u = [ 8.1 3.6 ; 3.5 7.2 ]>> v = [ 3+i 7-7i ; 8-4i 4+5i ]

3. Truy cập mảng một chiều, hai chiều bằng chỉ số. A(i,j) truy cập phần tử có chỉ số i,j A(1: k,j) truy cập từ phần tử thứ nhất đến phần tử thứ k của cột j A(i,1:k) truy cập từ thứ 1 đến phần tử thứ k của hàng i

Page 4: Bài tập thực hành số 1

Trước tiên ta gán nội dung cho mảng.>>z = [ 2 3.4 4+ 3i ; 2 3 + 2i 7.2]Truy cập phần tử có chỉ số 2,1>>z (2,1) % truy cập phần tử thứ 2 của cột 1.Truy cập từ phần tử thứ 1đến phần tử thứ 2 của cột 1>> z(1:2,1) % truy cập phần tử : từ 1 đến 2 của cột 1.Truy cập từ phần tử thứ 1 đến phần tử thứ 3 của hàng 2.>> z(2,1:3) % truy cập phần tử thứ 1 đến 3 của hàng 2.

III .Thực hành một số hàm với mảng trên cửa sổ lệnh.sum, prod, diff, trace, diag, eye, ones, zeros, magic, randn, inv, eig . . .

sum(A) : tạo ra vector hàng với các phần tử là tổng của các phần tử của các cột tương ứng.

prod(A) : tạo vector hàng với các phần tử là tích của các phần tử của các cột tương ứng.

trace(A) : tính vết của ma trận A ( tổng các phần tử trên đường chéo). eye(n) : tạo ra ma trận đơn vị. magic(n) : tạo ma trận vuông với tổng các phần tử hàng, cột và đường chéo là

bằng nhau. rand(n) : tạo ma trận vuông với các phần tử được phân bố ngẫu nhiên.Thực hiện các lệnh sau và lưu lại kết quả.

>> z = [ 3.4 4+3i ; 2 3+2i ] % gán ma trận cấp 2x2 cho biến z>> I = sum(z) % tính tổng ma trận theo cột tương ứng.>> J = prod(z) % tính tích các cột tương ứng>> L = trace(z)>> P = eye(4)>> Q = magic(3)>> M = rand(5)

IV .Thực hành các phép toán mảng trên cửa sổ lệnh. + : công ma trận. - : trừ ma trận. * : nhân ma trận. / : chia phải ma trận. \ : chia trái ma trận. ^ : tóan tử lũy thừa ma trận. .* : tóan tử nhân hai phần tử tương ứng của hai ma trận. ./ : chia phải hai phần tử tương ứng của hai ma trận. .\ : chia trái hai phần tử tượng ứng của hai ma trận. .^ : tóan tử lũy thừa từng mỗi phần tử của ma trận.

Page 5: Bài tập thực hành số 1

Bài tập thực hành:

Bài 1: Tính bằng tay các biểu thức sau đó thực hiện bằng matlab và lưu lại kết quả.a. 2 / 2 * 3b. 6 – 2 / 5 + 7 ^ 2 – 1c. 10 / 2 \ 5 – 3 + 2 * 4

d.

3 45 2

e. 22

f. 3 4.5

g. 3 ^ 2 / 4h. 3 ^ 2 ^ 2k. 2 + round(6 / 9 + 3 * 2) / 2 – 3l. 2 + floor(6 / 9 + 3 * 2) / 2 – 3m. 2 + ceil(6 / 9 + 3 * 2) / 2 – 3n. fix(4/9)+fix(3*(5/6))

Bài 2: Tính các biểu thức sau, làm tròn đến 15 chữ số: a. b. c.

Bài 3: Tìm a, b, c biết:

; ; với x = 10, y = -20 và z = 30Bài 4: Dự đoán kết quả xuất ra màn hình:

a. 2 ; 4 b. 2 / 4c. 2 \ 4 d. 2 , 4e. 2 : 4

Page 6: Bài tập thực hành số 1

Bài 5: Cho x = 2, y = 3. Dự đoán lần lượt các kết quả tiếp theo:z = xy = y +zx = y + x – z x + y – z

Bài 6: Cho x = [1 4 8], y = [2 1 5] và A = [3 1 6 ; 5 2 7]Thực hiện các phép tính sau:

a. x*2 + y*3:b. x – y.^3:c. A*3 /xd. A.^2

Bài 7: Cho x = [2 5 1 6].a. Cộng thêm 16 vào tất cả các phần tử.b. Cộng thêm 3 vào các phần tử ở vị trí lẻ.c. Lấy căn bậc 2 tất cả các phần tử.d. Bình phương tất cả các phần tử.

Bài 8: Cho x, y lần lượt là các vector cột. x = [3 2 6 8]’, y = [4 1 3 5]’.a. Lấy tổng các phần tử của x cộng thêm vào từng phần tử của y.b. Luỹ thừa mỗi phần tử của x với số mũ tương ứng là các phần tử của y.c. Chia các phần tử của y với các phần tử tương ứng của x.d. Nhân các phần tử của x với các phần tử tương ứng của y, đặt trong vector z.e. Tính tổng các phần tử của z, gán cho w.f. Tính x.* y – w.g.Tích vô hướng của x và y

Lưu ý: x’ là ma trận chuyển vị của x

Bài 9: Cho ma trận A = [2 4 1 ; 6 7 2 ; 3 5 9], viết lệnh Matlab để :a. Tạo vector x là hàng thứ nhất của A:b. Tạo ma trận y là hai hàng còn lại (cuối) của A:c. Tính tổng theo hàng ma trận A:d. Tính tổng theo cột ma trận :

Bài 10. Cho ma trận và , dùng Matlab:a. Tạo ma trận E1 là 2 cột nằm giữa của ma trận C sử dụng toán tử ‘:’b. Tạo ma trận E2 từ hàng 1 và 2 và cột 2 và 3 của ma trận C sử dụng toán tử ‘:’c. Tạo ma trận E3 bằng cách ghép 2 ma trận E1 và D với nhau.

Bài 11. Cho các mảng sau F = [3 21 6 17], G = [4 27 9 3] và H = [1 2 9 15]

Page 7: Bài tập thực hành số 1

a. Tạo ma trận K1 từ F, G, H mà F là hàng đầu tiên, G là hàng thứ hai, H là hàng thứ ba.b. Tạo ma trận K1 từ F, G, H mà F là cột đầu tiên, G là cột thứ hai, H là cột thứ ba.

BÀI TẬP THỰC HÀNH SỐ 2LÀM VIỆC VỚI M-FILE

Thực hành các lệnh trên cửa sổ soạn thảo m-file.File-New : tạo tập tin mới.File-Open: mở tập tin đã có sẵn.File-Save: lưu tập tin lệnh đĩa. File-Save as lưu tập tin lên đĩa với một tên khác.

I. Một số lệnh lập trình trong Matlab.1. Lệnh EVAL

a. Công dụng:Chuyển đổi chuỗi ký tự thành biểu thức.

b. Cú pháp:kq = eval(‘string’)

c. Giải thích:kq: biến chứa kết quả.Nếu ‘string’ là các ký số thì chuyển thành những con số.Nếu ‘string’ là câu lệnh thì chuyển thành các lệnh thi hành được.

2. Lệnh FORa. Công dụng:

Dùng để thực hiện 1 công việc cần lặp đi lặp lại theo một quy luật, với số bước lặp xác định trước.

b. Cú pháp:for biến điều khiển = giá trị đầu : giá trị cuối,

thực hiện công việc;end

c. Giải thích:Công việc chính là các lệnh cần thi hành, có thể có nhiều lệnh, kết thúc lệnh phải

có dấu;3. Lệnh FUNCTION

a. Công dụng:Tạo thêm hàm mới.

b. Cú pháp:

Page 8: Bài tập thực hành số 1

function s = n(x)c. Giải thích:

s: tên biến chứa giá trị trả về sau khi thi hành hàm.n: tên gợi nhớ.

4. Lệnh INPUTa. Công dụng:

Dùng để nhập vào 1 giá trị.b. Cú pháp:

tên biến = input (‘promt’)tên biến = input (‘promt’, ‘s’)

c. Giải thích:tên biến, là nơi lưu giá trị ngập vào.‘promt’: chuỗi ký tự muốn nhập vào.‘s’: cho biết giá trị nhập vào là nhiều ký tự.

5. Lệnh IF …ELSEIF …ELSEa. Công dụng:

Thực hiện lệnh khi thỏa điều kiện.b. Cú pháp:

if biểu thức luận lý 1thực hiện công việc 1;

elseif biểu thức luận lý 2thực hiện công việc 2;

elsethực hiện công việc 3;

endc. Giải thích:

Khi biểu thức luận ký 1 đúng thì thực hiện công việc 1 tương tự cho biểu thức luận lý 2. Nếu cả hai biểu thức sai thì thực hiện công việc sau lệnh else.

Biểu thức luận lý là các phép so sánh ==, <, >, <=, >=công việc chính là các lệnh cần thi hành, có thể có nhiều lệnh, kết thúc lệnh phải

có dấu ;6. Lệnh MENU

a. Công dụng:Tạo menu để chọn chức năng.

b. Cú pháp:tên biến = menu (‘Tên menu’,‘chức năng1’,‘chức năng2’, …. , ‘chức năng n’)

Page 9: Bài tập thực hành số 1

c. Giải thích:tên menu: là tiêu đề của menu.tên biến: là nơi cất giá trị nhận được sau khi chọn chức năng của menu.Chức năng 1, 2, ….,n:khi chọn chức năng nào thì tên biến có giá trị là số thứ tự

của chức năng đó.7. Lệnh PAUSE

a. Công dụng:Dừng chương trình theo ý muốn.

b. Cú pháp:pause onpause offpause (n)

c. Giải thích:pause on: dừng chương trình, và chờ nhấn 1 phím bất kỳ (trừ các phím điều khiển)

chương trình thực hiện tiếp.pause off: tắt chức năng pause.pause (n): dừng chương trình tại n giây.

8. Lệnh WHILEa. Công dụng:

Dùng để thực hiện 1 công việc cần lặp đi lặp lại theo một quy luật, với số bước lặp không xác định, phụ thuộc vào biểu thức luận lý.b. Cú pháp:

while biểu thức luận lýthực hiện công việc;

endc. Giải thích:

Biểu thức luận lý là các phép so sánh = =, <, >, <=, >=Công việc chính là các lệnh cần thi hành, có thể có nhiều lệnh, kết thúc lệnh phải

có dấu ;Khi thực hiện xong công việc thì quay lên kiểm tra lại biểu thức luận lý, nếu vẫn

còn đúng thì tiếp tục thực hiện, nếu sai thì kết thúc. 9. Lệnh INT2STR

a. Công dụng:Chuyển số nguyên sang dạng chuỗi.Chuyển các ký tự trong một chuỗi sang số thứ tự tương ứng trong bảng mã ASCII.

b. Cú pháp:kq = INT

Page 10: Bài tập thực hành số 1

c. Giải thích:kq: biến STR(n)chứa kết quả.n: tên biến cần chuyển, nếu n là số nguyên thì kq là chuỗi ký số.

Nếu n là chuỗi ký tự thì kq là số tương ứng trong bảng mã ASCII10. Lệnh NUM2STR

a. Công dụng:Chuyễn số thực sang dạng chuỗi.Chuyển các ký tự trong một chuỗi sang số thứ tự tương ứng trong bảng mã ASCII.

b. Cú pháp:kq = num2tr(n)c. Giải thích:

kq: biến chứa kết quả.n: tên biến cần chuyển, nếu n là số thực thì kq là số tương ứng trong bảng mã

ASCII.11. Lệnh STR2NUM

a. Công dụng:Chuyển chuỗi (dạng số) sang số thực.

b. Cú pháp:n = str2num(s)

c. Giải thích:s: chuỗi dạng số, n: số thực.

II. Lập trình với M-fileSử dụng vòng lặp for, vòng lặp while, lệnh rẽ nhánh if, if-else, if-elseif-else, lệnh

kiểm tra trường hợp case, lệnh break…1. Lập trình với Script m-file.

- Mở phần mểm Matlab, khởi tạo giao diện Script m-file:

Page 11: Bài tập thực hành số 1

a. Sinh viên tự viết 1 Script m-file vẽ 1 hình Sin% ve hinh sinx = 0:pi/100:2*pi;y = sin(x);plot(x,y,'m','linewidth',1.5 ,'linestyle' , '+' ),gridaxis('square')xlabel('x')ylabel('y')title('VE HINH SIN') % tạo tiêu đề cho đồ thị là VE HINH SIN% End of program

>> chạy chương trình : vào biểu tượng trên thanh công cụ hoặc

Page 12: Bài tập thực hành số 1

2. Lập trình với function m-file.>> Mở phần mểm Matlab, khởi tạo giao diện Script m-file:

a. Chương trình giải pt bậc 2.% Function m-filefunction [x1, x2] = bachai(a,b,c)x = roots([a b c]);x1 = x(1)x2 = x(2)%EndSave lại với tên là bachai.m, trong cửa sổ command window gõ lệnh >> bachai ( 1 ,2 ,-3) % giai pt: x^2 + 2*x -3 = 0

b. Sinh viên tự viết 1 function m-file giải phương trình bậc 2 mà không dùng hàm roots mà matlab đã hổ trợ.(lưu với tên file là timnghiem.m)

Bài tập thực hành1. Tạo ra 1 Script file ptb2.m bằng cách nhập vào các hệ số a, b, c và dùng hàm timnghiem.m để tìm nghiệm.2. Sinh viên tự thực hiện chương trình vẽ đường cong parabol y=a*x^2 + b với các hệ số a, b, nhập từ keyboard.3. Viết chương trình tính tổng của 2 số a và b nhập từ bàn phím.

Page 13: Bài tập thực hành số 1

4. Viết chương trình tính tổng bình phương của 2 số a và b nhập từ bàn phím.5. Tìm gía trị lớn nhất của 2 số a và b nhập từ bàn phím.6. Tìm USC lớn nhất và BSC nhỏ nhất của 2 số a và b.7. Nhập vào giá trị n, kiểm tra xem n có phải là số nguyên tố?8. Tính tổng s = 1 + 1/2 +1/3 + …..+1/n9. Tính tổng các dãy số s=1+3+5+..+n10. Tính tổng A=1+1/22+1 /32+.. .+1/n2

11. Tính tổng các tích 2 số liên tiếp từ 1 đến n s=1*2+2*3+3*4+4*5+…+(n-1)*n.12. Viết chương trình nhập vào 1 dãy số gồm n phần tử, xuất ra giá trị lớn nhất và

phần tử nhỏ nhất của dãy số.13. Viết chương trình nhập vào 1 dãy số gồm n phần tử, tính trung bình cộng các số

dương trong dãy.14. Cho ma trận A=[5 9 10 20; 6 2 40 6; 9 3 20 10; 8 4 30 8]

a. Tìm tổng của ma trận Ab. Tìm ma trận chuyển vị của ma trận Ac. Tìm đường chéo của ma trận Ad. Tìm tổng đường chéo của ma trận A

Page 14: Bài tập thực hành số 1

BÀI TẬP THỰC HÀNH SỐ 3TẠO GIAO DIỆN GUI

I. Các hướng dẫn về thiết kế giao diện GUI trong Matlab1. Khởi động GUI

- Thực hiện khởi động Matlab đến GUI theo hình sau:

Khởi động Matlab từ biểu tượng Matlab trên màn hình desktop.

Trong cửa sổ Comment Windowns gõ lệnh “guide” và enter ta được giao

diện màn hình như sau:

Trong cửa sổ GUIDE Quick Start có nhiều lựa chọn theo một trong các khuân mẫu sau:Create New GUI :  Tạo một hộp thoại GUI mới theo một trong các loại sau

Page 15: Bài tập thực hành số 1

Blank GUI (Default): Hộp thoại GUI trống không có một điều khiển uicontrol nào cả.

GUI with Uicontrols: Hộp thoại GUI với một vài uicontrol như button, ...

GUI with Axes and Menu: Hộp thoại GUI với một uicontrol axes và button, các menu để hiển thị đồ thị.

Modal Question Dialog: Hộp thoại đặt câu hỏi Yes, No.

Open Existing GUI: mở một project có sẵn.Trong hướng dẫn này, các bạn tạo một project mới nên sẽ   chọn   Blank GUI

- Nhấp Blank GUI (Default) chọn OK để tạo một giao diện bắt đầu

với giao diện trống, ta được hình ảnh giao diện trong GUI như sau:

2. Mô tả chức năng giao diện GUI

Page 16: Bài tập thực hành số 1

Công cụ Mô tả

Layout editor Chọn các thành phần từ bảng thành phần, trình bày, và

sắp xếp chúng trong các khu vực bố trí. (Tùy chỉnh hiện

tên các thành phần: File => Preferences)

Align Objects Dùng để sắp xếp các đối tượng điều khiển.

Menu Editor Tạo menu cho giao diện.

Page 17: Bài tập thực hành số 1

Tab Order Editor Thiết lập các tab và sắp xếp thứ tự của các thành phần

trong bố trí của bạn .

Toolbar Editor Thanh công cụ tạo ra có chứa các nút bấm được xác

định trước và tùy chỉnh và chuyển đổi nút.

Editor Hiển thị , trong trình soạn thảo mặc định của bạn , các

tập tin mã kết hợp với giao diện đồ họa .

M-file editor Mở cửa sổ M-file.

Property Inspector Thiết lập các thuộc tính cảu các đối tượng điều khiển. Nó

cung cấp một danh sách tất cả các thuộc tính bạn có thể

thiết lập và hiển thị các giá trị hiện tại của chúng.

Object Browser Hiển thị một danh sách phân cấp của các đối tượng

trong giao diện đồ họa.

Run Lưu và chạy giao diện hiện tại.

Resize box Tùy chỉnh kích thước giao diện.

Position Readouts Liên tục hiển thị vị trí con trỏ chuột và vị trí của các đối

tượng được chọn.

- Phía bên trái là nhóm các biểu tượng được Matlab GUI hỗ trợ sẵn:

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

o Check box : sử dụng để đánh dấu tích (thực thi) vào và có thể

Page 18: Bài tập thực hành số 1

check nhiều ô để thực thi.

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

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

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

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

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

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

3. Giới thiệu hộp thoại Inspector

Page 19: Bài tập thực hành số 1

Thuộc tính Mô tả

Page 20: Bài tập thực hành số 1

BackgroundColor Màu nền của đối tượng.

BeingDeleted Đối tượng đã được xóa.

BusyAction Callback thường xuyên gián đoạn.

ButtonDownFcn Nút nhấn Callback thường xuyên.

CData Hình ảnh màu thật hiển thị trên điều khiển.

Callback Điều khiển hoạt động.

Clipping Thuộc tính này không có tác dụng trên các đối tượng điều

khiển.

CreateFcn Thường xuyên thực hiện Callback trong quá trình tạo đối tượng.

DeleteFcn Thường xuyên thực hiện Callback trong quá trình xóa đối tượng

Enable Kích hoạt hoặc vô hiệu hóa các đối tượng điều khiển.

Extent Vị trí hình chữ nhật (chỉ đọc).

FontAngle Kiểu chữ nghiêng.

FontName Kiểu chữ.

FontSize Cỡ chữ.

FontUnits Đơn vị kích thước font chữ.

FontWeight Nét chữ.

ForegroundColor Màu chữ.

HandleVisibility Cho dù xử lý có thể truy cập từ dòng lệnh và ảnh minh hoạ.

HitTest Lựa chọn bằng cách click chuột. Thuộc tính này không có tác

dụng trên các đối tượng điều khiển.

HorizontalAlignment Căn ngang của chuỗi nhãn.

SliderStep Chế độ Callback gián đoạn thường xuyên.

Page 21: Bài tập thực hành số 1

KeyPressFcn Nhấn phím Callback thường xuyên.

ListboxTop Chỉ số trên hầu hết các chuỗi hiển thị trong hộp danh sách

Max Giá trị lớn nhất (phụ thuộc vào đối tượng điều khiển)

Min Giá trị nhỏ nhất (phụ thuộc vào đối tượng điều khiển)

Position Kích thước và vị trí của đối tưỡng điều khiển.

SliderStep Kích thước bước nhảy của thanh trượt.

String Nhãn của các đối tượng điều khiển, các mục hộp danh sách,

lựa chọn trình đơn pop-up.

Style Kiểu của đối tượng điều khiển.

Tag Dùng để phân biệt giữa các đối tượng điều khiển.

TooltipString Tạo tip cho đối tượng điều khiển.

UIContextMenu Kết hợp một trình đơn ngữ cảnh với đối tượng điều khiển.

Units Đơn vị đo lường.

UserData Dữ liệu liên kết với đối tượng điều khiển.

Value Giá trị hiện thời của đối tượng điều khiển.

Visible Điều khiển thuộc tính nhìn thấy của các đối tượng.

4. Một vài chức năng mở rộngChú ý, để tạo sự thẳng hàng, cột của các hộp thoại cho đẹp mắt ta làm như sau:

- Nhấn giữ phím Ctrl và nhập vào các hộp thoại muốn chỉnh sửa, trên Menu

chọn Align Objects . Hộp thoại Align hiện ra như sau:

Page 22: Bài tập thực hành số 1

Hộp thoại Align Objects

- Trong hộp thoại trên ta có thể cân chỉnh các nút, nhóm nút sao cho chúng thẳng hàng, thẳng cột và đều nhau. Sau khi cân chỉnh nhấn nút Apply để lưu thay đổi.

- Bây giờ ta thiết lập thuộc tính chung cho giao diện (toàn bộ vùng thiết kế hay nền giao diện) :

Nhấp đúp chuột vào bất cứ vị trí nào trên nền giao diện để vào hộp thoại Inspector (hoặc trên menu chọn View -> Property Inspector), hộp thoại Inspector hiện ra như sau:

Thiết lập Tag là “exit”

- Tiếp tục tùy chọn nâng cao , vào Menu Tools => GUI Options

Page 23: Bài tập thực hành số 1

GUI Options

- Trên hộp thoại Resize behavior chọn dòng số 2 (Proportional), dòng này cho

phép người dùng thay đổi khích thước của giao diện và các đối tượng cũng tự

động thay đổi kích thước phù hợp với nền giao diện, nhấn OK để lưu thay đổi.

5. Thiết kế giao diện GUI

KHỞI TẠO CÁC ĐỐI TƯỢNG ĐIỀU KHIỂN:

- Nhấn tổ hợp phím Ctrl + S để thực hiện lưu file, sau khi chọn đường dẫn để lưu file

(Chú ý không lưu file với các biến đặc biệt hoặc bằng các con số khởi đầu), nhấn save

Matlab sẽ tự động tạo ra 2 file gồm một file .m và một file .fig, trong đó file .m là Mfile

chứa các hàm Matlab đã tạo sẵn hỗ trợ giao diện.

- Lần lượt kéo thả các nút như hình sau:

Page 24: Bài tập thực hành số 1

Khởi tạo các đối tượng điều khiển.- Mỗi hộp thoại có Inspector , bằng cách nhâp đúp chuột vào hoặc chuột phải

chọn Property Inspector.

- Sau đây là hình ảnh được đánh số để đánh dấu từng thay đổi một:

Page 25: Bài tập thực hành số 1

TẠO THUỘC TÍNH CHO CÁC ĐỐI TƯỢNG:- Sau đây là bảng mô tả các giá trị và thuộc tính của các hộp thoại trong hình,

chúng ta tiến hành thay đổi các giá trị tương ứng theo bảng sau:

STT Tên thuộc tính Giá trị thuộc tính1 String Frequency2 String

Tag tanso3 String Time4 String

Tag thoigian5 String Function6 String Square

SinCossawtooth

Tag ham7 Title Options8 String START

Tag Start9 String Hold on

Tag hold10 String Grid on

Tag grid11 String RESET

Tag reset12 String EXIT

Tag exit13 Tag axes1

Visible off

Page 26: Bài tập thực hành số 1

Hình sau mô tả cách thay đổi giá trị trong ô String của Select Function:

Thiết lập các thuộc tính trong hộp thoại Inspector.

- Sau khi viết xong, nhấn OK để lưu lại.- Sau khi chỉnh sửa các thông số ta dùng chuột để di chuyển các hộp thoại,

bố trí hộp thoại theo mong muốn, ta được giao diện như sau:

Page 27: Bài tập thực hành số 1

MỘT SỐ TÍNH NĂNG MỞ RỘNG:

Chú ý, để tạo sự thẳng hàng, cột của các hộp thoại cho đẹp mắt ta làm như sau:

- Nhấn giữ phím Ctrl và nhập vào các hộp thoại muốn chỉnh sửa, Trên Menu chọn

Align Objects . Hộp thoại Align hiện ra:

Page 28: Bài tập thực hành số 1

Trong hộp thoại trên ta có thể cân chỉnh các nút, nhóm nút sao cho chúng thẳng hàng,thẳng cột và đều nhau. Sau khi cân chỉnh nhấn nút Apply để lưu thay đổi.

- Trên hộp thoại Resize behavior chọn dòng số 2 (Proportional), dòng này cho phép người dùng thay đổi khích thước của giao diện và các đối tượng cũng tự động thay đổi kích thước phù hợp với nền giao diện, nhấn OK để lưu thay đổi.

II. Thực thi hàm

1. Giao diện trong M-file:

- Khi đã cân chỉnh xong toàn bộ giao diện trong GUI, nhấn F5 (hoặc nhân tổ

hợp phím Ctrl + T hoặc nhấp vào biểu tượng trên thanh Menu).

- Khi Run, Matlab sẽ tự chạy file .m và hiển thị doa diện đồ họa lên màn

hình. ở đây ta bắt đầu thao tác với file .m

Page 29: Bài tập thực hành số 1

Giao diện Mfile.

- Khi ta chưa thao tác trong Trong file .m xuất hiện như trên hình, trong đó, tất cả các

hàm function đều được Matlab hỗ trợ tạo sẵn các hàm chức năng có liên quan, ta chỉ

việc thao tác trên đó.

- Mỗi sau một hàm bất kì đều có các chú thích bên dưới (sau dấu %), ta có thể xóa

toàn bộ chúng đi đễ dễ nhìn cũng không ảnh hưởng đến các hàm.

- Trong Mfile có sẵn các hàm callback, ta có thể tìm trong Mfile các hàm liên quan để

viết câu lệnh, tuy nhiên, để nhanh hơn chúng ta có thể làm như sau:

+ Quay lại màn hình giao diện GUI vừa thiết kế, nhấp vào hộp thoại muốn thực

thi hàm callback, nhấp chuột phải chọn View Callbacks -> Callback, Như hình

sau:

Page 30: Bài tập thực hành số 1

Tìm hàm calback cho đối tượng điều khiển.

+ Sau đó hàm callback sẽ tự động được gọi và con trỏ chuột sẽ tìm đến vị

trí của nó trong Mfile.

- Bây giờ khi muốn gọi một hàm nào ta cũng có thể thực hiện như trên. Sau

đó tiến hành viết câu lệnh cho nó.

2. Một số hàm trong gui:

- Hàm callback được lập trình cho các nút button, checkbox, edit text… nhưng

static text và axes… thì không có hàm callback.

- Mỗi một callback được viết với cấu trúc như sau:

- function Tag_Callback(hObject, eventdata, handles)

- Với Tag chính là giá trị của Tag mà ta đã đặt khi tạo giao diện. Các hàm chứa bên

trong callback bao gồm hObject, evendata,handles

+ hObject là hàm truy cập nội bộ của mỗi function riêng lẽ

+ Evendata là hàm xác đinh thuộc tính của function

Page 31: Bài tập thực hành số 1

+ Handles là hàm truy cập liên kết giữa các function, nó bao gồm tất cả các cấu

trúc của người dùng, được sử dụng để truy xuất qua các điều khiển khác.

- Hàm Get cho phép ta gọi thuộc tính của đối tượng.

- Hàm Set cho phép ta đặt giá trị cho thuộc tính của đối tượng

a. Lập trình các đối tượng :

NÚT NHẤN START:

- Thực hiện thao tác như bước vừa nói trên (minh họa trong hình), hàm callback

sẽ tự động gọi:

Lần lượt viết các hàm sau vào functions :

f=str2num(get(handles.tanso,'string'));

set(handles.axes1,'Visible','on');

t=eval(get(handles.thoigian,'string'));

if get(handles.ham,'value')==1;

plot(handles.axes1,t,square(2*pi*50*t,50),'LineWidth',2); elseif

Page 32: Bài tập thực hành số 1

get(handles.ham,'value')==2;

plot(handles.axes1,t,sin(2*pi*50*t),'LineWidth',2);

elseif get(handles.ham,'value')==3;

plot(handles.axes1,t,cos(2*pi*50*t),'LineWidth',2); elseif

get(handles.ham,'value')==4;

plot(handles.axes1,t,sawtooth(2*pi*50*t),'LineWidth',2); end

axis([0 0.1 -2 2]);

Giải thích:

- Câu lệnh 1: f=str2num(get(handles.tanso,'string'));

+ f: là 1 biến được gán

+ Lệnh get để lấy giá trị thuộc tính của string, ở đây giá trị string được

nhập từ bán phím , matlab sẽ hiểu nó là 1 chuỗi các kí tự .

get(handles.tanso,'string')+ Lệnh str2num hoặc str2double dùng để chuyển kí tự thành 1 số. Hoặc

lệnh num2str để chuyển số thành kí tự.

f=str2num(get(handles.tanso,'string')); % lấy giá trị chứa trong ô tanso

và chuyển chuỗi thành số lưu vào biến f.

- Câu lệnh 2: set(handles.axes1,'Visible','on');

Đặt thuộc tính visible của axes1 ở trạng thái on.

- Câu lệnh 3: t=eval(get(handles.thoigian,'string'));

Hàm eval cho phép ta chuyễn đổi một chuỗi thành một vector hay mảng.

Ví dụ: thực hiện lệnh

a=eval('0:1:6')

Page 33: Bài tập thực hành số 1

>> a = 0 1 2 3 4 5 6

Kết quả trả về là vector từ 0 đến 6 có bước nhảy là 1

- Câu lệnh 4: if get(handles.ham,'value')==1;

Lệnh get lấy giá trị value của ô “ ham”Lệnh if xét điều kiện nếu value của ô “ham” =1 thực hiện lệnh bên dưới

- Câu lệnh 5: plot(handles.axes1,t,square(2*pi*50*t,50),'LineWidth',2);

Cú pháp : Plot ( địa chỉ vẽ, vẽ_x,y, ‘các thuộc tính’) Lệnh

square(2*pi*50*t,50): vẽ đồ thị sóng vuông.

- Câu lệnh 6 : xem lại câu lênh 4.- Câu lệnh 7 : elseif get(handles.ham,'value')==2;

Nếu giá trị value của ô “ham” == 2 thực hiện lệnh bên dưới.

- Câu lệnh 8 ,9,10,11,12 tương tự.

Câu lệnh 13: axis([0 0.1 -2 2]); % Căn chỉnh lại trục đồ thị

Cú pháp : axis ( [ xmin xmax ymin ymax ] )

BẢNG OPTIONS GROUP:

Page 34: Bài tập thực hành số 1

Viết code cho bảng OPTIONS

Lần lượt viết các câu lệnh :

function uipanel3_SelectionChangeFcn(hObject, eventdata, handles) if

get(handles.grid,'value')==1

grid

on

else

grid

off end

Page 35: Bài tập thực hành số 1

if get(handles.hold,'value')==1 hold

on

else

hold

off end

Giải thích : get(handles.grid,'value')==1

Hàm trên tìm giá trị value của ô Grid on và Hold on tương ứng , nếu được chon

tương ứng value =1 , nếu bỏ chọn tương ứng value =0.

NÚT RESET

- Các lệnh sau :

set(handles.tanso,'string','');

set(handles.thoigian,'string','');

set(handles.hold,'value',0);

set(handles.grid,'value',0);

set(handles.ham,'value',1);

set(handles.axes1,'visible','off');

cla;

Giải thích:

- Câu lệnh 1, 2: set(handles.tanso,'string','');

set(handles.thoigian,'string','');

Đặt lại giá trị của ô “tanso”, “thoigian” là “ “ .

- Câu lệnh 3,4: set(handles.hold,'value',0);

Page 36: Bài tập thực hành số 1

set(handles.grid,'value',0);

Bỏ chọn 2 ô ‘Grid on’ và ‘Hold on’ .

- Câu lênh 5: set(handles.ham,'value',1);

Mặc định hiển thị function square.

- Câu lệnh 6: set(handles.axes1,'visible','off');

Tắt hiện thị hệ trục tọa độ

- Câu lênh 7: cla;

Xóa tất cả các đối tượng như: đường đồ thị, tên đồ thị…nhưng không

xóa trục tọa độ.

NÚT EXIT

Lệnh : close;

Đóng chương trìnhCHẠY CHƯƠNG TRÌNH TRÊN MATLAB

Sau khi lập trình cho các phím gọi cần thiết ta bắt đầu chạy chương trình

chúng ta làm thao tác như sau :

- Nhấn Run trên giao diện Edito M-file .

Page 37: Bài tập thực hành số 1

Sau khi nhấn Run chạy chương trình , matlab sẽ tự động Save lại M-file

Page 38: Bài tập thực hành số 1

Bài tập thực hànhBài 1: Khởi tạo GUI, kéo thả các nút lệnh như giao diện sau:

Bài 2: Tạo và viết chương trình như giao diện sau:

Page 39: Bài tập thực hành số 1

Bài 3: Ứng dụng(GUI) viết chương trình tạo từ điển tra cứu từ như giao diện sau, (SV chèn thêm hình nền):

Page 40: Bài tập thực hành số 1

BÀI THỰC HÀNH SỐ 4ỨNG DỤNG MATLAB TRONG GIẢI TOÁN VÀ VẼ ĐỒ THỊ

Mục đích, yêu cầu:- Trang bị cho người học sử dụng symbolic trong Matlab. Giúp cho người học giải

một số bài toán về vi phân, tích phân, biến đổi Laplace.- Củng cố những tính chất của đa thức. giới thiệu một số ứng dụng đa thức hữu tỉ

trong hàm truyền điều khiển.- Trang vị người học sử dụng các cú pháp vẽ đồ thị trong Matlab.

Bài 1: Tính đạo hàm của các hàm số sau:a) y =x2−3√x

b) y = x √1-x2

c) y =sin(5√ x )Khi dùng sym trong việc tính tich phân thì phải khai báo biến. Dùng lệnh diff(y)

để tính đạo hàm của y.Giải minh họa câu a:

>>sym x>>diff*(x^3-3*sqrt(x))ans =3*x^2-3/2/x^(1/2)

Bài 2: TÍnh tích phân (dùng lệnh int)

a)∫sin ( x

2)dx

b)∫ x3

1+x2 dx

c)∫ ex(1+ e-x

cos2 x)dx

Bài 3: Tìm nghiệm và tính đạo hàm các đa thức sau:a) y(x) = x3 + 4x2 – 3b) y(x) = 12x4 – 3x2 + 3x + 10

lưu ý: Tìm nghiệm dùng lệnh rootsTính đạo hàm, dùng lệnh polyder

Bài 4: Tính giá trị của các đa thức bài 1 tại x = 4, x = -3

Bài 5: Vẽ đồ thị hàm số x, x3, ex và e^(x2) với 0 < x < 4

Bài 6: Vẽ đồ thị hàm số f(x) = sin(1/x) với 0.01 < x < 0.1.

Bài 7: Vẽ hai hàm và trên cùng một đồ thị, ghi chú thích

Bài 8: Vẽ hàm số sử dụng hàm plot và fplot

Page 41: Bài tập thực hành số 1

Bài 9: Vẽ đồ thị y1=sin(x), y2=cos(x) trên cùng 1 hệ trục tọa độBài 10: Vẽ đồ thị y1=sin(x), y2=cos(x) trên 2 hệ trục tọa độ trong cùng 1 khungBài 11: Vẽ đồ thị chạy hàm cos bám độngBài 12: Vẽ không gian 3 DBài 13:Ứng dụng(GUI) giải phương trình bậc 2 tạo như giao diện sau:

Bài 14: Ứng dụng (GUI) vẽ hàm bậc 1, bậc 2, bậc 3 như giao diện sau:

Page 42: Bài tập thực hành số 1

BÀI THỰC HÀNH SỐ 5

ỨNG DỤNG MATLAB TRONG GIẢI TÍCH MẠCH ĐIỆN

Bài 1: Cho mạch điện như hình vẽ, với R1 = 5Ω , R2=100Ω , R3=200Ω , R4=150Ω ,

R5=250kΩ , V1=100v, V2=50v. Tìm I1, I2, I3 (Ứng dụng GUI tạo giao diện)

Áp dụng định luật Kirchhoff cho vòng 1, vòng 2, vòng 3 ta có:R1*I1 + R4I4 – V1 = 0 (1)-R4*I4 + R2I2 + R5I5 = 0 (2)-R5I5 + R3I3 + V2 =0 (3)

Áp dụng định luật nút cho toàn mạch:I1 = I2 + I4 (4)I2 = I3 + I5 (5)

Thế (4), (5) vào (1), (2), (3) ta đựơc:(R1+R4)*I1 - R4*I2 + 0*I3 = V1 (6) -R4*I1 + (R2+R4+R5)*I2 - R5*I3 = 0 (7)

0*I1 + R5*I2 - (R3+R5)*I3= V2 (8)

Bài 2: Cho mạch điện như hình vẽ, với R1=100Ω , R2=100Ω , R3=50Ω , R4=1Ω , R5=200Ω , R6=1KΩ , R7=3KΩ , V1=5v, V2=5v. Tìm I1, I2, I3, I4, I5.(Ứng dụng tạo giao diện GUI)

Page 43: Bài tập thực hành số 1

R12=R1×R2R1+R2

R45= R4+R5Áp dụng định luật Kirchhoff cho vòng 1, vòng 2, vòng 3 ta có:

R12*I1 + 0*I2 + 0*I3 + R3*I4 + 0*I5 - V1 = 0 (1) 0*I1 + R45*I2 + 0*I3 - R3*I4 + R6*I5 = 0 (2) 0*I1 + 0*I2 + R7*I3 + 0*I4 - R6*I5 + V2 = 0 (3)

Áp dụng định luật nút cho toàn mạch: I1 - I2 + 0*I3 - I4 + 0*I5 = 0 (4)

0*I1 + I2 - I3 +0*I4 - I5 = 0 (5)Bài 3: Cho mạch điện như hình vẽ, với R1=600Ω , R2=600Ω , R3=1KΩ , R4=3KΩ , R5=500Ω , R6=800Ω , R7=200Ω , R8=2KΩ , R9=100Ω , R10=1KΩ , V1=9v, V2=9v. Tìm I1, I2, I3, I4, I5.

R12=R1×R2R1+R2

R123=R12+R3R45=R4×R5

R4+R5

R67=R6×R7R6+R7

Page 44: Bài tập thực hành số 1

R678 = R67 +R8Áp dụng định luật Kirchhoff cho vòng 1, vòng 2, vòng 3 ta có:

R123*I1 + 0*I2 + 0*I3 + R45*I4 + 0*I5 - V1 = 0 (1) 0*I1 + R678*I2 + 0*I3 - R45*I4 + R9*I5 = 0 (2) 0*I1 + 0*I2 + R10*I3 + 0*I4 - R9*I5 + V2 = 0 (3)

Áp dụng định luật nút cho toàn mạch: I1 - I2 + 0*I3 - I4 + 0*I5 = 0 (4) 0*I1 + I2 - I3 +0*I4 - I5 = 0 (5)

Bài 4: Cho mạch điện như hình vẽ, với R1=200Ω , R2=200Ω , R3=300Ω , R4=900Ω , R5=1KΩ , R6=2KΩ , R7=500Ω , R8=600Ω , R9=1KΩ , R10=200Ω ,R11=6KΩ , R129KΩ , V1=20v, V2=20v. Tìm I1, I2, I3, I4, I5. (Ứng dụng GUI tạo giao diện, chèn hình nền, tên, lớp)

R12=R1×R2R1+R2

R123=R12+R3R45=R4×R5

R4+R5

R67=R6×R7R6+R7

R678 = R67 +R8R910=R9×R10

R9+R10

R1112=R11×R12R11+R12

Áp dụng định luật Kirchhoff cho vòng 1, vòng 2, vòng 3 ta có:R123*I1 + 0*I2 + 0*I3 + R45*I4 + 0*I5 - V1 = 0 (1) 0*I1 + R678*I2 + 0*I3 - R45*I4 + R910*I5 = 0 (2) 0*I1 + 0*I2 + R1112*I3 + 0*I4 - R910*I5 + V2 = 0 (3)

Áp dụng định luật nút cho toàn mạch: I1 - I2 + 0*I3 - I4 + 0*I5 = 0 (4)

0*I1 + I2 - I3 +0*I4 - I5 = 0 (5)

Page 45: Bài tập thực hành số 1

Giải hệ 3 phương trình 3 ẩn số ta tìm được 3 nghiệm I1, I2, I3, I4, I5

BÀI THỰC HÀNH SỐ 6ỨNG DỤNG MATLAB TRONG GIẢI TÍCH MẠCH ĐIỆN TỬ

Bài 1: Thực hành với Script m.file cho bài toán sau: cho tầng khuếch đại như hình vẽ Vcc=9v, BJT thuộc loại silic N-P-N, có =50. Hãy xác định các điện trở trong mạch, biết rằng ở trạng thái tĩnh Ic=1mA, Vce=5v

Hướng dẫn :Để ổn định điểm làm việc theo nhiệt độ, chọn Re theo điều kiện

Ve=Ie*Re=( 15÷ 1

10Vcc)

Ve= 110

Vcc

Do đó: Re=Ve

Re≈Ve

IcDòng base ở trạng thái tĩnh

Page 46: Bài tập thực hành số 1

Ib=Icβ

BJT thuộc loại silic nên Vbe=0.7Vb=Ve+VbeRb=Vcc-Vb

Ib

Rc=Vcc-Vce-VeIc

Bài 2: Ứng dụng(GUI) tạo giao diện bài 1 như sau.

Bài 3: Tạo giao diện(GUI) bằng cách callback từ script m-file bài tập.

Page 47: Bài tập thực hành số 1

Bài 4: Ứng dụng GUI viết chương trình cho một mạch sau Vi = 5sinwt, R1 = 300

Ω , R2 = 30Ω , w = 1rad/s. vẽ dạng sóng điện áp trên tải (R2)

Áp trên tải:

Vom=R2R1+R2

Vim=30300+30

=0 ,09 Vim=0,45

→Vo=0,45sin(t) với w = 1 rad/s

Bài 5: Dùng thuật toán Matlab xác định các giá trị sau:

Page 48: Bài tập thực hành số 1

Cho tầng khuếch đại EC phân cực kiểu phân áp như hình trên. BJT thuộc loại

N-P-N có =100, Iceo0, Vcc=15V. Biết Rb1=32kΩ, Rb2=6.8kΩ, Re=1.5kΩ, Rc=3kΩ.

Hãy xác định điểm làm việc tĩnh.

Bài 6: Dùng thuật toán Matlab xác định các giá trị sau:

Cho tầng khuếch đại EC phân cực kiểu phân áp như bài trên. BJT thuộc loại silic

có =60, làm việc ở điểm tĩnh Q (Vce=4.5V, Ic=3mA). Hãy xác định các điện trở trong

mạch Vcc=15V. Biết Rb1=32kΩ, Rb2=6.8kΩ, Re=1.5kΩ, Rc=3kΩ. Hãy xác định điểm làm

việc tĩnh, và dựng đường tải một chiều trên đặc tuyến.