1
0
Fork 0
fgdata/Aircraft/c172p/Systems/c172p-ground-effects.xml

2022 lines
82 KiB
XML
Raw Normal View History

<?xml version="1.0"?>
<!--
c172p damage effects for JSBSim.
Copyright (c) 2015 Wayne Bragg
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="c172p ground effects">
<channel name="landing-gear">
<!-- Determine if snow on ground -->
<switch name="snow-possible">
<output>ground/snow-possible</output>
<default value="0"/>
<!-- No snow possible -->
<test logic="AND" value="0">
ground/solid EQ 1
/position/altitude-agl-m LT /environment/snow-level-m
</test>
<!-- Snow possible -->
<test logic="AND" value="1">
ground/solid EQ 1
/position/altitude-agl-m GT /environment/snow-level-m
</test>
</switch>
<!-- ================================================================== -->
<!-- Contact points landing gear and yellow sparks -->
<!-- ================================================================== -->
<fcs_function name="z-position-nose-gear">
<output>gear/unit[0]/z-position</output>
<function>
<ifthen>
<property>gear/unit[0]/broken</property>
<value>0.0</value>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>-20.3</value>
<value>-22.0</value>
<value>-22.0</value>
<value> 0.0</value>
<value> 0.0</value>
<value>-22.0</value>
</switch>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-ground-factor-nose-gear">
<output>gear/unit[0]/z-position</output>
<function>
<ifthen>
<p>gear/unit[0]/broken</p>
<p>gear/unit[0]/z-position</p>
<ifthen>
<not><p>ground/snow-possible</p></not>
<sum>
<p>gear/unit[0]/z-position</p>
<product>
<product>
<p>gear/unit[0]/rolling_friction-factor</p>
<v>2</v>
</product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.175</value>
<value>0.025</value>
<value>0.02</value>
<value>0.0</value>
<value>0.0</value>
<value>0.02</value>
</switch>
</product>
</sum>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>gear/unit[0]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[0]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>gear/unit[0]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.175</value>
<value>0.15</value>
<value>0.13</value>
<value>0.0</value>
<value>0.0</value>
<value>0.008</value>
</switch>
</product>
</sum>
<p>gear/unit[0]/z-position</p>
</ifthen>
</ifthen>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-left-gear">
<output>gear/unit[1]/z-position</output>
<function>
<ifthen>
<property>gear/unit[1]/broken</property>
<value>0.0</value>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>-15.3</value>
<value>-20.0</value>
<value>-22.0</value>
<value> 0.0</value>
<value> 0.0</value>
<value>-22.0</value>
</switch>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-ground-factor-left-gear">
<output>gear/unit[1]/z-position</output>
<function>
<ifthen>
<p>gear/unit[1]/broken</p>
<p>gear/unit[1]/z-position</p>
<ifthen>
<not><p>ground/snow-possible</p></not>
<sum>
<p>gear/unit[1]/z-position</p>
<product>
<product>
<p>gear/unit[1]/rolling_friction-factor</p>
<v>2</v>
</product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.15</value>
<value>0.020</value>
<value>0.015</value>
<value>0.0</value>
<value>0.0</value>
<value>0.015</value>
</switch>
</product>
</sum>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>gear/unit[1]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[1]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>gear/unit[1]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.15</value>
<value>0.13</value>
<value>0.11</value>
<value>0.0</value>
<value>0.0</value>
<value>0.008</value>
</switch>
</product>
</sum>
<p>gear/unit[1]/z-position</p>
</ifthen>
</ifthen>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-right-gear">
<output>gear/unit[2]/z-position</output>
<function>
<ifthen>
<property>gear/unit[2]/broken</property>
<value>0.0</value>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>-15.1</value>
<value>-20.0</value>
<value>-22.0</value>
<value> 0.0</value>
<value> 0.0</value>
<value>-22.0</value>
</switch>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-ground-factor-right-gear">
<output>gear/unit[2]/z-position</output>
<function>
<ifthen>
<p>gear/unit[2]/broken</p>
<p>gear/unit[2]/z-position</p>
<ifthen>
<not><p>ground/snow-possible</p></not>
<sum>
<p>gear/unit[2]/z-position</p>
<product>
<product>
<p>gear/unit[2]/rolling_friction-factor</p>
<v>2</v>
</product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.15</value>
<value>0.020</value>
<value>0.015</value>
<value>0.0</value>
<value>0.0</value>
<value>0.015</value>
</switch>
</product>
</sum>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>gear/unit[2]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[2]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>gear/unit[2]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.15</value>
<value>0.13</value>
<value>0.11</value>
<value>0.0</value>
<value>0.0</value>
<value>0.008</value>
</switch>
</product>
</sum>
<p>gear/unit[2]/z-position</p>
</ifthen>
</ifthen>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-effect-nose-gear">
<output>contact/unit[6]/z-position</output>
<function>
<ifthen>
<property>gear/unit[0]/broken</property>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>-10.0</value>
<value>-18.5</value>
<value>-17.7</value>
<value> 0.0</value>
<value> 0.0</value>
<value>-23.0</value>
</switch>
<value>0.0</value>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-effect-left-gear">
<output>contact/unit[7]/z-position</output>
<function>
<ifthen>
<property>gear/unit[1]/broken</property>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value> -9.5</value>
<value>-14.5</value>
<value>-16.0</value>
<value> 0.0</value>
<value> 0.0</value>
<value>-21.0</value>
</switch>
<value>0.0</value>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-effect-right-gear">
<output>contact/unit[8]/z-position</output>
<function>
<ifthen>
<property>gear/unit[2]/broken</property>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value> -8.0</value>
<value>-15.5</value>
<value>-17.4</value>
<value> 0.0</value>
<value> 0.0</value>
<value>-21.0</value>
</switch>
<value>0.0</value>
</ifthen>
</function>
</fcs_function>
<!-- ================================================================== -->
<!-- Friction factors per gear changout for summer, winter or snow -->
<!-- ================================================================== -->
<!-- Normalize snow depth to a usable value 1 + (m-0.0)/(0.6-0.0)*(10-1) -->
<fcs_function name="normalized-snow-depth">
<output>ground/normalized-snow-depth</output>
<function>
<sum>
<product>
<quotient>
<difference>
<p>/environment/surface/snow-thickness-factor</p>
<v>0.0</v>
</difference>
<difference>
<v>0.6</v>
<v>0.0</v>
</difference>
</quotient>
<difference>
<v>50.0</v>
<v>1</v>
</difference>
</product>
<v>1.0</v>
</sum>
</function>
</fcs_function>
<!-- Normalize snow depth to needed value range (0.7 + (m-0.0)/(0.6-0.0)*(0.9999-0.7)) -->
<fcs_function name="normalized-ski-snow-depth">
<output>ground/normalized-snow-depth-ski</output>
<function>
<sum>
<product>
<quotient>
<difference>
<p>/environment/surface/snow-thickness-factor</p>
<v>0.0</v>
</difference>
<difference>
<v>0.6</v>
<v>0.0</v>
</difference>
</quotient>
<difference>
<v>0.9999</v>
<v>0.7</v>
</difference>
</product>
<v>0.7</v>
</sum>
</function>
</fcs_function>
<!-- factor of snow depth per gear type -->
<fcs_function name="snow-affected-friction">
<output>ground/snow_friction-factor</output>
<function>
<ifthen>
<and>
<le>
<p>ground/rolling_friction-factor</p>
<value>2</value>
</le>
<ge>
<p>ground/rolling_friction-factor</p>
<value>1</value>
</ge>
</and>
<value>1.0</value>
<ifthen>
<p>ground/snow-possible</p>
<switch>
<property>bushkit</property>
<product>
<v>1</v>
<p>ground/normalized-snow-depth</p>
</product>
<product>
<v>.95</v>
<p>ground/normalized-snow-depth</p>
</product>
<product>
<v>.9</v>
<p>ground/normalized-snow-depth</p>
</product>
<product>
<v>0</v>
<p>ground/normalized-snow-depth</p>
</product>
<product>
<v>.30</v>
<p>ground/normalized-snow-depth</p>
</product>
<p>ground/normalized-snow-depth-ski</p>
</switch>
<value>1.0</value>
</ifthen>
</ifthen>
</function>
</fcs_function>
<fcs_function name="static-friction-nose-gear">
<output>gear/unit[0]/static_friction_coeff</output>
<output>gear/unit[23]/static_friction_coeff</output>
<function>
<ifthen>
<p>gear/unit[0]/broken</p>
<p>gear/unit[0]/static_friction_coeff</p>
<!-- winter or above snow line -->
<ifthen>
<and>
<p>ground/snow-possible</p>
<p>/environment/surface/snow-thickness-factor</p>
<or>
<gt>
<p>gear/unit[0]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[0]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<quotient>
<value>0.2</value>
<p>gear/unit[0]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.2125</value>
<p>gear/unit[0]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.225</value>
<p>gear/unit[0]/static-friction-factor</p>
</quotient>
<value>0.0</value>
<value>0.0</value>
<quotient>
<value>0.225</value>
<p>gear/unit[0]/static-friction-factor</p>
</quotient>
</switch>
<p>ground/snow_friction-factor</p>
</product>
<!-- not winter and not above snow line -->
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.8</value> <!-- bogie 0-2 -->
<value>0.85</value> <!-- bogie 0-2 -->
<value>0.9</value> <!-- bogie 0-2 -->
<value>0.0</value> <!-- contact 13-18 -->
<value>0.0</value> <!-- bogie 19-22 -->
<value>0.9</value> <!-- bogie 23-25 -->
</switch>
</ifthen>
</ifthen>
</function>
</fcs_function>
<fcs_function name="dynamic-friction-nose-gear">
<output>gear/unit[0]/dynamic_friction_coeff</output>
<output>gear/unit[23]/dynamic_friction_coeff</output>
<function>
<ifthen>
<p>gear/unit[0]/broken</p>
<p>gear/unit[0]/dynamic_friction_coeff</p>
<!-- winter or above snow line -->
<ifthen>
<and>
<p>ground/snow-possible</p>
<p>/environment/surface/snow-thickness-factor</p>
<or>
<gt>
<p>gear/unit[0]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[0]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<quotient>
<value>0.125</value>
<p>gear/unit[0]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.1375</value>
<p>gear/unit[0]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.15</value>
<p>gear/unit[0]/static-friction-factor</p>
</quotient>
<value>0.0</value>
<value>0.0</value>
<quotient>
<value>0.15</value>
<p>gear/unit[0]/static-friction-factor</p>
</quotient>
</switch>
<p>ground/snow_friction-factor</p>
</product>
<!-- not winter and not above snow line -->
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.5</value>
<value>0.55</value>
<value>0.6</value>
<value>0.0</value>
<value>0.0</value>
<value>0.6</value>
</switch>
</ifthen>
</ifthen>
</function>
</fcs_function>
<fcs_function name="rolling-friction-nose-gear">
<output>gear/unit[0]/rolling_friction_coeff</output>
<output>gear/unit[23]/rolling_friction_coeff</output>
<function>
<ifthen>
<p>gear/unit[0]/broken</p>
<p>gear/unit[0]/rolling_friction_coeff</p>
<!-- winter or above snow line -->
<ifthen>
<and>
<p>ground/snow-possible</p>
<p>/environment/surface/snow-thickness-factor</p>
<or>
<gt>
<p>gear/unit[0]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[0]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<quotient>
<value>0.006</value>
<p>gear/unit[0]/rolling_friction-factor</p>
</quotient>
<quotient>
<value>0.0045</value>
<p>gear/unit[0]/rolling_friction-factor</p>
</quotient>
<quotient>
<value>0.003</value>
<p>gear/unit[0]/rolling_friction-factor</p>
</quotient>
<value>0.0</value>
<value>0.0</value>
<quotient>
<value>0.003</value>
<p>gear/unit[0]/rolling_friction-factor</p>
</quotient>
</switch>
<p>ground/snow_friction-factor</p>
</product>
<!-- not winter and not above snow line -->
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.02</value>
<value>0.015</value>
<value>0.01</value>
<value>0.0</value>
<value>0.0</value>
<value>0.01</value>
</switch>
</ifthen>
</ifthen>
</function>
</fcs_function>
<!-- Left gear friction factors -->
<fcs_function name="static-friction-left-gear">
<output>gear/unit[1]/static_friction_coeff</output>
<output>gear/unit[24]/static_friction_coeff</output>
<function>
<ifthen>
<p>gear/unit[1]/broken</p>
<p>gear/unit[1]/static_friction_coeff</p>
<!-- winter or above snow line -->
<ifthen>
<and>
<p>ground/snow-possible</p>
<p>/environment/surface/snow-thickness-factor</p>
<or>
<gt>
<p>gear/unit[1]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[1]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<quotient>
<value>0.2</value>
<p>gear/unit[1]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.2125</value>
<p>gear/unit[1]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.225</value>
<p>gear/unit[1]/static-friction-factor</p>
</quotient>
<value>0.0</value>
<value>0.0</value>
<quotient>
<value>0.225</value>
<p>gear/unit[1]/static-friction-factor</p>
</quotient>
</switch>
<p>ground/snow_friction-factor</p>
</product>
<!-- not winter and not above snow line -->
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.8</value>
<value>0.85</value>
<value>0.9</value>
<value>0.0</value>
<value>0.0</value>
<value>0.9</value>
</switch>
</ifthen>
</ifthen>
</function>
</fcs_function>
<fcs_function name="dynamic-friction-left-gear">
<output>gear/unit[1]/dynamic_friction_coeff</output>
<output>gear/unit[24]/dynamic_friction_coeff</output>
<function>
<ifthen>
<p>gear/unit[1]/broken</p>
<p>gear/unit[1]/dynamic_friction_coeff</p>
<!-- winter or above snow line -->
<ifthen>
<and>
<p>ground/snow-possible</p>
<p>/environment/surface/snow-thickness-factor</p>
<or>
<gt>
<p>gear/unit[1]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[1]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<quotient>
<value>0.15</value>
<p>gear/unit[1]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.20</value>
<p>gear/unit[1]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.25</value>
<p>gear/unit[1]/static-friction-factor</p>
</quotient>
<value>0.0</value>
<value>0.0</value>
<quotient>
<value>0.25</value>
<p>gear/unit[1]/static-friction-factor</p>
</quotient>
</switch>
<p>ground/snow_friction-factor</p>
</product>
<!-- not winter and not above snow line -->
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.5</value>
<value>0.55</value>
<value>0.6</value>
<value>0.0</value>
<value>0.0</value>
<value>0.6</value>
</switch>
</ifthen>
</ifthen>
</function>
</fcs_function>
<fcs_function name="rolling-friction-left-gear">
<output>gear/unit[1]/rolling_friction_coeff</output>
<output>gear/unit[24]/rolling_friction_coeff</output>
<function>
<ifthen>
<p>gear/unit[1]/broken</p>
<p>gear/unit[1]/rolling_friction_coeff</p>
<!-- winter or above snow line -->
<ifthen>
<and>
<p>ground/snow-possible</p>
<p>/environment/surface/snow-thickness-factor</p>
<or>
<gt>
<p>gear/unit[1]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[1]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<quotient>
<value>0.006</value>
<p>gear/unit[1]/rolling_friction-factor</p>
</quotient>
<quotient>
<value>0.0045</value>
<p>gear/unit[1]/rolling_friction-factor</p>
</quotient>
<quotient>
<value>0.003</value>
<p>gear/unit[1]/rolling_friction-factor</p>
</quotient>
<value>0.0</value>
<value>0.0</value>
<quotient>
<value>0.003</value>
<p>gear/unit[1]/rolling_friction-factor</p>
</quotient>
</switch>
<p>ground/snow_friction-factor</p>
</product>
<!-- not winter and not above snow line -->
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.02</value>
<value>0.015</value>
<value>0.01</value>
<value>0.0</value>
<value>0.0</value>
<value>0.01</value>
</switch>
</ifthen>
</ifthen>
</function>
</fcs_function>
<!-- Right gear friction factors -->
<fcs_function name="static-friction-right-gear">
<output>gear/unit[2]/static_friction_coeff</output>
<output>gear/unit[25]/static_friction_coeff</output>
<function>
<ifthen>
<p>gear/unit[2]/broken</p>
<p>gear/unit[2]/static_friction_coeff</p>
<!-- winter or above snow line -->
<ifthen>
<and>
<p>ground/snow-possible</p>
<p>/environment/surface/snow-thickness-factor</p>
<or>
<gt>
<p>gear/unit[2]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[2]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<quotient>
<value>0.2</value>
<p>gear/unit[2]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.2125</value>
<p>gear/unit[2]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.225</value>
<p>gear/unit[2]/static-friction-factor</p>
</quotient>
<value>0.0</value>
<value>0.0</value>
<quotient>
<value>0.225</value>
<p>gear/unit[2]/static-friction-factor</p>
</quotient>
</switch>
<p>ground/snow_friction-factor</p>
</product>
<!-- not winter and not above snow line -->
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.8</value>
<value>0.85</value>
<value>0.9</value>
<value>0.0</value>
<value>0.0</value>
<value>0.9</value>
</switch>
</ifthen>
</ifthen>
</function>
</fcs_function>
<fcs_function name="dynamic-friction-right-gear">
<output>gear/unit[2]/dynamic_friction_coeff</output>
<output>gear/unit[25]/dynamic_friction_coeff</output>
<function>
<ifthen>
<p>gear/unit[2]/broken</p>
<p>gear/unit[2]/dynamic_friction_coeff</p>
<!-- winter or above snow line -->
<ifthen>
<and>
<p>ground/snow-possible</p>
<p>/environment/surface/snow-thickness-factor</p>
<or>
<gt>
<p>gear/unit[2]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[2]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<quotient>
<value>0.15</value>
<p>gear/unit[2]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.20</value>
<p>gear/unit[2]/static-friction-factor</p>
</quotient>
<quotient>
<value>0.25</value>
<p>gear/unit[2]/static-friction-factor</p>
</quotient>
<value>0.0</value>
<value>0.0</value>
<quotient>
<value>0.25</value>
<p>gear/unit[2]/static-friction-factor</p>
</quotient>
</switch>
<p>ground/snow_friction-factor</p>
</product>
<!-- not winter and not above snow line -->
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.5</value>
<value>0.55</value>
<value>0.6</value>
<value>0.0</value>
<value>0.0</value>
<value>0.6</value>
</switch>
</ifthen>
</ifthen>
</function>
</fcs_function>
<fcs_function name="rolling-friction-right-gear">
<output>gear/unit[2]/rolling_friction_coeff</output>
<output>gear/unit[25]/rolling_friction_coeff</output>
<function>
<ifthen>
<p>gear/unit[2]/broken</p>
<p>gear/unit[2]/rolling_friction_coeff</p>
<!-- winter or above snow line -->
<ifthen>
<and>
<p>ground/snow-possible</p>
<p>/environment/surface/snow-thickness-factor</p>
<or>
<gt>
<p>gear/unit[2]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[2]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<product>
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<quotient>
<value>0.006</value>
<p>gear/unit[2]/rolling_friction-factor</p>
</quotient>
<quotient>
<value>0.0045</value>
<p>gear/unit[2]/rolling_friction-factor</p>
</quotient>
<quotient>
<value>0.003</value>
<p>gear/unit[2]/rolling_friction-factor</p>
</quotient>
<value>0.0</value>
<value>0.0</value>
<quotient>
<value>0.003</value>
<p>gear/unit[2]/rolling_friction-factor</p>
</quotient>
</switch>
<p>ground/snow_friction-factor</p>
</product>
<!-- not winter and not above snow line -->
<switch>
<property>bushkit</property>
<!-- Default/26"/36"/pontoon/amphibious/skis -->
<value>0.02</value>
<value>0.015</value>
<value>0.01</value>
<value>0.0</value>
<value>0.0</value>
<value>0.01</value>
</switch>
</ifthen>
</ifthen>
</function>
</fcs_function>
<!-- ================================================================== -->
<!-- Contact points wing tips -->
<!-- ================================================================== -->
<switch name="z-position-left-wing-tip">
<output>contact/unit[4]/z-position</output>
<default value="50"/>
<test logic="AND" value="-8">
crash EQ 1
</test>
<!-- -10 when on/above water -->
<test logic="AND" value="-10">
contact/unit[4]/solid EQ 0
</test>
<test logic="AND" value="40">
wing-damage/left-wing EQ 1.0
contact/unit[12]/WOW EQ 1
</test>
</switch>
<switch name="z-position-right-wing-tip">
<output>contact/unit[5]/z-position</output>
<default value="50"/>
<test logic="AND" value="-8">
crash EQ 1
</test>
<!-- -10 when on/above water -->
<test logic="AND" value="-10">
contact/unit[5]/solid EQ 0
</test>
<test logic="AND" value="40">
wing-damage/right-wing EQ 1.0
contact/unit[12]/WOW EQ 1
</test>
</switch>
<!-- ================================================================== -->
<!-- Contact points top of fuselage and empennage -->
<!-- ================================================================== -->
<switch name="z-position-nose-top">
<output>contact/unit[9]/z-position</output>
<default value="35"/>
<test logic="AND" value="-25">
contact/unit[9]/solid EQ 0
</test>
</switch>
<switch name="z-position-nose">
<output>contact/unit[10]/z-position</output>
<default value="8"/>
<test logic="AND" value="-25">
contact/unit[10]/solid EQ 0
</test>
</switch>
<switch name="z-position-cockpit-top">
<output>contact/unit[11]/z-position</output>
<default value="60"/>
<test logic="AND" value="-25">
contact/unit[11]/solid EQ 0
</test>
</switch>
<switch name="z-position-top-vertical-stabilizer">
<output>contact/unit[12]/z-position</output>
<default value="90"/>
<!-- 160 puts tail higher in the air when upside down -->
<test logic="AND" value="160">
contact/unit[12]/solid EQ 0
</test>
</switch>
<!-- ================================================================== -->
<!-- Contact points skis -->
<!-- ================================================================== -->
<switch name="z-position-nose-ski">
<output>gear/unit[23]/z-position</output>
<default value="0"/>
<test logic="AND" value="-22">
bushkit EQ 5
gear/unit[0]/broken EQ 0
</test>
</switch>
<switch name="z-position-left-ski">
<output>gear/unit[24]/z-position</output>
<default value="0"/>
<test logic="AND" value="-22">
bushkit EQ 5
gear/unit[1]/broken EQ 0
</test>
</switch>
<switch name="z-position-right-ski">
<output>gear/unit[25]/z-position</output>
<default value="0"/>
<test logic="AND" value="-22">
bushkit EQ 5
gear/unit[2]/broken EQ 0
</test>
</switch>
<!-- ================================================================== -->
<!-- Contact points pontoons snow -->
<!-- ================================================================== -->
<fcs_function name="z-position-ground-factor-left-forward-pontoons">
<output>contact/unit[13]/z-position</output>
<function>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>contact/unit[13]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>contact/unit[13]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>contact/unit[13]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<value>0.02</value>
</product>
</sum>
<p>contact/unit[13]/z-position</p>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-ground-factor-left-aft-pontoons">
<output>contact/unit[15]/z-position</output>
<function>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>contact/unit[15]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>contact/unit[15]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>contact/unit[15]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<value>0.04</value>
</product>
</sum>
<p>contact/unit[15]/z-position</p>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-ground-factor-left-aft-pontoons">
<output>contact/unit[17]/z-position</output>
<function>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>contact/unit[17]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>contact/unit[17]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>contact/unit[17]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<value>0.04</value>
</product>
</sum>
<p>contact/unit[17]/z-position</p>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-ground-factor-right-forward-pontoon">
<output>contact/unit[14]/z-position</output>
<function>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>contact/unit[14]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>contact/unit[14]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>contact/unit[14]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<value>0.02</value>
</product>
</sum>
<p>contact/unit[14]/z-position</p>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-ground-factor-right-aft-pontoon">
<output>contact/unit[16]/z-position</output>
<function>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>contact/unit[16]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>contact/unit[16]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>contact/unit[16]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<value>0.04</value>
</product>
</sum>
<p>contact/unit[16]/z-position</p>
</ifthen>
</function>
</fcs_function>
<fcs_function name="z-position-ground-factor-right-aft-pontoon">
<output>contact/unit[18]/z-position</output>
<function>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>contact/unit[18]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>contact/unit[18]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>contact/unit[18]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<value>0.04</value>
</product>
</sum>
<p>contact/unit[18]/z-position</p>
</ifthen>
</function>
</fcs_function>
<!-- ================================================================== -->
<!-- Contact points amphibious -->
<!-- ================================================================== -->
<switch name="z-position-left-fwd-pontoon">
<output>gear/unit[19]/z-position</output>
<default value="0"/>
<test logic="AND" value="-57.3">
bushkit EQ 4
</test>
</switch>
<fcs_function name="z-position-ground-factor-left-fwd-amphibious">
<output>gear/unit[19]/z-position</output>
<function>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>gear/unit[19]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[19]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>gear/unit[19]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<value>0.07</value>
</product>
</sum>
<p>gear/unit[19]/z-position</p>
</ifthen>
</function>
</fcs_function>
<switch name="z-position-right-fwd-pontoon">
<output>gear/unit[20]/z-position</output>
<default value="0"/>
<test logic="AND" value="-56.5">
bushkit EQ 4
</test>
</switch>
<fcs_function name="z-position-ground-factor-right-fwd-amphibious">
<output>gear/unit[20]/z-position</output>
<function>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>gear/unit[20]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[20]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>gear/unit[20]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<value>0.07</value>
</product>
</sum>
<p>gear/unit[20]/z-position</p>
</ifthen>
</function>
</fcs_function>
<switch name="z-position-left-aft-pontoon">
<output>gear/unit[21]/z-position</output>
<default value="0"/>
<test logic="AND" value="-52.6">
bushkit EQ 4
</test>
</switch>
<fcs_function name="z-position-ground-factor-left-aft-amphibious">
<output>gear/unit[21]/z-position</output>
<function>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>gear/unit[21]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[21]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>gear/unit[21]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<value>0.08</value>
</product>
</sum>
<p>gear/unit[21]/z-position</p>
</ifthen>
</function>
</fcs_function>
<switch name="z-position-right-aft-pontoon">
<output>gear/unit[22]/z-position</output>
<default value="0"/>
<test logic="AND" value="-52.6">
bushkit EQ 4
</test>
</switch>
<fcs_function name="z-position-ground-factor-right-aft-amphibious">
<output>gear/unit[22]/z-position</output>
<function>
<ifthen>
<and>
<p>ground/snow-possible</p>
<or>
<gt>
<p>gear/unit[22]/rolling_friction-factor</p>
<v>2</v>
</gt>
<lt>
<p>gear/unit[22]/rolling_friction-factor</p>
<v>1</v>
</lt>
</or>
</and>
<sum>
<p>gear/unit[22]/z-position</p>
<product>
<product>
<p>/environment/surface/snow-thickness-factor</p>
<p>/environment/surface/snow-thickness-multiplier</p>
</product>
<value>0.08</value>
</product>
</sum>
<p>gear/unit[22]/z-position</p>
</ifthen>
</function>
</fcs_function>
</channel>
<channel name="groundeffects">
<switch name="gear-spin-nose">
<output>gear/gear-spin-nose</output>
<default value="53"/>
<test logic="OR" value="41">
bushkit EQ 1
bushkit EQ 2
bushkit EQ 5
</test>
</switch>
<switch name="gear-spin-left">
<output>gear/gear-spin-left</output>
<default value="53"/>
<test logic="OR" value="0">
/controls/gear/brake-parking EQ 1
/controls/gear/brake-left GT 0.95
</test>
<test logic="OR" value="24">
bushkit EQ 2
bushkit EQ 5
</test>
<test logic="OR" value="29">
bushkit EQ 1
</test>
</switch>
<switch name="gear-spin-right">
<output>gear/gear-spin-right</output>
<default value="53"/>
<test logic="OR" value="0">
/controls/gear/brake-parking EQ 1
/controls/gear/brake-right GT 0.95
</test>
<test logic="OR" value="24">
bushkit EQ 2
bushkit EQ 5
</test>
<test logic="OR" value="29">
bushkit EQ 1
</test>
</switch>
<fcs_function name="gear/gear-burn-left">
<function>
<product>
<or>
<property>/gear/gear[1]/wow</property>
<property>/gear/gear[20]/wow</property>
</or>
<property>/velocities/groundspeed-kt</property>
<property>ground/solid</property>
<product>
<or>
<property>/controls/gear/brake-parking</property>
<eq>
<property>/controls/gear/brake-left</property>
<value>1</value>
</eq>
</or>
<value>10</value>
</product>
</product>
</function>
</fcs_function>
<fcs_function name="gear/gear-burn-right">
<function>
<product>
<or>
<property>/gear/gear[2]/wow</property>
<property>/gear/gear[22]/wow</property>
</or>
<property>/velocities/groundspeed-kt</property>
<property>ground/solid</property>
<product>
<or>
<property>/controls/gear/brake-parking</property>
<eq>
<property>/controls/gear/brake-right</property>
<value>1</value>
</eq>
</or>
<value>10</value>
</product>
</product>
</function>
</fcs_function>
<switch name="gear-on-pavement">
<output>gear/on-pavement</output>
<default value="0"/>
<test logic="OR" value="1">
ground/bumpiness LT 0.02
</test>
</switch>
<fcs_function name="gear/gear-screech">
<function>
<product>
<property>gear/on-pavement</property>
<or>
<gt>
<property>gear/gear-burn-left</property>
<value>0</value>
</gt>
<gt>
<property>gear/gear-burn-right</property>
<value>0</value>
</gt>
</or>
<property>/velocities/groundspeed-kt</property>
</product>
</function>
</fcs_function>
<fcs_function name="gear/gear-drag">
<function>
<product>
<not>
<property>gear/on-pavement</property>
</not>
<or>
<gt>
<property>gear/gear-burn-left</property>
<value>0</value>
</gt>
<gt>
<property>gear/gear-burn-right</property>
<value>0</value>
</gt>
</or>
<property>/velocities/groundspeed-kt</property>
</product>
</function>
</fcs_function>
<fcs_function name="ground/tail-ground-effect-speed-kt">
<function>
<product>
<property>/fdm/jsbsim/contact/unit[3]/WOW</property>
<property>/fdm/jsbsim/ground/solid</property>
<property>/velocities/groundspeed-kt</property>
</product>
</function>
</fcs_function>
<fcs_function name="ground/left-wing-ground-effect-speed-kt">
<function>
<product>
<property>/fdm/jsbsim/contact/unit[4]/WOW</property>
<property>/fdm/jsbsim/ground/solid</property>
<property>/velocities/groundspeed-kt</property>
<eq>
<property>/fdm/jsbsim/wing-damage/left-wing</property>
<value>0.0</value>
</eq>
</product>
</function>
</fcs_function>
<fcs_function name="ground/right-wing-ground-effect-speed-kt">
<function>
<product>
<property>/fdm/jsbsim/contact/unit[5]/WOW</property>
<property>/fdm/jsbsim/ground/solid</property>
<property>/velocities/groundspeed-kt</property>
<eq>
<property>/fdm/jsbsim/wing-damage/right-wing</property>
<value>0.0</value>
</eq>
</product>
</function>
</fcs_function>
<fcs_function name="ground/nose-gear-ground-effect-speed-kt">
<function>
<product>
<property>/fdm/jsbsim/contact/unit[6]/WOW</property>
<property>/gear/gear[0]/rollspeed-ms</property>
<value>1.94384449</value><!-- m/s to knots -->
</product>
</function>
</fcs_function>
<fcs_function name="ground/left-gear-ground-effect-speed-kt">
<function>
<product>
<property>/fdm/jsbsim/contact/unit[7]/WOW</property>
<property>/gear/gear[1]/rollspeed-ms</property>
<value>1.94384449</value><!-- m/s to knots -->
</product>
</function>
</fcs_function>
<fcs_function name="ground/right-gear-ground-effect-speed-kt">
<function>
<product>
<property>/fdm/jsbsim/contact/unit[8]/WOW</property>
<property>/gear/gear[2]/rollspeed-ms</property>
<value>1.94384449</value><!-- m/s to knots -->
</product>
</function>
</fcs_function>
<!-- touchdown smoke not damage-->
<fcs_function name="ground/nose-tyre-smoke-ground-effect-speed-kt">
<function>
<or>
<property>/gear/gear[0]/tyre-smoke</property>
<product>
<property>/gear/gear[0]/wow</property>
<gt>
<property>/velocities/groundspeed-kt</property>
<value>20.0</value>
</gt>
<gt>
<property>/fdm/jsbsim/ground/rolling_friction-factor</property>
<value>1</value>
</gt>
</product>
</or>
</function>
</fcs_function>
<fcs_function name="ground/left-tyre-smoke-ground-effect-speed-kt">
<function>
<or>
<property>/gear/gear[1]/tyre-smoke</property>
<product>
<property>/gear/gear[1]/wow</property>
<gt>
<property>/velocities/groundspeed-kt</property>
<value>20.0</value>
</gt>
<gt>
<property>/fdm/jsbsim/ground/rolling_friction-factor</property>
<value>1</value>
</gt>
</product>
</or>
</function>
</fcs_function>
<fcs_function name="ground/right-tyre-smoke-ground-effect-speed-kt">
<function>
<or>
<property>/gear/gear[2]/tyre-smoke</property>
<product>
<property>/gear/gear[2]/wow</property>
<gt>
<property>/velocities/groundspeed-kt</property>
<value>20.0</value>
</gt>
<gt>
<property>/fdm/jsbsim/ground/rolling_friction-factor</property>
<value>1</value>
</gt>
</product>
</or>
</function>
</fcs_function>
</channel>
<channel name="tiedowns">
<fcs_function name="tiedown-left-x">
<output>external_reactions/tiedown-left/x</output>
<function>
<sin>
<toradians>
<property>/sim/model/c172p/tiedowns/left/heading-deg</property>
</toradians>
</sin>
</function>
</fcs_function>
<fcs_function name="tiedown-left-y">
<output>external_reactions/tiedown-left/y</output>
<function>
<product>
<value>-1</value>
<cos>
<toradians>
<property>/sim/model/c172p/tiedowns/left/heading-deg</property>
</toradians>
</cos>
</product>
</function>
</fcs_function>
<fcs_function name="tiedown-left-z">
<output>external_reactions/tiedown-left/z</output>
<function>
<product>
<value>-1</value>
<sin>
<toradians>
<property>/sim/model/c172p/tiedowns/left/pitch-deg</property>
</toradians>
</sin>
</product>
</function>
</fcs_function>
<fcs_function name="tiedown-right-x">
<output>external_reactions/tiedown-right/x</output>
<function>
<product>
<value>-1</value>
<sin>
<toradians>
<property>/sim/model/c172p/tiedowns/right/heading-deg</property>
</toradians>
</sin>
</product>
</function>
</fcs_function>
<fcs_function name="tiedown-right-y">
<output>external_reactions/tiedown-right/y</output>
<function>
<cos>
<toradians>
<property>/sim/model/c172p/tiedowns/right/heading-deg</property>
</toradians>
</cos>
</function>
</fcs_function>
<fcs_function name="tiedown-right-z">
<output>external_reactions/tiedown-right/z</output>
<function>
<product>
<value>-1</value>
<sin>
<toradians>
<property>/sim/model/c172p/tiedowns/right/pitch-deg</property>
</toradians>
</sin>
</product>
</function>
</fcs_function>
<fcs_function name="tiedown-tail-x">
<output>external_reactions/tiedown-tail/x</output>
<function>
<cos>
<toradians>
<property>/sim/model/c172p/tiedowns/tail/heading-deg</property>
</toradians>
</cos>
</function>
</fcs_function>
<fcs_function name="tiedown-tail-y">
<output>external_reactions/tiedown-tail/y</output>
<function>
<sin>
<toradians>
<property>/sim/model/c172p/tiedowns/tail/heading-deg</property>
</toradians>
</sin>
</function>
</fcs_function>
<fcs_function name="tiedown-tail-z">
<output>external_reactions/tiedown-tail/z</output>
<function>
<product>
<value>-1</value>
<sin>
<toradians>
<property>/sim/model/c172p/tiedowns/tail/pitch-deg</property>
</toradians>
</sin>
</product>
</function>
</fcs_function>
<summer name="fcs/tiedown-left-mag-error">
<input>/sim/model/c172p/tiedowns/left/length</input>
<input>-/sim/model/c172p/tiedowns/left/ref-length</input>
</summer>
<summer name="fcs/tiedown-right-mag-error">
<input>/sim/model/c172p/tiedowns/right/length</input>
<input>-/sim/model/c172p/tiedowns/right/ref-length</input>
</summer>
<summer name="fcs/tiedown-tail-mag-error">
<input>/sim/model/c172p/tiedowns/tail/length</input>
<input>-/sim/model/c172p/tiedowns/tail/ref-length</input>
</summer>
<pid name="fcs/tiedown-left-magnitude-pid">
<input>fcs/tiedown-left-mag-error</input>
<kp>7000.0</kp>
<ki>0.0</ki>
<kd>500.0</kd>
<clipto>
<min>-50</min>
<max>1000</max>
</clipto>
</pid>
<pid name="fcs/tiedown-right-magnitude-pid">
<input>fcs/tiedown-right-mag-error</input>
<kp>7000.0</kp>
<ki>0.0</ki>
<kd>500.0</kd>
<clipto>
<min>-50</min>
<max>1000</max>
</clipto>
</pid>
<pid name="fcs/tiedown-tail-magnitude-pid">
<input>fcs/tiedown-tail-mag-error</input>
<kp>7000.0</kp>
<ki>0.0</ki>
<kd>500.0</kd>
<clipto>
<min>-50</min>
<max>1000</max>
</clipto>
</pid>
<switch name="fcs/tiedown-left-magnitude">
<output>external_reactions/tiedown-left/magnitude</output>
<default value="0"/>
<test logic="AND" value="fcs/tiedown-left-magnitude-pid">
/sim/model/c172p/securing/tiedownL-visible EQ 1
/fdm/jsbsim/damage/repairing EQ 0
</test>
</switch>
<switch name="fcs/tiedown-right-magnitude">
<output>external_reactions/tiedown-right/magnitude</output>
<default value="0"/>
<test logic="AND" value="fcs/tiedown-right-magnitude-pid">
/sim/model/c172p/securing/tiedownR-visible EQ 1
/fdm/jsbsim/damage/repairing EQ 0
</test>
</switch>
<switch name="fcs/tiedown-tail-magnitude">
<output>external_reactions/tiedown-tail/magnitude</output>
<default value="0"/>
<test logic="AND" value="fcs/tiedown-tail-magnitude-pid">
/sim/model/c172p/securing/tiedownT-visible EQ 1
/fdm/jsbsim/damage/repairing EQ 0
</test>
</switch>
</channel>
</system>