FBW: Add Rudder Yaw Damper/Turn Coordinator, Make Alternate Law Roll Direct

This commit is contained in:
Joshua Davidson 2017-05-07 19:18:38 -04:00
parent cfd0093cb8
commit a3e13effe8
35 changed files with 692 additions and 33739 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 745 KiB

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

File diff suppressed because it is too large Load diff

View file

@ -1,10 +0,0 @@
<?xml version="1.0"?>
<PropertyList>
<path>../Models/cfm56.ac</path>
<offsets>
<x-m>0.941</x-m>
</offsets>
<!--texture-path>../Textures/Livery/House</texture-path-->
</PropertyList>

View file

@ -1,76 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<offsets>
<pitch-deg>2.2</pitch-deg>
</offsets>
<params>
<n1>engines/engine[0]/n1</n1>
<on-fire>engines/engine[0]/on-fire</on-fire>
<contrail>engines/engine[0]/contrail</contrail>
<reverser-pos-norm>engines/engine[0]/reverser-pos-norm</reverser-pos-norm>
<pylon-model-path>Aircraft/A320Family/Engines/XMLs/a320.pylon.cfm.left.xml</pylon-model-path>
</params>
<model>
<path alias="../../params/pylon-model-path" />
</model>
<model>
<path>Aircraft/A320Family/Engines/XMLs/a320.cfm.xml</path>
</model>
<model>
<path>Aircraft/A320Family/Engines/XMLs/a320.nacelle.cfm.xml</path>
<overlay>
<params>
<reverser-pos-norm alias="../../../../params/reverser-pos-norm" />
</params>
</overlay>
</model>
<model>
<name>Contrail</name>
<path>Aircraft/A320Family/XMLs/Effects/contrail.xml</path>
<overlay>
<params>
<contrail alias="../../../../params/contrail" />
</params>
</overlay>
<offsets>
<x-m>4.875</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
</model>
<model>
<name>Engine fire</name>
<path>Aircraft/A320Family/XMLs/Effects/enginefire.xml</path>
<offsets>
<x-m>2.774</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
<condition>
<property alias="../../../params/on-fire" />
</condition>
</model>
<animation>
<name>Fan</name>
<type>spin</type>
<object-name>blades</object-name>
<object-name>cone</object-name>
<factor>-67</factor>
<property alias="../../params/n1" />
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
</PropertyList>

View file

@ -1,76 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<offsets>
<pitch-deg>2.2</pitch-deg>
</offsets>
<params>
<n1>engines/engine[0]/n1</n1>
<on-fire>engines/engine[0]/on-fire</on-fire>
<contrail>engines/engine[0]/contrail</contrail>
<reverser-pos-norm>engines/engine[0]/reverser-pos-norm</reverser-pos-norm>
<pylon-model-path>Aircraft/A320Family/Engines/XMLs/a320.pylon.iae.left.xml</pylon-model-path>
</params>
<model>
<path alias="../../params/pylon-model-path" />
</model>
<model>
<path>Aircraft/A320Family/Engines/XMLs/a320.v2500.xml</path>
</model>
<model>
<path>Aircraft/A320Family/Engines/XMLs/a320.nacelle.iae.xml</path>
<overlay>
<params>
<reverser-pos-norm alias="../../../../params/reverser-pos-norm" />
</params>
</overlay>
</model>
<model>
<name>Contrail</name>
<path>Aircraft/A320Family/XMLs/Effects/contrail.xml</path>
<overlay>
<params>
<contrail alias="../../../../params/contrail" />
</params>
</overlay>
<offsets>
<x-m>5.137</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
</model>
<model>
<name>Engine fire</name>
<path>Aircraft/A320Family/XMLs/Effects/enginefire.xml</path>
<offsets>
<x-m>3.316</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</offsets>
<condition>
<property alias="../../../params/on-fire" />
</condition>
</model>
<animation>
<name>Fan</name>
<type>spin</type>
<object-name>cone</object-name>
<object-name>fan</object-name>
<factor>67</factor>
<property alias="../../params/n1" />
<axis>
<x>-1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
</PropertyList>

