You are on page 1of 32

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

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

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

1

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/Simulink
MATLAB Simulink

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

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

2

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ội B/m Thiết bị điện – điện tử

3

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ực Là 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…

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

4

2. Mô hình toán và phương pháp số
Phân loại mô hình toán
Mô hình tuyến tính, phi tuyến Mô hình thông số tập trung, thông số rải Mô hình tĩnh, động Mô hình liên tục, gián đoạn Mô hình xác định, bất định

Trình tự xây dựng mô hình
Xá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ện Kiểm chứng mô hình về mức độ phù hợp với hệ thống vật lý

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

5

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

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

6

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ội B/m Thiết bị điện – điện tử
7

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

Ri + L

di + vC = Vs dt

Biểu thức:

Y ( s) =

RC

dvC d 2v + LC 2C + vC = Vs dt dt

VC ( s) VS ( s)

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.
ĐHBK Hànội B/m Thiết bị điện – điện tử
8

2. Mô hình toán và phương pháp số
Mô tả không gian trạng thái
Dạ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 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ội B/m Thiết bị điện – điện tử
9

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ân
Phươ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:

yk = yk −1 + h. f (t k −1 , yk −1 )

với k = 1..n

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

11

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

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

12

Sai số của phương pháp Euler
Sai số tỉ lệ với h2.

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

13

2. Mô hình toán và phương pháp số
Các phương pháp số khác
Phương pháp Runge-Kutta bậc 2 – trong MATLAB là ODE23 Phương pháp Runge-Kutta bậc 4 – trong MATLAB là ODE45 Phương pháp chuỗi Taylor Các phương pháp Predictor-Correctors … Thí dụ ODE45:

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

14

Thí dụ: Runge-Kutta Order 4

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

15

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án Dễ học, dễ sử dụng tốn ít thời gian đầu tư cho công cụ

Các công cụ khác
Dymola với ngôn ngữ Modelica 20-Sim với phương pháp Bond Graph Maple, Mathematica, ACSL, Saber, Dynast…

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

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

16

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 …
ĐHBK Hànội B/m Thiết bị điện – điện tử
17

Môi trường MATLAB

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

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

18

Tạo biến trong môi trường MATLAB
MATLAB – máy tính tay Gán các biến trong MATLAB
» » » » a = 2; a = 2; b = 5; b = 5; Tác dụng của dấu “;”

» -5/(4.8+5.32)^2 » -5/(4.8+5.32)^2
ans = ans = -0.0488 -0.0488 » (3+4i)*(3-4i) » (3+4i)*(3-4i) ans = ans = 25 25 » cos(pi/2) » cos(pi/2) ans = ans = 6.1230e-017 6.1230e-017 » exp(acos(0.3)) » exp(acos(0.3)) ans = ans = 3.5470 3.5470

» a^b » a^b ans = ans = 32 32 » x = 5/2*pi; » x = 5/2*pi; » y = sin(x) » y = sin(x) y = y = 1 1 » z = asin(y) » z = asin(y) z = z = 1.5708 1.5708

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

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

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

19

Một số lệnh tiện ích
Các lệnh tiện ích
who và whos – liệt kê các biến clear, clear x, clear all – xóa biến close – xóa cửa sổ đồ họa hiện hành cd – đổi thư mục hiện hành dir – liệt kê nội dung thư mục hiện hành format – đặt định dạng biến lưu trong môi trường help “tên hàm” – tra cứu nhanh clc – xóa màn hình lệnh …

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

20

Thao tác với ma trận
3 khái niệm trong đại số tuyến tính
Vô 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ức Ma trận – là mảng n-D chứa các vô hướng, biến hoặc biểu thức

Trong MATLAB
Vô hướng – là ma trận 1x1 Véc-tơ – là ma trận 1xn hoặc nx1 Ma trận nxm

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

21

Thao tác với ma trận

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

Dùng dấu ngoặc [ ]

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

