The application of Matlab (Matrix - Laboratory) helps students as well as electric technical staff solve electric problems quickly, accurately; especially for electric circuit which has a large number of nodes and branches. The use of matrix to illustrate basic system of equations: Branch currents, round currents, potential nots... are important basis for analysing Matlab - used electric circuit by computers. Based on research into theory of algebraic matrix, circuit structure and application of Matlab software, we have established algorithm and programming software to solve electric circuit problems, using basic methods: branch current, round current, potential node. The program try run successfully and produced results similar to those of manual calculation, while saved a lot of time. We hope this article will help many people, especially Electric Engineering students to solve electric problems quickly and effectively.
Trang 1ứng dụng matlab giải mạch điện tuyến tính ở chế độ xác lập
Application of Matlab in solving linear electric circuit in the defining mode
Nguyễn Thị Hiên1, Ngô Thị Tuyến1
SUMMARY The application of Matlab (Matrix - Laboratory) helps students as well as electric technical staff solve electric problems quickly, accurately; especially for electric circuit which has a large number of nodes and branches The use of matrix to illustrate basic system of equations: Branch currents, round currents, potential nots are important basis for analysing Matlab - used electric circuit by computers
Based on research into theory of algebraic matrix, circuit structure and application of Matlab software, we have established algorithm and programming software to solve electric circuit problems, using basic methods: branch current, round current, potential node The program try run successfully and produced results similar to those of manual calculation, while saved a lot of time
We hope this article will help many people, especially Electric Engineering students
to solve electric problems quickly and effectively
Key words: Branch circuits, round circuits, potential nodes, matrix
1 ĐặT VấN Đề1
Lý thuyết mạch điện là một môn học rất
quan trọng, là cơ sở để nghiên cứu các môn cơ
sở khác và các môn chuyên môn của ngành
Kỹ thuật điện Với số lượng bài tập lớn, khối
lượng tính toán nhiều, và nhất là phân tích
mạch điện phức tạp có nhiều nút, nhánh, nên
khi giải các bài toán thực tế và kiểm tra kết
quả tính, sinh viên sẽ phải tốn nhiều công sức
và dễ nhầm lẫn Trước kia, sinh viên ngành Kỹ
thuật điện thường dùng các công cụ hỗ trợ thủ
công: thước tính Logarit, sau nữa là máy tính
bỏ túi Ngày nay, tin học và máy tính điện tử
đã trở thành công cụ đắc lực giúp sinh viên
giải quyết nhanh và thuận lợi các bài toán kỹ
thuật Tuy nhiên, với các ngôn ngữ lập trình:
1 Khoa Cơ Điện, Đại học Nông nghiệp I
Pascal, C, , việc phân tích mạch thường chỉ dừng lại ở các bài toán mạch điện tuyến tính
có thông số thực, điều này làm mất đi tính tổng quát của bài toán Hơn nữa, đòi hỏi người
sử dụng bắt buộc phải có kiến thức về lập trình Sự ra đời của phần mềm ứng dụng Matlab đã mở ra nhiều triển vọng trong việc giải quyết các bài toán kỹ thuật Với cấu trúc ngắn gọn, gần với tư duy toán học và đặc biệt
xử lý dễ dàng đối với số phức, phần mềm này
là công cụ mạnh để giải quyết nhanh và chính xác các bài toán phân tích mạch điện
2 PHƯƠNG PHáP NGHIÊN CứU
Từ những nghiên cứu lý thuyết về đại số
ma trận, cấu trúc graph ứng dụng trong lý thuyết mạch điện kết hợp với khai thác các tiện ích của phần mềm Matlab, chúng tôi xây
Trang 2dựng thuật toán và lập trình giải các bài toán
mạch điện bằng các phương pháp cơ bản:
Phương pháp dòng nhánh, Phương pháp dòng
vòng và điện thế điểm nút
3 KếT QUả NGHIÊN CứU
Bài toán đặt ra: biết sơ đồ cấu trúc của
mạch (gồm m nhánh, n nút), biết thông số các
phần tử, yêu cầu xác định dòng điện (điện áp)
sinh ra trong các nhánh, từ đó có thể kiểm tra
cân bằng công suất
3.1 Thiết lập các ma trận mô tả cấu trúc
mạch điện
a) Ma trận nhánh - nút
Ma trận nhánh - nút A có số hàng là số
nhánh, số cột là số nút độc lập của mạch điện
Aij = 1 khi j là nút đầu của nhánh i;
Aij = -1 khi j là nút cuối của nhánh i;
Aij = 0 trong các trường hợp khác
b) Ma trận nhánh -vòng]
Ma trận nhánh - vòng C có số hàng là số
nhánh, số cột là số vòng độc lập của mạch
điện
Cij = 1 khi nhánh i cùng chiều vòng j
Cij = -1 khi nhánh i ngược chiều vòng j
Cij = 0 trong trường hợp nhánh i không thuộc vòng j
Ví dụ: Cho graph gồm 6 nhánh, 4 nút như hình 1:
6
III
3
2
1
0
Hình 1 Ví dụ về một graph
Ta có thể xây dựng được các ma trận cấu trúc của mạch điện trên như sau:
A=
ư
ư
ư
ư
ư
ư
1 0 1
1 1 0
0 1 1
1 0 0
0 1 0
0 0 1
Nhánh; C =
ư
ư
ư
ư
ư
1 0 0
1 1 0
1 0 1
0 1 0
0 1 1
0 0 1
Nhánh
Ma trận A, C cho biết cấu trúc của graph:
Các phần tử trên một hàng của A cho
biết nhánh đó nối giữa các điểm nào với
nhau, ví dụ, hàng 2: nhánh 2 nối nút cơ sở
với nút 2, trong mạch điện nó chỉ rõ chiều
dương của dòng điện trên nhánh ấy đồng thời cũng cho biết điện áp trên nhánh bằng hiệu số thế của cặp nút nào (ví dụ u2 = -ϕ2) Các phần tử trên một cột của một nút chỉ rõ tại nút đó có những nhánh nào đi ra khỏi
Trang 3ứng dụng Matlab giải mạch điện tuyến tính ở chế độ xác lập nút (giá trị 1) và nhánh nào đi vào nút (giá
trị -1)
Đối với ma trận C, các phần tử trên mỗi
hàng chỉ rõ nhánh đó có tham gia vào vòng
không, thuận chiều hay ngược chiều vòng
Còn các phần tử trên một cột chỉ rõ vòng đó
gồm những nhánh nào, cùng chiều hay ngược
chiều vòng
3.2 Biểu diễn các phương pháp tính cơ bản
bằng ma trận
3.2.1 Phương pháp dòng nhánh
Hệ phương trình dòng nhánh là hệ phương
trình viết theo định luật Kiêchôp I và II (
Nguyễn Bình Thành & cs, 1972):
=
=
∑
k k
k
k
E I
Z
0 I
&
&
&
(3-1a)
k
I&, Zk, E&k - Dòng điện, tổng trở, sức
điện động trên các nhánh
Nếu gọi I&nh - ma trận cột, biểu diễn
dòng điện trên các nhánh;
nh
U& - ma trận cột, biểu diễn điện áp trên
các nhánh;
Znh - ma trận vuông kích thước m x m,
các phần tử trên đường chéo chính là tổng trở
riêng các nhánh, Zij là tổng trở tương hỗ giữa
nhánh i và nhánh j;
nut
J& - ma trận cột, biểu diễn nguồn dòng
(phụ tải) ở các nút (độc lập), lấy dấu (+) khi đi
vào nút, nguợc lại lấy dấu (-);
nh
E& - ma trận cột các sức điện động trên
các nhánh, lấy dấu (+) khi cùng chiều các
dòng nhánh, nguợc lại lấy dấu (-)
Thì có thể viết hệ (3-1a) dưới dạng ma
trận:
=
=
nh E T C nh I nh Z T C
nut J nh I T A
&
&
&
&
(3-1b)
Trong đó: AT, CT - Các ma trận chuyển vị của ma trận A, C
Đặt: D =
nh Z T C T A
(3-1c)
G =
nh E T C nut J
&
&
(3-1d)
Khi đó:
D.I& nh = G (3-1e) Hay: I& nh = D-1.G (3-2)
D-1
- Ma trận nghịch đảo của ma trận D 3.2.2 Phương pháp dòng vòng
Hệ phương trình dòng vòng tổng quát, [2]:
= +
+ +
= +
+ +
= +
+ +
∑
∑
∑
p k Vp
pp 2
V 2 1 V 1
2 k Vp
p 2
V 22 1 V 21
1 k Vp
p 2
V 12 1 V 11
E I
Z
I Z I Z
E I
Z
I Z I Z
E I
Z
I Z I Z
&
&
&
&
&
&
&
&
&
&
&
&
(3-3a) Dạng ma trận:
=
Vp
2 V
1 V
Vp
2 V
1 V
pp 2
1
p 22
21
p 12
11
E
E E
I
I I Z
Z Z
Z
Z Z
Z
Z Z
&
&
&
&
&
&
(3-3b)
Hay viết gọn lại:
ZV.I& V = E&V (3-3c) Trong đó:
Trang 4ZV =
pp 2
1
p 22
21
p 12
11
Z
Z Z
Z
Z Z
Z
Z Z
-
ma trận tổng trở vòng, [2], có thể tính
theo ma trận tổng trở nhánh: Zv = CT.Znh.C
V
I& - ma trận cột dòng điện vòng
V
E& - ma trận sức điện động vòng, E&V =
CTE&nh
Trường hợp có nguồn dòng J&nh trong các nhánh:
V
E& = CT ( E&nh - Znh.J&nh) (3-3d) Khi đó:
V I& = ZV
-1
Dòng điện nhánh:
nh I& = C I& V + J&nh (3-5)
Điện áp nhánh:
nh
U& = Znh I& nh - E&nh (3-6) 3.2.3 Phương pháp thế nút
Hệ phương trình thế nút tổng quát, [2]:
+
= +
ư
ư
ư
+
=
ư
ư +
ư
+
=
ư
ư
ư
∑
∑
∑
∑
∑
∑
ư
ư
ư
ư
ư
ư
ư
ư
ư
ư
p k k 1
n k 1
n 1 n , 1 n 2
22 n 1 11 n
2 k k 2
k 1
n 1 n 2
22 1 21
1 k k 1
k 1
n 1 n 2
12 1 11
Y E J
Y
Y Y
Y E J
Y
Y Y
Y E J
Y
Y Y
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
ϕ ϕ
ϕ
ϕ ϕ
ϕ
ϕ ϕ
ϕ
(3-7a)
Dùng ma trận:
=
ư
ư
ư
ư
ư
ư
ư
ư
ư
ư
ư
ư
ư
1 n
2 1
3
2 1
1 n , 1 n 12
n 11
n
1 n 22
21
1 n 12
11
J
J J
Y
Y Y
Y
Z Y
Y
Y Y
ϕ
ϕ ϕ
&
&
&
(3-7b)
Hay:
Trong đó: Ynót - ma trận tổng dẫn nút, có thể xác định theo ma trận tổng trở nhánh
Ynót= AT.Znh
-1 A= AT.Ynh.A
dnut
J& - Ma trận nguồn dòng tại các nút
dnut
J& = J&nut - AT.Ynh E&nh (3-7d)
Từ (3-7c), suy ra: ϕ& = Ynut-1 J&dnut (3-8)
Ma trận dòng điện nhánh: I& nh= Ynh ( U&nh + E&nh) (3-9)
Ma trận điện áp nhánh: U& = A ϕ& (3-10)
Trang 5ứng dụng Matlab giải mạch điện tuyến tính ở chế độ xác lập
Từ điện áp và dòng điện nhánh, tính được công suất nhánh (từ đó có thể kiểm tra điều kiện cân bằng công suất):
Với: conj (Inh) là ma trận liên hợp phức của ma trận dòng nhánh
3.3 Lập trình giải mạch điện bằng Matlab
Matlab - chữ viết tắt của Matrix
Laboratory - thư viện ma trận, là một phần
mềm ứng dụng, dùng cho các tính toán dựa
trên cơ sở dữ liệu về ma trận (Nguyễn Hoài
Sơn & cs, 2000) Với hàng loạt các hàm
toán học đã được xác định trước, Matlab cho
phép lập chương trình bằng các lệnh đơn
giản, ngắn gọn, cấu trúc gần với tư duy toán học Chương trình có thể lập trình trên cửa
sổ Command Window hoặc lưu dưới dạng các file trong cửa sổ soạn thảo (m-file) cho các lần sử dụng sau
a) Sơ đồ thuật toán Sơ đồ khối mô tả thuật toán được cho ở Hình 2
Phương pháp thế nút Phương pháp dòng vòng
Phương pháp dòng nhánh
BEGIN
Nhập số liệu bài toán Nhập các ma trận cấu trúc
D=[A’;C’*Znh]
G=[Jnut;C’*Enh]
Inh=D\G
Unh=Znh*Inh-Enh
Snh=Unh.*conj (Inh)
END
Jdnut=Jnut-A'*Ynh*Enh Ynh=inv (Znh)
Vnut=Ynut\Jdnut
Unh=A*Vnut
Inh=Ynh* (Unh+Enh)
Ynut=A’*Ynh*A;
Zv=C’*Znh*C;
Ev=C’* (Enh-Znh*Jnh)
Iv = Zv\Ev
Inh=C*Iv + Jnh
Trang 6Hình 2 Sơ đồ khối mô tả thuật toán của bài toán phân tích mạch điện
b) áp dụng
Cho sơ đồ như hình 3, biết: R1 = 10 Ω; X1
= 10 Ω; R2 = 5 Ω ; X2 = 5 Ω; R3 = 30 Ω ; X3 =
40 Ω; hỗ cảm giữa các nhánh X13 = 20Ω; X23
= 10Ω, sức điện động E&1= 100 V; E&2=
100∠π/6 V; J&= 2∠π/3 A Hãy tính dòng điện
trong các nhánh bằng các phương pháp dòng
nhánh, dòng vòng, thế nút
Số liệu đầu vào của bài toán là tổng trở,
nguồn sức điện động các nhánh, nguồn dòng
bơm vào các nút (nếu có), trên cơ sở đó có
thể lập các ma trận tổng trở nhánh, sức điện
động nhánh, các ma trận cấu trúc Bài toán
có thể giải bằng phương pháp dòng nhánh,
phương pháp dòng vòng hoặc phương pháp
điện thế nút
Để giải bài toán, ta viết các lệnh sau trên
MATLAB command window hoặc trong cửa
sổ soạn thảo (m-file):
1
0
R2
R3
R1
J
E2
jX3
*
*
*
jX13 jX23
E1
Hình 3 Sơ đồ mạch điện
Clc
%Nhap so liêu bai toan
Z1=10 + j*10;
Z2=5 + j*5;
Z3=30 + j*40;
E1= 100;
E2= 100*exp (j*pi/6);
J= 2*exp (j*pi/3);
%Lap cac ma tran Enh=[E1;E2;0];
Jnut=[J];
Znh (1,1)=Z1; Znh (2,2)=Z2; Znh (3,3)=Z3; Znh (1,2)=0; Znh (2,1)=Znh (1,2);
Znh (1,3)=-j*20; Znh (3,1)=Znh (1,3);
Znh (2,3)=-j*10; Znh (3,2)=Znh (2,3);
A = [-1;-1;1];
C=[1 0;0 1;1 1];
+%Giai bai toan bang phuong phap dong nhanh
disp ('1.Phuong phap dong nhanh');
D=[A';C'*Znh];
G=[Jnut;C'*Enh];
Inh=D\G Unh=Znh*Inh-Enh Snh=Unh.*conj (Inh)
%Giai bai toan bang phuong phap dong vong disp ('2.Phuong phap dong vong');
Jnh=[0;0;J];
Zv=C'*Znh*C;
Ev=C'* (Enh-Znh*Jnh);
Iv = Zv\Ev Inh=C*Iv + Jnh Unh=Znh*Inh-Enh Snh=Unh.*conj (Inh)
% Giai bai toan bang phuong phap the nut disp ('3.Phuong phap the nut');
Ynh=inv (Znh);
Ynut=A'*Ynh*A;
Jdnut=Jnut-A'*Ynh*Enh;
Trang 7ứng dụng Matlab giải mạch điện tuyến tính ở chế độ xác lập Vnut=Ynut\Jdnut
Unh=A*Vnut
Inh=Ynh* (Unh+Enh)
Snh=Unh.*conj (Inh)
Trên màn hình MATLAB command window
sẽ xuất hiện lần luợt:
1 Phuong phap dong nhanh
Inh =
0.9309 - 2.0788i
1.4173 - 0.4097i
3.3482 - 0.7565i
Unh =
-85.0321 -78.4440i
-85.0321 -78.4440i
85.0321 +78.4440i
Snh =
1.0e+002 *
0.8392 - 2.4979i
-0.8838 - 1.4602i
2.2537 + 3.2697i
2.Phuong phap dong vong
Iv =
0.9309 - 2.0788i
1.4173 - 0.4097i
Inh =
0.9309 - 2.0788i
1.4173 - 0.4097i
3.3482 - 0.7565i
Unh =
-85.0321 -78.4440i
-85.0321 -78.4440i
85.0321 +78.4440i
Snh =
1.0e+002 *
0.8392 - 2.4979i
-0.8838 - 1.4602i
2.2537 + 3.2697i
3.Phuong phap the nut
Vnut =
85.0321 +78.4440i Unh =
-85.0321 -78.4440i -85.0321 -78.4440i 85.0321 +78.4440i Inh =
0.9309 - 2.0788i 1.4173 - 0.4097i 3.3482 - 0.7565i Snh =
1.0e+002 * 0.8392 - 2.4979i -0.8838 - 1.4602i 2.2537 + 3.2697i
4 KếT LUậN Cấu trúc của mạch điện bất kỳ có m nhánh, n nút đều có thể được mô tả bởi ma trận nút - nhánh A và ma trận nhánh - vòng C, như vậy ta có thể giải bài toán Lý thuyết mạch một cách đơn giản và dễ dàng bằng cách giải
hệ phương trình các ma trận
Lập trình bằng Matlab có cấu trúc đơn giản, ngắn gọn, thuận tiện cho người sử dụng Bài toán cho kết quả nhanh, chính xác, có thể tính với số phức một cách dễ dàng, đây là ưu
điểm nổi bật của Matlab so với các ngôn ngữ lập trình khác
Chương trình viết không thiên về lập trình tin học, gần gũi với lý thuyết của môn học, giúp sinh viên củng cố kiến thức môn học
đồng thời có điều kiện kiểm tra kỹ năng tính toán của bản thân
Tài liệu tham khảo Nguyễn Hoài Sơn và cộng sự (2000), ứng dụng Matlab trong tính toán kỹ thuật NXB Đại học quốc gia TP Hồ Chí Minh
Nguyễn Bình Thành và cộng sự (1972), Cơ sở
lý thuyết mạch, quyển 1 NXB Đại học
Trang 8vµ Trung häc chuyªn nghiÖp, Hµ Néi, tr 25- 30, 99-108
Trang 9ứng dụng Matlab giải mạch điện tuyến tính ở chế độ xác lập