"""Симметричная и несимметричная нагрузка.

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

import math, cmath

# Фазные напряжения заданы действующими комплексными значениями, В.
voltage_rms = 230.0
# Порядок фаз в каждом списке одинаков: A, B, C; углы заданы в градусах.
angles_deg = [0, -120, 120]
loads_ohm = [10, 20, 20]
# Для комплексной экспоненты переводим углы из градусов в радианы.
voltages = [voltage_rms * cmath.exp(1j * math.radians(angle)) for angle in angles_deg]
currents = [voltages[k] / loads_ohm[k] for k in range(3)]
# Ток нейтрали противоположен сумме фазных токов при выбранном направлении отсчёта.
neutral_current = -sum(currents)
# При действующих значениях коэффициент 1/2 в формуле мощности отсутствует.
power = sum((voltages[k] * currents[k].conjugate()).real for k in range(3))
# Порядок вывода: фазные токи, А; ток нейтрали, А; суммарная активная мощность, Вт.
print(currents, neutral_current, power)
