Files
Hayden-Project/README.md
2026-03-28 16:33:32 -05:00

67 lines
4.3 KiB
Markdown

# Hayden Project
Hayden Project is a MATLAB 3DOF interceptor-versus-target engagement simulation repository for the AERO 3220 Spring 2026 coursework. The project is driven by the PDFs in [`docs/`](./docs) and implemented through the MATLAB files in [`code/`](./code).
## What The Docs Define
- [`docs/AERO 3220 3DOF Information Spring 26.pdf`](./docs/AERO%203220%203DOF%20Information%20Spring%2026.pdf) defines the assignment, required plots, and evaluation settings.
- [`docs/Atmosphere Model SI Units.pdf`](./docs/Atmosphere%20Model%20SI%20Units.pdf) provides the SI-unit atmosphere equations for temperature, pressure, density, acoustic speed, and Mach number for the lower-atmosphere branch shown in the handout.
- [`docs/Addendum to Atomosphere Model Feb 26.pdf`](./docs/Addendum%20to%20Atomosphere%20Model%20Feb%2026.pdf) defines the stratosphere extension for altitudes above `11 km` MSL.
- [`docs/Missile and Target Data for 3DOF Spring 26.pdf`](./docs/Missile%20and%20Target%20Data%20for%203DOF%20Spring%2026.pdf) is the source packet for the missile and target geometry, propulsion, and drag data that must be transcribed into the simulation.
## Instructor Clarification
Per professor guidance documented on `2026-03-28`:
- The atmosphere model must be written and integrated into the 3DOF simulation.
- The final atmosphere implementation must include the stratosphere model for altitudes above `11 km`.
- The source files are intentionally incomplete until the missing `XX` values are replaced with real numbers from the assignment material.
- The addendum specifies that for `z > 11000 m`, `T` is held constant at the `11 km` value, `P` decays exponentially from `P11k`, `rho = P/(R*T)`, and `acousticSpeed = sqrt(gamma*R*T)`.
## Assignment Baseline
The course handout specifies these evaluation values:
- Velocity pursuit guidance gain: `0.5`
- Blind range: `2 m`
- Acquisition range: `5000 m`
- Lateral acceleration limit: `40 g`
- Time after missile launch to initiate velocity-pursuit guidance: `0.5 s`
- Terminal proportional-navigation gain: `4`
- Commit time: `50 s`
- Missile initial elevation angle: `40 deg`
The required outputs are:
- Target and missile trajectories in the vertical plane (`x` vs `z`)
- Target speed versus time
- Missile speed versus time
- Missile Mach number versus time
- Missile acceleration magnitude versus time since missile launch
## Current Code State
- [`code/Interceptor_3DOF.m`](./code/Interceptor_3DOF.m) is the top-level driver script and writes `Ttrajectory.csv` and `Mtrajectory.csv`.
- [`code/T3dxdt.m`](./code/T3dxdt.m) and [`code/M3dxdt.m`](./code/M3dxdt.m) now include transcribed target and interceptor area, thrust, mass, and drag data from the course plots.
- [`code/getGuidance.m`](./code/getGuidance.m) holds the guidance-law logic.
- [`code/getRho.m`](./code/getRho.m) now implements the lower-atmosphere model and the addendum-defined stratosphere branch.
- [`code/getMD.m`](./code/getMD.m) computes miss distance near the point of closest approach.
At the moment, the repository is a partially completed assignment skeleton rather than a finished simulation:
- The executable `XX` placeholders have been removed from the current MATLAB code.
- The target and missile curves were manually transcribed from the image-based course plots, so those values should be treated as sourced approximations rather than machine-extracted ground truth.
- The model starts running in Octave, but the nested fixed-step `ode45` loop is slow enough that end-to-end validation is still incomplete.
## Working Expectations
- Keep units in SI unless a source document explicitly states otherwise.
- Treat `/docs` and direct instructor clarifications as authoritative for assignment requirements and parameter values.
- Record assumptions, extracted tables, unresolved issues, and verification status in [`MEMORY.md`](./MEMORY.md).
- Track the active execution queue in [`TODO.md`](./TODO.md).
- Record dated repository-level changes in [`CHANGELOG.md`](./CHANGELOG.md).
## For AI Agents
Read [`MEMORY.md`](./MEMORY.md) before making changes. Use [`MEMORY.md`](./MEMORY.md) for durable handoff context, [`TODO.md`](./TODO.md) for the live task queue, and [`CHANGELOG.md`](./CHANGELOG.md) for dated repo history, and update the file whose role changed so the next agent can continue without re-discovering context.