1. Trang chủ
  2. » Luận Văn - Báo Cáo

BÀI GIẢNG MATLAB PRESENT BY NGUYỄN TRUNG NHÂN

12 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Bài Giảng Matlab
Tác giả Nguyễn Trung Nhân
Định dạng
Số trang 12
Dung lượng 274,35 KB

Nội dung

Kỹ Thuật - Công Nghệ - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin Bài giảng Matlab Present by Nguyễn Trung Nhân Chương 4: VẼ ĐỒ THỊ TRONG MATLAB 4.1. Đồ thị 2 chiều 4.1.1. Hàm plot Cú pháp: Plot (x, y) Nếy x, y là 2 số thực, hàm plot sẽ vẽ một điểm trên mặt Oxy phẳng có tọa độ là (x,y) Nếu x, y là 2 vectơ, hàm plot vẽ một đường nối tập hợp các điểm có tọa độ (xi, yi) Ví dụ 4.1: Vẽ đồ thị điện áp v=2202 cos(100πt) trong 5 chu kỳ. Ta có thể tạo một file hoặc đánh trực tiếp các lệnh từ cửa sổ Command Window Tu ham so da cho tya xac dinh duoc f=50 Hz f=50; T=1f; t=0:T1000:5T; Tao buoc ve cho ham so U=220sqrt(2)sin(2pift); plot(t,U) Kết quả: 4.1.2. Định dạng cho đồ thị 1. Đặt tên trục Cú pháp: xlabel(‘text’) Đặt tên cho trục x Cú pháp: ylabel(‘text’) Đặt tên cho trục y Cú pháp: title(‘text’) Đặt tên cho đồ thị Ví dụ 4.2: Với ví dụ 4.1; ta gắng tên cho các trục và đồ thị như sau: Tu ham so da cho tya xac dinh duoc f=50 Hz f=50; T=1f; Bài giảng Matlab Present by Nguyễn Trung Nhân t=0:T1000:5T; Tao buoc ve cho ham so U=220sqrt(2)sin(2pift); plot(t,U) xlabel(''''Thoi gian, s'''') ylabel(''''Dien ap, V'''') title(''''Dang song dien ap xoay chieu tan so 50 Hz'''') Kết quả: 2. Đặt giới hạn cho 2 trục Cú pháp: axis(xmin xmax ymin ymax) Trục x và y sẽ được hiển thị các giá trị từ xmin đến xmax, ymin đến ymax. Muốn thay đổi các điểm vạch chia trên 2 trục Ox và Oy, ta sử dụng hàm: set(gca,’Xtick’,a:Δ:b) set(gca,’Ytick’,a:Δ:b) Trục x hoặc y sẽ được chia thành các khoảng giữa 2 giá trị a và b với số gia là Δ Hàm grid sẽ được sử dụng để tạo lưới hoặc bỏ lưới bên trong nền đồ thị grid on Tạo lưới grid off Bỏ lưới Ví dụ 4.3: Với ví dụ 4.2; định dạng thêm độ chia trục và lưới như sau Tu ham so da cho tya xac dinh duoc f=50 Hz f=50; T=1f; t=0:T1000:5T; Tao buoc ve cho ham so U=220sqrt(2)sin(2pift); Bài giảng Matlab Present by Nguyễn Trung Nhân plot(t,U) xlabel(''''Thoi gian, s'''') ylabel(''''Dien ap, V'''') title(''''Dang song dien ap xoay chieu tan so 50 Hz'''') axis(0 0.1 -400 400); set(gca,''''xtick'''',0:0.02:0.1); set(gca,''''yTick'''',-400:50:400); grid on Kết quả 3. Đặt chú thích cho đồ thị Cú pháp: text(x,y,''''string'''') Đặt đoạn text tại điểm có toạ độ (x,y) Cú pháp: gtext(''''string'''') Đặt đoạn text tại một điểm tuỳ ý trên đồ thị bằng cách click chuột trái chuột. Ví dụ 4.4 :Đặt chú thích cho đồ thị của ví dụ 4.3 Tu ham so da cho tya xac dinh duoc f=50 Hz f=50; T=1f; t=0:T1000:5T; Tao buoc ve cho ham so U=220sqrt(2)sin(2pift); plot(t,U) xlabel(''''Thoi gian, s'''') ylabel(''''Dien ap, V'''') title(''''Dang song dien ap xoay chieu tan so 50 Hz'''') axis(0 0.1 -400 400); set(gca,''''xtick'''',0:0.02:0.1); set(gca,''''yTick'''',-400:50:400); grid on Bài giảng Matlab Present by Nguyễn Trung Nhân text(0.04,325,''''u=220sqrt(2)sin(314t)'''') gtext(''''u=220sqrt(2)sin(314t)'''') 4.1.3. Vẽ nhiều đồ thị Để vẽ nhiều đồ thị, chúng ta sử dụng hàm plot với cú pháp sau: Plot(t,x1 ,t,x2,t,x3,...,t,xn) Matlab sẽ vẽ các đường xi theo t trên cùng một một hệ trục tọa độ. Chúng ta cũng có thể sử dụng lệnh hold để lưu giữ đồ thị hiện hữu, khi chúng ta thực hiện lệnh vẽ tiế p theo thì đồ thị mới sẽ được thêm vào đồ thị cũ. Ví dụ 4.5:Sử dụng hàm plot vẽ đồ thị hệ thống điện áp 3 pha đối xứng. Cách 1: không dùng lệnh hold f=50; T=1f; t=0:T1000:3T; Tao buoc ve cho ham so va=220sqrt(2)sin(2pift); pha a co goc phan ban dau bang 0 vb=220sqrt(2)sin(2pift+120pi180); pha b vc=220sqrt(2)sin(2pift-120pi180); pha c plot(t,va,t,vb,t,vc); xlabel(''''Thoi gian, s'''') ylabel(''''Dien ap, V'''') title(''''Dang song dien ap xoay chieu ba pha tan so 50 Hz'''') axis(0 0.06 -400 400); set(gca,''''xtick'''',0:0.02:0.06); set(gca,''''yTick'''',-400:50:400); grid on Bài giảng Matlab Present by Nguyễn Trung Nhân text(0.005,325,''''Va''''); text(0.01,325,''''Vc''''); text(0.017,325,''''Vb''''); Cách 2: dùng lệnh hold f=50; T=1f; t=0:T1000:3T; Tao buoc ve cho ham so va=220sqrt(2)sin(2pift); pha a co goc phan ban dau bang 0 plot(t,va); hold on -------------- ve pha b vb=220sqrt(2)sin(2pift+120pi180); plot(t,vb); hold on --------------- ve pha c vc=220sqrt(2)sin(2pift-120pi180); plot(t,vc); hold on xlabel(''''Thoi gian, s'''') ylabel(''''Dien ap, V'''') title(''''Dang song dien ap xoay chieu ba pha tan so 50 Hz'''') axis(0 0.06 -400 400); set(gca,''''xtick'''',0:0.02:0.06); set(gca,''''yTick'''',-400:50:400); grid on text(0.005,325,''''Va''''); text(0.01,325,''''Vc''''); text(0.017,325,''''Vb''''); Kết quả: Ngoài ra để vẽ nhiều đồ thị trên cùng một cửa sổ với các hệ trục tọa độ khác nhau chúng ta sử dụng hàm subplot với cú pháp như sau: Bài giảng Matlab Present by Nguyễn Trung Nhân plot(m,n,k) Hàm subplot sẽ chia cữa sổ hình vẽ ra thành m×n khu vực (ô nhỏ - m hàng, n cột) và đồ thị sẽ được vẽ vào ô thứ k. Ví dụ 4.6. Vẽ đồ thị của điện áp, dòng điện, công suất toàn phần, công suất tác dụng , công suất phản kháng của một đoạn mạch xoay chiều trên cùng một màn hình Chuong trinh tinh toan va ve dang song dien ap, dong dien, cong suat theo thoi gian Vm = 250; tetav = 0; Zt=1+j7; Z=abs(Zt); gama=angle(Zt)180pi; tetai = tetav - gama; teta = (tetav - tetai)pi180; Im = VmZ; wt=0:.05:5pi; v=Vmcos(wt); i=Imcos(wt + tetaipi180); p=v.i; V=Vmsqrt(2); I=Imsqrt(2); P = VIcos(teta); Q = VIsin(teta); S = P + jQ pr = P(1 + cos(2(wt + tetav))); px = Qsin(2(wt + tetav)); PP=Pones(1, length(wt)); xline = zeros(1, length(wt)); wt=180piwt; subplot(2,2,1), plot(wt, v, wt, i,wt, xline), grid title(''''v(t)=Vm coswt, i(t)=Im cos(wt +'''', num2str(tetai), '''')'''') xlabel(''''wt, Do'''') subplot(2,2,2), plot(wt, p, wt, xline), grid title(''''S(t)=v(t) i(t)''''), xlabel(''''wt, Do'''') subplot(2,2,3), plot(wt, pr, wt, PP, wt,xline), grid title(''''Pr(t) Pt 2.04''''), xlabel(''''wt, Do'''') subplot(2,2,4), plot(wt, px, wt, xline), grid title(''''Px(t) Pt 2.05''''), xlabel(''''wt, Do'''') Kết quả: Bài giảng Matlab Present by Nguyễn Trung Nhân0 1 2 3 4 5 6 7 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 10 1 2 3 4 5 6 7 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 10 1 2 3 4 5 6 7 -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 4.2. Thuộc tính nét vẽ Cú pháp : plot(X1,Y1,LineSpec,...) Hàm plot có sử dụng thuộc tính nét vẽ LineSpec cho phép thiết lập các thuộ c tính của đồ thị. Các thuộc tính là: Line style: định dạng kiểu nét, ví dụ nét chấm, nét đứt, .... Line width: định dạng độ rộng nét vẽ, đơn vị là point Color: định dạng màu của nét vẽ, ví dụ mà...

Trang 1

Chương 4: VẼ ĐỒ THỊ TRONG MATLAB

4.1 Đồ thị 2 chiều

4.1.1 Hàm plot

Cú pháp: Plot (x, y)

Nếy x, y là 2 số thực, hàm plot sẽ vẽ một điểm trên mặt Oxy phẳng có tọa độ là (x,y) Nếu x, y là 2 vectơ, hàm plot vẽ một đường nối tập hợp các điểm có tọa độ (xi, yi)

Ví dụ 4.1:

Vẽ đồ thị điện áp v=220* 2 *cos(100*π*t) trong 5 chu kỳ

Ta có thể tạo một file hoặc đánh trực tiếp các lệnh từ cửa sổ Command Window

% Tu ham so da cho tya xac dinh duoc f=50 Hz

f=50;

T=1/f;

U=220*sqrt(2)*sin(2*pi*f*t);

plot(t,U)

Kết quả:

4.1.2 Định dạng cho đồ thị

1 Đặt tên trục

Cú pháp: xlabel(‘text’) Đặt tên cho trục x

Cú pháp: ylabel(‘text’) Đặt tên cho trục y

Cú pháp: title(‘text’) Đặt tên cho đồ thị

Ví dụ 4.2:

Với ví dụ 4.1; ta gắng tên cho các trục và đồ thị như sau:

% Tu ham so da cho tya xac dinh duoc f=50 Hz

f=50;

T=1/f;

Trang 2

t=0:T/1000:5*T; % Tao buoc ve cho ham so

U=220*sqrt(2)*sin(2*pi*f*t);

plot(t,U)

Kết quả:

2 Đặt giới hạn cho 2 trục

Cú pháp: axis([xmin xmax ymin ymax])

Trục x và y sẽ được hiển thị các giá trị từ xmin đến xmax, ymin đến ymax

Muốn thay đổi các điểm vạch chia trên 2 trục Ox và Oy, ta sử dụng hàm:

set(gca,’Xtick’,a:Δ:b) set(gca,’Ytick’,a:Δ:b) Trục x hoặc y sẽ được chia thành các khoảng giữa 2 giá trị a và b với số gia là Δ

Hàm grid sẽ được sử dụng để tạo lưới hoặc bỏ lưới bên trong nền đồ thị

grid on % Tạo lưới

grid off % Bỏ lưới

Ví dụ 4.3 :

Với ví dụ 4.2; định dạng thêm độ chia trục và lưới như sau

% Tu ham so da cho tya xac dinh duoc f=50 Hz

f=50;

T=1/f;

U=220*sqrt(2)*sin(2*pi*f*t);

Trang 3

axis([0 0.1 -400 400]);

Kết quả

3 Đặt chú thích cho đồ thị

Cú pháp: text(x,y,'string') % Đặt đoạn text tại điểm có toạ độ (x,y)

Cú pháp: gtext('string') % Đặt đoạn text tại một điểm tuỳ ý trên đồ thị

bằng cách click chuột trái chuột

Ví dụ 4.4 :Đặt chú thích cho đồ thị của ví dụ 4.3

% Tu ham so da cho tya xac dinh duoc f=50 Hz

f=50;

T=1/f;

U=220*sqrt(2)*sin(2*pi*f*t);

plot(t,U)

axis([0 0.1 -400 400]);

Trang 4

%gtext('u=220*sqrt(2)*sin(314t)')

4.1.3 Vẽ nhiều đồ thị

Để vẽ nhiều đồ thị, chúng ta sử dụng hàm plot với cú pháp sau:

Plot(t,x1 ,t,x2,t,x3, ,t,xn)

Matlab sẽ vẽ các đường xi theo t trên cùng một một hệ trục tọa độ Chúng ta cũng có thể

sử dụng lệnh hold để lưu giữ đồ thị hiện hữu, khi chúng ta thực hiện lệnh vẽ tiếp theo

thì đồ thị mới sẽ được thêm vào đồ thị cũ

Ví dụ 4.5:Sử dụng hàm plot vẽ đồ thị hệ thống điện áp 3 pha đối xứng

Cách 1: không dùng lệnh hold

f=50;

T=1/f;

plot(t,va,t,vb,t,vc);

axis([0 0.06 -400 400]);

Trang 5

Cách 2: dùng lệnh hold

f=50;

T=1/f;

plot(t,va);

% - ve pha b

vb=220*sqrt(2)*sin(2*pi*f*t+120*pi/180);

plot(t,vb);

% - ve pha c

vc=220*sqrt(2)*sin(2*pi*f*t-120*pi/180);

plot(t,vc);

axis([0 0.06 -400 400]);

Kết quả:

Ngoài ra để vẽ nhiều đồ thị trên cùng một cửa sổ với các hệ trục tọa độ khác nhau chúng

ta sử dụng hàm subplot với cú pháp như sau:

Trang 6

plot(m,n,k)

Hàm subplot sẽ chia cữa sổ hình vẽ ra thành m×n khu vực (ô nhỏ - m hàng, n cột) và đồ thị sẽ được vẽ vào ô thứ k

Ví dụ 4.6 Vẽ đồ thị của điện áp, dòng điện, công suất toàn phần, công suất tác dụng,

công suất phản kháng của một đoạn mạch xoay chiều trên cùng một màn hình

% Chuong trinh tinh toan va ve dang song dien ap, dong dien, cong suat theo

% thoi gian

Vm = 250; tetav = 0;

Zt=1+j*7;

Z=abs(Zt);

gama=angle(Zt)*180/pi;

tetai = tetav - gama;

teta = (tetav - tetai)*pi/180;

Im = Vm/Z;

wt=0:.05:5*pi;

v=Vm*cos(wt);

i=Im*cos(wt + tetai*pi/180);

p=v.*i;

V=Vm/sqrt(2); I=Im/sqrt(2);

P = V*I*cos(teta);

Q = V*I*sin(teta);

S = P + j*Q

pr = P*(1 + cos(2*(wt + tetav)));

px = Q*sin(2*(wt + tetav));

PP=P*ones(1, length(wt)); xline = zeros(1, length(wt));

wt=180/pi*wt;

subplot(2,2,1), plot(wt, v, wt, i,wt, xline), grid

subplot(2,2,2), plot(wt, p, wt, xline), grid

subplot(2,2,3), plot(wt, pr, wt, PP, wt,xline), grid

subplot(2,2,4), plot(wt, px, wt, xline), grid

Kết quả:

Trang 7

0 1 2 3 4 5 6 7 -1

-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

4.2 Thuộc tính nét vẽ

Cú pháp : plot(X1,Y1,LineSpec, )

Hàm plot có sử dụng thuộc tính nét vẽ LineSpec cho phép thiết lập các thuộc tính của đồ thị Các thuộc tính là:

Line style: định dạng kiểu nét, ví dụ nét chấm, nét đứt,

Line width: định dạng độ rộng nét vẽ, đơn vị là point

Color: định dạng màu của nét vẽ, ví dụ màu xanh, đỏ,

Marker type: định dạng điểm vẽ

Bảng tổng hợp và ví dụ đi kèm như sau:

Lọai nét vẽ

- : nét liền

: nét đứt

: : nét chấm

- : nét chấm gạch

t = 0:pi/20:2*pi;

Màu nét vẽ

r: đỏ

y: vàng

w: trắng

b: xanh nước biển

k: đen

t = 0:pi/20:2*pi;

Độ lớn nét vẽ

- Tính theo đơn vị

là point

t = 0:pi/20:2*pi;

r','LineWidth',5 )

Trang 8

0 1 2 3 4 5 6 7 -1

-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

Marker

+ : dấu cộng

o : vòng tròn

* : hoa thị

x : chữ x

t = 0:pi/20:2*pi;

'LineWidth',2 )

