Changeset 611:6e8540c1970b


Ignore:
Timestamp:
03/07/15 06:45:03 (9 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

Added checks for tailstrike during takeoff and touchdown (re #250)

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/mlx/acft.py

    r601 r611  
    118118
    119119        self.needNoStrobeSpeedCheck = False
     120
     121        self.maxTakeOffPitch = 15.0
     122        self.maxTouchDownPitch = 15.0
    120123
    121124        self._checkers = []
     
    455458                            (self._aircraftState.cog*100.0,))
    456459
     460        if abs(pitch)>self.maxTouchDownPitch:
     461            self._flight.handleNoGo("TDPitch", self._aircraftState.timestamp,
     462                                    "Touchdown pitch higher than aircraft maximum (%.2f)" % \
     463                                    (self.maxTouchDownPitch,),
     464                                    "TD TAILSTRIKE NO GO")
     465
    457466    def cancelFlare(self):
    458467        """Cancel flare, if it has started."""
     
    685694        self.mlw = 54657
    686695        self.mzfw = 51482
     696        self.maxTakeOffPitch = 16.2
     697        self.maxTouchDownPitch = 14.7
    687698
    688699#---------------------------------------------------------------------------------------
     
    696707        self.mlw = 58059
    697708        self.mzfw = 54657
     709        self.maxTakeOffPitch = 14.7
     710        self.maxTouchDownPitch = 13.2
    698711
    699712#---------------------------------------------------------------------------------------
     
    707720        self.mlw = 65317
    708721        self.mzfw = 61688
     722        self.maxTakeOffPitch = 11
     723        self.maxTouchDownPitch = 9.5
    709724
    710725#---------------------------------------------------------------------------------------
     
    734749        self.mlw = 51700
    735750        self.mzfw = 48410
     751        self.maxTakeOffPitch = 13.4
     752        self.maxTouchDownPitch = 12.0
    736753
    737754#---------------------------------------------------------------------------------------
     
    745762        self.mlw = 56200
    746763        self.mzfw = 53100
     764        self.maxTakeOffPitch = 11.4
     765        self.maxTouchDownPitch = 10
    747766
    748767#---------------------------------------------------------------------------------------
     
    756775        self.mlw = 50000
    757776        self.mzfw = 46700
     777        self.maxTakeOffPitch = 14.7
     778        self.maxTouchDownPitch = 13.2
    758779
    759780#---------------------------------------------------------------------------------------
     
    779800                                 15 : 172,
    780801                                 35 : 158 }
     802        self.maxTakeOffPitch = 8.0
     803        self.maxTouchDownPitch = 7.0
    781804
    782805#---------------------------------------------------------------------------------------
     
    816839        self.mlw = 126098
    817840        self.mzfw = 114758
     841        self.maxTakeOffPitch = 13.1
     842        self.maxTouchDownPitch = 11.6
    818843
    819844#---------------------------------------------------------------------------------------
     
    827852        self.mlw = 137892
    828853        self.mzfw = 130635
     854        self.maxTakeOffPitch = 9.6
     855        self.maxTouchDownPitch = 8.1
    829856
    830857#---------------------------------------------------------------------------------------
     
    849876                                 30 : 190,
    850877                                 45 : 175 }
     878        self.maxTakeOffPitch = 18.0
     879        self.maxTouchDownPitch = 18.0
    851880
    852881#---------------------------------------------------------------------------------------
     
    873902                                 42 : 180 }
    874903        self.reverseMinSpeed = 50
     904        self.maxTakeOffPitch = 16.0
     905        self.maxTouchDownPitch = 16.0
    875906
    876907    @property
     
    933964        self.needNoStrobeSpeedCheck = True
    934965
     966        self.maxTakeOffPitch = 16.0
     967        self.maxTouchDownPitch = 16.0
     968
    935969    @property
    936970    def derateType(self):
     
    9781012
    9791013        self.needNoStrobeSpeedCheck = True
     1014
     1015        self.maxTakeOffPitch = 16.0
     1016        self.maxTouchDownPitch = 16.0
    9801017
    9811018    @property
  • src/mlx/checks.py

    r602 r611  
    165165                           "CG/Trim: %.1f%%/%.2f" % \
    166166                           (state.cog*100.0, state.elevatorTrim))
     167
     168
     169            if abs(state.pitch)>aircraft.maxTakeOffPitch:
     170                flight.handleNoGo("TOPitch", state.timestamp,
     171                                  "Takeoff pitch higher than aircraft maximum (%.2f)" % \
     172                                  (aircraft.maxTakeOffPitch,),
     173                                  "TO TAILSTRIKE NO GO")
     174
    167175            self._onTheGround = False
    168176
  • src/mlx/xplane.py

    r541 r611  
    14011401        state.heading = data[self._monidx_heading]
    14021402
    1403         state.pitch = data[self._monidx_pitch]
     1403        state.pitch = -1.0 * data[self._monidx_pitch]
    14041404        state.bank = data[self._monidx_bank]
    14051405
  • test/test1.txt

    r525 r611  
    4141set gs=100 ias=100
    4242set gs=120 ias=120
     43set pitch=-8
    4344set onTheGround=no
    4445set altitude=600
     
    5758
    5859set vs=-200
     60set pitch=-2.0
    5961set altitude=15000
    6062set qnh=1007
     
    7981set latitude=47.49 longitude=21.62
    8082set lights=23
     83set pitch=-5
    8184
    8285set onTheGround=yes
Note: See TracChangeset for help on using the changeset viewer.