1
0
Fork 0

Control: Fix buggy and wrong spoiler roll commands, inhibit overspeed prot in stall

This commit is contained in:
Josh Davidson 2022-04-11 20:17:06 -04:00
parent 0764a0f1ee
commit fe53c4d753
10 changed files with 38 additions and 33 deletions

View file

@ -18,7 +18,7 @@
<property>environment/relative-humidity</property> <property>environment/relative-humidity</property>
<value>0.075</value> <value>0.075</value>
</product> </product>
<property>fdm/jsbsim/aero/alpha-deg-norm</property> <property>fdm/jsbsim/aero/alpha-deg-fixed</property>
</sum> </sum>
</expression> </expression>
<value>13.5</value> <value>13.5</value>

View file

@ -18,7 +18,7 @@
<property>environment/relative-humidity</property> <property>environment/relative-humidity</property>
<value>0.075</value> <value>0.075</value>
</product> </product>
<property>fdm/jsbsim/aero/alpha-deg-norm</property> <property>fdm/jsbsim/aero/alpha-deg-fixed</property>
</sum> </sum>
</expression> </expression>
<value>13.5</value> <value>13.5</value>

View file

@ -3014,7 +3014,7 @@
<name>AOA Vane L1</name> <name>AOA Vane L1</name>
<type>rotate</type> <type>rotate</type>
<object-name>AOASensorL1</object-name> <object-name>AOASensorL1</object-name>
<property>fdm/jsbsim/aero/alpha-deg-norm</property> <property>fdm/jsbsim/aero/alpha-deg-fixed</property>
<interpolation> <interpolation>
<entry><ind>-60</ind><dep>85</dep></entry> <entry><ind>-60</ind><dep>85</dep></entry>
<entry><ind>-35</ind><dep>60</dep></entry> <entry><ind>-35</ind><dep>60</dep></entry>
@ -3038,7 +3038,7 @@
<name>AOA Vane R</name> <name>AOA Vane R</name>
<type>rotate</type> <type>rotate</type>
<object-name>AOASensorR</object-name> <object-name>AOASensorR</object-name>
<property>fdm/jsbsim/aero/alpha-deg-norm</property> <property>fdm/jsbsim/aero/alpha-deg-fixed</property>
<interpolation> <interpolation>
<entry><ind>-60</ind><dep>-85</dep></entry> <entry><ind>-60</ind><dep>-85</dep></entry>
<entry><ind>-35</ind><dep>-60</dep></entry> <entry><ind>-35</ind><dep>-60</dep></entry>
@ -3062,7 +3062,7 @@
<name>AOA Vane L2</name> <name>AOA Vane L2</name>
<type>rotate</type> <type>rotate</type>
<object-name>AOASensorL2</object-name> <object-name>AOASensorL2</object-name>
<property>fdm/jsbsim/aero/alpha-deg-norm</property> <property>fdm/jsbsim/aero/alpha-deg-fixed</property>
<interpolation> <interpolation>
<entry><ind>-60</ind><dep>85</dep></entry> <entry><ind>-60</ind><dep>85</dep></entry>
<entry><ind>-35</ind><dep>60</dep></entry> <entry><ind>-35</ind><dep>60</dep></entry>

View file