» b=[-2.8, sqrt(-7), (3+5+6)*3/4] » b=[-2.8, sqrt(-7), (3+5+6)*3/4] b = b = -2.8000 -2.8000 0 + 2.6458i 0 + 2.6458i » b(2,5) = 23 » b(2,5) = 23 b = b = 10.5000 10.5000

-2.8000 0 + 2.6458i 10.5000 -2.8000 0 + 2.6458i 10.5000 0 0 0 0 0 0

0 0 0 0 0 23.0000 0 23.0000

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

22

Thao tác với ma trận
Cột (n) 3
6

1

2
1

4

5
16

A=

1 2

4 8

10 1.2 5

1 9 7 4 13

11

6 4 1 5 0

2 25

21

A (2,4)

2

7

12

17

22

Dòng (m) 3 4 5

7.2 3 0 23
4

8

13

18

11 23 56 24 10
25

A (17)

0.5 9 83
10

14

19

5

15

20

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

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

Thao tác với ma trận
Cộng vô hướng

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

» w=[1 2;3 4] + 5 » w=[1 2;3 4] + 5 w = w = 6 7 6 7 8 9 8 9 » x = 1:5 » x = 1:5 x = x = 1 2 3 4 1 2 3 4 » y = 2:-0.5:0 » y = 2:-0.5:0 y = y = 2.0000 2.0000 1.5000 1.5000 1.0000 1.0000 » z = rand(2,4) » z = rand(2,4) z = z = 0.9501 0.9501 0.2311 0.2311 0.6068 0.6068 0.4860 0.4860 0.8913 0.8913 0.7621 0.7621 5 5

0.5000 0.5000

0 0

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

0.4565 0.4565 0.0185 0.0185

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

24

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 5 9;4 3 2.5; 0.1 10 3i+1] A = A = 1.0000 1.0000 4.0000 4.0000 0.1000 0.1000 » A(:,2)=[] » A(:,2)=[] A = A = 1.0000 1.0000 4.0000 4.0000 5.0000 5.0000 3.0000 3.0000 10.0000 10.0000 9.0000 9.0000 2.5000 2.5000 1.0000+3.0000i 1.0000+3.0000i

9.0000 9.0000 2.5000 2.5000

0.1000 1.0000 + 3.0000i 0.1000 1.0000 + 3.0000i » A(2,2)=[] » A(2,2)=[] ??? Indexed empty matrix assignment is not allowed. ??? Indexed empty matrix assignment is not allowed.
ĐHBK Hànội B/m Thiết bị điện – điện tử

25

Thao tác với ma trận
Truy cập các thành phần trong ma trận
1 2 3 4 5

A=

1 2 3

4 8 7.2 0 23

1

10

6

1

11

6 4 1 5 0

16

2

21

2

1.2 7 5
8

9 12 7
13

17

25 22 11
23

3

18

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

A(3,1) A(3)

4 5

4

0.5 9

4 14

19

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

5

83 10 1315

20

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

26

Thao tác với ma trận
Nhân chia ma trận
» » » » a = [1 2 3 4; 5 6 7 8]; a = [1 2 3 4; 5 6 7 8]; b = ones(4,3); b = ones(4,3); [2x4]*[4x3] 10 10 26 26 10 10 26 26 [2x4] [4x3] [2x3]

» c = a*b » c = a*b c = c = 10 10 26 26

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

» a = [1 2 3 4; 5 6 7 8]; » a = [1 2 3 4; 5 6 7 8]; » b = [1:4; 1:4]; » b = [1:4; 1:4]; » c = a.*b » c = a.*b c = c = 1 1 5 5 4 4 12 12 9 9 21 21 16 16 32 32 c(2,4) = a(2,4)*b(2,4)

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

27

Thao tác với ma trận
⎡1 0 0 ⎤ ⎢0 1 0⎥ ⎢ ⎥ ⎢0 0 1 ⎥ ⎣ ⎦ ⎡1 0 0 ⎤ ⎢0 2 0 ⎥ ⎢ ⎥ ⎢0 0 3⎥ ⎣ ⎦

