Lũy thừa Khia căn Ký b Các phép toán về số phức như sau: Khi một số S được biểu thị dưới dạng phức như cho trong bảng sau: Phần thực P = realS Môdul Sm = absS Phần ảo Q = imagS Góc pha
Trang 1LỜI NÓI ĐẦU
mạch lạc với việc áp dụng nhiều thuật toán phong phú, đặc biệt như chính tên của nó – “MATric LABoratory’’, thuật toán ma trận được coi là hạt nhân quan trọng trong lập trình MATLAB Cú pháp ngôn ngữ của chương trình MATLAB được thiết lập tinh tế đén mức người sử dụng không có cảm giác là đang tiếp xúc với các phép tính phức tạp của ma trận Ma trận được áp dụng rộng rãi trong các bài toán kĩ thuật phức tạp như hệ thống điện lực, tự động hóa,…Vì vậy MAYLAB chính là phần mềm hết súc thuận tiện và hiệu quả đối với các lĩnh vực này
Là 1 hệ thống mở,MATLAB kết hợp rất nhiều phương pháp tính mà có thể
áp dụng thuận tiện cho bất kì người sử dụng nào MATLAB có đặc điểm linh hoạt và dễ thích nghi, vì vậy cho dù là người mới bắt đầu hay là 1 chuyên gia sành sỏi, vẫn có thể sử dụng MATLAB một cách thoải mái và cuốn hút MATLAB rất ưu ái với người sử dụng,bạn có thể tạo ra chương trình chuyên môn của mình mà MATLAB sẵn sang đáp ứng Matlab cho phép tiếp cận và áp dụng dễ dàng các hàm có sẵn để giải các bài toán cần thiết và đồng thời có thể sang tạo ra các m.file mà khi được lưu giữ với thủ tục phù hợp, matlab coi như
là hàm của chính hệ thống, điều đó cho phép mở rộng khả năng vô hạn của Matlab Đó cũng chính là ưu điểm nổi bật của Matlab mà không chương trình nào có được
Em xin trân thành cảm thầy Trần Quang Khánh đã giúp chúng em tiếp cận
MATLAB để trang bị thêm cho mình một hành trang kiến thức trước khi bước vào công việc của mình sau này
Sinh viên: Đỗ Thị Lan Anh
Trang 2Chương trình MATLAB nó cho phép vẽ tất cả các đồ thị với các dạng khác nhau trong không gian 2D, 3D
Lũy thừa
Khia căn
Ký
b) Các phép toán về số phức như sau:
Khi một số S được biểu thị dưới dạng phức như cho trong bảng sau:
Phần thực P = real(S) Môdul Sm = abs(S) Phần ảo Q = imag(S) Góc pha Theta = angle(S) Liên hợp phức Slh = conj(S)
c) Các biến và hàm trong MATLAB
Các hàm toán học
abs(x) Giá trị tuyệt đối rem(x,y) Số dư của phép chia x/y exp(x) Hàm mũ cơ số e round(x) Làm tròn số
imag(x) Phần ảo Ceil(x) Làm tròn lên
real(x) Phần thực floor(x) Làm tròn xuống
Phase(x) Góc pha của số phức sum(v) Tổng các phần tử vector log(x) Logarit tự nhiên prod(v) Tích các phần tử vector log10(x) Logarit cơ số 10 min(v) Phần tử vector bé nhất sqtr(x) Căn bậc hai max)v) Phần tử vector lớn nhất conv(x,x) Tích chập x của chính nó mean(v) Giá trị trung bình cộng Các hàm lượng giác
Trang 3Sin(x) Hàm sin atan(x) Hàm artg ±900
Cos(x) Hàm cosin atan2(x,y) Hàm artg ±1800
Tan(x) Hàm tg sinc(x) Hàm sin(Пx)/(Пx)
Asin(x) Hàm arsin acos(x) Hàm arcos
Sinh(x) Hàm sin hyperbol asinh(x) Hàm arsin hyperbol Cosh(x) Hàm cosin hyperbol acosh(x) Hàm arccos yperbol
1.3 Văn bản trong MATLAB
Để xuất chuỗi ký tự nào đó ra màn hình thì ta sử dụng lệnh như sau:
b) cos(x)+sin(y); voi x=5.3 , y=1.2pi;
c) sin2(x)-cos1/2(y); voi x= 1.5*pi; y = 6.4;
d) e^2.5+tg(x); voi x=1.2*pi;
Trang 4>> x=5.9;
>> fprintf('y=%7.2e',((cos(22^3+x^2)^2)-log(13)+24)/(sqrt(43^2+2*x^2))) y=4.90e-001
>> x=7.33;
>> fprintf('y=%7.2e',((cos(22^3+x^2)^2)-log(13)+24)/(sqrt(43^2+2*x^2))) y=4.85e-001
>> x=6.77;
>> fprintf('y=%7.2e',((cos(22^3+x^2)^2)-log(13)+24)/(sqrt(43^2+2*x^2))) y=5.09e-001
>> x=8.79;
>> fprintf('y=%7.2e',((cos(22^3+x^2)^2)-log(13)+24)/(sqrt(43^2+2*x^2))) y=5.01e-001
>> x=10.3;
>> fprintf('y=%7.2e',((cos(22^3+x^2)^2)-log(13)+24)/(sqrt(43^2+2*x^2))) y=4.91e-001
Nhận xét: Với việc sử dụng phần mềm MATLAB cho việc giải bài toán rất đơn
giản, thuận lợi và nhanh chóng cho ra kết quả, đồng thời nó cũng không yêu cầu quá cao về trình độ của người sử nó
Trang 5Bài 1.2 Một mạch điện xoay chiều có các đại lượng điện áp U=Ur +jUx (V) và giá trị tổng trở Z=R+jX (om);(dữ liệu lấy trong bảng theo chữ cái họ tên và tên đệm người giải)
a) Thực hiện phép các thao tác cần thiết để hiển thị tên người giải trên màn hình
b) Sử dụng các lệnh Matlab để xác định giá trị dòng điện chạy trong mạch c) Biểu thị kết quả tính toán dòng điện dưới dạng Imjα, với Im là modul và α là
a) >> disp('Do Lan Anh')
Bài 1.3 Điện áp định mức của mạng điện là U kV, điện thành phần trở tác dụng
là Ω, công suất truyền tải trên đường dây là S=P+j*Q Hãy áp dụng các lệnh
Matlab để xác định tổn thất điện năng và áp dụng lệnh fprintf để biểu thị kết
quả trên màn hình với n chữ số sau dấu phẩy tĩnh/động(t/đ), biết thời gian tổn thất công suất cực đại trong năm là τ h Các dữ liệu tính toán lấy trong bảng 1.2 với họ tên người giải
Trang 6Bài 1.4 Thực hiện phép tính toán (dữ liệu lấy theo số thứ tự ghi trong đầu bài
của người giải theo bảng 1.3):
a)Số Z1 cho dưới dạng đại số(hoặc dạng mũ), hay chuyển về dạng mũ(hoặc dạng đại số), kiểm tra và ghi lại kết quả
b) Số Z2 cho dưới dạng đại số(hoặc dạng mũ), hay chuyển về dạng mũ(hoặc dạng đại số), kiểm tra và ghi lại kết quả
c) Hãy tính giá trị của biểu thức và ghi lại kết quả dưới dạng mũ, đối
số(argument) biểu thị trong khoảng từ (-pi:pi):
Trang 7sm theta S1h
1.4829 0.2359 1.4418 - 0.3465i
Trang 8Chương 2: Lập trình trên MATLAB
I Cơ sở lý thuyết
2.1) Thủ tục xây dựng hàm
Hàm được bắt đầu bằng từ function , sau đó lần lượt là tham số đầu ra, dấu =
và tên hàm
function[tên tham số đầu ra] = tên hàm(tên biến đầu vào)
Các biến chỉ có tác dụng trong nội tại hàm khai báo Tên của các biến được cách nhau bởi dấu phẩy Phần giải thích được ghi sau dấu % Hàm này được lưu lại
vào trong m.file khi giải bài toán mà thiet lập nó sẵn tra chỉ cần gọi tên hàm ra
a=input('nhap gia tri a = ');
b=input('nhap gia tri b = ');
Khi chạy chương trình lần lượt thì dòng nhắc xuất hiện như sau:
nhap gia tri a = nhap gia tri b = lúc đó ta chỉ cần gõ dữ liệu vào vị trí tương ứng
b) Lấy dữ liệu từ đồ thị sử dụng lệnh : ginput(n)
c) Xuất dữ liệu ta sử dụng lệnh (fprintf('S=%v.uf d\n',F)
Trang 10Tên của hàm đầu tiên cần phải đặt trùng với tên tệp hàm và được coi là hàm chính Các hàm còn lại gọi là hàm con Chỉ hàm chính mới có thể được gọi ra
để tính toán
function[…]=hamchinh(…) a=…;
b=…;
function[…]=hamcon(…)
a=…;
b=…;
Bài 2.1 a) Hãy lập trình giải bài toán 1.3, so sánh kết qảu với kết quả thông
thường và cho nhận xét về hai cách:
Nhận xét: Với phương pháp này ta có thể áp dụng cho nhiều bài toán với nhiều
số liệu khác nhau mà không cần làm lại từ đầu
b) Hãy cho ví dụ với các số liệu của mạng điện thực tế và dùng hàm để xây dựng để tính tổn thất điện năng trong mạch điện đã chọn
các hàm inline objects được cất giữ trong Workplace, để tính giá trị của hàm ta chỉ việc gọi tên hàm và gán giá trị của biến x
Bài 2.2 Hãy xây dựng hàm xác định điện trở của mạch gồm n nhánh song song
và áp dụng hàm vừa xây dựng để tính điện trở tương đương của mạch gồm 5 nhánh song song với các điện trở lấy theo chữ cái đầu của họ và tên người giải trong bảng 2.1:với
Trang 11R=input('Nhap gia tri dien tro: ');
Nhap so mach nhanh song song: 5
Nhap gia tri dien tro: 4.78
Nhap gia tri dien tro: 5.35
Nhap gia tri dien tro: 6.44
Nhap gia tri dien tro: 4.56
Nhap gia tri dien tro: 6.74
Dien tro tuong duong
Rtd =
1.4641
Bài 2.3 Hãy hiển thị hàm f1(x), cho trong bảng 2.2 với chữ cái đầu của tên
người giải, xác định giá trị của hàm này với x=0.3
Bài 2.4 Biểu thị hàm véc tơ F=[f2 f3], cho trong bảng 2.2 với chữ cái đầu của
họ và tên người giải, dưới dạng inline objects và xác định giá trị của hàm ứng với x1 và x2
>> f=inline('[x1^4+x2^3-2 2*x1^2*x2^2-x1*x2 x2^3-1
6*x1^2*x2-x1*x2+log(x2)]','x1','x2')
f =
Inline function:
Trang 13Chương 3: Ma trận trên MATLAB
+ Lệnh linspace(a,b) cho phép thiết lập vector dòng với 100 gía trị cách đều
trong khoảng giới hạn [a, b]
+ logspace(a ,b,n) cho phép thiết lập vector dòng với n giá trị cách đều nhau
trong tọa độ logarit giữa các deccades 10a và 10b
+ logspace(a ,b) cho phép thiết lập vector dòng với 50 giá trị cách đều nhau
trong tọa độ logarit giữa các deccades 10a và 10b
3.2) Thiết lập ma trận từ vector cho trước
Giả sử cho trước một vector cột v, ta có thể nhân đôi số phần tử của vector tạo
ra một ma trận
Nhập lệnh như sau: U=v(:,[1 1])
Cho một vector dòng : U=v([1 1],:)
Nhân vector lên nhiều lần ta làm như sau: U=v(:,ones(n)); U=v(ones(n),:)
3.3) Thiết lập ma trận từ ma trận cho trước
+ repmat(A,m,n) - ma trận thiết lập là bản sao từ ma trận gốc
+ reshape(A,m,n) - định dạng lại ma trận thiết lập
3.4) Gọi lại các phần tử của ma trận
Muốn gọi lại phần tử nào đó của ma trận A ta nhập một số lệnh như sau: A(x,y)
A(j), A(1:n,k), A(x,:), A(:,y)…
Trang 14II Bài thực hành
Bài 3.1 a) Hãy thiết lập một ma trận A(coi là ma trận gốc) với các phần tử bất
kỳ và với số dòng bằng số kí tự của họ và số cột bằng số kí tự của tên người giải
b) Ma trận B có số cột gấp đôi số cột của ma trận gốc;
c) Hãy thiết lập ma trận C gồm các phần tử từ dòng thứ 1 dến dòng thứ 2 và từ cột thứ 1 dến cột thứ 3 của ma trận gốc
d)Hãy thiết lập ma trận D cùng kích thước như ma trận A
e) Hãy gọi lại các phần tử của ma trận gốc:
Trang 17Chương 4: Sử lý số liệu
I Cơ sở lý thuyết
4.1) Xác định các phần tử cực đại và cực tiểu của mảng số liệu
+ max(A) – nếu A là vector, trả lại phần tử lớn nhất của A; hoặc A là ma trận
thì trả lại vector dòng chứa phần tử lớn nhất
+ min(A) - nếu A là vector, trả lại phần tử nhỏ nhất của A; hoặc A là ma trận
thì trả lại vector dòng chứa phần tử nhỏ nhất
+ max(A,B) – trả lại ma trận cùng kích thước như A và B với các phần tử tương
ứng lớn nhất của các ma trận này
+ [C,I]=max(A) – trả lại giá trị cực đại của ma trận và chỉ số I của các phần tử
này
4.2) Xác định giá trị trung bình, giá trị trung gian và độ lệch chuẩn
+ Mean(A) - nếu A là vector, trả lại giá trị trung bình số học của các phần tử
của mảng Nếu A là ma trận, trả lại vector dòng có chứa các giá trị trung bình của các phần tử của mỗi cột
+ median(A) – trả lại giá trị trung gian
+ std(X) – trả lại độ lệch chuẩn của các phần tử mảng
+ std(X,flag) – trả lại giá trị như lệnh std(X)
4.3) Sắp xếp các phần tử của mảng số liệu
+ Sort(A) - A là vector thì sắp xếp theo trình tự từ giá trị nhỏ nhất đến lớn + [B, INDEX] =sort(A)
+ Sort(A,d) – trả lại ma trận sắp xếp theo cột(d=1), theo hàng phụ thuộc vào (d)
4.4) Xác định hệ số tương quan và phương sai
+ Hệ số tương quan:
Lệnh corrcoef(x,y) – tra lại ma trạn hệ số tương quan, các dòng là két quả của
các quan sát, các cột là kết qủa của các biến
+ Phương sai
Lệnh cov(x) – trả lại phương sai
4.5) Hàm tương quan hồi quy
a) hàm hồi quy đơn
Trang 18II Bài thực hành
Bài 4.1 Cho ma trận A như bài toán 3.1, hãy xác định :
a) Giá trị cực đại của mỗi cột (C1);
b) Giá trị cực tiểu của mỗi cột (C2);
c) Giá trị cực đại của mỗi dòng (C3);
d) Giá trị cực tiểu của mỗi dòng (C4);
e) Giá trị cực đại của cột và chỉ số của chúng (C1, I);
Trang 19Bài 4.2 Số liệu thống kê về các đại lượng x và y cho trong bảng 4.1, lấy theo
chữ cái đầu của tên người giải:
1) Hãy sử dụng các hàm trong Matlab để xác định các đại lượng:
1.1) giá trị trung bình của các đại lượng x1,x2 và y: Xtb1,Xtb2,Y_tb;
1.2) Phương sai của các đại lượng Cx1, Cx2, Cy:
1.3) Độ lệch chuẩn của các đại lượng x1, x2 và y
1.4 ) Độ lệch trung bình bình phương của các đại lượng x1, x2 và y
1.5) Hệ số tương quan của các giá trị quan sát giữa các đại lượng Rx1_y,
Rx2_y:
2) Hãy xây dựng hàm hồi quy thực nghiemj và đánh giá sai số của các hàm: 2.1) Bậc hai: y=f(x1); y=f(x2)
2.2) Hàm tuyến tính: y=f(x1); y=f(x2)
2.3) Hàm hội quy bội: y=f(x1,x2)
Trang 21Columns 12 through 22
10.2400 14.2300 19.9400 24.5300 29.7300 34.9500 38.9600 41.1600 45.5400 10.3600 13.3400
Columns 23 through 30
15.8300 29.5600 35.0700 41.1800 44.0600 48.7500 52.0500 58.0300
Bài 4.3 Hãy xác định các giá trị hàm nội suy của ma trận y ứng với các giá trị
của x(dữ liệu lấy theo chữ cái đầu của tên người giải trong bảng 4.2):
Xác định giá trị nội suy
>> x=[2:7]';
y=[x,x.^1.5,x.^2.8,x.^4];
xi=[2.5,3.5,6.2];
Trang 22Bai 4.4 Xây dựng hàm y trong khoảng biến thiên x(theo bảng 4.2) và các hàm
nội suy: bậc thang, tuyến tính hóa, lập phương mô phỏng và hàm lập phương và đánh giá sai số so với hàm gốc
'tuyen tinh hoa',
'lap phuong mo phong',
Trang 24xlabel –nhãn trục x; ylabel – nhãn trục y; title – đặt tên tiêu đề cho đồ thị
5.2) Đồ thị với trục tọa độ loga và bán loga
Các lệnh: loglog(x,y) – chia hai trục tọa độ khác nhau
semilogx(x,y) – chia không đều cho trục x
semilogy(x,y) – chia không đều cho trục y
5.3) Vẽ đồ thị trong tọa độ cực và đồ thị bậc thang
a) Lệnh tạo lưới bề mặt và tạo lưới biên dạng
Lệnh meshgrid – tạo lưới bề mặt
Thực hiện như sau: [X,Y]=meshgrid(u,v) – X,Y là các ma trận ; u,v là các
Bài 5.1 Vẽ đồ thị hàm số y trong khoảng biến thiên x=a dến b bới bước tính
h(lấy theo chữ cái đầu của tên người giải trong bảng 5.1)bằng lệnh:
a)plot;
b)fplot;
c) ezplot;
d) Vẽ đồ thị với kiểu đường nét liền đỏ, điểm dấu hoa thị màu đen:
y=x.^2/(1+0.25*sqrt(x)); a=1.1; b=4,0; h=0.1; (chấm chấm/ đen); điểm(Δ) a)
>> x=1.1:0.1:4;
y=x.^2/(1+0.25*sqrt(x)) ;
plot(x,y,'r-',x,y,'+')
Trang 25grid;
xlabel('truc x'); ylabel('truc y');
title(' Ve ham so y=f(x) voi lenh plot')
Bài 5.2 Vẽ đồ thị hàm số y trong khoảng biến thiên của x (xem dữ liệu bảng 5.2
Dữ liệu được lấy ứng với chữ cái đầu theo họ của người giải):
x=0:100;
y=50+exp(3*x);
a) Với các trục tọa độ chia theo tỷ lệ log cơ số 10;
b) Với các trục x chia theo tỷ lệ log cơ số 10;
c) Với các trục y chia theo tỷ lệ log cơ số 10;
Giải:
a)
>> x=0:2*pi;
Trang 27c)
semilogx(x,y),grid
xlabel('x');ylabel('y,log10')
Trang 28Bài 5.3 Xây dựng đồ thị hàm d trong khoảng biến thiên của phi(xem dữ liệu
bảng 5.1) trong hệ tọa độ cực( dữ liệu được lấy ứng với chữ cái đầu theo tên đệm của người giải)
title('Do thi d trong toa do cuc')
Bài 5.4 Vẽ đồ thị của hàm Z trong khoảng biến thiên x và y (xem dữ liệu bảng
5.2) với bề mặt đặc; bề mặt các đường mức; bề mặt trong suốt và bề mặt thảng đứng (thác nước) lần lượt trên 4 phần của một trang giấy.( Dữ liệu được lấy ứng với chữ cái đầu theo tên người giải)
Z=e^(x^2-y^2); x=-2:2; y=-2:2;
Giải:
>> x=2:0.1:5;
y=2:0.1:5;
Trang 30Chương 6 Giải phương trình và tính toán tối ưu
Trang 34Phần II: Thực hành Matlab ứng dụng trong giải bài toán về chuyên ngành điện
Chương 9 : Giải mạch điện
Bài tập 9.1
Cho mạch điện một chiều (hình vẽ) với suất điện động Ei và các điện trở:
Ri (Ω) cho trong bảng 9.1.(dữ liệu lấy theo chữ cái đầu của tên người giải) Hãy
áp dụng chương trình Matlab xác định các giá trị dòng điện chạy trong mạch
I 2
R2
E i
I i
Ri
E n
In
Rn
B A
Số liệu bảng 9.1 như sau:
R1=5.3 Ω; R2=6.4 Ω; R3=8.3 Ω; R4=0 Ω; R5=0 Ω;
E1=120 V; E2=117 V; E3=0 V ; E4=0 V ; E5=0 V;
Chương trình Matlab như sau:
>> disp('giai mach dien theo phuong phap dong dien nhanh');
R=[5.3,6.4,8.3,0,0];
E=[120,117,0,0,0];
R(5)];
Hoặc giải theo phương pháp dòng điện vòng:
Chương trình Matlab như sau:
>> disp('giai mach dien theo phuong phap dong dien vong');
R=[5.3,6.4,8.3,0,0];
Trang 35E=[120,117,0,0,0];
R(4),R(4)+R(5)];
Hoặc là giải theo phương pháp dòng điện thế nút:
Chương trình Matlab như sau:
>> disp('giai mach dien theo phuong phap dong dien the nut');
Nhận xét: Ta thấy kết quả của 3 phương pháp giải là như nhau, nhưng phương
pháp dòng điện thế nút sử dụng ít lệnh nhất Đó là ưu điểm của phương pháp so với 2 phương pháp dong nhánh và dòng vòng
Bài tập 9.2
Giải bài toán ví dụ 9.1 với các tham số phức bảng 9.2
Số liệu như sau:
Z1=9+j*6.9 Ω; Z2=5.2+j*7.5 Ω ; Z3=6.2+j*8.4 Ω ; Z4=5.4+j*6.0 Ω ; Z5=0 Ω; E1=125+j*109 V; E2=119+j*103 V; E3=120+j*110 V; E4=0 V; E5=0 V;
Trang 36Chương trình matlab như sau:
>> disp('giai mach dien theo phuong phap dong dien tham so phuc');
Hãy xác định dòng điện và công suất của mạch điện(hình vẽ) biết điện áp
u(i)=Um*cos(ωt+thetau) và phụ tải Z=Zmthetaz (Dữ liệu trong bảng 9.2 theo chữ cái của họ người giải) Vẽ đồ thị các đại lượng
Số liệu bảng 9.2 như sau:
Um=120V; thetau=450; Zm=5.32Ω; thetaz=1050;
Chương trình Matlab như sau:
>> disp('Xac dinh dong dien va cong suat Ve do thi cac dai luong');
Trang 38Bài tập 9.4
Nguồn điện xoay chiều(hình vẽ) có điện áp u(t)=Um*sin(ωt), tần số 50Hz được nối với điện trở R và cuộn dây L, Điện trở sun Rsh (dữ liệu bảng 9.2 theo chữ cái của tên đệm của người giải) Hãy xác định giá trị hiệu dụng của điện áp URL, các thành phần UR, UL Vẽ đồ thị các đại lượng này
u
R sh
sh
u RL u
i
Số liệu bảng 9.2 như sau:
R = 5.17Ω; L = 20*10^-3H; Rsh = 0.35Ω; Ish=1.2 A;
Chương trình Matlab như sau:
>> disp('xac ding gia tri hieu dung cua dien ap URL Cac thanh phan Ur va UL');
Trang 39Kết quả là:
Xac dinh gia tri hieu dung cua dien ap URL Cac thanh phan Ur va UL
UR,V UL,V URL,V
Chương trình Matlab như sau:
>> disp('Gia tri hieu dung dien ap va dong dien chay trong mach');
Um=220;
R=18.7;
Trang 40Gia tri hieu dung dien ap va dong dien chay trong mach
I,A Ur,V Uc,V
4.9239 92.0773 125.3865