convexengineering / SPaircraft

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

HorizontalTail variable issues #1

Closed 1ozturkbe closed 7 years ago

1ozturkbe commented 7 years ago

@mayork this is for D8_HT_simple_profile. Firstly the horizontal tail angle of attack variable is in the WingPerformance model:

class WingPerformance(Model):
 ...
        alpha   = Variable('\\alpha', '-', 'Horizontal tail angle of attack')

which is extremely odd. This is proving to be an issue because the Wing in the Wing_simple_performance doesn't have this variable, whereas the Wing in D8_HT has it. This should definitely be within HTP. This might require moving some code around.

Also, I am puzzled by the set of constraints:

climb['C_{L_h}'] <= 1.1*climb['C_{L_{ah}}']*climb['\\alpha'],
climb['C_{L_h}'] >= 0.9*climb['C_{L_{ah}}']*climb['\\alpha'],

Why isn't this a signomial equality instead of being in these odd bounds?

We can probably talk about these during the meeting tomorrow, but thought I should note them down in advance.

mayork commented 7 years ago

yep this was all done intentionally. The alpha variable in wing performance should read wing angle of attack, I'll just move it back to the HT model. I didn't realize the other wing model didn't have an AOA variable (seems like something worth adding).

the HT CLh isn't set as an equality in an effort, albeit weak, to capture the fact that you can trim the elevator to make minor lift changes while in a steady flight condition. Hence, i allow for some variation in CLh.

mayork commented 7 years ago

the fix is pushed i'm closing the issue

1ozturkbe commented 7 years ago

Btw, the other wing has an \alphaw variable which describes the angle of attack. But again, it's not \alpha, which is the horizontal tail angle of attack. Also, it should probably be named \alpha{ht}. Anyways, I can edit this when I integrate the D8_HT with CFP_Fuselage.

1ozturkbe commented 7 years ago

@mayork the fix isn't pushed.

mayork commented 7 years ago

now it is. sorry, there was merge conflict so the push didn't go through the first time

mayork commented 7 years ago

also...if you use the empennage file I already integrated the HT and VT a couple days ago

1ozturkbe commented 7 years ago

Thanks! Yeah, I saw D8_empennage.py! I had fixed the typos hahaha; I'm a little OCD.

1ozturkbe commented 7 years ago

Wait I'm confused. Why isn't horizontal tail alpha still not in HTPerformance? I pulled the latest version and it is still in WingP. Issue with merge perhaps?

mayork commented 7 years ago

sorry i didn't push the D8 tail, just the generic tail. it's fixed now.

1ozturkbe commented 7 years ago

Haha, I should have realized this. I was looking at your merge and saw only what I had pushed. Should have looked at the other commits more closely. Great, now we can close this.

1ozturkbe commented 7 years ago

There are still internal inconsistencies in D8_HT model. Eg.

climb['C_{L}'] == 2*3.14*climb['\\alpha'],
cruise['C_{L}'] == 2*3.14*cruise['\\alpha'],

These equations do not make sense. @mayork this sets the C_{L} of the wing, with the \alpha of the horizontal tail. Definitely not ok :/

1ozturkbe commented 7 years ago

I have fixed. Will push changes.

mayork commented 7 years ago

i did that because the wing and HT should be at the same alpha assuming steady flight

1ozturkbe commented 7 years ago

That's tricky, because they are not both fixed to the aircraft with the same geometric angles of attack. As an example, for JHO, the wing is fixed to the a/c with a 4degree incidence angle, whereas the horizontal tail is neutral to the body axis (should even have downward incidence technically).

This means we need another variable. It might involve having \alpha be an aircraftP variable, and then having the incidence angles of the wing and tail be additional variables.

I'll add some lines to D8_HT to clarify the original lines of code implemented, and will keep this issue open so we figure out the angle of incidence variables.

mayork commented 7 years ago

that's true, I was using thin airfoil theory and assuming there was no angle of incidence. If we account for angle of of incidence we should call the variable something different than alpha because AOA is just a ratio of free stream velocities. The new variable would be AOA + angle of incidence.

1ozturkbe commented 7 years ago

I think another issue in integration might be this:

climb['C_{L_h}'] == 2*3.14*climb['\\alpha'],
cruise['C_{L_h}'] == 2*3.14*cruise['\\alpha'],
cruise['C_{L_h}'] <= 1.1*cruise['C_{L_{ah}}']*cruise['\\alpha'],
cruise['C_{L_h}'] >= 0.9*cruise['C_{L_{ah}}']*cruise['\\alpha'],

We are doubly constraining the horizontal tail lift coefficient. Perhaps we should only have the second set of constraints?

1ozturkbe commented 7 years ago

Actually, it turns out that, if you comment out the first two, you get the same solution. This is interesting because relaxing an equality doesn't change the solution (!?) something weird is going on.

1ozturkbe commented 7 years ago

It must be that the C{l{h}} is being set by some other equality constraint that is present.

whoburg commented 7 years ago

it seems to me that for an initial model we might want to assume that the htail CL can vary independently from the wing CL? (this is a fair assumption so long as there's a jackscrew to set the tail incidence (true for all commercial airplanes I know of) and assuming we're not looking at any fast transient dynamics)

mayork commented 7 years ago

I allows the HT CL to vary somewhat independently from the wing CL. It turns out it was important to bound the HT angle of attack, so I bounded it to be within 20% of the wing AOA which allows some independent variation of the tail CL. The 20% is obviously subject to discussion/improvement.

1ozturkbe commented 7 years ago

I agree with@whoburg. I think it might be better just to not link the CLs of the two. Instead we could set the alphas independently, because of the jackscrew, so that the tail can operate at its optimal trim condition during all phases of flight. We should try solving without any of the \alpha constraints that link the tail to the wing. I don't expect that the solution would suddenly break. I can try this later today.

1ozturkbe commented 7 years ago

As of commit 96031eff, the HT CL is independent of wing CL in both D8_HT_simple_profile.py and CFP_Fuselage_Performance_int_ht.py. D8_HT is giving designs that make physical sense. Think we can close this.