2014-03-05 22:02:04 +00:00
|
|
|
<!--
|
|
|
|
|
|
|
|
Airship added/virtual mass model for JSBSim.
|
|
|
|
|
2018-04-08 19:49:15 +00:00
|
|
|
Copyright (C) 2008 - 2018 Anders Gidenstam (anders(at)gidenstam.org)
|
2014-03-05 22:02:04 +00:00
|
|
|
|
|
|
|
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="added-mass">
|
|
|
|
|
|
|
|
<documentation>
|
|
|
|
This system computes forces and moments due to added/virtual mass.
|
|
|
|
The model is based on
|
|
|
|
[Max M. Munk, "Aerodynamic forces on airship hulls", NACA report 184, 1924]
|
|
|
|
and the introduction in
|
|
|
|
[Christopher J. Atkinson, Robert G. Urso, "Modeling of Apparent Mass Effects
|
|
|
|
for the Real-Time Simulation of a Hybrid Airship", AIAA Modeling and
|
|
|
|
Simulation Technologies Conference, Aug 2006].
|
|
|
|
|
|
|
|
Usage:
|
|
|
|
|
|
|
|
Define the following properties:
|
|
|
|
aero/constants/volume-ft3
|
|
|
|
aero/constants/length-diameter-ft2 (length^2 + diameter^2)
|
2018-04-08 19:49:15 +00:00
|
|
|
aero/constants/added-mass/k-axial (all three are positive but
|
|
|
|
aero/constants/added-mass/k-transverse can be entered as negative
|
|
|
|
aero/constants/added-mass/k-rotational for backwards compatibility)
|
|
|
|
aero/constants/added-mass/tweak-factor (1.0 is the standard value)
|
2014-03-05 22:02:04 +00:00
|
|
|
|
2018-04-08 19:49:15 +00:00
|
|
|
aero/constants/added-mass/k-traverse (old misspelling, can be given
|
|
|
|
to work with older FlightGear)
|
|
|
|
|
|
|
|
Define the following external forces and moments:
|
2014-03-05 22:02:04 +00:00
|
|
|
|
|
|
|
<force name="added-mass-bx" frame="BODY">
|
|
|
|
<location unit="">
|
|
|
|
{ AERORP }
|
|
|
|
</location>
|
|
|
|
<direction>
|
|
|
|
<x> 1.0 </x>
|
|
|
|
<y> 0.0 </y>
|
|
|
|
<z> 0.0 </z>
|
|
|
|
</direction>
|
|
|
|
</force>
|
|
|
|
<force name="added-mass-by" frame="BODY">
|
|
|
|
<location unit="">
|
|
|
|
{ AERORP }
|
|
|
|
</location>
|
|
|
|
<direction>
|
|
|
|
<x> 0.0 </x>
|
|
|
|
<y> 1.0 </y>
|
|
|
|
<z> 0.0 </z>
|
|
|
|
</direction>
|
|
|
|
</force>
|
|
|
|
<force name="added-mass-bz" frame="BODY">
|
|
|
|
<location unit="">
|
|
|
|
{ AERORP }
|
|
|
|
</location>
|
|
|
|
<direction>
|
|
|
|
<x> 0.0 </x>
|
|
|
|
<y> 0.0 </y>
|
|
|
|
<z> 1.0 </z>
|
|
|
|
</direction>
|
|
|
|
</force>
|
|
|
|
|
2018-04-08 19:49:15 +00:00
|
|
|
<moment name="added-mass-pitch" frame="BODY" unit="LBSFT">
|
|
|
|
<direction>
|
|
|
|
<x> 0.0 </x>
|
|
|
|
<y> 1.0 </y>
|
|
|
|
<z> 0.0 </z>
|
|
|
|
</direction>
|
|
|
|
</moment>
|
|
|
|
<moment name="added-mass-roll" frame="BODY" unit="LBSFT">
|
|
|
|
<direction>
|
|
|
|
<x> 1.0 </x>
|
|
|
|
<y> 0.0 </y>
|
|
|
|
<z> 0.0 </z>
|
|
|
|
</direction>
|
|
|
|
</moment>
|
|
|
|
<moment name="added-mass-yaw" frame="BODY" unit="LBSFT">
|
|
|
|
<direction>
|
|
|
|
<x> 0.0 </x>
|
|
|
|
<y> 0.0 </y>
|
|
|
|
<z> 1.0 </z>
|
|
|
|
</direction>
|
|
|
|
</moment>
|
|
|
|
|
|
|
|
The old deprecated force based external moment implementation below is still
|
|
|
|
supported.
|
|
|
|
|
2014-03-05 22:02:04 +00:00
|
|
|
<force name="added-mass-pitch[0]" frame="BODY">
|
|
|
|
<location unit="">
|
|
|
|
<x> AERORP X </x>
|
|
|
|
<y> AERORP Y </y>
|
|
|
|
<z> AERORP Z - 0.3048 </z>
|
|
|
|
</location>
|
|
|
|
<direction>
|
|
|
|
<x> 1.0 </x>
|
|
|
|
<y> 0.0 </y>
|
|
|
|
<z> 0.0 </z>
|
|
|
|
</direction>
|
|
|
|
</force>
|
|
|
|
<force name="added-mass-pitch[1]" frame="BODY">
|
|
|
|
<location unit="M">
|
|
|
|
<x> AERORP X </x>
|
|
|
|
<y> AERORP Y </y>
|
|
|
|
<z> AERORP Z + 0.3048 </z>
|
|
|
|
</location>
|
|
|
|
<direction>
|
|
|
|
<x> 1.0 </x>
|
|
|
|
<y> 0.0 </y>
|
|
|
|
<z> 0.0 </z>
|
|
|
|
</direction>
|
|
|
|
</force>
|
|
|
|
|
|
|
|
<force name="added-mass-yaw[0]" frame="BODY">
|
|
|
|
<location unit="M">
|
|
|
|
<x> AERORP X </x>
|
|
|
|
<y> AERORP Y - 0.3048 </y>
|
|
|
|
<z> 0.0 </z>
|
|
|
|
</location>
|
|
|
|
<direction>
|
|
|
|
<x> 1.0 </x>
|
|
|
|
<y> 0.0 </y>
|
|
|
|
<z> 0.0 </z>
|
|
|
|
</direction>
|
|
|
|
</force>
|
|
|
|
<force name="added-mass-yaw[1]" frame="BODY">
|
|
|
|
<location unit="M">
|
|
|
|
<x> AERORP X </x>
|
|
|
|
<y> AERORP Y + 0.3048 </y>
|
|
|
|
<z> 0.0 </z>
|
|
|
|
</location>
|
|
|
|
<direction>
|
|
|
|
<x> 1.0 </x>
|
|
|
|
<y> 0.0 </y>
|
|
|
|
<z> 0.0 </z>
|
|
|
|
</direction>
|
|
|
|
</force>
|
|
|
|
|
|
|
|
</documentation>
|
|
|
|
|
|
|
|
<channel name="startup">
|
|
|
|
|
|
|
|
<!-- Allow the vehicle state to stabilize. -->
|
|
|
|
<fcs_function name="aero/added-mass/active">
|
|
|
|
<function>
|
|
|
|
<min>
|
|
|
|
<property> aero/constants/added-mass/tweak-factor </property>
|
|
|
|
<max>
|
|
|
|
<value> 0.0 </value>
|
|
|
|
<difference>
|
|
|
|
<property> simulation/sim-time-sec </property>
|
|
|
|
<value> 2.0 </value>
|
|
|
|
</difference>
|
|
|
|
</max>
|
|
|
|
</min>
|
|
|
|
</function>
|
|
|
|
</fcs_function>
|
|
|
|
|
|
|
|
</channel>
|
|
|
|
|
2018-04-08 19:49:15 +00:00
|
|
|
<property>aero/constants/added-mass/k-transverse</property>
|
|
|
|
<property>aero/constants/added-mass/k-traverse</property>
|
|
|
|
<channel name="backward-compatibility">
|
|
|
|
|
|
|
|
<!-- Allow vehicles still using the old misspelled k-traverse coefficient. -->
|
|
|
|
<switch name="aero/constants/added-mass/k-transverse-final">
|
|
|
|
<default value="aero/constants/added-mass/k-transverse"/>
|
|
|
|
<test logic="AND" value="aero/constants/added-mass/k-transverse">
|
|
|
|
aero/constants/added-mass/k-transverse NE 0.0
|
|
|
|
</test>
|
|
|
|
<test logic="AND" value="aero/constants/added-mass/k-traverse">
|
|
|
|
aero/constants/added-mass/k-traverse NE 0.0
|
|
|
|
</test>
|
|
|
|
</switch>
|
|
|
|
|
|
|
|
</channel>
|
|
|
|
|
2014-03-05 22:02:04 +00:00
|
|
|
<channel name="translational">
|
|
|
|
|
|
|
|
<fcs_function name="aero/added-mass/force-bx-lbs">
|
|
|
|
<function>
|
|
|
|
<product>
|
2018-04-08 19:49:15 +00:00
|
|
|
<value>-1.0</value>
|
2014-03-05 22:02:04 +00:00
|
|
|
<property> aero/added-mass/active </property>
|
|
|
|
<property> atmosphere/rho-slugs_ft3 </property>
|
2018-04-08 19:49:15 +00:00
|
|
|
<abs><property> aero/constants/added-mass/k-axial </property></abs>
|
2014-03-05 22:02:04 +00:00
|
|
|
<property> aero/constants/volume-ft3 </property>
|
|
|
|
<property> accelerations/udot-ft_sec2 </property>
|
|
|
|
</product>
|
|
|
|
</function>
|
|
|
|
<output> external_reactions/added-mass-bx/magnitude </output>
|
|
|
|
</fcs_function>
|
|
|
|
|
|
|
|
<fcs_function name="aero/added-mass/force-by-lbs">
|
|
|
|
<function>
|
|
|
|
<product>
|
2018-04-08 19:49:15 +00:00
|
|
|
<value>-1.0</value>
|
2014-03-05 22:02:04 +00:00
|
|
|
<property> aero/added-mass/active </property>
|
|
|
|
<property> atmosphere/rho-slugs_ft3 </property>
|
2018-04-08 19:49:15 +00:00
|
|
|
<abs><property> aero/constants/added-mass/k-transverse-final </property></abs>
|
2014-03-05 22:02:04 +00:00
|
|
|
<property> aero/constants/volume-ft3 </property>
|
|
|
|
<property> accelerations/vdot-ft_sec2 </property>
|
|
|
|
</product>
|
|
|
|
</function>
|
|
|
|
<output> external_reactions/added-mass-by/magnitude </output>
|
|
|
|
</fcs_function>
|
|
|
|
|
|
|
|
<fcs_function name="aero/added-mass/force-bz-lbs">
|
|
|
|
<function>
|
|
|
|
<product>
|
2018-04-08 19:49:15 +00:00
|
|
|
<value>-1.0</value>
|
2014-03-05 22:02:04 +00:00
|
|
|
<property> aero/added-mass/active </property>
|
|
|
|
<property> atmosphere/rho-slugs_ft3 </property>
|
2018-04-08 19:49:15 +00:00
|
|
|
<abs><property> aero/constants/added-mass/k-transverse-final </property></abs>
|
2014-03-05 22:02:04 +00:00
|
|
|
<property> aero/constants/volume-ft3 </property>
|
|
|
|
<property> accelerations/wdot-ft_sec2 </property>
|
|
|
|
</product>
|
|
|
|
</function>
|
|
|
|
<output> external_reactions/added-mass-bz/magnitude </output>
|
|
|
|
</fcs_function>
|
|
|
|
|
|
|
|
</channel>
|
|
|
|
|
|
|
|
<channel name="rotational">
|
|
|
|
|
|
|
|
<fcs_function name="aero/added-mass/pitch-moment-lbsft">
|
|
|
|
<function>
|
|
|
|
<product>
|
|
|
|
<property> aero/added-mass/active </property>
|
2018-04-08 19:49:15 +00:00
|
|
|
<value>-0.05 </value>
|
2014-03-05 22:02:04 +00:00
|
|
|
<property> atmosphere/rho-slugs_ft3 </property>
|
2018-04-08 19:49:15 +00:00
|
|
|
<abs><property> aero/constants/added-mass/k-rotational </property></abs>
|
2014-03-05 22:02:04 +00:00
|
|
|
<property> aero/constants/volume-ft3 </property>
|
|
|
|
<property> aero/constants/length-diameter-ft2 </property>
|
|
|
|
<property> accelerations/qdot-rad_sec2 </property>
|
|
|
|
</product>
|
|
|
|
</function>
|
|
|
|
</fcs_function>
|
|
|
|
|
|
|
|
<fcs_function name="aero/added-mass/yaw-moment-lbsft">
|
|
|
|
<function>
|
|
|
|
<product>
|
|
|
|
<property> aero/added-mass/active </property>
|
2018-04-08 19:49:15 +00:00
|
|
|
<value>-0.05 </value>
|
2014-03-05 22:02:04 +00:00
|
|
|
<property> atmosphere/rho-slugs_ft3 </property>
|
2018-04-08 19:49:15 +00:00
|
|
|
<abs><property> aero/constants/added-mass/k-rotational </property></abs>
|
2014-03-05 22:02:04 +00:00
|
|
|
<property> aero/constants/volume-ft3 </property>
|
|
|
|
<property> aero/constants/length-diameter-ft2 </property>
|
|
|
|
<property> accelerations/rdot-rad_sec2 </property>
|
|
|
|
</product>
|
|
|
|
</function>
|
|
|
|
</fcs_function>
|
|
|
|
|
2018-04-08 19:49:15 +00:00
|
|
|
<pure_gain name="aero/added-mass/pitch-moment/moment-lbsft">
|
|
|
|
<input>aero/added-mass/pitch-moment-lbsft</input>
|
|
|
|
<gain>1.0</gain>
|
|
|
|
<output>external_reactions/added-mass-pitch/magnitude-lbsft</output>
|
|
|
|
</pure_gain>
|
|
|
|
<pure_gain name="aero/added-mass/pitch-moment/force-lbs[0]">
|
2014-03-05 22:02:04 +00:00
|
|
|
<input> aero/added-mass/pitch-moment-lbsft </input>
|
|
|
|
<gain>-0.5</gain>
|
|
|
|
<output> external_reactions/added-mass-pitch[0]/magnitude </output>
|
|
|
|
</pure_gain>
|
2018-04-08 19:49:15 +00:00
|
|
|
<pure_gain name="aero/added-mass/pitch-moment/force-lbs[1]">
|
2014-03-05 22:02:04 +00:00
|
|
|
<input> aero/added-mass/pitch-moment-lbsft </input>
|
|
|
|
<gain>0.5</gain>
|
|
|
|
<output> external_reactions/added-mass-pitch[1]/magnitude </output>
|
|
|
|
</pure_gain>
|
|
|
|
|
2018-04-08 19:49:15 +00:00
|
|
|
<pure_gain name="aero/added-mass/yaw-moment/moment-lbsft">
|
|
|
|
<input>aero/added-mass/yaw-moment-lbsft</input>
|
|
|
|
<gain>1.0</gain>
|
|
|
|
<output>external_reactions/added-mass-yaw/magnitude-lbsft</output>
|
|
|
|
</pure_gain>
|
|
|
|
<pure_gain name="aero/added-mass/yaw-moment/force-lbs[0]">
|
2014-03-05 22:02:04 +00:00
|
|
|
<input> aero/added-mass/yaw-moment-lbsft </input>
|
|
|
|
<gain>-0.5</gain>
|
|
|
|
<output> external_reactions/added-mass-yaw[0]/magnitude </output>
|
|
|
|
</pure_gain>
|
2018-04-08 19:49:15 +00:00
|
|
|
<pure_gain name="aero/added-mass/yaw-moment/force-lbs[1]">
|
2014-03-05 22:02:04 +00:00
|
|
|
<input> aero/added-mass/yaw-moment-lbsft </input>
|
|
|
|
<gain>0.5</gain>
|
|
|
|
<output> external_reactions/added-mass-yaw[1]/magnitude </output>
|
|
|
|
</pure_gain>
|
|
|
|
|
|
|
|
</channel>
|
|
|
|
|
|
|
|
</system>
|