Matlab Slides

32
1 MÔ HÌNH HÓA VÀ MÔ PHNG VI MATLAB/SIMULINK Mô hình hóa và mô phng thiết bđin – dành cho sinh viên chuyên ngành TBĐ-ĐT Son bi: Trn Vĩnh Thái B/m Thiết bđin – đin tĐHBK Hà ni ĐHBK Hàni B/m Thiết bđin – đin t2 NI DUNG Vai trò ca mô hình hóa và mô phng Mô hình toán và phương pháp sMô hình toán ca hvt lý Phương pháp sgii phương trình vi phân Công cMATLAB/Simulink MATLAB Simulink Phân tích, mô phng mt smô hình thiết bđin vi MATLAB/Simulink

Transcript of Matlab Slides

Page 1: Matlab Slides

1

MÔ HÌNH HÓA VÀ MÔ PHỎNG VỚIMATLAB/SIMULINK

Mô hình hóa và mô phỏng thiết bị điện – dành cho sinh viên chuyên ngành TBĐ-ĐT

Soạn bởi:Trần Vĩnh TháiB/m Thiết bị điện – điện tửĐHBK Hà nội

ĐHBK HànộiB/m Thiết bị điện – điện tử

2

NỘI DUNG

Vai trò của mô hình hóa và mô phỏng

Mô hình toán và phương pháp sốMô hình toán của hệ vật lýPhương pháp số giải phương trình vi phân

Công cụ MATLAB/SimulinkMATLABSimulink

Phân tích, mô phỏng một số mô hình thiết bị điện với MATLAB/Simulink

Page 2: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

3

Yêu cầu với sinh viên

Tham dự lớp đầy đủ

Làm các bài tập về nhà

Hoàn thành bài tập lớn

Thi cuối học kỳ

ĐHBK HànộiB/m Thiết bị điện – điện tử

4

1. Vai trò của mô hình hóa và mô phỏng

Mô hình – dạng biểu diễn đơn giản hóa của một hệ vật lý. Chương trình này giới hạn mô hình ở dạng thức mô tả toán học, mô hình toán.

Mô hình hóa và mô phỏng – là kỹ thuật cho phép xây dựng mô hình của hệ vật lý và thực hiện thực nghiệm trên mô hình đó. Môn học này sử dụng công cụ MATLAB/Simulink để biểu diễn mô hình toán của hệ trên máy tính số và cho phép phân tích, nghiên cứu nó.

Vai trò của mô hình hóa và mô phỏngĐược sử dụng khi hệ vật lý không tồn tại, tốn kém và/hoặc tốn thời gian xây dựng…Cho phép quan sát quá trình, đáp ứng động của hệ thống thiết kế trước khi thực nghiệm trên thiết bị thựcLà công cụ hữu hiệu với chi phí thấp cho nghiên cứu, dễ sử dụng, dễdàng thay đổi phương án…

Page 3: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

5

2. Mô hình toán và phương pháp số

Phân loại mô hình toánMô hình tuyến tính, phi tuyếnMô hình thông số tập trung, thông số rảiMô hình tĩnh, độngMô hình liên tục, gián đoạnMô hình xác định, bất định

Trình tự xây dựng mô hìnhXác định mục tiêu và điều kiện của bài toánĐặt giả thiết đơn giản hóa và loại bỏ các yếu tố không quan trọng Xác định các tham số cho mô hình theo mục tiêu và điều kiệnKiểm chứng mô hình về mức độ phù hợp với hệ thống vật lý

ĐHBK HànộiB/m Thiết bị điện – điện tử

6

2. Mô hình toán và phương pháp số

Mô tả toán học thường gặp

Phương trình vi phân

Hàm truyền

Không gian trạng thái

Page 4: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

7

2. Mô hình toán và phương pháp số

Phương trình vi phân

– Thí dụ 1: Phân tích mạch điện trên hình vẽ. Nguồn DC 1 V, điều kiện đầu i(0) = 0 A, uc(0) = 0 V. Xác định quá trình quá độ của i(t), uc(t) khi đóng công tắc.

BTVN: Xây dựng mô hình toán động cơ DC kích thích độc lập.

ĐHBK HànộiB/m Thiết bị điện – điện tử

8

2. Mô hình toán và phương pháp số

Hàm truyềnĐịnh nghĩa: The transfer function of a linear, time-invariant, differential equation system is defined as the ratio of the Laplace transform of the output variable to the Laplace transform ofthe input variable, with all initial conditions assumed to be zero.

