convexengineering / SPaircraft

Models for commercial aircraft design
http://spaircraft.readthedocs.org
25 stars 17 forks source link

SM constraint refinement #18

Closed 1ozturkbe closed 7 years ago

1ozturkbe commented 7 years ago

This is important to get right if we want to get CG, AC locations, and HT sizing right. As of commit f4efa37, the following constraint defines SM:

TCS([aircraft['SM_{min}'] + aircraft['\\Delta x_{CG}']/aircraft.wing['mac'] <=
                                            aircraft.HT['V_{h}']*aircraft.HT['m_{ratio}'] \
                                          + self.wingP['c_{m_{w}}']/aircraft.wing['C_{L_{wmax}}'] + \
                                            aircraft.HT['V_{h}']*aircraft.HT['C_{L_{hmax}}']/aircraft.wing['C_{L_{wmax}}']]), # [SP]

The problem with this is that we assume the following:

aircraft.fuse['x_{wing}'] >= aircraft.fuse['l_{fuse}']*0.5, #TODO remove
aircraft.fuse['x_{wing}'] <= aircraft.fuse['l_{fuse}']*0.6, #TODO remove
xAC == aircraft['x_{wing}'], #TODO improve, only works because cmw == 1
# Aircraft trim conditions
self.wingP['c_{m_{w}}'] == 1, # Wing moment coefficient #TODO refine

We effectively set the aerodynamic center, and the moment coefficient of the wing. To begin with, the moment coefficient is so extremely high. Based on TAT, for a parabolic airfoil, cmw = pi*h, where h is the nondimensional camber of the airfoil. By this approx, the cmw should be ~ 0.05. I don't know where that sub even came from in the first place.

mayork commented 7 years ago

So we should certainly fix the moment coefficient sub, not sure where that came from either.

As far as setting the aerodynamic center, is there a way around that? I guess we could say its .25*chord beyond the wing's leading edge because the wing position is a free variable, right?

1ozturkbe commented 7 years ago

Ohhhh, I see where that sub comes from... Philippe used 0.1 in his code (htail.py in gpkit-models), but somehow that got transformed... And also, that is another discussion we need to have. The wing location can be defined in a number of ways... currently it is defined as its own aerodynamic center, which is also the aircraft's aero center.

1ozturkbe commented 7 years ago

I subbed cmw ==0.1 in commit b93c5c5e, which results in HT's that seem more reasonable. I'm reading a few articles about estimating the pitching moments and aero centers of swept wings atm; perhaps I can get a reasonable approximation.

1ozturkbe commented 7 years ago

Also, it is important to keep in mind that sweep and taper are going to be major determinants of the AC location. This paper is a great reference. It says that '...wing camber, thickness, and twist were shown to have no significant effect on the position of the semispan aerodynamic center...'. The fact that the planform variables are the important parameters makes sense.

1ozturkbe commented 7 years ago

Also, Philippe used a different set of relations that may come in useful.

                           # Stability from UMich AE-481 course notes
            constraints = [TCS([SM + dxw/cwma + Kf*wf**2*lfuse/(CLaw*Sw*cwma)
                                <= CLah*Sh*lht/(CLaw*Sw*cwma)]),
                           SM >= SMmin,

                           # Trim from UMich AE-481 course notes
                           TCS([CLh*Sh*lht/(Sw*cwma) + Cmac >=
                                CLw*dxw/cwma + Cmfu], reltol=0.02),
                           Lh == 0.5*rho*Vinf**2*Sh*CLh,

@pgkirsch, I was wondering if you could point us to the notes/written resources you used to get these stability and trim constraints. (sorry to bug you about old material!)

mayork commented 7 years ago

no those don't translate well once the flight profile is integrated

mayork commented 7 years ago

Basic_HT_write_up.pdf

this is explains where all the HT stuff comes from

1ozturkbe commented 7 years ago

I didn't know you actually did a write-up on the HT stuff. This is great! So then once we resolve the wing aero center stuff we are good to go.

1ozturkbe commented 7 years ago

The SM constraint functions as intended (since a long time ago, but this issue was forgotten; definitely works after c002a5e1). for xAC and xCG refinement, I will point to issue #16 and close.