8000 ENH: Implementing 3-dof-simulation by aZira371 · Pull Request #745 · RocketPy-Team/RocketPy · GitHub
[go: up one dir, main page]

Skip to content

ENH: Implementing 3-dof-simulation #745

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 20 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
e557e17
DRAFT: for ENH/3-dof-simulation (See #655)
aZira371 Dec 3, 2024
a768648
ENH/3-dof-simulation (See RocketPy-Team#655)
aZira371 Dec 6, 2024
9b00c57
MNT: cleaned up new functions and
aZira371 Dec 6, 2024
87e9180
Rebase: Merge branch 'develop' of https://github.com/aZira371/RocketP…
aZira371 Feb 25, 2025
4524219
ENH: Addition of point mass classes to rocketpy.rocket and rocketpy.m…
aZira371 Feb 25, 2025
57b4732
ENH: PointMassMotor and PointMassRocket working as intended after som…
aZira371 Apr 11, 2025
81ce869
MNT: Removing unnecessary files added by mistake.
aZira371 Apr 11, 2025
0673076
Merge branch 'RocketPy-Team:master' into enh/3-dof-simulation
aZira371 Apr 24, 2025
47c9f2f
MNT: Cleaned up PointMassMotor and PointMassRocket class
aZira371 May 10, 2025
f6ad658
Merge branch 'enh/3-dof-simulation' of https://github.com/aZira371/Ro…
aZira371 May 10, 2025
33cb63a
MNT: Cleaning up flight class and PointMassMotor class
aZira371 May 10, 2025
1d2d4dc
Merge branch 'enh/3-dof-simulation' into develop
aZira371 Jun 10, 2025
fe21271
Merge pull request #1 from aZira371/develop
aZira371 Jun 10, 2025
b18b241
MNT: point mass motor cleanup
aZira371 Jun 26, 2025
8aa1016
ENH: restructuring rocket class
aZira371 Jun 30, 2025
87e7dce
MNT: fixing certain calculations on point mass motor
aZira371 Jul 11, 2025
0e4d8a4
Rename PointMassMotor.py to pointmassmotor.py
aZira371 Jul 11, 2025
41e94f1
Merge branch 'develop' into enh/3-dof-simulation
aZira371 Jul 11, 2025
e299a30
MNT: updates to 3dof example
aZira371 Jul 11, 2025
d4dc989
MNT: lint cleanup and adding 3dof to init
aZira371 Jul 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
MNT: Removing unnecessary files added by mistake.
  • Loading branch information
aZira371 committed Apr 11, 2025
commit 81ce8691208ab9d947be6b0a1c77a8b8fd935e54
18 changes: 4 additions & 14 deletions docs/examples/3_DOF_TRIAL.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -140,19 +140,9 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"wind_velocity_y = Function from R1 to R1 : (Height Above Sea Level (m)) → (Wind Velocity Y (m/s))\n",
"type: <class 'rocketpy.mathutils.function.Function'>\n",
"has get_value_opt: True\n"
]
}
],
"outputs": [],
"source": [
"def wrap_env_check(env):\n",
" original_get_value_opt = env.wind_velocity_y.get_value_opt\n",
Expand All @@ -167,7 +157,7 @@
},
{
"cell_type": "code",
"execution_count": 21,
"execution_count": 28,
"metadata": {},
"outputs": [
{
Expand All @@ -177,7 +167,7 @@
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[21], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# Simulate Flight (3 DOF)\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m flight \u001b[38;5;241m=\u001b[39m \u001b[43mFlight\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43mrocket\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrocket\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43menvironment\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43menv\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mrail_length\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m5.0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43minclination\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m85\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# degrees from horizontal\u001b[39;49;00m\n\u001b[0;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43mheading\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m90\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# east\u001b[39;49;00m\n\u001b[0;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[43msimulation_mode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m3 DOF\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mterminate_on_apogee\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43mmax_time\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m20\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 11\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mTest3DOF\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\n\u001b[0;32m 12\u001b[0m \u001b[43m)\u001b[49m\n",
"Cell \u001b[1;32mIn[28], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;66;03m# Simulate Flight (3 DOF)\u001b[39;00m\n\u001b[1;32m----> 2\u001b[0m flight \u001b[38;5;241m=\u001b[39m \u001b[43mFlight\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 3\u001b[0m \u001b[43m \u001b[49m\u001b[43mrocket\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mrocket\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 4\u001b[0m \u001b[43m \u001b[49m\u001b[43menvironment\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43menv\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 5\u001b[0m \u001b[43m \u001b[49m\u001b[43mrail_length\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m5.0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 6\u001b[0m \u001b[43m \u001b[49m\u001b[43minclination\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m85\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# degrees from horizontal\u001b[39;49;00m\n\u001b[0;32m 7\u001b[0m \u001b[43m \u001b[49m\u001b[43mheading\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m90\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# east\u001b[39;49;00m\n\u001b[0;32m 8\u001b[0m \u001b[43m \u001b[49m\u001b[43msimulation_mode\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m3 DOF\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 9\u001b[0m \u001b[43m \u001b[49m\u001b[43mterminate_on_apogee\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[0;32m 10\u001b[0m \u001b[43m \u001b[49m\u001b[43mmax_time\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m20\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[0;32m 11\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mTest3DOF\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\n\u001b[0;32m 12\u001b[0m \u001b[43m)\u001b[49m\n",
"File \u001b[1;32mE:\\books\\New folder\\MSc\\RocketPy\\development\\RocketPy\\rocketpy\\simulation\\flight.py:653\u001b[0m, in \u001b[0;36mFlight.__init__\u001b[1;34m(self, rocket, environment, rail_length, inclination, heading, initial_solution, terminate_on_apogee, max_time, max_time_step, min_time_step, rtol, atol, time_overshoot, verbose, name, equations_of_motion, simulation_mode, ode_solver)\u001b[0m\n\u001b[0;32m 650\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mflight_phases\u001b[38;5;241m.\u001b[39madd_phase(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmax_time)\n\u001b[0;32m 652\u001b[0m \u001b[38;5;66;03m# Simulate flight\u001b[39;00m\n\u001b[1;32m--> 653\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m__simulate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mverbose\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 655\u001b[0m \u001b[38;5;66;03m# Initialize prints and plots objects\u001b[39;00m\n\u001b[0;32m 656\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprints \u001b[38;5;241m=\u001b[39m _FlightPrints(\u001b[38;5;28mself\u001b[39m)\n",
"File \u001b[1;32mE:\\books\\New folder\\MSc\\RocketPy\\development\\RocketPy\\rocketpy\\simulation\\flight.py:817\u001b[0m, in \u001b[0;36mFlight.__simulate\u001b[1;34m(self, verbose)\u001b[0m\n\u001b[0;32m 814\u001b[0m \u001b[38;5;66;03m# Step through simulation\u001b[39;00m\n\u001b[0;32m 815\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m phase\u001b[38;5;241m.\u001b[39msolver\u001b[38;5;241m.\u001b[39mstatus \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mrunning\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[0;32m 816\u001b[0m \u001b[38;5;66;03m# Execute solver step, log solution and function evaluations\u001b[39;00m\n\u001b[1;32m--> 817\u001b[0m \u001b[43mphase\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msolver\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstep\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 818\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msolution \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m [[phase\u001b[38;5;241m.\u001b[39msolver\u001b[38;5;241m.\u001b[39mt, \u001b[38;5;241m*\u001b[39mphase\u001b[38;5;241m.\u001b[39msolver\u001b[38;5;241m.\u001b[39my]]\n\u001b[0;32m 819\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfunction_evaluations\u001b[38;5;241m.\u001b[39mappend(phase\u001b[38;5;241m.\u001b[39msolver\u001b[38;5;241m.\u001b[39mnfev)\n",
"File \u001b[1;32mc:\\Users\\Dell\\AppData\\Local\\Programs\\Python\\Python39\\lib\\site-packages\\scipy\\integrate\\_ivp\\base.py:181\u001b[0m, in \u001b[0;36mOdeSolver.step\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 179\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 180\u001b[0m t \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mt\n\u001b[1;32m--> 181\u001b[0m success, message \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_step_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 183\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m success:\n\u001b[0;32m 184\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstatus \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mfailed\u001b[39m\u001b[38;5;124m'\u001b[39m\n",
Expand Down
Loading
Loading
0