- PVSM.RU - https://www.pvsm.ru -
Рассмотрим следующую задачу:Дан постоянный магнит некоторой формы и нужно получить аналитическое выражение для его магнитного поля B в трёхмерном пространстве.Разберём несколько случаев.Будем считать магнит однородным.
1.Форма магнита прямоугольный параллелепипед(полосовой магнит) размера 2a на 2b на 2c.Поместим начало O декартовой прямоугольной ортогональной системы координат с правой ориентацией базисных векторов(i, j, k ) XOYZ в центр параллелепипеда.Сделаем схематичный рисунок:
2. Цилиндрический магнит(магнит имеет форму цилиндра высоты 2h и радиуса R).Поместим начало O декартовой прямоугольной ортогональной системы координат с правой ориентацией базисных векторов XOYZ в центр цилиндра.Сделаем рисунок:
Теперь напишем на Python код для моделирования и визуализации магнитного поля цилиндрического магнита (код помогала писать нейросеть):
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import cm
# Параметры магнита
mu_0 = 4 * np.pi * 1e-7 # Тл·м/А
mu = 1.0 # относительная магнитная проницаемость
rho = 1.0 # плотность тока (А/м²)
v = 1.0 # скорость дрейфа электронов (м/с)
R = 0.1 # радиус цилиндра (м)
h = 0.2 # высота цилиндра (м)
# Константа для расчетов
const = mu_0 * mu * rho * v / (4 * np.pi)
def calculate_field(r0, z0):
# Вспомогательные функции для расчета
def I1(r0, z0):
integral = 0
for r in np.linspace(0, R, 100):
term1 = (z0 - h) * np.log(
(np.sqrt((z0 - h)**2 + (R - r0)**2) + R - r0) /
(np.sqrt((z0 - h)**2 + r0**2) - r0)
)
term2 = np.sqrt((z0 - h)**2 + (R - r0)**2) - np.sqrt((z0 - h)**2 + r0**2)
term3 = (z0 + h) * np.log(
(np.sqrt((z0 + h)**2 + (R - r0)**2) + R - r0) /
(np.sqrt((z0 + h)**2 + r0**2) - r0)
)
term4 = np.sqrt((z0 + h)**2 + (R - r0)**2) - np.sqrt((z0 + h)**2 + r0**2)
integral += r * (term1 + term2 + term3 + term4)
return integral
def I2(r0, z0):
integral = 0
for r in np.linspace(0, R, 100):
term = (r - r0) / np.sqrt((r - r0)**2 + (z0 - h)**2)
integral += r * term
return integral
# Расчет компонент поля
Br = const * I1(r0, z0)
Bz = const * I2(r0, z0)
return Br, Bz
# Создание сетки для визуализации
r = np.linspace(0, 2*R, 50)
z = np.linspace(-2*h, 2*h, 50)
R_grid, Z_grid = np.meshgrid(r, z)
Br_grid = np.zeros_like(R_grid)
Bz_grid = np.zeros_like(Z_grid)
for i in range(R_grid.shape[0]):
for j in range(R_grid.shape[1]):
Br_grid[i,j], Bz_grid[i,j] = calculate_field(R_grid[i,j], Z_grid[i,j])
# Визуализация
plt.figure(figsize=(14, 8))
# График радиальной компоненты
plt.subplot(121)
plt.pcolormesh(R_grid, Z_grid, Br_grid, cmap=cm.coolwarm)
plt.colorbar(label='Br (Тл)')
plt.title('Радиальная компонента магнитного поля')
plt.xlabel('r (м)')
plt.ylabel('z (м)')
plt.axis('equal')
# График осевой компоненты
plt.subplot(122)
plt.pcolormesh(R_grid, Z_grid, Bz_grid, cmap=cm.coolwarm)
plt.colorbar(label='Bz (Тл)')
plt.title('Осевая компонента магнитного поля')
plt.xlabel('r (м)')
plt.ylabel('z (м)')
plt.axis('equal')
plt.tight_layout()
plt.show()
Результат работы программы видно здесь:
Из графиков видна неравномерность распределения магнитного поля в цилиндрическом магните, что можно объяснить сложной зависимостью B(r, z), а также возможными ошибками при забивании сложных аналитических формул в программу. Предоставляю читателям возможность найти их и исправить.
Таким образом, в данной статье получены аналитические выражения для магнитного поля полосового и цилиндрического магнитов, написан код для визуализации полученных результатов.
Список литературы:
Л.Д.Ландау, Е. М. Лифшиц т. II Теория поля ,1967 г.
Слесарев Ю. Н., Малышев Б. В., Борисова А. А., Воронцов А. А. «Математическое моделирование магнитных полей постоянных магнитов цилиндрической формы и эквивалентных им соленоидов» // «Модели, системы, сети в экономике, технике, природе и обществе». — 2016. — № 4 (20). — С. 150–157.
Слесарев Ю. Н., Воронцов А. А. «Исследование магнитных полей постоянных магнитов цилиндрической формы и соленоидов и сравнение полученных результатов» // «XXI век: итоги прошлого и проблемы настоящего плюс». — 2016. — № 6 (34). — С. 110–115.
Черкасова О. А. «Исследование магнитного поля постоянного магнита с помощью компьютерного моделирования» // «Гетеромагнитная микроэлектроника». — 2014. — Вып. 17. — С. 112–120.
Черкасова О. А., Черкасова С. А. «Компьютерное моделирование магнитного поля системы подмагничивания гетеромагнитного устройства» // «ИНЖИНИРИНГ ТЕХНО 2015»: сб. тр. III Междунар. научно-практ. конф. — Саратов: Издательский дом «Райт-Экспо», 2015. — Т. 2. — С. 97–103.
Автор: Maximka200
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/454982
Ссылки в тексте:
[1] Источник: https://habr.com/ru/articles/1059416/?utm_campaign=1059416&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.