4.3 Các hàm vẽ đồ thị khác

4.3.1 Hàm bar

Cú pháp: bar(x,y)

Hàm bar sẽ vẽ các thanh đứng có độ cao là yi tương ứng tại vị trí xi

Ví dụ 4.7:

Vẽ đồ thị phụ tải của một xí nghiệp theo số liệu sau:

Điện năng

(kWh)

150 250 300 500 700 800 850 900 1000 650 600 500

x=[1 2 3 4 5 6 7 8 9 10 11 12]

y=[150 250 300 500 700 800 850 900 1000 650 600 500]

bar(x,y)

Kết quả

Trang 9

4.3.2 Hàm pie

Cú pháp: pie(X)

Hàm pie sẽ vẽ đồ thị dạng quạt với diện tích tỉ lệ với phần trăm

Ví dụ 4.8: Vẽ biểu đồ xác định phần trăm điện năng tiêu thụ trong hàng tháng được tính

toán theo giờ cao điểm, thấp điểm và trung bình của một xí nghiệp với số liệu như sau:

Điện năng Cao điểm Thấp điểm Trung bình

Điện năng-kWh 17000 25000 65000

x=[17000 25000 65000]

pie(x)

Kết quả:

4.3.3 Vẽ đồ thị hàm số theo tỉ lệ logarit

