1. Trang chủ
  2. » Giáo án - Bài giảng

Matlab Định lý Biotsavart

2 331 0

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 2
Dung lượng 42,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BM Vật lý Ứng dụng, Khoa KHUD, ĐHBK TP.HCM Bài tập lớn Matlab – Vật lý A1Bài tập 2: Xác định từ trường của một dòng điện tròn bằng định luật Biot-Savart 1.. Yêu cầu Từ trường của một

Trang 1

BM Vật lý Ứng dụng, Khoa KHUD, ĐHBK TP.HCM Bài tập lớn Matlab – Vật lý A1

Bài tập 2:

Xác định từ trường của một dòng điện tròn

bằng định luật Biot-Savart

1 Yêu cầu

Từ trường của một phân bố dòng điện (C) bất kỳ có thể được xác định bằng định luật Biot-Savart theo biểu thức sau:

Bài tập này yêu cầu sinh viên sử dụng Matlab để tính toán từ trường của một dòng điện tròn sử dụng biểu thức trên với cách thức chia vòng tròn thành những đoạn dòng điện thẳng nhỏ và cộng giá trị từ trường do từng đoạn trên tạo nên tại một vị trí nào đó Sau đó, sử dụng các giá trị từ trường đã tính để vẽ biểu diễn đường sức của từ trường chung

2 Điều kiện

1) Sinh viên cần có kiến thức về lập trình cơ bản trong MATLAB

2) Tìm hiểu các lệnh Matlab liên quan symbolic và đồ họa

3 Nhiệm vụ

Xây dựng chương trình Matlab:

1) Nhập bán kính dòng điện tròn

2) Chia vòng tròn thành những đoạn dòng điện thẳng nhỏ và cộng giá trị từ trường do từng đoạn trên tạo nên tại một vị trí nào đó (tham khảo đoạn mã Matlab bên dưới)

3) Vẽ đồ thị biểu diễn đường sức của từ trường (dùng lệnh quiver – vẽ mũi tên đường sức) Chú ý: Sinh viên có thể dùng các cách tiếp cận khác

4 Tài liệu tham khảo:

A L Garcia and C Penland, MATLAB Projects for Scientists and Engineers, Prentice Hall,

Upper Saddle River, NJ, 1996 http://www.algarcia.org/fishbane/fishbane.html

* Hướng dẫn: Tham khảo đoạn chương trình sau về cách tính từ trường từng đoạn dòng điện nhỏ cộng lại:

fprintf( 'Field plotted from x = %g m to x = %g m\n' ,-xMax,xMax);

fprintf( 'Field plotted from y = %g m to y = %g m\n' ,-yMax,yMax);

for i=1:NGrid

xObs(i) = -xMax + (i-1)/(NGrid-1)*(2*xMax); % x values to plot

yObs(i) = -yMax + (i-1)/(NGrid-1)*(2*yMax); % y values to plot

end

%@ Loop over the segments in the current loop in yz plane

NSegments = 20;

for k=1:NSegments

%@ Compute location of the endpoints of a segment

theta1 = 2*pi*(k-1)/NSegments;

x1 = 0;

y1 = Radius*cos(theta1);

z1 = Radius*sin(theta1);

theta2 = 2*pi*k/NSegments;

1/1

Trang 2

BM Vật lý Ứng dụng, Khoa KHUD, ĐHBK TP.HCM Bài tập lớn Matlab – Vật lý A1

x2 = 0;

y2 = Radius*cos(theta2);

z2 = Radius*sin(theta2);

%@ Compute components of segment vector dl

dlx(k) = x2-x1;

dly(k) = y2-y1;

dlz(k) = z2-z1;

%@ Compute the location of the midpoint of a segment

xc(k) = (x2+x1)/2;

yc(k) = (y2+y1)/2;

zc(k) = (z2+z1)/2;

end

%@ Loop over all grid points and evaluate B(x,y) on grid

for i=1:NGrid

for j=1:NGrid

Bx = 0; By = 0; % Initialize B to zero

%@ Loop over the segments in the loop

for k=1:NSegments

%@ Compute components of the r vector (vector between

%% segment on loop and observation point)

rx = xObs(j) - xc(k);

ry = yObs(i) - yc(k);

rz = -zc(k); % Observation points are in xy plane

%@ Compute r^3 from r vector

r3 = sqrt(rx^2 + ry^2 + rz^2)^3;

%@ Compute x and y components of cross product dl X r

dlXr_x = dly(k)*rz - dlz(k)*ry;

dlXr_y = dlz(k)*rx - dlx(k)*rz;

%@ Increment sum of x and y components of magnetic field

Bx = Bx + Constant*dlXr_x/r3;

By = By + Constant*dlXr_y/r3;

end

%@ Compute normalized vectors of magnetic field direction

BMag = sqrt(Bx^2 + By^2);

BDirx(i,j) = Bx/BMag;

BDiry(i,j) = By/BMag;

end

fprintf( 'Calculation %g%% complete\n' ,100*i/NGrid);

end

1/2

Ngày đăng: 18/04/2016, 00:28

TỪ KHÓA LIÊN QUAN

w