Tải bản đầy đủ (.docx) (24 trang)

THỰC HÀNH lập TRÌNH TRÊN MATLAB

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (664.09 KB, 24 trang )

PHẦN I: THỰC HÀNH LẬP TRÌNH TRÊN MATLAB
Bai 1_VẼ ĐỒ THỊ TRONG MATLAB
Lí thuyết:
-

Đồ thị trong không gian 2D:
• Lệnh “plot”
plot(x,y)
với y=f(x) – là hàm số cần vẽ
x – là vectoer miền giá trị của hàm y
• Các tham số plot
Plot(x,y,’linestye_marker_color’)
Color
b
G
R
C
M
Y
K
w
Linestyle
:
-.
-O
X
+
*
Marker
S
D


V
^
<
>
P
H

Xanh da trời
Xanh lá cây
Đỏ
Xanh xám
Đỏ tím
Vàng
Đen
Trắng
Nét liền
Đường chấm
Đường gạch chấm
Đường gạch gạch
Đường o
Đường x
Đường dấu +
Đường dấu *
Vuông
Diamond
Triangle(down)
Triangle(up)
Triangle(left)
Triangle(right)
Pentagram

Hexagram
1












-

Lệnh “hold on”
Khi muốn vẽ thêm đô thị trên đồ thị hiên có ta sử dụng lệnh “hold
on”. Để tắt chế độ này ta dùng lệnh “hold off”.
Lệnh “ grid on “
Một trong những lệnh dùng để tùy chỉnh kểu trục tọa độ,giúp nhìn
đồ thị được trực quan hơn.
Lệnh “axis”
axis=([xmin xmax ymin ymax])
Dùng để giới hạn đồ thị theo mong muốn.
Chú thích trên đồ thị
Các lệnh “ xlabel,ylabel ” để đặt tên cho trục của đồ thị
xlabel(‘truc x’)
ylabel(‘truc y’)
Lệnh “ title(‘____’) “ để đặt tên cho đồ thị.

Lệnh “ linspace “ để xác định giới hạn của trục Ox,Oy
x=linspace(0,pi,30)

Đồ thị trong không gian 3D:
• Lệnh “plot”
plot(x,y,z)
• Các lệnh khác tương tự như trong đồ thị 2D.

Bài làm:
Bài 1-1: Vẽ đồ thị hàm sau: y = x2 + sinx + 5 trong khoảng (0,π).
Bài Làm
Nhập :
x=0:0.1:pi;
y=x.^2+sin(x)+5;
plot(x,y)
xlabel('Truc x')
ylabel('Truc y')
grid on
title('Tran Thanh Duong')
Nhấn Enter

2


Bài 1-2. Cho biết mối quan hệ giữa mô men và độ trượt của động cơ không
đồng bộ rô to lồng sóc tuân theo biểu thức:
M =

2 M th
S th

S
+
S
S th

- Lập trình trên Matlab vẽ đồ thị đặc tính cơ của động cơ với đồ thị màu đỏ,
đường liền nét và đánh dấu các điểm được chọn bằng dấu o, biết
Mth=18N.m, Sth = 0.45, n0 = 2000v/ph. Đặt tên đồ thị theo họ tên của mình.

Bài Làm
Nhập :
Mth=18;
Sth=0.45;
n0=2000;
s=0:0.1:1;
M=2*Mth./(Sth./s+s./Sth);
n=n0*(1-s);
plot(M,n,'r-o')
xlabel('Momen')
ylabel('Tocdo')
grid on
title('Tran Thanh Duong')
Nhấn Enter

3


Bài 1-3: Vẽ đồ thị hàm số sin(1/x), với x lấy trong khoảng phù hợp.
Bài Làm
Nhập :

x=0:0.2:2*pi;
y=sin(1./x);
plot(x,y)
xlabel('Truc x')
ylabel('Truc y')
grid on
title('Tran Thanh Duong')
Nhán Enter

4


Bài 1-4: Vẽ đồ thị hàm y=sin(x) với đồ thị màu lam, đường liền nét và đánh
dấu các điểm được chọn bằng dấu *, trục x thay đổi từ 0 tới 2π, mỗi bước
thay đổi là π/8.
Bài Làm
Nhập :
x=0:pi./8:2*pi;
y=sin(x);
grid on
plot(x,y,'c-*')
title('Tran Thanh Duong')
Nhán Enter

5


Bai 2_MA TRAN TRONG MATLAB
Lí thuyết:
-


-

-

