This repository has been archived on 2021-09-26. You can view files and clone it, but cannot push or open issues or pull requests.
IDG-A32X/Systems/fcs.xml
2017-10-08 19:48:59 -04:00

348 lines
7.5 KiB
XML

<!-- Airbus A3XX FCS by Joshua Davidson (it0uchpods) -->
<!--
#########################################
# Copyright (c) it0uchpods Design Group #
#########################################
-->
<system name="A3XX: FCS">
<property value="2">fcs/internal-fbw-law</property>
<channel name="FBW">
<switch name="Internal FBW Law">
<default value="/it-fbw/law"/>
<test logic="OR" value="2">
/gear/gear[1]/wow == 1
/gear/gear[2]/wow == 1
</test>
</switch>
</channel>
<channel name="Roll">
<summer name="Roll Trim Sum">
<input>/controls/flight/aileron-sum</input>
<input>/controls/flight/aileron-trim</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="Roll Control">
<input>fcs/roll-trim-sum</input>
<range>
<min>-0.523599</min>
<max>0.523599</max>
</range>
<output>fcs/roll-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="Roll Control Normalized">
<input>fcs/roll-pos-rad</input>
<domain>
<min>-0.523599</min>
<max>0.523599</max>
</domain>
<range>
<min>-1</min>
<max>1</max>
</range>
<output>fcs/roll-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Pitch">
<summer name="Pitch Trim Sum">
<input>/controls/flight/elevator-sum</input>
<input>/controls/flight/elevator-trim</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="Pitch Control">
<input>fcs/pitch-trim-sum</input>
<range>
<min>-0.523599</min>
<max>0.523599</max>
</range>
<output>fcs/pitch-pos-rad</output>
</aerosurface_scale>
<scheduled_gain name="Pitch Control Gearing">
<input>fcs/pitch-pos-rad</input>
<table>
<independentVar lookup="row">velocities/mach</independentVar>
<independentVar lookup="column">atmosphere/density-altitude</independentVar>
<tableData>
0.0 43000
0.0 1.00 0.85
0.9 0.02 0.75
</tableData>
</table>
<output>fcs/pitch-pos-geared</output>
</scheduled_gain>
<aerosurface_scale name="Pitch Control Normalized">
<input>fcs/pitch-pos-geared</input>
<domain>
<min>-0.523599</min>
<max>0.523599</max>
</domain>
<range>
<min>-1</min>
<max>1</max>
</range>
<output>fcs/pitch-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Throttle">
<pure_gain name="fcs/throttle1">
<input>/controls/engines/engine[0]/throttle-output</input>
<gain>1</gain>
<output>fcs/throttle-cmd-norm</output>
<output>fcs/throttle-pos-norm</output>
</pure_gain>
<pure_gain name="fcs/throttle2">
<input>/controls/engines/engine[1]/throttle-output</input>
<gain>1</gain>
<output>fcs/throttle-cmd-norm[1]</output>
<output>fcs/throttle-pos-norm[1]</output>
</pure_gain>
</channel>
<channel name="Yaw">
<pure_gain name="fcs/rudder-cmd">
<input>/controls/flight/rudder-fdm</input>
<gain>-1</gain>
<output>fcs/rudder-cmd-norm</output>
</pure_gain>
<summer name="Rudder Command Sum">
<input>fcs/rudder-cmd-norm</input>
<input>fcs/yaw-trim-cmd-norm</input>
<clipto>
<min> -0.35 </min>
<max> 0.35 </max>
</clipto>
</summer>
<scheduled_gain name="Yaw Damper Rate">
<input>velocities/r-aero-rad_sec</input>
<table>
<independentVar lookup="row">velocities/ve-kts</independentVar>
<tableData>
30 0.00
60 2.00
</tableData>
</table>
</scheduled_gain>
<scheduled_gain name="Yaw Damper Beta">
<input>aero/beta-rad</input>
<table>
<independentVar lookup="row">velocities/ve-kts</independentVar>
<tableData>
30 0.00
60 0.00
</tableData>
</table>
</scheduled_gain>
<summer name="Yaw Damper Sum">
<input>fcs/yaw-damper-beta</input>
<input>fcs/yaw-damper-rate</input>
<clipto>
<min> -0.1 </min>
<max> 0.1 </max>
</clipto>
</summer>
<scheduled_gain name="Yaw Damper Final">
<input>fcs/yaw-damper-sum</input>
<table>
<independentVar lookup="row">velocities/ve-kts</independentVar>
<tableData>
30 0.0
31 1.0
</tableData>
</table>
</scheduled_gain>
<summer name="Rudder Sum">
<input>fcs/rudder-command-sum</input>
<input>fcs/yaw-damper-final</input>
<clipto>
<min> -1 </min>
<max> 1 </max>
</clipto>
</summer>
<aerosurface_scale name="Rudder Control">
<input>fcs/rudder-sum</input>
<range>
<min> -0.35 </min>
<max> 0.35 </max>
</range>
<output>fcs/rudder-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="rudder normalization">
<input>fcs/rudder-pos-rad</input>
<domain>
<min> -0.35 </min>
<max> 0.35 </max>
</domain>
<range>
<min> -1 </min>
<max> 1 </max>
</range>
<output>fcs/rudder-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Flaps">
<kinematic name="Flaps Control">
<input>/controls/flight/flaps</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>35</position>
<time>30</time>
</setting>
</traverse>
<output>fcs/flap-pos-deg</output>
</kinematic>
<aerosurface_scale name="Flap position normalized">
<input>fcs/flap-pos-deg</input>
<domain>
<min>0</min>
<max>35</max>
</domain>
<range>
<min>0</min>
<max>1</max>
</range>
<output>fcs/flap-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Slats">
<kinematic name="Slats Control">
<input>/controls/flight/slats</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>27</position>
<time>20</time>
</setting>
</traverse>
<output>fcs/slat-pos-deg</output>
</kinematic>
<aerosurface_scale name="Slat position normalized">
<input>fcs/slat-pos-deg</input>
<domain>
<min>0</min>
<max>27</max>
</domain>
<range>
<min>0</min>
<max>1</max>
</range>
<output>fcs/slat-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Landing Gear">
<kinematic name="Gear Control">
<input>gear/gear-cmd-norm</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>1</position>
<time>10</time>
</setting>
</traverse>
<output>gear/gear-pos-norm</output>
</kinematic>
</channel>
<channel name="Speedbrake">
<kinematic name="Speedbrake">
<input>/controls/flight/speedbrake-output</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>1</position>
<time>1</time>
</setting>
</traverse>
<output>fcs/speedbrake-pos-norm</output>
</kinematic>
</channel>
<channel name="Tiller">
<fcs_function name="Nose Wheel Steering 0">
<function name="fcs/steer-nose-deg[0]">
<description>Steering command for nose gear</description>
<product>
<table>
<independentVar lookup="row">/velocities/groundspeed-kt</independentVar>
<independentVar lookup="column">/controls/flight/rudder</independentVar>
<tableData>
-1 0 1
30.000 -70 0 70
30.001 -10 0 10
</tableData>
</table>
</product>
</function>
</fcs_function>
<actuator name="Gear Nose Actuator">
<input>fcs/steer-nose-deg[0]</input>
<rate_limit>70</rate_limit>
<output>fcs/steer-pos-deg[0]</output>
</actuator>
</channel>
</system>