View file

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<path>../Models/a320.nacelle.cfm.ac</path>
<params>
<reverser-pos-norm>engines/engine[0]/reverser-pos-norm</reverser-pos-norm>
</params>
<!-- Reverse thrust animation -->
<animation>
<type>translate</type>
<object-name>Reverser</object-name>
<property alias="../../params/reverser-pos-norm" />
<factor>0.15</factor>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- Chrome shader -->
<animation>
<name>Chrome shader</name>
<type>shader</type>
<shader>chrome</shader>
<texture>../Models/chrome.png</texture>
<object-name>Nozzle</object-name>
</animation>
<!-- LIVERY SELECT -->
<!-- Animation -->
<animation>
<type>material</type>
<object-name>Intake</object-name>
<object-name>Nacelle</object-name>
<object-name>Reverser</object-name>
<property-base>sim/model/livery</property-base>
<texture-prop>texture-path[1]</texture-prop>
<texture>Liveries/A320-Blank.png</texture>
</animation>
<!-- Nasal code -->
<nasal>
<load>
var livery_update = aircraft.livery_update.new("Aircraft/A320Family/Models/Liveries/" ~ getprop("sim/aero"));
</load>
<unload>
livery_update.stop();
</unload>
</nasal>
</PropertyList>

View file

@ -1,56 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<path>../Models/a320.nacelle.iae.ac</path>
<params>
<reverser-pos-norm>engines/engine[0]/reverser-pos-norm</reverser-pos-norm>
</params>
<!-- Reverse thrust animation -->
<animation>
<type>translate</type>
<object-name>Reverser</object-name>
<object-name>Nozzle</object-name>
<property alias="../../params/reverser-pos-norm" />
<factor>0.25</factor>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<!-- Chrome shader -->
<animation>
<name>Chrome shader</name>
<type>shader</type>
<shader>chrome</shader>
<texture>../Models/chrome.png</texture>
<object-name>Nozzle</object-name>
</animation>
<!-- LIVERY SELECT -->
<!-- Animation -->
<animation>
<type>material</type>
<object-name>Intake</object-name>
<object-name>Nacelle</object-name>
<object-name>Reverser</object-name>
<property-base>sim/model/livery</property-base>
<texture-prop>texture-path[1]</texture-prop>
<texture>Liveries/A320-Blank.png</texture>
</animation>
<!-- Nasal code -->
<nasal>
<load>
var livery_update = aircraft.livery_update.new("Aircraft/A320Family/Models/Liveries/" ~ getprop("sim/aero"));
</load>
<unload>
livery_update.stop();
</unload>
</nasal>
</PropertyList>

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<path>../Models/a320.pylon.cfm.left.ac</path>
</PropertyList>

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<path>../Models/a320.pylon.cfm.right.ac</path>
</PropertyList>

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<path>../Models/a320.pylon.iae.left.ac</path>
</PropertyList>

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<PropertyList>
<path>../Models/a320.pylon.cfm.right.ac</path>
</PropertyList>

View file

@ -1,7 +0,0 @@
<?xml version="1.0"?>
<PropertyList>
<path>../Models/v2500.ac</path>
<!--texture-path>../Textures/Livery/House</texture-path-->
</PropertyList>

View file

@ -556,6 +556,11 @@
<binding>
<command>property-assign</command>
<property>/it-autoflight/input/vert</property>
<value>1</value>
</binding>
<binding>
<command>property-assign</command>
<property>/it-autoflight/input/vs</property>
<value>0</value>
</binding>
</action>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 551 KiB

After

Width:  |  Height:  |  Size: 551 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 KiB

After

Width:  |  Height:  |  Size: 586 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 MiB

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 KiB

After

Width:  |  Height:  |  Size: 437 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 KiB

After

Width:  |  Height:  |  Size: 247 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 KiB

After

Width:  |  Height:  |  Size: 288 KiB

View file