Khái niệm: trong MATLAB dữ liệu để đưa vào xử lí dưới dạng ma trận
Ma trận A có n hàng,m cột được gọi là ma trận cỡ m x n ,kí hiệu là
Am x n . Phần tử aij là phần tử nằm ở hàng thứ i ,cột j.
Cách để nhập một ma trận
• Liệt kê trực tiếp:
>> A=[1 2 3;4 5 6;7 8 9]
• Thông qua lệnh nhập:
>>input(‘ nhap gia tri cho ma tran A’)
nhap gia tri cho ma tran A=[1 2 3;4 5 6;7 8 9]
Tìm kích thước của ma trận
>>size(_ten_matran_)
Trích xuất phần tử của ma trận
Vidu:
A=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1];
B=A(1,:)

>>

B =
16

3

2


13
6


-

Các phép toán với ma trận
• Tính tổng các phần tử trên hàng, cột
A=[16 3 2 13;5
%Tinh tong cac
B=[sum(A(:,1))
%Tinh tong cac
B=[sum(A(1,:))

>>

B =
34

>>

34

34

34

34

34


34

B =
34



10 11 8;9 6 7 12;4 15 14 1];
phan tu tren cac cot cua A
sum(A(:,2)) sum(A(:,3)) sum(A(:,4))]
phan tu tren cac dong cua A
sum(A(2,:)) sum(A(3,:)) sum(A(4,:))]

Tìm ma trận chuyển vị
A=[5 3 6;7 9 1;3 9 4]
%Tim ma tran chuyen vi cua 2 ma tran tren
M=A'

>>

M =
5
3
6



7
9

1

3
9
4

Phép cộng, trừ, nhân, chia
A=[5 3 6;7 9 1;3 9 4]
B=[15 62 13;23 31 34;41 90 36]
%Phép c?ng tr? nhân chia%
C=A+B
D=A-B
E=A*B
F=A/B

>>

C =
20
30
44

>>

19
35
40

-59
-22

-81

-7
-33
-32

D =
-10
-16
-38

>>

65
40
99

E =
7


390
353
416
>>

943
803
825


383
433
489

F =
-0.1978
-0.4728
0.1506

0.1142
-0.3786
0.1008

0.1303
0.5561
-0.0385

Phép quay ma trận



%Thuc hien phep Quay va Dao
Z=rot90(A,2)

>>

Z =
4
1
6


9
9
3

3
7
5

Bài làm:
Bài 2-1: Nhập vào ma trận: A=[16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]
-

Tìm kích thước ma trận A.
Lấy dòng đầu tiên của ma trận A.
Tạo ma trận B bằng 2 dòng cuối cùng của A.
Tính tổng các phần tử trên các cột của A. (gợi ý: tính tổng các phần tử trên

cột 1: sum(A(:,1))).
- Tính tổng các phần tử trên các dòng của A.
Bài Làm
Nhập :
A=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1];
%Tim kich thuoc cua ma tran A
size(A)
%Lay dong dau tien cua ma tran A
B=A(1,:)
%Tao ma tran bang 2 dong cuoi cung cua A
B=A(2:3,:)
%Tinh tong cac phan tu tren cac cot cua A

B=[sum(A(:,1)) sum(A(:,2)) sum(A(:,3)) sum(A(:,4))]
%Tinh tong cac phan tu tren cac dong cua A
B=[sum(A(1,:)) sum(A(2,:)) sum(A(3,:)) sum(A(4,:))]
Nhấn Enter

ans =
8


4

4

16

3

2

13

5
9

10
6

11
7


8
12

34

34

34

34

34

34

34

34

B =

B =

B =

B =

Bài 2-2: Nhập vào ma trận A, B bất kỳ, thực hiện các yêu cầu sau:
-


Gọi các phần tử trong ma trận A.
Gọi 1 ma trận con từ 2 ma trận A hoặc B.
Tìm ma trận chuyển vị của 2 ma trận trên.
Thực hiện các phép nhân, chia, cộng, trừ các ma trận trên.
Thực hiện phép quay và đảo các ma trận.

Bài Làm
Nhập :
A=[5 3 6;7 9 1;3 9 4]
B=[15 62 13;23 31 34;41 90 36]
%Goi cac phan tu trong ma tran A
C=A(1:2)
%Goi mot ma tran con tu 2 ma tran A hoac B
D=B(1:3,2:2)
%Tim ma tran chuyen vi cua 2 ma tran tren
M=A'
N=B'
%Thuc hien cac phep tinh Cong,Tru,Nhan,Chia cac ma tran tren
Y=A+B
U=A-B
I=A*B
O=A./B
%Thuc hien phep Quay va Dao
Z=rot90(A,2)
X=fliplr(A)
Nhán Enter

9



C =
5

7

D =
62
31
90
M =
5
3
6

7
9
1

3
9
4

15
62
13

23
31
34


41
90
36

20
30
44

65
40
99

19
35
40

-10
-16
-38

-59
-22
-81

-7
-33
-32

943
803

825

383
433
489

N =

Y =

U =

