Control: Fix Rudder Scheduling

This commit is contained in:
Joshua Davidson 2019-01-22 23:50:15 -05:00
parent 62b49aaf09
commit 901d2c8e56
2 changed files with 86 additions and 74 deletions

View file

@ -1043,6 +1043,76 @@
<channel name="FBW: Yaw">
<fcs_function name="fbw/yaw/max-deg-fac">
<function>
<table>
<independentVar lookup="row">velocities/vc-kts</independentVar>
<tableData>
160.00 25.000
162.15 23.649
165.02 22.226
168.64 21.015
172.25 19.734
176.59 18.595
181.67 17.525
186.75 16.385
191.83 15.316
197.65 14.318
205.65 13.247
212.93 12.318
219.48 11.462
227.48 10.533
236.96 9.7450
246.43 8.8863
255.18 8.0990
266.12 7.4525
277.06 6.7704
288.00 6.0884
299.67 5.5124
311.35 5.0075
323.03 4.5736
335.44 4.2104
347.13 3.9186
358.81 3.6979
370.50 3.5482
380.00 3.4000
</tableData>
</table>
</function>
</fcs_function>
<switch name="fbw/yaw/max-deg-switch">
<default value="25"/>
<test logic="AND" value="fbw/yaw/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
</test>
<test logic="AND" value="fbw/yaw/max-deg-fac">
/controls/flight/slats eq 0
/gear/gear[1]/wow eq 0
/gear/gear[2]/wow eq 0
</test>
</switch>
<aerosurface_scale name="fbw/yaw/max-deg-scale">
<input>fbw/yaw/max-deg-switch</input>
<domain>
<min>-25</min>
<max>25</max>
</domain>
<range>
<min>-1</min>
<max>1</max>
</range>
</aerosurface_scale>
<pure_gain name="fbw/yaw/max-deg-scale-neg">
<input>fbw/yaw/max-deg-scale</input>
<gain>-1.0</gain>
</pure_gain>
<fcs_function name="fbw/yaw/rudder-nul">
<function>
<table>
@ -1059,6 +1129,18 @@
</function>
</fcs_function>
<fcs_function name="fbw/yaw/rudder-nul-scheduled">
<function>
<quotient>
<product>
<property>fbw/yaw/rudder-nul</property>
<property>fbw/yaw/max-deg-switch</property>
</product>
<value>25</value>
</quotient>
</function>
</fcs_function>
<switch name="fbw/yaw/autoland-switch">
<default value="0"/>
<test logic="AND" value="1">
@ -1139,7 +1221,7 @@
</switch>
<switch name="fbw/rudder-output">
<default value="fbw/yaw/rudder-nul"/>
<default value="fbw/yaw/rudder-nul-scheduled"/>
<test logic="AND" value="fbw/yaw/output-sum">
fbw/yaw/law-switch eq 1
fbw/yaw/rudder-nul eq 0
@ -1484,76 +1566,6 @@
<channel name="Rudder">
<fcs_function name="hydraulics/rudder/max-deg-fac">
<function>
<table>
<independentVar lookup="row">/velocities/airspeed-kt</independentVar>
<tableData>
160.00 25.000
162.15 23.649
165.02 22.226
168.64 21.015
172.25 19.734
176.59 18.595
181.67 17.525
186.75 16.385
191.83 15.316
197.65 14.318
205.65 13.247
212.93 12.318
219.48 11.462
227.48 10.533
236.96 9.7450
246.43 8.8863
255.18 8.0990
266.12 7.4525
277.06 6.7704
288.00 6.0884
299.67 5.5124
311.35 5.0075
323.03 4.5736
335.44 4.2104
347.13 3.9186
358.81 3.6979
370.50 3.5482
380.00 3.4000
</tableData>
</table>
</function>
</fcs_function>
<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
</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
</test>
</switch>
<aerosurface_scale name="hydraulics/rudder/max-deg-scale">
<input>hydraulics/rudder/max-deg-switch</input>
<domain>
<min>-25</min>
<max>25</max>
</domain>
<range>
<min>-1</min>
<max>1</max>
</range>
</aerosurface_scale>
<pure_gain name="hydraulics/rudder/max-deg-scale-neg">
<input>hydraulics/rudder/max-deg-scale</input>
<gain>-1.0</gain>
</pure_gain>
<switch name="hydraulics/rudder/pressure-switch-or">
<default value="0"/>
<test logic="OR" value="1">
@ -1599,8 +1611,8 @@
/systems/failures/rudder eq 0
</test>
<clipto>
<min>hydraulics/rudder/max-deg-scale-neg</min>
<max>hydraulics/rudder/max-deg-scale</max>
<min>fbw/yaw/max-deg-scale-neg</min>
<max>fbw/yaw/max-deg-scale</max>
</clipto>
</switch>

View file

@ -1 +1 @@
4741
4742