Các hàm tiện ích
zeros – tạo ma trận rỗng ones – tạo ma trận 1 eye – tạo ma trận đơn vị rand – tạo ma trận các phần tử ngẫu nhiên diag – tạo ma trận đường chéo size – hàm trả về kích thước của ma trận fliplr – đảo cột ma trận trái phải flipud – đảo hàng ma trận trên dưới rot90 – xoay ma trận 90 độ (ngược chiều kim đồng hồ) transpose (‘) – chuyển vị ma trận cross & dot – nhân ma trận det – định thức ma trận inv – nghich đảo ma trận rank – hạng ma trận…
ĐHBK Hànội B/m Thiết bị điện – điện tử
28

Các toán tử logic
= = equal to > < greater than less than

» Mass == [-2 10 NaN 30 -11 Inf 31]; » Mass [-2 10 NaN 30 -11 Inf 31]; » each_pos == Mass>=0 » each_pos Mass>=0
each_pos = each_pos = 0 1 0 1 0 1 1 0 1 0 1 0 1 1 » all_pos == all(Mass>=0) » all_pos all(Mass>=0) all_pos = all_pos = 0 0 » all_pos == any(Mass>=0) » all_pos any(Mass>=0) all_pos = all_pos = 1 1 » pos_fin == (Mass>=0)&(isfinite(Mass)) » pos_fin (Mass>=0)&(isfinite(Mass)) pos_fin = pos_fin = 0 1 0 1 0 0 1 0 1 0 1 0 0 1

>= Greater or equal <= less or equal ~ & | not and or

isfinite(), etc. . . . all(), any() find

Lưu ý: 1 = TRUE 0 = FALSE
ĐHBK Hànội B/m Thiết bị điện – điện tử
29

Một số hàm toán học
Các hàm toán học
abs, sign – hàm trả về trị tuyệt đối và dấu sin, cos, asin, acos… – hàm lượng giác exp, log, log10 – hàm mũ e, log tự nhiên, log hệ 10 ceil, floor, fix, round – các hàm làm tròn số sqrt – hàm căn bậc hai gcd – ước số chung lớn nhất lcm – bội số chung nhỏ nhất real, img – hàm trả về phần thực, phần ảo của số phức rem, mod – các hàm lấy phần nguyên và phần dư của phép chia max, min, means – các hàm tìm max, min và trị trung bình sort – hàm sắp xếp …

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

30

Công cụ hiển thị - Visualizing data
2-D Plotting
Hàm plot() – cú pháp

plot(x1, y1, 'clm1', x2, y2, 'clm2', ...) plot(x1, y1, 'clm1', x2, y2, 'clm2', ...)
Thí dụ sử dụng hàm plot()

x=[0:0.1:2*pi]; x=[0:0.1:2*pi]; y=sin(x); y=sin(x); z=cos(x); z=cos(x); plot(x,y,x,z,'linewidth',2) plot(x,y,x,z,'linewidth',2) title('Sample Plot','fontsize',14); title('Sample Plot','fontsize',14); xlabel('X values','fontsize',14); xlabel('X values','fontsize',14); ylabel('Y values','fontsize',14); ylabel('Y values','fontsize',14); legend('Y data','Z data') legend('Y data','Z data') grid on grid on
ĐHBK Hànội B/m Thiết bị điện – điện tử
31

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

Title

Ylabel

Grid

Legend Xlabel
ĐHBK Hànội B/m Thiết bị điện – điện tử
32

Công cụ hiển thị - Visualizing data
subplot
Cú pháp subplot(rows,cols,index) subplot(rows,cols,index) »subplot(2,2,1); »subplot(2,2,1); » … » … »subplot(2,2,2) »subplot(2,2,2) » ... » ... »subplot(2,2,3) »subplot(2,2,3) » ... » ... »subplot(2,2,4) »subplot(2,2,4) » ... » ...

Vẽ nhiều đồ thị trên cùng cửa sổ

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

33

