§3 Mét sè øng dông



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:

[pic] (11.1)

Chuyển hệ phương trình911.1) sang số phức ta có:

[pic] (11.2)

[pic] (11.3)

[pic] (11.4)

Trong đó:

[pic]= [pic] là tổng trở phức của nhánh k.

Hệ phương trình (11.4) là hệ phương trình đại số tuyến tính, ta dễ dàng giải được bằng cách lập trình trên Matlab. Lưu đồ thuật toán tổng quát để giải bài toán lý thuyết mạch ở chế độ xác lập được chỉ ra trên hình 2.1. Trong trường hợp mạch có hỗ cảm, ta cần nhập thêm các hệ số hỗ cảm M, đồng thời trong phần tính toán cần tính thêm các tổng trở hỗ cảm ZM

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:

[pic] (11.5)

Trong đó: Z1, Z2, Z3 là tổng trở phức các nhánh. Từ hệ phương trình ta lập được các ma trận:

[pic] (11.6)

Ma trận dòng điện các nhánh là:

I = C*B (11.7)

I là ma trận cột, mỗi dòng của ma trận là dòng điện của nhánh tương ứng. Từ dòng điện ta tìm được các thông số trạng thái khác của mạch. Chương trình được viết trên Matlab như sau:

% 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

disp('Nhanh so 2')

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

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

XL1=314*L1*10^-3

XL2=314*L2*10^-3

XL3=314*L3*10^-3

% chu y neu co truong hop ci=0 se xay ra loi chia cho 0

if (C1~=0)

XC1=1/(314*C1*10^-6)

else

XC1=0

end

%%%%%%%%

if (C2~=0)

XC2=1/(314*C2*10^-6)

else

XC2=0

end

%%%%%%%

if C3~=0

XC3=1/(314*C3*10^-6)

else

XC3=0

end

% Tinh toan

% Phai sua doi cach tinh tuy thuoc vao quan he

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

Z1=R1+(XL1-XC1)*i

Z2=R2+(XL2-XC2)*i

Z3=R3+(XL3-XC3)*i

E1=E1*cos(anpha1)+i*E1*sin(anpha1)

E2=E2*cos(anpha2)+i*E2*sin(anpha2)

E3=E3*cos(anpha3)+i*E3*sin(anpha3)

% 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)

disp('dong dien I3')

I3=I(3,1)

disp (' Diep ap roi tren cac phan tu ')

UR1=I1*R1

UL1= i*XL1*I1

UC1=-i*XC1*I1

UR2=I2*R2

UL2= i*XL2*I2

UC2=-i*XC2*I2

UR3=I3*R3

UL3= i*XL3*I3

UC3=-i*XC3*I3

% Tinh toan cong suat

disp(' Cong suat phat ')

Sphat=E1*I1+E2*I2;

P=real(Sphat)

Q=imag(Sphat)

disp(' Cong suat thu ')

Sthu=Z1*I1^2+Z2*I2^2+Z3*I3^2

Pthu=real(Sthu)

Qthu=imag(Sthu)

11.3.2. Ví dụ 2:

Cho mạch điện như hình 11.3a, biết:

