Professional Documents
Culture Documents
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
NỘI DUNG
Công cụ MATLAB/Simulink
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
ĐHBK Hànội 3
B/m Thiết bị điện – điện tử
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.
Đ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ố
ĐHBK Hànội 5
B/m Thiết bị điện – điện tử
Hàm truyền
Đ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ố
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ử
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.
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ố
Tiếp theo thí dụ 1 – mô tả bài toán ở dạng thức không gian trạng thái
Đặt
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ử
– 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ử
Đ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ố
ĐHBK Hànội 14
B/m Thiết bị điện – điện tử
ĐHBK Hànội 15
B/m Thiết bị điện – điện tử
3. MATLAB/Simulink
ĐHBK Hànội 16
B/m Thiết bị điện – điện tử
MATLAB
Thao tác với ma trận, toán tử logic và các hàm toán học
M-file
GUI
…
ĐHBK Hànội 17
B/m Thiết bị điện – điện tử
Môi trường MATLAB
ĐHBK Hànội 18
B/m Thiết bị điện – điện tử
»» -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
ĐHBK Hànội 20
B/m Thiết bị điện – điện tử
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ử
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
ĐHBK Hànội 23
B/m Thiết bị điện – điện tử
Thao tác với ma trận
ĐHBK Hànội 24
B/m Thiết bị điện – điện tử
»» 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
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ử
»» 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
ĐHBK Hànội 28
B/m Thiết bị điện – điện tử
= = 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
ĐHBK Hànội 30
B/m Thiết bị điện – điện tử
2-D Plotting
Hàm plot() – cú pháp
plot(x1,
plot(x1, y1,
y1, 'clm1',
'clm1', x2,
x2, y2,
y2, 'clm2',
'clm2', ...)
...)
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
Ylabel
Grid
Legend
Xlabel
ĐHBK Hànội 32
B/m Thiết bị điện – điện tử
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ử
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
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
Set Auto-
Breakpoints
tips
ĐHBK Hànội 38
B/m Thiết bị điện – điện tử
M-files
ĐHBK Hànội 39
B/m Thiết bị điện – điện tử
Viết chương trình trong MATLAB
if
if ((attendance
((attendance >=
>= 0.90)
0.90) && (grade_average
(grade_average >=
>= 60))
60))
pass = 1;
pass = 1;
end;
end;
ĐHBK Hànội 40
B/m Thiết bị điện – điện tử
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ử
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
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
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
Line
objects
Text
objects
ĐHBK Hànội 45
B/m Thiết bị điện – điện tử
GUI
Hàm findobj
GUI
set(h_object,'PropertyName','New_Value',...)
ĐHBK Hànội 47
B/m Thiết bị điện – điện tử
GUIDE
Checkbox Slider
Edit text
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
...
handles.a = get(handles.slider_a,'Value');
set(handles.text_a,'String',...
num2str(handles.a));
ĐHBK Hànội 50
B/m Thiết bị điện – điện tử
Đ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
ĐHBK Hànội 52
B/m Thiết bị điện – điện tử
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
ĐHBK Hànội 54
B/m Thiết bị điện – điện tử
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
ĐHBK Hànội 57
B/m Thiết bị điện – điện tử
Simulink
ĐHBK Hànội 58
B/m Thiết bị điện – điện tử
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
-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ử
Urout
Control of DC motor
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ử