-
Notifications
You must be signed in to change notification settings - Fork 118
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multipoint Optmization #447
Comments
Hi Ousmane SY, For the climb phase, I can offer the OpenMDAO component in which I modified the Breguet range equation to include a flight path angle input: import numpy as np
import openmdao.api as om
class ModifiedBreguetRange(om.ExplicitComponent):
"""
Computes the fuel burn using the Breguet range equation modified to include flight path angle.
Parameters
----------
CL : float
Total coefficient of lift
CD : float
Total coefficient of drag
CT : float
Specific fuel consumption for the entire aircraft (1/s)
V : float
Flight speed
R : float
The total range over which to estimate fuel burn (m)
W0 : float
The initial aircraft weight, excluding the wing structural weight (kg)
W_wing : float
Weight of the wing's structure (kg)
gamma : float
Flight path angle (deg)
Returns
-------
fuelburn : float
Computed fuel burn in kg based on the Breguet range equation.
"""
def setup(self):
self.add_input("CT", val=0.25, units="1/s")
self.add_input("CL", val=0.7)
self.add_input("CD", val=0.02)
self.add_input("R", val=3000.0, units="m")
self.add_input("V", val=200, units="m/s")
self.add_input("W0", val=200.0, units="kg")
self.add_input("W_wing", val=0., units="kg")
self.add_input("gamma", val=0., units="deg")
self.add_output("fuelburn", val=1.0, units="kg")
self.declare_partials("*", "*", method="cs")
self.set_check_partial_options(wrt="*", method="cs", step=1e-30)
def compute(self, inputs, outputs):
CT = inputs["CT"]
R = inputs["R"]
V = inputs["V"]
W0 = inputs["W0"]
Ws = inputs["W_wing"]
gamma = inputs["gamma"] * np.pi / 180
CL = inputs["CL"]
CD = inputs["CD"]
equiv_L_D = 1 / (np.cos(gamma) * CD / CL + np.sin(gamma))
fuelburn = (W0 + Ws) * (1 - np.exp(-R * CT / V / equiv_L_D))
fuelburn[fuelburn < 0] *= 0 # can't have negative fuel burn
outputs["fuelburn"] = fuelburn |
Hello,
Im Ousmane SY, PhD student at ISAE-SUPAERO.
I'm using OpenAeroStruct to perform trade-off studies of High Aspect Ratio wing concept by considering differents aspects of the ASO problem. I'm facing somes issues regarding the convergence of the multipoint case (more than 1 cruise flights points).Another issue Im facing is the implementation of the climb phase.
I noticed that both aspect were tackled by Eytan J. Adler in their work named "Efficient Aerostructural Wing Optimization Considering
Mission Analysis" attached below".
Would it be possible for you to share with me the implementation and ASO script used for that work?
Thanks in advance
Adler2022a.pdf
The text was updated successfully, but these errors were encountered: