1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

UNG DUNG MATLAB DE PHAN TICH MACH DIEN

28 319 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 348 KB

Nội dung

Hãy lập chương trình tính dòng điện các nhánh, điện áp trên các phần tử, công suất thu và công suất phát của mạch... Giới thiệu chung MATLAB là 1 phần mềm ứng dụng chạy trong môi trường

Trang 1

CHƯƠNG 11

ỨNG DỤNG MATLAB ĐỂ PHÂN TÍCH MẠCH ĐIỆN

11.1 TỔNG QUAN VỀ MATLAB (xem phụ lục)

11.2 PHÂN TÍCH MẠCH TUYẾN TÍNH Ở CHẾ ĐỘ XÁC LẬP

11.2.1 Bài toán:

Các dữ liệu cho trước bao gồm:

- Sơ đồ mạch

- Các thông số của các phần tử (Điện trở, điện cảm, điện dung, hỗ cảm)

- Các thông số của nguồn áp và nguồn dòng (nếu có)

 Các thông số cần tính:

- Dòng điện các nhánh

- điện áp trên các phần tử

- Công suất tác dụng và công suất phản kháng

11.2.2 Xây dựng thuật toán phân tích mạch

Để xây dựng thuật toán giải bài toán mạch này, ta chuyển phương trình mạch sang số phức, khi đó hệ phương trình vi phân mô tả mạch sẽ trở thành hệ phương trình đại số và dễ dàng giải được bằng bất kỳ ngôn ngữ lập trình nào như Pascal, C

Xét mạch điện tổng quát gồm m nhánh, n nút Ta sẽ lập được hệ gồm m phương trình vi phân như sau:

1

C

(11.3)

Trang 2

Hình 11.1: Lưu đồ thuật toán phân tích mạch

điện tuyến tính

Kết thúc

Tính công suất P, Q, S

Tính điện áp trên các phần tử

C = 0

Trang 3

11.3 MỘT SỐ VÍ DỤ

11.3.1 ví dụ 1: Xét mạch điện có ba nhánh hai nút như hình 11.2 Hãy lập chương trình tính dòng

điện các nhánh, điện áp trên các phần tử, công suất thu và công suất phát của mạch.

Giải

Theo phương pháp dòng điện các nhánh, với giả thiết chiều dòng điện các nhánh như hình 11.2,

ta viết được hệ ba phương trình dưới dạng số phức:

& & &

& & &

& & &

% Chuong trinh phan tich mach o che do xac lap

disp('Hay nhap cac thong so cua mach dien, neu thong so nao khong co thi nhap bang khong')

disp(' Don vi R(om) L(mH) C(10^-6F)' TS(rad/S))

disp(' -')

disp('Nhanh so 1')

R1=input('nhap gia tri Dien tro R1= ');

L1=input('nhap gia tri Dien cam L1= ');

C1=input('nhap gia tri Dien dung C1= ');

E1=input('nhap gia tri E1 = ');

anpha1=input('nhap gia tri goc pha cua E1(don vi: do) anpha = ');

anpha1=anpha1*pi/180; % Doi tu do sang radian

1

Hình 11.2

Trang 4

L2=input('nhap gia tri Dien tro L2= ');

C2=input('nhap gia tri Dien tro C2= ');

E2=input('nhap gia tri E2 = ');

anpha2=input('nhap gia tri goc pha cua E2 (don vi: do) anpha = ');

anpha2=anpha2*pi/180;% Doi tu do sang radian

R3=input('nhap gia tri Dien tro R3= ');

L3=input('nhap gia tri Dien tro L3= ');

C3=input('nhap gia tri Dien tro C3= ');

E3=input('nhap gia tri E3 = ');

anpha3=input('nhap gia tri goc pha cua E3 (don vi do) anpha = ');

anpha3=anpha3*pi/180;;% Doi tu do sang radian

disp('Tan so goc')

TS=input('nhap gia tri tan so goc TS= ');

%Tinh toan cac thong so

% Phai sua doi cach tinh tuy thuoc vao quan he

% dien tro // hay noi tiep voi tu va dien cam

% Thuat toan phai sua doi dau cho phu hop voi chieu dong dien va E1,E2,E3

A=[1 1 -1;Z1 0 Z3;0 Z2 Z3]; % Lap ma tran A

C=inv(A); % Ma tran nghich dao cua A

