UNPKG

jsbsim.js

Version:

JSBSim flight dynamics model ported to JavaScript

1,738 lines (1,558 loc) 60.8 kB
<?xml version="1.0"?> <!-- $Id: Submarine_Scout.xml,v 1.10 2009/04/14 19:33:22 andgi Exp $ --> <!-- Submarine Scout airship flight model for JSBSim. Copyright (C) 2007 - 2009 Anders Gidenstam (anders(at)gidenstam.org) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --> <?xml-stylesheet type="text/xsl" href="http://jsbsim.sourceforge.net/JSBSim.xsl"?> <fdm_config name="SubmarineScout" version="2.0" release="ALPHA" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> <fileheader> <author>Anders Gidenstam</author> <email>anders at gidenstam dot org</email> <description>JSBSim model of a Submarine Scout Zero class airship.</description> <license licenseName="GPL" licenseURL="http://www.gnu.org/licenses/gpl.html"/> <filecreationdate>2007-02-11</filecreationdate> <version>$Id: Submarine_Scout.xml,v 1.10 2009/04/14 19:33:22 andgi Exp $</version> <reference refID="Freeman:1932:Akron" author="Hugh B. Freeman" title="Force Measurements on a 1/40-scale Model of the U.S. Airship ``Akron''; NACA Report #432" date="1932"/> <reference refID="Mowthrope:1998:Battlebags" author="Ces Mowthorpe" title="Battlebags British Airships of the First World War" date="1998"/> <reference refID="VentryKo:1982:AS" author="Lord Ventry and Eugene M. Kolesnik" title="Airship Saga; ISBN 0 7137 1001 2" date="1982"/> <reference refID="WD:1941:AATM" author="War Department" title="Airship Aerodynamics Technical Manual; TM 1-310; ISBN 1-4102-0614-9" date="1941"/> <reference refID="Whale:1919:BA" author="George Whale" title="British Airships: Past, Present and Future; http://www.gutenberg.org" date="1919"/> </fileheader> <!-- ==== Metrics =============================================================== --> <metrics> <documentation> NOTE: The center of the bow of the envelope is the origo of the body coordinate system. x/y/z = back/right/up </documentation> <documentation> According to [Whale:1919:BA] the horizontal and vertical fins of a S.S. B.E.2C ship were of the same size and measured 16' by 8'6" and the rudder/elevators measured 4' by 8'6" each. The vertical fin of a S.S. Zero might be longer. Total gas volume vol = 70000 ft^3 = 1982.2 m^3. Performance numbers from [Whale:1919:BA]: - Max speed - S.S. B.E.2C: 40 - 50.5 mph - S.S. Maurice Farman: "slightly slower" - S.S. Zero 45 mph - Endurance - S.S. Zero: expected 17 hours. Record: 50:55 </documentation> <documentation> From [AHT, http://www.aht.ndirect.co.uk/airships/Technical%20Spec/SSZ%20Airship.htm]: Envelope capacity 70,000 cubic feet Ballonets Ballonets (two) capacity 19,600 cubic feet Length 143 feet 5 inches Diameter 30 feet Height 46 feet Plane area (each) 110 square feet Car boat-shaped, streamlined,length 17 feet 6 inches Engine 75 hp Rolls Royce Propeller Four-bladed 9 feet diameter Petrol tanks (two) capacity ;120 (UK?) gallons total Water ballast capacity 26 gallons Gross lift 2.2 tons Disposable lift 0.6 tons Endurance at full speed 17 hours Top speed 53 mph Climb 1,200 feet per minute Turning circle 40 seconds minimum, 230 diameter </documentation> <wingarea unit="M2"> 65.0 </wingarea> <!-- Cross-sectional area.--> <wingspan unit="M"> 9.1 </wingspan> <!-- Envelope diameter. --> <chord unit="M"> 43.7 </chord> <!-- Envelope length. --> <htailarea unit="M2"> 25.27 </htailarea> <htailarm unit="M"> 12.15 </htailarm> <!-- From CG. --> <vtailarea unit="M2"> 12.64 </vtailarea> <vtailarm unit="M"> 12.15 </vtailarm> <!-- From CG. --> <!-- Total gas volume vol = 70000 ft^3 = 1982.2 m^3 --> <!-- Aerodynamic Reference Point. --> <location name="AERORP" unit="M"> <x> 20.0 </x> <y> 0.0 </y> <z> 0.0 </z> </location> <location name="EYEPOINT" unit="M"> <x> 16.1 </x> <y> 0.0 </y> <z> -6.4 </z> </location> <!-- Visual Reference Point --> <location name="VRP" unit="M"> <x> 13.7 </x> <y> 0.0 </y> <z> -6.85 </z> </location> </metrics> <!-- ==== Mass balance ========================================================= --> <mass_balance> <documentation> According to [VentryKo:1982:AS] the SS Zero class had a useful lift of 1344lbs (~610kg). Considering that the lift of 1 m^3 hydrogen approximately is 1 kg that leaves 1370kg of lift for the structure itself. </documentation> <emptywt unit="KG"> 300 </emptywt> <documentation> The empty weight is estimated to consist of: - The weight of the envelope, guesstimated to 300 kg. The car and engine will be added as point masses. </documentation> <documentation> % Very rough estimation model of the empty weight CG and inertia tensor. % Assume the empty weight of is to 100% a cylindrical shell. m = 300.0 % KG r = 4.5 % meter l = 43.7 % meter % Very rough estimate of center of gravity (based on the inertial estimate): CGx = 0 CGy = 0 CGz = 0 % Steiners theorem: % Ixx = \bar{Ixx} + m sqrt(\bar{y}^2 + \bar{z}^2) % Ixy = \bar{Ixy} + m \bar{x} \bar{y} % Very rough estimation model of Ixx, Iyy and Izz relative the CG. Ixx = m * r^2 Iyy = 1/2*m * r^2 + 1/12*m*l^2 Izz = 1/2*m * r^2 + 1/12*m*l^2 Ixy = 0 Ixz = 0 Iyz = 0 </documentation> <ixx unit="KG*M2"> 6075.0 </ixx> <iyy unit="KG*M2"> 50780.0 </iyy> <izz unit="KG*M2"> 50780.0 </izz> <ixy unit="KG*M2"> 0.0 </ixy> <ixz unit="KG*M2"> 0.0 </ixz> <iyz unit="KG*M2"> 0.0 </iyz> <location name="CG" unit="M"> <x> 21.850 </x> <y> 0.000 </y> <z> 0.000 </z> </location> <!-- === Ballast ================================================ --> <documentation> Ballast for a S.S. b.E.2C according to [Whale:1919:BA]: - Water ballast tank - Located immediatly behind pilot - Capacity 14 gallons. </documentation> <!-- Experimental ballast setup. --> <!-- Center ballast --> <pointmass name="Ballast_Center"> <!-- According to the AHT this should be max 100 kg --> <location unit="M"> <x> 17.22 </x> <y> 0.0 </y> <z> -7.20 </z> </location> <weight unit="KG"> 500 </weight> </pointmass> <!-- Ballast tanks for fine tuning the CG. These are controlled by the FCS. --> <!-- Forward ballast --> <pointmass name="Ballast_Forward"> <location unit="M"> <x> 0.0 </x> <y> 0.0 </y> <z> -1.0 </z> </location> <weight unit="KG"> 70 </weight> </pointmass> <!-- Aft ballast --> <pointmass type="Ballast_Aft"> <location unit="M"> <x> 43.7 </x> <y> 0.0 </y> <z> -1.0 </z> </location> <weight unit="KG"> 70 </weight> </pointmass> <!-- === Armament =============================================== --> <documentation> According to [VentryKo:1982:AS] page 44 these ships normally carried two 65lb bombs set as depth charges. </documentation> <pointmass name="Bomb1"> <weight unit="LBS"> 65.0 </weight> <location name="POINTMASS" unit="M"> <x> 17.00 </x> <y> -0.57 </y> <z> -7.35 </z> </location> </pointmass> <pointmass name="Bomb2"> <weight unit="LBS"> 65.0 </weight> <location name="POINTMASS" unit="M"> <x> 17.00 </x> <y> 0.57 </y> <z> -7.35 </z> </location> </pointmass> <!-- === Engine ================================================= --> <documentation> According to [Whale:1919:BA] the engine of a S.S. B.E.2C (also 75h.p. but air cooled) weighed 438lb. </documentation> <documentation> According to [VentryKo:1982:AS] the engine was a 75h.p. Rolls Royce engine. Guesstimated weight: 250 kg. </documentation> <pointmass name="Engine"> <weight unit="KG"> 250.0 </weight> <location name="POINTMASS" unit="M"> <x> 18.555 </x> <y> 0.0 </y> <z> -5.90 </z> </location> </pointmass> <!-- === Other point masses ===================================== --> <pointmass name="Crew 1 Observer"> <weight unit="KG"> 85.0 </weight> <location name="POINTMASS" unit="M"> <x> 14.9 </x> <y> 0.0 </y> <z> -6.85 </z> </location> </pointmass> <pointmass name="Crew 2 Pilot"> <weight unit="KG"> 85.0 </weight> <location name="POINTMASS" unit="M"> <x> 16.17 </x> <y> 0.0 </y> <z> -6.85 </z> </location> </pointmass> <pointmass name="Crew 3 Mechanic"> <weight unit="KG"> 85.0 </weight> <location name="POINTMASS" unit="M"> <x> 17.22 </x> <y> 0.0 </y> <z> -6.85 </z> </location> </pointmass> <pointmass name="Car"> <!-- Pure guess. More of the weight should be in the engine. --> <weight unit="KG"> 400.0 </weight> <location name="POINTMASS" unit="M"> <x> 16.72 </x> <y> 0.0 </y> <z> -7.20 </z> </location> </pointmass> </mass_balance> <!-- === Gas cell ============================================================== --> <buoyant_forces> <documentation> NOTE: The cell is placed based on the envelope centroid location as computed by BRLCAD. </documentation> <documentation> Envelope and gas control for a S.S. b.E.2C according to [Whale:1919:BA]: - Ripping panel at the top of the envelope towards the front - 14'5" by 8' - Nose stiffeners: 24 - 2 Ballonets - capacity 6,375 feet^3 each - automatic spring valves set to open at 25 - 28mm (of water I presume) - 2 gas valves one at the bottom and one at the top of the envelope - Bottom valve automatically opens at 30 - 35mm pressure. - Top valve is manual only (") </documentation> <documentation> Envelope and ballonet volumes according to [Mowthrope:1998:Battlebags]: - Envelope 70,000 feet^3 - 2 Ballonets 9,800 feet^3 each </documentation> <!-- Forward declaration of ballonet inflow properties --> <property value="0.0">ballonets/in-flow-ft3ps[0]</property> <property value="0.0">ballonets/in-flow-ft3ps[1]</property> <gas_cell type="HYDROGEN"> <location unit="M"> <x> 18.8 </x> <y> 0.0 </y> <z> 0.0 </z> </location> <x_radius unit="M"> 22.86 </x_radius> <y_radius unit="M"> 4.55 </y_radius> <z_radius unit="M"> 4.55 </z_radius> <max_overpressure unit="PA"> 340.0 </max_overpressure> <valve_coefficient unit="M4*SEC/KG"> 0.0075 </valve_coefficient> <fullness>0.90</fullness> <!-- heat exchange with the environment. [lb ft / sec] --> <!-- Note: The surface area of an ellipsiod is approximately 4*pi*((a^p*b^p + a^p*c^p + b^p*c^p)/3)^(1/p) where p=1.6075 --> <heat> <!-- Heat transfer due to temperature difference. --> <function name="buoyant_forces/gas-cell/dU_conduction"> <product> <value> 11186.0 </value> <!-- Surface area [ft2] --> <value> 0.05 </value> <!-- Conductivity [lb / (K ft sec)] (Guess) --> <difference> <property> atmosphere/T-R </property> <property> buoyant_forces/gas-cell/temp-R </property> </difference> </product> </function> <function name="buoyant_forces/gas-cell/dU_radiation"> <product> <value> 0.1714e-8 </value> <!-- Stefan-Boltzmann's constant [Btu / (h ft^2 R^4)] --> <value> 0.2 </value> <!-- Emissivity [0,1] (Guess) --> <value> 11186.0 </value> <!-- Surface area [ft2] --> <difference> <pow> <property> atmosphere/T-R </property> <value> 4.0 </value> </pow> <pow> <property> buoyant_forces/gas-cell/temp-R </property> <value> 4.0 </value> </pow> </difference> </product> </function> </heat> <!-- Forward ballonet --> <ballonet type="AIR"> <location unit="M"> <x> 8.8 </x> <y> 0.0 </y> <z> -3.1 </z> </location> <x_radius unit="M"> 6.45 </x_radius> <y_radius unit="M"> 3.00 </y_radius> <z_radius unit="M"> 2.23 </z_radius> <max_overpressure unit="PA"> 255.0 </max_overpressure> <valve_coefficient unit="M4*SEC/KG"> 0.01 </valve_coefficient> <fullness>0.5</fullness> <heat> <!-- Heat transfer due to temperature difference. --> <function name="buoyant_forces/gas-cell/ballonet[0]/dU_conduction"> <product> <value> 5916.06 </value> <!-- Surface area [ft2] --> <value> 0.05 </value> <!-- Conductivity [lb / (K ft sec)] (Guess) --> <difference> <property> buoyant_forces/gas-cell/temp-R </property> <property> buoyant_forces/gas-cell/ballonet[0]/temp-R </property> </difference> </product> </function> <function name="buoyant_forces/gas-cell/ballonet[0]/dU_radiation"> <product> <value> 0.1714e-8 </value> <!-- Stefan-Boltzmann's constant [Btu / (h ft^2 R^4)] --> <value> 0.2 </value> <!-- Emissivity [0,1] (Guess) --> <value> 5916.06 </value> <!-- Surface area [ft2] --> <difference> <pow> <property> buoyant_forces/gas-cell/temp-R </property> <value> 4.0 </value> </pow> <pow> <property> buoyant_forces/gas-cell/ballonet[0]/temp-R </property> <value> 4.0 </value> </pow> </difference> </product> </function> </heat> <blower_input> <function name="buoyant_forces/gas-cell/ballonet[0]/in-flow-ft3ps"> <property>ballonets/in-flow-ft3ps[0]</property> </function> </blower_input> </ballonet> <!-- Aft ballonet --> <ballonet type="AIR"> <location unit="M"> <x> 34.0 </x> <y> 0.0 </y> <z> -2.0 </z> </location> <x_radius unit="M"> 7.55 </x_radius> <y_radius unit="M"> 2.85 </y_radius> <z_radius unit="M"> 2.00 </z_radius> <max_overpressure unit="PA"> 250.0 </max_overpressure> <valve_coefficient unit="M4*SEC/KG"> 0.01 </valve_coefficient> <fullness>0.5</fullness> <heat> <!-- Heat transfer due to temperature difference. --> <function name="buoyant_forces/gas-cell/ballonet[1]/dU_conduction"> <product> <value> 6557.48 </value> <!-- Surface area [ft2] --> <value> 0.05 </value> <!-- Conductivity [lb / (K ft sec)] (Guess) --> <difference> <property> buoyant_forces/gas-cell/temp-R </property> <property> buoyant_forces/gas-cell/ballonet[1]/temp-R </property> </difference> </product> </function> <function name="buoyant_forces/gas-cell/ballonet[1]/dU_radiation"> <product> <value> 0.1714e-8 </value> <!-- Stefan-Boltzmann's constant [Btu / (h ft^2 R^4)] --> <value> 0.2 </value> <!-- Emissivity [0,1] (Guess) --> <value> 6557.48 </value> <!-- Surface area [ft2] --> <difference> <pow> <property> buoyant_forces/gas-cell/temp-R </property> <value> 4.0 </value> </pow> <pow> <property> buoyant_forces/gas-cell/ballonet[1]/temp-R </property> <value> 4.0 </value> </pow> </difference> </product> </function> </heat> <blower_input> <function name="buoyant_forces/gas-cell/ballonet[1]/in-flow-ft3ps"> <property>ballonets/in-flow-ft3ps[1]</property> </function> </blower_input> </ballonet> </gas_cell> </buoyant_forces> <!-- ==== Ground reactions ====================================================== --> <ground_reactions> <!-- === Landing gears =================================================== --> <contact type="BOGEY" name="CAR_KEEL_FRONT"> <location unit="M"> <x> 14.7 </x> <y> 0.0 </y> <z> -8.2 </z> </location> <static_friction> 1.0 </static_friction> <dynamic_friction> 2.0 </dynamic_friction> <rolling_friction> 0.8 </rolling_friction> <spring_coeff unit="N/M"> 50000 </spring_coeff> <damping_coeff unit="N/M/SEC"> 10000 </damping_coeff> <max_steer unit="DEG"> 0.0 </max_steer> <brake_group> NONE </brake_group> <retractable>0</retractable> </contact> <contact type="BOGEY" name="CAR_KEEL_MIDDLE"> <location unit="M"> <x> 16.6 </x> <y> 0.0 </y> <z> -8.2 </z> </location> <static_friction> 1.0 </static_friction> <dynamic_friction> 2.0 </dynamic_friction> <rolling_friction> 0.8 </rolling_friction> <spring_coeff unit="N/M"> 50000 </spring_coeff> <damping_coeff unit="N/M/SEC"> 10000 </damping_coeff> <max_steer unit="DEG"> 0.0 </max_steer> <brake_group> NONE </brake_group> <retractable>0</retractable> </contact> <contact type="BOGEY" name="CAR_KEEL_AFT"> <location unit="M"> <x> 18.4 </x> <y> 0.0 </y> <z> -8.2 </z> </location> <static_friction> 1.0 </static_friction> <dynamic_friction> 2.0 </dynamic_friction> <rolling_friction> 0.8 </rolling_friction> <spring_coeff unit="N/M"> 50000 </spring_coeff> <damping_coeff unit="N/M/SEC"> 10000 </damping_coeff> <max_steer unit="DEG"> 0.0 </max_steer> <brake_group> NONE </brake_group> <retractable>0</retractable> </contact> <!-- === Other contact points ============================================ --> <!-- These should induce structural failure. --> <contact type="STRUCTURE" name="NOSE"> <location unit="M"> <x> 0.0 </x> <y> 0.0 </y> <z> 0.0 </z> </location> <static_friction> 0.2 </static_friction> <dynamic_friction> 0.2 </dynamic_friction> <rolling_friction> 0.2 </rolling_friction> <spring_coeff unit="N/M"> 100000 </spring_coeff> <damping_coeff unit="N/M/SEC"> 20000 </damping_coeff> <max_steer unit="DEG"> 0.0 </max_steer> <brake_group> NONE </brake_group> <retractable>0</retractable> </contact> <contact type="STRUCTURE" name="TAIL"> <location unit="M"> <x> 43.7 </x> <y> 0.0 </y> <z> 0.0 </z> </location> <static_friction> 0.2 </static_friction> <dynamic_friction> 0.2 </dynamic_friction> <rolling_friction> 0.2 </rolling_friction> <spring_coeff unit="N/M"> 100000 </spring_coeff> <damping_coeff unit="N/M/SEC"> 20000 </damping_coeff> <max_steer unit="DEG"> 0.0 </max_steer> <brake_group> NONE </brake_group> <retractable>0</retractable> </contact> <contact type="STRUCTURE" name="TAIL_FIN"> <location unit="M"> <x> 35.6 </x> <y> 0.0 </y> <z> -5.6 </z> </location> <static_friction> 0.2 </static_friction> <dynamic_friction> 0.2 </dynamic_friction> <rolling_friction> 0.2 </rolling_friction> <spring_coeff unit="N/M"> 100000 </spring_coeff> <damping_coeff unit="N/M/SEC"> 20000 </damping_coeff> <max_steer unit="DEG"> 0.0 </max_steer> <brake_group> NONE </brake_group> <retractable>0</retractable> </contact> <contact type="BOGEY" name="CAR_FRONT"> <location unit="M"> <x> 13.7 </x> <y> 0.0 </y> <z> -6.85 </z> </location> <static_friction> 0.5 </static_friction> <dynamic_friction> 0.5 </dynamic_friction> <rolling_friction> 0.5 </rolling_friction> <spring_coeff unit="N/M"> 25000 </spring_coeff> <damping_coeff unit="N/M/SEC"> 10000 </damping_coeff> <max_steer unit="DEG"> 0.0 </max_steer> <brake_group> NONE </brake_group> <retractable>0</retractable> </contact> </ground_reactions> <!-- ==== Propulsion ============================================================ --> <propulsion> <!-- === Engine ================================================ --> <documentation> Propulsion installation information for S.S. Zero from [Whale:1919:BA]: - Water-cooled Rolls Royce - 75hp - 4 bladed pusher propeller. - 9 foot diameter according to [AHT, www.aht.ndirect.co.uk]. - Weight? S.S. B.E.2C: 438 lb. - Petrol tanks. - "The petrol is carried in aluminium tanks slung on the axis of the envelope, identically with the system in use on the S.S.P's." What axis? Photos indicate one on each side of the envelope roughly above the engine. - Capacity? S.S. B.E.2C: 60 (UK?) gallons. - 2 tanks. Total capacity 120 (UK?) gallons [AHT, www.aht.ndirect.co.uk]. - 2, 4 or 6 tanks for S.S.Zero [Mowthrope:1998:Battlebags] (a 60 gal UK?) </documentation> <documentation> According to [VentryKo:1982:AS] the engine was a 75h.p. Rolls Royce engine. </documentation> <!-- Engine --> <engine file="eng_RRhawk"> <location unit="M"> <x> 19.2 </x> <y> 0.0 </y> <z> -6.0 </z> </location> <orient unit="DEG"> <roll> 0.0 </roll> <pitch> 0 </pitch> <yaw> 0 </yaw> </orient> <feed>0</feed> <feed>1</feed> <thruster file="prop_SSZ"> <location unit="M"> <x> 19.2 </x> <y> 0.0 </y> <z> -6.0 </z> </location> <orient unit="DEG"> <roll> 0.0 </roll> <pitch> 0.0 </pitch> <yaw> 0.0 </yaw> </orient> </thruster> </engine> <!-- === Fuel tanks ============================================ --> <tank type="FUEL"> <location unit="M"> <x> 17.26 </x> <y> -4.50 </y> <z> 0.0 </z> </location> <!-- 196.39 kg for 60 UK gallon at AVGAS density 0.72 kg/liter. --> <capacity unit="KG"> 196.39 </capacity> <contents unit="KG"> 196.39 </contents> </tank> <tank type="FUEL"> <location unit="M"> <x> 17.26 </x> <y> 4.50 </y> <z> 0.0 </z> </location> <!-- 196.39 kg for 60 UK gallon at AVGAS density 0.72 kg/liter. --> <capacity unit="KG"> 196.39 </capacity> <contents unit="KG"> 196.39 </contents> </tank> </propulsion> <!-- ==== Instrumentation ======================================================= --> <system name="Instrumentation"> <documentation> Instrumentation for a S.S. b.E.2C according to [Whale:1919:BA]: Pilot: - watch - air-speed indicator graduated in knots - aneroid (pressure altimeter?) reading to 10,000 feet. - Elliot revolution counter (tachometer?) - Clift inclinometer reading up to 20 degrees depression or elevation. - map case - oil pressure gauge - petrol pressure gauge - glass petrol level - two concentric glass pressure gauges for gas pressure - Compass mounted on a small wooden pedestal in front of the pilot. - Controls: - rudder pedals - elevator wheel mounted in a fore-aft direction across the seat (?) - Valve cord to top gas valve - Valve cords to the ballonet valves(?) - Rip cord Observer/Wireless operator: - radio w. range up to 50-60 miles. - Lewis machine gun </documentation> <channel name="Instruments"> <fcs_function name="instrumentation/gas-pressure-psf[0]"> <function> <difference> <property> buoyant_forces/gas-cell/pressure-psf </property> <property> atmosphere/P-psf </property> </difference> </function> <output>/instrumentation/gas-manometer[0]/gas-pressure-psf</output> </fcs_function> <fcs_function name="instrumentation/gas-pressure-psf[1]"> <function> <difference> <property> buoyant_forces/gas-cell/pressure-psf </property> <property> atmosphere/P-psf </property> </difference> </function> <output>/instrumentation/gas-manometer[1]/gas-pressure-psf</output> </fcs_function> </channel> </system> <!-- ==== Flight control system ================================================= --> <system file="Submarine_Scout_crew_ap"> <limitation> The real aircraft did not have any autopilot. This autopilot is mostly intended for scripted flights in JSBSim/standalone. The autopilot is only minimally tuned. </limitation> </system> <system name="Ballonet and gas control"> <documentation> "Two ballonets are provided, one forward and one aft, the capacity of each being 6,375 cubic feet. The supply of air for filling these is taken from the propeller draught by a slanting aluminium tube to the underside of the envelope, where it meets a longitudinal fabric hose which connects the two ballonet air inlets. Non-return fabric valves known as crab-pots are fitted in this fabric hose on either side of their junction with the air scoop. Two automatic air valves are fitted to the underside of the envelope, one for each ballonet. The air pressure tends to open the valve instead of keeping it shut and to counteract this the spring of the valve is inside the envelope. The springs are set to open at a pressure of 25 to 28 mm." [Whale:1919:BA] on the S.S.B.E. 2C. "The valve cords are led to the pilot's seat through eyes attached to the envelope." [Whale:1919:BA] on the S.S.B.E. 2C. "Two gas valves are also fitted, one on the top of the envelope, the other at the bottom. The bottom gas valve spring is set to open at 30 to 35 mm. pressure, the top valve is hand controlled only." [Whale:1919:BA] on the S.S.B.E. 2C. "One ripping panel is fitted, which is situated on the top of the envelope towards the nose. It has a length of 14 feet 5 inches and a breadth of about 8 inches." [Whale:1919:BA] on the S.S.B.E. 2C. </documentation> <limitation> The slip stream pressure calculation does not take the direction of the relative wind into account. </limitation> <!-- Pilot inputs. --> <property value="0.0">fcs/gas-valve-cmd-norm[0]</property> <property value="0.0">fcs/ballonet-valve-cmd-norm[0]</property> <property value="0.0">fcs/ballonet-valve-cmd-norm[1]</property> <property value="0.0">fcs/rip-cord-cmd-norm</property> <channel name="Gas valve"> <switch name="fcs/ripped-sample-hold"> <default value="fcs/rip-cord-cmd-norm"/> <test logic="AND" value="fcs/ripped-sample-hold"> fcs/ripped-sample-hold GE 1.0 </test> </switch> <fcs_function name="fcs/gas-valve-pos-norm"> <function> <sum> <property>fcs/gas-valve-cmd-norm</property> <property>ap/gas-valve-cmd-norm</property> <product> <value>100.0</value> <property>fcs/ripped-sample-hold</property> </product> </sum> </function> <output>buoyant_forces/gas-cell/valve_open</output> </fcs_function> </channel> <channel name="Ballonet air supply"> <fcs_function name="ballonets/slip-stream-pressure-psf"> <function> <sum> <property>atmosphere/P-psf</property> <property>aero/qbar-psf</property> <quotient> <property>propulsion/engine/thrust-lbs</property> <value>63.62</value> <!-- Propeller disc area ft^2 --> </quotient> </sum> </function> </fcs_function> <fcs_function name="ballonets/crab-pot-valve-flow-ft3ps[0]"> <function> <product> <value>20.0</value> <!-- Inflow valve coefficient ft4*sec/slug --> <max> <value>0.0</value> <difference> <property>ballonets/slip-stream-pressure-psf</property> <property>buoyant_forces/gas-cell/ballonet[0]/pressure-psf</property> </difference> </max> </product> </function> <output>ballonets/in-flow-ft3ps[0]</output> </fcs_function> <fcs_function name="ballonets/crab-pot-valve-flow-ft3ps[1]"> <function> <product> <value>20.0</value> <!-- Inflow valve coefficient ft4*sec/slug --> <max> <value>0.0</value> <difference> <property>ballonets/slip-stream-pressure-psf</property> <property>buoyant_forces/gas-cell/ballonet[1]/pressure-psf</property> </difference> </max> </product> </function> <output>ballonets/in-flow-ft3ps[1]</output> </fcs_function> </channel> <channel name="Ballonet out-flow valves"> <fcs_function name="ballonets/valve-pos-norm[0]"> <function> <sum> <property>fcs/ballonet-valve-cmd-norm[0]</property> <property>ap/ballonet-valve-cmd-norm[0]</property> </sum> </function> <output>buoyant_forces/gas-cell/ballonet[0]/valve_open</output> </fcs_function> <fcs_function name="ballonets/valve-pos-norm[1]"> <function> <sum> <property>fcs/ballonet-valve-cmd-norm[1]</property> <property>ap/ballonet-valve-cmd-norm[1]</property> </sum> </function> <output>buoyant_forces/gas-cell/ballonet[1]/valve_open</output> </fcs_function> </channel> </system> <flight_control name="Aerodynamic controls"> <!-- === Pitch ================================================== --> <channel name="Pitch"> <summer name="fcs/pitch-trim-sum"> <input>fcs/elevator-cmd-norm</input> <input>fcs/pitch-trim-cmd-norm</input> <input>ap/elevator-cmd-norm</input> <clipto> <min>-1</min> <max>1</max> </clipto> </summer> <aerosurface_scale name="Elevator Control"> <input>fcs/pitch-trim-sum</input> <gain>0.5236</gain> <domain> <min>-1</min> <max>1</max> </domain> <range> <min>-0.5236</min> <max>0.5236</max> </range> <output>fcs/elevator-pos-rad</output> </aerosurface_scale> <aerosurface_scale name="Elevator Position Normalized"> <input>fcs/elevator-pos-rad</input> <gain>1.9099</gain> <domain> <min>-0.5236</min> <max>0.5236</max> </domain> <range> <min>-1</min> <max>1</max> </range> <output>fcs/elevator-pos-norm</output> </aerosurface_scale> </channel> <!-- === Yaw ==================================================== --> <channel name="Yaw"> <summer name="fcs/yaw-trim-sum"> <input>fcs/rudder-cmd-norm</input> <input>fcs/yaw-trim-cmd-norm</input> <input>ap/rudder-cmd-norm</input> <clipto> <min>-1</min> <max>1</max> </clipto> </summer> <aerosurface_scale name="Rudder Control"> <input>fcs/yaw-trim-sum</input> <gain>0.5236</gain> <domain> <min>-1</min> <max>1</max> </domain> <range> <min>-0.5236</min> <max>0.5236</max> </range> <output>fcs/rudder-pos-rad</output> </aerosurface_scale> <aerosurface_scale name="Rudder Position Normalized"> <input>fcs/rudder-pos-rad</input> <gain>1.9099</gain> <domain> <min>-0.5236</min> <max>0.5236</max> </domain> <range> <min>-1</min> <max>1</max> </range> <output>fcs/rudder-pos-norm</output> </aerosurface_scale> </channel> <!-- === Static Trim ============================================ --> <property value="0.65">fcs/static-trim-cmd-norm</property> <channel name="StaticTrim"> <!-- This is for fine-tuning the CoG. In-flight pitch trim was mainly handled by the ballonets. --> <summer name="fcs/static-trim-norm"> <input>fcs/static-trim-cmd-norm</input> <clipto> <min>0</min> <max>1</max> </clipto> </summer> <summer name="fcs/inverse-static-trim-norm"> <input>-fcs/static-trim-norm</input> <bias>1</bias> <clipto> <min>0</min> <max>1</max> </clipto> </summer> <aerosurface_scale name="Ballast Trim Fore"> <input>fcs/inverse-static-trim-norm</input> <domain> <min>0</min> <max>1</max> </domain> <range> <min>0</min> <max>320</max> </range> <output>inertia/pointmass-weight-lbs[1]</output> </aerosurface_scale> <aerosurface_scale name="Ballast Trim Aft"> <input>fcs/static-trim-norm</input> <domain> <min>0</min> <max>1</max> </domain> <range> <min>0</min> <max>320</max> </range> <output>inertia/pointmass-weight-lbs[2]</output> </aerosurface_scale> </channel> </flight_control> <!-- ==== Initial static condition weigh-off ==================================== --> <system name="Weigh_Off"> <channel name="Initial_Static_Weigh_Off"> <!-- The weight of inertia/pointmass-weight-lbs[0] is set from Nasal. --> <summer name="static-condition/net-lift-lbs"> <input> buoyant_forces/gas-cell[0]/buoyancy-lbs </input> <input> -inertia/weight-lbs </input> </summer> </channel> </system> <!-- ==== External reactions ==================================================== --> <external_reactions> <force name="added-mass-bx" frame="BODY"> <location unit="M"> <x> 20.0 </x> <y> 0.0 </y> <z> 0.0 </z> </location> <direction> <x> 1.0 </x> <y> 0.0 </y> <z> 0.0 </z> </direction> </force> <force name="added-mass-by" frame="BODY"> <location unit="M"> <x> 20.0 </x> <y> 0.0 </y> <z> 0.0 </z> </location> <direction> <x> 0.0 </x> <y> 1.0 </y> <z> 0.0 </z> </direction> </force> <force name="added-mass-bz" frame="BODY"> <location unit="M"> <x> 20.0 </x> <y> 0.0 </y> <z> 0.0 </z> </location> <direction> <x> 0.0 </x> <y> 0.0 </y> <z> 1.0 </z> </direction> </force> <force name="added-mass-pitch[0]" frame="BODY"> <location unit="M"> <x> 20.0 </x> <y> 0.0 </y> <z> -0.3048 </z> </location> <direction> <x> 1.0 </x> <y> 0.0 </y> <z> 0.0 </z> </direction> </force> <force name="added-mass-pitch[1]" frame="BODY"> <location unit="M"> <x> 20.0 </x> <y> 0.0 </y> <z> 0.3048 </z> </location> <direction> <x> 1.0 </x> <y> 0.0 </y> <z> 0.0 </z> </direction> </force> <force name="added-mass-yaw[0]" frame="BODY"> <location unit="M"> <x> 20.0 </x> <y> -0.3048 </y> <z> 0.0 </z> </location> <direction> <x> 1.0 </x> <y> 0.0 </y> <z> 0.0 </z> </direction> </force> <force name="added-mass-yaw[1]" frame="BODY"> <location unit="M"> <x> 20.0 </x> <y> 0.3048 </y> <z> 0.0 </z> </location> <direction> <x> 1.0 </x> <y> 0.0 </y> <z> 0.0 </z> </direction> </force> </external_reactions> <!-- ==== Aerodynamics ========================================================== --> <system name="Aerodynamic constants"> <!-- Aerodynamic constants. --> <property value="143.42"> aero/constants/length-ft </property> <property value="30.0"> aero/constants/diameter-ft </property> <property value="21469.3"> aero/constants/length-diameter-ft2 </property> <property value="70000"> aero/constants/volume-ft3 </property> <property value="1698.5"> aero/constants/volume-ft3_2_3 </property> <!-- Added mass constants. --> <property value="-0.06"> aero/constants/added-mass/k-axial </property> <property value="-0.89"> aero/constants/added-mass/k-traverse </property> <property value="-0.69"> aero/constants/added-mass/k-rotational </property> <property value="0.75"> aero/constants/added-mass/tweak-factor </property> </system> <system file="airship_added_mass"/> <aerodynamics> <!-- The envelope can be rigged at an angle to the car. --> <function name="aero/envelope-alpha-rad"> <sum> <product> <value> 1.00 </value> <!-- Envelope pitch offset deg w.r.t. car. --> <value> 0.017453293 </value> </product> <property> aero/alpha-rad </property> </sum> </function> <function name="aero/envelope-alpha-deg"> <product> <value> 57.29578 </value> <property> aero/envelope-alpha-rad </property> </product> </function> <!-- Relation between wind and body coordinate systems. --> <function name="aero/tmp/wx"> <product> <cos> <property> aero/envelope-alpha-rad </property> </cos> <cos> <property> aero/beta-rad </property> </cos> </product> </function> <function name="aero/tmp/wy"> <product> <cos> <property> aero/envelope-alpha-rad </property> </cos> <sin> <property> aero/beta-rad </property> </sin> </product> </function> <function name="aero/tmp/wz"> <sin> <property> aero/envelope-alpha-rad </property> </sin> </function> <function name="aero/tmp/h_wy_wz"> <pow> <sum> <pow> <property> aero/tmp/wy </property> <value>2.0</value> </pow> <pow> <property> aero/tmp/wz </property> <value>2.0</value> </pow> </sum> <value>0.5</value> </pow> </function> <!-- Effective angle between envelope and relative wind. --> <function name="aero/envelope-aoa-mag-rad"> <max> <value>0.0</value> <acos> <property> aero/tmp/wx </property> </acos> </max> </function> <function name="aero/envelope-aoa-mag-deg"> <product> <value> 57.29578 </value> <property> aero/envelope-aoa-mag-rad </property> </product> </function> <!-- === Forces ================================================= --> <function name="aero/force/L_env_aoa"> <description>Total_lift_force_from_envelope_due_to_aoa</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. C = L / (q * (vol)^(2/3)) --> <product> <property>aero/qbar-psf</property> <property>aero/constants/volume-ft3_2_3</property> <!-- Start CL_env --> <table> <independentVar lookup="row">aero/envelope-aoa-mag-deg</independentVar> <!-- Virtual wind-tunnel data computed with Gerris. --> <tableData> 0 0.000000 10 0.002911 20 0.007450 30 0.013047 45 0.016276 60 0.028917 75 0.028148 90 0.017636 105 -0.010199 120 -0.008625 135 -0.011184 150 -0.009168 165 -0.002132 180 0.000000 </tableData> </table> </product> </function> <!-- ================================================== --> <axis name="DRAG"> <function name="aero/force/D_env_aoa"> <description>Drag_from_envelope_due_to_angle_of_attack</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. CD = D / (q * (vol)^(2/3)) --> <!-- Note: This function accounts for drag due to both alpha and beta. --> <product> <property>aero/qbar-psf</property> <property>aero/constants/volume-ft3_2_3</property> <!-- Start CD --> <table> <independentVar lookup="row">aero/envelope-aoa-mag-deg</independentVar> <!-- Virtual wind-tunnel data computed with Gerris. --> <tableData> 0 0.0059211 10 0.0084486 20 0.0088926 30 0.0178950 45 0.0325350 60 0.0506840 75 0.0766400 90 0.0999370 105 0.0866310 120 0.0561820 135 0.0342520 150 0.0154610 165 0.0042752 180 0.0018604 </tableData> </table> </product> </function> <function name="aero/force/D_hfin_alpha"> <description>Drag_from_horizontal_fin_due_to_alpha</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. CD = D / (q * (vol)^(2/3)) --> <product> <property>aero/qbar-psf</property> <property>aero/constants/volume-ft3_2_3</property> <!-- Start CD --> <table> <independentVar lookup="row">aero/envelope-alpha-deg</independentVar> <!-- Virtual wind-tunnel data computed with Gerris. --> <tableData> -180 0.0016346 -165 0.0135650 -150 0.0745610 -135 0.1331500 -120 0.1771500 -105 0.2169500 -90 0.1910000 -75 0.2154000 -60 0.17049 -45 0.14314 -30 0.072847 -20 0.027739 -10 0.0089855 0 0.0010200 10 0.0089855 20 0.027739 30 0.072847 45 0.14314 60 0.17049 75 0.2154000 90 0.1910000 105 0.2169500 120 0.1771500 135 0.1331500 150 0.0745610 165 0.0135650 180 0.0016346 </tableData> </table> </product> </function> <function name="aero/force/D_de"> <description>Drag_due_to_elevator_deflection</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. CD = D / (q * (vol)^(2/3)) --> <product> <property>aero/qbar-psf</property> <property>aero/constants/volume-ft3_2_3</property> <!-- Start CD --> <value> 1.0 </value> <table> <independentVar lookup="row">fcs/elevator-pos-deg</independentVar> <!-- Virtual wind-tunnel data computed with Gerris. --> <tableData> -30 0.020407 0 0 30 0.020407 </tableData> </table> </product> </function> <function name="aero/force/D_vfin_beta"> <description>Drag_from_vertical_fin_due_to_beta</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. CD = D / (q * (vol)^(2/3)) --> <product> <property>aero/qbar-psf</property> <property>aero/constants/volume-ft3_2_3</property> <!-- Start CD --> <value> 1.0 </value> <!-- There is only one vertical fin as opposed to two horizontal ones, though twice as big. --> <table> <independentVar lookup="row">aero/beta-deg</independentVar> <!-- Virtual wind-tunnel data computed with Gerris. --> <tableData> -180 0.0016346 -165 0.0135650 -150 0.0745610 -135 0.1331500 -120 0.1771500 -105 0.2169500 -90 0.1910000 -75 0.2154000 -60 0.17049 -45 0.14314 -30 0.072847 -20 0.027739 -10 0.0089855 0 0.0010200 10 0.0089855 20 0.027739 30 0.072847 45 0.14314 60 0.17049 75 0.2154000 90 0.1910000 105 0.2169500 120 0.1771500 135 0.1331500 150 0.0745610 165 0.0135650 180 0.0016346 </tableData> </table> </product> </function> <function name="aero/force/D_dr"> <description>Drag_due_to_rudder_deflection</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. CD = D / (q * (vol)^(2/3)) --> <product> <property>aero/qbar-psf</property> <property>aero/constants/volume-ft3_2_3</property> <!-- Start CD --> <value> 1.0 </value> <table> <independentVar lookup="row">fcs/rudder-pos-deg</independentVar> <!-- Virtual wind-tunnel data computed with Gerris. --> <tableData> -30 0.020407 0 0 30 0.020407 </tableData> </table> </product> </function> <function name="aero/force/D_car"> <description>Drag_from_car_and_rigging</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. CD = D / (q * (vol)^(2/3)) --> <product> <property>aero/qbar-psf</property> <property>aero/constants/volume-ft3_2_3</property> <!-- Start CD --> <!-- According to [WD:1941:AATM] the envelope on a small non-rigid contributes approximately 35% to the total air resistance. I think they mean 'at zero alpha and beta'. --> <value> 1.6 </value> <value> 0.0059211 </value> </product> </function> </axis> <!-- ================================================== --> <axis name="SIDE"> <function name="aero/force/Y_env_beta"> <description>Side_force_from_envelope_due_to_beta</description> <product> <value> -1.0 </value> <!-- Note the sign! --> <property> aero/force/L_env_aoa </property> <quotient> <property> aero/tmp/wy </property> <max> <value> 0.00001 </value> <property> aero/tmp/h_wy_wz </property> </max> </quotient> </product> </function> <function name="aero/force/Y_vfin_beta"> <description>Side_force_from_vertical_fin_due_to_beta</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. CY = Y / (q * (vol)^(2/3)) --> <product> <property>aero/qbar-psf</property> <property>aero/constants/volume-ft3_2_3</property> <!-- Start CY --> <value> -1.0 </value> <!-- There is only one vertical fin as opposed to two horizontal ones, though twice as big. Tweaking needed. Note the sign! --> <table> <independentVar lookup="row">aero/beta-deg</independentVar> <!-- Virtual wind-tunnel data computed with Gerris. --> <tableData> -180 0.00000 -165 0.05372 -150 0.12950 -135 0.13525 -120 0.10292 -105 0.05388 -90 -0.00000 -75 -0.05502 -60 -0.098868 -45 -0.14402 -30 -0.12832 -20 -0.082526 -10 -0.035474 0 0.000000 10 0.035474 20 0.082526 30 0.12832 45 0.14402 60 0.098868 75 0.05502 90 0.00000 105 -0.05388 120 -0.10292 135 -0.13525 150 -0.12950 165 -0.05372 180 0.00000 </tableData> </table> </product> </function> <function name="aero/force/Y_dr"> <description>Side_force_due_to_rudder</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. CL = L / (q * (vol)^(2/3)) --> <product> <property>aero/qbar-psf</property> <property>aero/constants/volume-ft3_2_3</property> <!-- Start CL --> <value> 0.5 </value> <!-- The rudder is not adjusted yet. --> <table> <independentVar lookup="row">fcs/rudder-pos-deg</independentVar> <!-- Virtual wind-tunnel data computed with Gerris. --> <tableData> -30 -0.066622 0 0 30 0.066622 </tableData> </table> </product> </function> </axis> <!-- ================================================== --> <axis name="LIFT"> <function name="aero/force/L_env_alpha"> <description>Lift_from_envelope_due_to_alpha</description> <product> <property>aero/force/L_env_aoa</property> <quotient> <property> aero/tmp/wz </property> <max> <value> 0.00001 </value> <property> aero/tmp/h_wy_wz </property> </max> </quotient> </product> </function> <function name="aero/force/L_hfin_alpha"> <description>Lift_from_horizontal_fin_due_to_alpha</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. CL = L / (q * (vol)^(2/3)) --> <product> <property>aero/qbar-psf</property> <property>aero/constants/volume-ft3_2_3</property> <!-- Start CL --> <table> <independentVar lookup="row">aero/envelope-alpha-deg</independentVar> <!-- Virtual wind-tunnel data computed with Gerris. --> <tableData> -180 0.00000 -165 0.05372 -150 0.12950 -135 0.13525 -120 0.10292 -105 0.05388 -90 -0.00000 -75 -0.05502 -60 -0.098868 -45 -0.14402 -30 -0.12832 -20 -0.082526 -10 -0.035474 0 0.000000 10 0.035474 20 0.082526 30 0.12832 45 0.14402 60 0.098868 75 0.05502 90 0.00000 105 -0.05388 120 -0.10292 135 -0.13525 150 -0.12950 165 -0.05372 180 0.00000 </tableData> </table> </product> </function> <function name="aero/force/L_dr"> <description>Lift_due_to_elevator</description> <!-- Formulation based on NACA report 432 "Force measurements on a 1/40-scale model of the U.S. Airship Akron" by Hugh B. Freeman. CL = L / (q * (vol)^(2/3)) --> <p