I =
390
353
416
O =
0.3333
0.3043

0.0484
0.2903

0.4615
0.0294
10


0.0732


0.1000

0.1111

Z =
4
1
6

9
9
3

3
7
5

6
1
4

3
9
9

5
7
3

X =


Bai 3_GIẢI PHƯƠNG TRÌNH TRONG MATLAB
Lí thuyết:
-

Kiến thức về biện luận & giải phương trình bậc hai
Cho phương trình bậc 2 có dạng ax2 + bx + c = 0
(+) Biện luận :
• TH1: a = 0
 phương trình trở về dạng phuong trình bậc nhất : bx + c = 0
Suy ra PT nghiệm duy nhất x = -c/b
• TH2 : a ≠ 0
phương trình là PT bậc 2
Ta tính delta: ∆ = b2 -4*a*c
Suy ra PT có 2 khả năng:
KN1: PT vô nghiệm ∆ < 0
KN2: PT có nghiệm kép∆ = 0
KN3: PT có 2 nghiệm phân biệt∆ > 0
x1= (- b – sqrt(∆))/2*a
x2= (- b + sqrt(∆))/2*a.

-

Định luật Ohm cho toàn mạch :
11


-

I=U/R

Định luật Kirhoff 1,2:

Bài làm:
Bài 3-1: Biện luận số nghiệm của phương trình a – bx + c=0.
Bài Làm
Nhập :
function [x1,x2]=FileThuNghiem(a,b,c)
if nargin<3;
error('vui long nhap du 3 he so phuong trinh')
elseif a==0
x1=c/b;
x2=[];
else
D=b.^2-4*a*c;
x1=(-b+sqrt(D))./(2*a);
x1=(-b-sqrt(D))./(2*a);
end

Bài 3-2: Lập trình trên M-file để:Giải phương trình bậc 2: a+bx+c=0
Bài làm
Nhập :
a=input('nhap a');
b=input('nhap b');
c=input('nhap c');
x1=(-b-sqrt(b^2-4*a*c))/(2*a)
x1=(-b+sqrt(b^2-4*a*c))/(2*a)

Chạy trên common window

Bài 3-3: Cho một mạch điện như hình

vẽ:

12


- Cho biết số chỉ của các đồng hồ và giá trị của . Xác định , . Cho mạch điện

gồm R, C mắc nối tiếp. Điện áp đặt vào mạch U, dòng điện trong mạch là I.
Tần số điện áp là f. Biết điện áp trên điện trở . . Hãy tính R và C.
Bài làm
Nhập :
U=input('nhap U:');
U1=input('nhap U1:');
U2=input('nhap U2:');
R1=input('nhap R1:');
I=U1/R1;
R2=(((U^2-U2^2)/I^2)-R1^2)/(2*R1)
X2=sqrt((U2^2/I^2)-R2^2)

Chạy trên
nhap
nhap
nhap
nhap

common window
U:110
U1:100
U2:100
R1:50


R2 =
-19.7500
X2 =
45.9341

Bài 3-4: Cho mạch điện gồm R, C mắc nối tiếp. Điện áp đặt vào mạch U, dòng
điện trong mạch là I . Tần số điện áp là f .Biết đeịn áp trên điện trở là U R. Hãy
tính R, C.
Bài Làm
Nhập :
U=input('nhap U:');
I=input('nhap I:');
Ur=input('nhap Ur:');
f=input('nhap f:');
R=Ur/I
Uc=sqrt(U^2-Ur^2);
Zc=Uc/I;
C=1/(2*pi*f*Zc)

Chạy trên common window
nhap U:220
nhap I:2
nhap Ur:110
13


nhap f:50
R =
55

C =

3.3414e-005

Bài Về Nhà:
Bài 1:Giải hệ phương trình

Bằng cách chuyển về dạng ma trận và thực hiện nó trên Matlab
Bài Làm
Nhập :
A=[4 -2 -10;2 10 -12;-4 -6 16]
B=[-10;32;-16]
inv(A)*B
Nhấn Enter

A =
4
2
-4

-2
10
-6

-10
-12
16

B =
-10

32
-16
ans =
2
4
1

Bài 2:Tính giá trị của Y theo các miền giá trị khác nhau của X
-

Nếu X<0 thì y=0
Nếu X≥0 và X≤5 thì Y=X2
Nếu X>5 thì Y=25*X
14


Thực hiện bài toán trên Matlab
Bài Làm
Nhập :
x=input('nhap x:')
if x<0
y=0
elseif x>=0&&x<=5
y=x^2
else
y=25*x
end
Nhấn Enter

nhap x:2

x =
2
y =
4

Bài 3:Bài toán phân loại học sinh
-

-

