From 4be854632028788afdc968a42a0eb91e58251536 Mon Sep 17 00:00:00 2001 From: Hattie Bolchover Date: Sat, 18 Oct 2025 19:14:49 +0100 Subject: [PATCH 1/3] Moved mission.csv to project root and added mission.py --- data/mission.csv => mission.csv | 0 mission.py | 17 +++++++++++++++++ 2 files changed, 17 insertions(+) rename data/mission.csv => mission.csv (100%) create mode 100644 mission.py diff --git a/data/mission.csv b/mission.csv similarity index 100% rename from data/mission.csv rename to mission.csv diff --git a/mission.py b/mission.py new file mode 100644 index 00000000..f941f8c5 --- /dev/null +++ b/mission.py @@ -0,0 +1,17 @@ +import pandas as pd + +class Mission: + def __init__(self, cave_height, cave_depth, reference): + self.cave_height = cave_height + self.cave_depth = cave_depth + self.reference = reference + + @classmethod + def from_csv(cls, filepath="mission.csv"): + data = pd.read_csv(filepath) + return cls( + cave_height=data["cave_height"].values, + cave_depth=data["cave_depth"].values, + reference=data["reference"].values + ) + From 965ace29142ff674e8c16f9b2068d145805b09aa Mon Sep 17 00:00:00 2001 From: Hattie Bolchover Date: Sat, 18 Oct 2025 21:01:47 +0100 Subject: [PATCH 2/3] Finalize PD controller (Kp=0.03, Kd=0.75), add simulation results and depth_plot.png --- notebooks/demo.ipynb | 71 +++++++++++++++++++++++++++++++++++++-- notebooks/depth_plot.png | Bin 0 -> 105248 bytes uuv_mission/dynamic.py | 45 +++++++++++++++++++------ 3 files changed, 102 insertions(+), 14 deletions(-) create mode 100644 notebooks/depth_plot.png diff --git a/notebooks/demo.ipynb b/notebooks/demo.ipynb index aa0c5cee..47215d0a 100644 --- a/notebooks/demo.ipynb +++ b/notebooks/demo.ipynb @@ -9,6 +9,16 @@ "# Add relevant Jupyter notebook extensions " ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "print(sys.executable)\n" + ] + }, { "cell_type": "code", "execution_count": null, @@ -42,13 +52,68 @@ "mission = Mission.from_csv(\"path/to/file\") # You must implement this method in the Mission class\n", "\n", "trajectory = closed_loop.simulate_with_random_disturbances(mission)\n", - "trajectory.plot_completed_mission(mission)" + "trajectory.plot_completed_mission(mission)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from mission import Mission\n", + "from uuv_mission.dynamic import ClosedLoop\n", + "from control import PDController\n", + "from submarine import Submarine\n", + "import numpy as np\n", + "\n", + "mission = Mission.from_csv(\"mission.csv\")\n", + "controller = PDController()\n", + "submarine = Submarine()\n", + "\n", + "system = ClosedLoop(submarine, controller)\n", + "\n", + "# simulate with zero disturbances\n", + "disturbances = np.zeros(len(mission.reference))\n", + "result = system.simulate(mission, disturbances)\n", + "\n", + "print(\"Simulation finished.\")\n", + "print(\"First few depths:\", result[\"positions\"][:5])\n", + "print(\"First few actions:\", result[\"actions\"][:5])\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "result = system.simulate(\n", + " Mission(reference=mission.reference[:100], # first 100 steps only\n", + " cave_height=mission.cave_height[:100],\n", + " cave_depth=mission.cave_depth[:100]),\n", + " np.zeros(100)\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "result = system.simulate(\n", + " Mission(reference=mission.reference[:20],\n", + " cave_height=mission.cave_height[:100],\n", + " cave_depth=mission.cave_depth[:100]),\n", + " np.zeros(100)\n", + ")\n" ] } ], "metadata": { "kernelspec": { - "display_name": "first-venv", + "display_name": ".venv", "language": "python", "name": "python3" }, @@ -62,7 +127,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.12" + "version": "3.10.11" } }, "nbformat": 4, diff --git a/notebooks/depth_plot.png b/notebooks/depth_plot.png new file mode 100644 index 0000000000000000000000000000000000000000..0837401dde643c94d9d5eb807441e0f639619ed0 GIT binary patch literal 105248 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

LY;Z(j?J;SEf$kd+p^u=hEoMO!>XUcuX1 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

B2Oyi$zQ3hQ>5!a0M&5V_8! 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 literal 0 HcmV?d00001 diff --git a/uuv_mission/dynamic.py b/uuv_mission/dynamic.py index c7c7ad53..c27ecf1f 100644 --- a/uuv_mission/dynamic.py +++ b/uuv_mission/dynamic.py @@ -84,23 +84,46 @@ def __init__(self, plant: Submarine, controller): self.plant = plant self.controller = controller - def simulate(self, mission: Mission, disturbances: np.ndarray) -> Trajectory: + def simulate(self, mission: Mission, disturbances: np.ndarray) -> dict: + import numpy as np T = len(mission.reference) - if len(disturbances) < T: - raise ValueError("Disturbances must be at least as long as mission duration") - - positions = np.zeros((T, 2)) + positions = np.zeros(T) actions = np.zeros(T) - self.plant.reset_state() + # Loop over each timestep for t in range(T): - positions[t] = self.plant.get_position() - observation_t = self.plant.get_depth() - # Call your controller here - self.plant.transition(actions[t], disturbances[t]) + if t % 10 == 0: + print(f"Step {t}, depth = {self.plant.get_depth():.2f}") + + # Reference and current depth + ref = mission.reference[t] + y = self.plant.get_depth() + + # Compute control signal using the PD controller + u = self.controller.compute(ref, y) + u = np.clip(u, -10, 10) + + # Apply disturbance if provided + if disturbances is not None and len(disturbances) > t: + disturbance = disturbances[t] + else: + disturbance = 0.0 + + # Update submarine model with control + disturbance + self.plant.transition(u, disturbance) + + # Store results + positions[t] = self.plant.get_depth() + actions[t] = u + + # Return results + return {"positions": positions, "actions": actions} + + + + - return Trajectory(positions) def simulate_with_random_disturbances(self, mission: Mission, variance: float = 0.5) -> Trajectory: disturbances = np.random.normal(0, variance, len(mission.reference)) From 22063a589ab12b07c68064f17c2d1fb14a5fc34e Mon Sep 17 00:00:00 2001 From: Hattie Bolchover Date: Mon, 20 Oct 2025 20:31:15 +0100 Subject: [PATCH 3/3] Add from_csv method to Mission class to load data from mission.csv --- uuv_mission/dynamic.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/uuv_mission/dynamic.py b/uuv_mission/dynamic.py index c27ecf1f..35d34985 100644 --- a/uuv_mission/dynamic.py +++ b/uuv_mission/dynamic.py @@ -74,9 +74,17 @@ def random_mission(cls, duration: int, scale: float): return cls(reference, cave_height, cave_depth) @classmethod - def from_csv(cls, file_name: str): - # You are required to implement this method - pass + def from_csv(cls, file_name="../mission.csv"): + import pandas as pd + data = pd.read_csv(file_name) + return cls( + reference=data["reference"].values, + cave_height=data["cave_height"].values, + cave_depth=data["cave_depth"].values + ) + + + class ClosedLoop: