diff --git a/A320-100-CFM.xml b/A320-100-CFM.xml index c2d553c8..754d9c0d 100644 --- a/A320-100-CFM.xml +++ b/A320-100-CFM.xml @@ -449,16 +449,14 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> </tank> </propulsion> - <system file="pushback" /> - <system file="fuel" /> - <system file="electrical" /> - <system file="glass-effect1" /> - <system file="fmgc" /> - <system file="a320-fcs" /> + <system file="pushback"/> + <system file="fuel"/> + <system file="glass-effect1"/> + <system file="a320-fcs"/> <flight_control name="none"/> - <aerodynamics file="Systems/a320-aerodynamics.xml" /> + <aerodynamics file="Systems/a320-aerodynamics.xml"/> <external_reactions> <force name="pushback" frame="BODY"> diff --git a/A320-200-CFM.xml b/A320-200-CFM.xml index 03ce5e2f..30c57093 100644 --- a/A320-200-CFM.xml +++ b/A320-200-CFM.xml @@ -449,16 +449,14 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> </tank> </propulsion> - <system file="pushback" /> - <system file="fuel" /> - <system file="electrical" /> - <system file="glass-effect1" /> - <system file="fmgc" /> - <system file="a320-fcs" /> + <system file="pushback"/> + <system file="fuel"/> + <system file="glass-effect1"/> + <system file="a320-fcs"/> <flight_control name="none"/> - <aerodynamics file="Systems/a320-aerodynamics.xml" /> + <aerodynamics file="Systems/a320-aerodynamics.xml"/> <external_reactions> <force name="pushback" frame="BODY"> diff --git a/A320-200-IAE.xml b/A320-200-IAE.xml index af135232..e75a5f6e 100644 --- a/A320-200-IAE.xml +++ b/A320-200-IAE.xml @@ -449,16 +449,14 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> </tank> </propulsion> - <system file="pushback" /> - <system file="fuel" /> - <system file="electrical" /> - <system file="glass-effect1" /> - <system file="fmgc" /> - <system file="a320-fcs" /> + <system file="pushback"/> + <system file="fuel"/> + <system file="glass-effect1"/> + <system file="a320-fcs"/> <flight_control name="none"/> - <aerodynamics file="Systems/a320-aerodynamics.xml" /> + <aerodynamics file="Systems/a320-aerodynamics.xml"/> <external_reactions> <force name="pushback" frame="BODY"> diff --git a/A320neo-CFM.xml b/A320neo-CFM.xml index 3a0cbc76..d7e063af 100644 --- a/A320neo-CFM.xml +++ b/A320neo-CFM.xml @@ -449,16 +449,14 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> </tank> </propulsion> - <system file="pushback" /> - <system file="fuel" /> - <system file="electrical" /> - <system file="glass-effect1" /> - <system file="fmgc" /> - <system file="a320-fcs" /> + <system file="pushback"/> + <system file="fuel"/> + <system file="glass-effect1"/> + <system file="a320-fcs"/> <flight_control name="none"/> - <aerodynamics file="Systems/a320-aerodynamics.xml" /> + <aerodynamics file="Systems/a320-aerodynamics.xml"/> <external_reactions> <force name="pushback" frame="BODY"> diff --git a/A320neo-PW.xml b/A320neo-PW.xml index d06dfd1a..02e096be 100644 --- a/A320neo-PW.xml +++ b/A320neo-PW.xml @@ -449,16 +449,14 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> </tank> </propulsion> - <system file="pushback" /> - <system file="fuel" /> - <system file="electrical" /> - <system file="glass-effect1" /> - <system file="fmgc" /> - <system file="a320-fcs" /> + <system file="pushback"/> + <system file="fuel"/> + <system file="glass-effect1"/> + <system file="a320-fcs"/> <flight_control name="none"/> - <aerodynamics file="Systems/a320-aerodynamics.xml" /> + <aerodynamics file="Systems/a320-aerodynamics.xml"/> <external_reactions> <force name="pushback" frame="BODY"> diff --git a/Models/Instruments/OHpanel/OHpanel.xml b/Models/Instruments/OHpanel/OHpanel.xml index 20e2c7a9..9372640b 100644 --- a/Models/Instruments/OHpanel/OHpanel.xml +++ b/Models/Instruments/OHpanel/OHpanel.xml @@ -2730,10 +2730,6 @@ <command>nasal</command> <script>setprop("/sim/sounde/oh-btn", 1);</script> </binding> - <binding> - <command>nasal</command> - <script>systems.fctlpoweruptest();</script> - </binding> </action> </animation> @@ -2795,10 +2791,6 @@ <command>nasal</command> <script>setprop("/sim/sounde/oh-btn", 1);</script> </binding> - <binding> - <command>nasal</command> - <script>systems.fctlpoweruptest();</script> - </binding> </action> </animation> diff --git a/Nasal/electrical.nas b/Nasal/electrical.nas index 0c2fbf16..a1970f7d 100644 --- a/Nasal/electrical.nas +++ b/Nasal/electrical.nas @@ -1,5 +1,6 @@ # A3XX Electrical System # Joshua Davidson (it0uchpods) and Jonathan Redpath (legoboyvdlp) +# Some parts are in JSBsim system! ############################################## # Copyright (c) Joshua Davidson (it0uchpods) # @@ -10,6 +11,7 @@ var ac_volt_min = 110; var dc_volt_std = 28; var dc_volt_min = 25; var dc_amps_std = 150; +var tr_amps_std = 55; var ac_hz_std = 400; var ac1_src = "XX"; var ac2_src = "XX"; @@ -131,39 +133,6 @@ var light = { } }; -var fctlpoweruptest = func { - if (getprop("/systems/electrical/battery-available") == 0 and (getprop("/controls/electrical/switches/battery1") == 1 or getprop("/controls/electrical/switches/battery2") == 1)) { - setprop("/systems/failures/elac1-fault", 1); - setprop("/systems/failures/sec1", 1); - setprop("/systems/electrical/battery-available", 1); - setprop("/systems/electrical/elac1-test", 1); - settimer(func(){ - setprop("/systems/failures/elac1-fault", 0); - setprop("/systems/electrical/elac1-test", 0); - },8); - settimer(func(){ - setprop("/systems/failures/sec1", 0); - },8.5); - } - - gen1_sw = getprop("/controls/electrical/switches/gen1"); - gen2_sw = getprop("/controls/electrical/switches/gen2"); - gen_apu_sw = getprop("/controls/electrical/switches/gen-apu"); - gen_ext_sw = getprop("/controls/electrical/switches/gen-ext"); - - if (getprop("/systems/electrical/dc2-available") == 0 and getprop("/systems/electrical/bus/dc2") > 25) { - setprop("/systems/failures/elac2-fault", 1); - setprop("/systems/electrical/dc2-available", 1); - setprop("/systems/electrical/elac2-test", 1); - settimer(func(){ - setprop("/systems/failures/elac2-fault", 0); - setprop("/systems/electrical/elac2-test", 0); - },8); - } -} - - - # Main Elec System var ELEC = { @@ -183,8 +152,8 @@ var ELEC = { setprop("/controls/electrical/switches/ac-ess-feed", 0); setprop("/controls/electrical/switches/battery1", 0); setprop("/controls/electrical/switches/battery2", 0); - setprop("/systems/electrical/battery1-volts", 25.9); - setprop("/systems/electrical/battery2-volts", 25.9); + setprop("/systems/electrical/battery1-volts", 26.5); + setprop("/systems/electrical/battery2-volts", 26.5); setprop("/systems/electrical/battery1-amps", 0); setprop("/systems/electrical/battery2-amps", 0); setprop("/systems/electrical/bus/dc1", 0); @@ -204,6 +173,12 @@ var ELEC = { setprop("/systems/electrical/extra/apu-volts", 0); setprop("/systems/electrical/extra/gen1-volts", 0); setprop("/systems/electrical/extra/gen2-volts", 0); + setprop("/systems/electrical/extra/gen1-load", 0); + setprop("/systems/electrical/extra/gen2-load", 0); + setprop("/systems/electrical/extra/tr1-volts", 0); + setprop("/systems/electrical/extra/tr2-volts", 0); + setprop("/systems/electrical/extra/tr1-amps", 0); + setprop("/systems/electrical/extra/tr2-amps", 0); setprop("/systems/electrical/extra/ext-hz", 0); setprop("/systems/electrical/extra/apu-hz", 0); setprop("/systems/electrical/extra/galleyshed", 0); @@ -329,6 +304,18 @@ var ELEC = { replay = getprop("/sim/replay/replay-state"); wow = getprop("/gear/gear[1]/wow"); + if (battery1_sw and !batt1_fail) { + setprop("/systems/electrical/battery1-amps", dc_amps_std); + } else { + setprop("/systems/electrical/battery1-amps", 0); + } + + if (battery2_sw and !batt2_fail) { + setprop("/systems/electrical/battery2-amps", dc_amps_std); + } else { + setprop("/systems/electrical/battery2-amps", 0); + } + if (getprop("/systems/electrical/battery1-amps") > 120 or getprop("/systems/electrical/battery2-amps") > 120) { setprop("/systems/electrical/bus/dcbat", dc_volt_std); } else { @@ -340,7 +327,7 @@ var ELEC = { } if (dc2 >= 25) { - fctlpoweruptest(); + setprop("/systems/electrical/dc2-available", 1); } else { setprop("/systems/electrical/dc2-available", 0); } @@ -392,55 +379,85 @@ var ELEC = { if (stateL == 3 and gen1_sw and !gen1_fail) { setprop("/systems/electrical/bus/dc1", dc_volt_std); setprop("/systems/electrical/bus/dc-ess", dc_volt_std); + setprop("/systems/electrical/extra/tr1-volts", dc_volt_std); setprop("/systems/electrical/bus/dc1-amps", dc_amps_std); + setprop("/systems/electrical/extra/tr1-amps", tr_amps_std); } else if (extpwr_on and gen_ext_sw and apu_ext_crosstie_sw) { setprop("/systems/electrical/bus/dc1", dc_volt_std); setprop("/systems/electrical/bus/dc-ess", dc_volt_std); + setprop("/systems/electrical/extra/tr1-volts", dc_volt_std); setprop("/systems/electrical/bus/dc1-amps", dc_amps_std); + setprop("/systems/electrical/extra/tr1-amps", tr_amps_std); } else if (gen_apu and !genapu_fail and apu_ext_crosstie_sw) { setprop("/systems/electrical/bus/dc1", dc_volt_std); setprop("/systems/electrical/bus/dc-ess", dc_volt_std); + setprop("/systems/electrical/extra/tr1-volts", dc_volt_std); setprop("/systems/electrical/bus/dc1-amps", dc_amps_std); + setprop("/systems/electrical/extra/tr1-amps", tr_amps_std); } else if (apu_ext_crosstie_sw == 1 and xtieL) { setprop("/systems/electrical/bus/dc1", dc_volt_std); setprop("/systems/electrical/bus/dc-ess", dc_volt_std); + setprop("/systems/electrical/extra/tr1-volts", dc_volt_std); setprop("/systems/electrical/bus/dc1-amps", dc_amps_std); + setprop("/systems/electrical/extra/tr1-amps", tr_amps_std); } else if (emergen) { setprop("/systems/electrical/bus/dc1", 0); setprop("/systems/electrical/bus/dc-ess", dc_volt_std); + setprop("/systems/electrical/extra/tr1-volts", 0); setprop("/systems/electrical/bus/dc1-amps", 0); + setprop("/systems/electrical/extra/tr1-amps", 0); } else if (dcbat and ias >= 50) { setprop("/systems/electrical/bus/dc1", 0); setprop("/systems/electrical/bus/dc-ess", dc_volt_std); + setprop("/systems/electrical/extra/tr1-volts", 0); setprop("/systems/electrical/bus/dc1-amps", 0); + setprop("/systems/electrical/extra/tr1-amps", 0); } else { setprop("/systems/electrical/bus/dc1", 0); + setprop("/systems/electrical/extra/tr1-volts", 0); setprop("/systems/electrical/bus/dc1-amps", 0); + setprop("/systems/electrical/extra/tr1-amps", 0); setprop("/systems/electrical/bus/dc-ess", 0); } # Right DC bus yes? if (stateR == 3 and gen2_sw and !gen2_fail) { setprop("/systems/electrical/bus/dc2", dc_volt_std); + setprop("/systems/electrical/extra/tr2-volts", dc_volt_std); setprop("/systems/electrical/bus/dc2-amps", dc_amps_std); + setprop("/systems/electrical/extra/tr2-amps", tr_amps_std); } else if (extpwr_on and gen_ext_sw and apu_ext_crosstie_sw) { setprop("/systems/electrical/bus/dc2", dc_volt_std); + + setprop("/systems/electrical/extra/tr2-volts", dc_volt_std); setprop("/systems/electrical/bus/dc2-amps", dc_amps_std); + setprop("/systems/electrical/extra/tr2-amps", tr_amps_std); } else if (gen_apu and !genapu_fail and apu_ext_crosstie_sw) { setprop("/systems/electrical/bus/dc2", dc_volt_std); + + setprop("/systems/electrical/extra/tr2-volts", dc_volt_std); setprop("/systems/electrical/bus/dc2-amps", dc_amps_std); + setprop("/systems/electrical/extra/tr2-amps", tr_amps_std); } else if (apu_ext_crosstie_sw == 1 and xtieR) { setprop("/systems/electrical/bus/dc2", dc_volt_std); + setprop("/systems/electrical/extra/tr2-volts", dc_volt_std); setprop("/systems/electrical/bus/dc2-amps", dc_amps_std); + setprop("/systems/electrical/extra/tr2-amps", tr_amps_std); } else if (emergen) { setprop("/systems/electrical/bus/dc2", 0); + setprop("/systems/electrical/extra/tr2-volts", 0); setprop("/systems/electrical/bus/dc2-amps", 0); + setprop("/systems/electrical/extra/tr2-amps", 0); } else if (dcbat and ias >= 50) { setprop("/systems/electrical/bus/dc2", 0); + setprop("/systems/electrical/extra/tr2-volts", 0); setprop("/systems/electrical/bus/dc2-amps", 0); + setprop("/systems/electrical/extra/tr2-amps", 0); } else { setprop("/systems/electrical/bus/dc2", 0); + setprop("/systems/electrical/extra/tr2-volts", 0); setprop("/systems/electrical/bus/dc2-amps", 0); + setprop("/systems/electrical/extra/tr2-amps", 0); } # Left AC bus yes? @@ -586,33 +603,33 @@ var ELEC = { dc2 = getprop("/systems/electrical/bus/dc2"); if (battery1_volts < 27.9 and (dc1 > 25 or dc2 > 25) and battery1_sw and !batt1_fail) { - decharge1.stop(); - charge1.start(); - } else if (battery1_volts == 27.9 and (dc1 > 25 or dc2 > 25) and battery1_sw and !batt1_fail) { - charge1.stop(); - decharge1.stop(); + if (getprop("/systems/electrical/battery1-time") + 60 < getprop("/sim/time/elapsed-sec")) { + setprop("/systems/electrical/battery1-volts", battery1_volts + 0.02877666); # Roughly 15mins to 25.9 + setprop("/systems/electrical/battery1-time", getprop("/sim/time/elapsed-sec")); + } } else if (battery1_sw and !batt1_fail) { - charge1.stop(); - decharge1.start(); + if (getprop("/systems/electrical/battery1-time") + 60 < getprop("/sim/time/elapsed-sec")) { + setprop("/systems/electrical/battery1-volts", battery1_volts - 0.01438833); # Roughly 30mins from 25.9 + setprop("/systems/electrical/battery1-time", getprop("/sim/time/elapsed-sec")); + } } else { - decharge1.stop(); - charge1.stop(); + setprop("/systems/electrical/battery1-time", getprop("/sim/time/elapsed-sec")); } if (battery2_volts < 27.9 and (dc1 > 25 or dc2 > 25) and battery2_sw and !batt2_fail) { - decharge2.stop(); - charge2.start(); - } else if (battery2_volts == 27.9 and (dc1 > 25 or dc2 > 25) and battery2_sw and !batt2_fail) { - charge2.stop(); - decharge2.stop(); + if (getprop("/systems/electrical/battery2-time") + 60 < getprop("/sim/time/elapsed-sec")) { + setprop("/systems/electrical/battery2-volts", battery2_volts + 0.02877666); # Roughly 15mins to 25.9 + setprop("/systems/electrical/battery2-time", getprop("/sim/time/elapsed-sec")); + } } else if (battery2_sw and !batt2_fail) { - charge2.stop(); - decharge2.start(); + if (getprop("/systems/electrical/battery2-time") + 60 < getprop("/sim/time/elapsed-sec")) { + setprop("/systems/electrical/battery2-volts", battery2_volts - 0.01438833); # Roughly 30mins from 25.9 + setprop("/systems/electrical/battery2-time", getprop("/sim/time/elapsed-sec")); + } } else { - decharge2.stop(); - charge2.stop(); + setprop("/systems/electrical/battery2-time", getprop("/sim/time/elapsed-sec")); } - + if (getprop("/systems/electrical/bus/ac-ess") < 110) { if (getprop("/it-autoflight/output/ap1") == 1) { setprop("/it-autoflight/input/ap1", 0); @@ -766,20 +783,3 @@ var ELEC = { } }, }; - -var charge1 = maketimer(6, func { - bat1_volts = getprop("/systems/electrical/battery1-volts"); - setprop("/systems/electrical/battery1-volts", bat1_volts + 0.1); -}); -var charge2 = maketimer(6, func { - bat2_volts = getprop("/systems/electrical/battery2-volts"); - setprop("/systems/electrical/battery2-volts", bat2_volts + 0.1); -}); -var decharge1 = maketimer(69, func { # interval is at 69 seconds, to allow about 30 min from 25.9 - bat1_volts = getprop("/systems/electrical/battery1-volts"); - setprop("/systems/electrical/battery1-volts", bat1_volts - 0.1); -}); -var decharge2 = maketimer(69, func { - bat2_volts = getprop("/systems/electrical/battery2-volts"); - setprop("/systems/electrical/battery2-volts", bat2_volts - 0.1); -}); \ No newline at end of file diff --git a/README.md b/README.md index 80d5e7d2..050f3f8f 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,4 @@ Present pack includes the following Airbus A320 Family variants: - A320-214 - A320-232 - A320-251N -- A320-271N - - -Thank you to: -Amanda Santos for the sound "botaodepressao", used for the overhead panel under the CC0 license: -https://freesound.org/people/amandasantos/sounds/392148/ \ No newline at end of file +- A320-271N \ No newline at end of file diff --git a/Systems/electrical.xml b/Systems/electrical.xml deleted file mode 100644 index c75f9c7d..00000000 --- a/Systems/electrical.xml +++ /dev/null @@ -1,40 +0,0 @@ -<!-- Airbus A320 Electrical --> - -<!-- -############################################## -# Copyright (c) Joshua Davidson (it0uchpods) # -############################################## ---> - -<system name="A320: Electrical"> - - <property>/controls/electrical/switches/battery1</property> - <property>/systems/failures/elec-batt1</property> - <property>/controls/electrical/switches/battery2</property> - <property>/systems/failures/elec-batt2</property> - - <channel name="Battery"> - - <switch name="electrical/battery-1"> - <default value="0"/> - <test logic="AND" value="150"> - /controls/electrical/switches/battery1 eq 1 - /systems/failures/elec-batt1 eq 0 - </test> - <delay type="time">0.85</delay> - <output>/systems/electrical/battery1-amps</output> - </switch> - - <switch name="electrical/battery-2"> - <default value="0"/> - <test logic="AND" value="150"> - /controls/electrical/switches/battery2 eq 1 - /systems/failures/elec-batt2 eq 0 - </test> - <delay type="time">0.85</delay> - <output>/systems/electrical/battery2-amps</output> - </switch> - - </channel> - -</system> diff --git a/Systems/fmgc.xml b/Systems/fmgc.xml deleted file mode 100644 index 3f76fe73..00000000 --- a/Systems/fmgc.xml +++ /dev/null @@ -1,29 +0,0 @@ -<!-- Airbus A3XX FMGC System by Joshua Davidson (it0uchpods) and Jonathan Redpath (legoboyvdlp) --> - -<!-- -############################################## -# Copyright (c) Joshua Davidson (it0uchpods) # -############################################## ---> - -<system name="fmgc"> - <property value="0">/FMGC/internal/greendot-kts</property> - - <channel name="GreenDot"> - <fcs_function name="/FMGC/internal/greendot-kts"> - <description>GreenDot</description> - <function> - <sum> - <product> - <product> - <property>/fdm/jsbsim/inertia/weight-lbs</property> - <value>0.000453592</value> - </product> - <v>2</v> - </product> - <v>85</v> - </sum> - </function> - </fcs_function> - </channel> -</system> diff --git a/THANKS.md b/THANKS.md new file mode 100644 index 00000000..64583373 --- /dev/null +++ b/THANKS.md @@ -0,0 +1,3 @@ +Thank you to: +Amanda Santos for the sound "botaodepressao", used for the overhead panel under the CC0 license: +https://freesound.org/people/amandasantos/sounds/392148/ \ No newline at end of file diff --git a/revision.txt b/revision.txt index 765bcc69..e102aea8 100644 --- a/revision.txt +++ b/revision.txt @@ -1 +1 @@ -4409 \ No newline at end of file +4410 \ No newline at end of file