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

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

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

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

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

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

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

di
Ri + L + vC = Vs Biểu thức:
dt VC ( s)
Y ( s) =
VS ( s)
dvC d 2v
RC + LC 2C + vC = Vs
dt dt
wBTVN: 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 8
B/m Thiết bị điện – điện tử
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

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

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 11
B/m Thiết bị điện – điện tử
Thí dụ về ph.pháp Euler viết trong MATLAB

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

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

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

ĐHBK Hànội 13
B/m Thiết bị điện – điện tử
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
† …
wThí dụ ODE45:

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

Thí dụ: Runge-Kutta Order 4

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

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 17
B/m Thiết bị điện – điện tử
Môi trường MATLAB

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

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

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

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

»» -5/(4.8+5.32)^2
-5/(4.8+5.32)^2 »» aa == 2;
2; Tác dụng của dấu
ans
ans == »» bb == 5; “;”
5;
-0.0488
-0.0488 »» a^b
»» (3+4i)*(3-4i) a^b
(3+4i)*(3-4i)
ans
ans
ans == Kết quả được
ans == gán cho “ans”
25 32
32
25 nếu không đặt
»» cos(pi/2)
cos(pi/2)
»» xx == 5/2*pi;
5/2*pi; tên biến
ans
ans == »» yy == sin(x)
sin(x)
6.1230e-017
6.1230e-017 yy ==
»» exp(acos(0.3))
exp(acos(0.3)) 11
ans
ans ==
3.5470
»» zz == asin(y)
asin(y) Dấu () để truy cập
3.5470
zz == hàm
1.5708
1.5708

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

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 21
B/m Thiết bị điện – điện tử
Thao tác với ma trận

»» a=[1
a=[1 2;3
2;3 4]
4]
aa == Dùng dấu
11 22 ngoặc [ ]
33 44
Tách dòng với »» b=[-2.8,
b=[-2.8, sqrt(-7),
sqrt(-7), (3+5+6)*3/4]
(3+5+6)*3/4]
dấu (;) bb ==
-2.8000
-2.8000 00 ++ 2.6458i
2.6458i 10.5000
10.5000
Tách cột với dấu »» b(2,5)
b(2,5) == 23
23
trống / phảy (,)
bb ==
-2.8000
-2.8000 00 ++ 2.6458i
2.6458i 10.5000
10.5000 00 00
00 00 00 00 23.0000
23.0000

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

Thao tác với ma trận

Cột
(n)
1 2 3 4 5
A= 4
1
10
6
1
11
6
16
2
21
A (2,4)
1
2 7 12 17 22
2 8 1.2 9 4 25

Dòng (m) 3 7.2 3 5 8


7 13
1 18
11 23 A (17)
4 0 4
0.5 9 4 14
5 19
56 24
5 10 15 20 25
5 23 83 13 0 10 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

ĐHBK Hànội 23
B/m Thiết bị điện – điện tử
Thao tác với ma trận

Cộng vô hướng »» w=[1


w=[1 2;3
2;3 4]
4] ++ 55
ww ==
66 77
88 99
Tạo dãy trình tự: »» xx == 1:5
1:5
dùng dấu (:) xx ==
11 22 33 44 55
»» yy == 2:-0.5:0
2:-0.5:0
yy ==
2.0000
2.0000 1.5000
1.5000 1.0000
1.0000 0.5000
0.5000 00
»» zz == rand(2,4)
Các hàm tiện ích tạo rand(2,4)
zz ==
ma trận
0.9501
0.9501 0.6068
0.6068 0.8913
0.8913 0.4565
0.4565
0.2311
0.2311 0.4860
0.4860 0.7621
0.7621 0.0185
0.0185

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

Thao tác với ma trận

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

»» A=[1
A=[1 55 9;4
9;4 33 2.5;
2.5; 0.1
0.1 10
10 3i+1]
3i+1]
AA ==
1.0000
1.0000 5.0000
5.0000 9.0000
9.0000
4.0000
4.0000 3.0000
3.0000 2.5000
2.5000
0.1000
0.1000 10.0000
10.0000 1.0000+3.0000i
1.0000+3.0000i
»» A(:,2)=[]
A(:,2)=[]
AA ==
1.0000
1.0000 9.0000
9.0000
4.0000
4.0000 2.5000
2.5000
0.1000
0.1000 1.0000
1.0000 ++ 3.0000i
3.0000i
»» A(2,2)=[]
A(2,2)=[]
???
??? Indexed
Indexed empty
empty matrix
matrix assignment
assignment is
is not
not allowed.
allowed.

ĐHBK Hànội 25
B/m Thiết bị điện – điện tử
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= 4
1
10
6
1
11
6
16
2
21