Cú pháp: loglog(x,y)

Vẽ các giá trị x và y tương ứng trên các trục dùng tỉ lệ logarit

Cú pháp: semilogx(x,y)

Vẽ các giá trị x và y tương ứng trên các trục x theo tỉ lệ logarit, trục y theo tỉ lệ tuyến tính

Ví dụ 4.9: Khảo sát giá trị tổng trở Z của mạch RLC nối tiếp trong miền tần số từ 10Hz

đến 10000 Hz Cho R = 10, L =10mH, C =10μF

R=10 L=10e-3 C=10e-6 k=0

k=k+1;

f(k)=t;

w(k)=2*pi*f(k);

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

end

semilogx(f,Z)

%loglog(f,Z)

Trang 10

Kết quả

Bài tập áp dụng

BT4.1

%Chuong trinh tinh day dong dien, cong suat, tren nhanh day

k=length(a1);

V1=E1.*cos(a1r) + j*E1.*sin(a1r);

V2=E2.*cos(a2r) + j*E2.*sin(a2r);

tam1=(V1 - V2)/Z; I21=-I12;

I12 = (V1 - V2)/Z; I21=-I12;

S1= V1.*conj(I12); P1 = real(S1); Q1 = imag(S1);

S2= V2.*conj(I21); P2 = real(S2); Q2 = imag(S2);