B=[0;E1;E2]; % Lap ma tran B

I=C*B % Ma tran dong dien

disp('dong dien I1')

I1=I(1,1)

disp('dong dien I2')

I2=I(2,1)

Trang 5

disp('dong dien I3')

% Tinh toan cong suat

disp(' Cong suat phat ')

Tính dòng điện qua nhánh 4 bằng phương pháp máy phát

điện tương đương; công suất tác dụng và phản kháng của mạch.

Giải

Tách riêng nhánh 4, biến đổi phần còn lại thành máy phát điện tương đương (hình 11.3b), tính thông số của máy phát điện tương đương sau đó tính dòng điện nhánh 4 và công suất của mạch Chương trình được viết trên Matlab như sau:

Trang 6

%Vi du 2: May phat dien tuong duong

% Nhap cac thong so:

disp('Cong suat mach tieu thu')

I4=real(I4)-imag(I4)*i; %Lay lien hop cua dong dien I4

Trang 7

Cong suat mach tieu thu

S = 7.0729 + 3.5364i

P = 7.0729

Q = 3.5364

11.3.3 Ví dụ 3: Cho mạng 4 cực với các tham số như hình 11.4 Hãy xác định các tham số của ma

trận [A] của mạng; Tìm sơ đồ thay thế tương đương hình T và hình ∏ của mạng.

Coi mạng 4 cực trên gồm 2 mạng 4 cực nối xâu chuỗi nhau: Mạng thứ nhất là mạng hình ∏ có các thông số là: Zd = j100( Ω ); Zn1 = Zn2 = j150( Ω ); mạng thứ 2 là mạng hình T có các thông số: Zd1 = -j120( Ω ); Zd2 = -j100( Ω ); Zn = j150( Ω )

Giải

Chương trình được viết trên Matlab như sau:

%Vi du 3: Mang 4 cưc

% Cac thong so da cho

%Mang thu nhat

Trang 8

- Ma trận A của mạng thứ nhất:

A1 = 1.0e+002 * 0.0033 0 - 1.0000i

0 - 0.0001i 0.0033

- Ma trận A của mạng thứ 2:

A2 = 1.0e+002 * 0.0020 0 - 1.4000i

0 - 0.0001i 0.0033

- Ma trận A của mạng 4 cực

A = -0.6000 0 -80.0000i

0 - 0.0040i -1.1333

- Thông số của sơ đồ tương đương hình T

Zd1 = 0 -4.0000e+002i Zd2 = 0 -5.3333e+002i

Zn = 0 +2.5000e+002i

- Thông số của sơ đồ tương đương hình Π

Zd = 0 -80.0000i Zn1 = 0 +37.5000i Zn2 = 0 +50.0000i

11.3.4 Ví dụ 4: Viết chương trình vẽ các đặc tính tần điện áp trên các phần tử của nhánh R-L-C nối

tiếp, biết R = 10( Ω ); L = 100(mH); C = 1000( µ F)

Giải

Lập chương trình trên Matlab:

%ví du 4: ve dac tinh tan cua nhanh R-L-C noi tiep

% cac thong so da cho

Trang 9

plot(t,UC)%Ve dac tinh tan dien ap tren dien dung

Cho chạy chương trình ta thu được các đặc tính tần như hình 11.5

0 100 200 300 400 500 0

20 40 60 80 100 120

Trang 10

PHỤ LỤCMỘT SỐ KIẾN THỨC CƠ BẢN VỀ MATLABPhần 1 TỔNG QUAN VỀ MATLAB

1.1 Giới thiệu chung

MATLAB là 1 phần mềm ứng dụng chạy trong môi trường Windows do hãng MathWorks sản xuất vàcung cấp, nó tích hợp các công cụ rất mạnh phục vụ tính toán, lập trình, thiết kế, mô phỏng, V.V trong mộtmôi trường rất dễ sử dụng trong đó các bài toán và các lời giải được biểu diễn theo các ký hiệu toán họcquen thuộc Có thể nói Matlab là ngôn ngữ của kỹ thuật, đang được rất nhiều các nhà khoa học, các cán bộ

kỹ thuật, giảng viên và sinh viên các trường đại học kỹ thuật ưa dùng Các ứng dụng điển hình là:

- Toán học và tính toán

- Phát triển thuật toán

- Tạo mô hình, mô phỏng và tạo giao thức

- Khảo sát, phân tích số liệu

