<?xml version="1.0"?> <!-- Airbus A3XX FBW System by Joshua Davidson (it0uchpods) --> <!-- For Roll, Pitch, and Yaw --> <PropertyList> <!-- =============================================================== --> <!-- Surface Position Feeding --> <!-- =============================================================== --> <filter> <debug>false</debug> <type>noise-spike</type> <input>/controls/flight/aileron</input> <output>/controls/flight/aileron-input-fast</output> <max-rate-of-change>5</max-rate-of-change> </filter> <filter> <debug>false</debug> <type>noise-spike</type> <input>/controls/flight/elevator</input> <output>/controls/flight/elevator-input-fast</output> <max-rate-of-change>5</max-rate-of-change> </filter> <filter> <debug>false</debug> <type>noise-spike</type> <input>/controls/flight/aileron</input> <output>/controls/flight/aileron-input</output> <max-rate-of-change>2.5</max-rate-of-change> </filter> <filter> <debug>false</debug> <type>noise-spike</type> <input> <condition> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <less-than> <property>/position/gear-agl-ft</property> <value>50</value> </less-than> <greater-than-equals> <property>/controls/flight/flap-pos</property> <value>4</value> </greater-than-equals> <less-than> <property>/controls/engines/engine[0]/throttle</property> <value>0.65</value> </less-than> <less-than> <property>/controls/engines/engine[1]/throttle</property> <value>0.65</value> </less-than> <equals> <property>/FMGC/status/to-state</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> </and> </condition> <expression> <sum> <property>/controls/flight/elevator</property> <value>0.15</value> </sum> </expression> </input> <input> <property>/controls/flight/elevator</property> </input> <output>/controls/flight/elevator-input</output> <max-rate-of-change>2.5</max-rate-of-change> </filter> <!-- =============================================================== --> <!-- Lateral --> <!-- =============================================================== --> <pid-controller> <name>IT-FBW: ROLL</name> <debug>false</debug> <enable> <condition> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <equals> <property>/gear/gear[1]/wow</property> <value>0</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> </and> </condition> </enable> <input> <property>/orientation/roll-deg</property> </input> <reference> <property>/it-fbw/roll-deg</property> </reference> <output> <property>/controls/flight/aileron-fbw-cmd</property> </output> <config> <Kp>0.11</Kp> <beta>1</beta> <alpha>0.1</alpha> <gamma>0</gamma> <Ti>5</Ti> <Td>0.005</Td> <u_min>-1</u_min> <u_max>1</u_max> </config> </pid-controller> <filter> <name>IT-FBW: ROLL OPTION</name> <debug>false</debug> <type>gain</type> <gain>1</gain> <feedback-if-disabled>true</feedback-if-disabled> <initialize-to>output</initialize-to> <input> <condition> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <equals> <property>/gear/gear[1]/wow</property> <value>0</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> </and> </condition> <property>/controls/flight/aileron-fbw-cmd</property> </input> <input> <condition> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <or> <equals> <property>/gear/gear[1]/wow</property> <value>1</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>1</value> </equals> <equals> <property>/it-fbw/law</property> <value>1</value> </equals> <equals> <property>/it-fbw/law</property> <value>2</value> </equals> </or> </and> </condition> <property>/controls/flight/aileron-input</property> </input> <input> <condition> <or> <equals> <property>/it-autoflight/output/ap1</property> <value>1</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>1</value> </equals> </or> </condition> <property>/controls/flight/aileron-fmgc</property> </input> <input> <condition> <equals> <property>/it-fbw/law</property> <value>3</value> </equals> </condition> <value>0</value> </input> <output>/controls/flight/roll-fbw</output> </filter> <filter> <name>IT-FBW: AILERON</name> <type>gain</type> <gain>1</gain> <input>/controls/flight/roll-fbw</input> <output>/controls/flight/aileron-fbw</output> </filter> <filter> <name>IT-FBW: LEFT SPOILER</name> <type>gain</type> <gain>1</gain> <input> <condition> <equals> <property>/systems/failures/aileron-left</property> <value>0</value> </equals> </condition> <expression> <table> <property>/controls/flight/roll-fbw</property> <entry><ind>-1.0</ind><dep>-1.0</dep></entry> <entry><ind>-0.2</ind><dep> 0.0</dep></entry> <entry><ind> 0.0</ind><dep> 0.0</dep></entry> <entry><ind> 0.2</ind><dep> 0.0</dep></entry> <entry><ind> 1.0</ind><dep> 1.0</dep></entry> </table> </expression> </input> <input> <condition> <equals> <property>/systems/failures/aileron-left</property> <value>1</value> </equals> </condition> <expression> <table> <property>/controls/flight/roll-fbw</property> <entry><ind>-1.0</ind><dep>-1.0</dep></entry> <entry><ind> 0.0</ind><dep> 0.0</dep></entry> <entry><ind> 1.0</ind><dep> 1.0</dep></entry> </table> </expression> </input> <output>/controls/flight/spoiler-left-fbw-cmd</output> <min>-1</min> <max>1</max> </filter> <filter> <name>IT-FBW: RIGHT SPOILER</name> <type>gain</type> <gain>1</gain> <input> <condition> <equals> <property>/systems/failures/aileron-right</property> <value>0</value> </equals> </condition> <expression> <table> <property>/controls/flight/roll-fbw</property> <entry><ind>-1.0</ind><dep>-1.0</dep></entry> <entry><ind>-0.2</ind><dep> 0.0</dep></entry> <entry><ind> 0.0</ind><dep> 0.0</dep></entry> <entry><ind> 0.2</ind><dep> 0.0</dep></entry> <entry><ind> 1.0</ind><dep> 1.0</dep></entry> </table> </expression> </input> <input> <condition> <equals> <property>/systems/failures/aileron-right</property> <value>1</value> </equals> </condition> <expression> <table> <property>/controls/flight/roll-fbw</property> <entry><ind>-1.0</ind><dep>-1.0</dep></entry> <entry><ind> 0.0</ind><dep> 0.0</dep></entry> <entry><ind> 1.0</ind><dep> 1.0</dep></entry> </table> </expression> </input> <output>/controls/flight/spoiler-right-fbw-cmd</output> <min>-1</min> <max>1</max> </filter> <!-- =============================================================== --> <!-- Vertical --> <!-- =============================================================== --> <pid-controller> <name>IT-FBW: PITCH</name> <debug>false</debug> <enable> <condition> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <equals> <property>/gear/gear[1]/wow</property> <value>0</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>0</value> </equals> <equals> <property>/it-fbw/spd-hold</property> <value>0</value> </equals> <less-than> <property>/orientation/roll-deg</property> <value>40</value> </less-than> <greater-than> <property>/orientation/roll-deg</property> <value>-40</value> </greater-than> <or> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>1</value> </equals> </or> </and> </condition> </enable> <input> <property>/orientation/pitch-deg</property> </input> <reference> <property>/it-fbw/pitch-deg</property> </reference> <output> <property>/controls/flight/elevator-fbw-cmd</property> </output> <config> <Kp>-0.21</Kp> <beta>1</beta> <alpha>0.1</alpha> <gamma>0</gamma> <Ti>5</Ti> <Td>0.002</Td> <u_min>-1</u_min> <u_max>1</u_max> </config> </pid-controller> <filter> <name>IT-FBW: SPD PITCH TARGET CMD</name> <type>noise-spike</type> <enable> <condition> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <equals> <property>/gear/gear[1]/wow</property> <value>0</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>0</value> </equals> <equals> <property>/it-fbw/spd-hold</property> <value>1</value> </equals> <or> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>1</value> </equals> </or> </and> </condition> </enable> <input> <expression> <table> <property>/controls/flight/elevator-input</property> <entry><ind> 0</ind><dep>129</dep></entry> <entry><ind>-1</ind><dep>106</dep></entry> </table> </expression> </input> <output>/it-fbw/spd-pitch-target</output> <max-rate-of-change>10</max-rate-of-change> </filter> <pid-controller> <name>IT-FBW: SPD PITCH TARGET</name> <debug>false</debug> <enable> <condition> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <equals> <property>/gear/gear[1]/wow</property> <value>0</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>0</value> </equals> <equals> <property>/it-fbw/spd-hold</property> <value>1</value> </equals> <less-than> <property>/orientation/roll-deg</property> <value>40</value> </less-than> <greater-than> <property>/orientation/roll-deg</property> <value>-40</value> </greater-than> <or> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>1</value> </equals> </or> </and> </condition> </enable> <input> <property>/it-autoflight/internal/lookahead-10-sec-airspeed-kt</property> </input> <reference> <property>/it-fbw/spd-pitch-target</property> </reference> <output> <property>/it-fbw/spd-pitch-deg</property> </output> <config> <Kp>-0.50</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>5.0</Ti> <Td>0.0001</Td> <u_min>-10</u_min> <u_max>30</u_max> </config> </pid-controller> <pid-controller> <name>IT-FBW: SPD PITCH</name> <debug>false</debug> <enable> <condition> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <equals> <property>/gear/gear[1]/wow</property> <value>0</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>0</value> </equals> <equals> <property>/it-fbw/spd-hold</property> <value>1</value> </equals> <less-than> <property>/orientation/roll-deg</property> <value>40</value> </less-than> <greater-than> <property>/orientation/roll-deg</property> <value>-40</value> </greater-than> <or> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>1</value> </equals> </or> </and> </condition> </enable> <input> <property>/orientation/pitch-deg</property> </input> <reference> <property>/it-fbw/spd-pitch-deg</property> </reference> <output> <property>/controls/flight/elevator-fbw-cmd</property> </output> <config> <Kp>-0.08</Kp> <beta>1</beta> <alpha>0.1</alpha> <gamma>0</gamma> <Ti>5</Ti> <Td>0.001</Td> <u_min>-1</u_min> <u_max>1</u_max> </config> </pid-controller> <filter> <name>IT-FBW: PITCH OPTION</name> <debug>false</debug> <type>gain</type> <gain>1</gain> <feedback-if-disabled>true</feedback-if-disabled> <initialize-to>output</initialize-to> <input> <condition> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <equals> <property>/gear/gear[1]/wow</property> <value>0</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>0</value> </equals> <less-than> <property>/orientation/roll-deg</property> <value>40</value> </less-than> <greater-than> <property>/orientation/roll-deg</property> <value>-40</value> </greater-than> <or> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>1</value> </equals> </or> </and> </condition> <property>/controls/flight/elevator-fbw-cmd</property> </input> <input> <condition> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <or> <equals> <property>/gear/gear[1]/wow</property> <value>1</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>1</value> </equals> <equals> <property>/it-fbw/law</property> <value>2</value> </equals> <greater-than-equals> <property>/orientation/roll-deg</property> <value>40</value> </greater-than-equals> <less-than-equals> <property>/orientation/roll-deg</property> <value>-40</value> </less-than-equals> </or> </and> </condition> <property>/controls/flight/elevator-input</property> </input> <input> <condition> <or> <equals> <property>/it-autoflight/output/ap1</property> <value>1</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>1</value> </equals> </or> </condition> <property>/controls/flight/elevator-fmgc</property> </input> <input> <condition> <equals> <property>/it-fbw/law</property> <value>3</value> </equals> </condition> <value>0</value> </input> <output>/controls/flight/elevator-fbw</output> </filter> <pid-controller> <name>FBW PITCH HELPER PLUS</name> <debug>false</debug> <enable> <condition> <and> <greater-than> <property>/controls/flight/elevator-fbw</property> <value>0.01</value> </greater-than> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <less-than> <property>/orientation/roll-deg</property> <value>40</value> </less-than> <greater-than> <property>/orientation/roll-deg</property> <value>-40</value> </greater-than> <or> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>1</value> </equals> </or> <greater-than-equals> <property>/position/gear-agl-ft</property> <value>50</value> </greater-than-equals> </and> </condition> </enable> <input> <value>0</value> </input> <reference> <value>1</value> </reference> <output> <property>/controls/flight/elevator-trim-cmd</property> </output> <config> <Kp>0.09</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>10</Ti> <Td>0.00001</Td> <u_min>-1.00</u_min> <u_max>1.00</u_max> </config> </pid-controller> <pid-controller> <name>FBW PITCH HELPER MINUS</name> <debug>false</debug> <enable> <condition> <and> <less-than> <property>/controls/flight/elevator-fbw</property> <value>-0.01</value> </less-than> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <less-than> <property>/orientation/roll-deg</property> <value>40</value> </less-than> <greater-than> <property>/orientation/roll-deg</property> <value>-40</value> </greater-than> <or> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>1</value> </equals> </or> <greater-than-equals> <property>/position/gear-agl-ft</property> <value>50</value> </greater-than-equals> </and> </condition> </enable> <input> <value>0</value> </input> <reference> <value>1</value> </reference> <output> <property>/controls/flight/elevator-trim-cmd</property> </output> <config> <Kp>-0.09</Kp> <beta>1.0</beta> <alpha>0.1</alpha> <gamma>0.0</gamma> <Ti>10</Ti> <Td>0.00001</Td> <u_min>-1.00</u_min> <u_max>1.00</u_max> </config> </pid-controller> <filter> <name>IT-FBW: PITCH TRIM FILTER</name> <debug>false</debug> <feedback-if-disabled>true</feedback-if-disabled> <initialize-to>output</initialize-to> <enable> <condition> <and> <and> <equals> <property>/it-autoflight/output/ap1</property> <value>0</value> </equals> <equals> <property>/it-autoflight/output/ap2</property> <value>0</value> </equals> <or> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>1</value> </equals> </or> <greater-than-equals> <property>/position/gear-agl-ft</property> <value>50</value> </greater-than-equals> </and> <less-than> <property>/orientation/roll-deg</property> <value>40</value> </less-than> <greater-than> <property>/orientation/roll-deg</property> <value>-40</value> </greater-than> <or> <greater-than> <property>/controls/flight/elevator-fbw</property> <value>0.01</value> </greater-than> <less-than> <property>/controls/flight/elevator-fbw</property> <value>-0.01</value> </less-than> </or> </and> </condition> </enable> <input> <property>/controls/flight/elevator-trim-cmd</property> </input> <output>/controls/flight/elevator-trim</output> <type>noise-spike</type> <max-rate-of-change>0.01</max-rate-of-change> </filter> <!-- =============================================================== --> <!-- Yaw Damper/Turn Coordinator --> <!-- =============================================================== --> <pid-controller> <name>IT-FBW: YAW DAMPER/TURN COORDINATOR</name> <debug>false</debug> <enable> <condition> <and> <equals> <property>/gear/gear[1]/wow</property> <value>0</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> <greater-than-equals> <property>/position/gear-agl-ft</property> <value>50</value> </greater-than-equals> <not-equals> <property>/it-autoflight/output/lat</property> <value>4</value> </not-equals> </and> </condition> </enable> <input> <property>/instrumentation/slip-skid-ball/indicated-slip-skid</property> </input> <reference> <value>0</value> </reference> <output> <property>/controls/flight/rudder-fbw-cmd</property> </output> <config> <Kp>0.025</Kp> <beta>1</beta> <alpha>0.1</alpha> <gamma>0</gamma> <Ti>3.0</Ti> <Td>0.00001</Td> <u_min>-0.2</u_min> <u_max>0.2</u_max> </config> </pid-controller> <filter> <name>IT-FBW: RUDDER OPTION</name> <debug>false</debug> <feedback-if-disabled>true</feedback-if-disabled> <initialize-to>output</initialize-to> <input> <condition> <and> <equals> <property>/gear/gear[1]/wow</property> <value>0</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>0</value> </equals> <equals> <property>/it-fbw/law</property> <value>0</value> </equals> <less-than> <property>/controls/flight/rudder</property> <value>0.1</value> </less-than> <greater-than> <property>/controls/flight/rudder</property> <value>-0.1</value> </greater-than> <greater-than-equals> <property>/position/gear-agl-ft</property> <value>50</value> </greater-than-equals> <not-equals> <property>/it-autoflight/output/lat</property> <value>4</value> </not-equals> </and> </condition> <property>/controls/flight/rudder-fbw-cmd</property> </input> <input> <condition> <or> <equals> <property>/gear/gear[1]/wow</property> <value>1</value> </equals> <equals> <property>/gear/gear[2]/wow</property> <value>1</value> </equals> <not-equals> <property>/it-fbw/law</property> <value>0</value> </not-equals> <greater-than-equals> <property>/controls/flight/rudder</property> <value>0.1</value> </greater-than-equals> <less-than-equals> <property>/controls/flight/rudder</property> <value>-0.1</value> </less-than-equals> <less-than> <property>/position/gear-agl-ft</property> <value>50</value> </less-than> <equals> <property>/it-autoflight/output/lat</property> <value>4</value> </equals> </or> </condition> <property>/controls/flight/rudder</property> </input> <output>/controls/flight/rudder-fbw</output> <type>noise-spike</type> <max-rate-of-change>2.5</max-rate-of-change> </filter> </PropertyList>