SL= S1+S2; PL = real(SL); QL = imag(SL);

Result1=[a1, P1, P2, PL];

disp(Result1)

plot(a1, P1, a1, P2, a1, PL), grid

BT4.2

%Chuong trinh tinh day dong dien, cong suat, tren nhanh day

Trang 11

a2=input('Goc pha dien ap nguon 2 = ');

k=length(a1);

V1=E1.*cos(a1r) + j*E1.*sin(a1r);

V2=E2.*cos(a2r) + j*E2.*sin(a2r);

tam1=(V1 - V2)/Z; I21=-I12;

I12 = (V1 - V2)/Z; I21=-I12;

S1= V1.*conj(I12); P1 = real(S1); Q1 = imag(S1);

S2= V2.*conj(I21); P2 = real(S2); Q2 = imag(S2);

SL= S1+S2; PL = real(SL); QL = imag(SL);

Result1=[a1, P1, P2, PL];

disp(Result1)

plot(a1, P1, a1, P2, a1, PL), grid

BT4.3

%Chuong trinh khao sat va ve do thi cua may phat dien dong bo

Xd=7.5; Xq = 3.5; Zs = Xd + j*Xq;

S = 100*0.78 + j*(100*sqrt(1-0.78*0.78)); V = 18/sqrt(3);

