Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
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
CHƯƠNG 11 ỨNGDỤNGMATLABĐỂPHÂNTÍCHMẠCHĐIỆN 11.1 TỔNG QUAN VỀ MATLAB (xem phụ lục) 11.2 PHÂNTÍCHMẠCH TUYẾN TÍNH Ở CHẾ ĐỘ XÁC LẬP 11.2.1 Bài toán: Các liệu cho trước bao gồm: - Sơ đồ mạch - Các thông số phần tử (Điện trở, điện cảm, điện dung, hỗ cảm) - Các thơng số nguồn áp nguồn dòng (nếu có) Các thơng số cần tính: - Dòng điện nhánh - điện áp phần tử - Công suất tác dụng công suất phản kháng 11.2.2 Xây dựng thuật tốn phântíchmạchĐể xây dựng thuật toán giải toán mạch này, ta chuyển phương trình mạch sang số phức, hệ phương trình vi phân mơ tả mạch trở thành hệ phương trình đại số dễ dàng giải ngơn ngữ lập trình Pascal, C Xét mạchđiện tổng quát gồm m nhánh, n nút Ta lập hệ gồm m phương trình vi phân sau: ∑ i k (t) = Nót di i dt ∑ R k i k + L k k + ÷= ∑ e dt Ck ∫ k Vßng k Vßng (11.1) Chuyển hệ phương trình911.1) sang số phức ta có: ∑ & Ik = nót & ∑ Rk& I k + jωL k I&k + I k ÷ = ∑ E&k jωCk vßng vßng (11.2) ∑ & Ik = nót & ∑ R k + j ωL k ữI k = E&k C vòng vßng k (11.3) Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 177 ∑ I&k = nót & & ∑ Zk I k = ∑ E k vßng vßng (11.4) Trong đó: Zk = R k + j ωL k − ÷ tổng trở phức nhánh k ωC k Hệ phương trình (11.4) hệ phương trình đại số tuyến tính, ta dễ dàng giải cách lập trình Matlab Lưu đồ thuật toán tổng quát để giải toán lý thuyết mạch chế độ xác lập hình 2.1 Trong trường hợp mạch có hỗ cảm, ta cần nhập thêm hệ số hỗ cảm M, đồng thời phần tính tốn cần tính thêm tổng trở hỗ cảm ZM Bắt đầu Nhập giá trị R, L, C, M(nếu có), E, Tính XL (XM) Sai XC = C= Đúng XC = Z = Rk + j(XL XC) Tính ma trận A,B Tính dòng điện nhánh Tính điện áp phần tử Tính cơng suất P, Q, S Kết thúc Hình 11.1: Lưu đồ thuật tốn phântíchmạchđiện tuyến tính Trường Đại học Kỹ thuật Cơng nghiệp - Đại học Thái Nguyên 178 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 hình 11.2 Hãy lập chương trình tính dòng điện nhánh, điện áp phần tử, công suất thu công suất phát mạch & I1 & I3 L1 & I2 L3 L2 C1 C3 C2 R1 R3 R2 E&1 E&3 Hình 11.2 Giải Theo phương pháp dòng điện nhánh, với giả thiết chiều dòng điện nhánh hình 11.2, ta viết hệ ba phương trình dạng số phức: ( ) & I1 + I&2 − I&3 = & & I3 = E Z1I1 + Z3& & & Z I − Z3I&3 = −E 2 (11.5) Trong đó: Z1, Z2, Z3 tổng trở phức nhánh Từ hệ phương trình ta lập ma trận: 1 A = Z1 Z2 −1 Z3 ; B = E&1 ; C = A −1 − E&2 − Z3 (11.6) Ma trận dòng điện nhánh là: I = C*B (11.7) I ma trận cột, dòng ma trận dòng điện nhánh tương ứng Từ dòng điện ta tìm thơng số trạng thái khác mạch Chương trình viết Matlab sau: % Chuong trinh phantichmach o che 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 Diendung 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 sang radian disp('Nhanh so 2') R2=input('nhap gia tri Dien tro R2= '); Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 179 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 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 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 loi chia cho 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 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;Z1 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) Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 180 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 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 sin(ω+500); e2 = 15 sin(ω+300) Tính dòng điện qua nhánh phương pháp máy phát điện tương đương; công suất tác dụngphản kháng mạch Giải Tách riêng nhánh 4, biến đổi phần lại thành máy phát điện tương đương (hình 11.3b), tính thơng số máy phát điện tương đương sau tính dòng điện nhánh cơng suất mạch Chương trình viết Matlab sau: R1 R2 L3 C1 e1 R3 L2 a) e3 R4 & I4 Z0 Z4 L4 L4 L4 b) Hình 11.3a,b Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 181 %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 loi chia cho 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 chạy chương trình ta thu kết 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 Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 182 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 cực với tham số hình 11.4 Hãy xác định tham số ma trận [A] mạng; Tìm sơ đồ thay tương đương hình T hình ∏ mạng Coi mạng cực gồm mạng cực nối xâu chuỗi nhau: Mạng thứ mạng hình ∏ có thông số là: Zd = j100(Ω); Zn1 = Zn2 = j150(Ω); mạng thứ mạng hình T có thông số: Zd1 = -j120(Ω); Zd2 = -j100(Ω); Zn = j150(Ω) 100 Ω 150Ω 120 Ω 150Ω 100 Ω 150Ω Hình 11.4 Giải Chương trình viết Matlab sau: %Vi du 3: Mang cưc % Cac thong so da cho %Mang thu nhat Zd=-j*100; Zn1=j*150;Zn2=Zn1; % Mang thu 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 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 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 chạy chương trình ta thu được: Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 183 - Ma trận A mạng thứ nhất: A1 = 1.0e+002 * 0.0033 - 0.0001i - 1.0000i 0.0033 - Ma trận A mạng thứ 2: A2 = 1.0e+002 * 0.0020 - 1.4000i - 0.0001i 0.0033 - Ma trận A mạng cực A= -0.6000 -80.0000i - 0.0040i -1.1333 - Thông số sơ đồ tương đương hình T Zd1 = -4.0000e+002i Zd2 = -5.3333e+002i Zn = +2.5000e+002i - Thơng số sơ đồ tương đương hình Π Zd = -80.0000i Zn1 = +37.5000i Zn2 = +50.0000i 11.3.4 Ví dụ 4: Viết chương trình vẽ đặc tính tần điện áp phần tử 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 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 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 Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 184 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 diendung Cho chạy chương trình ta thu đặc tính tần hình 11.5 40 120 100 30 80 20 UL(ω) 60 z(ω) 10 40 UR(ω) 20 0 100 200 300 400 500 100 200 300 400 500 I(ω) UC(ω) a) b) Hình 11.5 Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 185 PHỤ LỤC MỘT SỐ KIẾN THỨC CƠ BẢN VỀ MATLABPhần TỔNG QUAN VỀ MATLAB 1.1 Giới thiệu chung MATLABphần mềm ứngdụng chạy môi trường Windows hãng MathWorks sản xuất cung cấp, tích hợp cơng cụ mạnh phục vụ tính tốn, lập trình, thiết kế, mơ phỏng, V.V môi trường dễ sử dụng tốn lời giải biểu diễn theo ký hiệu toán học quen thuộc Có thể nói Matlab ngơn ngữ kỹ thuật, nhiều nhà khoa học, cán kỹ thuật, giảng viên sinh viên trường đại học kỹ thuật ưa dùng Các ứngdụngđiển hình là: - Tốn học tính tốn - Phát triển thuật tốn - Tạo mơ hình, mơ tạo giao thức - Khảo sát, phântích số liệu - Đồ hoạ khoa học kỹ thuật - Phát triển ứng dụng, gồm xây dựng giao diện người dùng đồ hoạ GUI - Thiết kế hệ thống điều khiển thời gian thực Matlab cung cấp họ phương pháp theo hướng chuyên dụng hóa gọi Toolbox (hộp công cụ) Các Toolbox cho phép người sử dụng học áp dụng kỹ thuật chuyên dụng cho lĩnh vực Toolbox tập hợp toàn diện hàm Matlab (M-file) cho phép mở rộng môi trường Matlabđể giải lớp toán cụ thể Các lĩnh vực có sẵn Toolbox bao gồm: Xử lý tín hiệu, hệ thống điều khiển, logic mờ, mạng nơron, mô Hệ thống Matlab gồm có phần chính: - Ngôn ngữ Matlab: Là ngôn ngữ ma trận, mảng cấp cao với câu lệnh, hàm, cấu trúc liệu vào / ra, tính lập trình hướng đối tượng Nó cho phép lập trình ứngdụng từ nhỏ đến ứngdụng lớn, từ ứngdụng đơn giản đến ứngdụng phức tạp - Môi trường làm việc Matlab: Đây công cụ phương tiện mà bạn sử dụng với tư cách người dùng người lập trình Matlab Nó bao gồm phương tiện cho việc quản lý biến không gian làm việc Workspace xuất nhập liệu Nó bao gồm công cụ để phát triển, quản lý, gỡ rối định hình M-file, ứngdụngMatlab - Xử lý đồ họa: Đây hệ thống đồ họa Matlab Nó bao gồm lệnh cao cấp cho trực quan hóa liệu hai chiều ba chiều, xử lý ảnh, ảnh động, Nó cung cấp lệnh cấp thấp cho phép bạn tùy biến giao diện đồ họa xây dựng giao diện đồ họa hoàn chỉnh cho ứngdụngMatlab - Thư viện tốn học Matlab: Đây tập hợp khổng lồ thuật tốn tính tốn từ hàm như: cộng, trừ, nhân, chia, sin, cos, tang, số học phức .tới hàm phức tạp như: nghịch đảo, ma trận, tìm trị riêng ma trận, phép biến đổi Fourier nhanh - Giao diện chương trình ứngdụngMatlab API (Application Program Interface): Đây thư viện cho phép bạn viết chương trình C Fortran tương thích với Matlab Simulink chương trình kèm với Matlab, hệ thống tương tác với việc mô hệ thống động học phi tuyến Nó chương trình đồ họa sử dụng chuột để thao tác cho phép mơ hình hóa hệ thống cách vẽ sơ đồ khối hình Nó làm việc với 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 Matlab (Matlab Workspace) Không gian làm việc Matlab chứa tập biến (các mảng đặt tên) mà bạn thao tác từ dòng lệnh Matlab Có thể sử dụng lệnh Who whos để xem nội dung workspace Để xóa tất biến tồn trongWorkpace, gõ >>clear Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 186 2.3.4 Ma trận eye: có tất phần tử đường chéo 1, phần tử khác có giá trị 0, ví dụ: >> B = eye (3) B= 0 0 2.4 CÁC PHÉP TOÁN VECTOR Phép toán Cộng, trừ Nhân mảng Chia trái mảng Chia phải mảng Luỹ thừa mảng Công thức A+B, A-B A.B = C B\A A/B AB Matlab A+B, A-B A.*B B.\A A./B A.^B 2.4.1 Các phần tử số thực: >>A = [1 2;2 1] ↵ A= 1 >> B = [1 2; 1 1] ↵ B= 1 >> C = A.*B ↵ C= 2 >> D = A./B ↵ D= 1.0000 2.0000 >> E = A.\B ↵ E= 1.0000 0.5000 >> F = A.^B ↵ F= 1 2 0.5000 1.0000 1.0000 1.0000 2.0000 1.0000 1.0000 1.0000 2.4.2 Các phần tử 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ử tham số: Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 190 >> 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 ngược lại Thực phép chuyển vị toán tử dấu nháy đơn ( ' ), ví dụ: >> A = [1:3; 4:6; 7:9] ↵ A= >> B = A’ ↵(Ma trận chuyển vị ma trận A) B= 2.5.2 Tổng, hiệu ma trận: Phép cộng trừ ma trận thực với ma trận có kích thước, phần tử tương ứng ma trận cộng (hoặc trừ) với theo công thức: C ij = Aij ± Bij, ví dụ: >> A = [1:3; 4:6; 7:9] ↵ A= >> B = A’ ↵(Ma trận B chuyển vị ma trận A) B= >> C = A + B ↵(Tổng ma trận) C= 10 10 14 10 14 18 2.5.3 phép nghịch đảo ma trận: thực hàm inv, ví dụ: >> A = [1 2;4 5] ↵ A= >> B=inv(A) ↵ B= -1.6667 0.6667 Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 191 1.3333 -0.3333 >> C = A*B C= 1.0000 0.0000 1.0000 2.5.4 Phép nhân: C = A*B Để thực phép nhân hai ma trận số cột ma trận A phải số hàng ma trận B, ví dụ: >> A = [1 1; 1] ↵ A= 1 >> B = [1 2; B= >> C = A * B ↵ C= 1; 1 1] ↵ 1 1 2.5.5 Phép chia: Phép chia ma trận thực chất phép nhân với ma trận nghịch đảo, ví dụ: >> A = [1 1; 1] ↵ A= 1 >> B = [1 2; B= 1 1; 1 1] ↵ 1 1 >> C = inv(B) ↵ C= -0.5000 0.500 1.0000 -0.5000 -0.5000 >> D = A*C ↵ D= - 0.5000 0.5000 -1.000 1.5000 0.5000 -0.5000 0.5000 2.5000 -0.5000 2.5.6 Phép quay ma trận: Thực quay ma trận B góc 90 độ theo ngược chiều kim đồng hồ, ví dụ: >> A = [1 3;4 6;7 9] ↵ A= >> B = rot90(A) ↵ B= Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 192 4.5.7 Phép đảo ma trận: Đảo phần tử ma trận từ trái sang phải, ví dụ: >> C = fliplr(B) ↵ C= Phần MỘT SỐ ỨNGDỤNG CƠ BẢN CỦA MATLAB 3.1 Nhân đa thức: Để nhân đa thức, ta dùng lệnh conv, ví dụ cho đa thức: y1 = anxn + an-1xn-1 + + a0 y2 = bnxn + bn-1xn-1 + + b0 Để nhân đa thức trên, ta thực theo bước sau: + Lập ma trận hàng với tên y1và y2 có phần tử hệ số từ a n đến a0 bn đến b0 giảm dần theo bậc phương trình, hệ số khơng có ghi 0; + Nhân đa thức lệnh conv: y3 = conv(y1y2), ví dụ cho đa thức: y1 = x2 + 3x + 5; y2 = 3x2 + 4x ta thao tác theo lệnh sau: >> y1 = [1 5]; ↵ >> y2 = [3 0]; ↵ >> y3 = conv(y1,y2) ↵ y3 = 13 27 20 Vậy, y3 = 3x + 13x + 27x2 + 20x 3.2 Giải phương trình bậc cao: (Lệnh Roots) anxn + an-1xn-1+ +a0 = + Lập ma trận hàng với tên y có phần tử hệ số từ a n đến a0 giảm dần theo bậc phương trình, hệ số khơng có 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 lệnh sau: >> y = [ -2 5 -1 -1] ↵ y= -2 >> 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 nghiệm -5, ta thao tác theo lệnh sau: >>A = [1 – ]; ↵ >> poly(A) ↵ Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 193 ans = -5 3.4 Chuyển từ phương trình hệ số sang phương trình có chứa tham số: (poly2sym) Ví dụ: chuyển phương trình có hệ số: a4 = 1; a3 = 3; a2 = 0; a1 = -5 sang phương trình chứa tham số: >> poly2sym([1 -5]) ans = x^3 + 3*x - 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: 2x1 + 3x + 3x = 3x1 + 6x − 4x = 19 x + 2x + x = 2 Thực chất hệ phương trình đưa phép toán ma trận sau: 3 x1 −4 ×x = 19 x3 A.X = B Như việc giải hệ PT tuyến tính thực chất thực phép tốn ma trận, ta có: X = B = A −1.B A Để giải hệ phương trình ta cần thực qua bước sau: - Lập ma trận A, B; - Lấy ma trận nghịch đảo A-1 - Nghiệm X = A −1.B Chương trình giải hệ phương trình đại số viết: % % A % B % C % X Giai he phuong trinh dai so tuyen tinh Nhap ma tran A = [2 4;3 -4;1 3]; Nhap ma tran B = [9;19;2]; lay ma tran A nghich dao = inv(A); Nghiem = C*B Lưu chương trình cho chạy, ta thu 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) Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 194 Để 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 x + xy + y = x − 4x + = Gõ lệnh: >> [x,y] = solve('x^2 + x*y + y = 3','x^2 - 4*x + = 0')↵ ta thu cặp nghiệm x= [ 1] [ 3] y= [ 1] [ -3/2] Ví dụ 2: Giải hệ phương trình: sin x + y + log z = 3x + 2y + z = x + y + x = >> [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ự trên, ví dụ cần giải hệ: au + v = u − v = Thực lệnh: >> [u,v] = solve('a*u^2 + v^2 = 0','u - v = 1')↵ta 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 + = 0, ta thực lệnh: >> x = dsolve('Dx+a*x+1=0')↵ Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 195 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 + = 0, với x(0) = 0, ta thực 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: dx dt = y dy = − x dt >>[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 Matlab: Ví dụ: Cho hệ phường trình vi phân: y '1 = y y3 với điều kiện đầu: y1(0) = 0; y1(0) = 1; y3(0) = y '2 = − y1y3 y ' = −0,5y y 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] >>options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]); >>[t,y] = ode45('rigid',[0 12],[0 1],options); >>plot(t,y(:,1),'-',t,y(:,2),'-.',t,y(:,3),'.') 1.5 0.5 -0.5 -1 Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên -1.5 10 12 196 6.3 L Phần 4: MỘT SỐ PHÉP BIẾN ĐỔI TRONG MATLAB 4.1 Tính tố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 đạo hàm tự 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 biến symbolic v diff(S,n) : Đạo hàm cấp n biểu thức S, n 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 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 biến u v >> y2u = diff(y,u,2) % đạo hàm cấp theo u >> y3u = diff(y,v,3) % đạo hàm cấp theo v y2u = 2*v y3u = -6*u 4.1.2.Tính tích phân( int): int(S): Tíchphân khơng xác định biển thức symbolic S với biến tự mặc định Muốn biết biến mặc định ta dùng lệnh fìndsym int(S,v): Tíchphân khơng xác định biểu thức symbolic S với biến tíchphân v int(S,a,b): Tíchphân khơng xác định biểu thức symbolic S với biến tự cận lấy tíchphân từ [a,b] int(S,v,a,b): Tíchphân khơng xác định biểu thức symbolic S với biến tíchphân v cận lấy tíchphâ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) Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 197 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íchphân I = ∫ ∞ e −( sx ) dx −∞ >>Syms x s real >>f = exp(-(s*x)^2); >>I = int(f,x,-inf,inf)% inf vơ lớn I= Signum(s)/s*pi^(1/2) Hàm signum hàm sign (hàm dấu), nghĩa sign(s) cho ta: sign(s) = s>0; sign(s) = s =0; sign(s) = -1 s>syms x a t h >>limit(sin(x)/x) ans = >>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 dãy số biến symbolic(symsum): symsum(S): Tổng biểu thức symbolic theo biến symbolic k , k xác định lệnh findsym từ → k -1 symsum(S,v): Tổng biểu thức symbolic S theo biến symbolic v,v xác định từ → k - Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 198 symsum(S,a,b), symsum(S,v,a,b): Tổng biểu thức symbolic S theo symbolic v, v 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 dãy S1 = + 1 + + … 2 S2 = + x + x2 +… >>syms x k >>s1 = symsum(1/k^2,1,inf) %inf vô 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 f f hàm symbolic với biến x finverse(f,u): Tìm hàm ngược f f hàm symbolic với 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) biểu thức, hàm khai triển symbolic f v biến độc lập biểu thức v xâu (string) biến symbolic taylor(f,n,v,a): Khai triển Taylor biểu thức hay hàm symbolic f quanh điểm a Đối số giá trị số, hàm symbolic hay xâu…Nếu khơng cho gía trị n Matlab n = Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 199 Vi dụ: Khai triển Taylor hàm f = exsin(x) quanh điểm x0 = (Nếu x0 = ta có khai triển Maclaurin) >>syms x >> f = exp(x*sin(x)); >>t = taylor(f,4,2) % khai triển số hạng khác o xung quanh điểm x0 = 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á biểu thức: a) Gom số hạng, biến(collect): collect(S): S đa thức, gom số hạng chứa biến x collect(S,v): S đa thức, gom 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ântích biểu thức thành thừa số (factor): factor(X): Phântí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) Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 200 (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ântích đa thức 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ố mẫu số(numden): Ví dụ: >>syms x y a b >>A= (4-x)/5; >>[n,d] = numden(A) n= 4-x d= >>[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 đ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 = >>simplify(exp(c*log(sqrt(a+b)))) ans = (a+b)^(1/2*c) Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 201 >>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 hàm vô hướng f với biến độc lập f cho ta hàm qua phép biến đổi nàylà w F = fourier(f,v): F hàm biến v thay biến w F = fourier(f,u,v): f hàm u F hàm v chúng thay biến x 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 hàm mục tiêu vô hướng F với biến độc lập w phép biến đổi ngược hàm x f = ifourier(F,u): f hàm củabiến u thay biến x f = ifourier(F,v,u): F hàm v f hàm u chúng thay biến w 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) Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 202 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 3.2 Biến đổi laplace a) Biến đổi Laplace thuận L = laplace(F): Biến đổi Laplace hàm F với biến độc lập t cho ta hàm s L = laplace(F,t): L hàm t thay biến s L = laplace(F,w,z): L hàm z F hàm w, thay biến symbolic s 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 hàm symbolic L với biến độc lập s Nó cho ta hàm t F = ilaplace(L,y): F hàm y thay biến t F = ilaplace(L,y,x): F hàm x L hàm y, thay biến symbolic t 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) Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 203 >>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 Matlab 4.4.1.Vẽ đường a) Đường không gia chiều (ezplot) ezplot(f): Vẽ hàm f = f(x) với miền -2 syms x -50 >>ezplot(x^3) -100 -150 >>grid -200 -250 b) Vẽ đường không gia chiều -6 -4 -2 x (ezplot3) ezplot3(x,y,z): Vẽ hàm x = x(t), y = y(t), z = z(t) với miền mặc định là: < t < ezplot3(x,y,z,[tmin,tmax]): z = z(t) khoảng giá Vẽ hàm x = x(t), y = y(t), trị tmin < t < tmax x = sin(t), y = cos(t), z = t Ví dụ: 20 >>ezplot3(sin(t), cos(t), t,[0,6*pi]) z >>syms t; 10 1 y -1 -1 x Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 204 ... tìm thơng số trạng thái khác mạch Chương trình viết Matlab sau: % Chuong trinh phan tich mach o che xac lap disp('Hay nhap cac thong so cua mach dien, neu thong so nao khong co thi nhap bang khong')... gian làm việc Matlab (Matlab Workspace) Không gian làm việc Matlab chứa tập biến (các mảng đặt tên) mà bạn thao tác từ dòng lệnh Matlab Có thể sử dụng lệnh Who whos để xem nội dung workspace... dien hold on Ur=R*I plot(t,Ur)%Ve dac tinh tan dien ap tren dien tro Trường Đại học Kỹ thuật Công nghiệp - Đại học Thái Nguyên 184 hold on UL=L.*t.*I plot(t,UL)%Ve dac tinh tan dien ap tren dien