"""Проверить запас тяги по допуску зазора.

Среда: встроенный MicroPython FEMM 5.
Самостоятельный аналитический контроль; полевой решатель не вызывается.
"""
import math
mu0 = 4 * math.pi * 1e-7
# Постоянная нагрузка и линейная цепь выбраны только для независимого контроля.
area, iron_length, mur, current, load = 2e-4, .20, 2000, 1.0, 4.5
def force(n, gap):
    return mu0 * n*n * area * current*current / (2*gap + iron_length/mur)**2
# Худший зазор больше номинального; для каждого числа витков нужен свой расчёт катушки.
for n in [300, 330]:
    for gap in [.0009, .001, .0011]:
        f = force(n, gap)
        print("Витки; зазор, м; тяга, Н; запас, Н:", n, gap, f, f-load)