Ia1 = conj(S)*1000/(3*conj(V));

Ia1M = abs(Ia1)/1000, Ia1ang=angle(Ia1)*180/pi;

delta=atan((Xq*Ia1M*0.78)/(V+Xq*Ia1M*sqrt(1-0.78*0.78)));

deltado=delta*180/pi

tam1=100*0.78-3*(V^2)*((Xd-Xq)/(2*Xd*Xq))*sin(2*delta);

Em=(tam1*Xd)/(3*V*sin(delta))

%===== VE DO THI=============

nhap1=3*(Em*V)/Xd;

nhap2=3*(V^2)*(Xd-Xq)/(2*Xd*Xq);

wt=0:.001:pi;

thu3=nhap1*sin(wt);

thu4=nhap2*sin(2*wt);

p=thu3+thu4;

wt=180/pi*wt;

plot(wt, p), grid xlabel('wt, Do') ylabel('P, MW') Pmax=max(p) BT4.4 %==== CHUONG TRINH CHO BAI TAP 4.14 ==== clear all; %z = input('Nhap vao tong tro phuc noi tiep tren moi km z = '); %y = input('Nhap vao tong dan phuc tren moi km y = '); %l = input('Nhap vao chieu dai duong day l(km) = '); z = 0.028 + j*.41;