@ -4,13 +4,28 @@
# Speed or Mach?
var speedmach = func {
if ((getprop("/it-autoflight/output/vert") == 4) or (getprop("/it-autoflight/output/vert") == 6) or (getprop("/it-autoflight/output/vert") == 7)) {
# Do nothing because it's in FLCH mode.
} else {
if (getprop("/it-autoflight/input/kts-mach") == 0) {
setprop("/modes/pfd/fma/throttle-mode", "SPEED");
} else if (getprop("/it-autoflight/input/kts-mach") == 1) {
setprop("/modes/pfd/fma/throttle-mode", "MACH");
if (getprop("/it-autoflight/output/fd1") == 0 and getprop("/it-autoflight/output/fd2") == 0 and getprop("/it-autoflight/output/ap1") == 0 and getprop("/it-autoflight/output/ap2") == 0) {
speedmach_b();
} else {
var thr = getprop("/it-autoflight/output/thr-mode");
if (thr == 0) {
speedmach_b();
} else if (thr == 1) {
setprop("/modes/pfd/fma/throttle-mode", "THR IDLE");
} else if (thr == 2) {
setprop("/modes/pfd/fma/throttle-mode", "THR CLB");
}
}
} else {
speedmach_b();
}
}
var speedmach_b = func {
if (getprop("/it-autoflight/input/kts-mach") == 0) {
setprop("/modes/pfd/fma/throttle-mode", "SPEED");
} else if (getprop("/it-autoflight/input/kts-mach") == 1) {
setprop("/modes/pfd/fma/throttle-mode", "MACH");
}
}
@ -21,14 +36,7 @@ setlistener("/it-autoflight/input/kts-mach", func {
# Master Thrust
setlistener("/it-autoflight/output/thr-mode", func {
var thr = getprop("/it-autoflight/output/thr-mode");
if (thr == 0) {
speedmach();
} else if (thr == 1) {
setprop("/modes/pfd/fma/throttle-mode", "THR IDLE");
} else if (thr == 2) {
setprop("/modes/pfd/fma/throttle-mode", "THR CLB");
}
speedmach();
});
# Master Lateral
@ -171,9 +179,11 @@ setlistener("/it-autoflight/output/ap2", func {
ap();
});
setlistener("/it-autoflight/output/fd1", func {
speedmach();
fd();
});
setlistener("/it-autoflight/output/fd2", func {
speedmach();
fd();
});
setlistener("/it-autoflight/output/athr", func {

View file

@ -1,5 +1,5 @@
# Airbus A3XX FBW System by Joshua Davidson (it0uchpods)
# V0.9.7
# V0.9.7.1
###################
# Update Function #

View file

@ -9,356 +9,508 @@
<!-- Thrust Modes -->
<!-- =============================================================== -->
<!-- Engine 1 -->
<!-- Auto throttle -->
<pid-controller>
<name>IAS THR</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<property>/it-autoflight/input/spd-kts</property>
</reference>
<output>
<property>/controls/engines/engine[0]/throttle-cmd</property>
</output>
<config>
<Kp>0.1</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[0]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- Engine 1 -->
<!-- Auto throttle -->
<pid-controller>
<name>IAS THR</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>0</value>
</equals>
<or>
<and>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>0</value>
</equals>
</and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<property>/it-autoflight/input/spd-kts</property>
</reference>
<output>
<property>/controls/engines/engine[0]/throttle-cmd</property>
</output>
<config>
<Kp>0.1</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[0]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- Auto throttle (Mach Hold)-->
<!-- Auto throttle (Mach Hold)-->
<pid-controller>
<name>MACH THR</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/mach</property>
<scale>1000.0</scale>
</input>
<reference>
<property>/it-autoflight/input/spd-mach</property>
<scale>1000.0</scale>
</reference>
<output>
<property>/controls/engines/engine[0]/throttle-cmd</property>
</output>
<config>
<Kp>0.1</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[0]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- IDLE THR -->
<pid-controller>
<name>IDLE</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<value>0</value>
</reference>
<output>
<property>/controls/engines/engine[0]/throttle-cmd</property>
</output>
<config>
<Kp>0.01</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.08</u_min>
<u_max>
<property>/controls/engines/engine[0]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- CLB THR -->
<pid-controller>
<name>CLB</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<value>900</value>
</reference>
<output>
<property>/controls/engines/engine[0]/throttle-cmd</property>
</output>
<config>
<Kp>0.01</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[0]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- Engine 2 -->
<!-- Auto throttle -->
<pid-controller>
<name>IAS THR</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<property>/it-autoflight/input/spd-kts</property>
</reference>
<output>
<property>/controls/engines/engine[1]/throttle-cmd</property>
</output>
<config>
<Kp>0.1</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[1]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<pid-controller>
<name>MACH THR</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>1</value>
</equals>
<or>
<and>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>0</value>
</equals>
</and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/mach</property>
<scale>500.0</scale>
</input>
<reference>
<property>/it-autoflight/input/spd-mach</property>
<scale>500.0</scale>
</reference>
<output>
<property>/controls/engines/engine[0]/throttle-cmd</property>
</output>
<config>
<Kp>0.1</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[0]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- Auto throttle (Mach Hold)-->
<!-- IDLE THR -->
<pid-controller>
<name>IDLE</name>
<debug>false</debug>
<enable>
<condition>
<and>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
<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>/it-autoflight/output/thr-mode</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<value>0</value>
</reference>
<output>
<property>/controls/engines/engine[0]/throttle-cmd</property>
</output>
<config>
<Kp>0.01</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.04</u_min>
<u_max>
<property>/controls/engines/engine[0]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<pid-controller>
<name>MACH THR</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<!-- CLB THR -->
<pid-controller>
<name>CLB</name>
<debug>false</debug>
<enable>
<condition>
<and>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
<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>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<value>900</value>
</reference>
<output>
<property>/controls/engines/engine[0]/throttle-cmd</property>
</output>
<config>
<Kp>0.01</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[0]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- Engine 2 -->
<!-- Auto throttle -->
<pid-controller>
<name>IAS THR</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>0</value>
</equals>
<or>
<and>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>0</value>
</equals>
</and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<property>/it-autoflight/input/spd-kts</property>
</reference>
<output>
<property>/controls/engines/engine[1]/throttle-cmd</property>
</output>
<config>
<Kp>0.1</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[1]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- Auto throttle (Mach Hold)-->
<pid-controller>
<name>MACH THR</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>1</value>
</equals>
<or>
<and>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>0</value>
</equals>
</and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/mach</property>
<scale>500.0</scale>
</input>
<reference>
<property>/it-autoflight/input/spd-mach</property>
<scale>500.0</scale>
</reference>
<output>
<property>/controls/engines/engine[1]/throttle-cmd</property>
</output>
<config>
<Kp>0.1</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[1]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- IDLE THR -->
<pid-controller>
<name>IDLE</name>
<debug>false</debug>
<enable>
<condition>
<and>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
<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>/it-autoflight/output/thr-mode</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/mach</property>
<scale>1000.0</scale>
</input>
<reference>
<property>/it-autoflight/input/spd-mach</property>
<scale>1000.0</scale>
</reference>
<output>
<property>/controls/engines/engine[1]/throttle-cmd</property>
</output>
<config>
<Kp>0.1</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[1]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- IDLE THR -->
<pid-controller>
<name>IDLE</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<value>0</value>
</reference>
<output>
<property>/controls/engines/engine[1]/throttle-cmd</property>
</output>
<config>
<Kp>0.01</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.08</u_min>
<u_max>
<property>/controls/engines/engine[1]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- CLB THR -->
<pid-controller>
<name>CLB</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<value>900</value>
</reference>
<output>
<property>/controls/engines/engine[1]/throttle-cmd</property>
</output>
<config>
<Kp>0.01</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[1]/throttle-man</property>
</u_max>
</config>
</pid-controller>
</reference>
<output>
<property>/controls/engines/engine[1]/throttle-cmd</property>
</output>
<config>
<Kp>0.01</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.04</u_min>
<u_max>
<property>/controls/engines/engine[1]/throttle-man</property>
</u_max>
</config>
</pid-controller>
<!-- CLB THR -->
<pid-controller>
<name>CLB</name>
<debug>false</debug>
<enable>
<condition>
<and>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
<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>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
<input>
<property>/velocities/airspeed-kt</property>
</input>
<reference>
<value>900</value>
</reference>
<output>
<property>/controls/engines/engine[1]/throttle-cmd</property>
</output>
<config>
<Kp>0.01</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>
<property>/controls/engines/engine[1]/throttle-man</property>
</u_max>
</config>
</pid-controller>
</PropertyList>

View file

@ -549,7 +549,7 @@
</condition>
<expression>
<sum>
<property>/controls/flight/rudder</property>
<property>/controls/flight/rudder-fbw</property>
<property>/controls/flight/rudder-trim</property>
</sum>
</expression>

View file

@ -1,6 +1,7 @@
<?xml version="1.0"?>
<!-- Airbus A3XX FBW System by Joshua Davidson (it0uchpods) -->
<!-- For Roll, Pitch, and Yaw -->
<PropertyList>
@ -30,16 +31,10 @@
<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>
<equals>
<property>/it-fbw/law</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
@ -88,16 +83,10 @@
<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>
<equals>
<property>/it-fbw/law</property>
<value>0</value>
</equals>
</and>
</condition>
<property>/controls/flight/aileron-fbw-cmd</property>
@ -121,6 +110,10 @@
<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>
@ -446,5 +439,151 @@
<type>noise-spike</type>
<max-rate-of-change>0.01</max-rate-of-change>
</filter>
<!-- =============================================================== -->
<!-- Yaw Damper -->
<!-- =============================================================== -->
<pid-controller>
<name>IT-FBW: YAW</name>
<debug>false</debug>
<enable>
<condition>
<and>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>0</value>
</equals>
<equals>
<property>/gear/gear[1]/wow</property>
<value>0</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>0</value>
</equals>
<equals>
<property>/it-fbw/law</property>
<value>0</value>
</equals>
<greater-than-equals>
<property>/position/gear-agl-ft</property>
<value>50</value>
</greater-than-equals>
</and>
</condition>
</enable>
<input>
<property>/instrumentation/slip-skid-ball/indicated-slip-skid</property>
</input>
<reference>
<value>0</value>
</reference>
<output>
<property>/controls/flight/rudder-fbw-cmd</property>
</output>
<config>
<Kp>0.05</Kp>
<beta>1</beta>
<alpha>0.1</alpha>
<gamma>0</gamma>
<Ti>5.0</Ti>
<Td>0.00000001</Td>
<u_min>-0.2</u_min>
<u_max>0.2</u_max>
</config>
</pid-controller>
<filter>
<name>IT-FBW: RUDDER OPTION</name>
<debug>false</debug>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<input>
<condition>
<and>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>0</value>
</equals>
<equals>
<property>/gear/gear[1]/wow</property>
<value>0</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>0</value>
</equals>
<equals>
<property>/it-fbw/law</property>
<value>0</value>
</equals>
<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>
</and>
</condition>
<property>/controls/flight/rudder-fbw-cmd</property>
</input>
<input>
<condition>
<or>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>1</value>
</equals>
<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>
</or>
</condition>
<property>/controls/flight/rudder</property>
</input>
<output>/controls/flight/rudder-fbw</output>
<type>noise-spike</type>
<max-rate-of-change>10</max-rate-of-change>
</filter>
</PropertyList>

View file

@ -26,16 +26,10 @@
<property>/gear/gear[0]/wow</property>
<value>0</value>
</eq>
<or>
<eq>
<property>/it-fbw/law</property>
<value>0</value>
</eq>
<eq>
<property>/it-fbw/law</property>
<value>1</value>
</eq>
</or>
<eq>
<property>/it-fbw/law</property>
<value>0</value>
</eq>
</and>
<sum>
<property>/it-fbw/roll-deg</property>