@ -107,7 +107,7 @@ var Fdm = {
JSBsim: { JSBsim: {
Aero: { Aero: {
alpha: props.globals.getNode("/fdm/jsbsim/aero/alpha-deg"), alpha: props.globals.getNode("/fdm/jsbsim/aero/alpha-deg"),
alphaNorm: props.globals.getNode("/fdm/jsbsim/aero/alpha-deg-norm"), alphaNorm: props.globals.getNode("/fdm/jsbsim/aero/alpha-deg-fixed"),
}, },
Fadec: { Fadec: {
detent: [props.globals.getNode("/fdm/jsbsim/fadec/control-1/detent"),props.globals.getNode("/fdm/jsbsim/fadec/control-2/detent")], detent: [props.globals.getNode("/fdm/jsbsim/fadec/control-1/detent"),props.globals.getNode("/fdm/jsbsim/fadec/control-2/detent")],

View file

@ -51,7 +51,7 @@
</fcs_function> </fcs_function>
<sensor name="/systems/navigation/probes/aoa-1"> <sensor name="/systems/navigation/probes/aoa-1">
<input>aero/alpha-deg-norm</input> <input>aero/alpha-deg-fixed</input>
<quantization name="/systems/navigation/adr/output/aoa-1"> <quantization name="/systems/navigation/adr/output/aoa-1">
<bits>12</bits> <bits>12</bits>
<min>-180</min> <min>-180</min>
@ -60,7 +60,7 @@
</sensor> </sensor>
<sensor name="/systems/navigation/probes/aoa-2"> <sensor name="/systems/navigation/probes/aoa-2">
<input>aero/alpha-deg-norm</input> <input>aero/alpha-deg-fixed</input>
<quantization name="/systems/navigation/adr/output/aoa-2"> <quantization name="/systems/navigation/adr/output/aoa-2">
<bits>12</bits> <bits>12</bits>
<min>-180</min> <min>-180</min>
@ -69,7 +69,7 @@
</sensor> </sensor>
<sensor name="/systems/navigation/probes/aoa-3"> <sensor name="/systems/navigation/probes/aoa-3">
<input>aero/alpha-deg-norm</input> <input>aero/alpha-deg-fixed</input>
<quantization name="/systems/navigation/adr/output/aoa-3"> <quantization name="/systems/navigation/adr/output/aoa-3">
<bits>12</bits> <bits>12</bits>
<min>-180</min> <min>-180</min>

View file

@ -70,12 +70,25 @@
</test> </test>
</switch> </switch>
<fcs_function name="fbw/stall-alpha-deg">
<function>
<table>
<independentVar lookup="row">atmosphere/density-altitude</independentVar>
<tableData>
0 15.5
43000 8.3
</tableData>
</table>
</function>
</fcs_function>
<switch name="fbw/protections/overspeed"> <switch name="fbw/protections/overspeed">
<default value="fbw/protections/overspeed"/> <default value="fbw/protections/overspeed"/>
<test logic="OR" value="0"> <test logic="OR" value="0">
position/wow eq 1 position/wow eq 1
/it-fbw/law ne 0 /it-fbw/law ne 0
/instrumentation/airspeed-indicator/indicated-speed-kt le /FMGC/internal/vmo-mmo /instrumentation/airspeed-indicator/indicated-speed-kt le /FMGC/internal/vmo-mmo
aero/alpha-deg-damped ge fbw/stall-alpha-deg
</test> </test>
<test value="1"> <test value="1">
/instrumentation/airspeed-indicator/indicated-speed-kt ge /FMGC/internal/vmo-mmo-plus-6 /instrumentation/airspeed-indicator/indicated-speed-kt ge /FMGC/internal/vmo-mmo-plus-6

View file

@ -142,7 +142,7 @@
<scheduled_gain name="/systems/hydraulic/sources/rat/rat-airspeed-cmd"> <scheduled_gain name="/systems/hydraulic/sources/rat/rat-airspeed-cmd">
<input>velocities/vc-kts</input> <input>velocities/vc-kts</input>
<table> <table>
<independentVar lookup="row">aero/alpha-deg-norm</independentVar> <independentVar lookup="row">aero/alpha-deg-fixed</independentVar>
<tableData> <tableData>
-60 0 -60 0
0 1 0 1

View file

@ -7,7 +7,7 @@
<channel name="FDM Rate Libraries"> <channel name="FDM Rate Libraries">
<switch name="aero/alpha-deg-norm"> <switch name="aero/alpha-deg-fixed">
<default value="0"/> <default value="0"/>
<test value="aero/alpha-deg"> <test value="aero/alpha-deg">
gear/unit[0]/WOW eq 0 gear/unit[0]/WOW eq 0
@ -15,7 +15,7 @@
</switch> </switch>
<lag_filter name="aero/alpha-deg-damped"> <lag_filter name="aero/alpha-deg-damped">
<input>aero/alpha-deg-norm</input> <input>aero/alpha-deg-fixed</input>
<c1>10</c1> <c1>10</c1>
</lag_filter> </lag_filter>

View file

@ -242,7 +242,6 @@
<test logic="AND" value="hydraulics/spoiler-l2/retracted"> <test logic="AND" value="hydraulics/spoiler-l2/retracted">
/systems/hydraulic/yellow-psi ge 1500 /systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoilers/spoiler-l2 eq 0 /systems/failures/spoilers/spoiler-l2 eq 0
spoilers/main-cmd eq 0
</test> </test>
<clipto> <clipto>
<min>0.0</min> <min>0.0</min>
@ -338,7 +337,6 @@
<test logic="AND" value="hydraulics/spoiler-l3/retracted"> <test logic="AND" value="hydraulics/spoiler-l3/retracted">
/systems/hydraulic/blue-psi ge 1500 /systems/hydraulic/blue-psi ge 1500
/systems/failures/spoilers/spoiler-l3 eq 0 /systems/failures/spoilers/spoiler-l3 eq 0
spoilers/main-cmd eq 0
</test> </test>
<clipto> <clipto>
<min>0.0</min> <min>0.0</min>
@ -434,7 +432,6 @@
<test logic="AND" value="hydraulics/spoiler-l4/retracted"> <test logic="AND" value="hydraulics/spoiler-l4/retracted">
/systems/hydraulic/yellow-psi ge 1500 /systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoilers/spoiler-l4 eq 0 /systems/failures/spoilers/spoiler-l4 eq 0
spoilers/main-cmd eq 0
</test> </test>
<clipto> <clipto>
<min>0.0</min> <min>0.0</min>
@ -506,7 +503,6 @@
<test logic="AND" value="hydraulics/spoiler-l5/retracted"> <test logic="AND" value="hydraulics/spoiler-l5/retracted">
/systems/hydraulic/green-psi ge 1500 /systems/hydraulic/green-psi ge 1500
/systems/failures/spoilers/spoiler-l5 eq 0 /systems/failures/spoilers/spoiler-l5 eq 0
spoilers/main-cmd eq 0
</test> </test>
<clipto> <clipto>
<min>0.0</min> <min>0.0</min>
@ -663,7 +659,6 @@
<test logic="AND" value="hydraulics/spoiler-r2/retracted"> <test logic="AND" value="hydraulics/spoiler-r2/retracted">
/systems/hydraulic/yellow-psi ge 1500 /systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoilers/spoiler-r2 eq 0 /systems/failures/spoilers/spoiler-r2 eq 0
spoilers/main-cmd eq 0
</test> </test>
<clipto> <clipto>
<min>0.0</min> <min>0.0</min>
@ -704,8 +699,8 @@
<table> <table>
<independentVar lookup="row">fbw/roll/s-r-3</independentVar> <independentVar lookup="row">fbw/roll/s-r-3</independentVar>
<tableData> <tableData>
0.0 0.0 -1.0 -0.7
1.0 -0.7 0.0 0.0
</tableData> </tableData>
</table> </table>
</sum> </sum>
@ -722,8 +717,8 @@
<table> <table>
<independentVar lookup="row">fbw/roll/s-r-3</independentVar> <independentVar lookup="row">fbw/roll/s-r-3</independentVar>
<tableData> <tableData>
0.0 0.0 -1.0 -0.7
1.0 -0.7 0.0 0.0
</tableData> </tableData>
</table> </table>
</sum> </sum>
@ -735,8 +730,8 @@
<table> <table>
<independentVar lookup="row">fbw/roll/s-r-3</independentVar> <independentVar lookup="row">fbw/roll/s-r-3</independentVar>
<tableData> <tableData>
0.0 0.0 0.0 0.0
1.0 0.7 1.0 0.7
</tableData> </tableData>
</table> </table>
</function> </function>
@ -759,7 +754,6 @@
<test logic="AND" value="hydraulics/spoiler-r3/retracted"> <test logic="AND" value="hydraulics/spoiler-r3/retracted">
/systems/hydraulic/blue-psi ge 1500 /systems/hydraulic/blue-psi ge 1500
/systems/failures/spoilers/spoiler-r3 eq 0 /systems/failures/spoilers/spoiler-r3 eq 0
spoilers/main-cmd eq 0
</test> </test>
<clipto> <clipto>
<min>0.0</min> <min>0.0</min>
@ -800,8 +794,8 @@
<table> <table>
<independentVar lookup="row">fbw/roll/s-r-4</independentVar> <independentVar lookup="row">fbw/roll/s-r-4</independentVar>
<tableData> <tableData>
0.0 0.0 -1.0 -0.7
1.0 -0.7 0.0 0.0
</tableData> </tableData>
</table> </table>
</sum> </sum>
@ -818,8 +812,8 @@
<table> <table>
<independentVar lookup="row">fbw/roll/s-r-4</independentVar> <independentVar lookup="row">fbw/roll/s-r-4</independentVar>
<tableData> <tableData>
0.0 0.0 -1.0 -0.7
1.0 -0.7 0.0 0.0
</tableData> </tableData>
</table> </table>
</sum> </sum>
@ -831,8 +825,8 @@
<table> <table>
<independentVar lookup="row">fbw/roll/s-r-4</independentVar> <independentVar lookup="row">fbw/roll/s-r-4</independentVar>
<tableData> <tableData>
0.0 0.0 0.0 0.0
1.0 0.7 1.0 0.7
</tableData> </tableData>
</table> </table>
</function> </function>
@ -855,7 +849,6 @@
<test logic="AND" value="hydraulics/spoiler-r4/retracted"> <test logic="AND" value="hydraulics/spoiler-r4/retracted">
/systems/hydraulic/yellow-psi ge 1500 /systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoilers/spoiler-r4 eq 0 /systems/failures/spoilers/spoiler-r4 eq 0
spoilers/main-cmd eq 0
</test> </test>
<clipto> <clipto>
<min>0.0</min> <min>0.0</min>
@ -927,7 +920,6 @@
<test logic="AND" value="hydraulics/spoiler-r5/retracted"> <test logic="AND" value="hydraulics/spoiler-r5/retracted">
/systems/hydraulic/green-psi ge 1500 /systems/hydraulic/green-psi ge 1500
/systems/failures/spoilers/spoiler-r5 eq 0 /systems/failures/spoilers/spoiler-r5 eq 0
spoilers/main-cmd eq 0
</test> </test>
<clipto> <clipto>
<min>0.0</min> <min>0.0</min>

View file

@ -55,7 +55,7 @@
<entry><ind>1.00</ind><dep>0.010</dep></entry> <entry><ind>1.00</ind><dep>0.010</dep></entry>
</table> </table>
<table> <table>
<property>/fdm/jsbsim/aero/alpha-deg-norm</property> <property>/fdm/jsbsim/aero/alpha-deg-fixed</property>
<entry><ind> 0.0</ind><dep>0.00</dep></entry> <entry><ind> 0.0</ind><dep>0.00</dep></entry>
<entry><ind> 7.5</ind><dep>0.01</dep></entry> <entry><ind> 7.5</ind><dep>0.01</dep></entry>
<entry><ind>17.0</ind><dep>0.03</dep></entry> <entry><ind>17.0</ind><dep>0.03</dep></entry>