Các phần tử trong ma trận C được tính như sau: cij = aikbkj Chia phải ma trận/ – phép chia thông thường X=B/A tương đương với việc giải phương trình tuyến tính X*A=B → X = B*invA Ch
Trang 1CHƯƠNG 4 VECTOR, MA TRẬN 4.1 Vector
Vector là một dạng đặc biệt của ma trận có một dòng hoặc một cột Trong các ngôn ngữ lập trình khác, sinh viên đã được làm quen với vector thông qua tên gọi danh sách (list) hoặc mảng một chiều ( array)
Để khởi tạo vector dòng chứa các giá trị rời rạc, các phần tử trong vector phải nằm trong cặp ngoặc vuông ([]) và được ngăn cách nhau bởi khoảng trắng hoặc dấu phẩy (,)
Trang 2- Ma trận A có n hàng, m cột được gọi là ma trận cỡ (kích thước) n m và được ký hiệu là
An m
- Phần tử aij (i = 1n, j = 1m) của ma trận An m là phần tử nằm ở hàng thứ i, cột j
Trang 3- Ma trận đơn (số đơn lẻ) là ma trận 1 hàng 1 cột Nói cách khác, mỗi một số vô hướng (số nguyên, số thực hoặc số phức) được coi là một ma trận đơn có kích thước (1x1)
- Một véc tơ hàng là một ma trận có kích thước (1xm) và được biểu diễn như sau:
a11 a12 a1m
- Một véc tơ cột là một ma trận có kích thước (nx1) và được biểu diễn như sau:
a11 a21
… an1
4.2.1 Các qui định để định nghĩa một ma trận:
- Tên ma trận là một chuỗi ký tự dài tối đa 31 ký tự Tên phải bắt đầu bằng chữ cái sau đó có thể là số, chữ cái, một số ký tự đặc biệt trừ các ký tự: +, -, *, /, & Tên đặt bên trái dấu bằng , , bên phải dấu bằng là các phần tử của ma trận
- Bao quanh các phần tử của ma trận bằng dấu ngoặc vuông [aij]
- Các phần tử trong một hàng của ma trận được cách nhau bởi ký tự trắng (space) hoặc dấu phẩy (,)
- Kết thúc một hàng trong ma trận bởi dấu (;) Nói cách khác dấu (;) phân cách giữa các hàng của ma trận
- Nhập thông qua lệnh input:
>> input('Nhap gia tri cho ma tran C = ')
Nhap gia tri cho ma tran C = [1 3 4;4 5 7]
ans =
1 3 4
4 5 7
Chú ý:
- Khi kết thúc một câu lệnh có thể dùng dấu (; ) hoặc không dùng dấu (;)
Nếu dùng dấu (;) câu lệnh được thực hiện nhưng kết quả không hiện ra màn hình
Nếu không dùng dấu ( ; ) câu lệnh được thực hiện và kết quả được hiện ra màn hình
- Trong cả 2 trường hợp trên sau khi câu lệnh được thực hiện (sau khi nhấn enter) kết quả đều được lưu trong không gian làm việc Workspace và có thể sử dụng cho các câu lệnh tiếp theo
Vd:
>>a = [1 2 3;3 2 4;4 5 1];
>> b = [1 2 3;4 5 6;7 8 9]
Trang 44.3 Các phép toán về ma trận
Các phép toán về ma trận có thể thực hiện ngay dòng lệnh hay thực hiện trong M-file
4.3.1 Tạo một ma trận trong matlab
4.3.2 Các thao tác cơ bản đối với ma trận
9753
8642
7531
Z
Trang 6 A = [1 2 3 ; 4 5 6 ; 7 8 9] % Gán lại tất cả các giá trị của ma trận A
Trang 7Các phần tử trong ma trận C được tính như sau: cij = aikbkj
Chia phải ma trận(/) – phép chia thông thường
X=B/A tương đương với việc giải phương trình tuyến tính X*A=B → X = B*inv(A)
Chia trái ma trận (\)
X=A\B tương đương với việc giải phương trình tuyến tính A*X=B → X= inv(A)*B
BẢNG MÔ TẢ MỘT SỐ PHÉP TOÁN TRONG MA TRẬN
Trang 80 1 Nếu A vuông và không duy nhất, không có sai số làm tròn thì X = inv(A)*B về lý thuyết thì giống như X=A\B và Y= B*inv(A) giống như Y=B/A Tuy nhiên, các phép toán sử dụng các phép \ và / thường được sử dụng hơn vì chúng đòi hỏi thời gian tính toán, bộ nhớ ít hơn và có đặc tính xác định sai số tốt hơn.
90
Trang 94.3.8 Tạo các ma trận đặc biệt
ones(m,n) tạo ma trận m hàng và n cột ,với các phần tử đều bằng 1
zeros(m,n) tạo ma trận kích thước m x n, với các phần tử đều bằng 0
eye(m,n) tạo ma trận kích thước m xn với các phần tử đường chéo bằng 1
1 0 0
0 1 0
0 0 1
>> zeros(2,3) ans =
0 0 0
0 0 0
Ma trận đường chéo: diag([các phần tử trên đường chéo chính])
Ma trận thực ngẫu nhiên trong khoảng [0,1]: rand(số dòng, số cột)
0.1270 0.9134
Tương tự như vector, giá trị của một phần tử tại một vị trí bất kỳ trong ma
trận được truy xuất thông qua chỉ số dòng và chỉ số cột
Trích phần tử tại dòng i cột j: A(i,j)
Trích nhiều phần tử: A([danh sách các dòng, danh sách các cột])
Trích đường chéo chính của ma trận: diag(A)
4.3.9 Giải hệ phương trình tuyến tính
Ví dụ 4.11: giải hệ phương trình sau:
Trang 104.2 Cho x = [1 5 2 8 9 0 1] và y = [5 2 2 6 0 0 2], giải thích kết quả các
dòng lệnh sau (% so sánh các phần tử của x và y, nếu đúng thì trả về giá trị 1, s ai trả
Trang 11e A(:) % tạo ma trận cột ghép nối nhau
h [A; A(end,:)] % tạo ma trận ghép ma trận A với từng phần tử hàng cuối cùng của A
i A(1:2,:) % trích xuất ma trận gồm hàng từ 1 đến 2 và đủ các cột
j [A; A(1:2, :)] % tạo ma trận ghép giữa ma trận A và ma trận gồm hàng 1 đến 2
4.5 Cho ma trận A = [2 4 1 ; 6 7 2 ; 3 5 9], viết lệnh Matlab để
a Gán cho vector x là dòng thứ nhất của A
b Gán cho ma trận y là hai dòng còn lại (cuối) của A
c Tính tổng theo dòng ma trận A
d Tính tổng theo cột ma trận A
4.6 Hãy tạo ra ma trận 4x4 có giá trị nguyên nằm trong khoảng [-10,10] , Sau đó:
a Cộng mỗi phần tử của ma trận cho 15
4.8 Giải mạch điện theo phương pháp dòng điện mạch vòng
Trong phưong pháp giải mạch điện dùng phương pháp dòng mạch vòng, chúng ta phải giải
Trang 12Giải hệ phương trình tìm các dòng điện vòng Ia, Ib, Ic Từ đó xác định được các dòng điện nhánh
Yêu cầu : Cho trước các giá trị r1, r2, r3, r4, r5, E1, E2
Thành lập ma trận tổng trở Z, ma trận điện áp E
Tính các dòng điện vòng Ia, Ib, Ic
Tính các dòng điện nhánh I1, I2, I3, I4, I5
4.9 Ứng dụng matlab trong tính toán mạch điện có hỗ cảm
Giải mạch hỗ cảm là một trong những bài toán khó, đòi hỏi sinh viên phải vận dụng nhiều kiến thức chuyên nghành Ngoài ra, sinh viên cần được trang bị về những kỹ năng tính toán số phức
Hệ phương trình của mạch hỗ cảm :
Ngoài phương trình trên ta còn xác định được 2 phương trình:
Từ hệ gồm 4 phương trình ta xác định được 04 giá trị :I1, I2, V1, V2
Ví dụ : Cho f = 50Hz, L1=6, L2 = 6, M = 2, R1=0.4, R2 = 5 Ta lập được hệ phương trình sau :
Yêu cầu : Cho trước các giá trị R1, R2, M, L1, L2, Vs,
- Thành lập ma trận hỗ cảm
- Tính các giá trị dòng điện và điện áp
4.10 Ứng dụng matlab trong tính toán mạch điện có hỗ cảm Tìm dòng trong các nhánh?
s
+
_
V2+
V V I I
R R
jwL jwM
jwM jwL
S
.
0
0 0
1 0 0
0 1 0
1 0
0 1
1
2 1 1
2 1
2 1
Trang 134.11 Ứng dụng matlab để giải mạch điện theo pp dòng điện nhánh , (Sử dụng các phép toán
trong ma trận)
4.12 Ứng dụng matlab để giải mạch điện tìm dòng điện trong các nhánh theo pp dòng điện
mạch vòng (Sử dụng các phép toán trong ma trận)
4.13 Tìm dòng điện trong các nhánh bằng phương pháp dòng điện nhánh (Ứng dụng tính
toán bằng số phức trong matlab, sử dụng ma trận lập trình trong M-file)
4.14 Ứng dụng matlab trong tính toán mạch điện xoay chiều 1 pha
Tìm dòng điện trong các nhánh bằng phương pháp dòng điện nhánh (Ứng dụng tính
toán bằng số phức trong matlab, sử dụng M-file)
Trang 15fis=45 % goc pha =45 do
% Thanh lap ma tran ho cam va ma tran dien ap
Trang 16Chương trình chạy:
Trang 18CHƯƠNG 5 VẼ ĐỒ THỊ
5.1 Vẽ đồ thị trong không gian 2 chiều với hàm plot
Cú pháp :
- Nếu (x,y) là 2 số thực, hàm plot sẽ vẽ một điểm trên mặt phẳng có tọa độ là (x,y)
- Nếu (x,y) là 2 vectơ, hàm plot sẽ vẽ một đường nối các điểm có tọa độ (xi,yi)
5.1.1 Tạo biến bằng cách khai báo dạng vector:
Cú pháp: Tên biến = Điểm đầu : biến chạy: điểm cuối
Ví dụ 5.1 :Vẽ đồ thị điện áp u220sin t / 6trong 2 chu kỳ , f=50Hz
Ta có thể tạo một M- file hoặc đánh trực tiếp các lệnh từ cửa sổ lệnh
% khai báo biến t chạy từ 0 đến 2T với biến chạy là T/100
Khi chạy chương trình sẽ cho kết quả là đồ thị
5.1.2 Tạo biến từ hàm linspace :
Cú pháp: Tên biến = linspace (điểm đầu, điểm cuối, số điểm cần vẽ)
Ví dụ 5.2 :Vẽ đồ thị y = x2 +1
Plot ( x , y )
f=50 T=1/f t=0:T/100:2*T u=220*sin(2*pi*f*t+pi/6) plot(t,u)
Trang 19% Hàm y = x2 +1 với x chạy từ -10 đến 10 với số điểm cần vẽ là 100
Ta có thể tạo một M- file hoặc đánh trực tiếp các lệnh từ cửa sổ lệnh
Khi chạy chương trình sẽ cho kết quả là đồ thị
5.2 Định dạng cho đồ thị
5.2.1 Ghi tiêu đề cho đồ thị
Các hàm vẽ đồ thị đi kèm các với các hàm dán nhãn cho đồ thị như sau :
Đặt đoạn text tại một điểm tuỳ ý trên đồ thị bằng cách click chuột trái chuột
Ví dụ 5.3 : Tạo nhãn cho đồ thị của ví dụ 5.1
Ta có thể tạo một M- file hoặc đánh trực tiếp các lệnh từ cửa sổ lệnh
x=linspace(-10,10,100)
y=x.^2+1
plot(x,y)
Trang 20Khi chạy chương trình sẽ cho kết quả là đồ thị
5.2.3 Đặt tỉ lệ cho 2 trục đồ thị
Để đặt tỉ lệ cho 2 trục toạ độ, sử dụng hàm axis với cú pháp sau
Cú pháp : axis([xmin xmax ymin ymax])
Trục x và y sẽ được định dạng tỉ lệ theo các giá trị từ xmin đến xmax, ymin đến ymax
Khi cần thể hiện mắt lưới, hàm grid sẽ được sử dụng
Trang 21Khi chạy chương trình sẽ cho kết quả là đồ thị đã được định tỉ lệ cho 2 trục
Trang 23Ví dụ 5.7 : Sử dụng hàm plot vẽ đồ thị hệ thống điện áp 3 pha đối xứng, vẽ bằng 2 cách
Thành lập 2 M-file cho 2 cách khác nhau
Kết quả đồ thị điện áp 3 pha đối xứng
hold on ub=220*sin(2*pi*f*t+120*pi/180) plot(t,ub)
hold on uc=220*sin(2*pi*f*t-120*pi/180) plot(t,uc)
Trang 245.4 Thuộc tính nét vẽ
Cú pháp : plot(X1,Y1,LineSpec, )
- Hàm plot có sử dụng thuộc tính nét vẽ LineSpec cho phép thiết lập các thuộc tính của đồ thị Các thuộc tính là :
Line style : định dạng kiểu nét , ví dụ nét chấm, nét đứt,
Line width : định dạng độ rộng nét vẽ, đơn vị là point
Color : định dạng màu của nét vẽ, ví dụ màu xanh, đỏ,
Marker type : định dạng điểm vẽ
Đặt màu và đặt kiểu đường
plot(Tên biến, tên màu, kí hiệu đường, ký hiệu màu)
đỏ xanh lá cây xanh thẫm trắng đen
o
x +
*
- -
Chấm điểm Vòng tròn Dấu x Dấu cộng Dấu sao Nét liền Gạch chấm Gạch gạch
Ví dụ 5.8: Vẽ đồ thị hàm sốys inx và 2
os x
yc trong khoảng từ 0 đến 2π trên cùng
một trục toạ độ, ghi chú thích cho đồ thị
Trang 25subplot(2,1,2) )% cửa sổ đồ hoạ chia ra làm 2 hàng 1
cột, đồ thị t,i được vẽ vào ô số 2
plot(t,i)
x=[0:pi/20:2*pi];
y1=sin(x);
y2=(cos(x)).^2;
hold on %luu giu do thi hien huu
plot(x,y1,'r')% dinh dang duong mau do
plot(x,y2,'b')% dinh dang duong mau xanh lam
Trang 26hold on %luu giu do thi hien huu
subplot(2,1,1)% chia cua so do thi lam hai hang 1 cot,
Trang 275.6 Các hàm vẽ đồ thị khác
5.6.1 Hàm bar : vẽ đồ thị thanh đứng
Cú pháp: bar(x,Y)
- Hàm bar sẽ vẽ các thanh đứng có độ cao là yi tương ứng tại vị trí xi
Ví dụ 5.11 Vẽ đồ thị phụ tải của một xí nghiệp theo số liệu sau :
Trang 28
5.6.2 Hàm pie : vẽ đồ thị dạng hình quạt
Cú pháp : pie(X)
- Hàm pie sẽ vẽ đồ thị dạng quạt với diện tích tỉ lệ với phần trăm
Ví dụ 5.12: Cho xí nghiệp có điện năng tiêu thụ trong hàng tháng được tính toán theo
giờ cao điểm, thấp điểm và trung bình như sau :
Điện năng Cao điểm Thấp điểm Trung bình
x=[15000 35000 75000]
pie(x)
Trang 295.6.3 Hàm fplot : vẽ đồ thị hàm số được cho dưới dạng tổng quát
fplot(i,[0 0.04],' b')% đường gạch gạch màu xanh lam
fplot(p,[0 0.04],'- m')% đường gạch chấm màu đỏ tươi
Trang 335.5 Vẽ đồ thị hàm y = sinx và y = cos2x trên cùng một cửa sổ đồ thị
5.6 Vẽ đường cong parabol y = ax2+b với a,b nhập từ bàn phím
5.7 Vẽ đường tròn tâm (3,2) bán kính r =3
5.8 Vẽ đồ thị y = sinx, y = cosx,y=1-sinx,y=sin(cx) trên cùng một cửa sổ đồ thị, ghi chú
trên đồ thị
5.9 Khảo sát quỹ đạo vectơ không gian
Cho các đại lượng 3 pha v a , v b , v c cân bằng :
Phép biến hình vec tơ không gian được định nghĩa là :
)(v a a v b a2v c k
Với :
2
32
1
3 / 2
j e
- Vẽ đồ thị của hệ thống điện áp 3 pha đối xứng
- Vẽ đồ thị của quỹ đạo vectơ không gian
- Vẽ đồ thị của hệ thống điện áp 3 pha và quỹ đạo vectơ không gian chung trong 1
đồ thị ( sử dụng subplot)
- Đặt các chú thích trong các đồ thị
Sinh viên có thể tham khảo và thực hiện giống hình vẽ dưới
Trang 34Giả sử các vec tơ va, vb, vc được cho bởi biểu thức :
n
n nw t b nw t a
a t f
1
0 1
0
)(
0 0
0
) sin(
) (
2 , ) cos(
) (
2 ,
) (
1
0 0
0
t T
t n
t T
t n
t T
t
dt t nw t
f T b dt t nw t
f T a dt t f T a
n n N
n
n t
nw b
t nw a
0 1
0
2sin(
2)
2/1()sin(
)cos(
)
Với N càng lớn, thì độ chính xác của f càng cao, điều đó được kiểm chứng khi
quan sát dạng của f khi N=7 và N=5000 theo 2 đồ thị ở dưới
Trang 35Vi (t) +
)(
100 1 (
) 1000 1
( 10 )
(
) ( ) (
w j w j
w j w
V
w V w H
Sử dụng các hàm vẽ đồ thị của Matlab, sinh viên thực hiện :
- Vẽ đồ thị của hàm xung vuông bằng cách tổng hợp theo chuỗi Fourier
- Kiểm chứng với N=7 và N=5000 như 2 hình vẽ trên
5.12 Tìm hiểu về giản đồ Bode
Hàm truyền H(w) thể hiện mối tương quan giữa tín hiệu ngõ ra và tín hiệu đầu vào
Độ lợi và góc dịch pha của hàm truyền :
Như vậy, biết thông tin về hàm truyền, thì ra sẽ dễ dàng xác định được đáp ứng ngõ ra theo tín hiệu ngõ vào
Giản đồ Bode sẽ biểu diễn biên độ và góc pha của hàm truyền theo tần số :
A
B w
V
w V w
|
| ) (
|
| ) (
Trang 36100 101 102 103 104 105-30
-20
-10
0 10 20
-1.5
-1 -0.5
0
Sử dụng các hàm vẽ đồ thị của Matlab, sinh viên thực hiện :
- Vẽ giản đồ Bode của hàm truyền trên theo miền tần số w từ 10-100000
- Xác định độ lợi pha và biên độ khi w=1000 rad/s
- Xác định tần số mà độ lơi về biên độ là 10
- Xác định tần số mà góc pha là -150
5.13 Khảo sát các đường đặc tuyến thời gian của rơ le
Trong hệ thống bảo vệ rơle, thông số mang mang ý nghĩa quyết định là các đường đặc tuyến dòng điện thời gian của rơle- TCC Các đường đặc tuyến này thể hiện mối quan hệ của thời gian tác động của rơle phụ thuộc vào độ lớn của dòng điện ngắn mạch sự cố
Xét đường đặc tuyến của rơle :
Trục hoành - nằm ngang : Là trục biểu diễn giá trị % của dòng điện so với dòng điện cài đặt
Trục tung - thẳng đứng : Là trục biểu diễn thời gian tác động của rơ le – đơn vị giây
Ví dụ :
Dòng điện cài đặt In = 500A
Dòng sự cố Isc = 5000A
Trang 37Khi đó :
Dựa vào đường đặc tuyến, ta xác định được thời gian tác động là : T= 0.05s Hiện nay, có 2 dạng đường đăc tuyến chuẩn đang được sử dụng trên thế giới theo 2 tiêu chuần là IEC và IEEE
Inverse
1
14.0
02
02
I T
Very Inverse
1
5.13
I T
I T
%1000100
.500
Trang 3896
Sinh viên thực hiện theo các yêu cầu :
- Sử dụng Matlab, vẽ các đường đặc tuyến của rơle theo 2 tiêu chuẩn IEC và IEEE Nhận xét về các đường đặc tuyến
- Dựa trên đồ thị câu 1, xác định thời gian cắt ứng với % dòng sự cố là 200%
HƯỚNG DẪN BÀI TẬP CHƯƠNG 5
Trang 40TÀI LIỆU THAM KHẢO
[1] Giáo trình “Tin học ứng dụng ngành Điện” trường Đại học Công Nghiệp Tp Hồ Chí Minh
[2] Lập trình Matlab – Nguyễn Hoàng Hải, Nguyễn Khắc Kiểm, Nguyễn Trung Dũng, Hà Trần Đức NXB KH&KT Hà Nội, 2003
[3] Matlab & Simulink dành cho kỹ sư điều khiển tự động, Nguyễn Phùng Quang, NXB KHKT
[4] https://www.google.com.vn