Пружинный маятник в среде с сопротивлением

Описание


Цель проекта: разработать программный продукт, представляющий собой виртуальную физическую лабораторию, моделирующую поведение пружинного маятника в среде с сопротивлением

Язык программирования: C++

Фреймворк: Qt4 / Qt5 / Qt6

Лицензия: GNU GPL v3

Описание установки

В программе моделируются свободные затухающие колебания пружинного маятника.

Существует возможность изменять следующие параметры модели:

Для удобства проведения эксперимента добавлены секундомер и возможность изменения скорости опыта, а так же линейка для измерения смещения груза от положения равновесия.

В программе могут быть выведены графики следующих зависимостей:


Скриншоты

 


Загрузка

Исходный код:
pendulum-1.2.zip
pendulum-1.2.tar.gz

Git:
https://github.com/AlienCowEatCake/pendulum.git

Бинарные сборки:
Компилятор / Qt ОС Ссылка
MinGW 3.4.2, Qt 4.4.3 Windows 98 SE и выше pendulum_qt4.4_mingw32.zip
MSVC 2017 x86, Qt 5.6.3 Windows XP SP3 и выше pendulum_qt5.6_msvc2017_x86.zip
MSVC 2017 x64, Qt 5.6.3 Windows XP x64 SP2 и выше pendulum_qt5.6_msvc2017_x64.zip
MSVC 2022 x86, Qt 5.15.5 Windows 7 x86 и выше pendulum_qt5.15_msvc2022_x86.zip
MSVC 2022 x64, Qt 5.15.5 Windows 7 x64 и выше pendulum_qt5.15_msvc2022_x64.zip
GCC 4.8.5 i486, Qt 5.6.3 GNU/Linux i486 pendulum_qt5.6_i486-linux-gnu.elf.gz
GCC 4.8.5 x86_64, Qt 5.6.3 GNU/Linux x86_64 pendulum_qt5.6_x86_64-linux-gnu.elf.gz
Clang 9.0.0 x86_64, Qt 5.15.5 GNU/Linux x86_64 (AppImage) pendulum_qt5.15_x86_64-linux-gnu.AppImage
Clang 9.0.0 x86_64, Qt 5.15.5 GNU/Linux x86_64 (deb) pendulum_1.2.0-1_amd64.deb
Apple Clang 13.1.6, Qt 5.6.3 Mac OS X 10.6 и выше (x86_64) pendulum_qt5.6_clang64_libstdcxx.dmg
Apple Clang 13.1.6, Qt 5.15.5 Mac OS X 10.10 и выше (x86_64/AArch64) pendulum_qt5.15_universal_target10.10.dmg

Архив версий:
Releases


Список изменений

[v1.2] - 29 Aug 2022 Предыдущие версии
[v1.1] - 05 Dec 2021 [v1.0] - 31 Dec 2016 [v0.40] - 25 Aug 2015 [v0.39] - 05 Jan 2015 [v0.38] - 24 Aug 2014 [v0.37] - 20 Aug 2014 [v0.36] - 07 Aug 2014 [v0.35] - 09 Jan 2014 [v0.34] - 01 Dec 2013 [v0.33] - 11 Nov 2013 [v0.32] - 29 Oct 2013 [v0.31] - 27 Oct 2013 [v0.30] - 27 Oct 2013 Список предыдущих изменений, увы, не сохранился.


Модель

[image]

r — коэффициент сопротивления среды,
k — коэффициент жёсткости пружины,
m — масса груза,
A_0 — начальная амплитуда,
x — смещение груза,
t — время,
ω_0=sqrt(k/m) — циклическая частота свободных незатухающих колебаний,
β=r/(2*m) — коэффициент затухания,
ω=sqrt(ω_0^2-β^2) — циклическая частота свободных затухающих колебаний,
T=2*π/sqrt(ω_0^2-β^2) — период колебаний,
A_T=A_0*exp(-β*T)*cos(ω*T) — амплитуда колебаний в момент времени, равный периоду,
θ=ln(A_0/A_T) — логарифмический декремент,
E_0=k*A_0^2/2 — энергия в начале эксперимента,
x=A_0*exp(-β*t)*cos(ω*t) — смещение в текущий момент времени,
v=Δx/Δt — скорость в текущий момент времени,
E=E_0*exp(-2*β*t) — энергия в текущий момент времени.