Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Công thức Biot-Savart dạng vectơ: Mô tả toán học cho từ trường

Công thức Biot-Savart dạng vectơ cung cấp một cách biểu diễn chính xác và
tổng quát về mối quan hệ giữa dòng điện và từ trường do nó tạo ra. Dạng vectơ
cho phép chúng ta tính toán cả độ lớn và hướng của vectơ từ trường tại bất kỳ
điểm nào trong không gian.
Công thức:
B(r) = (μ₀ / 4π) * ∫ (I * dl x (r - r')) / |r - r'|³
Giải thích các thành phần:
B(r): Vectơ từ trường tại điểm r trong không gian.
μ₀: Độ từ thẩm của chân không (4π x 10^-7 Tm/A).
I: Cường độ dòng điện chạy trong dây dẫn (A).
dl: Vectơ độ dài vi phân của đoạn dòng điện, hướng theo chiều dòng điện.
r: Vectơ vị trí của điểm r, nơi chúng ta muốn tính toán từ trường.
r': Vectơ vị trí của đoạn dòng điện dl.
x: Tích vectơ.
|r - r'|: Độ lớn của vectơ (r - r'), đại diện cho khoảng cách từ đoạn dòng điện đến
điểm r.
∫: Ký hiệu tích phân, biểu thị việc cộng dồn đóng góp từ trường từ tất cả các
đoạn dòng điện tạo thành dòng điện tổng thể.
Cách sử dụng:
Xác định dòng điện: Xác định hình dạng và vị trí của dòng điện trong không
gian.
Chia nhỏ dòng điện: Chia dòng điện thành các đoạn dòng điện vi phân dl.
Tính toán đóng góp từ trường: Áp dụng công thức Biot-Savart cho từng đoạn dl
để tính toán đóng góp dB vào từ trường tại điểm r.
Tích phân: Tích phân tất cả các đóng góp dB dọc theo toàn bộ dòng điện để thu
được vectơ từ trường B(r) tại điểm r.
Ưu điểm của dạng vectơ:
Tổng quát: Áp dụng cho mọi hình dạng dòng điện và mọi điểm trong không
gian.
Chính xác: Cung cấp cả độ lớn và hướng của vectơ từ trường.
Toán học: Sử dụng các công cụ toán học vectơ để biểu diễn và tính toán.

Code:
import numpy as np

import matplotlib.pyplot as plt

def tinh_tu_truong(I, R, x, y, z):


"""
Tính toán từ trường tại một điểm (x, y, z) do một vòng dây tròn có dòng
điện I và bán kính R gây ra.

Args:
I: Dòng điện trong vòng dây (A)
R: Bán kính của vòng dây (m)
x, y, z: Tọa độ của điểm cần tính từ trường (m)

Returns:
Bx, By, Bz: Thành phần x, y, z của vectơ từ trường (T)
"""

mu_0 = 4 * np.pi * 1e-7 # Độ từ thẩm của chân không

# Chia vòng dây thành các đoạn nhỏ


N = 100
dtheta = 2 * np.pi / N
theta = np.linspace(0, 2 * np.pi, N)
# Tính toán đóng góp từ trường từ mỗi đoạn
Bx, By, Bz = 0, 0, 0
for i in range(N):
x1 = R * np.cos(theta[i])
y1 = R * np.sin(theta[i])
dl = R * dtheta * np.array([-np.sin(theta[i]), np.cos(theta[i]), 0])
r = np.array([x[i] - x1, y[i] - y1, z])
r_mag = np.linalg.norm(r)
dB = (mu_0 * I * np.cross(dl, r)) / (4 * np.pi * r_mag**3)
Bx += dB[0]
By += dB[1]
Bz += dB[2]

return Bx, By, Bz

# Nhập bán kính của vòng dây


R = float(input("Nhập bán kính của vòng dây (m): "))

# Tạo lưới tọa độ để vẽ


x = np.linspace(-2*R, 2*R, 20)
y = np.linspace(-2*R, 2*R, 20)
X, Y = np.meshgrid(x, y)
# Tính toán từ trường tại mỗi điểm trên lưới
Bx, By, Bz = tinh_tu_truong(1, R, X, Y, 0)
# Vẽ đường sức từ trường
fig, ax = plt.subplots()
ax.quiver(X, Y, Bx, By)
ax.set_xlabel("X (m)")
ax.set_ylabel("Y (m)")
ax.set_title("Đường sức từ trường của vòng dây tròn")
plt.show()

Thêm vẽ 3D
# Vẽ đường sức từ trường 3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.quiver(X, Y, Z, Bx, By, Bz, length=0.1, normalize=True)
ax.set_xlabel("X (m)")
ax.set_ylabel("Y (m)")
ax.set_zlabel("Z (m)")
ax.set_title("Đường sức từ trường của vòng dây tròn (3D)")
plt.show()

You might also like