- Đồ hoạ khoa học kỹ thuật

- Phát triển ứng dụng, gồm cả xây dựng giao diện người dùng đồ hoạ GUI

- Thiết kế các hệ thống điều khiển trong thời gian thực

Matlab cung cấp một họ các phương pháp theo hướng chuyên dụng hóa được gọi là các Toolbox(hộp công cụ) Các Toolbox cho phép người sử dụng học và áp dụng các kỹ thuật chuyên dụng cho một lĩnhvực nào đó Toolbox là một tập hợp toàn diện các hàm của Matlab (M-file) cho phép mở rộng môi trườngMatlab để giải các lớp bài toán cụ thể Các lĩnh vực trong đó có sẵn các Toolbox bao gồm: Xử lý tín hiệu, hệthống điều khiển, logic mờ, mạng nơron, mô phỏng

Hệ thống Matlab gồm có 5 phần chính:

- Ngôn ngữ Matlab: Là một ngôn ngữ ma trận, mảng cấp cao với các câu lệnh, hàm, cấu trúc dữ liệuvào / ra, các tính năng lập trình hướng đối tượng Nó cho phép lập trình các ứng dụng từ nhỏ đến các ứngdụng lớn, từ các ứng dụng đơn giản đến các ứng dụng phức tạp

- Môi trường làm việc của Matlab: Đây là một bộ các công cụ và phương tiện mà bạn sử dụng với tưcách là người dùng hoặc người lập trình Matlab Nó bao gồm các phương tiện cho việc quản lý các biếntrong không gian làm việc Workspace cũng như xuất nhập khẩu dữ liệu Nó cũng bao gồm các công cụ đểphát triển, quản lý, gỡ rối và định hình M-file, ứng dụng của Matlab

- Xử lý đồ họa: Đây là một hệ thống đồ họa của Matlab Nó bao gồm các lệnh cao cấp cho trực quanhóa dữ liệu hai chiều và ba chiều, xử lý ảnh, ảnh động, Nó cũng cung cấp các lệnh cấp thấp cho phép bạntùy biến giao diện đồ họa cũng như đi xây dựng một giao diện đồ họa hoàn chỉnh cho ứng dụng Matlab củamình

- Thư viện toán học Matlab: Đây là một tập hợp khổng lồ các thuật toán tính toán từ các hàm cơ bảnnhư: cộng, trừ, nhân, chia, sin, cos, tang, số học phức tới các hàm phức tạp hơn như: nghịch đảo, ma trận,tìm trị riêng của ma trận, phép biến đổi Fourier nhanh

- Giao diện chương trình ứng dụng Matlab API (Application Program Interface): Đây là một thư việncho phép bạn viết các chương trình C và Fortran tương thích với Matlab

Simulink là một chương trình đi kèm với Matlab, là một hệ thống tương tác với việc mô phỏng các

hệ thống động học phi tuyến Nó là một chương trình đồ họa sử dụng chuột để thao tác cho phép mô hìnhhóa một hệ thống bằng cách vẽ một sơ đồ khối trên màn hình Nó có thể làm việc với các hệ thống tuyếntính, phi tuyến, hệ thống liên tục theo thời gian, hệ thống gián đoạn theo thời gian, hệ thống đa biến

1.2 Không gian làm việc của Matlab (Matlab Workspace)

Không gian làm việc của Matlab chứa một tập các biến (các mảng được đặt tên) mà bạn có thể thao

tác từ dòng lệnh của Matlab Có thể sử dụng lệnh Who và whos để xem nội dung của workspace

Để xóa tất cả các biến đang tồn tại trongWorkpace, gõ >>clear

Trang 11

Matlab có các lệnh cho phép người sử dụng lưu lại nội dung của Workpace ở bất kỳ thời điểmnào trong phiên làm việc và sau đó có thể nạp dữ liệu trở lại Matlab trong phiên làm việc đó hoặc trongphiên làm việc sau đó Lưu và nạp dữ liệu cũng có thể xuất nhập các file dữ liệu kiểu text

1.2.1 Lưu không gian làm việc (Saving the Workpace)

Để lưu Workpace, chọn lệnh Save Workpace as từ menu File hoặc gõ lệnh trực tiếp từ cửa sổ lệnh.Lệnh dữ liệu sẽ lưu nội dung của Workpace thành một file nhị phân có phần mở rộng là mat Ví dụ:

