213 lines
6.8 KiB
XML
213 lines
6.8 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<PropertyList>
|
|
<debug>true</debug>
|
|
|
|
<!-- Some filters are useful when tuning the parameters, but not needed in
|
|
production aircraft. They're tagged DEVELOP and disabled by default. -->
|
|
|
|
<!-- limit time step -->
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1.</gain>
|
|
<output>/sim/systems/wingflexer/delta-sec</output>
|
|
<input>
|
|
<property>/sim/time/delta-sec</property>
|
|
</input>
|
|
<max>0.05</max>
|
|
</filter>
|
|
|
|
<!-- fuselage z (up) acceleration in m/s^2
|
|
we get -g in unaccelerated flight, and large negative numbers on touchdown -->
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1.</gain>
|
|
<output>/sim/systems/wingflexer/a-fuselage-mps2</output>
|
|
<input>
|
|
<expression>
|
|
<product>
|
|
<property>/accelerations/pilot/z-accel-fps_sec</property>
|
|
<value>0.3048</value> <!-- FT2M -->
|
|
</product>
|
|
</expression>
|
|
</input>
|
|
</filter>
|
|
|
|
<!-- compute k and d -->
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1.</gain>
|
|
<output>/sim/systems/wingflexer/k</output>
|
|
<input>
|
|
<expression>
|
|
<product>
|
|
<property>/sim/systems/wingflexer/params/K</property>
|
|
<property>/sim/systems/wingflexer/params/m-wing-dry-kg</property>
|
|
</product>
|
|
</expression>
|
|
</input>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1.</gain>
|
|
<output>/sim/systems/wingflexer/d</output>
|
|
<input>
|
|
<expression>
|
|
<product>
|
|
<property>/sim/systems/wingflexer/params/D</property>
|
|
<property>/sim/systems/wingflexer/params/m-wing-dry-kg</property>
|
|
</product>
|
|
</expression>
|
|
</input>
|
|
</filter>
|
|
|
|
|
|
<!-- lift force. Convert to N and use 1/2 (one wing only) -->
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1.</gain>
|
|
<output>/sim/systems/wingflexer/f-lift-N</output>
|
|
<input>
|
|
<expression>
|
|
<product>
|
|
<property>/sim/systems/wingflexer/params/lift-node-lbs</property>
|
|
<product>
|
|
<property>/environment/gravitational-acceleration-mps2</property>
|
|
<value>0.226796</value> <!-- LB2KG / 2-->
|
|
</product>
|
|
</product>
|
|
</expression>
|
|
</input>
|
|
</filter>
|
|
|
|
<!-- z_ofs = g * mass_dry_kg / k -->
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1.</gain>
|
|
<output>/sim/systems/wingflexer/z-ofs-m</output>
|
|
<input>
|
|
<expression>
|
|
<div>
|
|
<product>
|
|
<property>/environment/gravitational-acceleration-mps2</property>
|
|
<property>/sim/systems/wingflexer/params/m-wing-dry-kg</property>
|
|
</product>
|
|
<property>/sim/systems/wingflexer/k</property>
|
|
</div>
|
|
</expression>
|
|
</input>
|
|
</filter>
|
|
|
|
<!--
|
|
compute total mass of one wing, using the average fuel mass in all wing tanks.
|
|
The weighting factor should be lumped into fuel_frac.
|
|
mass = mass_dry_kg + fuel_frac * sum_i (fuel_node_i_kg)
|
|
-->
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1.</gain>
|
|
<output>/sim/systems/wingflexer/m-wing-kg</output>
|
|
<input>
|
|
<expression>
|
|
<sum>
|
|
<property>/sim/systems/wingflexer/params/m-wing-dry-kg</property>
|
|
<product>
|
|
<property>/sim/systems/wingflexer/params/fuel-frac</property>
|
|
<sum>
|
|
<property>/sim/systems/wingflexer/params/fuel-node-1-kg</property>
|
|
<property>/sim/systems/wingflexer/params/fuel-node-2-kg</property>
|
|
<property>/sim/systems/wingflexer/params/fuel-node-3-kg</property>
|
|
<property>/sim/systems/wingflexer/params/fuel-node-4-kg</property>
|
|
</sum>
|
|
</product>
|
|
</sum>
|
|
</expression>
|
|
</input>
|
|
</filter>
|
|
|
|
<!-- integrate the ODE -->
|
|
<filter>
|
|
<type>damped-oscillation</type>
|
|
<output>/sim/systems/wingflexer/z-raw-m</output>
|
|
<a>
|
|
<expression>
|
|
<div>
|
|
<property>/sim/systems/wingflexer/d</property>
|
|
<property>/sim/systems/wingflexer/m-wing-kg</property>
|
|
</div>
|
|
</expression>
|
|
</a>
|
|
<b>
|
|
<expression>
|
|
<div>
|
|
<property>/sim/systems/wingflexer/k</property>
|
|
<property>/sim/systems/wingflexer/m-wing-kg</property>
|
|
</div>
|
|
</expression>
|
|
</b>
|
|
<c>
|
|
<expression>
|
|
<difference>
|
|
<div>
|
|
<property>/sim/systems/wingflexer/f-lift-N</property>
|
|
<property>/sim/systems/wingflexer/m-wing-kg</property>
|
|
</div>
|
|
<property>/sim/systems/wingflexer/a-fuselage-mps2</property>
|
|
</difference>
|
|
</expression>
|
|
</c>
|
|
<!-- DEVELOP: initialize the wing's vertical velocity to a given value,
|
|
overriding all previous computations -->
|
|
<input>
|
|
<expression>
|
|
<product>
|
|
<property>/sim/systems/wingflexer/sink-rate-fps</property>
|
|
<value>0.3048</value> <!-- feet to meters -->
|
|
</product>
|
|
</expression>
|
|
</input>
|
|
</filter>
|
|
|
|
<filter>
|
|
<type>gain</type>
|
|
<output>/sim/systems/wingflexer/z-m</output>
|
|
<!--<gain>1.</gain> -->
|
|
<!-- DEVELOP: scaled output. For production aircraft, this should be done in
|
|
the model animation. -->
|
|
<gain><property>/sim/systems/wingflexer/params/z-fac</property></gain>
|
|
|
|
<input>
|
|
<expression>
|
|
<sum>
|
|
<property>/sim/systems/wingflexer/z-raw-m</property>
|
|
<property>/sim/systems/wingflexer/z-ofs-m</property>
|
|
</sum>
|
|
</expression>
|
|
</input>
|
|
</filter>
|
|
|
|
<!-- DEVELOP: reset sink rate -->
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>0.</gain>
|
|
<output>/sim/systems/wingflexer/sink-rate-fps</output>
|
|
</filter>
|
|
|
|
<!-- DEVELOP: log max z-m -->
|
|
<filter>
|
|
<type>gain</type>
|
|
<gain>1.</gain>
|
|
<output>/sim/systems/wingflexer/z-max-m</output>
|
|
<input>
|
|
<expression>
|
|
<max>
|
|
<property>/sim/systems/wingflexer/z-max-m</property>
|
|
<abs>
|
|
<property>/sim/systems/wingflexer/z-m</property>
|
|
</abs>
|
|
</max>
|
|
</expression>
|
|
</input>
|
|
</filter>
|
|
|
|
</PropertyList>
|