"""Динамика цепи и механики с квазистатическим восстановлением поля.

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

# Момент инерции, кг·м²; электромагнитный момент и момент нагрузки, Н·м.
inertia_kgm2, torque_nm, load_nm = 0.001, 1.0, 0.2
# Начальная угловая скорость, рад/с; шаг времени, с. Моменты в пределах шага постоянны.
omega_start, step_s = 100.0, 0.0001
# Угловое ускорение определяется разностью моментов, делённой на момент инерции, рад/с².
acceleration = (torque_nm - load_nm) / inertia_kgm2
omega_end = omega_start + acceleration * step_s
# Изменение угла учитывает начальную скорость и постоянное ускорение, рад.
angle_change = omega_start * step_s + 0.5 * acceleration * step_s**2
# Независимо вычисляем приращение кинетической энергии и работу разности моментов, Дж.
energy_change = 0.5 * inertia_kgm2 * (omega_end**2 - omega_start**2)
mechanical_work = (torque_nm - load_nm) * angle_change
# Порядок вывода: конечная скорость; изменение угла; изменение энергии; механическая работа.
print(omega_end, angle_change, energy_change, mechanical_work)
print("Остаток энергии, Дж:", energy_change - mechanical_work)
