From 648f2b379e6b77822cf86208beac734bb21b2b05 Mon Sep 17 00:00:00 2001 From: Dominique Haroun <90358185+HarounDominique@users.noreply.github.com> Date: Sun, 20 Sep 2026 15:02:27 +0200 Subject: [PATCH] Connect mission analysis to pod net force --- src/hyperloop/hyperloop_sim.py | 5 ++++- src/hyperloop/mission.py | 8 ++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/hyperloop/hyperloop_sim.py b/src/hyperloop/hyperloop_sim.py index 00179ee..3d68ab7 100644 --- a/src/hyperloop/hyperloop_sim.py +++ b/src/hyperloop/hyperloop_sim.py @@ -77,6 +77,10 @@ def configure(self): #Mission -> Pod self.connect('mission.time','pod.time_mission') self.connect('mission.energy', 'pod.energy') + #Pod -> Mission. This closes a solver-managed cycle: Mission supplies + #the travel time and energy used by Pod, while Pod supplies its net + #force back to Mission. + self.connect('pod.net_force', 'mission.net_force') #Add Solver solver = self.add('solver',BroydenSolver()) @@ -172,4 +176,3 @@ def pretty_print(data): print "Performance" print "======================" pretty_print(output_data) - diff --git a/src/hyperloop/mission.py b/src/hyperloop/mission.py index 2806624..2bc9095 100644 --- a/src/hyperloop/mission.py +++ b/src/hyperloop/mission.py @@ -37,6 +37,8 @@ class Mission(Component): tube_length = Float(563270, iotype="in", units="m", desc="length of one trip") pwr_marg = Float(.3, iotype="in", desc="fractional extra energy requirement") pwr_req = Float(420, iotype="in", units="kW", desc="average power requriment for the mission") + net_force = Float(0., iotype="in", units="N", + desc="net force available to accelerate the pod") #Outputs time = Float(iotype="out", units="s", desc="travel time for a pod to make one trip") energy = Float(iotype="out", units="kW*h", desc="total energy storage requirements") @@ -51,11 +53,6 @@ def execute(self): self.energy = (self.pwr_req*self.time/3600.)*(1+self.pwr_marg) #convert to hours - print self.itername - print " W_in: ", self.parent.compress.W_in, 10*(self.parent.compress.W_in-self.parent.flow_limit.W_excess) - print " R_tube: ", self.parent.pod.radius_tube_inner, .01*(self.parent.pod.area_compressor_bypass-self.parent.compress.area_c1_out) - print " Bearing_Ps: ", self.parent.compress.c2_PR_des, self.parent.compress.Ps_bearing_residual - print if __name__ == "__main__": @@ -67,4 +64,3 @@ def execute(self): -