Skip to content

Commit

Permalink
Changed variable names
Browse files Browse the repository at this point in the history
  • Loading branch information
luca7084 committed Jun 28, 2023
1 parent 4b271ba commit bf547e7
Show file tree
Hide file tree
Showing 12 changed files with 60 additions and 99 deletions.
12 changes: 6 additions & 6 deletions rocket_twin/drivers/fuelling_rocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@


class FuellingRocket(Driver):
def __init__(self, name: str, flux, dt, owner: Optional["System"] = None, **kwargs):
def __init__(self, name: str, w_out, dt, owner: Optional["System"] = None, **kwargs):
super().__init__(name, owner, **kwargs)

# Fueling:
Expand All @@ -17,16 +17,16 @@ def __init__(self, name: str, flux, dt, owner: Optional["System"] = None, **kwar

init = {
"rocket.dyn.switch": False,
"rocket.tank.flux": 0.0,
"g_tank.p_in": 0.0,
"g_tank.flux": flux,
"rocket.tank.w_out_temp": 0.0,
"g_tank.w_in": 0.0,
"g_tank.w_out_temp": w_out,
}

stop = "rocket.tank.w_p >= rocket.tank.w_max"
stop = "rocket.tank.weight_p >= rocket.tank.weight_max"

self.rk.set_scenario(init=init, stop=stop)
self.rk.add_recorder(
DataFrameRecorder(includes=["rocket.dyn.a", "g_tank.w", "rocket.tank.w_p"], hold=True),
DataFrameRecorder(includes=["rocket.dyn.a", "g_tank.weight", "rocket.tank.weight_p"], hold=True),
period=dt,
)
self.data = None
Expand Down
6 changes: 3 additions & 3 deletions rocket_twin/drivers/mission.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,15 @@

class Mission(Driver):
def __init__(
self, name: str, flux_in, flux_out, dt, owner: Optional["System"] = None, **kwargs
self, name: str, w_in, w_out, dt, owner: Optional["System"] = None, **kwargs
):
super().__init__(name, owner, **kwargs)

# Fuelling
self.add_child(FuellingRocket("fuelling", flux=flux_in, dt=dt, owner=owner))
self.add_child(FuellingRocket("fuelling", w_out=w_in, dt=dt, owner=owner))

# Flying
self.add_child(VerticalFlyingRocket("flying", flux=flux_out, dt=dt, owner=owner))
self.add_child(VerticalFlyingRocket("flying", w_out=w_out, dt=dt, owner=owner))

# Recorder
self.data = None
Expand Down
12 changes: 6 additions & 6 deletions rocket_twin/drivers/vertical_flying_rocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@


class VerticalFlyingRocket(Driver):
def __init__(self, name: str, flux, dt, owner: Optional["System"] = None, **kwargs):
def __init__(self, name: str, w_out, dt, owner: Optional["System"] = None, **kwargs):
super().__init__(name, owner, **kwargs)

# Fueling:
Expand All @@ -17,16 +17,16 @@ def __init__(self, name: str, flux, dt, owner: Optional["System"] = None, **kwar

init = {
"rocket.dyn.switch": True,
"g_tank.p_in": 0.0,
"g_tank.flux": 0.0,
"rocket.tank.flux": flux,
"g_tank.w_in": 0.0,
"g_tank.w_out_temp": 0.0,
"rocket.tank.w_out_temp": w_out,
}

stop = "rocket.tank.w_p <= 0."
stop = "rocket.tank.weight_p <= 0."

self.rk.set_scenario(init=init, stop=stop)
self.rk.add_recorder(
DataFrameRecorder(includes=["rocket.dyn.a", "g_tank.w", "rocket.tank.w_p"], hold=True),
DataFrameRecorder(includes=["rocket.dyn.a", "g_tank.weight", "rocket.tank.weight_p"], hold=True),
period=dt,
)
self.data = None
Expand Down
39 changes: 4 additions & 35 deletions rocket_twin/notebooks/Visualisation.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"execution_count": null,
"id": "8bec8444-0001-4e4a-bb3a-aae9574a5cb6",
"metadata": {},
"outputs": [],
Expand All @@ -12,7 +12,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": null,
"id": "97e7cc0c-c54d-4dac-9966-ac30c44abe14",
"metadata": {},
"outputs": [],
Expand All @@ -22,41 +22,10 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": null,
"id": "3b5aeda9-94d7-4f2d-a28c-c9e168cb4e69",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" <iframe\n",
" width=\"810px\"\n",
" height=\"650px\"\n",
" src=\"ground.html\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" \n",
" ></iframe>\n",
" "
],
"text/markdown": [
"\n",
"### Child components\n",
"\n",
"- `pipe`: Pipe\n",
"- `g_tank`: Tank\n",
"- `rocket`: Rocket"
],
"text/plain": [
"ground - Ground"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"ground"
]
Expand Down
20 changes: 6 additions & 14 deletions rocket_twin/systems/ground.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,15 @@ def setup(self):
self.add_child(Pipe("pipe"))
self.add_child(Tank("g_tank"))

self.connect(self.g_tank.outwards, self.pipe.inwards, {'p_out' : 'p_in'})
self.connect(self.pipe.outwards, self.rocket.inwards, {'p_out' : 'p_in'})
self.connect(self.g_tank.outwards, self.pipe.inwards, {'w_out' : 'w_in'})
self.connect(self.pipe.outwards, self.rocket.inwards, {'w_out' : 'w_in'})

self.g_tank.w_max = 10.
self.rocket.tank.w_p = 0.
self.g_tank.weight_max = 10.
self.rocket.tank.weight_p = 0.

self.exec_order = ["pipe", "g_tank", "rocket"]

#Design methods
dm = self.add_design_method('start')
dm.add_unknown('g_tank.w_p')
dm.add_equation('g_tank.w_p == g_tank.w_max')

#dm = self.add_design_method('fuel')
#dm.add_unknown('pipe.p')
#dm.add_target('rocket.tank.w_p')

#dm = self.add_design_method('flight')
#dm.add_unknown('rocket.tank.p_out')
#dm.add_target('rocket.tank.w_p')
dm.add_unknown('g_tank.weight_p')
dm.add_equation('g_tank.weight_p == g_tank.weight_max')
2 changes: 1 addition & 1 deletion rocket_twin/systems/rocket/rocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
class Rocket(System):
def setup(self):
self.add_child(Engine("engine"))
self.add_child(Tank("tank"), pulling=["p_in"])
self.add_child(Tank("tank"), pulling=["w_in"])
self.add_child(
RocketGeom("geom", centers=["engine", "tank"], weights=["weight_eng", "weight_tank"])
)
Expand Down
6 changes: 3 additions & 3 deletions rocket_twin/systems/tank/pipe.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
class Pipe(System):
def setup(self):

self.add_inward("p_in", 0.0, desc="Fuel income rate", unit="kg/s")
self.add_outward("p_out", 0.0, desc="Fuel exit rate", unit="kg/s")
self.add_inward("w_in", 0.0, desc="Fuel income rate", unit="kg/s")
self.add_outward("w_out", 0.0, desc="Fuel exit rate", unit="kg/s")

def compute(self):
self.p_out = self.p_in
self.w_out = self.w_in
20 changes: 10 additions & 10 deletions rocket_twin/systems/tank/tank.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,26 @@ class Tank(System):
def setup(self):

#Geometry
self.add_inward("w_s", 1.0, desc="Structure weight", unit="kg")
self.add_inward("w_max", 5.0, desc="Maximum fuel capacity", unit="kg")
self.add_inward("weight_s", 1.0, desc="Structure weight", unit="kg")
self.add_inward("weight_max", 5.0, desc="Maximum fuel capacity", unit="kg")

#Inputs
self.add_inward("p_in", 0.0, desc="Fuel income rate", unit="kg/s")
self.add_inward("w_in", 0.0, desc="Fuel income rate", unit="kg/s")

#Flux control
self.add_inward('flux', 0., desc="Fuel output rate", unit='kg/s')
self.add_inward('w_out_temp', 0., desc="Fuel output rate", unit='kg/s')

#Transient
self.add_outward("dp_dt", 0., desc="Fuel mass rate of change", unit="kg/s")
self.add_transient("w_p", der="dp_dt", desc="Propellant weight")
self.add_outward("dw_dt", 0., desc="Fuel mass rate of change", unit="kg/s")
self.add_transient("weight_p", der="dw_dt", desc="Propellant weight")

#Outputs
self.add_outward("weight", 1.0, desc="Weight", unit="kg")
self.add_outward("cg", 1.0, desc="Center of gravity", unit="m")
self.add_outward("p_out", 0.0, desc="Fuel output rate", unit="kg/s")
self.add_outward("w_out", 0.0, desc="Fuel output rate", unit="kg/s")

def compute(self):
self.p_out = self.flux
self.dp_dt = self.p_in - self.p_out
self.weight = self.w_s + self.w_p
self.w_out = self.w_out_temp
self.dw_dt = self.w_in - self.w_out
self.weight = self.weight_s + self.weight_p
self.cg = 3.0
12 changes: 6 additions & 6 deletions rocket_twin/tests/test_flying_rocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@
class TestVerticalFlyingRocket:
def test_run_once(self):
sys = Ground("sys")
sys.g_tank.w_p = 0.0
sys.rocket.tank.w_p = sys.rocket.tank.w_max
flux = 3.0
sys.g_tank.weight_p = 0.0
sys.rocket.tank.weight_p = sys.rocket.tank.weight_max
w_out = 3.0
dt = 0.1

sys.add_driver(VerticalFlyingRocket("vfr", flux=flux, dt=dt, owner=sys))
sys.add_driver(VerticalFlyingRocket("vfr", w_out=w_out, dt=dt, owner=sys))

sys.run_drivers()

data = sys.drivers["vfr"].data
data = data.drop(["Section", "Status", "Error code"], axis=1)

np.testing.assert_allclose(sys.rocket.dyn.a, 40.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.rocket.tank.w_p, 0.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.g_tank.w_p, 0.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.rocket.tank.weight_p, 0.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.g_tank.weight_p, 0.0, atol=10 ** (-10))


test_vfr = TestVerticalFlyingRocket()
Expand Down
14 changes: 7 additions & 7 deletions rocket_twin/tests/test_mission.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,22 @@
class TestMission:
def test_run_once(self):
sys = Ground("sys")
sys.g_tank.w_p = sys.g_tank.w_max
sys.rocket.tank.w_p = 0.0
flux_in = 3.0
flux_out = 3.0
sys.g_tank.weight_p = sys.g_tank.weight_max
sys.rocket.tank.weight_p = 0.0
w_in = 3.0
w_out = 3.0
dt = 0.1

sys.add_driver(Mission("mission", flux_in=flux_in, flux_out=flux_out, dt=dt, owner=sys))
sys.add_driver(Mission("mission", w_in=w_in, w_out=w_out, dt=dt, owner=sys))

sys.run_drivers()

data = sys.drivers["mission"].data
data = data.drop(["Section", "Status", "Error code"], axis=1)

np.testing.assert_allclose(sys.rocket.dyn.a, 40.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.rocket.tank.w_p, 0.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.g_tank.w_p, 5.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.rocket.tank.weight_p, 0.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.g_tank.weight_p, 5.0, atol=10 ** (-10))


test_mission = TestMission()
Expand Down
12 changes: 6 additions & 6 deletions rocket_twin/tests/test_refuel_rocket.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,21 @@
class TestFuellingRocket:
def test_run_once(self):
sys = Ground("sys")
sys.g_tank.w_p = sys.g_tank.w_max
sys.rocket.tank.w_p = 0.0
flux = 3.0
sys.g_tank.weight_p = sys.g_tank.weight_max
sys.rocket.tank.weight_p = 0.0
w_out = 3.0
dt = 0.1

sys.add_driver(FuellingRocket("fr", flux=flux, dt=dt, owner=sys))
sys.add_driver(FuellingRocket("fr", w_out=w_out, dt=dt, owner=sys))

sys.run_drivers()

data = sys.drivers["fr"].data
data = data.drop(["Section", "Status", "Error code"], axis=1)

np.testing.assert_allclose(sys.rocket.dyn.a, 0.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.rocket.tank.w_p, 5.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.g_tank.w_p, 5.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.rocket.tank.weight_p, 5.0, atol=10 ** (-10))
np.testing.assert_allclose(sys.g_tank.weight_p, 5.0, atol=10 ** (-10))


test_fr = TestFuellingRocket()
Expand Down
4 changes: 2 additions & 2 deletions rocket_twin/tests/test_tank.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ def test_fuel(self):
driver = sys.add_driver(RungeKutta(order=4, dt=0.1))
driver.time_interval = (0, 5)

init = {"p_in": 3.0, "flux": 0.0, "w_p": 0.0}
init = {"w_in": 3.0, "w_out_temp": 0.0, "weight_p": 0.0}

driver.set_scenario(init=init)

Expand All @@ -23,7 +23,7 @@ def test_flight(self):
driver = sys.add_driver(RungeKutta(order=4, dt=0.1))
driver.time_interval = (0, 5)

init = {"p_in": 0.0, "flux": 3.0, "w_p": 15.0}
init = {"w_in": 0.0, "w_out_temp": 3.0, "weight_p": 15.0}

driver.set_scenario(init=init)

Expand Down

0 comments on commit bf547e7

Please sign in to comment.