>>save data

lưu toàn bộ nội dung Workpace vào file data.mat Nếu muốn có thể lưu một số biến nhất định bằngcách đưa thêm tên các biến vào sau tên file:

>>save data x, y, z

chỉ lưu các bién x,y,z,vào file data.mat

1.2.2 Xuất không gian làm việc (loading the Workpace)

Lệnh nạp sẽ nạp một MAT-file đã được tạo ra trước đó bằng lệnh save Ví dụ:

>>load data

nạp nội dung file data.matvào không gian làm việc Nếu file data.mat chứa các biến a ,b, c, thì các biếnnày sẽ được đưa trở lại vào Workpace Nếu các biến này đã tồn tại trong Workpace thì chúng sẽ bị ghi đè Trong windows, nạp lại Workpace có thể thực hiện bằng cách chọn lệnh:

Load Workpace từ menu File

Phần 2 MA TRẬN VÀ CÁC PHÉP TOÁN VỀ MA TRẬN TRONG MATLAB

- Ma trận hàng ( 1 × m ) số liệu được bố trí trên một hàng

- Ma trận cột ( n × 1) số liệu được bố trí trên 1 cột

2.1.1 Qui định để định nghĩa một ma trận trong Matlab

Tên ma trận (có thể đến 31 ký tự), bắt đầu phải bằng chữ cái sau đó có thể là số, chữ cái, các ký tự đặcbiệ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, các phần tử của ma trậnđược đóng bằng dấu ngoặc vuông ([]), các phần tử trong trong cùng một hàng được cách nhau bởi ký tựtrống hoặc dấu phẩy (, ), các phần tử thuộc các hàng khác nhau cách nhau bởi dấu (;)

2.1.2 Các phương pháp nhập một ma trận

+ Liệt kê trực tiếp, ví dụ lệnh:

>> A =[1 2 3; 4 5 6 ; 7 8 9]

Kết quả cho ra một ma trận có 3 hàng, 3 cột

+ Nhập thông qua lệnh input, ví dụ lệnh:

>> input('Nhap gia tri cho ma tran A = ') ↵

Nhap gia tri cho ma tran A = [1 23;4 5 6;7 8 9] ↵

ans =

1 2 3

4 5 6

7 8 9

Trang 12

Chú ý:

+ Kết thúc một câu lệnh ta 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 sau khi câu lệnh được thực hiện, kết quả đều được lưuvào bộ nhớ và có thể sử dụng cho các câu lệnh tiếp theo

>> syms sinx cosx a ↵

>> C = [ sinx cosx; a cosx] ↵ cho ta ma trận:

2.2.1 Tạo ma trận véctơ : việc tạo ma trận véc tơ được thực hiện theo công thức sau:

Biến = giới hạn đầu : bước chạy : gới hạn cuối

Trong đó: Giới hạn đầu, giới hạn cuối, bước chạy: là các số thực, bước chạy có thể dương hoặc âm

Ví dụ 1: Tạo 1 vectơ t chạy từ 0 đến 0.6 với bước chạy tiến là 0.1

Chú ý : Trong trường hợp giới hạn trên, gới hạn dưới đều là các số nguyên và bước chạy bằng 1 thì ta

không cần đưa bước chạy vào trong biểu thức, ví dụ:

>> C = 1:5 ↵ ta được kết quả:

C =

2.2.2 Gọi các phần tử trong ma trận.

MATLAB cho phép ta xử lý đến từng phần tử của ma trận, để truy cập đến từng phần tử của

ma trận ta gọi chúng thông qua chỉ số của từng phần tử với các nội dung: Tên của ma trận (Chỉ số hàng, chỉ số cột), ví dụ:

Trang 13

4.3.1 Ma trận không (zeros): Tất cả các phần tử trong ma trận đều bằng 0.

>> C = zeros (2,3) ↵ (tạo ma trận zêro có 2 hàng, 3 cột)

C =

4.3.2 Ma trận đơn vị (ones): Tất cả các phần tử trong ma trận đều bằng 1

>> C = ones (2,3)↵ (tạo ma trận đơn vị có 2 hàng, 3 cột)

C =

4.3.3 Ma trận ma phương Magic: Ma trận này có tổng giá trị các phần tử trên hàng = tổng giá trị các phần

tử trên cột = tổng tất cả giá trị các phần tử trên đường chéo của ma trận, ví dụ:

Trang 14

2.3.4 Ma trận eye: có tất cả các phần tử trên đường chéo chính bằng 1, các phần tử khác có giá trị 0, ví dụ:

Phép toán Công thức Matlab

Cộng, trừ A+B, A-B A+B, A-B

Trang 15

2.5.2 Tổng, hiệu 2 ma trận: Phép cộng và trừ ma trận được thực hiện với các ma trận có cùng kích thước,

các phần tử tương ứng của 2 ma trận được cộng (hoặc trừ) với nhau theo công thức: Cij = Aij ± Bij, ví dụ:

Trang 17

4.5.7 Phép đảo ma trận: Đảo các phần tử của ma trận từ trái sang phải, ví dụ:

Phần 3 MỘT SỐ ỨNG DỤNG CƠ BẢN CỦA MATLAB

3.1 Nhân 2 đa thức: Để nhân 2 đa thức, ta dùng lệnh conv, ví dụ cho 2 đa thức:

y1 = anxn + an-1xn-1 + + a0

y2 = bnxn + bn-1xn-1 + + b0

Để nhân 2 đa thức trên, ta thực hiện theo các bước sau:

+ Lập 2 ma trận hàng với tên là y1và y2 có các phần tử là các hệ số từ an đến a0 và bn đến b0 giảm dầntheo bậc của phương trình, hệ số nào không có thì ghi 0;

+ Nhân 2 đa thức bằng lệnh conv: y3 = conv(y1y2), ví dụ cho 2 đa thức: y 1 = x2 + 3x + 5; y2 = 3x2 + 4x

ta thao tác theo các lệnh sau:

Ví dụ: Tìm phương trình biết các nghiệm của nó là 1 và -5, ta thao tác theo các lệnh sau:

>>A = [1 – 5 ]; ↵

>> poly(A) ↵

Trang 18

% Giai he phuong trinh dai so tuyen tinh

3.4 Chuyển từ phương trình hệ số sang phương trình có chứa cả tham số: (poly2sym)

Ví dụ: chuyển phương trình có các hệ số: a4 = 1; a3 = 3; a2 = 0; a1 = -5 sang phương trình chứa thamsố:

>> poly2sym([1 3 0 -5])

ans =

x^3 + 3*x - 5

3.5 Giải hệ phương trình đại số tuyến tính:

Ví dụ: giải hệ phương trình tuyến tính sau:

1 2 3

11

Chương trình giải hệ phương trình đại số được viết:

Lưu chương trình và cho chạy, ta thu được các nghiệm:

Trang 19

Để giải hệ phương trình đại số phi tuyến, ta dùng lệnh solve với cú pháp:

[biến 1, biến 2, …] = solve('phương trình 1', 'phương trình 2'…)

3.7 Giải hệ phương trình tham số: Để giải hệ phương trình tham số ta dùng lệnh solve với cú pháp tương

tự như trên, ví dụ cần giải hệ:

3.8 Giải hệ phương trình vi phân thường: ( lệnh dsolve)

- Đối với phương trình vi phân không có điều kiện đầu ta sử dụng cú pháp: >> y = dsolve('phươngtrình')↵

Ví dụ: Giải phương trình vi phân: x' + ax + 1 = 0, ta thực hiện lệnh:

>> x = dsolve('Dx+a*x+1=0')↵

Trang 20

- Đối với hệ phương trình vi phân, cú pháp lệnh là:

>> [biến 1, biến 2,…] = dsolve('phương trình 1', 'phương trình 2', …)

Ví dụ: Giải hệ phương trình:

dx y dt dy x dt

3.9 Giải hệ phương trình vi phần theo hàm có sẵn của Matlab:

Ví dụ: Cho hệ phường trình vi phân:

với các điều kiện đầu: y1(0) = 0; y1(0) = 1; y3(0) = 1

Chương trình mô tả phương trình vi phân dạng M-file:

function dy = rigid(t,y)

dy = zeros(3,1);

dy(1) = y(2) * y(3);

dy(2) = -y(1) * y(3);

dy(3) = -0.51 * y(1) * y(2);

Thời gian giải phương trình vi phân Tspan =[0 12], vector điều kiện đầu [0 1 1]

>>options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);

>>[t,y] = ode45('rigid',[0 12],[0 1 1],options);

Ngày đăng: 29/12/2017, 14:40

TỪ KHÓA LIÊN QUAN

w