Tiếp theo thí dụ 1 – mô tả bài toán ở dạng hàm truyền

sC VvdtdiLRi =++

sCCC Vv

dtvdLC

dtdvRC =++ 2

2

Biểu thức:

)()()(

sVsVsY

S

C=

BTVN: Chuyển mô hình toán động cơ DC kích thích độc lập về dạng hàm truyền. Điều kiện: Mạch từ tuyến tính, kích thích không đổi.

Page 5: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

9

Mô tả không gian trạng tháiDạng thức

Tiếp theo thí dụ 1 – mô tả bài toán ở dạng thức không gian trạng tháiĐặt

Từ đó tìm được ma trận A, B, C, D

2. Mô hình toán và phương pháp số

BTVN: Chuyển mô hình toán động cơ DC kích thích độc lập về mô hình không gian trạng thái. Điều kiện: Mạch từ tuyến tính, kích thích không đổi.

ĐHBK HànộiB/m Thiết bị điện – điện tử

11

2. Mô hình toán và phương pháp số

Phương pháp số giải phương trình vi phânPhương pháp Euler:

Giải phương trình y’ = f(t,y) trong khoản [a,b], với y(a) = y(0) = y0:

– Chia đoạn [a,b] thành n khoảng h đủ nhỏ

– Giá trị của y tại y(k) được tính theo giá trị đã biết y(k-1) vàhàm f(tk, yk) theo biểu thức:

),(. 111 −−− += kkkk ytfhyy với k = 1..n

Page 6: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

12

Thí dụ về ph.pháp Euler viết trong MATLAB

ĐHBK HànộiB/m Thiết bị điện – điện tử

13

Sai số của phương pháp Euler

Sai số tỉ lệ với h2.

Page 7: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

14

2. Mô hình toán và phương pháp số

Các phương pháp số khácPhương pháp Runge-Kutta bậc 2 – trong MATLAB là ODE23Phương pháp Runge-Kutta bậc 4 – trong MATLAB là ODE45Phương pháp chuỗi TaylorCác phương pháp Predictor-Correctors…

Thí dụ ODE45:

ĐHBK HànộiB/m Thiết bị điện – điện tử

15

Thí dụ: Runge-Kutta Order 4

Page 8: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

16

3. MATLAB/Simulink

Tại sao chọn MATLAB/Simulink? Đây là một công cụ:

Mạnh cho việc thực hiện mô phỏng các mô hình toánDễ học, dễ sử dụng tốn ít thời gian đầu tư cho công cụ

Các công cụ khácDymola với ngôn ngữ Modelica20-Sim với phương pháp Bond GraphMaple, Mathematica, ACSL, Saber, Dynast…

Tài liệu tham khảoMATLAB/Simulink dành cho kỹ sư điều khiển tự động – Nguyễn Phùng Quang…

ĐHBK HànộiB/m Thiết bị điện – điện tử

17

MATLAB

Môi trường MATLAB, demo và help

Tạo biến trong MATLAB

Thao tác với ma trận, toán tử logic và các hàm toán học

Công cụ hiển thị

M-file

Viết chương trình trong MATLAB

Lưu biến và buổi làm việc; thư mục và đường dẫn

GUI

Giải hệ phương trình vi phân với MATLAB

Page 9: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

18

Môi trường MATLAB

To get started, select "MATLAB Help" from the Help menu.

ĐHBK HànộiB/m Thiết bị điện – điện tử

19

» a = 2;» b = 5;» a^bans =

32» x = 5/2*pi;» y = sin(x)y =

1» z = asin(y)z =

1.5708

» a = 2;» b = 5;» a^bans =

32» x = 5/2*pi;» y = sin(x)y =

1» z = asin(y)z =

1.5708

Tạo biến trong môi trường MATLAB

Kết quả được gán cho “ans”nếu không đặt tên biến

Dấu () để truy cập hàm

Tác dụng của dấu “;”

MATLAB – máy tính tay Gán các biến trong MATLAB

» -5/(4.8+5.32)^2ans =

-0.0488» (3+4i)*(3-4i)ans =

25» cos(pi/2)ans =

6.1230e-017» exp(acos(0.3))ans =

3.5470

» -5/(4.8+5.32)^2ans =

-0.0488» (3+4i)*(3-4i)ans =

25» cos(pi/2)ans =

6.1230e-017» exp(acos(0.3))ans =

3.5470

Page 10: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

20

Một số lệnh tiện ích

Các lệnh tiện íchwho và whos – liệt kê các biếnclear, clear x, clear all – xóa biếnclose – xóa cửa sổ đồ họa hiện hànhcd – đổi thư mục hiện hànhdir – liệt kê nội dung thư mục hiện hànhformat – đặt định dạng biến lưu trong môi trườnghelp “tên hàm” – tra cứu nhanhclc – xóa màn hình lệnh …

ĐHBK HànộiB/m Thiết bị điện – điện tử

21

Thao tác với ma trận

3 khái niệm trong đại số tuyến tínhVô hướng – là một số hay một từ (có giá trị đơn nhất)Véc-tơ – là mảng 1-D chứa một dãy các vô hướng, biến hoặc biểu thứcMa trận – là mảng n-D chứa các vô hướng, biến hoặc biểu thức

Trong MATLABVô hướng – là ma trận 1x1Véc-tơ – là ma trận 1xn hoặc nx1Ma trận nxm

Page 11: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

22

Thao tác với ma trận

» a=[1 2;3 4]a =

1 23 4

» b=[-2.8, sqrt(-7), (3+5+6)*3/4]b =

-2.8000 0 + 2.6458i 10.5000» b(2,5) = 23b =

-2.8000 0 + 2.6458i 10.5000 0 00 0 0 0 23.0000

» a=[1 2;3 4]a =

1 23 4

» b=[-2.8, sqrt(-7), (3+5+6)*3/4]b =

-2.8000 0 + 2.6458i 10.5000» b(2,5) = 23b =

-2.8000 0 + 2.6458i 10.5000 0 00 0 0 0 23.0000

Tách dòng vớidấu (;)

Tách cột với dấutrống / phảy (,)

Dùng dấu ngoặc [ ]

ĐHBK HànộiB/m Thiết bị điện – điện tử

23

Thao tác với ma trận

4 10 1 6 2

8 1.2 9 4 25

7.2 5 7 1 11

0 0.5 4 5 56

23 83 13 0 10

1

2

Dòng (m) 3

4

5

Cột(n)

1 2 3 4 51 6 11 16 21

2 7 12 17 22

3 8 13 18 23

4 9 14 19 24

5 10 15 20 25

A = A (2,4)

A (17)

Ma trận:Vô hướng: 1-by-1 arrayVéc tơ: m-by-1 array

1-by-n arrayMa trận: m-by-n array

Page 12: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

24

Thao tác với ma trận

» w=[1 2;3 4] + 5w =

6 78 9

» x = 1:5x =

1 2 3 4 5» y = 2:-0.5:0y =

2.0000 1.5000 1.0000 0.5000 0 » z = rand(2,4)z =

0.9501 0.6068 0.8913 0.45650.2311 0.4860 0.7621 0.0185

» w=[1 2;3 4] + 5w =

6 78 9

» x = 1:5x =

1 2 3 4 5» y = 2:-0.5:0y =

2.0000 1.5000 1.0000 0.5000 0 » z = rand(2,4)z =

0.9501 0.6068 0.8913 0.45650.2311 0.4860 0.7621 0.0185

Cộng vô hướng

Tạo dãy trình tự:dùng dấu (:)

Các hàm tiện ích tạo ma trận

ĐHBK HànộiB/m Thiết bị điện – điện tử

25

Thao tác với ma trận

Xóa dòng, cột của ma trận

» A=[1 5 9;4 3 2.5; 0.1 10 3i+1]A =

1.0000 5.0000 9.0000 4.0000 3.0000 2.5000 0.1000 10.0000 1.0000+3.0000i

» A(:,2)=[]A =

1.0000 9.0000 4.0000 2.5000 0.1000 1.0000 + 3.0000i

» A(2,2)=[]??? Indexed empty matrix assignment is not allowed.

» A=[1 5 9;4 3 2.5; 0.1 10 3i+1]A =

1.0000 5.0000 9.0000 4.0000 3.0000 2.5000 0.1000 10.0000 1.0000+3.0000i

» A(:,2)=[]A =

1.0000 9.0000 4.0000 2.5000 0.1000 1.0000 + 3.0000i

» A(2,2)=[]??? Indexed empty matrix assignment is not allowed.

Page 13: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

26

Thao tác với ma trận

Truy cập các thành phần trong ma trận

4 10 1 6 2

8 1.2 9 4 25

7.2 5 7 1 11

0 0.5 4 5 56

23 83 13 0 10

1

2

3

4

5

1 2 3 4 51 6 11 16 21

2 7 12 17 22

3 8 13 18 23

4 9 14 19 24

5 10 15 20 25

A =

A(3,1)A(3)

A(1:5,5)A(:,5) A(21:25)

A(4:5,2:3)A([9 14;10 15])

A(1:end,end) A(:,end)A(21:end)’

ĐHBK HànộiB/m Thiết bị điện – điện tử

27

Thao tác với ma trận

Nhân chia ma trận

» a = [1 2 3 4; 5 6 7 8];» b = ones(4,3);» c = a*bc =

10 10 1026 26 26

» a = [1 2 3 4; 5 6 7 8];» b = ones(4,3);» c = a*bc =

10 10 1026 26 26

[2x4][4x3]

[2x4]*[4x3] [2x3]

a(2nd row).b(3rd column)

» a = [1 2 3 4; 5 6 7 8];» b = [1:4; 1:4];» c = a.*bc =

1 4 9 165 12 21 32

» a = [1 2 3 4; 5 6 7 8];» b = [1:4; 1:4];» c = a.*bc =

1 4 9 165 12 21 32 c(2,4) = a(2,4)*b(2,4)

Page 14: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

28

Thao tác với ma trận

Các hàm tiện íchzeros – tạo ma trận rỗngones – tạo ma trận 1eye – tạo ma trận đơn vịrand – tạo ma trận các phần tử ngẫu nhiêndiag – tạo ma trận đường chéosize – hàm trả về kích thước của ma trậnfliplr – đảo cột ma trận trái phảiflipud – đảo hàng ma trận trên dướirot90 – xoay ma trận 90 độ (ngược chiều kim đồng hồ)transpose (‘) – chuyển vị ma trậncross & dot – nhân ma trậndet – định thức ma trậninv – nghich đảo ma trậnrank – hạng ma trận…

⎥⎥⎥

⎢⎢⎢

100010001

⎥⎥⎥

⎢⎢⎢

300020001

ĐHBK HànộiB/m Thiết bị điện – điện tử

29

Các toán tử logic

» Mass = [-2 10 NaN 30 -11 Inf 31];» each_pos = Mass>=0each_pos =

0 1 0 1 0 1 1» all_pos = all(Mass>=0)all_pos =

0» all_pos = any(Mass>=0)all_pos =

1» pos_fin = (Mass>=0)&(isfinite(Mass))pos_fin =

0 1 0 1 0 0 1

» Mass = [-2 10 NaN 30 -11 Inf 31];» each_pos = Mass>=0each_pos =

0 1 0 1 0 1 1» all_pos = all(Mass>=0)all_pos =

0» all_pos = any(Mass>=0)all_pos =

1» pos_fin = (Mass>=0)&(isfinite(Mass))pos_fin =

0 1 0 1 0 0 1

= = equal to

> greater than

< less than

>= Greater or equal

<= less or equal

~ not

& and

| or

isfinite(), etc. . . .

all(), any()

find1 = TRUE0 = FALSE

Lưu ý:

Page 15: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

30

Một số hàm toán học

Các hàm toán họcabs, sign – hàm trả về trị tuyệt đối và dấusin, cos, asin, acos… – hàm lượng giácexp, log, log10 – hàm mũ e, log tự nhiên, log hệ 10ceil, floor, fix, round – các hàm làm tròn sốsqrt – hàm căn bậc haigcd – ước số chung lớn nhấtlcm – bội số chung nhỏ nhấtreal, img – hàm trả về phần thực, phần ảo của số phứcrem, mod – các hàm lấy phần nguyên và phần dư của phép chiamax, min, means – các hàm tìm max, min và trị trung bìnhsort – hàm sắp xếp…

ĐHBK HànộiB/m Thiết bị điện – điện tử

31

Công cụ hiển thị - Visualizing data

2-D PlottingHàm plot() – cú pháp

Thí dụ sử dụng hàm plot()

plot(x1, y1, 'clm1', x2, y2, 'clm2', ...)plot(x1, y1, 'clm1', x2, y2, 'clm2', ...)

x=[0:0.1:2*pi];y=sin(x);z=cos(x);plot(x,y,x,z,'linewidth',2)title('Sample Plot','fontsize',14);xlabel('X values','fontsize',14);ylabel('Y values','fontsize',14);legend('Y data','Z data')grid on

x=[0:0.1:2*pi];y=sin(x);z=cos(x);plot(x,y,x,z,'linewidth',2)title('Sample Plot','fontsize',14);xlabel('X values','fontsize',14);ylabel('Y values','fontsize',14);legend('Y data','Z data')grid on

Page 16: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

32

Công cụ hiển thị - Visualizing data

Title

Ylabel

Xlabel

Grid

Legend

Sử dụng TEX cho phép hiển thị ký tự Hy Lạp, các ký tự toán học…

ĐHBK HànộiB/m Thiết bị điện – điện tử

33

Công cụ hiển thị - Visualizing data

subplotCú pháp

»subplot(2,2,1); » …

»subplot(2,2,2)» ...

»subplot(2,2,3)» ...

»subplot(2,2,4)» ...

»subplot(2,2,1); » …

»subplot(2,2,2)» ...

»subplot(2,2,3)» ...

»subplot(2,2,4)» ...

subplot(rows,cols,index)subplot(rows,cols,index)Vẽ nhiều đồ

thị trên cùng cửa sổ

Page 17: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

34

Công cụ hiển thị - Visualizing data

3-D plotting

x = 0:0.1:2;y = 0:0.1:2;[xx, yy] = meshgrid(x,y);zz=sin(xx.^2+yy.^2);surf(xx,yy,zz)xlabel('X axes')ylabel('Y axes')

x = 0:0.1:2;y = 0:0.1:2;[xx, yy] = meshgrid(x,y);zz=sin(xx.^2+yy.^2);surf(xx,yy,zz)xlabel('X axes')ylabel('Y axes')

ĐHBK HànộiB/m Thiết bị điện – điện tử

35

Công cụ hiển thị - Visualizing data

Các dạng vẽ contour và 3-D

contourfcontour3plot3waterfallmeshsurf

Page 18: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

36

Công cụ hiển thị - Visualizing data

Một số thí dụ hiển thị khác

barbar3hhistareapie3rose

ĐHBK HànộiB/m Thiết bị điện – điện tử

37

M-files

Script filesLà một tập lệnh lưu trong tệp tin m-file (tệp tin có đuôi .m). Tiện lợi hơn việc phải gõ từng lệnh vào dấu nhắc MATLAB (>>).Các biến tạo ra khi chạy m-file được lưu trữ trong Workspace của MATLAB

Function filesCho phép người dùng tạo hàm riêng của mìnhTất cả các biến bên trong hàm có tính chất local (Muốn biến có tính chất global, phải dùng từ khóa global khi khai báo biến)Thông tin đưa vào hàm dưới dạng thông sốMATLAB hỗ trợ nhiều tính năng cho hàm xem thêm help function

Page 19: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

38

M-files

Cửa sổ soạn thảo M-file: Editor/DebuggerSelect Workspace

Set Auto-Breakpoints

tips

ĐHBK HànộiB/m Thiết bị điện – điện tử

39

M-files

Function file

function y = mean (x)% MEAN Average or mean value.% For vectors, MEAN(x) returns the mean

value.% For matrices, MEAN(x) is a row vector% containing the mean value of each column.[m,n] = size(x);if m == 1

m = n;endy = sum(x)/m;

Tham số raTham số vào

Tên hàm (phải trùng với tên file)

Các dòng này sẽxuất hiện khi gõ lệnh help mean

Nội dung hàm

Page 20: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

40

Viết chương trình trong MATLAB

Các điều khiển chương trình

Lệnh điều kiện if

Vòng lặp while

if ((attendance >= 0.90) & (grade_average >= 60))pass = 1;

end;

if ((attendance >= 0.90) & (grade_average >= 60))pass = 1;

end;

eps = 1;while (1+eps) > 1

eps = eps/2;endeps = eps*2

eps = 1;while (1+eps) > 1

eps = eps/2;endeps = eps*2

ĐHBK HànộiB/m Thiết bị điện – điện tử

41

Viết chương trình trong MATLAB

Vòng lặp for

Lệnh điều kiện switch

a = zeros(k,k) % Preallocate matrixfor m = 1:k

for n = 1:ka(m,n) = 1/(m+n -1);

endend

a = zeros(k,k) % Preallocate matrixfor m = 1:k

for n = 1:ka(m,n) = 1/(m+n -1);

endend

method = 'Bilinear';switch lower(method)

case {'linear','bilinear'}disp('Method is linear')

case 'cubic'disp('Method is cubic')

otherwisedisp('Unknown method.')

end

method = 'Bilinear';switch lower(method)

case {'linear','bilinear'}disp('Method is linear')

case 'cubic'disp('Method is cubic')

otherwisedisp('Unknown method.')

end

Page 21: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

42

Viết chương trình trong MATLAB

Kiểu dữ liệu

Numerical arraysMultidimentional arraysStructures and Cell arrays

1 0 0 00 1 0 00 0 1 00 0 0 1

Page N

Page 1

0 0 0 00 0 0 00 0 0 00 0 0 0

16 2 3 135 11 10 89 7 6 124 14 15 1

1 1 1 11 2 3 41 3 6 101 4 10 20

ĐHBK HànộiB/m Thiết bị điện – điện tử

43

Lưu biến và buổi làm việc

Lưu các biến trong WorkspaceDùng lệnh save và load

Lưu buổi làm việcDùng lệnh diary

load fnameload fname x y zload fname -asciiload fname -mat

load fnameload fname x y zload fname -asciiload fname -mat

save fnamesave fname x y zsave fname -asciisave fname -mat

save fnamesave fname x y zsave fname -asciisave fname -mat

diarydiary fnamediary (‘fname’)diary on/off

diarydiary fnamediary (‘fname’)diary on/off

Page 22: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

44

Xuất/nhập dữ liệu

Cho tệp tin BINARYLệnh fopen, fclose, fread, fwrite, fseek:

Cho tệp tin TEXTLệnh textread

Lệnh dlmread

» fid= fopen('mydata.bin' , 'wb');» fwrite (fid,eye(5) , 'int32');» fclose (fid);» fid= fopen('mydata.bin' , 'rb');» M= fread(fid, [5 5], 'int32')» fclose (fid);

» fid= fopen('mydata.bin' , 'wb');» fwrite (fid,eye(5) , 'int32');» fclose (fid);» fid= fopen('mydata.bin' , 'rb');» M= fread(fid, [5 5], 'int32')» fclose (fid);

»[A1…An]=textread(filename,format,N)»[A1…An]=textread(filename,format,N)

» M = dlmread(filename,delimiter,range)» M = dlmread(filename,delimiter,range)

ĐHBK HànộiB/m Thiết bị điện – điện tử

45

GUI

Graphics objectsRootobject

UIMenuobjects Axes object

Figureobject

Surfaceobject

Lineobjects

Textobjects

UIControlobjects

Axes object

Page 23: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

46

GUI

Làm việc với object’s handleTạo cùng với lệnh

Các hàm tiện ích– 0 – root object handle– gcf – get current figure handle– gca – get current axis handle– gco – get current object handle

Hàm findobj

handle = plot(x_data, y_data, ...)

h_obj = findobj(h_parent, 'Property', 'Value', ...)

Default = 0 (root object)

ĐHBK HànộiB/m Thiết bị điện – điện tử

47

GUI

Thay đổi thuộc tính đối tượngLấy thuộc tính của đối tượng với hàm get

Đặt thuộc tính cho đối tượng với hàm set

Thay đổi thuộc tính đối tượng với Property Editor

get(h_object)

set(h_object)

set(h_object,'PropertyName','New_Value',...)

Page 24: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

48

GUIDE

Push ButtonsRadio Buttons

Frames

Checkbox Slider

Edit text

static text

Axes

MATLAB hỗ trợ việc tạo giao diện người dùng.

ĐHBK HànộiB/m Thiết bị điện – điện tử

49

GUIDE

Tạo giao diện với GUIDE

Guide Editor

Property Inspector

Result Figure

Page 25: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

50

GUIDE

Làm việc với m-file

Thí dụ tạo GUI và lập trình với m-file

...handles.a = get(handles.slider_a,'Value');set(handles.text_a,'String',... num2str(handles.a));

% Update handles structureguidata(hObject, handles);...

ĐHBK HànộiB/m Thiết bị điện – điện tử

51

Giải phương trình vi phân trong MATLAB

Dùng hàm ODE23 và ODE45Trở lại thí dụ 1:

Chuyển về dạng phương trình trạng thái

Page 26: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

52

Giải phương trình vi phân trong MATLAB

Các bước giải phương trình vi phân trong thí dụ 1:1. Tạo hàm trạng thái elecsys()

21

2

2

1

.xRxVC

x

xx

−−=

&

&

Khai báo thông sốmạch

Khai báo phương trình trạng thái

ĐHBK HànộiB/m Thiết bị điện – điện tử

53

Giải phương trình vi phân trong MATLAB

Các bước giải phương trình vi phân trong thí dụ 1:2. Giải phương trình dùng hàm ODE23()

Gọi hàm ode23()giải phương trình vi phân khai báo trong elecsys

BTVN: Mô phỏng quá trình quá độ của động cơ DC kích thích độc lập trong MATLAB.

Page 27: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

54

Simulink

Getting started

Commonly Used BlocksContinuousDiscontinuousDiscreteLogic and Bit OperationsLookup TablesMath OperationsModel VerificationModel-Wide UtilitiesPorts and SubsystemsSignal AttributesSignal RoutingSinksSources

ĐHBK HànộiB/m Thiết bị điện – điện tử

55

Simulink

Trình tự xây dựng mô hình (block-diagram) trong SimulinkLập mô hình toán của hệ thống ở dạng phương trình vi phân, hàm truyền, hoặc không gian trạng thái (liên tục hoặc gián đoạn)Xác định dạng đầu vào, đầu raSử dụng Simulink Library Browser để chọn các biểu tượng tương ứng với các thông số cần thiết cho mô hìnhChọn thời gian chạy mô phỏng và chọn solver cho mô hình

Thí dụ 1 xây dựng trong Simulink

V

x' = Ax+Bu y = Cx+Du

State-Space Scope

Page 28: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

56

Simulink

Simulation\Configuration Parameters

Solver:ODE23 – fast, wide toleranceODE45 – first choiceODE123 – multi-step, tight tolerance, time consummingODE15s – multi-step, stiff…

Solver options:Type: – variable-step or fixed-stepMax step size: …Min step size: ……

ĐHBK HànộiB/m Thiết bị điện – điện tử

57

Simulink

Một số tiện ích – trình bày onlineTạo sub-modelSử dụng callback của model và sub-modelChạy mô phỏng từ dấu nhắc MATLAB

Dùng chức năng mask cho sub-modelSub-model có điều kiện

– Thí dụ với if, enable…

[t, x, y] = sim(model, timespan, option, ut)

Page 29: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

58

Simulink

Bài tập 1: giải phương trình

Bài tập 2: giải mạch RLC

Bài tập 3: mô phỏng động cơ DC kích thích độc lập

ĐHBK HànộiB/m Thiết bị điện – điện tử

59

Mach tu may dien xoay chieu - day quan 2 lopTran Vinh ThaiDHBK Hanoi 9/2006.

1AA

2AZ

3ZZ

4ZB

5BB

6BX

7XX

8XC

9CC

10CY

11YY

12YA

13AA

14AZ

15ZZ

16ZB

17BB

18BX

19XX

20XC

21CC

22CY

23YY

24YA

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24-5

0

5STD day quan pha A

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24-5

0

5STD day quan pha B

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24-5

0

5STD day quan pha C

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

-5

0

5

STD quay day quan may dien xoay chieu

3. Phân tích, mô phỏng TBĐ với Simulink

Bài tập 4: Mô phỏng từ trường quay trong máy điện xoay chiều

Page 30: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

60

3. Phân tích, mô phỏng TBĐ với Simulink

Bài tập 4: Mô phỏng từ trường quay trong máy điện xoay chiều

ĐHBK HànộiB/m Thiết bị điện – điện tử

61

3. Phân tích, mô phỏng TBĐ với Simulink

Bài tập 5: Mô phỏng hệ điều khiển động cơ điện một chiều

u_Au_R

Control of DC motor

Armature Current

Speed (radian)

voltage UA1

voltage UA

Urout

Tout

nout

iAoutSwitch

ASS

SpeedSensor

-K-

SpeedConverter

u_SW

(-) u_SRu_CW

SpeedController

Reference Voltage

Load Torque

Inverse Load Torque

u_A

T_L

i_A

Omega

DC Motor

ACS

CurrentSensor

u_CW

(-) u_CRu_R

CurrentController

AR

TR.s+1

Controlled Rectifier

Clock

Armature Current and Speed

Page 31: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

62

ĐHBK HànộiB/m Thiết bị điện – điện tử

63

Page 32: Matlab Slides

ĐHBK HànộiB/m Thiết bị điện – điện tử

64