2 8 2
1.2 7 9 12 4 17
25 22
A(1:5,5) A(1:end,end)
3 7.2 3
5 8
7 13
1 18
11 23
A(:,5) A(:,end)
A(21:25) A(21:end)’
A(3,1) 4 0 4
0.5 9 4 14 5 19
56 24
A(3)
5 23 5
83 10 1315 0 20
10 25
A(4:5,2:3)
A([9 14;10 15])

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

Thao tác với ma trận

„ Nhân chia ma trận

»» aa == [1
[1 22 33 4;
4; 55 66 77 8];
8]; [2x4]
»» bb == ones(4,3);
ones(4,3); [4x3]
»» cc == a*b
a*b [2x4]*[4x3] [2x3]
cc ==
10
10 10
10 10
10
26
26 26
26 26
26 a(2nd row).b(3rd column)

»» aa == [1
[1 22 33 4;
4; 55 66 77 8];
8];
»» bb == [1:4;
[1:4; 1:4];
1:4];
»» cc == a.*b
a.*b
cc ==
11 44 99 16
16
55 12
12 21
21 32
32 c(2,4) = a(2,4)*b(2,4)

ĐHBK Hànội 27
B/m Thiết bị điện – điện tử
Thao tác với ma trận

⎡1 0 0 ⎤ „ Các hàm tiện ích


⎢0 1 0⎥ † zeros – tạo ma trận rỗng
⎢ ⎥
† ones – tạo ma trận 1
⎣⎢0 0 1⎥⎦
† eye – tạo ma trận đơn vị
† rand – tạo ma trận các phần tử ngẫu nhiên
⎡1 0 0 ⎤ † diag – tạo ma trận đường chéo
⎢0 2 0 ⎥ † size – hàm trả về kích thước của ma trận
⎢ ⎥
⎢⎣0 0 3⎥⎦ † 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 28
B/m Thiết bị điện – điện tử

Các toán tử logic

= = equal to »» Mass
Mass == [-2
[-2 10
10 NaN
NaN 30
30 -11
-11 Inf
Inf 31];
31];
»» each_pos = Mass>=0
each_pos = Mass>=0
> greater than
each_pos
each_pos ==
< less than 00 11 00 11 00 11 11
»» all_pos = all(Mass>=0)
all_pos = all(Mass>=0)
>= Greater or equal all_pos
all_pos ==
<= less or equal 00
»» all_pos
all_pos == any(Mass>=0)
any(Mass>=0)
~ not all_pos
all_pos ==
& and 11
»» pos_fin
pos_fin == (Mass>=0)&(isfinite(Mass))
(Mass>=0)&(isfinite(Mass))
| or pos_fin
pos_fin ==
00 11 00 11 00 00 11
isfinite(), etc. . . .

all(), any()
w Lưu ý: 1 = TRUE
find 0 = FALSE

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

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

„ 2-D Plotting
† Hàm plot() – cú pháp

