Implement atmosphere and dynamics data
This commit is contained in:
21
MEMORY.md
21
MEMORY.md
@@ -41,6 +41,9 @@ This file is the durable handoff for AI agents working in this repository. Keep
|
||||
- Compute `P11k = P0*(T/T0)^(-g/(lapserate*R))`.
|
||||
- Compute `P = P11k*exp(-g*(z - 11000)/(R*T))`.
|
||||
- Then compute `rho = P/(R*T)` and `acousticSpeed = sqrt(gamma*R*T)`.
|
||||
- Active implementation assumptions:
|
||||
- `Maz = 0 deg` is currently assumed in `code/Interceptor_3DOF.m` to preserve the coplanar `y = 0` engagement geometry until a source document says otherwise.
|
||||
- The target and missile thrust, mass, and drag arrays were manually transcribed from the image-based plots in `docs/Missile and Target Data for 3DOF Spring 26.pdf` on `2026-03-28`.
|
||||
- Assignment baseline confirmed from the handout:
|
||||
- Velocity pursuit guidance gain = `0.5`
|
||||
- Blind range = `2 m`
|
||||
@@ -60,18 +63,20 @@ This file is the durable handoff for AI agents working in this repository. Keep
|
||||
## Code Status
|
||||
|
||||
- [`code/Interceptor_3DOF.m`](./code/Interceptor_3DOF.m) drives the integration loop, plotting, and CSV export.
|
||||
- [`code/T3dxdt.m`](./code/T3dxdt.m), [`code/M3dxdt.m`](./code/M3dxdt.m), and [`code/getGuidance.m`](./code/getGuidance.m) still contain `XX` placeholders.
|
||||
- `getRho.m` is referenced by the driver and both dynamics functions, but the file is missing.
|
||||
- Because `getRho.m` does not exist yet, neither the lower-atmosphere branch nor the addendum-defined stratosphere branch for `z > 11 km` is implemented in the repo.
|
||||
- [`code/getRho.m`](./code/getRho.m) now exists and implements both the lower-atmosphere model and the addendum-defined stratosphere branch for `z > 11 km`.
|
||||
- [`code/Interceptor_3DOF.m`](./code/Interceptor_3DOF.m) and [`code/getGuidance.m`](./code/getGuidance.m) now contain the known scalar assignment constants.
|
||||
- [`code/T3dxdt.m`](./code/T3dxdt.m) and [`code/M3dxdt.m`](./code/M3dxdt.m) now contain manually transcribed target/missile reference areas, thrust curves, mass curves, and drag tables.
|
||||
- [`code/getGuidance.m`](./code/getGuidance.m) now normalizes input shapes to column vectors so `M3dxdt` can call it without row/column mismatch failures.
|
||||
- Octave now evaluates `getRho.m`, `T3dxdt.m`, and `M3dxdt.m` successfully, and the full script begins integrating without placeholder errors.
|
||||
- End-to-end validation is still incomplete because the current nested `ode45` loop runs very slowly in Octave and was not observed through final plot/CSV generation within the available runtime.
|
||||
- [`code/getMD.m`](./code/getMD.m) exists and computes miss distance at the point of closest approach.
|
||||
- The missile/target data PDF appears image-based; a future agent should log the extraction method used when those tables are transcribed.
|
||||
|
||||
## Next Actions
|
||||
|
||||
1. Implement `getRho.m` and integrate it into the simulation, including the required stratosphere branch for altitude `> 11 km`.
|
||||
2. Transcribe missile and target geometry, thrust, mass, and drag data from the missile/target packet.
|
||||
3. Replace all remaining `XX` placeholders with sourced values.
|
||||
4. Run the MATLAB model and verify the required plots and CSV outputs.
|
||||
1. Complete an end-to-end Octave validation run and confirm that the required plots and CSV files are produced.
|
||||
2. Investigate the runtime cost of the nested `ode45` loop in [`code/Interceptor_3DOF.m`](./code/Interceptor_3DOF.m) if full validation remains too slow.
|
||||
3. Confirm whether the temporary `Maz = 0 deg` assumption should remain.
|
||||
4. Decide whether the manually transcribed target/missile curves need a second pass for tighter fidelity.
|
||||
|
||||
## Update Protocol For Agents
|
||||
|
||||
|
||||
Reference in New Issue
Block a user