diff --git a/A320-main.xml b/A320-main.xml index 0420862a..96dc0c99 100644 --- a/A320-main.xml +++ b/A320-main.xml @@ -112,43 +112,39 @@ <electrical> <path></path> </electrical> + <!-- 0 is FADEC --> <autopilot n="1"> <path>Aircraft/IDG-A32X/Systems/hydraulics.xml</path> </autopilot> <autopilot n="2"> - <path>Aircraft/IDG-A32X/Systems/fbw-drivers.xml</path> - </autopilot> - <autopilot n="3"> - <path>Aircraft/IDG-A32X/Systems/fbw-roll-yaw.xml</path> - </autopilot> - <autopilot n="4"> <path>Aircraft/IDG-A32X/Systems/fbw-pitch.xml</path> </autopilot> - <autopilot n="5"> + <autopilot n="3"> <path>Aircraft/IDG-A32X/Systems/fmgc-drivers.xml</path> </autopilot> - <autopilot n="6"> + <autopilot n="4"> <path>Aircraft/IDG-A32X/Systems/fmgc-roll-yaw.xml</path> </autopilot> - <autopilot n="7"> + <autopilot n="5"> <path>Aircraft/IDG-A32X/Systems/fmgc-pitch.xml</path> </autopilot> - <autopilot n="8"> + <autopilot n="6"> <path>Aircraft/IDG-A32X/Systems/fmgc-thrust.xml</path> </autopilot> - <autopilot n="9"> + <autopilot n="7"> <path>Aircraft/IDG-A32X/Systems/libraries.xml</path> </autopilot> - <autopilot n="11"> + <autopilot n="8"> <path>Aircraft/IDG-A32X/Systems/upper-ecam.xml</path> </autopilot> - <autopilot n="12"> + <autopilot n="9"> <path>Aircraft/IDG-A32X/Systems/lower-ecam.xml</path> </autopilot> - <autopilot n="13"> + <!-- 10 is sound --> + <autopilot n="11"> <path>Aircraft/IDG-A32X/Systems/pfd.xml</path> </autopilot> - <autopilot n="14"> + <autopilot n="12"> <path>Aircraft/IDG-A32X/Systems/zoom-views.xml</path> </autopilot> </systems> @@ -415,6 +411,8 @@ <output> <ap1>0</ap1> <ap2>0</ap2> + <lat>0</lat> + <vert>0</vert> </output> <custom> <show-hdg>0</show-hdg> @@ -429,6 +427,12 @@ <it-fbw n="0"> <alpha-hld type="bool">0</alpha-hld> <law type="int">0</law> + <roll-lim type="double">33</roll-lim> + <roll-back type="bool">0</roll-back> + <protections n="0"> + <overspeed type="bool">0</overspeed> + <overspeed-roll-back type="bool">0</overspeed-roll-back> + </protections> </it-fbw> <apu> @@ -537,13 +541,11 @@ <aileron-left>0.5</aileron-left> <aileron-right>-0.5</aileron-right> <elevator-input>0</elevator-input> - <elevator-fbw>0</elevator-fbw> <elevator-left>0.1</elevator-left> <elevator-right>0.1</elevator-right> <elevator-trim-fdm>0.0</elevator-trim-fdm> <flap-pos type="int">0</flap-pos> <ground-spoilers-armed type="bool">0</ground-spoilers-armed> - <roll-fbw>0</roll-fbw> <rudder-trim-fdm>0.0</rudder-trim-fdm> <spoiler-l1>0.0</spoiler-l1> <spoiler-l2>0.0</spoiler-l2> diff --git a/Systems/a320-aerodynamics.xml b/Systems/a320-aerodynamics.xml index 53cf4218..d6314e6c 100644 --- a/Systems/a320-aerodynamics.xml +++ b/Systems/a320-aerodynamics.xml @@ -519,7 +519,7 @@ <property>metrics/Sw-sqft</property> <property>metrics/bw-ft</property> <property>fcs/rudder-pos-rad</property> - <value>-0.053</value> + <value>0.053</value> </product> </function> diff --git a/Systems/a320-fcs.xml b/Systems/a320-fcs.xml index e48dfd38..ec5bd31f 100644 --- a/Systems/a320-fcs.xml +++ b/Systems/a320-fcs.xml @@ -1,4 +1,5 @@ -<!-- Airbus A320 FCS --> +<!-- Airbus A320 FCS/FBW --> +<!-- Joshua Davidson (it0uchpods) --> <!-- ############################################## @@ -7,7 +8,1205 @@ --> <system name="A320: FCS"> - + + <property value="0">fbw/roll/pid</property> + <property value="0">fbw/pitch/g-pi</property> + <property value="0">fbw/pitch/pid</property> + <property value="0">fbw/yaw/tc-pid</property> + + <!-- Default gains for tuning --> + <property value="0">fbw/roll/p-gain</property> + <property value="0">fbw/roll/i-gain</property> + <property value="0">fbw/roll/d-gain</property> + <property value="0">fbw/pitch/p-gain</property> + <property value="0">fbw/pitch/i-gain</property> + <property value="0">fbw/pitch/d-gain</property> + <property value="0">fbw/yaw/yd-p-gain</property> + <property value="0">fbw/yaw/tc-p-gain</property> + <property value="0">fbw/yaw/tc-i-gain</property> + + <!-- FMGC stuff --> + <property value="0">fbw/fmgc/roll-cmd</property> + <property value="0">fbw/fmgc/pitch-cmd</property> + <property value="0">fbw/fmgc/yaw-cmd</property> + + <channel name="Libraries"> + + <switch name="position/wow"> + <default value="0"/> + <test logic="OR" value="1"> + gear/unit[0]/WOW eq 1 + gear/unit[1]/WOW eq 1 + gear/unit[2]/WOW eq 1 + </test> + </switch> + + <switch name="fbw/roll/gain-switch"> + <default value="0"/> + <test logic="OR" value="1"> + position/wow eq 1 + /it-fbw/law ne 0 + </test> + </switch> + + <switch name="fbw/pitch/gain-switch"> + <default value="0"/> + <test logic="OR" value="1"> + position/wow eq 1 + /it-fbw/law eq 2 + /it-fbw/law eq 3 + </test> + </switch> + + <switch name="fbw/yaw/gain-switch"> + <default value="0"/> + <test logic="OR" value="1"> + position/wow eq 1 + /it-fbw/law eq 2 + /it-fbw/law eq 3 + </test> + </switch> + + <switch name="fbw/fmgc/enabled"> + <default value="0"/> + <test logic="OR" value="1"> + /it-autoflight/output/ap1 eq 1 + /it-autoflight/output/ap2 eq 1 + </test> + </switch> + + <fcs_function name="fbw/roll/p-gain"> + <function> + <table> + <independentVar lookup="row">velocities/mach</independentVar> + <independentVar lookup="column">fbw/roll/gain-switch</independentVar> + <tableData> + 0 1 + 0.2 -26.2 0.0 + 0.9 -15.5 0.0 + </tableData> + </table> + </function> + </fcs_function> + + <fcs_function name="fbw/roll/i-gain"> + <function> + <table> + <independentVar lookup="row">velocities/mach</independentVar> + <independentVar lookup="column">fbw/roll/gain-switch</independentVar> + <tableData> + 0 1 + 0.2 -45.5 0.0 + 0.9 -36.0 0.0 + </tableData> + </table> + </function> + </fcs_function> + + <fcs_function name="fbw/roll/d-gain"> + <function> + <table> + <independentVar lookup="row">velocities/mach</independentVar> + <independentVar lookup="column">fbw/roll/gain-switch</independentVar> + <tableData> + 0 1 + 0.2 -2.1 0.0 + 0.9 -1.1 0.0 + </tableData> + </table> + </function> + </fcs_function> + + <fcs_function name="fbw/pitch/p-gain"> + <function> + <table> + <independentVar lookup="row">velocities/mach</independentVar> + <independentVar lookup="column">fbw/pitch/gain-switch</independentVar> + <tableData> + 0 1 + 0.2 28 0 + 0.9 23 0 + </tableData> + </table> + </function> + </fcs_function> + + <kinematic name="fbw/pitch/p-gain-k"> + <input>fbw/pitch/p-gain</input> + <traverse> + <setting> + <position>0</position> + <time>0</time> + </setting> + <setting> + <position>50</position> + <time>1.5</time> + </setting> + </traverse> + </kinematic> + + <fcs_function name="fbw/pitch/i-gain"> + <function> + <table> + <independentVar lookup="row">velocities/mach</independentVar> + <independentVar lookup="column">fbw/pitch/gain-switch</independentVar> + <tableData> + 0 1 + 0.2 61 0 + 0.9 45 0 + </tableData> + </table> + </function> + </fcs_function> + + <fcs_function name="fbw/pitch/d-gain"> + <function> + <table> + <independentVar lookup="row">velocities/mach</independentVar> + <independentVar lookup="column">fbw/pitch/gain-switch</independentVar> + <tableData> + 0 1 + 0.2 2.9 0.0 + 0.9 1.3 0.0 + </tableData> + </table> + </function> + </fcs_function> + + <fcs_function name="fbw/yaw/yd-p-gain"> + <function> + <table> + <independentVar lookup="row">velocities/mach</independentVar> + <independentVar lookup="column">fbw/yaw/gain-switch</independentVar> + <tableData> + 0 1 + 0.2 -10.5 0.0 + 0.9 -2.5 0.0 + </tableData> + </table> + </function> + </fcs_function> + + <fcs_function name="fbw/yaw/tc-p-gain"> + <function> + <table> + <independentVar lookup="row">velocities/mach</independentVar> + <independentVar lookup="column">fbw/yaw/gain-switch</independentVar> + <tableData> + 0 1 + 0.2 -1.20 0.00 + 0.9 -0.07 0.00 + </tableData> + </table> + </function> + </fcs_function> + + <fcs_function name="fbw/yaw/tc-i-gain"> + <function> + <table> + <independentVar lookup="row">velocities/mach</independentVar> + <independentVar lookup="column">fbw/yaw/gain-switch</independentVar> + <tableData> + 0 1 + 0.2 -0.25 0.00 + 0.9 -0.19 0.00 + </tableData> + </table> + </function> + </fcs_function> + + </channel> + + <channel name="FBW: Roll"> + + <switch name="fbw/roll/a-i-f"> + <default value="/controls/flight/aileron"/> + <test logic="OR" value="0"> + /it-autoflight/output/ap1 eq 1 + /it-autoflight/output/ap2 eq 1 + </test> + </switch> + + <kinematic name="fbw/roll/a-i-k"> + <input>fbw/roll/a-i-f</input> + <traverse> + <setting> + <position>-1</position> + <time>0</time> + </setting> + <setting> + <position>1</position> + <time>0.7</time> + </setting> + </traverse> + <output>/controls/flight/aileron-input-fast</output> + </kinematic> + + <fcs_function name="fbw/roll/aileron-nul"> + <function> + <table> + <independentVar lookup="row">/controls/flight/aileron</independentVar> + <tableData> + -1.00 -1 + -0.04 0 + 0.04 0 + 1.00 1 + </tableData> + </table> + </function> + </fcs_function> + + <switch name="fbw/roll/a-i-s"> + <default value="0"/> + <test logic="AND" value="fbw/roll/aileron-nul"> + position/wow eq 0 + fbw/fmgc/enabled eq 0 + </test> + <test logic="AND" value="fbw/fmgc/roll-cmd"> + position/wow eq 0 + fbw/fmgc/enabled eq 1 + </test> + </switch> + + <kinematic name="fbw/roll/a-i"> + <input>fbw/roll/a-i-s</input> + <traverse> + <setting> + <position>-1</position> + <time>0</time> + </setting> + <setting> + <position>1</position> + <time>2.0</time> + </setting> + </traverse> + <output>/controls/flight/aileron-input</output> + </kinematic> + + <fcs_function name="fbw/roll/r-r-33"> + <function> + <sum> + <product> + <property>fbw/roll/a-i</property> + <value>0.261799</value> + </product> + <table> + <independentVar lookup="row">attitude/roll-rad</independentVar> + <independentVar lookup="column">fbw/roll/a-i</independentVar> + <tableData> + -1 0 1 + -0.575959 0.261799 0.000000 0.000000 + -0.575958 0.000000 0.000000 0.000000 + 0.575958 0.000000 0.000000 0.000000 + 0.575959 0.000000 0.000000 -0.261799 + </tableData> + </table> + <table> + <independentVar lookup="row">attitude/roll-rad</independentVar> + <tableData> + -0.750492 0.261799 + -0.575959 0.000000 + 0.575959 0.000000 + 0.750492 -0.261799 + </tableData> + </table> + </sum> + </function> + </fcs_function> + + <fcs_function name="fbw/roll/r-r-67"> + <function> + <sum> + <product> + <property>fbw/roll/a-i</property> + <value>0.261799</value> + </product> + <table> + <independentVar lookup="row">attitude/roll-rad</independentVar> + <independentVar lookup="column">fbw/roll/a-i</independentVar> + <tableData> + -1 0 1 + -1.169370 0.261799 0.000000 0.000000 + -1.169369 0.000000 0.000000 0.000000 + 1.169369 0.000000 0.000000 0.000000 + 1.169370 0.000000 0.000000 -0.261799 + </tableData> + </table> + <table> + <independentVar lookup="row">attitude/roll-rad</independentVar> + <tableData> + -1.343900 0.261799 + -1.169370 0.000000 + 1.169370 0.000000 + 1.343900 -0.261799 + </tableData> + </table> + </sum> + </function> + </fcs_function> + + <fcs_function name="fbw/roll/r-r-rb"> + <function> + <table> + <independentVar lookup="row">attitude/roll-rad</independentVar> + <tableData> + -1.169370 0.436332 + -0.698132 0.174533 + -0.575959 0.000000 + 0.575959 0.000000 + 0.698132 -0.174533 + 1.169370 -0.436332 + </tableData> + </table> + </function> + </fcs_function> + + <fcs_function name="fbw/roll/r-r-os-nrb"> + <function> + <sum> + <product> + <property>fbw/roll/a-i</property> + <value>0.261799</value> + </product> + <table> + <independentVar lookup="row">attitude/roll-rad</independentVar> + <independentVar lookup="column">fbw/roll/a-i</independentVar> + <tableData> + -1 0 1 + -0.698132 0.261799 0.000000 0.000000 + -0.698131 0.000000 0.000000 0.000000 + 0.698131 0.000000 0.000000 0.000000 + 0.698132 0.000000 0.000000 -0.261799 + </tableData> + </table> + </sum> + </function> + </fcs_function> + + <fcs_function name="fbw/roll/r-r-os-rb"> + <function> + <table> + <independentVar lookup="row">attitude/roll-rad</independentVar> + <tableData> + -0.698132 0.436332 + -0.261799 0.174533 + 0.000000 0.000000 + 0.261799 -0.174533 + 0.698132 -0.436332 + </tableData> + </table> + </function> + </fcs_function> + + <switch name="fbw/roll/rate-demand"> <!-- 15 deg/0.261799 rad per second --> + <default value="0"/> + <test logic="AND" value="fbw/roll/r-r-33"> + /it-fbw/roll-lim eq 33 + /it-fbw/roll-back ne 1 + /it-fbw/protections/overspeed ne 1 + </test> + <test logic="AND" value="fbw/roll/r-r-67"> + /it-fbw/roll-lim eq 67 + /it-fbw/protections/overspeed ne 1 + </test> + <test logic="AND" value="fbw/roll/r-r-rb"> + /it-fbw/roll-back eq 1 + /it-fbw/protections/overspeed ne 1 + </test> + <test logic="AND" value="fbw/roll/r-r-os-nrb"> + /it-fbw/protections/overspeed eq 1 + /it-fbw/protections/overspeed-roll-back ne 1 + </test> + <test logic="AND" value="fbw/roll/r-r-os-rb"> + /it-fbw/protections/overspeed eq 1 + /it-fbw/protections/overspeed-roll-back eq 1 + </test> + </switch> + + <lag_filter name="fbw/roll/rate-demand-lag"> + <input>fbw/roll/rate-demand</input> + <c1>10.1</c1> + </lag_filter> + + <fcs_function name="fbw/roll/p-rad_sec"> + <function> + <toradians> + <property>/orientation/roll-rate-degps</property> + </toradians> + </function> + </fcs_function> + + <switch name="fbw/roll/p-r_s-s"> + <default value="fbw/roll/p-rad_sec"/> + <test value="0"> + gear/unit[0]/WOW eq 1 + </test> + </switch> + + <fcs_function name="fbw/roll/rate-error"> + <function> + <difference> + <property>fbw/roll/p-r_s-s</property> + <property>fbw/roll/rate-demand-lag</property> + </difference> + </function> + </fcs_function> + + <switch name="fbw/roll/trigger"> + <default value="0"/> + <test logic="OR" value="1"> + fbw/roll/gain-switch gt 0 + fbw/roll/pid le -0.999 + fbw/roll/pid ge 0.999 + </test> + </switch> + + <pid name="fbw/roll/pid-v"> + <input>fbw/roll/rate-error</input> + <kp>fbw/roll/p-gain</kp> + <ki>fbw/roll/i-gain</ki> + <kd>fbw/roll/d-gain</kd> + <trigger>fbw/roll/trigger</trigger> + <clipto> + <min>-1.0</min> + <max>1.0</max> + </clipto> + <output>fbw/roll/pid</output> + </pid> + + <pure_gain name="fbw/roll/rudder-inv"> + <input>fbw/fmgc/yaw-cmd</input> + <gain>-0.5</gain> + </pure_gain> + + <switch name="fbw/roll/gear-law-switch"> + <default value="0"/> + <test logic="OR" value="1"> + position/wow eq 1 + /it-fbw/law eq 1 + /it-fbw/law eq 2 + </test> + </switch> + + <switch name="fbw/aileron-output"> + <default value="0"/> + <test logic="AND" value="fbw/roll/pid"> + position/wow eq 0 + /it-fbw/law eq 0 + </test> + <test logic="AND" value="fbw/roll/a-i-f"> + fbw/fmgc/enabled eq 0 + fbw/roll/gear-law-switch eq 1 + </test> + <test logic="AND" value="fbw/roll/rudder-inv"> + fbw/fmgc/enabled eq 1 + position/wow eq 1 + /it-fbw/law eq 0 + </test> + <test logic="AND" value="0"> + /it-fbw/law eq 3 + </test> + </switch> + + <fcs_function name="fbw/roll/s-i-f"> + <function> + <product> + <table> + <independentVar lookup="row">fbw/roll/a-i</independentVar> + <tableData> + -1.0 -1.0 + -0.2 0.0 + 0.2 0.0 + 1.0 1.0 + </tableData> + </table> + <table> + <independentVar lookup="row">velocities/mach</independentVar> + <tableData> + 0.2 0.5 + 0.9 0.1 + </tableData> + </table> + </product> + </function> + </fcs_function> + + <switch name="fbw/roll/s-i"> + <default value="0"/> + <test value="fbw/roll/s-i-f"> + /it-fbw/roll-back eq 0 + </test> + </switch> + + <switch name="fbw/roll/s-l"> + <default value="0"/> + <test value="fbw/roll/s-i"> + /it-fbw/law ne 3 + /systems/failures/aileron-left eq 0 + </test> + <test value="fbw/aileron-output"> + /it-fbw/law ne 3 + /systems/failures/aileron-left eq 1 + </test> + <output>/controls/flight/spoiler-left-fbw-cmd</output> + </switch> + + <switch name="fbw/roll/s-r"> + <default value="0"/> + <test value="fbw/roll/s-i"> + /it-fbw/law ne 3 + /systems/failures/aileron-right eq 0 + </test> + <test value="fbw/aileron-output"> + /it-fbw/law ne 3 + /systems/failures/aileron-right eq 1 + </test> + <output>/controls/flight/spoiler-right-fbw-cmd</output> + </switch> + + </channel> + + <channel name="FBW: Pitch"> + + <switch name="fbw/pitch/e-i-f"> + <default value="/controls/flight/elevator"/> + <test logic="OR" value="0"> + /it-autoflight/output/ap1 eq 1 + /it-autoflight/output/ap2 eq 1 + </test> + </switch> + + <kinematic name="fbw/pitch/e-i-k"> + <input>fbw/pitch/e-i-f</input> + <traverse> + <setting> + <position>-1</position> + <time>0</time> + </setting> + <setting> + <position>1</position> + <time>0.7</time> + </setting> + </traverse> + <output>/controls/flight/elevator-input-fast</output> + </kinematic> + + <fcs_function name="fbw/pitch/elevator-nul"> + <function> + <table> + <independentVar lookup="row">/controls/flight/elevator</independentVar> + <tableData> + -1.00 -1 + -0.04 0 + 0.04 0 + 1.00 1 + </tableData> + </table> + </function> + </fcs_function> + + <fcs_function name="fbw/pitch/e-f-air"> + <function> + <sum> + <property>fbw/pitch/elevator-nul</property> + <table> + <independentVar lookup="row">/position/gear-agl-ft</independentVar> + <tableData> + 5 0.2 + 30 0.1 + </tableData> + </table> + </sum> + </function> + </fcs_function> + + <fcs_function name="fbw/pitch/e-f-wow"> + <function> + <sum> + <property>fbw/pitch/elevator-nul</property> + <value>-0.15</value> + </sum> + </function> + </fcs_function> + + <switch name="fbw/pitch/flare-gear-switch"> + <default value="0"/> + <test logic="OR" value="1"> + gear/unit[1]/WOW eq 1 + gear/unit[2]/WOW eq 1 + </test> + </switch> + + <switch name="fbw/pitch/e-i-s"> + <default value="fbw/pitch/elevator-nul"/> + <test logic="AND" value="fbw/pitch/e-f-air"> + fbw/fmgc/enabled eq 0 + /position/gear-agl-ft le 30 + /controls/flight/flap-pos ge 4 + /controls/engines/engine[0]/throttle lt 0.65 + /controls/engines/engine[1]/throttle lt 0.65 + /FMGC/status/to-state eq 0 + /it-fbw/law eq 0 + position/wow eq 0 + </test> + <test logic="AND" value="fbw/pitch/e-f-wow"> + fbw/fmgc/enabled eq 0 + /position/gear-agl-ft le 30 + /controls/flight/flap-pos ge 4 + /controls/engines/engine[0]/throttle lt 0.65 + /controls/engines/engine[1]/throttle lt 0.65 + /FMGC/status/to-state eq 0 + /it-fbw/law eq 0 + gear/unit[0]/WOW eq 0 + fbw/pitch/flare-gear-switch eq 1 + </test> + <test logic="AND" value="fbw/fmgc/pitch-cmd"> + fbw/fmgc/enabled eq 1 + position/wow eq 0 + </test> + <test logic="AND" value="0"> + fbw/fmgc/enabled eq 1 + position/wow eq 1 + </test> + </switch> + + <kinematic name="fbw/pitch/e-i"> + <input>fbw/pitch/e-i-s</input> + <traverse> + <setting> + <position>-1</position> + <time>0</time> + </setting> + <setting> + <position>1</position> + <time>2.0</time> + </setting> + </traverse> + <output>/controls/flight/elevator-input</output> + </kinematic> + + <switch name="fbw/pitch/g-min"> + <default value="-1.0"/> + <test value="0.0"> + /controls/flight/flap-pos ne 0 + </test> + </switch> + + <switch name="fbw/pitch/g-max"> + <default value="2.5"/> + <test value="2.0"> + /controls/flight/flap-pos ne 0 + </test> + </switch> + + <fcs_function name="fbw/pitch/g-demand"> + <function> + <table> + <independentVar lookup="row">fbw/pitch/e-i</independentVar> + <tableData> + -1.0 2.5 + 0.0 1.0 + 1.0 -0.5 + </tableData> + </table> + </function> + <clipto> + <min>fbw/pitch/g-min</min> + <max>fbw/pitch/g-max</max> + </clipto> + </fcs_function> + + <fcs_function name="fbw/pitch/a-n"> + <function> + <difference> + <quotient> + <sum> + <product> + <property>velocities/q-rad_sec</property> + <property>velocities/u-fps</property> + </product> + <product> + <value>-1</value> + <property>velocities/p-rad_sec</property> + <property>velocities/v-fps</property> + </product> + <product> + <value>32.174</value> + <cos> + <property>attitude/theta-rad</property> + </cos> + <cos> + <property>attitude/phi-rad</property> + </cos> + </product> + <product> + <value>-1</value> + <property>accelerations/wdot-ft_sec2</property> + </product> + </sum> + <value>32.174</value> + </quotient> + <value>1</value> + </difference> + </function> + </fcs_function> + + <switch name="fbw/pitch/a-n-IaN"> + <default value="1"/> + <test logic="AND" value="fbw/pitch/a-n"> + fbw/pitch/a-n lt 30 + fbw/pitch/a-n gt -30 + position/wow ne 1 + </test> + </switch> + + <fcs_function name="fbw/pitch/g-computed"> + <function> + <sum> + <property>fbw/pitch/a-n-IaN</property> + <quotient> + <value>-1</value> + <cos> + <property>attitude/roll-rad</property> + </cos> + </quotient> + <value>2</value> + </sum> + </function> + </fcs_function> + + <fcs_function name="fbw/pitch/g-error"> + <function> + <difference> + <property>fbw/pitch/g-computed</property> + <property>fbw/pitch/g-demand</property> + </difference> + </function> + </fcs_function> + + <!-- Goes to Systems/fbw-pitch.xml then back as fbw/pitch/g-pi --> + + <pure_gain name="fbw/pitch/g-pi-inv"> + <input>fbw/pitch/g-pi</input> + <gain>-1.0</gain> + </pure_gain> + + <switch name="fbw/pitch/g-pi-switched"> + <default value="fbw/pitch/g-pi"/> + <test logic="OR" value="fbw/pitch/g-pi-inv"> + attitude/roll-rad lt -1.5708 + attitude/roll-rad gt 1.5708 + </test> + </switch> + + <!--pure_gain name="fbw/pitch/g-pi-switched"> + <input>fbw/pitch/e-i</input> + <gain>1.0</gain> + </pure_gain--> <!-- Tuning G Bypass --> + + <fcs_function name="fbw/pitch/p-r-norm"> + <function> + <sum> + <product> + <property>fbw/pitch/g-pi-switched</property> + <value>-0.087266</value> + </product> + <table> + <independentVar lookup="row">attitude/pitch-rad</independentVar> + <independentVar lookup="column">fbw/pitch/g-pi-switched</independentVar> + <tableData> + -1 0 1 + -0.261799 0.000000 0.000000 0.087266 + -0.261798 0.000000 0.000000 0.000000 + 0.523598 0.000000 0.000000 0.000000 + 0.523599 -0.087266 0.000000 0.000000 + </tableData> + </table> + <table> + <independentVar lookup="row">attitude/pitch-rad</independentVar> + <tableData> + -0.436332 0.087266 + -0.261799 0.000000 + 0.523599 0.000000 + 0.698132 -0.087266 + </tableData> + </table> + </sum> + </function> + </fcs_function> + + <pure_gain name="fbw/pitch/p-r-altn"> + <input>fbw/pitch/g-pi-switched</input> + <gain>-0.087266</gain> + </pure_gain> + + <fcs_function name="fbw/pitch/p-r-norm-os"> + <function> + <sum> + <table> + <independentVar lookup="row">fbw/pitch/g-pi-switched</independentVar> + <tableData> + -1.0 0.087266 + 0.0 0.026180 + </tableData> + </table> + <table> + <independentVar lookup="row">attitude/pitch-rad</independentVar> + <independentVar lookup="column">fbw/pitch/g-pi-switched</independentVar> + <tableData> + -1 0 + 0.523598 -0.026180 0.000000 + 0.523599 -0.087266 0.000000 + </tableData> + </table> + <table> + <independentVar lookup="row">attitude/pitch-rad</independentVar> + <tableData> + 0.523599 0.000000 + 0.698132 -0.087266 + </tableData> + </table> + </sum> + </function> + </fcs_function> + + <fcs_function name="fbw/pitch/p-r-altn-os"> + <function> + <table> + <independentVar lookup="row">fbw/pitch/g-pi-switched</independentVar> + <tableData> + -1.0 0.087266 + 0.0 0.026180 + 1.0 -0.061086 + </tableData> + </table> + </function> + </fcs_function> + + <switch name="fbw/pitch/rate-demand"> <!-- 5 deg/0.087266 rad per second --> + <default value="0"/> + <test logic="AND" value="fbw/pitch/p-r-norm"> + /it-fbw/law eq 0 + /it-fbw/protections/overspeed ne 1 + </test> + <test logic="AND" value="fbw/pitch/p-r-altn"> + /it-fbw/law ne 0 + /it-fbw/protections/overspeed ne 1 + </test> + <test logic="AND" value="fbw/pitch/p-r-norm-os"> + /it-fbw/law eq 0 + /it-fbw/protections/overspeed eq 1 + </test> + <test logic="AND" value="fbw/pitch/p-r-altn-os"> + /it-fbw/law ne 0 + /it-fbw/protections/overspeed eq 1 + </test> + </switch> + + <lag_filter name="fbw/pitch/rate-demand-lag"> + <input>fbw/pitch/rate-demand</input> + <c1>10.1</c1> + </lag_filter> + + <fcs_function name="fbw/pitch/thetadot-rad_sec"> + <function> + <toradians> + <property>/orientation/pitch-rate-degps</property> + </toradians> + </function> + </fcs_function> + + <switch name="fbw/pitch/t-r_s-s"> + <default value="fbw/pitch/thetadot-rad_sec"/> + <test value="0"> + gear/unit[0]/WOW eq 1 + </test> + </switch> + + <fcs_function name="fbw/pitch/rate-error"> + <function> + <difference> + <property>fbw/pitch/t-r_s-s</property> + <property>fbw/pitch/rate-demand-lag</property> + </difference> + </function> + </fcs_function> + + <switch name="fbw/pitch/trigger"> + <default value="0"/> + <test logic="OR" value="1"> + fbw/pitch/gain-switch gt 0 + fbw/pitch/pid le -0.999 + fbw/pitch/pid ge 0.999 + </test> + </switch> + + <pid name="fbw/pitch/pid-v"> + <input>fbw/pitch/rate-error</input> + <kp>fbw/pitch/p-gain-k</kp> + <ki>fbw/pitch/i-gain</ki> + <kd>fbw/pitch/d-gain</kd> + <trigger>fbw/pitch/trigger</trigger> + <clipto> + <min>-1.0</min> + <max>1.0</max> + </clipto> + <output>fbw/pitch/pid</output> + </pid> + + <pure_gain name="fbw/pitch/pid-inv"> + <input>fbw/pitch/pid</input> + <gain>-1.0</gain> + </pure_gain> + + <switch name="fbw/pitch/pid-switched"> + <default value="fbw/pitch/pid"/> + <test logic="OR" value="fbw/pitch/pid-inv"> + attitude/roll-rad lt -1.5708 + attitude/roll-rad gt 1.5708 + </test> + </switch> + + <switch name="fbw/pitch/law-switch"> + <default value="0"/> + <test logic="OR" value="1"> + /it-fbw/law eq 0 + /it-fbw/law eq 1 + </test> + </switch> + + <switch name="fbw/pitch/law-gear-switch"> + <default value="0"/> + <test logic="OR" value="1"> + gear/unit[1]/WOW eq 1 + gear/unit[2]/WOW eq 1 + /it-fbw/law eq 2 + </test> + </switch> + + <switch name="fbw/elevator-output"> + <default value="0"/> + <test logic="AND" value="fbw/pitch/pid-switched"> + position/wow eq 0 + fbw/pitch/law-switch eq 1 + </test> + <test logic="AND" value="fbw/pitch/e-i-f"> + fbw/fmgc/enabled eq 0 + fbw/pitch/law-gear-switch eq 1 + </test> + <test logic="AND" value="0.1"> + fbw/fmgc/enabled eq 1 + position/wow eq 1 + </test> + <test logic="AND" value="0"> + /it-fbw/law eq 3 + </test> + </switch> + + <switch name="fbw/pitch/autotrim-height"> + <default value="50"/> + <test logic="AND" value="100"> + fbw/fmgc/enabled eq 1 + </test> + </switch> + + <switch name="fbw/pitch/autotrim-switch"> + <default value="0"/> + <test logic="AND" value="1"> + fbw/pitch/gain-switch eq 0 + /position/gear-agl-ft ge fbw/pitch/autotrim-height + attitude/roll-rad lt 0.628319 + attitude/roll-rad gt -0.628319 + fbw/pitch/pid-switched ge 0.01 + forces/load-factor lt -0.5 + /it-fbw/protections/overspeed ne 1 + /controls/flight/elevator-trim le 0.32 + position/wow eq 0 + </test> + <test logic="AND" value="2"> + fbw/pitch/gain-switch eq 0 + /position/gear-agl-ft ge fbw/pitch/autotrim-height + attitude/roll-rad lt 0.628319 + attitude/roll-rad gt -0.628319 + fbw/pitch/pid-switched le -0.01 + forces/load-factor lt -0.5 + /it-fbw/protections/overspeed ne 1 + /controls/flight/elevator-trim ge -1.0 + position/wow eq 0 + </test> + </switch> + + <fcs_function name="fbw/pitch/autotrim-offset"> + <function> + <sum> + <ifthen> + <eq> + <property>fbw/pitch/autotrim-switch</property> + <value>1</value> + </eq> + <table> + <independentVar lookup="row">fbw/pitch/pid-switched</independentVar> + <tableData> + 0.05 0.00001 + 0.30 0.00015 + </tableData> + </table> + <value>0.0</value> + </ifthen> + <ifthen> + <eq> + <property>fbw/pitch/autotrim-switch</property> + <value>2</value> + </eq> + <table> + <independentVar lookup="row">fbw/pitch/pid-switched</independentVar> + <tableData> + -0.30 -0.00015 + -0.05 -0.00001 + </tableData> + </table> + <value>0.0</value> + </ifthen> + </sum> + </function> + </fcs_function> + + <fcs_function name="fbw/elevator-trim-output"> + <function> + <sum> + <property>/controls/flight/elevator-trim</property> + <property>fbw/pitch/autotrim-offset</property> + </sum> + </function> + <clipto> + <min>-1.0</min> + <max>0.32</max> + </clipto> + <output>/controls/flight/elevator-trim</output> + </fcs_function> + + </channel> + + <channel name="FBW: Yaw"> + + <fcs_function name="fbw/yaw/rudder-nul"> + <function> + <table> + <independentVar lookup="row">/controls/flight/rudder</independentVar> + <independentVar lookup="column">fbw/fmgc/enabled</independentVar> + <tableData> + 0 1 + -1.00 -1 0 + -0.04 0 0 + 0.04 0 0 + 1.00 1 0 + </tableData> + </table> + </function> + </fcs_function> + + <switch name="fbw/yaw/autoland-switch"> + <default value="0"/> + <test logic="AND" value="1"> + fbw/fmgc/enabled eq 1 + /it-autoflight/output/lat eq 4 + </test> + </switch> + + <switch name="fbw/yaw/r-r_s-s"> + <default value="velocities/r-rad_sec"/> + <test logic="OR" value="0"> + position/wow eq 1 + fbw/yaw/rudder-nul gt 0 + fbw/yaw/rudder-nul lt 0 + /position/gear-agl-ft lt 50 + fbw/yaw/autoland-switch eq 1 + </test> + </switch> + + <pure_gain name="fbw/yaw/yd-f"> + <input>fbw/yaw/r-r_s-s</input> + <gain>fbw/yaw/yd-p-gain</gain> + <clipto> + <min>-0.2</min> + <max>0.2</max> + </clipto> + </pure_gain> + + <switch name="fbw/yaw/slip-skid"> + <default value="/instrumentation/slip-skid-ball/indicated-slip-skid"/> + <test logic="OR" value="0"> + position/wow eq 1 + fbw/yaw/rudder-nul gt 0 + fbw/yaw/rudder-nul lt 0 + </test> + </switch> + + <switch name="fbw/yaw/trigger"> + <default value="0"/> + <test logic="OR" value="1"> + fbw/yaw/gain-switch gt 0 + fbw/yaw/tc-pid le -0.199 + fbw/yaw/tc-pid ge 0.199 + /position/gear-agl-ft lt 50 + fbw/yaw/autoland-switch eq 1 + </test> + </switch> + + <pid name="fbw/roll/tc-pid-v"> + <input>fbw/yaw/slip-skid</input> + <kp>fbw/yaw/tc-p-gain</kp> + <ki>fbw/yaw/tc-i-gain</ki> + <kd>0.0</kd> + <trigger>fbw/yaw/trigger</trigger> + <clipto> + <min>-0.2</min> + <max>0.2</max> + </clipto> + <output>fbw/yaw/tc-pid</output> + </pid> + + <switch name="fbw/yaw/tc-pid-s"> + <default value="fbw/yaw/tc-pid"/> + <test logic="OR" value="0"> + position/wow eq 1 + fbw/yaw/rudder-nul gt 0 + fbw/yaw/rudder-nul lt 0 + </test> + </switch> + + <switch name="fbw/yaw/fmgc-cmd"> + <default value="0"/> + <test value="fbw/fmgc/yaw-cmd"> + fbw/yaw/autoland-switch eq 1 + </test> + </switch> + + <summer name="fbw/yaw/output-sum"> + <input>fbw/yaw/yd-f</input> + <input>fbw/yaw/tc-pid-s</input> + <input>fbw/yaw/fmgc-cmd</input> + </summer> + + <switch name="fbw/yaw/law-switch"> + <default value="0"/> + <test logic="OR" value="1"> + /it-fbw/law eq 0 + /it-fbw/law eq 1 + </test> + </switch> + + <switch name="fbw/rudder-output"> + <default value="fbw/yaw/rudder-nul"/> + <test logic="AND" value="fbw/yaw/output-sum"> + fbw/yaw/law-switch eq 1 + fbw/yaw/rudder-nul eq 0 + </test> + <output>/controls/flight/rudder-fbw</output> + </switch> + + </channel> + <channel name="Surface Droop"> <fcs_function name="hydraulics/aileron-droop"> @@ -44,7 +1243,7 @@ <channel name="Aileron Common"> <summer name="hydraulics/roll-fbw-summer"> - <input>/controls/flight/roll-fbw</input> + <input>fbw/aileron-output</input> <input>/controls/flight/aileron-trim</input> <clipto> <min>-1</min> @@ -92,23 +1291,23 @@ <switch name="hydraulics/aileron-l/pressure-switch-or"> <default value="0"/> <test logic="OR" value="1"> - /systems/hydraulic/green-psi GE 1500 - /systems/hydraulic/blue-psi GE 1500 + /systems/hydraulic/green-psi ge 1500 + /systems/hydraulic/blue-psi ge 1500 </test> </switch> <switch name="hydraulics/aileron-l/switch"> <default value="hydraulics/aileron-droop"/> <test logic="AND" value="hydraulics/aileron-l/extended"> - hydraulics/aileron-l/pressure-switch-or EQ 1 - /controls/flight/speedbrake-norm EQ 1 - /gear/gear[1]/wow EQ 1 - /gear/gear[2]/wow EQ 1 - /systems/failures/aileron-left EQ 0 + hydraulics/aileron-l/pressure-switch-or eq 1 + /controls/flight/speedbrake-norm eq 1 + /gear/gear[1]/wow eq 1 + /gear/gear[2]/wow eq 1 + /systems/failures/aileron-left eq 0 </test> <test logic="AND" value="hydraulics/aileron-l/retracted"> - hydraulics/aileron-l/pressure-switch-or EQ 1 - /systems/failures/aileron-left EQ 0 + hydraulics/aileron-l/pressure-switch-or eq 1 + /systems/failures/aileron-left eq 0 </test> <clipto> <min>-0.5</min> @@ -116,20 +1315,11 @@ </clipto> </switch> - <kinematic name="hydraulics/aileron-l/final"> + <lag_filter name="hydraulics/aileron-l/final"> <input>hydraulics/aileron-l/switch</input> - <traverse> - <setting> - <position>-1.0</position> - <time>1.1</time> - </setting> - <setting> - <position>1.0</position> - <time>1.1</time> - </setting> - </traverse> + <c1>14.5</c1> <output>/controls/flight/aileron-left</output> - </kinematic> + </lag_filter> </channel> @@ -168,23 +1358,23 @@ <switch name="hydraulics/aileron-r/pressure-switch-or"> <default value="0"/> <test logic="OR" value="1"> - /systems/hydraulic/green-psi GE 1500 - /systems/hydraulic/blue-psi GE 1500 + /systems/hydraulic/green-psi ge 1500 + /systems/hydraulic/blue-psi ge 1500 </test> </switch> <switch name="hydraulics/aileron-r/switch"> <default value="hydraulics/aileron-droop-neg"/> <test logic="AND" value="hydraulics/aileron-r/extended"> - hydraulics/aileron-r/pressure-switch-or EQ 1 - /controls/flight/speedbrake-norm EQ 1 - /gear/gear[1]/wow EQ 1 - /gear/gear[2]/wow EQ 1 - /systems/failures/aileron-right EQ 0 + hydraulics/aileron-r/pressure-switch-or eq 1 + /controls/flight/speedbrake-norm eq 1 + /gear/gear[1]/wow eq 1 + /gear/gear[2]/wow eq 1 + /systems/failures/aileron-right eq 0 </test> <test logic="AND" value="hydraulics/aileron-r/retracted"> - hydraulics/aileron-r/pressure-switch-or EQ 1 - /systems/failures/aileron-right EQ 0 + hydraulics/aileron-r/pressure-switch-or eq 1 + /systems/failures/aileron-right eq 0 </test> <clipto> <min>-0.5</min> @@ -192,20 +1382,11 @@ </clipto> </switch> - <kinematic name="hydraulics/aileron-r/final"> + <lag_filter name="hydraulics/aileron-r/final"> <input>hydraulics/aileron-r/switch</input> - <traverse> - <setting> - <position>-1.0</position> - <time>1.1</time> - </setting> - <setting> - <position>1.0</position> - <time>1.1</time> - </setting> - </traverse> + <c1>14.5</c1> <output>/controls/flight/aileron-right</output> - </kinematic> + </lag_filter> </channel> @@ -254,23 +1435,23 @@ <channel name="Elevator Common"> - <aerosurface_scale name="hydraulics/elevator-fbw-scale"> - <input>/controls/flight/elevator-fbw</input> + <aerosurface_scale name="hydraulics/elevator-output-scale"> + <input>fbw/elevator-output</input> <range> <min>-0.6666666666666666666666666666666</min> <max>1.0</max> </range> </aerosurface_scale> - <switch name="hydraulics/elevator-fbw-switch"> - <default value="hydraulics/elevator-fbw-scale"/> - <test value="/controls/flight/elevator-fbw"> - /velocities/groundspeed-kt LT 75 + <switch name="hydraulics/elevator-output-switch"> + <default value="hydraulics/elevator-output-scale"/> + <test value="fbw/elevator-output"> + /velocities/groundspeed-kt lt 75 </test> </switch> - <pure_gain name="hydraulics/elevator-fbw-gain"> - <input>hydraulics/elevator-fbw-switch</input> + <pure_gain name="hydraulics/elevator-output-gain"> + <input>hydraulics/elevator-output-switch</input> <gain>0.5</gain> </pure_gain> @@ -281,16 +1462,16 @@ <switch name="hydraulics/elevator-l/pressure-switch-or"> <default value="0"/> <test logic="OR" value="1"> - /systems/hydraulic/green-psi GE 1500 - /systems/hydraulic/blue-psi GE 1500 + /systems/hydraulic/green-psi ge 1500 + /systems/hydraulic/blue-psi ge 1500 </test> </switch> <switch name="hydraulics/elevator-l/switch"> <default value="hydraulics/elevator-droop"/> - <test logic="AND" value="hydraulics/elevator-fbw-gain"> - hydraulics/elevator-l/pressure-switch-or EQ 1 - /systems/failures/elevator-left EQ 0 + <test logic="AND" value="hydraulics/elevator-output-gain"> + hydraulics/elevator-l/pressure-switch-or eq 1 + /systems/failures/elevator-left eq 0 </test> <clipto> <min>-0.5</min> @@ -298,20 +1479,11 @@ </clipto> </switch> - <kinematic name="hydraulics/elevator-l/final"> + <lag_filter name="hydraulics/elevator-l/final"> <input>hydraulics/elevator-l/switch</input> - <traverse> - <setting> - <position>-1.0</position> - <time>1.1</time> - </setting> - <setting> - <position>1.0</position> - <time>1.1</time> - </setting> - </traverse> + <c1>14.5</c1> <output>/controls/flight/elevator-left</output> - </kinematic> + </lag_filter> </channel> @@ -320,16 +1492,16 @@ <switch name="hydraulics/elevator-r/pressure-switch-or"> <default value="0"/> <test logic="OR" value="1"> - /systems/hydraulic/yellow-psi GE 1500 - /systems/hydraulic/blue-psi GE 1500 + /systems/hydraulic/yellow-psi ge 1500 + /systems/hydraulic/blue-psi ge 1500 </test> </switch> <switch name="hydraulics/elevator-r/switch"> <default value="hydraulics/elevator-droop"/> - <test logic="AND" value="hydraulics/elevator-fbw-gain"> - hydraulics/elevator-r/pressure-switch-or EQ 1 - /systems/failures/elevator-right EQ 0 + <test logic="AND" value="hydraulics/elevator-output-gain"> + hydraulics/elevator-r/pressure-switch-or eq 1 + /systems/failures/elevator-right eq 0 </test> <clipto> <min>-0.5</min> @@ -337,20 +1509,11 @@ </clipto> </switch> - <kinematic name="hydraulics/elevator-r/final"> + <lag_filter name="hydraulics/elevator-r/final"> <input>hydraulics/elevator-r/switch</input> - <traverse> - <setting> - <position>-1.0</position> - <time>1.1</time> - </setting> - <setting> - <position>1.0</position> - <time>1.1</time> - </setting> - </traverse> + <c1>14.5</c1> <output>/controls/flight/elevator-right</output> - </kinematic> + </lag_filter> </channel> @@ -534,15 +1697,15 @@ <switch name="hydraulics/rudder/max-deg-switch"> <default value="25"/> <test logic="AND" value="hydraulics/rudder/max-deg-fac"> - /systems/fctl/fac1 EQ 1 - /systems/fctl/fac2 EQ 1 - /gear/gear[1]/wow EQ 0 - /gear/gear[2]/wow EQ 0 + /systems/fctl/fac1 eq 1 + /systems/fctl/fac2 eq 1 + /gear/gear[1]/wow eq 0 + /gear/gear[2]/wow eq 0 </test> <test logic="AND" value="hydraulics/rudder/max-deg-fac"> - /controls/flight/slats EQ 0 - /gear/gear[1]/wow EQ 0 - /gear/gear[2]/wow EQ 0 + /controls/flight/slats eq 0 + /gear/gear[1]/wow eq 0 + /gear/gear[2]/wow eq 0 </test> </switch> @@ -566,9 +1729,9 @@ <switch name="hydraulics/rudder/pressure-switch-or"> <default value="0"/> <test logic="OR" value="1"> - /systems/hydraulic/green-psi GE 1500 - /systems/hydraulic/blue-psi GE 1500 - /systems/hydraulic/yellow-psi GE 1500 + /systems/hydraulic/green-psi ge 1500 + /systems/hydraulic/blue-psi ge 1500 + /systems/hydraulic/yellow-psi ge 1500 </test> </switch> @@ -593,7 +1756,7 @@ </aerosurface_scale> <summer name="hydraulics/rudder/summer"> - <input>/controls/flight/rudder-fbw</input> + <input>fbw/rudder-output</input> <input>hydraulics/rudder/trim-norm</input> <clipto> <min>-1</min> @@ -604,94 +1767,27 @@ <switch name="hydraulics/rudder/switch"> <default value="0"/> <test logic="AND" value="hydraulics/rudder/summer"> - hydraulics/rudder/pressure-switch-or EQ 1 - /systems/failures/rudder EQ 0 + hydraulics/rudder/pressure-switch-or eq 1 + /systems/failures/rudder eq 0 </test> - <clipto> - <min>-1.0</min> - <max>1.0</max> - </clipto> - </switch> - - <kinematic name="hydraulics/rudder/final"> - <input>hydraulics/rudder/switch</input> - <traverse> - <setting> - <position>-1.0</position> - <time>1.1</time> - </setting> - <setting> - <position>1.0</position> - <time>1.1</time> - </setting> - </traverse> <clipto> <min>hydraulics/rudder/max-deg-scale-neg</min> <max>hydraulics/rudder/max-deg-scale</max> </clipto> + </switch> + + <lag_filter name="hydraulics/rudder/final"> + <input>hydraulics/rudder/switch</input> + <c1>13.5</c1> <output>/controls/flight/rudder-fdm</output> - </kinematic> + </lag_filter> </channel> <channel name="Yaw"> - <pure_gain name="hydraulics/rudder/gain"> - <input>hydraulics/rudder/final</input> - <gain>-1.0</gain> - </pure_gain> - - <scheduled_gain name="fcs/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> - <clipto> - <min>-0.05</min> - <max>0.05</max> - </clipto> - </scheduled_gain> - - <scheduled_gain name="fcs/yaw-damper-final"> - <input>fcs/yaw-damper-rate</input> - <table> - <independentVar lookup="row">velocities/ve-kts</independentVar> - <tableData> - 30 0.0 - 31 1.0 - </tableData> - </table> - </scheduled_gain> - - <switch name="fcs/yaw-damper-switch"> - <default value="0"/> - <test logic="AND" value="fcs/yaw-damper-final"> - /it-fbw/law == 0 - /gear/gear[1]/wow EQ 0 - /gear/gear[2]/wow EQ 0 - </test> - <test logic="AND" value="fcs/yaw-damper-final"> - /it-fbw/law == 1 - /gear/gear[1]/wow EQ 0 - /gear/gear[2]/wow EQ 0 - </test> - </switch> - - <summer name="fcs/yaw-sum"> - <input>hydraulics/rudder/gain</input> - <input>fcs/yaw-damper-switch</input> - <clipto> - <min>-1</min> - <max>1</max> - </clipto> - </summer> - <aerosurface_scale name="rubbish/rudder-pos-rad"> - <input>fcs/yaw-sum</input> + <input>hydraulics/rudder/final</input> <range> <min>-0.436332</min> <max>0.436332</max> @@ -799,7 +1895,7 @@ <switch name="hydraulics/tiller/switch"> <default value="/controls/flight/rudder"/> <test value="/controls/flight/aileron"> - /controls/flight/aileron-drives-tiller EQ 1 + /controls/flight/aileron-drives-tiller eq 1 </test> </switch> @@ -839,7 +1935,7 @@ <switch name="rubbish/left-brake-cmd-norm"> <default value="fcs/left-brake-summer"/> <test value="/controls/autobrake/brake-left"> - /controls/autobrake/active EQ 1 + /controls/autobrake/active eq 1 </test> <output>fcs/left-brake-cmd-norm</output> </switch> @@ -856,7 +1952,7 @@ <switch name="rubbish/right-brake-cmd-norm"> <default value="fcs/right-brake-summer"/> <test value="/controls/autobrake/brake-right"> - /controls/autobrake/active EQ 1 + /controls/autobrake/active eq 1 </test> <output>fcs/right-brake-cmd-norm</output> </switch> diff --git a/Systems/fbw-drivers.xml b/Systems/fbw-drivers.xml deleted file mode 100644 index 9aa7c9e2..00000000 --- a/Systems/fbw-drivers.xml +++ /dev/null @@ -1,363 +0,0 @@ -<?xml version="1.0"?> - -<!-- -############################################## -# Copyright (c) Joshua Davidson (it0uchpods) # -############################################## ---> - -<!-- Airbus A3XX FBW System --> -<!-- Joshua Davidson (it0uchpods) --> - -<PropertyList> - - <!-- =============================================================== --> - <!-- Surface Position Feeding --> - <!-- =============================================================== --> - - <filter> - <debug>false</debug> - <type>noise-spike</type> - <enable> - <condition> - <equals> - <property>/systems/acconfig/mismatch-code</property> - <value>0x000</value> - </equals> - </condition> - </enable> - <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> - <value>0</value> - </input> - <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> - <enable> - <condition> - <equals> - <property>/systems/acconfig/mismatch-code</property> - <value>0x000</value> - </equals> - </condition> - </enable> - <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> - <value>0</value> - </input> - <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> - <enable> - <condition> - <equals> - <property>/systems/acconfig/mismatch-code</property> - <value>0x000</value> - </equals> - </condition> - </enable> - <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>/it-autoflight/internal/aileron-cmd</property> - </input> - <input> - <expression> - <table> - <property>/controls/flight/aileron</property> - <entry><ind>-1.00</ind><dep>-1</dep></entry> - <entry><ind>-0.04</ind><dep> 0</dep></entry> - <entry><ind> 0.00</ind><dep> 0</dep></entry> - <entry><ind> 0.04</ind><dep> 0</dep></entry> - <entry><ind> 1.00</ind><dep> 1</dep></entry> - </table> - </expression> - </input> - <output>/controls/flight/aileron-input</output> - <max-rate-of-change> - <condition> - <and> - <equals> - <property>/gear/gear[1]/wow</property> - <value>0</value> - </equals> - <equals> - <property>/gear/gear[2]/wow</property> - <value>0</value> - </equals> - </and> - </condition> - <value>1.0</value> - </max-rate-of-change> - <max-rate-of-change>5</max-rate-of-change> - </filter> - - <filter> - <debug>false</debug> - <type>noise-spike</type> - <enable> - <condition> - <equals> - <property>/systems/acconfig/mismatch-code</property> - <value>0x000</value> - </equals> - </condition> - </enable> - <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-equals> - <property>/position/gear-agl-ft</property> - <value>30</value> - </less-than-equals> - <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> - <equals> - <property>/gear/gear[0]/wow</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> - </and> - </condition> - <expression> - <sum> - <table> - <property>/controls/flight/elevator</property> - <entry><ind>-1.00</ind><dep>-1</dep></entry> - <entry><ind>-0.04</ind><dep> 0</dep></entry> - <entry><ind> 0.00</ind><dep> 0</dep></entry> - <entry><ind> 0.04</ind><dep> 0</dep></entry> - <entry><ind> 1.00</ind><dep> 1</dep></entry> - </table> - <table> - <property>/position/gear-agl-ft</property> - <entry><ind> 5</ind><dep>0.20</dep></entry> - <entry><ind>30</ind><dep>0.10</dep></entry> - </table> - </sum> - </expression> - </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> - <less-than-equals> - <property>/position/gear-agl-ft</property> - <value>30</value> - </less-than-equals> - <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> - <equals> - <property>/gear/gear[0]/wow</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> - </or> - </and> - </condition> - <expression> - <sum> - <table> - <property>/controls/flight/elevator</property> - <entry><ind>-1.00</ind><dep>-1</dep></entry> - <entry><ind>-0.04</ind><dep> 0</dep></entry> - <entry><ind> 0.00</ind><dep> 0</dep></entry> - <entry><ind> 0.04</ind><dep> 0</dep></entry> - <entry><ind> 1.00</ind><dep> 1</dep></entry> - </table> - <value>0.15</value> - </sum> - </expression> - </input> - <input> - <condition> - <and> - <or> - <equals> - <property>/it-autoflight/output/ap1</property> - <value>1</value> - </equals> - <equals> - <property>/it-autoflight/output/ap2</property> - <value>1</value> - </equals> - </or> - <equals> - <property>/gear/gear[1]/wow</property> - <value>0</value> - </equals> - <equals> - <property>/gear/gear[2]/wow</property> - <value>0</value> - </equals> - </and> - </condition> - <property>/it-autoflight/internal/elevator-cmd</property> - </input> - <input> - <condition> - <and> - <or> - <equals> - <property>/it-autoflight/output/ap1</property> - <value>1</value> - </equals> - <equals> - <property>/it-autoflight/output/ap2</property> - <value>1</value> - </equals> - </or> - <or> - <equals> - <property>/gear/gear[1]/wow</property> - <value>1</value> - </equals> - <equals> - <property>/gear/gear[2]/wow</property> - <value>1</value> - </equals> - </or> - </and> - </condition> - <value>0.0</value> - </input> - <input> - <expression> - <table> - <property>/controls/flight/elevator</property> - <entry><ind>-1.00</ind><dep>-1</dep></entry> - <entry><ind>-0.04</ind><dep> 0</dep></entry> - <entry><ind> 0.00</ind><dep> 0</dep></entry> - <entry><ind> 0.04</ind><dep> 0</dep></entry> - <entry><ind> 1.00</ind><dep> 1</dep></entry> - </table> - </expression> - </input> - <output>/controls/flight/elevator-input</output> - <max-rate-of-change> - <condition> - <and> - <equals> - <property>/gear/gear[1]/wow</property> - <value>0</value> - </equals> - <equals> - <property>/gear/gear[2]/wow</property> - <value>0</value> - </equals> - </and> - </condition> - <value>1.0</value> - </max-rate-of-change> - <max-rate-of-change>5</max-rate-of-change> - </filter> - -</PropertyList> diff --git a/Systems/fbw-pitch.xml b/Systems/fbw-pitch.xml index 780f4c66..a0a4477e 100644 --- a/Systems/fbw-pitch.xml +++ b/Systems/fbw-pitch.xml @@ -6,107 +6,20 @@ ############################################## --> -<!-- Airbus A3XX FBW System --> +<!-- Airbus A320 FBW System --> <!-- Joshua Davidson (it0uchpods) --> +<!-- I didn't see an easy way to do this controller in JSBsim, so I keep it here --> <PropertyList> - <!-- =============================================================== --> - <!-- Vertical --> - <!-- =============================================================== --> - - <filter> - <name>IT-CONTROLLER: LOAD FACTOR CMD</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <expression> - <sum> - <table> - <property>/controls/flight/elevator-input</property> - <entry><ind> 1</ind><dep>-0.5</dep></entry> - <entry><ind> 0</ind><dep> 1.0</dep></entry> - <entry><ind>-1</ind><dep> 2.5</dep></entry> - </table> - </sum> - </expression> - </input> - <output>/it-fbw/g-target</output> - <min> - <condition> - <not-equals> - <property>/controls/flight/flap-pos</property> - <value>0</value> - </not-equals> - </condition> - <value>0.0</value> - </min> - <min>-1.0</min> - <max> - <condition> - <not-equals> - <property>/controls/flight/flap-pos</property> - <value>0</value> - </not-equals> - </condition> - <value>2.0</value> - </max> - <max>2.5</max> - </filter> - - <filter> - <name>IT-CONTROLLER: COMPUTED G</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <expression> - <sum> - <property>/accelerations/pilot-gdamped</property> - <div> - <value>-1</value> - <cos> - <deg2rad> - <product> - <property>/orientation/roll-deg</property> - <value>0.965</value> - </product> - </deg2rad> - </cos> - </div> - <value>1</value> - </sum> - </expression> - </input> - <output>/it-fbw/g-computed</output> - </filter> - - <filter> - <name>IT-CONTROLLER: G ERROR</name> - <type>gain</type> - <gain>-1.0</gain> - <input> - <expression> - <dif> - <property>/it-fbw/g-target</property> - <property>/it-fbw/g-computed</property> - </dif> - </expression> - </input> - <output>/it-fbw/g-error</output> - </filter> - <pi-simple-controller> - <name>IT-CONTROLLER: G ELEVATOR</name> + <name>FBW PITCH G PI</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> + <property>/fdm/jsbsim/position/wow</property> <value>0</value> </equals> <or> @@ -123,13 +36,13 @@ </condition> </enable> <input> - <property>/it-fbw/g-error</property> + <property>/fdm/jsbsim/fbw/pitch/g-error</property> </input> <reference> <value>0</value> </reference> <output> - <property>/it-fbw/g-elevator-cmd</property> + <property>/fdm/jsbsim/fbw/pitch/g-pi</property> </output> <config> <Kp>-1.5</Kp> @@ -137,544 +50,24 @@ <min> <condition> <less-than> - <property>/controls/flight/elevator-input</property> + <property>/fdm/jsbsim/fbw/pitch/e-i</property> <value>0</value> </less-than> </condition> - <property>/controls/flight/elevator-input</property> + <property>/fdm/jsbsim/fbw/pitch/e-i</property> </min> <min>0.0</min> <max> <condition> <greater-than> - <property>/controls/flight/elevator-input</property> + <property>/fdm/jsbsim/fbw/pitch/e-i</property> <value>0</value> </greater-than> </condition> - <property>/controls/flight/elevator-input</property> + <property>/fdm/jsbsim/fbw/pitch/e-i</property> </max> <max>0.0</max> </config> </pi-simple-controller> - - <filter> - <name>IT-CONTROLLER: G ELEVATOR INVERT</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <condition> - <and> - <less-than-equals> - <property>/orientation/roll-deg</property> - <value>90</value> - </less-than-equals> - <greater-than-equals> - <property>/orientation/roll-deg</property> - <value>-90</value> - </greater-than-equals> - </and> - </condition> - <property>/it-fbw/g-elevator-cmd</property> - </input> - <input> - <property>/it-fbw/g-elevator-cmd</property> - <scale>-1.0</scale> - </input> - <output>/it-fbw/g-elevator</output> - </filter> - - <filter> - <name>IT-CONTROLLER: PITCH RATE CMD</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <condition> - <and> - <equals> - <property>/it-fbw/law</property> - <value>0</value> - </equals> - <not-equals> - <property>/it-fbw/protections/overspeed</property> - <value>1</value> - </not-equals> - </and> - </condition> - <expression> - <sum> - <table> - <property>/it-fbw/g-elevator</property> - <entry><ind> 1</ind><dep>-5.0</dep></entry> - <entry><ind> 0</ind><dep> 0.0</dep></entry> - <entry><ind>-1</ind><dep> 5.0</dep></entry> - </table> - <product> - <table> - <property>/orientation/pitch-deg</property> - <entry><ind>-15.00000</ind><dep>1</dep></entry> - <entry><ind>-14.99999</ind><dep>0</dep></entry> - </table> - <table> - <property>/it-fbw/g-elevator</property> - <entry><ind>1</ind><dep>5.0</dep></entry> - <entry><ind>0</ind><dep>0.0</dep></entry> - </table> - </product> - <product> - <table> - <property>/orientation/pitch-deg</property> - <entry><ind>29.99999</ind><dep>0</dep></entry> - <entry><ind>30.00000</ind><dep>1</dep></entry> - </table> - <table> - <property>/it-fbw/g-elevator</property> - <entry><ind> 0</ind><dep> 0.0</dep></entry> - <entry><ind>-1</ind><dep>-5.0</dep></entry> - </table> - </product> - <table> - <property>/orientation/pitch-deg</property> - <entry><ind>-18</ind><dep> 5</dep></entry> - <entry><ind>-15</ind><dep> 0</dep></entry> - <entry><ind> 30</ind><dep> 0</dep></entry> - <entry><ind> 33</ind><dep>-5</dep></entry> - </table> - </sum> - </expression> - </input> - <input> - <condition> - <and> - <not-equals> - <property>/it-fbw/law</property> - <value>0</value> - </not-equals> - <not-equals> - <property>/it-fbw/protections/overspeed</property> - <value>1</value> - </not-equals> - </and> - </condition> - <expression> - <sum> - <table> - <property>/it-fbw/g-elevator</property> - <entry><ind> 1</ind><dep>-5.0</dep></entry> - <entry><ind> 0</ind><dep> 0.0</dep></entry> - <entry><ind>-1</ind><dep> 5.0</dep></entry> - </table> - </sum> - </expression> - </input> - <input> - <condition> - <and> - <equals> - <property>/it-fbw/law</property> - <value>0</value> - </equals> - <equals> - <property>/it-fbw/protections/overspeed</property> - <value>1</value> - </equals> - </and> - </condition> - <expression> - <sum> - <table> - <property>/it-fbw/g-elevator</property> - <entry><ind> 0.0</ind><dep> 1.5</dep></entry> - <entry><ind>-1.0</ind><dep> 5.0</dep></entry> - </table> - <product> - <table> - <property>/orientation/pitch-deg</property> - <entry><ind>29.99999</ind><dep>0</dep></entry> - <entry><ind>30.00000</ind><dep>1</dep></entry> - </table> - <table> - <property>/it-fbw/g-elevator</property> - <entry><ind> 0</ind><dep>-1.5</dep></entry> - <entry><ind>-1</ind><dep>-5.0</dep></entry> - </table> - </product> - <table> - <property>/orientation/pitch-deg</property> - <entry><ind> 30</ind><dep> 0</dep></entry> - <entry><ind> 33</ind><dep>-5</dep></entry> - </table> - </sum> - </expression> - </input> - <input> - <condition> - <and> - <not-equals> - <property>/it-fbw/law</property> - <value>0</value> - </not-equals> - <equals> - <property>/it-fbw/protections/overspeed</property> - <value>1</value> - </equals> - </and> - </condition> - <expression> - <sum> - <table> - <property>/it-fbw/g-elevator</property> - <entry><ind> 1.0</ind><dep>-3.5</dep></entry> - <entry><ind> 0.0</ind><dep> 1.5</dep></entry> - <entry><ind>-1.0</ind><dep> 5.0</dep></entry> - </table> - <product> - <table> - <property>/orientation/pitch-deg</property> - <entry><ind>-15.00000</ind><dep>1</dep></entry> - <entry><ind>-14.99999</ind><dep>0</dep></entry> - </table> - <table> - <property>/it-fbw/g-elevator</property> - <entry><ind>1</ind><dep> 3.5</dep></entry> - <entry><ind>0</ind><dep>-1.5</dep></entry> - </table> - </product> - <product> - <table> - <property>/orientation/pitch-deg</property> - <entry><ind>29.99999</ind><dep>0</dep></entry> - <entry><ind>30.00000</ind><dep>1</dep></entry> - </table> - <table> - <property>/it-fbw/g-elevator</property> - <entry><ind> 0</ind><dep>-1.5</dep></entry> - <entry><ind>-1</ind><dep>-5.0</dep></entry> - </table> - </product> - <table> - <property>/orientation/pitch-deg</property> - <entry><ind>-18</ind><dep> 5</dep></entry> - <entry><ind>-15</ind><dep> 0</dep></entry> - <entry><ind> 30</ind><dep> 0</dep></entry> - <entry><ind> 33</ind><dep>-5</dep></entry> - </table> - </sum> - </expression> - </input> - <output>/it-fbw/pitch-rate</output> - </filter> - - <filter> - <name>IT-CONTROLLER: PITCH KP (P Gain)</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <expression> - <table> - <property>/velocities/mach</property> - <entry><ind>0.2</ind><dep>-0.31</dep></entry> - <entry><ind>0.9</ind><dep>-0.15</dep></entry> - </table> - </expression> - </input> - <output>/it-fbw/pitch-kp</output> - </filter> - - <filter> - <name>IT-CONTROLLER: PITCH TI (I Time)</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <expression> - <table> - <property>/velocities/mach</property> - <entry><ind>0.2</ind><dep>0.75</dep></entry> - <entry><ind>0.9</ind><dep>0.55</dep></entry> - </table> - </expression> - </input> - <output>/it-fbw/pitch-ti</output> - </filter> - - <pid-controller> - <name>IT-CONTROLLER: PITCH</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> - <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-rate-degps</property> - </input> - <reference> - <property>/it-fbw/pitch-rate</property> - </reference> - <output> - <property>/controls/flight/elevator-fbw-pid</property> - </output> - <config> - <Kp> - <property>/it-fbw/pitch-kp</property> - </Kp> - <beta>1</beta> - <alpha>0.1</alpha> - <gamma>0</gamma> - <Ti> - <property>/it-fbw/pitch-ti</property> - </Ti> - <Td>0.005</Td> - <u_min>-1</u_min> - <u_max>1</u_max> - </config> - </pid-controller> - - <filter> - <name>IT-CONTROLLER: ELEVATOR INVERT</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <condition> - <and> - <less-than-equals> - <property>/orientation/roll-deg</property> - <value>90</value> - </less-than-equals> - <greater-than-equals> - <property>/orientation/roll-deg</property> - <value>-90</value> - </greater-than-equals> - </and> - </condition> - <property>/controls/flight/elevator-fbw-pid</property> - </input> - <input> - <property>/controls/flight/elevator-fbw-pid</property> - <scale>-1.0</scale> - </input> - <output>/controls/flight/elevator-fbw-cmd</output> - </filter> - - <filter> - <name>IT-CONTROLLER: PITCH OPTION</name> - <debug>false</debug> - <type>gain</type> - <gain>1.0</gain> - <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> - <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> - </or> - </and> - </condition> - <property>/controls/flight/elevator-input-fast</property> - </input> - <input> - <condition> - <and> - <or> - <equals> - <property>/it-autoflight/output/ap1</property> - <value>1</value> - </equals> - <equals> - <property>/it-autoflight/output/ap2</property> - <value>1</value> - </equals> - </or> - <or> - <equals> - <property>/gear/gear[1]/wow</property> - <value>1</value> - </equals> - <equals> - <property>/gear/gear[2]/wow</property> - <value>1</value> - </equals> - </or> - </and> - </condition> - <value>0.1</value> - </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> - - <filter> - <name>IT-CONTROLLER: PITCH TRIM</name> - <debug>false</debug> - <initialize-to>output</initialize-to> - <type>noise-spike</type> - <enable> - <condition> - <and> - <or> - <equals> - <property>/it-fbw/law</property> - <value>0</value> - </equals> - <equals> - <property>/it-fbw/law</property> - <value>1</value> - </equals> - </or> - <or> - <and> - <greater-than-equals> - <property>/position/gear-agl-ft</property> - <value>100</value> - </greater-than-equals> - <or> - <equals> - <property>/it-autoflight/output/ap1</property> - <value>1</value> - </equals> - <equals> - <property>/it-autoflight/output/ap2</property> - <value>1</value> - </equals> - </or> - </and> - <and> - <greater-than-equals> - <property>/position/gear-agl-ft</property> - <value>50</value> - </greater-than-equals> - <equals> - <property>/it-autoflight/output/ap1</property> - <value>0</value> - </equals> - <equals> - <property>/it-autoflight/output/ap2</property> - <value>0</value> - </equals> - </and> - </or> - <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> - <less-than> - <property>/fdm/jsbsim/forces/load-factor</property> - <value>-0.5</value> - </less-than> - <not-equals> - <property>/it-fbw/protections/overspeed</property> - <value>1</value> - </not-equals> - </and> - </condition> - </enable> - <input> - <condition> - <greater-than> - <property>/controls/flight/elevator-fbw</property> - <value>0.01</value> - </greater-than> - </condition> - <value>1</value> - </input> - <input> - <condition> - <less-than> - <property>/controls/flight/elevator-fbw</property> - <value>-0.01</value> - </less-than> - </condition> - <value>-1</value> - </input> - <output>/controls/flight/elevator-trim</output> - <min>-1.0</min> - <max>0.32</max> - <max-rate-of-change>0.01</max-rate-of-change> - </filter> </PropertyList> diff --git a/Systems/fbw-roll-yaw.xml b/Systems/fbw-roll-yaw.xml deleted file mode 100644 index b4ce1183..00000000 --- a/Systems/fbw-roll-yaw.xml +++ /dev/null @@ -1,747 +0,0 @@ -<?xml version="1.0"?> - -<!-- -############################################## -# Copyright (c) Joshua Davidson (it0uchpods) # -############################################## ---> - -<!-- Airbus A3XX FBW System --> -<!-- Joshua Davidson (it0uchpods) --> - -<PropertyList> - - <!-- =============================================================== --> - <!-- Lateral --> - <!-- =============================================================== --> - - <filter> - <name>IT-CONTROLLER: ROLL</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <condition> - <and> - <equals> - <property>/it-fbw/roll-lim</property> - <value>33</value> - </equals> - <not-equals> - <property>/it-fbw/roll-back</property> - <value>1</value> - </not-equals> - <not-equals> - <property>/it-fbw/protections/overspeed</property> - <value>1</value> - </not-equals> - </and> - </condition> - <expression> - <sum> - <table> - <property>/controls/flight/aileron-input</property> - <entry><ind>-1</ind><dep>-15.0</dep></entry> - <entry><ind> 0</ind><dep> 0.0</dep></entry> - <entry><ind> 1</ind><dep> 15.0</dep></entry> - </table> - <product> - <table> - <property>/orientation/roll-deg</property> - <entry><ind>-33.00000</ind><dep>1</dep></entry> - <entry><ind>-32.99999</ind><dep>0</dep></entry> - </table> - <table> - <property>/controls/flight/aileron-input</property> - <entry><ind>-1</ind><dep>15.0</dep></entry> - <entry><ind> 0</ind><dep> 0.0</dep></entry> - </table> - </product> - <product> - <table> - <property>/orientation/roll-deg</property> - <entry><ind>32.99999</ind><dep>0</dep></entry> - <entry><ind>33.00000</ind><dep>1</dep></entry> - </table> - <table> - <property>/controls/flight/aileron-input</property> - <entry><ind>0</ind><dep> 0.0</dep></entry> - <entry><ind>1</ind><dep>-15.0</dep></entry> - </table> - </product> - </sum> - </expression> - </input> - <input> - <condition> - <and> - <equals> - <property>/it-fbw/roll-lim</property> - <value>67</value> - </equals> - <not-equals> - <property>/it-fbw/protections/overspeed</property> - <value>1</value> - </not-equals> - </and> - </condition> - <expression> - <sum> - <table> - <property>/controls/flight/aileron-input</property> - <entry><ind>-1</ind><dep>-15.0</dep></entry> - <entry><ind> 0</ind><dep> 0.0</dep></entry> - <entry><ind> 1</ind><dep> 15.0</dep></entry> - </table> - <product> - <table> - <property>/orientation/roll-deg</property> - <entry><ind>-67.00000</ind><dep>1</dep></entry> - <entry><ind>-66.99999</ind><dep>0</dep></entry> - </table> - <table> - <property>/controls/flight/aileron-input</property> - <entry><ind>-1</ind><dep>15.0</dep></entry> - <entry><ind> 0</ind><dep> 0.0</dep></entry> - </table> - </product> - <product> - <table> - <property>/orientation/roll-deg</property> - <entry><ind>66.99999</ind><dep>0</dep></entry> - <entry><ind>67.00000</ind><dep>1</dep></entry> - </table> - <table> - <property>/controls/flight/aileron-input</property> - <entry><ind>0</ind><dep> 0.0</dep></entry> - <entry><ind>1</ind><dep>-15.0</dep></entry> - </table> - </product> - </sum> - </expression> - </input> - <input> - <condition> - <and> - <equals> - <property>/it-fbw/roll-back</property> - <value>1</value> - </equals> - <not-equals> - <property>/it-fbw/protections/overspeed</property> - <value>1</value> - </not-equals> - </and> - </condition> - <expression> - <table> - <property>/orientation/roll-deg</property> - <entry><ind>-67</ind><dep> 25.0</dep></entry> - <entry><ind>-40</ind><dep> 10.0</dep></entry> - <entry><ind>-33</ind><dep> 0.0</dep></entry> - <entry><ind> 33</ind><dep> 0.0</dep></entry> - <entry><ind> 40</ind><dep>-10.0</dep></entry> - <entry><ind> 67</ind><dep>-25.0</dep></entry> - </table> - </expression> - </input> - <input> - <condition> - <and> - <equals> - <property>/it-fbw/protections/overspeed</property> - <value>1</value> - </equals> - <not-equals> - <property>/it-fbw/protections/overspeed-roll-back</property> - <value>1</value> - </not-equals> - </and> - </condition> - <expression> - <sum> - <table> - <property>/controls/flight/aileron-input</property> - <entry><ind>-1</ind><dep>-15.0</dep></entry> - <entry><ind> 0</ind><dep> 0.0</dep></entry> - <entry><ind> 1</ind><dep> 15.0</dep></entry> - </table> - <product> - <table> - <property>/orientation/roll-deg</property> - <entry><ind>-40.00000</ind><dep>1</dep></entry> - <entry><ind>-39.99999</ind><dep>0</dep></entry> - </table> - <table> - <property>/controls/flight/aileron-input</property> - <entry><ind>-1</ind><dep>15.0</dep></entry> - <entry><ind> 0</ind><dep> 0.0</dep></entry> - </table> - </product> - <product> - <table> - <property>/orientation/roll-deg</property> - <entry><ind>39.99999</ind><dep>0</dep></entry> - <entry><ind>40.00000</ind><dep>1</dep></entry> - </table> - <table> - <property>/controls/flight/aileron-input</property> - <entry><ind>0</ind><dep> 0.0</dep></entry> - <entry><ind>1</ind><dep>-15.0</dep></entry> - </table> - </product> - </sum> - </expression> - </input> - <input> - <condition> - <and> - <equals> - <property>/it-fbw/protections/overspeed</property> - <value>1</value> - </equals> - <equals> - <property>/it-fbw/protections/overspeed-roll-back</property> - <value>1</value> - </equals> - </and> - </condition> - <expression> - <table> - <property>/orientation/roll-deg</property> - <entry><ind>-40</ind><dep> 25.0</dep></entry> - <entry><ind>-15</ind><dep> 10.0</dep></entry> - <entry><ind> 0</ind><dep> 0.0</dep></entry> - <entry><ind> 15</ind><dep>-10.0</dep></entry> - <entry><ind> 40</ind><dep>-25.0</dep></entry> - </table> - </expression> - </input> - <output>/it-fbw/roll-rate</output> - </filter> - - <filter> - <name>IT-CONTROLLER: ROLL KP (P Gain)</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <expression> - <table> - <property>/velocities/mach</property> - <entry><ind>0.2</ind><dep>0.13</dep></entry> - <entry><ind>0.9</ind><dep>0.06</dep></entry> - </table> - </expression> - </input> - <output>/it-fbw/roll-kp</output> - </filter> - - <filter> - <name>IT-CONTROLLER: ROLL TI (I Time)</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <expression> - <table> - <property>/velocities/mach</property> - <entry><ind>0.2</ind><dep>0.75</dep></entry> - <entry><ind>0.9</ind><dep>0.65</dep></entry> - </table> - </expression> - </input> - <output>/it-fbw/roll-ti</output> - </filter> - - <pid-controller> - <name>IT-CONTROLLER: ROLL</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> - </and> - </condition> - </enable> - <input> - <property>/orientation/roll-rate-degps</property> - </input> - <reference> - <property>/it-fbw/roll-rate</property> - </reference> - <output> - <property>/controls/flight/aileron-fbw-cmd</property> - </output> - <config> - <Kp> - <property>/it-fbw/roll-kp</property> - </Kp> - <beta>1</beta> - <alpha>0.1</alpha> - <gamma>0</gamma> - <Ti> - <property>/it-fbw/roll-ti</property> - </Ti> - <Td>0.005</Td> - <u_min>-1</u_min> - <u_max>1</u_max> - </config> - </pid-controller> - - <filter> - <name>IT-CONTROLLER: ROLL OPTION</name> - <debug>false</debug> - <type>gain</type> - <gain>1.0</gain> - <feedback-if-disabled>true</feedback-if-disabled> - <initialize-to>output</initialize-to> - <input> - <condition> - <and> - <or> - <equals> - <property>/it-autoflight/output/ap1</property> - <value>1</value> - </equals> - <equals> - <property>/it-autoflight/output/ap2</property> - <value>1</value> - </equals> - <and> - <equals> - <property>/gear/gear[1]/wow</property> - <value>0</value> - </equals> - <equals> - <property>/gear/gear[2]/wow</property> - <value>0</value> - </equals> - </and> - </or> - <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-fast</property> - </input> - <input> - <condition> - <and> - <or> - <equals> - <property>/it-autoflight/output/ap1</property> - <value>1</value> - </equals> - <equals> - <property>/it-autoflight/output/ap2</property> - <value>1</value> - </equals> - </or> - <or> - <equals> - <property>/gear/gear[1]/wow</property> - <value>1</value> - </equals> - <equals> - <property>/gear/gear[2]/wow</property> - <value>1</value> - </equals> - </or> - <equals> - <property>/it-fbw/law</property> - <value>0</value> - </equals> - </and> - </condition> - <property>/controls/flight/rudder</property> - <scale>-1</scale> - </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-CONTROLLER: SPOILER</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <condition> - <equals> - <property>/it-fbw/roll-back</property> - <value>0</value> - </equals> - </condition> - <expression> - <product> - <property>/controls/flight/aileron-input</property> - <table> - <property>/instrumentation/airspeed-indicator/indicated-mach</property> - <entry><ind>0.2</ind><dep>1.00</dep></entry> - <entry><ind>0.9</ind><dep>0.25</dep></entry> - </table> - </product> - </expression> - </input> - <input> - <condition> - <equals> - <property>/it-fbw/roll-back</property> - <value>1</value> - </equals> - </condition> - <value>0</value> - </input> - <output>/controls/flight/spoiler-input</output> - </filter> - - <filter> - <name>IT-CONTROLLER: LEFT SPOILER</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <condition> - <and> - <equals> - <property>/systems/failures/aileron-left</property> - <value>0</value> - </equals> - <not-equals> - <property>/it-fbw/law</property> - <value>3</value> - </not-equals> - </and> - </condition> - <expression> - <table> - <property>/controls/flight/spoiler-input</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> - <and> - <equals> - <property>/systems/failures/aileron-left</property> - <value>1</value> - </equals> - <not-equals> - <property>/it-fbw/law</property> - <value>3</value> - </not-equals> - </and> - </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> - <input>0</input> - <output>/controls/flight/spoiler-left-fbw-cmd</output> - <min>-1</min> - <max>1</max> - </filter> - - <filter> - <name>IT-CONTROLLER: RIGHT SPOILER</name> - <type>gain</type> - <gain>1.0</gain> - <input> - <condition> - <and> - <equals> - <property>/systems/failures/aileron-right</property> - <value>0</value> - </equals> - <not-equals> - <property>/it-fbw/law</property> - <value>3</value> - </not-equals> - </and> - </condition> - <expression> - <table> - <property>/controls/flight/spoiler-input</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> - <and> - <equals> - <property>/systems/failures/aileron-right</property> - <value>1</value> - </equals> - <not-equals> - <property>/it-fbw/law</property> - <value>3</value> - </not-equals> - </and> - </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> - <input>0</input> - <output>/controls/flight/spoiler-right-fbw-cmd</output> - <min>-1</min> - <max>1</max> - </filter> - - <!-- =============================================================== --> - <!-- Yaw Damper/Turn Coordinator --> - <!-- =============================================================== --> - - <filter> - <name>IT-CONTROLLER: YAW DAMPER/TURN COORDINATOR FEEDBACK IF DISABLED</name> - <enable> - <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> - </enable> - <type>gain</type> - <gain>1.0</gain> - <input>0</input> - <output>/controls/flight/rudder-fbw-cmd</output> - <min>-0.2</min> - <max>0.2</max> - </filter> - - <pid-controller> - <name>IT-CONTROLLER: 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> - <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> - </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-CONTROLLER: 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> diff --git a/Systems/fmgc-pitch.xml b/Systems/fmgc-pitch.xml index 061194d6..9548e096 100644 --- a/Systems/fmgc-pitch.xml +++ b/Systems/fmgc-pitch.xml @@ -657,20 +657,6 @@ <debug>false</debug> <type>gain</type> <gain>0.15</gain> - <enable> - <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> - </enable> <input> <property>/orientation/pitch-deg</property> </input> @@ -678,7 +664,7 @@ <property>/it-autoflight/internal/target-pitch-deg</property> </reference> <output> - <property>/it-autoflight/internal/elevator-cmd</property> <!-- Inputs to the FBW Pitch Rate --> + <property>/fdm/jsbsim/fbw/fmgc/pitch-cmd</property> <!-- Inputs to the FBW Pitch Rate --> </output> <min>-0.3</min> <max>0.3</max> diff --git a/Systems/fmgc-roll-yaw.xml b/Systems/fmgc-roll-yaw.xml index 507a6c9c..94d47db9 100644 --- a/Systems/fmgc-roll-yaw.xml +++ b/Systems/fmgc-roll-yaw.xml @@ -197,20 +197,6 @@ <debug>false</debug> <type>gain</type> <gain>-0.1</gain> - <enable> - <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> - </enable> <input> <property>/orientation/roll-deg</property> </input> @@ -245,7 +231,7 @@ <value>0</value> </reference> <output> - <property>/it-autoflight/internal/aileron-cmd</property> <!-- Inputs to the FBW Roll Rate --> + <property>/fdm/jsbsim/fbw/fmgc/roll-cmd</property> <!-- Inputs to the FBW Roll Rate --> </output> <min>-0.32</min> <max>0.32</max> @@ -315,20 +301,6 @@ <debug>false</debug> <feedback-if-disabled>true</feedback-if-disabled> <initialize-to>output</initialize-to> - <enable> - <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> - </enable> <input> <condition> <not-equals> @@ -347,7 +319,7 @@ </condition> <property>/it-autoflight/internal/rudder-cmd</property> </input> - <output>/controls/flight/rudder</output> + <output>/fdm/jsbsim/fbw/fmgc/yaw-cmd</output> <type>noise-spike</type> <max-rate-of-change>0.6</max-rate-of-change> </filter> diff --git a/Systems/v2500-sound.xml b/Systems/v2500-sound.xml index 8e983c4e..c1cd7f46 100644 --- a/Systems/v2500-sound.xml +++ b/Systems/v2500-sound.xml @@ -276,8 +276,8 @@ <product> <table> <product><property>/engines/engine[0]/n1-actual</property><value>0.01</value> </product> - <entry><ind>0.15</ind> <dep>0.40</dep></entry> - <entry><ind>0.22</ind> <dep>0.85</dep></entry> + <entry><ind>0.15</ind> <dep>0.50</dep></entry> + <entry><ind>0.22</ind> <dep>1.00</dep></entry> <entry><ind>0.50</ind> <dep>1.30</dep></entry> </table> </product> @@ -296,8 +296,8 @@ <product> <table> <product><property>/engines/engine[1]/n1-actual</property><value>0.01</value> </product> - <entry><ind>0.15</ind> <dep>0.40</dep></entry> - <entry><ind>0.22</ind> <dep>0.85</dep></entry> + <entry><ind>0.15</ind> <dep>0.50</dep></entry> + <entry><ind>0.22</ind> <dep>1.00</dep></entry> <entry><ind>0.50</ind> <dep>1.30</dep></entry> </table> </product>