Công cụ hiển thị - Visualizing data
3-D plotting
x = 0:0.1:2; x = 0:0.1:2; y = 0:0.1:2; y = 0:0.1:2; [xx, yy] = meshgrid(x,y); [xx, yy] = meshgrid(x,y); zz=sin(xx.^2+yy.^2); zz=sin(xx.^2+yy.^2); surf(xx,yy,zz) surf(xx,yy,zz) xlabel('X axes') xlabel('X axes') ylabel('Y axes') ylabel('Y axes')

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

34

Công cụ hiển thị - Visualizing data
Các dạng vẽ contour và 3-D
contourf contour3 plot3 waterfall mesh surf

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

35

Công cụ hiển thị - Visualizing data
Một số thí dụ hiển thị khác
bar bar3h hist area pie3 rose

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

36

M-files
Script files
Là 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 files
Cho phép người dùng tạo hàm riêng của mình Tấ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

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

37

M-files
Cửa sổ soạn thảo M-file: Editor/Debugger
Select Workspace Set AutoBreakpoints

tips

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

38

M-files
Function file
Tham số ra Các dòng này sẽ xuất hiện khi gõ lệnh help mean Tên hàm (phải trùng với tên file) Tham số vào

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

Nội dung hàm

m = n; end y = sum(x)/m;

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

39

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
if ((attendance >= 0.90) & (grade_average >= 60)) if ((attendance >= 0.90) & (grade_average >= 60)) pass = 1; pass = 1; end; end;

Vòng lặp while
eps = 1; eps = 1; while (1+eps) > 1 while (1+eps) > 1 eps = eps/2; eps = eps/2; end end eps = eps*2 eps = eps*2

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

40

Viết chương trình trong MATLAB
Vòng lặp for
aa == zeros(k,k) %% Preallocate matrix zeros(k,k) Preallocate matrix for mm == 1:k for 1:k for nn == 1:k for 1:k a(m,n) == 1/(m+n -1); a(m,n) 1/(m+n -1); end end end end

Lệnh điều kiện switch
method == 'Bilinear'; method 'Bilinear'; switch lower(method) switch lower(method) case {'linear','bilinear'} case {'linear','bilinear'} disp('Method is linear') disp('Method is linear') case 'cubic' case 'cubic' disp('Method is cubic') disp('Method is cubic') otherwise otherwise disp('Unknown method.') disp('Unknown method.') end end

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

41

Viết chương trình trong MATLAB
Kiểu dữ liệu

1 0 0 0 0 16 0 0 0 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

Page N

Numerical arrays Multidimentional arrays Structures and Cell arrays

1 1 1 1

15 9 2 4 3 4

20 30 130 110 100 80 1 1 70 60 120 3 4 14 15 1 6 10 10 20

Page 1
ĐHBK Hànội B/m Thiết bị điện – điện tử
42

Lưu biến và buổi làm việc
Lưu các biến trong Workspace
Dùng lệnh save và load save fname save fname save fname x y z save fname x y z save fname -ascii save fname -ascii save fname -mat save fname -mat load fname load fname load fname x y z load fname x y z load fname -ascii load fname -ascii load fname -mat load fname -mat

Lưu buổi làm việc
Dùng lệnh diary diary diary diary fname diary fname diary (‘fname’) diary (‘fname’) diary on/off diary on/off
ĐHBK Hànội B/m Thiết bị điện – điện tử

43

Xuất/nhập dữ liệu
Cho tệp tin BINARY
Lệnh fopen, fclose, fread, fwrite, fseek:
» fid= fopen('mydata.bin' , 'wb'); » fid= fopen('mydata.bin' , 'wb'); » fwrite (fid,eye(5) , 'int32'); » fwrite (fid,eye(5) , 'int32'); » fclose (fid); » fclose (fid); » fid= fopen('mydata.bin' , 'rb'); » fid= fopen('mydata.bin' , 'rb'); » M= fread(fid, [5 5], 'int32') » M= fread(fid, [5 5], 'int32') » fclose (fid); » fclose (fid);

Cho tệp tin TEXT
Lệnh textread
»[A1…An]=textread(filename,format,N) »[A1…An]=textread(filename,format,N)

