1
0
Fork 0

Control: Improve ground-flight and flight-flare FBW kinematics

This commit is contained in:
Josh Davidson 2021-10-16 18:11:35 -04:00
parent 69582e626d
commit 19dc123358

View file

@ -213,25 +213,9 @@
<gain>1.0</gain>
</pure_gain>
<switch name="fbw/roll/mixer/rate-limit">
<default value="fbw/roll/mixer/rate-limit"/>
<test logic="AND" value="2"> <!-- 0.5 seconds -->
position/wow eq 1
fbw/roll/mixer/sidestick-gain-feedback eq 1
</test>
<test logic="AND" value="100"> <!-- Unlimited -->
position/wow eq 1
fbw/roll/mixer/sidestick-gain-feedback ne 1
</test>
<test logic="AND" value="100"> <!-- Unlimited -->
position/wow eq 0
fbw/roll/mixer/sidestick-gain-feedback eq 0
</test>
</switch>
<actuator name="fbw/roll/mixer/sidestick-gain">
<input>position/wow</input>
<rate_limit>fbw/roll/mixer/rate-limit</rate_limit>
<rate_limit>2</rate_limit> <!-- 0.5 seconds -->
<output>fbw/roll/mixer/sidestick-gain-feedback</output>
</actuator>
@ -247,25 +231,9 @@
</function>
</fcs_function>
<switch name="fbw/pitch/mixer/rate-limit">
<default value="fbw/pitch/mixer/rate-limit"/>
<test logic="AND" value="0.2"> <!-- 5 seconds -->
position/wow eq 1
fbw/pitch/mixer/sidestick-gain-feedback eq 1
</test>
<test logic="AND" value="100"> <!-- Unlimited -->
position/wow eq 1
fbw/pitch/mixer/sidestick-gain-feedback ne 1
</test>
<test logic="AND" value="100"> <!-- Unlimited -->
position/wow eq 0
fbw/pitch/mixer/sidestick-gain-feedback eq 0
</test>
</switch>
<actuator name="fbw/pitch/mixer/sidestick-gain-linear">
<input>position/wow</input>
<rate_limit>fbw/pitch/mixer/rate-limit</rate_limit>
<rate_limit>0.2</rate_limit> <!-- 5 seconds -->
<output>fbw/pitch/mixer/sidestick-gain-feedback</output>
</actuator>
@ -273,10 +241,13 @@
<function>
<table>
<independentVar lookup="row">fbw/pitch/mixer/sidestick-gain-linear</independentVar>
<independentVar lookup="column">position/wow</independentVar>
<tableData>
0.0 0.0
0.6 0.3
1.0 1.0
0 1
0.0 0.0 0.0
0.4 0.2 0.7
0.6 0.3 0.8
1.0 1.0 1.0
</tableData>
</table>
</function>
@ -916,7 +887,7 @@
<switch name="fbw/aileron-output">
<default value="0"/>
<test logic="AND" value="fbw/roll/mixer/output"> <!-- Mix stick and control law for transition from ground law -->
<test logic="AND" value="fbw/roll/mixer/output"> <!-- Mix stick and control law for transition -->
position/wow eq 0
/it-fbw/law eq 0
</test>
@ -1164,10 +1135,49 @@
</function>
</fcs_function>
<switch name="fbw/pitch/flare-active">
<default value="0"/>
<test logic="AND" value="1">
fbw/fmgc/enabled eq 0
/position/gear-agl-ft le 30
/controls/flight/flaps-pos ge 4
/FMGC/internal/to-state eq 0
/it-fbw/law eq 0
gear/unit[0]/WOW eq 0
fbw/detent-1-feedback le 2
fbw/detent-2-feedback le 2
fadec/eng-out ne 1
</test>
<test logic="AND" value="1">
fbw/fmgc/enabled eq 0
/position/gear-agl-ft le 30
/controls/flight/flaps-pos ge 4
/FMGC/internal/to-state eq 0
/it-fbw/law eq 0
gear/unit[0]/WOW eq 0
fbw/detent-1-feedback le 4
fbw/detent-2-feedback le 4
fadec/eng-out eq 1
</test>
</switch>
<switch name="fbw/pitch/flare-decr">
<default value="1"/>
<test logic="AND" value="100"> <!-- Instant -->
fbw/fmgc/enabled eq 1
</test>
</switch>
<actuator name="fbw/pitch/flare-gain">
<input>fbw/pitch/flare-active</input>
<rate_limit sense="incr">1</rate_limit>
<rate_limit sense="decr">fbw/pitch/flare-decr</rate_limit>
</actuator>
<fcs_function name="fbw/pitch/e-i-flare">
<function>
<sum>
<property>fbw/sidestick/pitch-input</property>
<product>
<property>fbw/pitch/flare-gain</property>
<table>
<independentVar lookup="row">/position/gear-agl-ft</independentVar>
<tableData>
@ -1175,18 +1185,10 @@
30 0.1
</tableData>
</table>
</sum>
</product>
</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/max-rad">
<default value="0.523599"/>
<test value="3.14159"> <!-- So its irrelevant -->
@ -1243,28 +1245,6 @@
fbw/protections/overspeed eq 1
position/wow eq 0
</test>
<test logic="AND" value="fbw/pitch/e-i-flare">
fbw/fmgc/enabled eq 0
/position/gear-agl-ft le 30
/controls/flight/flaps-pos ge 4
/FMGC/internal/to-state eq 0
/it-fbw/law eq 0
position/wow eq 0
fbw/detent-1-feedback le 2
fbw/detent-2-feedback le 2
fadec/eng-out ne 1
</test>
<test logic="AND" value="fbw/pitch/e-i-flare">
fbw/fmgc/enabled eq 0
/position/gear-agl-ft le 30
/controls/flight/flaps-pos ge 4
/FMGC/internal/to-state eq 0
/it-fbw/law eq 0
position/wow eq 0
fbw/detent-1-feedback le 4
fbw/detent-2-feedback le 4
fadec/eng-out eq 1
</test>
<test logic="AND" value="fbw/fmgc/pitch-cmd">
fbw/fmgc/enabled eq 1
position/wow eq 0
@ -1307,6 +1287,7 @@
<summer name="fbw/pitch/e-i-sum">
<input>fbw/pitch/e-i-cmd</input>
<input>fbw/pitch/e-i-flare</input>
<input>fbw/pitch/over-max</input>
<input>fbw/pitch/over-min</input>
<clipto>
@ -1420,7 +1401,7 @@
<switch name="fbw/elevator-output">
<default value="0"/>
<test logic="AND" value="fbw/pitch/mixer/output"> <!-- Mix stick and control law for transition from ground law -->
<test logic="AND" value="fbw/pitch/mixer/output"> <!-- Mix stick and control law for transition -->
position/wow eq 0
fbw/pitch/law-switch eq 1
</test>
@ -1740,7 +1721,7 @@
<input>fbw/yaw/fmgc-cmd</input>
</summer>
<switch name="fbw/yaw/law-switch"> <!-- Is the yaw damper active or not? -->
<switch name="fbw/yaw/law-switch">
<default value="0"/>
<test logic="AND" value="1">
/it-fbw/law ne 3