"""Серия расчётов по частоте и определение параметров асинхронного двигателя.

Среда: встроенный MicroPython FEMM 5.
Аналитический учебный пример; полевой решатель не вызывается.
Параметры, единицы величин и порядок вывода пояснены по стадиям.
"""

import math

# Частота сети, Гц; число пар полюсов; частота вращения ротора, об/мин.
frequency_hz, pole_pairs, speed_rpm = 50, 2, 1425
# Синхронная частота вращения: 60·f/p, об/мин. Скольжение безразмерно.
sync_speed_rpm = 60 * frequency_hz / pole_pairs
slip = (sync_speed_rpm - speed_rpm) / sync_speed_rpm
# Порядок вывода: синхронная частота вращения, об/мин; скольжение; частота ротора, Гц.
print(sync_speed_rpm, slip, slip * frequency_hz)
# Учебная серия по частоте ротора. Формула сопротивления не решает полевую задачу.
for rotor_frequency_hz in [1, 3]:
    impedance_ohm = 0.5 + 1j * 2 * math.pi * rotor_frequency_hz * 0.02
    resistance = impedance_ohm.real
    # Из мнимой части Z выделяем L = Im(Z)/(2πf); при f = 0 эта формула неприменима.
    inductance = impedance_ohm.imag / (2 * math.pi * rotor_frequency_hz)
    # Порядок вывода: частота, Гц; полное сопротивление, Ом; активное сопротивление, Ом; L, Гн.
    print(rotor_frequency_hz, impedance_ohm, resistance, inductance)
