1
0
Fork 0
flightgear/src/FDM/UIUCModel/Makefile.am
curt 0ab39eea99 From: David Megginson <david@megginson.com>
I have created a set of patches to provide configurable landing gear
for the UIUC models.  The patches (including four new files) are
available at

  http://megginson.com/private/fgfs/uiuc-20010309.tar.gz

A modified UIUC configuration file for the Twin Otter (DHC-6) is
available at

  http://megginson.com/private/fgfs/aircraft.dat

It should be possible to configure appropriate gear for all of the
UIUC models now.  As a bonus, the models also support braking, both
absolute and differential, as well as nose-wheel steering (all of
which are currently missing from the UIUC models) -- when you land,
you don't have to keep rolling off the end of the runway anymore, and
you don't have to bank to steer in a taxi.

My sample configuration file contains absolutely bizarre, wild
guesses, and many places that I didn't even bother to guess properly.
The only actual data I had was the wing-span of the DHC-6 (65ft),
which I used for positioning the wing tips.  The wing-tips for this
model actually work now -- I hit the aileron hard while accelerating
for take-off, and the wingtip noticeably strikes the ground and
bounces up (quite dramatic in external view using the DHC-6 model from
Wolfram's site).


Details
-------

The UIUC models now support up to 16 gear points each where a gear
point is anything in the aircraft that can come in contact with the
ground, including the tail and wing-tips.  I have added the following
new fields to the UIUC configuration files, where <index> is an
integer between 0 and 15, and <value> is a real number:

  gear <index> Dx_gear <value>     # x offset from CG [ft]
  gear <index> Dy_gear <value>     # y offset from CG [ft]
  gear <index> Dz_gear <value>     # z offset from CG [ft]
  gear <index> cgear <value>       # spring damping [lbs/ft/sec]
  gear <index> kgear <value>       # springiness [lbs/ft]
  gear <index> muGear <value>      # rolling coefficient
  gear <index> strutLength <value> # gear travel [ft] (not yet used)

Most of these names were already pencilled into the UIUC documentation
(as TODO items), but I had to make up Dx_gear, Dy_gear, and Dz_gear --
if those are inappropriate, I'd appreciate suggestions for better
names.

It will be necessary to modify the other UIUC configuration files to
include some kind of gear support as well, or the planes will sink
nose-first into the ground down to their CG's (it's actually quite
funny to watch with an external view).


Background
----------

As I frequently remind everyone here, I have no math background worth
spitting at, so I will not even pretend to have done the hard stuff.
The UIUC code uses a copy of a very old version of the LaRCsim
c172_gear.c -- I wanted to update it with Tony Peden's excellent newer
version, which includes differential braking among other goodies (the
UIUC models don't support brakes, period).

I copied the newer code into uiuc_aero.c, and it compiled and ran, but
all of the planes ended up sitting on their tails with their noses in
the air.  Since Tony made his gear code nicely parameterized, I
experimented with different values, and found that it wasn't too hard
to balance the Twin Otter by moving the gear back a bit.  At first, I
used properties to set different values, but then I decided to
integrate the whole thing properly into the UIUC configuration
framework.  Thanks to Tony Peden, who did the real modelling work -- I
can take credit only for two or three hours of integration.  It turns
out that Tony's code is generalized enough to deal with a wide range
of different gear structures -- I suspect that it will even work for
the 747, when I get around to trying some values.
2001-03-29 03:16:25 +00:00

52 lines
2.5 KiB
Makefile

noinst_LIBRARIES = libUIUCModel.a
libUIUCModel_a_SOURCES = \
uiuc_1DdataFileReader.cpp uiuc_1DdataFileReader.h \
uiuc_1Dinterpolation.cpp uiuc_1Dinterpolation.h \
uiuc_2DdataFileReader.cpp uiuc_2DdataFileReader.h \
uiuc_2Dinterpolation.cpp uiuc_2Dinterpolation.h \
uiuc_aerodeflections.cpp uiuc_aerodeflections.h \
uiuc_aircraftdir.h uiuc_aircraft.h \
uiuc_betaprobe.cpp uiuc_betaprobe.h \
uiuc_coef_drag.cpp uiuc_coef_drag.h \
uiuc_coef_lift.cpp uiuc_coef_lift.h \
uiuc_coef_pitch.cpp uiuc_coef_pitch.h \
uiuc_coef_roll.cpp uiuc_coef_roll.h \
uiuc_coef_sideforce.cpp uiuc_coef_sideforce.h \
uiuc_coef_yaw.cpp uiuc_coef_yaw.h \
uiuc_coefficients.cpp uiuc_coefficients.h \
uiuc_controlInput.cpp uiuc_controlInput.h \
uiuc_convert.cpp uiuc_convert.h \
uiuc_engine.cpp uiuc_engine.h \
uiuc_gear.cpp uiuc_gear.h \
uiuc_ice.cpp uiuc_ice.h \
uiuc_initializemaps.cpp uiuc_initializemaps.h \
uiuc_map_CD.cpp uiuc_map_CD.h \
uiuc_map_CL.cpp uiuc_map_CL.h \
uiuc_map_CY.cpp uiuc_map_CY.h \
uiuc_map_Cm.cpp uiuc_map_Cm.h \
uiuc_map_Cn.cpp uiuc_map_Cn.h \
uiuc_map_Croll.cpp uiuc_map_Croll.h \
uiuc_map_controlSurface.cpp uiuc_map_controlSurface.h \
uiuc_map_engine.cpp uiuc_map_engine.h \
uiuc_map_geometry.cpp uiuc_map_geometry.h \
uiuc_map_ice.cpp uiuc_map_ice.h \
uiuc_map_gear.cpp uiuc_map_gear.h \
uiuc_map_init.cpp uiuc_map_init.h \
uiuc_map_keyword.cpp uiuc_map_keyword.h \
uiuc_map_mass.cpp uiuc_map_mass.h \
uiuc_map_misc.cpp uiuc_map_misc.h \
uiuc_map_record1.cpp uiuc_map_record1.h \
uiuc_map_record2.cpp uiuc_map_record2.h \
uiuc_map_record3.cpp uiuc_map_record3.h \
uiuc_map_record4.cpp uiuc_map_record4.h \
uiuc_map_record5.cpp uiuc_map_record5.h \
uiuc_menu.cpp uiuc_menu.h \
uiuc_parsefile.cpp uiuc_parsefile.h \
uiuc_recorder.cpp uiuc_recorder.h \
uiuc_warnings_errors.cpp uiuc_warnings_errors.h \
uiuc_wrapper.cpp uiuc_wrapper.h
INCLUDES += -I$(top_srcdir) -I$(top_srcdir)/src