Spaces:
Running
Running
| # Interactive SDOF Vibration Simulator | |
| ## Overview | |
| The **Interactive SDOF Vibration Simulator** is a web-based educational tool designed to help students and engineers visualize the dynamics of a **Single-Degree-of-Freedom (SDOF)** system. It provides real-time simulation and visualization of how a mass-spring-damper system responds to external forces and initial conditions. | |
| ## Key Features | |
| ### 1. Real-Time Simulation | |
| - Powered by a custom **Runge-Kutta 4th Order (RK4)** solver for high accuracy. | |
| - Solves the differential equation: $m\ddot{u} + c\dot{u} + ku = F(t)$. | |
| - Updates continuously as you adjust parameters. | |
| ### 2. Interactive Controls | |
| Adjust system parameters on the fly with responsive sliders: | |
| - **System Properties**: Mass ($m$), Stiffness ($k$), Damping Coefficient ($c$). | |
| - **Forcing**: Force Amplitude ($F_0$), Forcing Frequency ($p$). | |
| - **Initial Conditions**: Initial Displacement ($u_0$), Initial Velocity ($v_0$). | |
| ### 3. Dynamic Visualization | |
| - **Animated Diagram**: A physics-based SVG representation of the mass, spring, and damper that moves in sync with the simulation. | |
| - **Live Plots**: Real-time time-history graphs for **Displacement ($u$)** and **Velocity ($\dot{u}$)**. | |
| ### 4. Instant Analysis | |
| Automatically calculates and displays key system characteristics: | |
| - **Natural Frequency ($\omega_n$)** | |
| - **Damping Ratio ($\zeta$)** | |
| - **Damping Regime**: Automatically classifies the system as **Underdamped**, **Critically Damped**, or **Overdamped**. | |
| ## Technical Details | |
| - **Frontend**: Pure HTML5, CSS3, and Vanilla JavaScript. | |
| - **Styling**: Modern, responsive dark-mode design using CSS Variables and Flexbox/Grid. | |
| - **Performance**: Optimized canvas rendering for smooth 60fps plotting. | |
| - **No Dependencies**: Runs entirely in the browser without external libraries. | |
| ## Usage | |
| 1. Open `index.html` in a modern web browser. | |
| 2. Use the sliders on the left to modify the system. | |
| 3. Observe the diagram and plots update instantly. | |
| 4. To simulate **Free Vibration**, set the **Forcing Amp ($F_0$)** to `0` and adjust the **Initial Displacement** or **Velocity**. | |