Nhập điểm vào
+) điểm 9, 10  loại Giỏi
+) điểm 7, 8  loại Khá
+) điểm 5, 6  loại Trung bình
+) điểm 0, 1, 2, 3, 4  loại Yếu
Nếu điểm vào không phải là số nguyên nằm giữa 0 và 10 thì báo
không hợp lệ

Bài Làm
Nhập :
diem=input('nhap diem:')
switch diem
case {9 10}
disp('loai gioi');
case {7 8}

15


end


disp('loai kha');
case {5 6}
disp('loai trung binh');
case {0 1 2 3 4}
disp('loai yeu');
otherwise
disp('khong hop le');

Nhấn Enter

-

nhap diem:9
diem =
9
loai gioi

-

nhap diem:3
diem =
3

-

loai yeu
nhap diem:6.25
diem =
6.2500

khong hop le

PHẦN II: THỰC HÀNH TRÊN SIMULINK
Li thuyết:
-

-

Các khối sử dụng trong bài thực hành
• Khối nguồn không đổi: Constant
• Khối hiển thị : Scope,XYgraph
• Các khối trong thư viện hàm liên tục : Integrator,Derivative
• Các khối trong thư viện Math Operator :
Gain,Product,Sum,Trigonometric Function
• Khối chính trong thư viện Signal routing : Mux
Các bước thực hiện Mô phỏng hệ thống bằng Simulink
• B1: Gội phần ứng dụng Simulink
Kích chuột vào biểu tượng Simulink Library Browser
16




B2: Mở cửa sổ làm việc

Kích chuột vào biểu tượng create a new model  xuất hiện cửa sổ có
tên “untitle”


B3 : Xây dựng mô hình SML


Kích đúp chuột vào thư viện SML => kích đúp chuột vào Source ->
Constant => kích và kéo sang tab untitle.Làm tương tự với các khối còn
lại.


B4 : Nối các khối theo sơ đồ cấu trúc

Nối đầu mũi tên ra của khối này vào đầu mũi tên vào của khối kia.Khi
cần nối nhiều hoặc nối chập thì nối từ đầu mũi tên vào của khối này
vào đường nối cần thiết và thả.
Ngoài ra có thể thay đổi kích thước khối,di chuyển khối, copy khối.





B5 : Mở các khối bằng kích đúp vào khối đó và điều chỉnh số liệu cần
thiết
B6 ; Mô phỏng
Kích vào Simulation => Start hoặc kích trực tiếp vào biểu tượng
Start/Pause Simulation.
B7 : Thay đổi thông số quá trình mô phỏng nếu cần.

Bài làm:
Bài 1: Cho hệ thống được mô tả bởi:
u1 = (u 2 sin u1 + 5)u 3 + 2
u1 = (u 2 sin u1 + 5)u 3 + 2



 du 2
1

= u1 + 7 − u 3

u 2 = (u1 + 7 − u 3 )
s
 dt

u 3 + u 2 + u1 = tan u1
⇒ u 3 = −u 2 − u1 + tan u1

Mô phỏng:

17


18


Bài 2: Xây dựng trên Simulink mô hình của động cơ điện 1 chiều có hệ
phương trình đơn giản hóa:
1 1



ω = ( M e − M c ). .

TM s
TM . dt = M e − M c



M e = ia .φ
M e = ia .φ


1 1
di
ia = (U − ia .Ra − ω.φ ). .
U = Ra .ia + ω.φ + Ta . a
Ta s
dt ⇒ 


Mô phỏng:

19


Bài 3: Xây dựng trên Simulink mô hình động cơ không đồng bộ có hệ
phương trình đơn giản hóa viết ở hệ trục (d,q) như sau:

20


U d = r.id − ψ q
U q = r.iq + ψ d
dψ D
i
i

= − D + ψ Q .s.ϖ ST = − D + (1 − ω r ).314.ψ Q
dt
Tr
Tr
dψ Q
dt

=−

iQ
Tr

− ψ D .s.ϖ ST = −

iQ
Tr

− (1 − ω r ).314.ψ D

ψ d = x.id + i D
ψ q = x.i q + iQ
ψ D = µ .x.i d + i D
ψ Q = µ.x.i q + iQ
dω r
= Me − Mc
dt
M e = ψ d .iq − ψ q .id

TM .



ψ q = −U d + r.id
ψ d = U q − r.i q
 i
1
ψ D = − D + (1 − ω r ).314.ψ Q .
 Tr
 s
 iQ
1
ψ Q = − − (1 − ω r ).314.ψ D .
 Tr
 s
1
i d = (ψ d − i D ).
x
1
i q = (ψ q − iQ ).
x
i D = ψ D − µ .x.i d
iQ = ψ Q − µ .x.iq

ω r = ( M e − M c ).

1 1
.
TM s

M e = ψ d .iq − ψ q .i d


Mô phỏng:

21


22


23


24



×