Гармоническое магнитное поле · Плоскопараллельная
Бегущее поле: наведённые токи, тяга пластины и реверс фаз
Шесть сторон трёхфазной обмотки создают бегущее магнитное поле над неподвижной алюминиевой пластиной. Наведённые в пластине токи взаимодействуют с полем и создают продольную силу. Работа связывает пространственное распределение обмотки, чередование фаз, потери и направление тяги.
Это электромагнитная постановка линейного асинхронного преобразователя при неподвижной вторичной части. Она помогает понять общий механизм двигателя и электромагнитного насоса, но не вычисляет движение пластины или течение жидкости.
Самостоятельная учебная модель FEMM 5: от физических соотношений к полевому решению и проверке результата.
Допущения и устройство учебной модели
| Учебная модель FEMM 5 | Причина |
|---|---|
| Неподвижная проводящая пластина в бегущем поле | Изолирует электромагнитный механизм при скольжении s=1. |
| Конечная шестисторонняя обмотка и конечная пластина | Сохраняет пространственные гармоники и краевые поля. |
Все размеры, свойства материалов и условия возбуждения заданы ниже. Численные результаты относятся к опубликованной версии модели FEMM 5.
Физическая и математическая постановка
От пространственного чередования к бегущему полю
Комплексные амплитуды токов фаз A, B, C равны I, I exp(−j2π/3), I exp(j2π/3). Стороны обмоток расположены с шагом 50 мм в порядке A+, C−, B+, A−, C+, B−. Их суммарный мгновенный ток равен нулю. Изменение порядка фаз на обратный меняет направление пространственного перемещения поля.
В проводящей вторичной части поле вызывает вихревые токи. Их фаза определяется одновременно индукцией, сопротивлением и собственным полем. Пластина электрически изолирована: ей назначена отдельная последовательная цепь с полным током ноль. Это позволяет решателю определить продольный градиент потенциала, обеспечивающий нулевой интеграл плотности тока через всё сечение; локальные вихревые токи при этом сохраняются. Оставление пластины без цепи задавало бы другую электрическую постановку с возможным ненулевым сквозным током.
Плотность средней силы равна половине действительной части векторного произведения комплексной амплитуды тока на сопряжённую амплитуду магнитной индукции. Продольная тяга проверяется двумя интегральными способами. Для каждого решения отдельно интегрируется полный комплексный ток пластины и проверяется его близость к нулю.
Энергия неподвижной вторичной части
Механическая мощность неподвижной пластины равна нулю даже при ненулевой тяге. Активная мощность идеальных обмоток переходит в джоулевы потери пластины. Проверка использует амплитудные, а не действующие комплексные токи, поэтому множитель 1/2 обязателен.
Увеличение частоты меняет глубину проникновения и фазу наведённого тока. В конечной обмотке присутствуют пространственные гармоники и концевой эффект, поэтому нельзя подменять всё поле единственной идеальной бегущей синусоидой. Программа решает поле целиком и не вводит непроверенную формулу тяги через одну скорость волны.
Независимые численные опыты
Три пространственные сетки проверяют тягу и потери. Удаление внешней границы с 400 до 600 мм отдельно проверяет влияние усечения воздушного пространства. Смена чередования фаз должна менять знак продольной силы, сохраняя потери в зеркально симметричной геометрии.
В линейных материалах удвоение тока должно увеличивать тягу и потери в четыре раза. При нулевой проводимости и относительной проницаемости единица пластина становится электромагнитно неотличимой от воздуха: интеграл силы Лоренца и потери точно обращаются в ноль. Малый остаток интеграла напряжений на условной границе такого воздушного тела является численной погрешностью; он проверяется отдельно относительно рабочей тяги с допуском 0,01%. Эти опыты проверяют механизм силы, а не только устойчивость одного численного значения.
Исходные данные
Плоскопараллельная
| Параметр | Значение | Единица | Происхождение |
|---|---|---|---|
| Координаты центров сторон обмотки x | −125; −75; −25; 25; 75; 125 | мм | Учебная симметричная шестисторонняя обмотка |
| Сечение каждой стороны обмотки | 20 × 12; y=10…22 | мм | Авторская учебная геометрия |
| Вторичная пластина | x=−160…160; y=−4…0 | мм | Конечная проводящая вторичная часть |
| Глубина плоской модели | 40 | мм | Общая длина вдоль оси z |
| Амплитуда фазного тока; число витков | 100; 50 | А; виток | Идеальная обмотка без собственных активных потерь |
| Проводимость пластины; относительная проницаемость | 35; 1 | МСм/м; 1 | Постоянные учебные свойства алюминия |
| Частота; серия | 50; 10, 25, 50, 100, 200, 500 | Гц | Исследование индукционного взаимодействия |
| Локальный размер треугольника | 1.2; 0.8; 0.5 | мм | Независимая серия сеточного контроля |
Порядок воспроизведения
- Скачайте полный комплект и выполните reproduce.py во встроенном Python FEMM 5. Результаты сохраняются в новой папке calculated-NN.
- Сопоставьте три базовые сетки при 50 Гц. В них совпадают геометрия, свойства и амплитуды токов.
- Проверьте равенство активной мощности цепей и потерь пластины. Сравните интеграл силы Лоренца и тензор напряжений.
- Смените чередование фаз, затем удвойте ток и отключите проводимость. Объясните изменение направления и масштаба тяги.
- Исследуйте частотную серию и отдельно влияние удаления границы. Программа заново строит все поля; в комплекте сохранены три базовых решения.
Скачайте нужные файлы по отдельным ссылкам ниже в одну рабочую папку, затем откройте reproduce.py во встроенном Python FEMM 5 и выполните его. Сохраните имена файлов и структуру подпапок. Условия конкретного запуска и путь новых результатов указаны в комментариях программы.
Программа встроенного Python FEMM 5
"""Самостоятельное полевое исследование во встроенном Python FEMM 5.
Все размеры геометрии указаны в миллиметрах, результаты — в СИ. Значения
гармонических токов являются амплитудами. Материалы и условия имеют русские
имена; номера групп описаны в README. Программа создаёт новую calculated-NN
рядом с собой, не заменяя предшествующих расчётов. Каждая входная модель
сохраняется, закрывается, открывается повторно и только затем решается.
Открытые пользовательские документы не изменяются. Параметры — в CONFIG.
"""
import os
import sys
import json
import math
MU0 = 4e-7 * math.pi
script = globals().get("__file__", "") or (sys.argv[0] if sys.argv else "")
HERE = os.path.dirname(os.path.abspath(script)) if script else os.getcwd()
number = 1
while True:
OUT = HERE + "/calculated-%02d" % number
try:
os.stat(OUT)
number += 1
except OSError:
os.mkdir(OUT)
break
def scalar(value):
if isinstance(value, (list, tuple)):
return scalar(value[0])
return complex(value).real
def complex_parts(value):
value = complex(value)
return [value.real, value.imag]
def point(radius, angle):
angle = angle * math.pi / 180
return (radius * math.cos(angle), radius * math.sin(angle))
def line(a, b, group=0, size=0):
mi_addnode(a[0], a[1])
mi_addnode(b[0], b[1])
mi_addsegment(a[0], a[1], b[0], b[1])
mi_selectsegment((a[0] + b[0]) / 2, (a[1] + b[1]) / 2)
boundary = (
"Внешняя граница A=0"
if globals().get("AXIS", False) and abs(a[0]) + abs(b[0]) < 1e-9
else "<None>"
)
mi_setsegmentprop(boundary, size, 0 if size else 1, 0, group)
mi_clearselected()
def polygon(points, group=0, size=0):
for index in range(len(points)):
line(points[index], points[(index + 1) % len(points)], group, size)
def rectangle(x1, y1, x2, y2, group=0, size=0):
polygon([(x1, y1), (x2, y1), (x2, y2), (x1, y2)], group, size)
def arc(radius, start, end, group=0, step=2):
a, b = point(radius, start), point(radius, end)
mi_addnode(a[0], a[1])
mi_addnode(b[0], b[1])
mi_addarc(a[0], a[1], b[0], b[1], end - start, step)
middle = point(radius, (start + end) / 2)
mi_selectarcsegment(middle[0], middle[1])
mi_setarcsegmentprop(step, "<None>", 0, group)
mi_clearselected()
def circle(radius, group=0, step=2):
for start in (0, 90, 180, 270):
arc(radius, start, start + 90, group, step)
def label(x, y, material, mesh, group=0, circuit="<None>", turns=1, angle=0):
mi_addblocklabel(x, y)
mi_selectlabel(x, y)
mi_setblockprop(material, 0, mesh, circuit, angle, group, turns)
mi_clearselected()
def begin(mesh, kind="planar", frequency=0, depth=40, radius=100, br=1.1, mur=1.05):
global AXIS
AXIS = kind == "axi"
newdocument(0)
mi_probdef(frequency, "millimeters", kind, 1e-9, depth, 25)
mi_addmaterial("Воздух", 1, 1, 0, 0, 0)
mi_addmaterial("Обмотка без вытеснения тока", 1, 1, 0, 0, 0)
mi_addmaterial("Медь 58 МСм на метр", 1, 1, 0, 0, 58)
mi_addmaterial("Сталь с линейной проницаемостью", 1000, 1000, 0, 0, 0)
mi_addmaterial("Сталь с учебной кривой насыщения", 1, 1, 0, 0, 0)
for b, h in (
(0, 0),
(0.3, 100),
(0.6, 200),
(1, 350),
(1.3, 700),
(1.5, 1800),
(1.65, 5000),
(1.8, 15000),
(2, 60000),
(2.2, 200000),
):
mi_addbhpoint("Сталь с учебной кривой насыщения", b, h)
mi_addmaterial("Постоянный магнит учебный NdFeB", mur, mur, br / (MU0 * mur), 0, 0)
mi_addboundprop("Внешняя граница A=0", 0, 0, 0, 0, 0, 0, 0, 0, 0)
if kind == "axi":
rectangle(0, -radius, radius, radius)
for x, y in ((0, 0), (radius, 0), (radius / 2, -radius), (radius / 2, radius)):
mi_selectsegment(x, y)
mi_setsegmentprop("Внешняя граница A=0", 0, 1, 0, 0)
mi_clearselected()
else:
circle(radius, step=4)
for angle in (45, 135, 225, 315):
x, y = point(radius, angle)
mi_selectarcsegment(x, y)
mi_setarcsegmentprop(4, "Внешняя граница A=0", 0, 0)
mi_clearselected()
def band(r1, r2, count, fraction, group, mesh, phase=0, mode="radial"):
"""Кольцевая сборка: заданные магнитные секторы и воздушные промежутки."""
pitch = 360 / count
for index in range(count):
start = index * pitch + phase
stop = start + pitch * fraction
for radius in (r1, r2):
arc(radius, start, stop, group, step=2)
if fraction < 0.999999:
arc(radius, stop, start + pitch, group, step=2)
line(point(r1, start), point(r2, start), group)
line(point(r1, stop), point(r2, stop), group)
angle = (start + stop) / 2
x, y = point((r1 + r2) / 2, angle)
if mode == "steel":
label(x, y, "Сталь с линейной проницаемостью", mesh, group)
else:
direction = 2 * angle if mode == "halbach" else angle + 180 * (index % 2)
label(x, y, "Постоянный магнит учебный NdFeB", mesh, group, angle=direction)
if fraction < 0.999999:
x, y = point((r1 + r2) / 2, (stop + start + pitch) / 2)
label(x, y, "Воздух", mesh, group)
def energy():
mo_clearblock()
mo_groupselectblock()
values = [scalar(mo_blockintegral(k)) for k in (2, 17, 4)]
mo_clearblock()
return values
def solve(tag, group=2, probe=(1, 0), circuits=()):
path = OUT + "/" + tag + ".fem"
mi_saveas(path)
mi_close()
opendocument(path)
mi_analyze(1)
mi_loadsolution()
e, w, p = energy()
row = {
"state": tag,
"elements": mo_numelements(),
"energy_J": e,
"coenergy_J": w,
"loss_W": p,
}
if group:
mo_groupselectblock(group)
if CONFIG.get("kind") != "course":
row["Fx_N"] = scalar(mo_blockintegral(18))
row["Fy_N"] = scalar(mo_blockintegral(19))
row["torque_Nm"] = scalar(mo_blockintegral(22))
if CONFIG.get("kind") != "course":
row["lorentz_x_N"] = scalar(mo_blockintegral(11))
row["lorentz_y_N"] = scalar(mo_blockintegral(12))
mo_clearblock()
if CONFIG.get("kind") == "gear":
for part in (2, 3, 4):
mo_groupselectblock(part)
row["T%d_Nm" % part] = scalar(mo_blockintegral(22))
mo_clearblock()
values = mo_getpointvalues(probe[0], probe[1])
row["Bx_T"] = scalar(values[1])
row["By_T"] = scalar(values[2])
row["Hx_Am"] = scalar(values[5])
row["Hy_Am"] = scalar(values[6])
for circuit in circuits:
i, v, psi = mo_getcircuitproperties(circuit)
row[circuit + "_I_A"] = scalar(i)
row[circuit + "_Psi_Wb"] = scalar(psi)
row[circuit + "_Psi_im_Wb"] = complex(psi).imag
row[circuit + "_V_V"] = scalar(v)
row[circuit + "_V_im_V"] = complex(v).imag
mo_close()
mi_close()
return row
def check(name, value, limit, passed):
CHECKS.append(
{"name": name, "value": value, "limit": limit, "passed": bool(passed)}
)
def relative(a, b, minimum=1e-15):
return abs(a - b) / max(abs(a), abs(b), minimum)
def finish(plot=None):
result = {
"title": CONFIG["title"],
"records": ROWS,
"checks": CHECKS,
"units": "Геометрия мм; магнитное поле Тл, А/м; энергия Дж; сила Н; момент Н·м; потокосцепление Вб.",
"passed": bool(CHECKS) and all(row["passed"] for row in CHECKS),
}
if plot:
result["plot"] = plot
with open(OUT + "/result.json", "w") as stream:
json.dump(result, stream)
print(CONFIG["id"], result["passed"], len(ROWS), "решений", OUT)
assert result["passed"], "Не пройдена независимая проверка физической модели."
ROWS = []
CHECKS = []
CONFIG = {
"id": "travelling-field-thrust",
"kind": "linear-induction",
"title": "Бегущее поле: наведённые токи, тяга пластины и реверс фаз",
}
def travelling(mesh, frequency, sequence=1, amplitude=100, conductivity=35, radius=400):
begin(mesh, "planar", frequency, 40, radius)
mi_addmaterial("Алюминиевая вторичная пластина", 1, 1, 0, 0, conductivity)
mi_addcircprop("Изолированная вторичная пластина", 0, 1)
rectangle(-180, -20, 180, 40, size=4 * mesh)
rectangle(-160, -4, 160, 0, 2, size=mesh)
label(
0,
-2,
"Алюминиевая вторичная пластина",
mesh,
2,
"Изолированная вторичная пластина",
1,
)
circuits = []
for phase, angle in (("A", 0), ("B", -120), ("C", 120)):
name = "Фаза " + phase
radians = sequence * angle * math.pi / 180
value = amplitude * complex(math.cos(radians), math.sin(radians))
mi_addcircprop(name, value, 1)
circuits.append(name)
for x, phase, sign in (
(-125, "A", 1),
(-75, "C", -1),
(-25, "B", 1),
(25, "A", -1),
(75, "C", 1),
(125, "B", -1),
):
rectangle(x - 10, 10, x + 10, 22, size=mesh)
label(x, 16, "Обмотка без вытеснения тока", mesh, 1, "Фаза " + phase, 50 * sign)
label(0, 5, "Воздух", 2 * mesh)
label(0, 200, "Воздух", 12 * mesh)
return circuits
def field(
tag, mesh, frequency=50, sequence=1, amplitude=100, conductivity=35, radius=400
):
circuits = travelling(mesh, frequency, sequence, amplitude, conductivity, radius)
path = OUT + "/" + tag + ".fem"
mi_saveas(path)
mi_close()
opendocument(path)
mi_analyze(1)
mi_loadsolution()
mo_groupselectblock(2)
loss = scalar(mo_blockintegral(4))
fx = scalar(mo_blockintegral(18))
fy = scalar(mo_blockintegral(19))
lorentz = scalar(mo_blockintegral(11))
plate_current = complex(mo_blockintegral(7))
mo_clearblock()
active = 0
for name in circuits:
current, voltage, flux = mo_getcircuitproperties(name)
active += 0.5 * (complex(voltage) * complex(current).conjugate()).real
row = {
"state": tag,
"frequency_Hz": frequency,
"phase_sequence": sequence,
"current_amplitude_A": amplitude,
"conductivity_MSm_m": conductivity,
"mesh_mm": mesh,
"boundary_radius_mm": radius,
"elements": mo_numelements(),
"Fx_N": fx,
"Fy_N": fy,
"lorentz_x_N": lorentz,
"loss_W": loss,
"summed_plate_current_real_A": plate_current.real,
"summed_plate_current_imag_A": plate_current.imag,
"summed_plate_current_abs_A": abs(plate_current),
"circuit_active_power_W": active,
"model": tag + ".fem",
}
ROWS.append(row)
current_residual = abs(plate_current) / max(amplitude, 1e-15)
check(
"Изолированная пластина: нулевой суммарный ток по интегралу J: " + tag,
current_residual,
1e-6,
current_residual < 1e-6,
)
if conductivity:
check(
"Баланс активной мощности: " + tag,
relative(active, loss),
0.005,
relative(active, loss) < 0.005,
)
check(
"Тяга: напряжения Максвелла и сила Лоренца: " + tag,
relative(fx, lorentz),
0.025,
relative(fx, lorentz) < 0.025,
)
mo_close()
mi_close()
return row
mesh_rows = [
field("сетка-" + str(k + 1), mesh) for k, mesh in enumerate((1.2, 0.8, 0.5))
]
fine = mesh_rows[-1]
check(
"Сходимость тяги на двух последних сетках",
relative(mesh_rows[-2]["Fx_N"], fine["Fx_N"]),
0.025,
relative(mesh_rows[-2]["Fx_N"], fine["Fx_N"]) < 0.025,
)
check(
"Сходимость потерь на двух последних сетках",
relative(mesh_rows[-2]["loss_W"], fine["loss_W"]),
0.025,
relative(mesh_rows[-2]["loss_W"], fine["loss_W"]) < 0.025,
)
reverse = field("обратное-чередование", 0.5, sequence=-1)
check(
"Реверс фаз меняет знак тяги",
relative(reverse["Fx_N"], -fine["Fx_N"]),
0.01,
relative(reverse["Fx_N"], -fine["Fx_N"]) < 0.01 and abs(fine["Fx_N"]) > 1e-5,
)
check(
"Реверс сохраняет джоулевы потери",
relative(reverse["loss_W"], fine["loss_W"]),
0.01,
relative(reverse["loss_W"], fine["loss_W"]) < 0.01,
)
doubled = field("двойной-ток", 0.5, amplitude=200)
check(
"Тяга пропорциональна квадрату тока",
relative(doubled["Fx_N"], 4 * fine["Fx_N"]),
0.001,
relative(doubled["Fx_N"], 4 * fine["Fx_N"]) < 0.001,
)
check(
"Потери пропорциональны квадрату тока",
relative(doubled["loss_W"], 4 * fine["loss_W"]),
0.001,
relative(doubled["loss_W"], 4 * fine["loss_W"]) < 0.001,
)
insulator = field("непроводящая-пластина", 0.5, conductivity=0)
check(
"Без проводимости интеграл силы Лоренца равен нулю",
abs(insulator["lorentz_x_N"]),
1e-12,
abs(insulator["lorentz_x_N"]) < 1e-12,
)
check(
"Без проводимости джоулевы потери равны нулю",
abs(insulator["loss_W"]),
1e-12,
abs(insulator["loss_W"]) < 1e-12,
)
zero_residual = abs(insulator["Fx_N"]) / max(abs(fine["Fx_N"]), 1e-15)
check(
"Остаток интеграла напряжений в воздухе относительно рабочей тяги",
zero_residual,
1e-4,
zero_residual < 1e-4,
)
far = field("удалённая-граница", 0.5, radius=600)
check(
"Влияние удаления внешней границы на тягу",
relative(far["Fx_N"], fine["Fx_N"]),
0.02,
relative(far["Fx_N"], fine["Fx_N"]) < 0.02,
)
for frequency in (10, 25, 100, 200, 500):
field("частота-" + str(frequency), 0.5, frequency=frequency)
finish({"x": "frequency_Hz", "y": "Fx_N"})
Картина рассчитанного поля
Окна FEMM 5
Снимки интерфейса FEMM показывают геометрию, настройки и работу с результатами в FEMM 5. Откройте изображение, чтобы рассмотреть подписи и значения в полном размере.
Результаты и численные проверки
Сохранено решений FEMM: 3. Выполнено проверок: 44. Полная точность чисел и условия сравнения доступны в таблицах результатов JSON.
| Активная мощность цепей, Вт | Модель | Частота, Гц | Поперечная сила Fy, Н | Модуль полного тока пластины, А | Радиус границы, мм | Состояние | Проводимость, МСм/м | Чередование фаз: +1/−1 | Сила Лоренца по x, Н | Продольная тяга Fx, Н | Элементов | Полный ток пластины Re(I), А | Полный ток пластины Im(I), А | Амплитуда фазного тока, А | Потери пластины, Вт | Масштаб сетки, мм |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 154 | сетка-1.fem | 50 | -12,7 | 228 × 10⁻⁹ | 400 | сетка-1 | 35 | 1 | 7,121 | 7,126 | 25487 | -120,9 × 10⁻⁹ | 193,3 × 10⁻⁹ | 100 | 154 | 1,2 |
| 154,1 | сетка-2.fem | 50 | -12,76 | 28,59 × 10⁻⁹ | 400 | сетка-2 | 35 | 1 | 7,127 | 7,129 | 45985 | -28,16 × 10⁻⁹ | 4,926 × 10⁻⁹ | 100 | 154,1 | 0,8 |
| 154,2 | сетка-3.fem | 50 | -12,79 | 16,07 × 10⁻⁹ | 400 | сетка-3 | 35 | 1 | 7,133 | 7,133 | 110731 | -1,805 × 10⁻⁹ | -15,97 × 10⁻⁹ | 100 | 154,2 | 0,5 |
| 154,2 | обратное-чередование.fem | 50 | -12,79 | 94,67 × 10⁻⁹ | 400 | обратное-чередование | 35 | -1 | -7,133 | -7,134 | 110731 | 86,1 × 10⁻⁹ | -39,35 × 10⁻⁹ | 100 | 154,2 | 0,5 |
| 616,7 | двойной-ток.fem | 50 | -51,15 | 32,14 × 10⁻⁹ | 400 | двойной-ток | 35 | 1 | 28,53 | 28,53 | 110731 | -3,611 × 10⁻⁹ | -31,94 × 10⁻⁹ | 200 | 616,7 | 0,5 |
| -178,1 × 10⁻¹² | непроводящая-пластина.fem | 50 | -934 × 10⁻⁶ | 0 | 400 | непроводящая-пластина | 0 | 1 | 0 | -312,5 × 10⁻⁶ | 110731 | 0 | 0 | 100 | 0 | 0,5 |
| 156,1 | удалённая-граница.fem | 50 | -12,91 | 16,5 × 10⁻⁹ | 600 | удалённая-граница | 35 | 1 | 7,102 | 7,102 | 149658 | 16,38 × 10⁻⁹ | 1,998 × 10⁻⁹ | 100 | 156,1 | 0,5 |
| 21,66 | частота-10.fem | 10 | -1,799 | 10,22 × 10⁻⁹ | 400 | частота-10 | 35 | 1 | 4,284 | 4,284 | 110731 | -8,579 × 10⁻⁹ | -5,552 × 10⁻⁹ | 100 | 21,66 | 0,5 |
| 85,27 | частота-25.fem | 25 | -7,077 | 14,74 × 10⁻⁹ | 400 | частота-25 | 35 | 1 | 7,246 | 7,246 | 110731 | -7,726 × 10⁻⁹ | -12,55 × 10⁻⁹ | 100 | 85,27 | 0,5 |
| 200,7 | частота-100.fem | 100 | -16,61 | 11,18 × 10⁻⁹ | 400 | частота-100 | 35 | 1 | 4,815 | 4,815 | 110731 | 7,615 × 10⁻⁹ | -8,184 × 10⁻⁹ | 100 | 200,7 | 0,5 |
| 223,8 | частота-200.fem | 200 | -18,32 | 36,57 × 10⁻⁹ | 400 | частота-200 | 35 | 1 | 2,559 | 2,558 | 110731 | 36,29 × 10⁻⁹ | -4,506 × 10⁻⁹ | 100 | 223,8 | 0,5 |
| 252,9 | частота-500.fem | 500 | -19,19 | 22,04 × 10⁻⁹ | 400 | частота-500 | 35 | 1 | 1,064 | 1,064 | 110731 | 16,55 × 10⁻⁹ | 14,55 × 10⁻⁹ | 100 | 252,9 | 0,5 |
| Критерий | Получено | Допуск или ожидаемое значение | Итог |
|---|---|---|---|
| Изолированная пластина: нулевой суммарный ток по интегралу J: сетка-1 | 2,28 × 10⁻⁹ | 1e-06 | Выполнен |
| Баланс активной мощности: сетка-1 | 21,69 × 10⁻¹² | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: сетка-1 | 708,4 × 10⁻⁶ | 0,025 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: сетка-2 | 285,9 × 10⁻¹² | 1e-06 | Выполнен |
| Баланс активной мощности: сетка-2 | 7,763 × 10⁻¹² | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: сетка-2 | 276,2 × 10⁻⁶ | 0,025 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: сетка-3 | 160,7 × 10⁻¹² | 1e-06 | Выполнен |
| Баланс активной мощности: сетка-3 | 6,112 × 10⁻¹² | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: сетка-3 | 3,814 × 10⁻⁶ | 0,025 | Выполнен |
| Сходимость тяги на двух последних сетках | 510,2 × 10⁻⁶ | 0,025 | Выполнен |
| Сходимость потерь на двух последних сетках | 446,9 × 10⁻⁶ | 0,025 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: обратное-чередование | 946,7 × 10⁻¹² | 1e-06 | Выполнен |
| Баланс активной мощности: обратное-чередование | 13,57 × 10⁻¹² | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: обратное-чередование | 115,9 × 10⁻⁶ | 0,025 | Выполнен |
| Реверс фаз меняет знак тяги | 122 × 10⁻⁶ | 0,01 | Выполнен |
| Реверс сохраняет джоулевы потери | 8,371 × 10⁻¹² | 0,01 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: двойной-ток | 160,7 × 10⁻¹² | 1e-06 | Выполнен |
| Баланс активной мощности: двойной-ток | 6,112 × 10⁻¹² | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: двойной-ток | 3,814 × 10⁻⁶ | 0,025 | Выполнен |
| Тяга пропорциональна квадрату тока | 0 | 0,001 | Выполнен |
| Потери пропорциональны квадрату тока | 0 | 0,001 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: непроводящая-пластина | 0 | 1e-06 | Выполнен |
| Без проводимости интеграл силы Лоренца равен нулю | 0 | 1e-12 | Выполнен |
| Без проводимости джоулевы потери равны нулю | 0 | 1e-12 | Выполнен |
| Остаток интеграла напряжений в воздухе относительно рабочей тяги | 43,81 × 10⁻⁶ | 0,0001 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: удалённая-граница | 165 × 10⁻¹² | 1e-06 | Выполнен |
| Баланс активной мощности: удалённая-граница | 373,3 × 10⁻¹⁵ | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: удалённая-граница | 13,76 × 10⁻⁶ | 0,025 | Выполнен |
| Влияние удаления внешней границы на тягу | 0,004376 | 0,02 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: частота-10 | 102,2 × 10⁻¹² | 1e-06 | Выполнен |
| Баланс активной мощности: частота-10 | 2,2 × 10⁻¹² | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: частота-10 | 26,18 × 10⁻⁶ | 0,025 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: частота-25 | 147,4 × 10⁻¹² | 1e-06 | Выполнен |
| Баланс активной мощности: частота-25 | 548,4 × 10⁻¹⁵ | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: частота-25 | 1,416 × 10⁻⁶ | 0,025 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: частота-100 | 111,8 × 10⁻¹² | 1e-06 | Выполнен |
| Баланс активной мощности: частота-100 | 10,32 × 10⁻¹² | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: частота-100 | 39,32 × 10⁻⁶ | 0,025 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: частота-200 | 365,7 × 10⁻¹² | 1e-06 | Выполнен |
| Баланс активной мощности: частота-200 | 127,1 × 10⁻¹² | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: частота-200 | 125,5 × 10⁻⁶ | 0,025 | Выполнен |
| Изолированная пластина: нулевой суммарный ток по интегралу J: частота-500 | 220,4 × 10⁻¹² | 1e-06 | Выполнен |
| Баланс активной мощности: частота-500 | 249,3 × 10⁻¹² | 0,005 | Выполнен |
| Тяга: напряжения Максвелла и сила Лоренца: частота-500 | 340,9 × 10⁻⁶ | 0,025 | Выполнен |
Допуски относятся к указанной учебной задаче и способу сравнения. Число показанных цифр не означает такой же физической точности.
Модели, решения и программа
Для нового расчёта сохраните программу, модели и необходимые данные в одну рабочую папку, сохраняя структуру подпапок.
- Файл результатов: README.md3831 байт
- Программа встроенного Python: reproduce.py15584 байт
- Файл результатов: verification.json9571 байт
- Магнитное решение: сетка-1.ans1774611 байт
- Магнитная модель: сетка-1.fem5779 байт
- Магнитное решение: сетка-2.ans3294618 байт
- Магнитная модель: сетка-2.fem6339 байт
- Магнитное решение: сетка-3.ans8084260 байт
- Магнитная модель: сетка-3.fem5677 байт
Границы применимости
- Скорость вторичной части равна нулю. Рабочая механическая характеристика, пуск и произвольное скольжение не рассчитаны.
- Для жидкого металла эта модель описывает только электромагнитную часть. Гидродинамика, расход и давление не определяются.
- Нулевой полный ток пластины задан явно. Детальное замыкание вихревых токов и торцевые поля по z плоская модель не описывает. Температура, насыщение и активные потери обмотки здесь не моделируются.