Рассмотрим следующую задачу:Дан постоянный магнит некоторой формы и нужно получить аналитическое выражение для его магнитного поля B в трёхмерном пространстве.Разберём несколько случаев.Будем считать магнит однородным.
1.Форма магнита прямоугольный параллелепипед(полосовой магнит) размера 2a на 2b на 2c.Поместим начало O декартовой прямоугольной ортогональной системы координат с правой ориентацией базисных векторов(i, j, k ) XOYZ в центр параллелепипеда.Сделаем схематичный рисунок:
2. Цилиндрический магнит(магнит имеет форму цилиндра высоты 2h и радиуса R).Поместим начало O декартовой прямоугольной ортогональной системы координат с правой ориентацией базисных векторов XOYZ в центр цилиндра.Сделаем рисунок:
Теперь напишем на Python код для моделирования и визуализации магнитного поля цилиндрического магнита (код помогала писать нейросеть):
import numpy as npimport matplotlib.pyplot as pltfrom 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.
ссылка на оригинал статьи https://habr.com/ru/articles/1059416/