convexengineering / SPaircraft

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

Signomial Equality with Trust Region #76

Closed mayork closed 7 years ago

mayork commented 7 years ago

Eventually, I think the constraints below will require a trust region. I did some investigation and think that's the best answer.

        if BLI or M072_737:
             with SignomialsEnabled():
                  engineclimb.extend([
                       SignomialEquality(aircraft.engine.engineP['c1'][:Nclimb], (1. + 0.5*(.401)*climb['M']**2.)),
                       ])
                  enginecruise.extend([
                       SignomialEquality(aircraft.engine.engineP['c1'][Nclimb:], (1. + 0.5*(.401)*cruise['M']**2.)),                
                       ])

        else:
             engineclimb.extend([
                  aircraft.engine.engineP['c1'][:Nclimb] <= 1. + 0.5*(.401)*0.6**2.,
                  ])
             enginecruise.extend([
                  aircraft.engine.engineP['c1'][Nclimb:] <= 1. + 0.5*(.401)*0.8**2.,
                  ])
mayork commented 7 years ago

to further expound occasionally the signomial equality can be violated, we just need to be aware of this for now

mayork commented 7 years ago

The constraints in question were fixed by @1ozturkbe without using a signomial equality so I'm going to close this...however, I suspect the need for signomial equalities may pop up in the future.