"""Насыщение и таблицы потокосцеплений по продольной и поперечной осям генератора.

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

# Линейные продольная и поперечная индуктивности, Гн; потокосцепление возбуждения, Вб.
# Токи по осям d и q заданы амплитудными значениями, А.
pole_pairs, ld_h, lq_h, excitation_wb = 2, 0.08, 0.05, 1.0
id_a, iq_a = -2.0, 5.0
# Ось d направлена вдоль возбуждения; ось q — поперёк. Потокосцепления выражены в Вб.
lambda_d = ld_h * id_a + excitation_wb
lambda_q = lq_h * iq_a
# Коэффициент 3/2 соответствует выбранному преобразованию трёх фаз и амплитудным токам.
torque_nm = 1.5 * pole_pairs * (lambda_d * iq_a - lambda_q * id_a)
# Порядок вывода: продольное потокосцепление, Вб; поперечное потокосцепление, Вб; момент, Н·м.
print(lambda_d, lambda_q, torque_nm)
# Скоростное напряжение добавляется отдельно:
# vd = resistance*id_a - omega_electrical*lambda_q
# vq = resistance*iq_a + omega_electrical*lambda_d