R1 = 10((); C1 = 1000((F); R2 = 20((); L2 = 200(mH);

R3 = 20((); L3 = 200(mH); R4 = 10((); L4 = 100(mH);

( = 100(rad/s);

e1 = 20[pic]sin((+500); e2 = 15[pic]sin((+300)

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:

%Vi du 2: May phat dien tuong duong

% Nhap cac thong so:

R1=10; L1=0; C1=1000; E1=20; anpha1=50;

R2=20; L2=200; C2=0; E2=0; anpha2=0;

R3=20; L3=200; C3=0; E3=15; anpha3=30;

R4=10; L4=100; C4=0;Ts=100;

%Tinh Toan:

anpha1=anpha1*pi/180; anpha3=anpha3*pi/180;

XL1=Ts*L1*10^-3;XL2=Ts*L2*10^-3;XL3=Ts*L3*10^-3;XL4=Ts*L4*10^-3;

% chu y neu co truong hop ci=0 se xay ra loi chia cho 0

if (C1~=0); XC1=1/(Ts*C1*10^-6); else XC1=0; end

%%%%%%%%

if (C2~=0); XC2=1/(Ts*C2*10^-6); else XC2=0; end

%%%%%%%

if C3~=0; XC3=1/(Ts*C3*10^-6); else XC3=0; end

%%%%%%%

if C4~=0; XC4=1/(Ts*C3*10^-6); else XC4=0; end

% Tong tro cac nhanh

Z1=R1+(XL1-XC1)*i

Z2=R2+(XL2-XC2)*i

Z3=R3+(XL3-XC3)*i

Z4=R4+(XL4-XC4)*i

% Doi nguon sang dang dai so:

E1=E1*cos(anpha1)+i*E1*sin(anpha1);

E3=E3*cos(anpha3)+i*E3*sin(anpha3);

disp('Dien ap ho mach Uho')

Uho=(E1/Z1+E3/Z3)/(1/Z1+1/Z2+1/Z3)

disp('Tong tro vao Zv')

Zv=1/(1/Z1+1/Z2+1/Z3)

disp('Dong dien I4')

I4=Uho/(Zv+Z4)

disp('Cong suat mach tieu thu')

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

S=Uho*I4

P=real(S)

Q=imag(S)

Sau khi chạy chương trình ta thu được kết quả như sau:

Z1 = 10.0000 -10.0000i

Z2 = 20.0000 +20.0000i

Z3 = 20.0000 +20.0000i

Z4 = 10.0000 +10.0000i

Dien ap ho mach Uho

Uho = 3.8900 +12.7157i

Tong tro vao Zv

Zv = 10

Dong dien I4

I4 = 0.4099 + 0.4308i

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

Zd=-j*100; Zn1=j*150;Zn2=Zn1;

% Mang thu 2

Zd1=-j*120; Zd2=-j*100; Zn=j*150;

%Ma tran A cua mang thu nhat

A1=[1+Zd/Zn2 Zd;(Zd+Zn1+Zn2)/(Zn1*Zn2) 1+Zd/Zn1]

%Ma tran A cua mang thu hai

A2= [1+Zd1/Zn (Zd1+Zd2+Zd1*Zd2/Zn);1/Zn 1+Zd2/Zn]

%Ma tran A cua mang

A=A1*A2

% Thong so cua so do tuong duong h?nh T

Zd1=(A(1,1)-1)/A(2,1)

Zd2=(A(2,2)-1)/A(2,1)

Zn=1/A(2,1)

% Thong so cua so do tuong duong h?nh Pi

Zd=A(1,2)

Zn1=A(1,2)/(A(2,2)-1)

Zn2=A(1,2)/(A(1,1)-1)

Sau khi chạy chương trình ta thu được:

- 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

R=10; L=.1; C=10^-3;

%Dat bien tan so là t

t = [1:10:10^4];

% Tong tro cua mach

Z = sqrt(R^2+(t.*L-1./(t*C)).^2);

plot(t,Z)% ve dac tinh tan tong tro

hold on

I=100./Z;

plot(t,I)%ve dac tinh tan dong dien

hold on

Ur=R*I

plot(t,Ur)%Ve dac tinh tan dien ap tren dien tro

hold on

UL=L.*t.*I

plot(t,UL)%Ve dac tinh tan dien ap tren dien cam

hold on

UC=I.*(1./(C.*t))

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

PHỤ LỤC

MỘT SỐ KIẾN THỨC CƠ BẢN VỀ MATLAB

Phầ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ột mô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ọc quen 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ĩnh vự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ường Matlab để 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ệu và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 ứng dụ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ến trong 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 quan hó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ạn tù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ủa mì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ản như: 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ện cho 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ình hó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ến tí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

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ểm nà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 trong phiê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ằng cá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ến nà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

2.1 Khái niệm

Các dữ liệu đưa vào xử lý trong MATLAB đều 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ỡ n ( m. Được ký hiệu An(m, phần tử aij của ma trận An(m là phần tử nằm ở hàng thứ i, cột j. Ta chú ý một số ma trận sau:

- Ma trận đơn ( số đơn lẻ ) là ma trận 1 hàng 1 cột.

- 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ự đặc biệ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

( 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ưu vào bộ nhớ và có thể sử dụng cho các câu lệnh tiếp theo.

+ Các phần tử trong ma trận có thể là các số phức, ví dụ lệnh:

>> B = [1+2i 2+2i;3-i 1+2i] sẽ cho ma trận

B =

1.0000 + 2.0000i 2.0000 + 2.0000i

3.0000 - 1.0000i 1.0000 + 2.0000i

+ Các phần tử trong ma trận có thể là các ký tự, để làm được điều này trước tiên ta phải khai báo các phần tử bằng lệnh syms, ví dụ:

>> syms sinx cosx a (

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

C =

[ sinx, cosx]

[ a, cosx]

2.1.3 Hiển thị lại ma trận

Để hiển thị lại ma trận ta gõ tên ma trận sau ấn (, ví dụ

>> A ( sẽ cho ta ma trận A

A =

1 2 3

4 5 6

7 8 9

2.2. Xử lý trong 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

>> t=0: 0.1:0.6 (

t =

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000

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

>>t = 0.6:-0.1:0 (

t =

0.6000 0.5000 0.4000 0.3000 0.2000 0.1000 0

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 =

1 2 3 4 5

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ụ:

>> A = [1:3; 4:6; 7:9] ( (Tạo ma trận A có kích thước 3X3)

A =

1 2 3

4 5 6

7 8 9

>> B = A(1,1) ( (Xuất phần tử ở hàng 1, cột 1)

B =

1

Chú ý: Trong trường hợp ta muốn gọi tất cả các phần tử trong một hàng hoặc tất cả các phần tử trong một cột ta dùng toán tử hai chấm (:), ví dụ:

>> C = A(2,:) ( (xuất các phần tử thuộc dòng 2 của ma trận A)

C =

4 5 6

>> D = A(:,2) ( (xuất các phần tử thuộc cột 2 của ma trận A)

D =

2

5

8

2.2.3. Gọi ma trận con từ một ma trận lớn.

Ví dụ:

>> A = [1:3; 4:6; 7:9] ( (tạo ma trận A3X3)

A =

1 2 3

4 5 6

7 8 9

>> B = A ( 2:3,1:2 ) ( (gọi phần tử 2, 3 của hàng 2 và phần tử 1, 2 của hàng 3)

B =

4 5

7 8

2.3 Các ma trận đặc biệt

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 =

0 0 0

0 0 0

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 =

1 1 1

1 1 1

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ụ:

>> A = Magic (3) (

A =

8 1 6

3 5 7

4 9 2

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ụ:

>> B = eye (3)

B =

1 0 0

0 1 0

0 0 1

2.4 CÁC PHÉP TOÁN VECTOR

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

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

|Nhân mảng |A.B = C |A.*B |

|Chia trái mảng |B\A |B.\A |

|Chia phải mảng |A/B |A./B |

|Luỹ thừa mảng |AB |A.^B |

2.4.1 Các phần tử là các số thực:

>>A = [1 1 2;2 1 1] (

A =

1 1 2

2 1 1

>> B = [1 2 2; 1 1 1] (

B =

1 2 2

1 1 1

>> C = A.*B (

C =

1 2 4

2 1 1

>> D = A./B (

D =

1.0000 0.5000 1.0000

2.0000 1.0000 1.0000

>> E = A.\B (

E =

1.0000 2.0000 1.0000

0.5000 1.0000 1.0000

>> F = A.^B (

F =

1 1 4

2 1 1

2.4.2 Các phần tử là số phức.

>>A = [1+i 2+3i;3-4i 1+3i] (

A =

1.0000 + 1.0000i 2.0000 + 3.0000i

3.0000 - 4.0000i 1.0000 + 3.0000i

>> B = [2+i 2+2i;1-4i 3+3i] (

B =

2.0000 + 1.0000i 2.0000 + 2.0000i

1.0000 - 4.0000i 3.0000 + 3.0000i

>> C = A.*B (

C =

1.0000 + 3.0000i -2.0000 +10.0000i

-13.0000 -16.0000i -6.0000 +12.0000i

2.4.3 Các phần tử là các tham số:

>> syms a b c d (

>>A=[a b; c d] (

A =

[ a, b]

[ c, d]

>> B = A (

B =

[ a, b]

[ b, c]

>> C=A.*B (

C =

[ a^2, b^2]

[ c^2, d^2]

2.5 CÁC PHÉP TOÁN VỀ MA TRẬN

2.5.1 Phép chuyển vị: Chuyển đổi hàng thành cột và ngược lại. Thực hiện phép chuyển vị bằng toán tử dấu nháy đơn ( ' ), ví dụ:

>> A = [1:3; 4:6; 7:9] (

A =

1 2 3

4 5 6

7 8 9

>> B = A’ ( (Ma trận chuyển vị của ma trận A)

B =

1 4 7

2 5 8

3 6 9

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ụ:

>> A = [1:3; 4:6; 7:9] (

A =

1 2 3

4 5 6

7 8 9

>> B = A’ ( (Ma trận B là chuyển vị của ma trận A)

B =

1 4 7

2 5 8

3 6 9

>> C = A + B ( (Tổng 2 ma trận)

C =

2 6 10

6 10 14

10 14 18

2.5.3 phép nghịch đảo ma trận: được thực hiện bởi hàm inv, ví dụ:

>> A = [1 2;4 5] (

A =

1 2

4 5

>> B=inv(A) (

B =

-1.6667 0.6667

1.3333 -0.3333

>> C = A*B

C =

1.0000 0

0.0000 1.0000

2.5.4 Phép nhân: C = A*B. Để thực hiện được phép nhân hai ma trận thì số cột của ma trận A phải bằng số hàng của ma trận B, ví dụ:

>> A = [1 2 1; 1 0 1] (

A =

1 2 1

1 0 1

>> B = [1 0 2; 2 1 1; 1 1 1] (

B =

1 0 2

2 1 1

1 1 1

>> C = A * B (

C =

6 3 5

2 1 3

2.5.5 Phép chia: Phép chia ma trận thực chất là phép nhân với ma trận nghịch đảo, ví dụ:

>> A = [1 2 1; 1 0 1] (

A =

1 2 1

1 0 1

>> B = [1 0 2; 2 1 1; 1 1 1] (

B =

1 0 2

2 1 1

1 1 1

>> C = inv(B) (

C =

0 1.0000 -1.000

-0.5000 -0.5000 1.5000

0.500 -0.5000 0.5000

>> D = A*C (

D =

- 0.5000 -0.5000 2.5000

0.5000 0.5000 -0.5000

2.5.6 Phép quay ma trận: Thực hiện quay ma trận B đi 1 góc 90 độ theo ngược chiều kim đồng hồ, ví dụ:

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

A =

1 2 3

4 5 6

7 8 9

>> B = rot90(A) (

B =

3 6 9

2 5 8

1 4 7

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ụ:

>> C = fliplr(B) (

C =

9 6 3

8 5 2

7 4 1

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ần theo 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: y1 = x2 + 3x + 5; y2 = 3x2 + 4x ta thao tác theo các lệnh sau:

>> y1 = [1 3 5]; (

>> y2 = [3 4 0]; (

>> y3 = conv(y1,y2) (

y3 = 3 13 27 20 0

Vậy, y3 = 3x4 + 13x3 + 27x2 + 20x

3.2 Giải phương trình bậc cao: (Lệnh Roots)

anxn + an-1xn-1+...+a0 = 0

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

+ Dùng lệnh Roots để tìm nghiệm.

( Ví dụ: giải phương trình sau: x5 - 2x4 + 5x2 - 1= 0, ta thao tác theo các lệnh sau:

>> y = [ 1 -2 0 5 0 -1] (

y =

1 -2 0 5 0 -1

>> KQ = roots(y) (

KQ =

1.5862 + 1.1870i

1.5862 - 1.1870i

-1.1606

-0.4744

0.4627

3.3 Biết nghiệm tìm lại phương trình: ( lệnh poly )

( 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) (

ans =

1 4 -5

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 tham số:

>> 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:

[pic]

Thực chất hệ phương trình trên có thể đưa về phép toán ma trận sau:

[pic]

A.X = B

Như vậy việc giải hệ PT tuyến tính thực chất là thực hiện phép toán về ma trận, ta có: [pic]

Để giải hệ phương trình này ta cần thực hiện qua các bước sau:

- Lập ma trận A, B;

- Lấy ma trận nghịch đảo A-1

- Nghiệm [pic]

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:

X =

11.0000

-3.0000

-1.0000

3.6 Giải hệ phương trình đại số phi tuyến:( Lệnh solve)

Để 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'…)

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

[pic]

Gõ lệnh: >> [x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + 3 = 0')( ta thu được các cặp nghiệm

x =

[ 1]

[ 3]

y =

[ 1]

[ -3/2]

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

[pic]

>> [x,y,z]=solve('sin(x)+y^2+log(z)=7','3*x+2^y+z^3=4','x+y+z=2')(

Các nghiệm là:

x = -2.3495756224572032187410536400368

y = 2.6835269194785219427270239079010

z = 1.666048702978681276014029732135

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ệ:

[pic]

Thực hiện lệnh: >> [u,v] = solve('a*u^2 + v^2 = 0','u - v = 1')( ta được

u =

1/2/(a+1)*(-2*a+2*(-a)^(1/2))+1

1/2/(a+1)*(-2*a-2*(-a)^(1/2))+1

v =

1/2/(a+1)*

(-2*a+2*(-a)^(1/2))

1/2/(a+1)*(-2*a-2*(-a)^(1/2)

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ương trì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')(

x = -1/a+exp(-a*t)*C1

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

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

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

x = -1/a+exp(-a*t)/a

- Đố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:

[pic]

>>[x,y] = dsolve('Dx = y', 'Dy = -x') (

x = C1*sin(t) + C2*cos(t)

y = C1*cos(t) - C2*sin(t)

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:

[pic] 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);

>>plot(t,y(:,1),'-',t,y(:,2),'-.',t,y(:,3),'.')

3. L

Phần 4: MỘT SỐ PHÉP BIẾN ĐỔI TRONG MATLAB

4.1 Tính toán (Calculus):

4.1.1. Tính đạo hàm (diff):

➢ diff(S): Đạo hàm biểu thức symbolic S với biến của đạo hàm tự do.

➢ diff(S,’v’) hay diff(S,sym(‘v’)): Đạo hàm biểu thức symbolic S với biến lấy đạo hàm là biến symbolic v.

➢ diff(S,n) : Đạo hàm cấp n biểu thức S, n là số nguyên dương.

( Ví dụ 1:

>>syms x t

>> y = sin(x^2); (

>>z = diff(y) (

z = 2*cos(x^2)*x

>>y = diff(t^6,6) % đạo hàm bậc 6 của hàm t6.

y = 720

( Ví dụ 2:

>>syms u v

>>y = u^2*v - u*v^3; ( % cho biểu thức với 2 biến u và v

>> y2u = diff(y,u,2) % đạo hàm cấp 2 theo u

>> y3u = diff(y,v,3) % đạo hàm cấp 2 theo v

y2u = 2*v

y3u = -6*u

4.1.2.Tính tích phân( int):

➢ int(S): Tích phân không xác định của biển thức symbolic S với biến tự do mặc định. Muốn biết biến mặc định ta dùng lệnh fìndsym.

➢ int(S,v): Tích phân không xác định của biểu thức symbolic S với biến tích phân v.

➢ int(S,a,b): Tích phân không xác định của biểu thức symbolic S với biến tự do và cận lấy tích phân từ [a,b].

➢ int(S,v,a,b): Tích phân không xác định của biểu thức symbolic S với biến tích phân v và cận lấy tích phân từ [a,b].

( Vidụ 1:

>>syms x t z alpha

>>int(-2*x/(1+x^2)^2)

ans = 1/(1+x^2)

>>int(x/(1+z^2),z)

ans = x*atan(z)

>>int(x*log(1+x),0,1)

ans = 1/4

>>int(-2*x/(1+x^2)^2)

ans = 1/(1+x^2)

>> int([exp(t),exp(alpha*t)])

ans = [ exp(t), 1/alpha*exp(alpha*t)]

Vídụ 2: Tính tích phân I = [pic]

>>Syms x s real

>>f = exp(-(s*x)^2);

>>I = int(f,x,-inf,inf)% inf là vô cùng lớn

I =

Signum(s)/s*pi^(1/2)

Hàm signum chính là hàm sign (hàm dấu), nghĩa là sign(s) cho ta:

sign(s) = 1 khi s>0; sign(s) = 0 khi s =0; sign(s) = -1 khi s>syms x a t h

>>limit(sin(x)/x)

ans = 1

>>limit(1/x,x,0,’right’)

ans = inf

>>limit(1/x,x,0,’left’)

ans = -inf

>>limit((sin(x+h)-sin(x))/h,h,0)

ans = cos(x)

>>v = [(1+a/x)^x,exp(-x)];

>>limit(v,x,inf,’left’)

ans = [exp(a),0]

4.1.4. Tính tổng của dãy số là các biến symbolic(symsum):

➢ symsum(S): Tổng của biểu thức symbolic theo biến symbolic k , k được xác định bằng lệnh findsym từ 0[pic]k -1.

➢ symsum(S,v): Tổng của biểu thức symbolic S theo biến symbolic v,v được xác định từ 0[pic]k - 1.

➢ symsum(S,a,b), symsum(S,v,a,b): Tổng của biểu thức symbolic S theo symbolic v, v được xác định từ v = a đến v = b.

( Ví dụ 1:

>>syms k n x

>>symsum(k^2)

ans = 1/3*k^3-1/2*k^2+1/6*k

>>symsum(k)

ans = 1/2*k^2-1/2*k

>>symsum(sin(k*pi)/k,0,n)

ans = -1/2*sin(k*(n+1))/k+1/2*sin(k)/k/(cos(k)-1)*cos(k*(n+1))-1/2*sin(k)/k/(cos(k)-1)

>>symsum(k^2,0,10)

ans = 385

>>symsum(x^k/sym(‘k!’), k, 0,inf)

ans = exp(x)

( Vi dụ: Cho tổng của 2 dãy

S1 = 1 + [pic]….

S2 = 1 + x + x2 +…..

>>syms x k

>>s1 = symsum(1/k^2,1,inf) %inf là vô cùng.

s1 = 1/6*pi^2

>>s2 = symsum(x^k,k,0,inf)

Tìm hàm ngược (finverse):

➢ finverse(f): Tìm hàm ngược của f. f là hàm symbolic với một biến x

➢ finverse(f,u): Tìm hàm ngược của f. f là hàm symbolic với một biến u.

( Ví dụ 2:

>>syms u v x

>>finverse(1/tan(x))

ans = atan(1/x)

>>finverse(exp(u-2*v),u)

ans = 2*v+log(u)

s2 = -1/(x-1)

4.2. Khai triển

4.2.1. Khai triển taylor(taylor):

➢ taylor(f)

➢ taylor(f,n,v): Cho ta xấp xỉ đa thức theo Maclaurin bậc (n-1) của biểu thức, hàm khai triển symbolic f và v là biến độc lập trong biểu thức. v có thể là một xâu (string) hay là biến symbolic.

➢ taylor(f,n,v,a): Khai triển Taylor của biểu thức hay hàm symbolic f quanh điểm a. Đối số có thể là giá trị số, một hàm symbolic hay một xâu…Nếu không cho gía trị n thì mặc nhiên trong Matlab n = 6.

( Vi dụ:

Khai triển Taylor của hàm f = exsin(x) quanh điểm x0 = 2 (Nếu x0 = 0 ta có khai triển Maclaurin).

>>syms x

>> f = exp(x*sin(x));

>>t = taylor(f,4,2) % khai triển 4 số hạng đầu tiên khác o và xung quanh điểm x0 = 2

f = exp(2*sin(2)) + exp(2*sin(2))*(2*cos(2) + sin(2))*(x-2) + exp(2*sin(2)) *(-sin(2) + cos(2) + 2*cos(2)^2 + 2*cos(2)*sin(2) + 1/2*sin(2)^2)*(x-2)^2 + exp(2*sin(2)) * (-1/3*cos(2)-1/2*sin(2)-cos(2)*sin(2) + 2*cos(2)^2-sin(2)^2 + 4/3*cos(2)^3 + 2*cos(2)^2*sin(2) +cos(2)*sin(2)^2 + 1/6*sin(2)^3)*(x-2)^3

4.2.2. Các hàm làm đơn giản hoá các biểu thức:

a) Gom số hạng, biến(collect):

➢ collect(S): S là đa thức, gom các số hạng chứa biến x

➢ collect(S,v): S là đa thức, gom các số hạng chứa biến v

( Ví dụ:

>>syms x y;

>>R1 = collect((exp(x)+x)*(x+2))

>>R2 = collect((x+y)*(x^2+y^2+1), y)

>>R3 = collect([(x+1)*(y+1),x+y])

R1 = x^2+(exp(x)+2)*x+2*exp(x)

R2 = y^3+x*y^2+(x^2+1)*y+x*(x^2+1)

R3 = [(y+1)*x+y+1, x+y]

b) Khai triển biểu thức(expand):

( Ví dụ:

>>syms x y a b c t

>>expand((x-2)*(x-4))

ans = x^2-6*x+8

>>expand(cos(x+y))

ans = cos(x)*cos(y)-sin(x)*sin(y)

>>expand(exp((a+b)^2))

ans = exp(a^2)*exp(a*b)^2*exp(b^2)

>>expand(log(a*b/sqrt(c)))

ans = log(a)+log(b)-1/2*log(c)

>>expand([sin(2*t), cos(2*t)])

ans = [2*sin(t)*cos(t), 2*cos(t)^2-1]

c) Phân tích biểu thức thành thừa số (factor):

➢ factor(X): Phân tích biểu thức mảng symbolic X thành thừa số.

( Ví dụ:

>>syms x y a b

>>factor(x^3-y^3)

(x-y)*(x^2+x*y+y^2)

>>factor([a^2-b^2, a^3+b^3])

[(a-b)*(a+b), (a+b)*(a^2-a*b+b^2)]

>>factor(sym('12345678901234567890'))

(2)*(3)^2*(5)*(101)*(3803)*(3607)*(27961)*(3541)

Phân tích đa thức ra dạng thừa số(horner):

➢ R = horner(p):

( Ví dụ:

>>syms x y

>>horner(x^3-6*x^2+11*x-6)

ans = -6+(11+(-6+x)*x)*x

>>horner([x^2+x;y^3-2*y])

ans = [ (1+x)*x]

[(-2+y^2)*y]

Lấy tử số và mẫu số(numden):

( Ví dụ:

>>syms x y a b

>>A= (4-x)/5;

>>[n,d] = numden(A)

n = 4-x

d = 5

>>[n,d] = numden(x/y + y/x)

n = x^2+y^2

d = y*x

>>A = [a, 1/b]

>>[n,d] = numden(A)

n = [a, 1]

d = [1, b]

Tìm dạng tối giản của đa thức( simple, simplify):

➢ R = simplify(S)

➢ R = simple(S)

➢ [r, how] = simple(S)

( Ví dụ:

>>syms x y a b c

>>simplify(sin(x)^2 + cos(x)^2)

ans = 1

>>simplify(exp(c*log(sqrt(a+b))))

ans = (a+b)^(1/2*c)

>>S = [(x^2+5*x+6)/(x+2),sqrt(16)];

>>R = simplify(S)

R = [x+3,4]

4.3. Các phép biến đổi

4.3.1. Biến đổi Furiê

a) Biến đổi Furiê thuận

➢ F = fourier(f): Biến đổi fourier của hàm vô hướng f với biến độc lập mặc nhiên f và cho ta hàm mặc nhiên qua phép biến đổi nàylà w.

➢ F = fourier(f,v): F là hàm của biến v thay thế biến mặc nhiên w.

➢ F = fourier(f,u,v): f là hàm của u và F là hàm của v chúng thay thế các biến mặc nhiên x và w.

( Ví dụ:

>>syms x w u

>>f = exp(-x^2)

>>fourier(f)

ans = pi^(1/2)*exp(-1/4*w^2)

>>g = exp(-abs(w))

>>fourier(g)

ans = 2/(1+t^2)

>>f= x*exp(-abs(x))

>>fourier(f,u)

ans = -4*i/(1+u^2)^2*u

>>syms x v u real

>>f= exp(-x^2*abs(v))*sin(v)/v

>>fourier(f,v,u)

ans = -atan((u-1)/x^2)+atan((u+1)/x^2)

b) Biến đổi Furiê ngược

➢ f = ifourier(F): Biến đổi ngược của hàm mục tiêu vô hướng F với biến độc lập mặc nhiên w. phép biến đổi ngược này là hàm của x.

➢ f = ifourier(F,u): f là hàm củabiến u thay thế biến mặc nhiên x.

➢ f = ifourier(F,v,u): F là hàm của v và f là hàm của u chúng thay thế các biến mặc nhiên w và x tương ứng.

( Ví dụ:

>>syms a w x t v real

>>f = exp(-w^2/(4*a^2))

>>F = ifourier(f);

>>F = simple(F)

F = a*exp(-x^2*a^2)/pi^(1/2)

>>g=exp(-abs(x))

>>ifourier(g)

ans = 1/(1+t^2)/pi

>>f=2*exp(-abs(w))-1

>>simplify(ifourier(f,t))

ans = (2-pi*Dirac(t)-pi*Dirac(t)*t^2)/(pi+pi*t^2)

>>f=exp(-w^2*abs(v))*sin(v)/v;

>>ifourier(f,v,t)

ans = 1/2*(atan((t+1)/w^2) - atan((-1+t)/w^2))/pi

4..3.2. Biến đổi laplace

a) Biến đổi Laplace thuận

➢ L = laplace(F): Biến đổi Laplace của hàm F với biến mặc nhiên độc lập t. nó cho ta một hàm của s

➢ L = laplace(F,t): L là một hàm của t thay thế biến mặc nhiên s.

➢ L = laplace(F,w,z): L là hàm của z và F là hàm của w, nó thay thế các biến symbolic mặc nhiên s và t tương ứng.

( Ví dụ:

>>syms t v x a;

>> f=exp(-50*t);

>> laplace(f)

ans = 1/(s+50)

>> g = 1/sqrt(x)

>> laplace(g)

ans = (pi/s)^(1/2)>>f=exp(-a*t)

>>laplace(f,x)

ans= 1/(x + 50)

>>f = 1- cos(t*v);

>>laplace(f,x)

ans = 1/x-x/(x^2+v^2)

b) Biến đổi Laplace ngược

➢ F = ilaplace(L): Biến đổi Laplace ngược của hàm symbolic L với biến mặc nhiên độc lập s. Nó cho ta một hàm của t.

➢ F = ilaplace(L,y): F là hàm của y thay thế biến mặc nhiên t.

➢ F = ilaplace(L,y,x): F là hàm của x và L là hàm của y, nó thay thế các biến symbolic mặc nhiên t và s.

( Ví dụ:

>>syms s a t

>>f=1/s^2

>>ilaplace(f)

ans = t

>>g=1/(t-a)^2,

>>ilaplace(g)

ans = x*exp(a*x)

>>syms u a x,

>>f=1/(u^2-a^2),

>>ilaplace(f,x)

ans = 1/(-a^2)^(1/2)*sin((-a^2)^(1/2)*x)

>>syms s v x,

>>f=s^3*v/(s^2+v^2),

>>ilaplace(f,v,x)

ans = s^3*cos(s*x)

4.4. Vẽ đường cong trong Matlab

4.4.1.Vẽ đường

a) Đường trong không gia 2 chiều (ezplot)

➢ ezplot(f): Vẽ hàm f = f(x) với miền mặc nhiên -2[pic] < x < 2[pic].

➢ ezplot(f,[min,max]) : Vẽ hàm f = f(x) trong miền giá trị [min,max] của biến.

➢ ezplot(x,y): Vẽ đường cong ham số x = x(t); y = y(t) với biến mặc định 0 < t < 2[pic].

( Ví dụ:

>>syms x

>>ezplot(x^3)

>>grid

b) Vẽ đường trong không gia 3 chiều (ezplot3)

➢ ezplot3(x,y,z): Vẽ các hàm x = x(t), y = y(t), và z = z(t) với miền mặc định là: 0 < t < 2[pic].

➢ ezplot3(x,y,z,[tmin,tmax]): Vẽ các hàm x = x(t), y = y(t), và z = z(t) trong khoảng giá trị tmin < t < tmax.

( Ví dụ:

>>syms t;

>>ezplot3(sin(t), cos(t), t,[0,6*pi])

[pic]

-----------------------

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

Kết thúc

% Giai he phuong trinh dai so tuyen tinh

% Nhap ma tran A

A = [2 3 4;3 6 -4;1 2 3];

% Nhap ma tran B

B = [9;19;2];

% lay ma tran A nghich dao

C = inv(A);

% Nghiem

X = C*B

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

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

C = 0

XC = 0

XC = [pic]

Z = Rk + j(XL - XC)

[pic]

Bắt đầu

Nhập giá trị

R, L, C, M(nếu có), E,[pic]

Tính XL

(XM)

Sai

Đúng

Tính dòng điện các nhánh

Tính ma trận A,B

[pic]

[pic]

L1

C1

R1

L1

L2

C2

R1

L3

C3

R2

R3

[pic]

[pic]

[pic]

Hình 11.2

Hình 11.3a,b

R2

e1

C1

L2

R1

R3

L4

L3

R4

e3

L4

[pic]

Z0

L4

Z4

a)

b)

[pic]

Hình 11.4

2

100(

150(

120(

100(

150(

150(

Hình 11.5

a)

b)

I(()

z(()

UR(()

UC(()

UL(()

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download