plot(x1,
plot(x1, y1,
y1, 'clm1',
'clm1', x2,
x2, y2,
y2, 'clm2',
'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
title('Sample Plot','fontsize',14);
Plot','fontsize',14);
xlabel('X
xlabel('X values','fontsize',14);
values','fontsize',14);
ylabel('Y
ylabel('Y values','fontsize',14);
values','fontsize',14);
legend('Y
legend('Y data','Z
data','Z data')
data')
grid
grid on
on

ĐHBK Hànội 31
B/m Thiết bị điện – điện tử
Công cụ hiển thị - Visualizing data

w Sử dụng TEX cho Title


phép hiển thị ký tự Hy
Lạp, các ký tự toán
học…

Ylabel
Grid

Legend

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

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

„ subplot subplot(rows,cols,index)
subplot(rows,cols,index)
w Vẽ nhiều đồ
thị trên cùng cửa
† Cú pháp
»subplot(2,2,1);
»subplot(2,2,1);
sổ
»» ……

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

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

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

ĐHBK Hànội 33
B/m Thiết bị điện – điện tử
Công cụ hiển thị - Visualizing data

„ 3-D plotting

xx == 0:0.1:2;
0:0.1:2;
yy == 0:0.1:2;
0:0.1:2;
[xx,
[xx, yy]
yy] == meshgrid(x,y);
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
xlabel('X axes')
axes')
ylabel('Y
ylabel('Y axes')
axes')

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

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

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

w contourf
w contour3
w plot3
w waterfall
w mesh
w surf

ĐHBK Hànội 35
B/m Thiết bị điện – điện tử
Công cụ hiển thị - Visualizing data

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

w bar
w bar3h
w hist
w area
w pie3
w rose

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

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

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


Select
Workspace

Set Auto-
Breakpoints

tips

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

M-files

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


Tham số vào
Tham số ra

Các dòng này sẽ


xuất hiện khi gõ function y = mean (x)
lệnh help mean % 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 39
B/m Thiết bị điện – điện tử
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
if ((attendance
((attendance >=
>= 0.90)
0.90) && (grade_average
(grade_average >=
>= 60))
60))
pass = 1;
pass = 1;
end;
end;

† Vòng lặp while


eps
eps == 1;
1;
while
while (1+eps)
(1+eps) >> 11
eps
eps == eps/2;
eps/2;
end
end
eps
eps == eps*2
eps*2

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

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

† Vòng lặp for


aa == zeros(k,k)
zeros(k,k) %% Preallocate
Preallocate matrix
matrix
for m = 1:k
for m = 1:k
for
for nn == 1:k
1:k
a(m,n)
a(m,n) == 1/(m+n
1/(m+n -1);
-1);
end
end
end
end

† Lệnh điều kiện switch


method
method == 'Bilinear';
'Bilinear';
switch
switch lower(method)
lower(method)
case
case {'linear','bilinear'}
{'linear','bilinear'}
disp('Method
disp('Method is
is linear')
linear')
case
case 'cubic'
'cubic'
disp('Method
disp('Method is
is cubic')
cubic')
otherwise
otherwise
disp('Unknown
disp('Unknown method.')
method.')
end ĐHBK Hànội 41
end B/m Thiết bị điện – điện tử
Viết chương trình trong MATLAB

„ Kiểu dữ liệu

1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

0 0 0 0 Page N
16 20 30 130 0
0 100 80 0
1 15 11
1 1
† Numerical arrays 9 70 60 120 0
1 2 3 4
4 14 15 1
† Multidimentional arrays 1 3 6 10
1 4 10 20
† Structures and Cell arrays
Page 1
ĐHBK Hànội 42
B/m Thiết bị điện – điện tử

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
save fname
fname load
load fname
fname
save
save fname
fname xx yy zz load
load fname
fname xx yy zz
save
save fname -ascii
fname -ascii load
load fname -ascii
fname -ascii
save
save fname
fname -mat
-mat load
load fname
fname -mat
-mat

„ Lưu buổi làm việc


† Dùng lệnh diary

diary
diary
diary
diary fname
fname
diary
diary (‘fname’)
(‘fname’)
diary
diary on/off
on/off

ĐHBK Hànội 43
B/m Thiết bị điện – điện tử
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
fclose (fid);
(fid);
»» fid= fopen('mydata.bin',, 'rb');
fid= fopen('mydata.bin' 'rb');
»» M=
M= fread(fid,
fread(fid, [5 5], 'int32')
[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
»» MM == dlmread(filename,delimiter,range)
dlmread(filename,delimiter,range)
ĐHBK Hànội 44
B/m Thiết bị điện – điện tử

GUI

„ Graphics objects
Root
object

Figure
object

UIMenu Axes object


Axes object UIControl
objects
objects
Surface
object

Line
objects

Text
objects

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

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

w MATLAB static text


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

Checkbox Slider

Edit text

Radio Buttons Push Buttons


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

GUIDE

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

Result Figure

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

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


† 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
x&1 x2
= C
x&2 V − x − R.x
1 2

ĐHBK Hànội 52
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

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

„ Getting started

w Commonly Used Blocks


w Continuous
w Discontinuous
w Discrete
w Logic and Bit Operations
w Lookup Tables
w Math Operations
w Model Verification
w Model-Wide Utilities
w Ports and Subsystems
w Signal Attributes
w Signal Routing
w Sinks
w Sources

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

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
V Scope
State-Space

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

„ Simulation\Configuration Parameters

Solver:
ODE23 – fast, wide tolerance
ODE45 – first choice
Solver options:
ODE123 – multi-step, tight tolerance, time consumming
Type: – variable-step or fixed-step
ODE15s – multi-step, stiff
Max step size: …

Min step size: …

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

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
Tran Vinh Thai
Mach tu may dien xoay chieu - day quan 2 lop DHBK Hanoi 9/2006.

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

STD day quan pha A


5

-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
STD day quan pha B
5

-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
STD day quan pha C
5

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

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_A Armature Current


u_SW u_CW u_R AR u_A i_A
u_CW u_R
Reference Speed (radian)
(-) u_SR (-) u_CR TR.s+1 T_L Omega
Voltage
Speed Current Controlled Rectifier DC Motor
Controller Controller -K-

ACS Speed
Load Torque Converter Armature Current
and Speed
Current
Switch
Sensor iAout
ASS

Speed nout
Inverse
Sensor
Load Torque voltage UA

voltage UA1
Tout
Clock

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

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

You might also like