Lệnh dlmread
» M = dlmread(filename,delimiter,range) » M = dlmread(filename,delimiter,range)
ĐHBK Hànội B/m Thiết bị điện – điện tử
44

GUI
Graphics objects

Root object Figure object

UIMenu objects Surface object Line objects Text objects

Axes object Axes object

UIControl objects

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

45

GUI
Làm việc với object’s handle
Tạo cùng với lệnh
handle = plot(x_data, y_data, ...)

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
h_obj = findobj(h_parent, 'Property', 'Value', ...) Default = 0 (root object)
ĐHBK Hànội B/m Thiết bị điện – điện tử
46

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

Đặt thuộc tính cho đối tượng với hàm set
set(h_object) set(h_object,'PropertyName','New_Value',...)

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

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

47

GUIDE
static text Axes

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

Frames

Checkbox

Slider

Edit text

Radio Buttons

Push Buttons
ĐHBK Hànội B/m Thiết bị điện – điện tử
48

GUIDE
Tạo giao diện với GUIDE
Guide Editor Property Inspector

Result Figure
ĐHBK Hànội B/m Thiết bị điện – điện tử
49

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 structure guidata(hObject, handles); ...

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

50

Giải phương trình vi phân trong MATLAB
Dùng hàm ODE23 và ODE45 Trở lại thí dụ 1:

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

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

51

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()
Khai báo thông số mạch

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

x2 & x1 = C & x2 V − x − R.x 1 2
52

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

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.
ĐHBK Hànội B/m Thiết bị điện – điện tử
53

Simulink
Getting started
Commonly Used Blocks Continuous Discontinuous Discrete Logic and Bit Operations Lookup Tables Math Operations Model Verification Model-Wide Utilities Ports and Subsystems Signal Attributes Signal Routing Sinks Sources
ĐHBK Hànội B/m Thiết bị điện – điện tử
54

Simulink
Trình tự xây dựng mô hình (block-diagram) trong Simulink
Lậ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 ra Sử 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ình Chọ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
x' = Ax+Bu y = Cx+Du State-Space Scope

V

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

55

Simulink
Simulation\Configuration Parameters

Solver: ODE23 – fast, wide tolerance ODE45 – first choice ODE123 – multi-step, tight tolerance, time consumming ODE15s – multi-step, stiff …

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

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

Simulink
Một số tiện ích – trình bày online
Tạo sub-model Sử dụng callback của model và sub-model Chạy mô phỏng từ dấu nhắc MATLAB
[t, x, y] = sim(model, timespan, option, ut)

Dùng chức năng mask cho sub-model Sub-model có điều kiện – Thí dụ với if, enable…

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

57

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ội B/m Thiết bị điện – điện tử

58

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
Mach tu may dien xoay chieu - day quan 2 lop
1 A A 2 A Z 3 Z Z 4 Z B 5 B B 6 B X 7 X X 8 X C 9 C C 10 C Y 11 Y Y 12 Y A 13 A A 14 A Z Tran Vinh Thai DHBK Hanoi 9/2006. 15 Z Z 16 Z B 17 B B 18 B X 19 X X 20 X C 21 C C 22 C Y 23 Y Y 24 Y A

5 0 -5

STD 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 -5

STD 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 -5

STD 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

STD quay day quan may dien xoay chieu
5 0 -5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

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

59

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ội B/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 5: Mô phỏng hệ điều khiển động cơ điện một chiều

Urout

Control of DC motor
u_CW (-) u_CR u_R

u_SW

u_R

u_A AR TR.s+1 Controlled Rectifier
u_A T_L i_A Omega

Armature Current Speed (radian)

Reference Voltage

u_CW (-) u_SR

Speed Controller Load Torque Switch

Current Controller

DC Motor

-KSpeed Converter

ACS Current Sensor

Armature Current and Speed iAout nout

ASS Inverse Load Torque Speed Sensor

voltage UA voltage UA1 Tout

Clock

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

61

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

62

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

63

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

64