y = 0 + j*4.6/1000000; Length = 350;

VR3ph = 500;

z = 0.04 + j*.39; y = j*4.2/1000000; Length = 300;

gamma = sqrt(z*y); Zc = sqrt(z/y);

A = cosh(gamma*Length); B = Zc*sinh(gamma*Length);

C = 1/Zc * sinh(gamma*Length); D = A;

ABCD = [A B; C D]

Znew = Zc * sinh(gamma*Length)

Trang 12

Ynew = 2/Zc * tanh(gamma*Length/2)

Anew = 1 + Znew*Ynew/2; Bnew = Znew;

Cnew = Ynew*(1 + Znew*Ynew/4); Dnew = Anew;

%gamma = sqrt(z*y); Zc = sqrt(z/y);

%Z = Zc * sinh(gamma*l)

%Y = 2/Zc * tanh(gamma*l/2)

%A = cosh(gamma*l); B = Zc*sinh(gamma*l);

%C = 1/Zc * sinh(gamma*l); D = A;

ABCD = [Anew Bnew; Cnew Dnew]

AR = acos(0.8);

%disp('(a)')

Vs = VsIs(1);

hstt=((real(SR))/real(Ss))*100;

REG = (Vs3ph/abs(ABCD(1,1)) - VR3ph)/VR3ph *100;

Ngày đăng: 30/05/2024, 14:18