Dave Culp and I have been discussing the catapult and hook scheme for a while. That discussion has actually gone farther than that specific case, to planning for a capability that is a general one, for applying external forces to a JSBSim aircraft. It could also be used internally by JSBSim for modeling such things as a parachute.
The idea would be to provide a means to define an attachment point for a JSBSIm aircraft, at which an external force would be applied. That would be on the aircraft definition side. On the runtime/FlightGear side, a force magnitude and direction would need to be applied to the previously defined attachment point.
This capability calls for a new [optional] section to be added to the JSBSim configuration file format. A new section, "external_reactions" will be added. Within that section, any number of external forces can be defined. Here is the proposed general format, as an example (would be in the JSBSim config file for an aircraft):
<external_reactions>
<point_force name="external_force/catapult">
<location unit="feet">
<x> 4 </x>
<y> 0 </y>
<z> -5 </z>
</location>
<force>
<magnitude unit="pounds">
<function>
<property> external_reactions/force/catapult </property>
</function>
</magnitude>
<orientation unit="degrees" frame="local">
<psi> external_reactions/orientation/psi/catapult </psi>
<theta> external_reactions/orientation/theta/catapult </theta>
</orientation>
</force>
</point_force>
...
</external_reactions>
To use this, the interface (FGJSBSim) would set the properties:
external_reactions/force/catapult
external_reactions/orientation/psi
external_reactions/orientation/theta
… and the force would be applied to the aircraft at the previously defined point on the aircraft.
To implement a parachute force, it could be done with a slight variance. Note the specification of force magnitude and the frame:
<external_reactions>
<point_force name="external_force/parachute">
<location unit="feet">
<x> 1000 </x>
<y> 2 </y>
<z> 5 </z>
</location>
<force>
<magnitude unit="pounds">
<function>
<product>
<property> fcs/reefing_level </property>
<value> 250.0 </value> <!-- reference area -->
<property> velocity/qbar </property>
<property> aerodynamics/parachute/CD </property>
</product>
</function>
</magnitude>
<orientation unit="degrees" frame="stability">
<phi> 0.0 </phi>
<theta> -180.0 </theta>
<psi> 0.0 </psi>
</orientation>
</force>
</point_force>
...
</external_reactions>
This is entirely defined and executed from within JSBSim. To activate the chute, the reefing level would have to be set to a non-zero value. Since this is a JSBSim function, it could be defined to include an on/off value, as well.
This does place upon the FlightGear side the burden of deciding when to apply an external force (catapult, or hook/wire), tow line, etc. and what the magnitude of the applied force should be. I think that's the way it should be, though, and I think that's the way it already is, now, but I am unfamiliar with the carrier code on the FGFS side.
I think we have thought this out well, however if there are any comments on this plan, we'd sure like your comments.
Jon
------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________ Flightgear-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/flightgear-devel

