1
0
Fork 0
fgdata/Aircraft/Generic/JSBSim/Systems/hydrodynamic-planing.xml
Anders Gidenstam 09cdc04e91 Fixed some FPE prone spots in the generic JSBSim hydrodynamics systems.
Signed-off-by: Anders Gidenstam <anders@gidenstam.org>
2016-10-23 00:11:40 +02:00

658 lines
21 KiB
XML

<?xml version="1.0"?>
<!--
Model of hydrodynamic planing based on [Wagner:1933:POW] for JSBSim.
Copyright (C) 2015 - 2016 Anders Gidenstam (anders(at)gidenstam.org)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-->
<system name="hydrodynamic planing">
<documentation>
This system depends on the generic hydrodynamics.xml system for JSBSim.
<reference refID="Wagner:1933:POW"
author="Herbert Wagner"
title="Planing of Watercraft Translated as NACA-TM-1139"
date="1933/1948"/>
</documentation>
<!-- Model parameters -->
<!-- Parameters defining the planing surfaces of the hull. -->
<!-- NOTE: Coordinates in the frame with
origin at hydro RP and x/y/z = aft/right/up
-->
<property>hydro/planing/forebody-length-ft</property>
<property>hydro/planing/forebody-beam-ft</property>
<property>hydro/planing/forebody-keel-z-ft</property>
<property>hydro/planing/forebody-end-x-ft</property>
<property>hydro/planing/middlebody-length-ft</property>
<property>hydro/planing/middlebody-beam-ft</property>
<property>hydro/planing/middlebody-keel-z-ft</property>
<property>hydro/planing/middlebody-end-x-ft</property>
<property>hydro/planing/afterbody-length-ft</property>
<property>hydro/planing/afterbody-beam-ft</property>
<property>hydro/planing/afterbody-keel-z-ft</property>
<property>hydro/planing/afterbody-end-x-ft</property>
<!-- Other parameters. -->
<property value="1.0">hydro/planing/forebody-normal-force-factor</property>
<property value="1.0">hydro/planing/middlebody-normal-force-factor</property>
<property value="1.0">hydro/planing/afterbody-normal-force-factor</property>
<property>hydro/planing/forebody-skin-friction-coefficient</property>
<property>hydro/planing/middlebody-skin-friction-coefficient</property>
<property>hydro/planing/afterbody-skin-friction-coefficient</property>
<channel name="Planing dynamics based on [Wagner:1933:POW]">
<fcs_function name="hydro/planing/forebody-entry-point-x-ft">
<function>
<description>The intersection point with the water surface.</description>
<quotient>
<sum>
<quotient>
<property>hydro/hull/height-agl-ft</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
</quotient>
<property>hydro/planing/forebody-keel-z-ft</property>
</sum>
<tan><property>hydro/hull/pitch-rad</property></tan>
</quotient>
</function>
<clipto> <!-- We don't want to get +/-inf out of this function. -->
<min>-10000.0</min>
<max>10000.0</max>
</clipto>
</fcs_function>
<fcs_function name="hydro/planing/middlebody-entry-point-x-ft">
<function>
<description>The intersection point with the water surface.</description>
<quotient>
<sum>
<quotient>
<property>hydro/hull/height-agl-ft</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
</quotient>
<property>hydro/planing/middlebody-keel-z-ft</property>
</sum>
<tan><property>hydro/hull/pitch-rad</property></tan>
</quotient>
</function>
<clipto> <!-- We don't want to get +/-inf out of this function. -->
<min>-10000.0</min>
<max>10000.0</max>
</clipto>
</fcs_function>
<fcs_function name="hydro/planing/afterbody-entry-point-x-ft">
<function>
<description>The intersection point with the water surface.</description>
<quotient>
<sum>
<quotient>
<property>hydro/hull/height-agl-ft</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
</quotient>
<property>hydro/planing/afterbody-keel-z-ft</property>
</sum>
<tan><property>hydro/hull/pitch-rad</property></tan>
</quotient>
</function>
<clipto> <!-- We don't want to get +/-inf out of this function. -->
<min>-10000.0</min>
<max>10000.0</max>
</clipto>
</fcs_function>
<fcs_function name="hydro/planing/forebody-wetted-keel-ft">
<function>
<description>The length of keel below the free water surface.</description>
<max>
<value>0.0</value>
<min>
<property>hydro/planing/forebody-length-ft</property>
<sum>
<product>
<ge>
<property>hydro/hull/pitch-rad</property>
<value>0.0</value>
</ge>
<difference>
<property>hydro/planing/forebody-end-x-ft</property>
<property>hydro/planing/forebody-entry-point-x-ft</property>
</difference>
</product>
<product>
<lt>
<property>hydro/hull/pitch-rad</property>
<value>0.0</value>
</lt>
<difference>
<property>hydro/planing/forebody-entry-point-x-ft</property>
<difference>
<property>hydro/planing/forebody-end-x-ft</property>
<property>hydro/planing/forebody-length-ft</property>
</difference>
</difference>
</product>
</sum>
</min>
</max>
</function>
</fcs_function>
<fcs_function name="hydro/planing/middlebody-wetted-keel-ft">
<function>
<description>The length of keel below the free water surface.</description>
<max>
<value>0.0</value>
<min>
<property>hydro/planing/middlebody-length-ft</property>
<sum>
<product>
<ge>
<property>hydro/hull/pitch-rad</property>
<value>0.0</value>
</ge>
<difference>
<property>hydro/planing/middlebody-end-x-ft</property>
<property>hydro/planing/middlebody-entry-point-x-ft</property>
</difference>
</product>
<product>
<lt>
<property>hydro/hull/pitch-rad</property>
<value>0.0</value>
</lt>
<difference>
<property>hydro/planing/middlebody-entry-point-x-ft</property>
<difference>
<property>hydro/planing/middlebody-end-x-ft</property>
<property>hydro/planing/middlebody-length-ft</property>
</difference>
</difference>
</product>
</sum>
</min>
</max>
</function>
</fcs_function>
<fcs_function name="hydro/planing/afterbody-wetted-keel-ft">
<function>
<description>The length of keel below the free water surface.</description>
<max>
<value>0.0</value>
<min>
<property>hydro/planing/afterbody-length-ft</property>
<sum>
<product>
<ge>
<property>hydro/hull/pitch-rad</property>
<value>0.0</value>
</ge>
<difference>
<property>hydro/planing/afterbody-end-x-ft</property>
<property>hydro/planing/afterbody-entry-point-x-ft</property>
</difference>
</product>
<product>
<lt>
<property>hydro/hull/pitch-rad</property>
<value>0.0</value>
</lt>
<difference>
<property>hydro/planing/afterbody-entry-point-x-ft</property>
<difference>
<property>hydro/planing/afterbody-end-x-ft</property>
<property>hydro/planing/afterbody-length-ft</property>
</difference>
</difference>
</product>
</sum>
</min>
</max>
</function>
</fcs_function>
<fcs_function name="hydro/planing/forebody-normal-force-lbs">
<function>
<description>
The normal force produced by the planing surface.
NOTE: The formulation is only valid for very small pitch angles and
the pitch angle should also be adjusted for down-wash.
See [Wagner:1933:POW].
</description>
<max>
<value>0.0</value>
<product>
<property>hydro/planing/forebody-normal-force-factor</property>
<value>3.1415927</value>
<property>hydro/qbar-u-psf</property>
<property>hydro/planing/forebody-beam-ft</property>
<property>hydro/planing/forebody-wetted-keel-ft</property>
<sin><property>hydro/hull/pitch-rad</property></sin>
</product>
</max>
</function>
</fcs_function>
<fcs_function name="hydro/planing/middlebody-normal-force-lbs">
<function>
<description>
The normal force produced by the planing surface.
NOTE: The formulation is only valid for very small pitch angles and
the pitch angle should also be adjusted for down-wash.
See [Wagner:1933:POW].
</description>
<max>
<value>0.0</value>
<product>
<property>hydro/planing/middlebody-normal-force-factor</property>
<value>3.1415927</value>
<property>hydro/qbar-u-psf</property>
<property>hydro/planing/middlebody-beam-ft</property>
<property>hydro/planing/middlebody-wetted-keel-ft</property>
<sin><property>hydro/hull/pitch-rad</property></sin>
</product>
</max>
</function>
</fcs_function>
<fcs_function name="hydro/planing/afterbody-normal-force-lbs">
<function>
<description>
The normal force produced by the planing surface.
NOTE: The formulation is only valid for very small pitch angles and
the pitch angle should also be adjusted for down-wash.
See [Wagner:1933:POW].
</description>
<max>
<value>0.0</value>
<product>
<property>hydro/planing/afterbody-normal-force-factor</property>
<value>3.1415927</value>
<property>hydro/qbar-u-psf</property>
<property>hydro/planing/afterbody-beam-ft</property>
<property>hydro/planing/afterbody-wetted-keel-ft</property>
<sin><property>hydro/hull/pitch-rad</property></sin>
</product>
</max>
</function>
</fcs_function>
</channel>
<channel name="Reynolds numbers for the planing surfaces">
<fcs_function name="hydro/planing/forebody-Reynolds-number">
<function>
<description>
The Reynolds number for the planing surface based on the
current wetted keel length.
</description>
<quotient>
<product>
<property>hydro/vbx-fps</property>
<property>hydro/planing/forebody-wetted-keel-ft</property>
</product>
<property>hydro/environment/kinematic-viscosity-ft2_sec</property>
</quotient>
</function>
</fcs_function>
<fcs_function name="hydro/planing/middlebody-Reynolds-number">
<function>
<description>
The Reynolds number for the planing surface based on the
current wetted keel length.
</description>
<quotient>
<product>
<property>hydro/vbx-fps</property>
<property>hydro/planing/middlebody-wetted-keel-ft</property>
</product>
<property>hydro/environment/kinematic-viscosity-ft2_sec</property>
</quotient>
</function>
</fcs_function>
<fcs_function name="hydro/planing/afterbody-Reynolds-number">
<function>
<description>
The Reynolds number for the planing surface based on the
current wetted keel length.
</description>
<quotient>
<product>
<property>hydro/vbx-fps</property>
<property>hydro/planing/afterbody-wetted-keel-ft</property>
</product>
<property>hydro/environment/kinematic-viscosity-ft2_sec</property>
</quotient>
</function>
</fcs_function>
</channel>
<channel name="Fbx">
<fcs_function name="hydro/planing/forebody-induced-fbx-force-lbs">
<function>
<description>Drag (induced) due to planing. FIXME: direction/frame?</description>
<product>
<value>-1.0</value>
<max>
<value>0.0</value>
<product>
<property>hydro/planing/forebody-normal-force-lbs</property>
<sin><property>hydro/hull/pitch-rad</property></sin>
</product>
</max>
</product>
</function>
</fcs_function>
<fcs_function name="hydro/planing/middlebody-induced-fbx-force-lbs">
<function>
<description>Drag (induced) due to planing. FIXME: direction/frame?</description>
<product>
<value>-1.0</value>
<max>
<value>0.0</value>
<product>
<property>hydro/planing/middlebody-normal-force-lbs</property>
<sin><property>hydro/hull/pitch-rad</property></sin>
</product>
</max>
</product>
</function>
</fcs_function>
<fcs_function name="hydro/planing/afterbody-induced-fbx-force-lbs">
<function>
<description>Drag (induced) due to planing. FIXME: direction/frame?</description>
<product>
<value>-1.0</value>
<max>
<value>0.0</value>
<product>
<property>hydro/planing/afterbody-normal-force-lbs</property>
<sin><property>hydro/hull/pitch-rad</property></sin>
</product>
</max>
</product>
</function>
</fcs_function>
<fcs_function name="hydro/planing/forebody-friction-fbx-force-lbs">
<function>
<description>Drag due to skin friction.</description>
<product>
<value>-1.0</value>
<property>hydro/planing/forebody-skin-friction-coefficient</property>
<property>hydro/qbar-u-psf</property>
<property>hydro/planing/forebody-beam-ft</property>
<property>hydro/planing/forebody-wetted-keel-ft</property>
</product>
</function>
</fcs_function>
<fcs_function name="hydro/planing/middlebody-friction-fbx-force-lbs">
<function>
<description>Drag due to skin friction.</description>
<product>
<value>-1.0</value>
<property>hydro/planing/middlebody-skin-friction-coefficient</property>
<property>hydro/qbar-u-psf</property>
<property>hydro/planing/middlebody-beam-ft</property>
<property>hydro/planing/middlebody-wetted-keel-ft</property>
</product>
</function>
</fcs_function>
<fcs_function name="hydro/planing/afterbody-friction-fbx-force-lbs">
<function>
<description>Drag due to skin friction.</description>
<product>
<value>-1.0</value>
<property>hydro/planing/afterbody-skin-friction-coefficient</property>
<property>hydro/qbar-u-psf</property>
<property>hydro/planing/afterbody-beam-ft</property>
<property>hydro/planing/afterbody-wetted-keel-ft</property>
</product>
</function>
</fcs_function>
</channel>
<channel name="Fby">
<fcs_function name="hydro/planing/forebody-fby-force-lbs">
<function>
<description>
Fby force due to planing.
FIXME: model/direction/frame?
</description>
<product>
<property>hydro/planing/forebody-normal-force-lbs</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
<sin><property>hydro/hull/roll-rad</property></sin>
</product>
</function>
</fcs_function>
<fcs_function name="hydro/planing/middlebody-fby-force-lbs">
<function>
<description>
Fby force due to planing.
FIXME: model/direction/frame?
</description>
<product>
<property>hydro/planing/middlebody-normal-force-lbs</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
<sin><property>hydro/hull/roll-rad</property></sin>
</product>
</function>
</fcs_function>
<fcs_function name="hydro/planing/afterbody-fby-force-lbs">
<function>
<description>
Fby force due to planing.
FIXME: model/direction/frame?
</description>
<product>
<property>hydro/planing/afterbody-normal-force-lbs</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
<sin><property>hydro/hull/roll-rad</property></sin>
</product>
</function>
</fcs_function>
</channel>
<channel name="Lift">
<fcs_function name="hydro/planing/forebody-lift-force-lbs">
<function>
<description>Lift due to planing. FIXME: direction/frame?</description>
<max>
<value>0.0</value>
<product>
<property>hydro/planing/forebody-normal-force-lbs</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
<cos><property>hydro/hull/roll-rad</property></cos>
</product>
</max>
</function>
</fcs_function>
<fcs_function name="hydro/planing/middlebody-lift-force-lbs">
<function>
<description>Lift due to planing. FIXME: direction/frame?</description>
<max>
<value>0.0</value>
<product>
<property>hydro/planing/middlebody-normal-force-lbs</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
<cos><property>hydro/hull/roll-rad</property></cos>
</product>
</max>
</function>
</fcs_function>
<fcs_function name="hydro/planing/afterbody-lift-force-lbs">
<function>
<description>Lift due to planing. FIXME: direction/frame?</description>
<max>
<value>0.0</value>
<product>
<property>hydro/planing/afterbody-normal-force-lbs</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
<cos><property>hydro/hull/roll-rad</property></cos>
</product>
</max>
</function>
</fcs_function>
</channel>
<channel name="Yaw">
<!-- FIXME! -->
</channel>
<channel name="Pitch">
<fcs_function name="hydro/planing/forebody-pitch-moment-lbsft">
<description>
Pitch moment due to planing.
FIXME: direction/frame? Limits on the acting point?
</description>
<function>
<sum>
<product>
<value>-1.0</value>
<property>hydro/planing/forebody-normal-force-lbs</property>
<difference>
<property>hydro/planing/forebody-end-x-ft</property>
<product>
<value>0.75</value>
<property>hydro/planing/forebody-wetted-keel-ft</property>
</product>
</difference>
</product>
<product>
<value>-1.0</value>
<property>hydro/planing/forebody-friction-fbx-force-lbs</property>
<property>hydro/planing/forebody-keel-z-ft</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
</product>
</sum>
</function>
</fcs_function>
<fcs_function name="hydro/planing/middlebody-pitch-moment-lbsft">
<description>
Pitch moment due to planing.
FIXME: direction/frame? Limits on the acting point?
</description>
<function>
<sum>
<product>
<value>-1.0</value>
<property>hydro/planing/middlebody-normal-force-lbs</property>
<difference>
<property>hydro/planing/middlebody-end-x-ft</property>
<product>
<value>0.75</value>
<property>hydro/planing/middlebody-wetted-keel-ft</property>
</product>
</difference>
</product>
<product>
<value>-1.0</value>
<property>hydro/planing/middlebody-friction-fbx-force-lbs</property>
<property>hydro/planing/middlebody-keel-z-ft</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
</product>
</sum>
</function>
</fcs_function>
<fcs_function name="hydro/planing/afterbody-pitch-moment-lbsft">
<description>
Pitch moment due to planing.
FIXME: direction/frame? Limits on the acting point?
</description>
<function>
<sum>
<product>
<value>-1.0</value>
<property>hydro/planing/afterbody-normal-force-lbs</property>
<difference>
<property>hydro/planing/afterbody-end-x-ft</property>
<product>
<value>0.75</value>
<property>hydro/planing/afterbody-wetted-keel-ft</property>
</product>
</difference>
</product>
<product>
<value>-1.0</value>
<property>hydro/planing/afterbody-friction-fbx-force-lbs</property>
<property>hydro/planing/afterbody-keel-z-ft</property>
<cos><property>hydro/hull/pitch-rad</property></cos>
</product>
</sum>
</function>
</fcs_function>
</channel>
<channel name="Roll">
<fcs_function name="hydro/planing/forebody-roll-moment-lbsft">
<description>
Roll moment due to planing.
FIXME: direction/frame? Limits on the acting point?
</description>
<function>
<product>
<property>hydro/planing/forebody-fby-force-lbs</property>
<!-- FIXME: dependency on pitch? -->
<property>hydro/planing/forebody-keel-z-ft</property>
</product>
</function>
</fcs_function>
<fcs_function name="hydro/planing/middlebody-roll-moment-lbsft">
<description>
Roll moment due to planing.
FIXME: direction/frame? Limits on the acting point?
</description>
<function>
<product>
<property>hydro/planing/middlebody-fby-force-lbs</property>
<!-- FIXME: dependency on pitch? -->
<property>hydro/planing/middlebody-keel-z-ft</property>
</product>
</function>
</fcs_function>
<fcs_function name="hydro/planing/afterbody-roll-moment-lbsft">
<description>
Roll moment due to planing.
FIXME: direction/frame? Limits on the acting point?
</description>
<function>
<product>
<property>hydro/planing/afterbody-fby-force-lbs</property>
<!-- FIXME: dependency on pitch? -->
<property>hydro/planing/afterbody-keel-z-ft</property>
</product>
</function>
</fcs_function>
</channel>
</system>