A modular Python library for simulating vehicle longitudinal dynamics, fitting parameters from real trip data, and running physics-based simulations.
- Physics-Based Simulation: Detailed DC motor + nonlinear brake + wheel dynamics model
- Parameter Fitting: Fit 18+ vehicle parameters from real trip data using trajectory optimization
- Interactive GUI: User-friendly interface for parameter fitting and visualization
- Data Processing: Tools for fetching and parsing trip data from S3 or local files
- Modular Design: Clean separation between simulation, fitting, and data handling
pip install -r requirements.txt
# Or install as package:
pip install -e .from simulation.dynamics import ExtendedPlant, ExtendedPlantParams
# Create vehicle model
params = ExtendedPlantParams()
plant = ExtendedPlant(params)
# Simulate
plant.reset(speed=0.0)
for _ in range(100):
state = plant.step(0.5, dt=0.1) # 50% throttle
print(f"Speed: {state.speed:.2f} m/s")# Using command line
python scripts/fit_params.py \
--data data/processed/vehicle/all_trips_data.pt \
--output fitted_params.json
# Or using GUI
python examples/gui_usage.pypython scripts/simulate_trip.py \
--params fitted_params.json \
--trip-data data/processed/vehicle/all_trips_data.pt \
--output results.npz- Getting Started - Installation and quick start
- Dynamics Model - Physics equations and model details
- Fitting Guide - Parameter fitting workflow
- API Reference - Complete API documentation
See the examples/ directory for:
basic_simulation.py- Simple simulation examplefit_from_data.py- Parameter fitting examplegui_usage.py- GUI usage examplecustom_vehicle.py- Custom vehicle configurations
simulation_repo/
├── simulation/ # Core dynamics simulation
├── fitting/ # Parameter fitting
├── data/ # Data fetching and parsing
├── utils/ # Utility functions
├── scripts/ # Command-line tools
├── tests/ # Test suite
├── examples/ # Usage examples
└── docs/ # Documentation
# Run all tests
pytest tests/
# Run specific test categories
pytest tests/test_dynamics.py
pytest tests/test_fitting.py
pytest tests/test_data_parsing.py
pytest tests/test_simulation.py- Python 3.10+
- numpy, scipy, torch
- pandas, boto3 (for data handling)
- matplotlib (for visualization)
- tkinter (for GUI, included with Python)
See requirements.txt for complete list.