jcurve
Code for paper "Jerk, Acceleration, and Speed on Inclined Surfaces", 2024.
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.1%) to scientific vocabulary
Keywords
Repository
Code for paper "Jerk, Acceleration, and Speed on Inclined Surfaces", 2024.
Basic Info
- Host: GitHub
- Owner: mateo-patino
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://github.com/MateoGitIt/constant-jerk-curve
- Size: 76.2 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
Modelling a Constant-Jerk Curve 🎢
This repository contains code for the paper "Jerk, Speed, and Acceleration on Inclined Surfaces." The Python scripts here implement a tool to visualize the constant-jerk y=y(x) curve presented in the paper. A hodograph of the jerk and acceleration vectors for an object traveling along the curve is also available.
Installation
Our code requires Python3 and certain external libraries ("dependencies") to run. First, make sure you have Python3 installed in your system. Then, install our code's dependencies by running
pip install -r requirements.txt
If you encounter issues with the command above, you can install each dependency separately using
pip install dependency_name==version_number
The version number for each dependency can be found in the requirements.txt file.
Usage
As a user, there are two ways to interact with our code: by running curves.py or hodograph.py. Running curves.py will allow you to visualize two curves – the curve yielded by the Runge-Kutta 4 solution to either the scalar jerk or tangential jerk equations and the time-dependent curve calculated from kinematic equations. curves.py also has a feature that allows you to create an output file with all the data associated to the curve and the acceleration and jerk vectors, so you can further analyze the curves on your own. Running hodograph.py will launch a hodograph animation that represents the acceleration and jerk vectors moving along the curve.
Both curves.py and hodograph.py have different features that give you control over the hodograph animation and the curves displayed, respectively. To interact with these features, you will have to change certain variables in the source code of curves.py and hodograph.py and then run the programs. Therefore, we recommend you install Visual Studio Code, PyCharm, or any other code editor in order to modify the programs' code easily and run them. Instructions on how to execute each program are provided below.
Instructions and examples
Setting initial conditions
Like all numerically-simulated physical scenarios, our code requires initial physical conditions to run. The inputParams.py file contains twelve variables that you may modify to indicate what the initial conditions are. All the variables are in SI units.
1. JERK_MAGNITUDE (integer or float): the magnitude of the scalar or tangential jerk.
2. JERK_EQUATION (string): the equation you would like to run Runge-Kutta 4 on (either the equation for scalar jerk or tangential jerk). Only accepted values are "scalar" or "tangential".
3. GRAVITATIONAL_ACCELERATION (integer or float): the acceleration due to Earth's gravitational field (little g).
4. INITIAL_ACCELERATION (integer or float): the magnitude of acceleration at time = 0.
5. INITIAL_SPEED (integer or float): the magnitude of the velocity at time = 0.
6. INITIAL_HEIGHT (integer or float): the magnitude of the position at time = 0.
7. CURVE_HORIZONTAL_LENGTH (integer or float): the length along the x axis of the curve; modifying this value makes the curve longer or shorter horizontally.
8. TIME_DURATION (integer or float): the amount of time for which to run the kinematics equations to simulate the kinematics-based curve.
9. STEP_SIZE (float < 1): the horizontal step size for running the RK4 simulation; recommended values 0.1 > dx > 0.001.
10. TIME_INCREMENT (float < 1): the time step size for running the kinematics simulation; recommended values 0.1 > dt > 0.001
11. DECIMALS_TO_ROUND (integer): the number of decimal places to round values output through the terminal and in the output CSV files.
12. Q_FACTOR (integer or float): the moment of inertia factor (set to 1 if the object is not rolling).
Owner
- Name: Mateo
- Login: mateo-patino
- Kind: user
- Repositories: 1
- Profile: https://github.com/mateo-patino
Saco, ME.
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: Jcurve
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Mateo
family-names: Patino
email: mateo.patino25@thorntonacademy.org
affiliation: Thornton Academy
orcid: 'https://orcid.org/0009-0002-0508-279X'
- given-names: Clinton
family-names: Nash
email: clinton.nash@thorntonacademy.org
affiliation: Thornton Academy
repository-code: 'https://github.com/mateo-patino/jcurve'
GitHub Events
Total
- Push event: 2
Last Year
- Push event: 2
Dependencies
- XlsxWriter ==3.2.0
- contourpy ==1.2.1
- cycler ==0.12.1
- et-xmlfile ==1.1.0
- fonttools ==4.53.0
- joblib ==1.4.2
- kiwisolver ==1.4.5
- matplotlib ==3.9.0
- numpy ==1.26.4
- openpyxl ==3.1.4
- packaging ==24.1
- pandas ==2.2.2
- pillow ==10.3.0
- pyparsing ==3.1.2
- python-dateutil ==2.9.0.post0
- pytz ==2024.1
- scikit-learn ==1.5.0
- scipy ==1.13.1
- sigfig ==1.3.3
- six ==1.16.0
- sortedcontainers ==2.4.0
- threadpoolctl ==3.5.0
- tzdata ==2024.1