You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
(64) |
May
(260) |
Jun
(65) |
Jul
(28) |
Aug
(13) |
Sep
(46) |
Oct
(55) |
Nov
(25) |
Dec
(57) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(97) |
Feb
(13) |
Mar
(90) |
Apr
(25) |
May
(97) |
Jun
(124) |
Jul
(39) |
Aug
(16) |
Sep
(62) |
Oct
(13) |
Nov
(32) |
Dec
(258) |
2006 |
Jan
(87) |
Feb
(67) |
Mar
(27) |
Apr
(19) |
May
(42) |
Jun
(12) |
Jul
(31) |
Aug
(51) |
Sep
(7) |
Oct
(4) |
Nov
(27) |
Dec
(6) |
2007 |
Jan
(23) |
Feb
(41) |
Mar
(6) |
Apr
(14) |
May
(31) |
Jun
(6) |
Jul
(9) |
Aug
(13) |
Sep
(41) |
Oct
(26) |
Nov
(13) |
Dec
(11) |
2008 |
Jan
(75) |
Feb
(24) |
Mar
(32) |
Apr
(103) |
May
(49) |
Jun
(15) |
Jul
(45) |
Aug
(61) |
Sep
(6) |
Oct
(12) |
Nov
(18) |
Dec
(32) |
2009 |
Jan
(77) |
Feb
(33) |
Mar
(33) |
Apr
(19) |
May
(52) |
Jun
(43) |
Jul
(14) |
Aug
(80) |
Sep
(32) |
Oct
(81) |
Nov
(20) |
Dec
(12) |
2010 |
Jan
(15) |
Feb
(50) |
Mar
(28) |
Apr
(49) |
May
(12) |
Jun
(19) |
Jul
(78) |
Aug
(49) |
Sep
(52) |
Oct
(22) |
Nov
(108) |
Dec
(33) |
2011 |
Jan
(47) |
Feb
(3) |
Mar
(7) |
Apr
(3) |
May
(7) |
Jun
(43) |
Jul
(80) |
Aug
(55) |
Sep
(34) |
Oct
(33) |
Nov
(33) |
Dec
(20) |
2012 |
Jan
(16) |
Feb
(18) |
Mar
(29) |
Apr
(26) |
May
(4) |
Jun
(5) |
Jul
(13) |
Aug
(14) |
Sep
(47) |
Oct
(29) |
Nov
(19) |
Dec
(66) |
2013 |
Jan
(55) |
Feb
(46) |
Mar
|
Apr
(1) |
May
|
Jun
(32) |
Jul
|
Aug
(1) |
Sep
(40) |
Oct
(3) |
Nov
(43) |
Dec
(26) |
2014 |
Jan
(63) |
Feb
(30) |
Mar
(2) |
Apr
(3) |
May
(51) |
Jun
(18) |
Jul
(4) |
Aug
(6) |
Sep
(10) |
Oct
|
Nov
(17) |
Dec
(3) |
2015 |
Jan
(13) |
Feb
(36) |
Mar
(12) |
Apr
(37) |
May
(8) |
Jun
|
Jul
(29) |
Aug
(23) |
Sep
(55) |
Oct
(82) |
Nov
(57) |
Dec
(72) |
2016 |
Jan
(61) |
Feb
(6) |
Mar
(1) |
Apr
(18) |
May
(59) |
Jun
(42) |
Jul
(24) |
Aug
(20) |
Sep
(6) |
Oct
|
Nov
(8) |
Dec
(1) |
2017 |
Jan
(2) |
Feb
(20) |
Mar
(14) |
Apr
(4) |
May
(9) |
Jun
(7) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Bertrand <bco...@us...> - 2016-07-10 09:06:11
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/L410 In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24735/aircraft/L410 Modified Files: reset00.xml Log Message: Modified the elevation to 2000 ft for the turboprop feature 'EnginePowerVC' to have a noticeable effect. Index: reset00.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/L410/reset00.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** reset00.xml 25 Jun 2016 17:45:42 -0000 1.2 --- reset00.xml 10 Jul 2016 09:06:08 -0000 1.3 *************** *** 14,18 **** <psi unit="DEG"> 0.0 </psi> <altitude unit="FT"> 7.1 </altitude> ! <elevation unit="FT"> 0.0 </elevation> <hwind> 0.0 </hwind> </initialize> --- 14,18 ---- <psi unit="DEG"> 0.0 </psi> <altitude unit="FT"> 7.1 </altitude> ! <elevation unit="FT"> 2000.0 </elevation> <hwind> 0.0 </hwind> </initialize> |
From: Bertrand <bco...@us...> - 2016-07-10 09:00:15
|
Update of /cvsroot/jsbsim/JSBSim/engine In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24411/engine Modified Files: engtm601.xml Log Message: Removed the obsolete no-op tag <idlefuelflow> Index: engtm601.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/engine/engtm601.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** engtm601.xml 4 Jun 2016 21:16:59 -0000 1.5 --- engtm601.xml 10 Jul 2016 09:00:12 -0000 1.6 *************** *** 32,36 **** <maxpower unit="HP"> 700.0 </maxpower> <psfc unit="LBS/HR/HP"> 0.669 </psfc> - <idlefuelflow> 50.0 </idlefuelflow> <n1idle_max_delay> 1 </n1idle_max_delay> <maxstartingtime> 20 </maxstartingtime> --- 32,35 ---- |
From: Bertrand <bco...@us...> - 2016-07-09 11:37:10
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv26057/tests Modified Files: TestKinematic.py Log Message: Added tests to check the <noscale/> feature as well as the setting of an initial value for the kinematic component. Index: TestKinematic.py =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/TestKinematic.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** TestKinematic.py 12 Jun 2016 14:39:51 -0000 1.1 --- TestKinematic.py 9 Jul 2016 11:37:07 -0000 1.2 *************** *** 19,23 **** # ! from JSBSim_utils import JSBSimTestCase, CreateFDM, RunTest --- 19,24 ---- # ! import xml.etree.ElementTree as et ! from JSBSim_utils import JSBSimTestCase, CreateFDM, RunTest, CopyAircraftDef, ExecuteUntil *************** *** 100,102 **** --- 101,146 ---- fdm['simulation/do_simple_trim'] = 2 # Ground trim + # Check that the gear is down after the trim as requested by + # gear/gear-cmd-norm + self.assertAlmostEqual(fdm['gear/gear-pos-norm'], 1.0) + + # Check that the gear is not moving to another position after trim. + fdm.run() + self.assertAlmostEqual(fdm['gear/gear-pos-norm'], 1.0) + + def testKinematicSetInitialValue(self): + fdm = CreateFDM(self.sandbox) + fdm.load_model('p51d') + fdm.load_ic(self.sandbox.path_to_jsbsim_file('aircraft', 'p51d', + 'reset01'), False) + fdm.run_ic() + + fdm['gear/gear-cmd-norm'] = 0.5 + fdm['gear/gear-pos-norm'] = 0.5 + + while fdm['simulation/sim-time-sec'] < 1.0: + fdm.run() + self.assertAlmostEqual(fdm['gear/gear-cmd-norm'], 0.5) + self.assertAlmostEqual(fdm['gear/gear-pos-norm'], 0.5) + + def testKinematicNoScale(self): + # Test the <nocale/> feature + script_path = self.sandbox.path_to_jsbsim_file('scripts', 'c1721.xml') + tree, aircraft_name, b = CopyAircraftDef(script_path, self.sandbox) + kinematic_tag = tree.getroot().find('flight_control/channel/kinematic') + et.SubElement(kinematic_tag, 'noscale') + tree.write(self.sandbox('aircraft', aircraft_name, + aircraft_name+'.xml')) + + fdm = CreateFDM(self.sandbox) + fdm.set_aircraft_path('aircraft') + fdm.load_model(aircraft_name) + + fdm.load_ic(self.sandbox.path_to_jsbsim_file('aircraft', aircraft_name, + 'reset00'), False) + fdm.run_ic() + fdm['fcs/flap-cmd-norm'] = 12. + ExecuteUntil(fdm, 2.2) + self.assertAlmostEqual(fdm['fcs/flap-pos-deg'], 12.) + RunTest(TestKinematic) |
From: Bertrand <bco...@us...> - 2016-07-09 11:35:42
|
Update of /cvsroot/jsbsim/JSBSim/src/models/flight_control In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv25969/src/models/flight_control Modified Files: FGKinemat.h Log Message: Added a description of the <noscale/> option to the kinematic component documentation Index: FGKinemat.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/flight_control/FGKinemat.h,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** FGKinemat.h 12 Jun 2016 14:47:46 -0000 1.12 --- FGKinemat.h 9 Jul 2016 11:35:39 -0000 1.13 *************** *** 57,68 **** %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ ! /** Encapsulates a kinematic (mechanical) component for the flight control system. ! This component models the action of a moving effector, such as an aerosurface or ! other mechanized entity such as a landing gear strut for the purpose of effecting ! vehicle control or configuration. The form of the component specification is: @code <kinematic name="Gear Control"> <input> [-]property </input> <traverse> <setting> --- 57,70 ---- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ ! /** Encapsulates a kinematic (mechanical) component for the flight control ! system. This component models the action of a moving effector, such as an ! aerosurface or other mechanized entity such as a landing gear strut for the ! purpose of effecting vehicle control or configuration. The form of the component ! specification is: @code <kinematic name="Gear Control"> <input> [-]property </input> + [<noscale/>] <traverse> <setting> *************** *** 103,106 **** --- 105,115 ---- In this case, it takes 5 seconds to get to a 1 setting. As this is a software mechanization of a servo-actuator, there should be an output specified. + + Positions must be given in ascending order. + + By default, the input is assumed to be in the range [-1;1] and is scaled to the + value specified in the last <position> tag. This behavior can be modified by + adding a <noscale/> tag to the component definition: in that case, the input + value is directly used to determine the current position of the component. */ |
From: Erik H. <eh...@us...> - 2016-07-06 08:00:43
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14242/Systems Modified Files: Controls.cpp LandingGear.cpp Log Message: Prevent stall behaviour on ground Index: Controls.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Controls.cpp,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -r1.40 -r1.41 *** Controls.cpp 11 Jun 2016 10:02:09 -0000 1.40 --- Controls.cpp 6 Jul 2016 08:00:40 -0000 1.41 *************** *** 695,698 **** --- 695,699 ---- file << " <property>metrics/bw-ft</property>" << std::endl; file << " <property>aero/alpha-rad</property>" << std::endl; + file << " <property>fcs/gear-no-wow</property>" << std::endl; file << " <table>" << std::endl; Index: LandingGear.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/LandingGear.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** LandingGear.cpp 23 Dec 2015 09:30:40 -0000 1.13 --- LandingGear.cpp 6 Jul 2016 08:00:40 -0000 1.14 *************** *** 229,232 **** --- 229,240 ---- { file << " <channel name=\"" + _description[_subtype] + "\">" << std::endl; + file << " <switch name=\"fcs/gear-no-wow\">" << std::endl; + file << " <default value=\"1\"/>" << std::endl; + file << " <test logic=\"AND\" value=\"0\">" << std::endl; + file << " gear/unit[1]/WOW eq 1" << std::endl; + file << " gear/unit[2]/WOW eq 1" << std::endl; + file << " </test>" << std::endl; + file << " </switch>" << std::endl; + file << std::endl; file << " <kinematic name=\"" + _description[_subtype] + " Control\">" << std::endl; file << " <input>gear/gear-cmd-norm</input>" << std::endl; |
From: Erik H. <eh...@us...> - 2016-07-06 07:51:17
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv13634 Modified Files: version Log Message: Ehm, do not go back in versions.. Index: version =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/version,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -r1.14 -r1.15 *** version 6 Jul 2016 07:44:56 -0000 1.14 --- version 6 Jul 2016 07:51:14 -0000 1.15 *************** *** 1 **** ! 3.2.7 --- 1 ---- ! 3.3.1 |
From: Erik H. <eh...@us...> - 2016-07-06 07:48:17
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/pc7 In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv13458 Modified Files: pc7.xml Log Message: Small updates based on more accurate data and the latest AeromatiC++ Index: pc7.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/pc7/pc7.xml,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -r1.17 -r1.18 *** pc7.xml 6 Jun 2016 10:47:49 -0000 1.17 --- pc7.xml 6 Jul 2016 07:48:14 -0000 1.18 *************** *** 29,33 **** name: PC-7 type: WWII fighter, subsonic sport, aerobatic ! stall speed: 71.81kts max weight: 5953.50 lb length: 32.09 ft --- 29,33 ---- name: PC-7 type: WWII fighter, subsonic sport, aerobatic ! stall speed: 75.05kts max weight: 5953.50 lb length: 32.09 ft *************** *** 37,41 **** mean chord: 5.25 ft aspect ratio: 6.52:1 ! taper ratio: 0.55:1 incidence: 0.00 degrees dihedral: 7.00 degrees --- 37,41 ---- mean chord: 5.25 ft aspect ratio: 6.52:1 ! taper ratio: 0.47:1 incidence: 0.00 degrees dihedral: 7.00 degrees *************** *** 54,59 **** payload: 2294.52 lbs CL-alpha: 4.96 per radian ! CL-0: 0.43 ! CL-max: 1.91 CD-0: 0.02 K: 0.06 --- 54,59 ---- payload: 2294.52 lbs CL-alpha: 4.96 per radian ! CL-0: 0.39 ! CL-max: 1.75 CD-0: 0.02 K: 0.06 *************** *** 119,123 **** <pitch> 0.00 </pitch> <roll> 0.00 </roll> ! <yaw> 0.00 </yaw> </orient> <feed> 0 </feed> --- 119,123 ---- <pitch> 0.00 </pitch> <roll> 0.00 </roll> ! <yaw> 0.00 </yaw> </orient> <feed> 0 </feed> *************** *** 132,137 **** <orient unit="DEG"> <pitch> 0.00 </pitch> ! <roll> 0.00 </roll> ! <yaw> 0.00 </yaw> </orient> </thruster> --- 132,137 ---- <orient unit="DEG"> <pitch> 0.00 </pitch> ! <roll> 0.00 </roll> ! <yaw> 0.00 </yaw> </orient> </thruster> *************** *** 240,248 **** <flight_control name="FCS: PC-7"> ! </flight_control> <aerodynamics> <axis name="LIFT"> --- 240,323 ---- <flight_control name="FCS: PC-7"> ! <channel name="Landing Gear"> ! <switch name="fcs/gear-no-wow"> ! <default value="1"/> ! <test logic="AND" value="0"> ! gear/unit[1]/WOW eq 1 ! gear/unit[2]/WOW eq 1 ! </test> ! </switch> ! </channel> </flight_control> <aerodynamics> + <function name="aero/function/kCDge"> + <description>Change_in_drag_due_to_ground_effect</description> + <product> + <table> + <independentVar>aero/h_b-mac-ft</independentVar> + <tableData> + 0.0000 0.4800 + 0.1000 0.5150 + 0.1500 0.6290 + 0.2000 0.7090 + 0.3000 0.8150 + 0.4000 0.8820 + 0.5000 0.9280 + 0.6000 0.9620 + 0.7000 0.9880 + 0.8000 1.0000 + 0.9000 1.0000 + 1.0000 1.0000 + 1.1000 1.0000 + </tableData> + </table> + </product> + </function> + + <function name="aero/function/kCLge"> + <description>Change_in_lift_due_to_ground_effect</description> + <product> + <table> + <independentVar>aero/h_b-mac-ft</independentVar> + <tableData> + 0.0000 1.2030 + 0.1000 1.1270 + 0.1500 1.0900 + 0.2000 1.0730 + 0.3000 1.0460 + 0.4000 1.0550 + 0.5000 1.0190 + 0.6000 1.0130 + 0.7000 1.0080 + 0.8000 1.0060 + 0.9000 1.0030 + 1.0000 1.0020 + 1.1000 1.0000 + </tableData> + </table> + </product> + </function> + + <function name="aero/function/velocity-induced-fps"> + <description> velocity including the propulsion induced velocity.</description> + <sum> + <property>velocities/u-aero-fps</property> + <property>propulsion/engine/prop-induced-velocity_fps</property> + <property>propulsion/engine/prop-induced-velocity_fps</property> + </sum> + </function> + + <function name="aero/function/qbar-induced-psf"> + <description> q bar including the propulsion induced velocity.</description> + <product> + <property>aero/function/velocity-induced-fps</property> + <property>aero/function/velocity-induced-fps</property> + <property>atmosphere/rho-slugs_ft3</property> + <value>0.5</value> + </product> + </function> + <axis name="LIFT"> *************** *** 259,265 **** 0.0 60.0 -0.29 0.000 0.000 ! 0.00 0.095 0.253 ! 0.32 0.425 1.134 ! 0.65 0.000 0.000 </tableData> </table> --- 334,340 ---- 0.0 60.0 -0.29 0.000 0.000 ! 0.00 0.087 0.232 ! 0.30 0.389 1.038 ! 0.59 0.000 0.000 </tableData> </table> *************** *** 272,282 **** <property>aero/qbar-psf</property> <property>metrics/Sw-sqft</property> <table> <independentVar lookup="row">aero/alpha-rad</independentVar> <tableData> ! -0.20 -0.5659 ! 0.00 0.4259 ! 0.30 1.9083 ! 0.60 1.0189 </tableData> </table> --- 347,358 ---- <property>aero/qbar-psf</property> <property>metrics/Sw-sqft</property> + <property>aero/function/kCLge</property> <table> <independentVar lookup="row">aero/alpha-rad</independentVar> <tableData> ! -0.20 -0.6018 ! 0.00 0.3900 ! 0.27 1.7471 ! 0.60 0.9328 </tableData> </table> *************** *** 340,346 **** <tableData> -1.57 1.4093 ! -0.30 0.0845 0.00 0.0197 ! 0.30 0.0845 1.57 1.4093 </tableData> --- 416,422 ---- <tableData> -1.57 1.4093 ! -0.27 0.0749 0.00 0.0197 ! 0.27 0.0749 1.57 1.4093 </tableData> *************** *** 355,359 **** <property>metrics/Sw-sqft</property> <property>aero/cl-squared</property> ! <value> 0.0513 </value> </product> </function> --- 431,436 ---- <property>metrics/Sw-sqft</property> <property>aero/cl-squared</property> ! <property>aero/function/kCDge</property> ! <value> 0.0522 </value> </product> </function> *************** *** 448,455 **** <independentVar lookup="row">aero/Re</independentVar> <tableData> ! 4054536 0.2381 ! 4459989 0.0209 ! 6081804 0.0093 ! 8041564 0.0053 </tableData> </table> --- 525,532 ---- <independentVar lookup="row">aero/Re</independentVar> <tableData> ! 4237447 0.2180 ! 4661192 0.0191 ! 6356170 0.0085 ! 8404342 0.0049 </tableData> </table> *************** *** 495,501 **** 0.0 60.0 -0.02 0.000 0.000 ! 0.00 -0.059 -0.158 ! 0.32 -0.265 -0.707 ! 0.42 0.000 0.000 </tableData> </table> --- 572,578 ---- 0.0 60.0 -0.02 0.000 0.000 ! 0.00 -0.054 -0.144 ! 0.30 -0.243 -0.647 ! 0.39 0.000 0.000 </tableData> </table> *************** *** 517,521 **** <description>Pitch moment due to elevator</description> <product> ! <property>aero/qbar-psf</property> <property>metrics/Sw-sqft</property> <property>metrics/cbarw-ft</property> --- 594,598 ---- <description>Pitch moment due to elevator</description> <product> ! <property>aero/function/qbar-induced-psf</property> <property>metrics/Sw-sqft</property> <property>metrics/cbarw-ft</property> *************** *** 582,588 **** <independentVar lookup="column">aero/Re</independentVar> <tableData> ! 4054536 4459989 6081804 8041564 ! -0.0349 -0.5973 -0.1597 -0.1363 -0.1284 ! 0.3491 -0.6741 -0.1675 -0.1444 -0.1370 </tableData> </table> --- 659,665 ---- <independentVar lookup="column">aero/Re</independentVar> <tableData> ! 4237447 4661192 6356170 8404342 ! -0.0349 -0.5540 -0.1534 -0.1320 -0.1247 ! 0.3491 -0.6227 -0.1610 -0.1399 -0.1332 </tableData> </table> *************** *** 598,602 **** <property>aero/bi2vel</property> <property>velocities/p-aero-rad_sec</property> ! <value> -0.4928 </value> </product> </function> --- 675,679 ---- <property>aero/bi2vel</property> <property>velocities/p-aero-rad_sec</property> ! <value> -0.4643 </value> </product> </function> *************** *** 614,620 **** <independentVar lookup="column">aero/Re</independentVar> <tableData> ! 4054536 4459989 6081804 8041564 ! -0.0349 0.6165 0.1003 0.0727 0.0632 ! 0.3491 5.3240 0.5763 0.5487 0.5392 </tableData> </table> --- 691,697 ---- <independentVar lookup="column">aero/Re</independentVar> <tableData> ! 4237447 4661192 6356170 8404342 ! -0.0349 0.5608 0.0881 0.0629 0.0542 ! 0.3491 4.8743 0.5642 0.5389 0.5302 </tableData> </table> *************** *** 662,670 **** <property>metrics/bw-ft</property> <property>aero/alpha-rad</property> <table> <independentVar lookup="row">aero/beta-rad</independentVar> <independentVar lookup="column">aero/Re</independentVar> <tableData> ! 4054536 4459989 -0.3491 -1.0000 0.0000 0.3491 1.0000 0.0000 --- 739,748 ---- <property>metrics/bw-ft</property> <property>aero/alpha-rad</property> + <property>fcs/gear-no-wow</property> <table> <independentVar lookup="row">aero/beta-rad</independentVar> <independentVar lookup="column">aero/Re</independentVar> <tableData> ! 4237447 4261192 -0.3491 -1.0000 0.0000 0.3491 1.0000 0.0000 *************** *** 696,703 **** <independentVar lookup="row">aero/Re</independentVar> <tableData> ! 4054536 -2.3854 ! 4459989 -0.2094 ! 6081804 -0.0931 ! 8041564 -0.0532 </tableData> </table> --- 774,781 ---- <independentVar lookup="row">aero/Re</independentVar> <tableData> ! 4237447 -2.1839 ! 4661192 -0.1917 ! 6356170 -0.0852 ! 8404342 -0.0487 </tableData> </table> *************** *** 713,717 **** <property>aero/bi2vel</property> <property>velocities/r-aero-rad_sec</property> ! <value> -0.1607 </value> </product> </function> --- 791,795 ---- <property>aero/bi2vel</property> <property>velocities/r-aero-rad_sec</property> ! <value> -0.1585 </value> </product> </function> *************** *** 720,724 **** <description>Yaw moment due to rudder</description> <product> ! <property>aero/qbar-psf</property> <property>metrics/Sw-sqft</property> <property>metrics/bw-ft</property> --- 798,802 ---- <description>Yaw moment due to rudder</description> <product> ! <property>aero/function/qbar-induced-psf</property> <property>metrics/Sw-sqft</property> <property>metrics/bw-ft</property> |
From: Erik H. <eh...@us...> - 2016-07-06 07:48:17
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/pc7/Engines In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv13458/Engines Modified Files: Propeller.xml Log Message: Small updates based on more accurate data and the latest AeromatiC++ Index: Propeller.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/pc7/Engines/Propeller.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** Propeller.xml 6 Jun 2016 10:49:20 -0000 1.1 --- Propeller.xml 6 Jul 2016 07:48:14 -0000 1.2 *************** *** 23,34 **** <ixx> 6.01793 </ixx> <diameter unit="IN"> 95 </diameter> ! <numblades> 4 </numblades> ! <gearratio> 15.8224 </gearratio> <cp_factor> 1.00 </cp_factor> ! <ct_factor> 1.00 </ct_factor> ! <minpitch> 12 </minpitch> <maxpitch> 45 </maxpitch> ! <minrpm> 2014.55 </minrpm> ! <maxrpm> 2370.06 </maxrpm> <!-- thrust coefficient as a function of advance ratio and blade angle --> --- 23,34 ---- <ixx> 6.01793 </ixx> <diameter unit="IN"> 95 </diameter> ! <numblades> 3 </numblades> ! <gearratio> 18.75 </gearratio> <cp_factor> 1.00 </cp_factor> ! <ct_factor> 1.10 </ct_factor> ! <minpitch> -12 </minpitch> <maxpitch> 45 </maxpitch> ! <minrpm> 1900 </minrpm> ! <maxrpm> 2200 </maxrpm> <!-- thrust coefficient as a function of advance ratio and blade angle --> |
From: Erik H. <eh...@us...> - 2016-07-06 07:44:59
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv13278 Modified Files: Aircraft.cpp aeromatic.cpp version Log Message: update the version number and remove some debugging code Index: aeromatic.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/aeromatic.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** aeromatic.cpp 2 Jun 2016 22:05:52 -0000 1.8 --- aeromatic.cpp 6 Jul 2016 07:44:56 -0000 1.9 *************** *** 109,121 **** ifstream in; - #if defined(_MSC_VER) - _clearfp(); - _controlfp(_controlfp(0, 0) & ~(_EM_INVALID | _EM_ZERODIVIDE | _EM_OVERFLOW), - _MCW_EM); - #elif defined(__GNUC__) && !defined(sgi) - feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW|FE_UNDERFLOW); - #endif - - char *file = getCommandLineOption(argc, argv, (char*)"-l"); if (file) --- 109,112 ---- Index: version =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/version,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** version 5 Jun 2016 20:00:13 -0000 1.13 --- version 6 Jul 2016 07:44:56 -0000 1.14 *************** *** 1 **** ! 3.3.0 --- 1 ---- ! 3.2.7 |
From: Bertrand <bco...@us...> - 2016-07-03 17:20:58
|
Update of /cvsroot/jsbsim/JSBSim/src/initialization In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9720/src/initialization Modified Files: FGInitialCondition.h FGInitialCondition.cpp Log Message: Fixed the altitude setter such that it does not modify the specified geodetic latitude. Index: FGInitialCondition.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGInitialCondition.h,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -r1.45 -r1.46 *** FGInitialCondition.h 26 Jun 2016 20:33:04 -0000 1.45 --- FGInitialCondition.h 3 Jul 2016 17:20:55 -0000 1.46 *************** *** 72,76 **** typedef enum { setvt, setvc, setve, setmach, setuvw, setned, setvg } speedset; ! typedef enum { setasl, setagl} altitudeset; /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% --- 72,77 ---- typedef enum { setvt, setvc, setve, setmach, setuvw, setned, setvg } speedset; ! typedef enum { setasl, setagl } altitudeset; ! typedef enum { setgeoc, setgeod } latitudeset; /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% *************** *** 682,685 **** --- 683,687 ---- speedset lastSpeedSet; altitudeset lastAltitudeSet; + latitudeset lastLatitudeSet; unsigned int enginesRunning; int needTrim; *************** *** 701,704 **** --- 703,707 ---- void calcAeroAngles(const FGColumnVector3& _vt_BODY); void calcThetaBeta(double alfa, const FGColumnVector3& _vt_NED); + double ComputeGeodAltitude(double geodLatitude); bool LoadLatitude(Element* position_el); void Debug(int from); Index: FGInitialCondition.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGInitialCondition.cpp,v retrieving revision 1.110 retrieving revision 1.111 diff -C2 -r1.110 -r1.111 *** FGInitialCondition.cpp 3 Jul 2016 14:27:48 -0000 1.110 --- FGInitialCondition.cpp 3 Jul 2016 17:20:55 -0000 1.111 *************** *** 105,108 **** --- 105,110 ---- position.SetLatitude(latRad0); position.SetAltitudeAGL(altAGLFt0); + lastLatitudeSet = setgeoc; + lastAltitudeSet = setagl; orientation = FGQuaternion(phi0, theta0, psi0); *************** *** 148,151 **** --- 150,154 ---- lastSpeedSet = setvt; lastAltitudeSet = setasl; + lastLatitudeSet = setgeoc; enginesRunning = 0; needTrim = 0; *************** *** 703,709 **** --- 706,718 ---- double PitotAngle = Aircraft->GetPitotAngle(); + double geodLatitude = position.GetGeodLatitudeRad(); altitudeASL=alt; position.SetAltitudeASL(alt); + if (lastLatitudeSet == setgeod) { + double h = ComputeGeodAltitude(geodLatitude); + position.SetPositionGeodetic(position.GetLongitude(), geodLatitude, h); + } + soundSpeed = Atmosphere->GetSoundSpeed(altitudeASL); rho = Atmosphere->GetDensity(altitudeASL); *************** *** 735,738 **** --- 744,749 ---- double altitude; + lastLatitudeSet = setgeoc; + switch(lastAltitudeSet) { case setagl: *************** *** 742,748 **** break; default: - altitude = position.GetAltitudeASL(); position.SetLatitude(lat); ! position.SetAltitudeASL(altitude); } } --- 753,758 ---- break; default: position.SetLatitude(lat); ! break; } } *************** *** 911,919 **** //****************************************************************************** ! // Load the latitude from the XML file. The computations below assume that the ! // terrain is a sphere and that the elevation is uniform all over the Earth. ! // Would that assumption fail, the computation below would need to be adapted ! // since the position radius would depend on the terrain elevation which depends ! // itself on the latitude. // // This is an acceptable trade off because this routine is only used by --- 921,930 ---- //****************************************************************************** ! // Given an altitude above the sea level (or a position radius which is the ! // same) and a geodetic latitude, compute the geodetic altitude. It is assumed ! // that the terrain is a sphere and that the elevation is uniform all over the ! // Earth. Would that assumption fail, the computation below would need to be ! // adapted since the position radius would depend on the terrain elevation which ! // depends itself on the latitude. // // This is an acceptable trade off because this routine is only used by *************** *** 921,924 **** --- 932,947 ---- // Earth is a sphere. + double FGInitialCondition::ComputeGeodAltitude(double geodLatitude) + { + double R = position.GetRadius(); + double slat = sin(geodLatitude); + double RN = a / sqrt(1.0 - e2*slat*slat); + double p1 = e2*RN*slat*slat; + double p2 = e2*e2*RN*RN*slat*slat-R*R; + return p1 + sqrt(p1*p1-p2) - RN; + } + + //****************************************************************************** + bool FGInitialCondition::LoadLatitude(Element* position_el) { *************** *** 946,959 **** if (lat_type == "geod" || lat_type == "geodetic") { ! double R = position.GetRadius(); ! double slat = sin(latitude); ! double RN = a / sqrt(1.0 - e2*slat*slat); ! double p1 = e2*RN*slat*slat; ! double p2 = e2*e2*RN*RN*slat*slat-R*R; ! double h = p1 + sqrt(p1*p1-p2) - RN; position.SetPositionGeodetic(position.GetLongitude(), latitude, h); } ! else position.SetLatitude(latitude); } --- 969,980 ---- if (lat_type == "geod" || lat_type == "geodetic") { ! double h = ComputeGeodAltitude(latitude); position.SetPositionGeodetic(position.GetLongitude(), latitude, h); + lastLatitudeSet = setgeod; } ! else { position.SetLatitude(latitude); + lastLatitudeSet = setgeoc; + } } |
From: Bertrand <bco...@us...> - 2016-07-03 17:18:44
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9585/tests Modified Files: TestICOverride.py Log Message: Check that when the geodetic latitude is set, a later modification of the altitude is not modifying the geodetic latitude. Index: TestICOverride.py =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/TestICOverride.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** TestICOverride.py 30 Jan 2016 18:50:24 -0000 1.5 --- TestICOverride.py 3 Jul 2016 17:18:41 -0000 1.6 *************** *** 59,63 **** # The modified script is then saved with the named 'c1724_0.xml' tree = et.parse(script_path) ! run_tag = tree.getroot().find("./run") property = et.SubElement(run_tag, 'property') property.text = 'ic/vt-kts' --- 59,63 ---- # The modified script is then saved with the named 'c1724_0.xml' tree = et.parse(script_path) ! run_tag = tree.getroot().find("run") property = et.SubElement(run_tag, 'property') property.text = 'ic/vt-kts' *************** *** 90,92 **** --- 90,102 ---- delta=1E-6) + def test_asl_override_vs_geod_lat(self): + fdm = CreateFDM(self.sandbox) + fdm.load_model('c310') + fdm.load_ic(self.sandbox.path_to_jsbsim_file('aircraft', 'c310', + 'ellington.xml'), False) + + geod_lat = fdm['ic/lat-geod-deg'] + fdm['ic/h-sl-ft'] = 35000. + self.assertAlmostEqual(fdm['ic/lat-geod-deg'], geod_lat) + RunTest(TestICOverride) |
From: Bertrand <bco...@us...> - 2016-07-03 14:27:51
|
Update of /cvsroot/jsbsim/JSBSim/src/initialization In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv2353/src/initialization Modified Files: FGInitialCondition.cpp Log Message: Fixed the corrections for the Pitot tube to take the sideslip into account. Index: FGInitialCondition.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGInitialCondition.cpp,v retrieving revision 1.109 retrieving revision 1.110 diff -C2 -r1.109 -r1.110 *** FGInitialCondition.cpp 3 Jul 2016 13:55:59 -0000 1.109 --- FGInitialCondition.cpp 3 Jul 2016 14:27:48 -0000 1.110 *************** *** 712,718 **** switch(lastSpeedSet) { case setvc: ! mach0 = MachFromVcalibrated(vc0 * cos(alpha+PitotAngle), pressure, ! pressureSL, rhoSL); ! SetVtrueFpsIC(mach0 * soundSpeed / cos(alpha+PitotAngle)); break; case setmach: --- 712,718 ---- switch(lastSpeedSet) { case setvc: ! mach0 = MachFromVcalibrated(vc0 * cos(alpha+PitotAngle) * cos(beta), ! pressure, pressureSL, rhoSL); ! SetVtrueFpsIC(mach0 * soundSpeed / (cos(alpha+PitotAngle) * cos(beta))); break; case setmach: |
From: Bertrand <bco...@us...> - 2016-07-03 14:26:37
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv2307/tests Modified Files: TestPitotAngle.py Log Message: Added some sideslip to the test. Index: TestPitotAngle.py =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/TestPitotAngle.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** TestPitotAngle.py 3 Jul 2016 13:54:46 -0000 1.4 --- TestPitotAngle.py 3 Jul 2016 14:26:34 -0000 1.5 *************** *** 132,139 **** --- 132,143 ---- fdm.set_aircraft_path('aircraft') fdm.load_model('Short_S23') + fdm['ic/beta-deg'] = 15.0 # Add some sideslip fdm['ic/vc-kts'] = 172.0 fdm['ic/h-sl-ft'] = 15000. + self.assertAlmostEqual(fdm['ic/vc-kts'], 172.0, delta=1E-7) + self.assertAlmostEqual(fdm['ic/beta-deg'], 15.0, delta=1E-7) fdm.run_ic() self.assertAlmostEqual(fdm['velocities/vc-kts'], 172.0, delta=1E-7) + self.assertAlmostEqual(fdm['aero/beta-deg'], 15.0, delta=1E-7) RunTest(TestPitotAngle) |
From: Bertrand <bco...@us...> - 2016-07-03 13:56:03
|
Update of /cvsroot/jsbsim/JSBSim/src/initialization In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv693/src/initialization Modified Files: FGInitialCondition.cpp Log Message: Account for the Pitot angle in the VCAS update when the altitude is modified. Index: FGInitialCondition.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGInitialCondition.cpp,v retrieving revision 1.108 retrieving revision 1.109 diff -C2 -r1.108 -r1.109 *** FGInitialCondition.cpp 26 Jun 2016 20:33:04 -0000 1.108 --- FGInitialCondition.cpp 3 Jul 2016 13:55:59 -0000 1.109 *************** *** 701,704 **** --- 701,705 ---- double vc0 = VcalibratedFromMach(mach0, pressure, pressureSL, rhoSL); double ve0 = vt * sqrt(rho/rhoSL); + double PitotAngle = Aircraft->GetPitotAngle(); altitudeASL=alt; *************** *** 711,716 **** switch(lastSpeedSet) { case setvc: ! mach0 = MachFromVcalibrated(vc0, pressure, pressureSL, rhoSL); ! SetVtrueFpsIC(mach0 * soundSpeed); break; case setmach: --- 712,718 ---- switch(lastSpeedSet) { case setvc: ! mach0 = MachFromVcalibrated(vc0 * cos(alpha+PitotAngle), pressure, ! pressureSL, rhoSL); ! SetVtrueFpsIC(mach0 * soundSpeed / cos(alpha+PitotAngle)); break; case setmach: |
From: Bertrand <bco...@us...> - 2016-07-03 13:54:50
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv623/tests Modified Files: TestPitotAngle.py Log Message: Added a check to verify that the VCAS is correctly updated *after* the IC altitude has been changed. Index: TestPitotAngle.py =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/TestPitotAngle.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** TestPitotAngle.py 30 Jan 2016 18:50:24 -0000 1.3 --- TestPitotAngle.py 3 Jul 2016 13:54:46 -0000 1.4 *************** *** 25,28 **** --- 25,34 ---- class TestPitotAngle(JSBSimTestCase): + def addPitotTube(self, root, angle): + metrics_tag = root.find('./metrics') + pitot_tag = et.SubElement(metrics_tag, 'pitot_angle') + pitot_tag.attrib['unit'] = 'DEG' + pitot_tag.text = str(angle) + def test_CAS_ic(self): script_name = 'Short_S23_3.xml' *************** *** 31,38 **** # Add a Pitot angle to the Short S23 tree, aircraft_name, path_to_jsbsim_aircrafts = CopyAircraftDef(script_path, self.sandbox) ! metrics_tag = tree.getroot().find('./metrics') ! pitot_tag = et.SubElement(metrics_tag, 'pitot_angle') ! pitot_tag.attrib['unit'] = 'DEG' ! pitot_tag.text = '5.0' tree.write(self.sandbox('aircraft', aircraft_name, aircraft_name+'.xml')) --- 37,41 ---- # Add a Pitot angle to the Short S23 tree, aircraft_name, path_to_jsbsim_aircrafts = CopyAircraftDef(script_path, self.sandbox) ! self.addPitotTube(tree.getroot(), 5.0) tree.write(self.sandbox('aircraft', aircraft_name, aircraft_name+'.xml')) *************** *** 47,51 **** VCAS = float(vc_tag.text) if 'unit' in vc_tag.attrib and vc_tag.attrib['unit'] == 'FT/SEC': ! VCAS /= 1.68781 # Run the IC and check that the model is initialized correctly --- 50,54 ---- VCAS = float(vc_tag.text) if 'unit' in vc_tag.attrib and vc_tag.attrib['unit'] == 'FT/SEC': ! VCAS /= 1.68781 # Converts in kts # Run the IC and check that the model is initialized correctly *************** *** 65,72 **** tree, aircraft_name, path_to_jsbsim_aircrafts = CopyAircraftDef(script_path, self.sandbox) root = tree.getroot() ! metrics_tag = root.find('./metrics') ! pitot_tag = et.SubElement(metrics_tag, 'pitot_angle') ! pitot_tag.attrib['unit'] = 'DEG' ! pitot_tag.text = '5.0' contact_tag = root.find('./ground_reactions/contact') contact_tag.attrib['type'] = 'STRUCTURE' --- 68,73 ---- tree, aircraft_name, path_to_jsbsim_aircrafts = CopyAircraftDef(script_path, self.sandbox) root = tree.getroot() ! pitot_angle_deg = 5.0 ! self.addPitotTube(root, 5.0) contact_tag = root.find('./ground_reactions/contact') contact_tag.attrib['type'] = 'STRUCTURE' *************** *** 77,81 **** fdm.set_aircraft_path('aircraft') fdm.load_model('ball') ! pitot_angle = float(pitot_tag.text) * math.pi / 180. weight = fdm['inertia/weight-lbs'] spring_tag = contact_tag.find('./spring_coeff') --- 78,82 ---- fdm.set_aircraft_path('aircraft') fdm.load_model('ball') ! pitot_angle = pitot_angle_deg * math.pi / 180. weight = fdm['inertia/weight-lbs'] spring_tag = contact_tag.find('./spring_coeff') *************** *** 117,119 **** --- 118,139 ---- max(0.0, vc) / 1.68781, delta=1E-7) + # Check that the VCAS is correctly updated when the initial altitude is + # modified and the aircraft has a tilted Pitot tube. + def test_alt_mod_vs_CAS(self): + script_name = 'Short_S23_3.xml' + script_path = self.sandbox.path_to_jsbsim_file('scripts', script_name) + + # Add a Pitot angle to the Short S23 + tree, aircraft_name, b = CopyAircraftDef(script_path, self.sandbox) + self.addPitotTube(tree.getroot(), 10.0) + tree.write(self.sandbox('aircraft', aircraft_name, + aircraft_name+'.xml')) + fdm = CreateFDM(self.sandbox) + fdm.set_aircraft_path('aircraft') + fdm.load_model('Short_S23') + fdm['ic/vc-kts'] = 172.0 + fdm['ic/h-sl-ft'] = 15000. + fdm.run_ic() + self.assertAlmostEqual(fdm['velocities/vc-kts'], 172.0, delta=1E-7) + RunTest(TestPitotAngle) |
From: Bertrand <bco...@us...> - 2016-06-26 20:38:17
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17636/tests Modified Files: CheckScripts.py Log Message: Now executes the 30 first seconds of each script with the floating point exceptions enabled. This allowed to catch more errors in the scripts. Index: CheckScripts.py =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/CheckScripts.py,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -r1.6 -r1.7 *** CheckScripts.py 19 Jun 2016 09:26:22 -0000 1.6 --- CheckScripts.py 26 Jun 2016 20:38:14 -0000 1.7 *************** *** 21,25 **** import fpectl ! from JSBSim_utils import JSBSimTestCase, CreateFDM, RunTest --- 21,25 ---- import fpectl ! from JSBSim_utils import JSBSimTestCase, CreateFDM, RunTest, ExecuteUntil *************** *** 28,36 **** fpectl.turnon_sigfpe() ! for s in self.script_list(): fdm = CreateFDM(self.sandbox) ! self.assertTrue(fdm.load_script(s), ! msg="Failed to load script %s" % (s,)) ! fdm.run_ic() del fdm --- 28,42 ---- fpectl.turnon_sigfpe() ! for s in self.script_list(['737_cruise_steady_turn_simplex.xml']): fdm = CreateFDM(self.sandbox) ! try: ! self.assertTrue(fdm.load_script(s), ! msg="Failed to load script %s" % (s,)) ! ! fdm.run_ic() ! ExecuteUntil(fdm, 30.) ! ! except Exception as e: ! self.fail("Script %s failed:\n%s" % (s, e.args[0])) del fdm |
From: Bertrand <bco...@us...> - 2016-06-26 20:33:07
|
Update of /cvsroot/jsbsim/JSBSim/src/initialization In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv17298/src/initialization Modified Files: FGInitialCondition.h FGInitialCondition.cpp Log Message: Fixed the geodetic computations: now the altitude (ASL and AGL) is correctly set when a geodetic latitude is specified. Index: FGInitialCondition.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGInitialCondition.h,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -r1.44 -r1.45 *** FGInitialCondition.h 10 Jan 2016 16:35:28 -0000 1.44 --- FGInitialCondition.h 26 Jun 2016 20:33:04 -0000 1.45 *************** *** 678,681 **** --- 678,682 ---- FGMatrix33 Tw2b, Tb2w; double alpha, beta; + double a, e2; speedset lastSpeedSet; *************** *** 700,703 **** --- 701,705 ---- void calcAeroAngles(const FGColumnVector3& _vt_BODY); void calcThetaBeta(double alfa, const FGColumnVector3& _vt_NED); + bool LoadLatitude(Element* position_el); void Debug(int from); }; Index: FGInitialCondition.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGInitialCondition.cpp,v retrieving revision 1.107 retrieving revision 1.108 diff -C2 -r1.107 -r1.108 *** FGInitialCondition.cpp 24 Jan 2016 18:18:38 -0000 1.107 --- FGInitialCondition.cpp 26 Jun 2016 20:33:04 -0000 1.108 *************** *** 126,131 **** { alpha=beta=0; ! position.SetEllipse(fdmex->GetInertial()->GetSemimajor(), fdmex->GetInertial()->GetSemiminor()); position.SetPositionGeodetic(0.0, 0.0, 0.0); --- 126,135 ---- { alpha=beta=0; + a = fdmex->GetInertial()->GetSemimajor(); + double b = fdmex->GetInertial()->GetSemiminor(); + double ec = b/a; + e2 = 1.0 - ec*ec; ! position.SetEllipse(a, b); position.SetPositionGeodetic(0.0, 0.0, 0.0); *************** *** 905,934 **** //****************************************************************************** ! bool FGInitialCondition::Load_v1(Element* document) { ! bool result = true; ! ! if (document->FindElement("longitude")) ! SetLongitudeRadIC(document->FindElementValueAsNumberConvertTo("longitude", "RAD")); ! if (document->FindElement("elevation")) ! SetTerrainElevationFtIC(document->FindElementValueAsNumberConvertTo("elevation", "FT")); ! ! if (document->FindElement("altitude")) // This is feet above ground level ! SetAltitudeAGLFtIC(document->FindElementValueAsNumberConvertTo("altitude", "FT")); ! else if (document->FindElement("altitudeAGL")) // This is feet above ground level ! SetAltitudeAGLFtIC(document->FindElementValueAsNumberConvertTo("altitudeAGL", "FT")); ! else if (document->FindElement("altitudeMSL")) // This is feet above sea level ! SetAltitudeASLFtIC(document->FindElementValueAsNumberConvertTo("altitudeMSL", "FT")); - double altitude = GetAltitudeASLFtIC(); - double longitude = GetLongitudeRadIC(); - - Element* latitude_el = document->FindElement("latitude"); if (latitude_el) { ! double latitude = document->FindElementValueAsNumberConvertTo("latitude", "RAD"); if (fabs(latitude) > 0.5*M_PI) { string unit_type = latitude_el->GetAttributeValue("unit"); if (unit_type.empty()) unit_type="RAD"; cerr << latitude_el->ReadFrom() << "The latitude value " << latitude_el->GetDataAsNumber() << " " << unit_type --- 909,933 ---- //****************************************************************************** + // Load the latitude from the XML file. The computations below assume that the + // terrain is a sphere and that the elevation is uniform all over the Earth. + // Would that assumption fail, the computation below would need to be adapted + // since the position radius would depend on the terrain elevation which depends + // itself on the latitude. + // + // This is an acceptable trade off because this routine is only used by + // standalone JSBSim which uses FGDefaultGroundCallback which assumes that the + // Earth is a sphere. ! bool FGInitialCondition::LoadLatitude(Element* position_el) { ! Element* latitude_el = position_el->FindElement("latitude"); if (latitude_el) { ! double latitude = position_el->FindElementValueAsNumberConvertTo("latitude", "RAD"); ! if (fabs(latitude) > 0.5*M_PI) { string unit_type = latitude_el->GetAttributeValue("unit"); if (unit_type.empty()) unit_type="RAD"; + cerr << latitude_el->ReadFrom() << "The latitude value " << latitude_el->GetDataAsNumber() << " " << unit_type *************** *** 938,951 **** else cerr << "-PI/2 RAD; +PI/2 RAD]" << endl; ! result = false; } string lat_type = latitude_el->GetAttributeValue("type"); ! if (lat_type == "geod" || lat_type == "geodetic") ! position.SetPositionGeodetic(longitude, latitude, altitude); // Longitude and altitude will be set later on else position.SetLatitude(latitude); } FGColumnVector3 vOrient = orientation.GetEuler(); --- 937,982 ---- else cerr << "-PI/2 RAD; +PI/2 RAD]" << endl; ! ! return false; } string lat_type = latitude_el->GetAttributeValue("type"); ! ! if (lat_type == "geod" || lat_type == "geodetic") { ! double R = position.GetRadius(); ! double slat = sin(latitude); ! double RN = a / sqrt(1.0 - e2*slat*slat); ! double p1 = e2*RN*slat*slat; ! double p2 = e2*e2*RN*RN*slat*slat-R*R; ! double h = p1 + sqrt(p1*p1-p2) - RN; ! position.SetPositionGeodetic(position.GetLongitude(), latitude, h); ! } else position.SetLatitude(latitude); } + return true; + } + + //****************************************************************************** + + bool FGInitialCondition::Load_v1(Element* document) + { + bool result = true; + + if (document->FindElement("longitude")) + SetLongitudeRadIC(document->FindElementValueAsNumberConvertTo("longitude", "RAD")); + if (document->FindElement("elevation")) + SetTerrainElevationFtIC(document->FindElementValueAsNumberConvertTo("elevation", "FT")); + + if (document->FindElement("altitude")) // This is feet above ground level + SetAltitudeAGLFtIC(document->FindElementValueAsNumberConvertTo("altitude", "FT")); + else if (document->FindElement("altitudeAGL")) // This is feet above ground level + SetAltitudeAGLFtIC(document->FindElementValueAsNumberConvertTo("altitudeAGL", "FT")); + else if (document->FindElement("altitudeMSL")) // This is feet above sea level + SetAltitudeASLFtIC(document->FindElementValueAsNumberConvertTo("altitudeMSL", "FT")); + + result = LoadLatitude(document); + FGColumnVector3 vOrient = orientation.GetEuler(); *************** *** 996,1002 **** SetCrossWindKtsIC(document->FindElementValueAsNumberConvertTo("xwind", "KTS")); if (document->FindElement("targetNlf")) - { SetTargetNlfIC(document->FindElementValueAsNumber("targetNlf")); - } if (document->FindElement("trim")) needTrim = document->FindElementValueAsNumber("trim"); --- 1027,1031 ---- *************** *** 1007,1013 **** double radInv = 1.0 / position.GetRadius(); FGColumnVector3 vOmegaLocal = FGColumnVector3( ! radInv*vUVW_NED(eEast), ! -radInv*vUVW_NED(eNorth), ! -radInv*vUVW_NED(eEast)*position.GetTanLatitude() ); vPQR_body = Tl2b * vOmegaLocal; --- 1036,1042 ---- double radInv = 1.0 / position.GetRadius(); FGColumnVector3 vOmegaLocal = FGColumnVector3( ! radInv*vUVW_NED(eEast), ! -radInv*vUVW_NED(eNorth), ! -radInv*vUVW_NED(eEast)*position.GetTanLatitude() ); vPQR_body = Tl2b * vOmegaLocal; *************** *** 1036,1039 **** --- 1065,1071 ---- FGColumnVector3 vOmegaEarth = fdmex->GetInertial()->GetOmegaPlanet(); + if (document->FindElement("elevation")) + fdmex->GetGroundCallback()->SetTerrainGeoCentRadius(document->FindElementValueAsNumberConvertTo("elevation", "FT")+position.GetSeaLevelRadius()); + // Initialize vehicle position // *************** *** 1050,1054 **** } else if (frame == "ecef") { if (!position_el->FindElement("x") && !position_el->FindElement("y") && !position_el->FindElement("z")) { - Element* latitude_el = position_el->FindElement("latitude"); if (position_el->FindElement("longitude")) position.SetLongitude(position_el->FindElementValueAsNumberConvertTo("longitude", "RAD")); --- 1082,1085 ---- *************** *** 1065,1079 **** } ! double altitude = position.GetAltitudeASL(); ! double longitude = position.GetLongitude(); ! ! if (latitude_el) { ! string lat_type = latitude_el->GetAttributeValue("type"); ! double latitude = position_el->FindElementValueAsNumberConvertTo("latitude", "RAD"); ! if (lat_type == "geod" || lat_type == "geodetic") ! position.SetPositionGeodetic(longitude, latitude, altitude); ! else ! position.SetLatitude(latitude); ! } } else { --- 1096,1100 ---- } ! result = LoadLatitude(position_el); } else { *************** *** 1089,1095 **** } - if (document->FindElement("elevation")) - fdmex->GetGroundCallback()->SetTerrainGeoCentRadius(document->FindElementValueAsNumberConvertTo("elevation", "FT")+position.GetSeaLevelRadius()); - // End of position initialization --- 1110,1113 ---- |
From: Bertrand <bco...@us...> - 2016-06-26 20:29:34
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv16985/tests Modified Files: TestInitialConditions.py Log Message: Added a new test that checks that all the combination with geodetic latitude, geocentric latitude, AGL, ASL and elevation work for IC file in version 1.0 and 2.0 Index: TestInitialConditions.py =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/TestInitialConditions.py,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** TestInitialConditions.py 30 Jan 2016 18:50:24 -0000 1.10 --- TestInitialConditions.py 26 Jun 2016 20:29:31 -0000 1.11 *************** *** 115,138 **** continue ! self.CheckICValues(vars, tree, IC_root, s, prop_output_to_CSV) ! ! def CheckICValues(self, vars, tree, IC_root, script_path, ! prop_output_to_CSV=[]): ! # Extract the IC values from XML ! for var in vars: ! var_tag = IC_root.find(var['tag']) ! var['specified'] = var_tag is not None ! ! if var_tag is None: ! var['value'] = 0.0 ! continue ! ! var['value'] = float(var_tag.text) ! if 'unit' in var_tag.attrib: ! conv = var['unit'][var_tag.attrib['unit']] ! else: ! conv = var['unit'][var['default_unit']] ! var['value'] *= conv # Generate a CSV file to check that it is correctly initialized # with the initial values --- 115,123 ---- continue ! f, fdm = self.LoadScript(tree, s, prop_output_to_CSV) ! self.CheckICValues(vars, 'script %s' % (f,), fdm, IC_root) ! del fdm + def LoadScript(self, tree, script_path, prop_output_to_CSV=[]): # Generate a CSV file to check that it is correctly initialized # with the initial values *************** *** 156,159 **** --- 141,163 ---- fdm.run_ic() + return (f, fdm) + + def CheckICValues(self, vars, f, fdm, IC_root): + # Extract the IC values from XML + for var in vars: + var_tag = IC_root.find(var['tag']) + var['specified'] = var_tag is not None + + if var_tag is None: + var['value'] = 0.0 + continue + + var['value'] = float(var_tag.text) + if 'unit' in var_tag.attrib: + conv = var['unit'][var_tag.attrib['unit']] + else: + conv = var['unit'][var['default_unit']] + var['value'] *= conv + # Sanity check, we just initialized JSBSim with the ICs, the time must # be set to 0.0 *************** *** 173,177 **** prop = 0.0 self.assertAlmostEqual(value, prop, delta=1E-7, ! msg="In script %s: %s should be %f but found %f" % (f, var['tag'], value, prop)) prop = fdm[var['prop']] if var['tag'] == 'psi': --- 177,181 ---- prop = 0.0 self.assertAlmostEqual(value, prop, delta=1E-7, ! msg="In %s: %s should be %f but found %f" % (f, var['tag'], value, prop)) prop = fdm[var['prop']] if var['tag'] == 'psi': *************** *** 179,183 **** prop = 0.0 self.assertAlmostEqual(value, prop, delta=1E-7, ! msg="In script %s: %s should be %f but found %f" % (f, var['tag'], value, prop)) # Execute the first second of the script. This is to make sure that the --- 183,187 ---- prop = 0.0 self.assertAlmostEqual(value, prop, delta=1E-7, ! msg="In %s: %s should be %f but found %f" % (f, var['tag'], value, prop)) # Execute the first second of the script. This is to make sure that the *************** *** 187,191 **** except RuntimeError as e: if e.args[0] == 'Trim Failed': ! self.fail("Trim failed in script %s" % (f,)) else: raise --- 191,195 ---- except RuntimeError as e: if e.args[0] == 'Trim Failed': ! self.fail("Trim failed in %s" % (f,)) else: raise *************** *** 208,230 **** csv_value = 0.0 self.assertAlmostEqual(value, csv_value, delta=1E-7, ! msg="In script %s: %s should be %f but found %f" % (f, var['tag'], value, csv_value)) ! ! del fdm ! def test_geod_position_from_init_file_v2(self): ! prop_output_to_CSV = ['position/geod-alt-ft'] ! vars = [{'tag': 'latitude', 'unit': convtodeg, 'default_unit': 'RAD', ! 'ic_prop': 'ic/lat-geod-deg', 'prop': 'position/lat-geod-deg', ! 'CSV_header': 'Latitude Geodetic (deg)'}, ! {'tag': 'longitude', 'unit': convtodeg, 'default_unit': 'RAD', 'ic_prop': 'ic/long-gc-deg', 'prop': 'position/long-gc-deg', 'CSV_header': 'Longitude (deg)'}, {'tag': 'altitudeAGL', 'unit': convtoft, 'default_unit': 'FT', ! 'ic_prop': 'ic/geod-alt-ft', 'prop': 'position/geod-alt-ft', ! 'CSV_header': '/fdm/jsbsim/position/geod-alt-ft'}, {'tag': 'altitudeMSL', 'unit': convtoft, 'default_unit': 'FT', 'ic_prop': 'ic/h-sl-ft', 'prop': 'position/h-sl-ft', 'CSV_header': 'Altitude ASL (ft)'}] for s in self.script_list(('ZLT-NT-moored-1.xml', '737_cruise_steady_turn_simplex.xml')): --- 212,244 ---- csv_value = 0.0 self.assertAlmostEqual(value, csv_value, delta=1E-7, ! msg="In %s: %s should be %f but found %f" % (f, var['tag'], value, csv_value)) ! def GetVariables(self, lat_tag): ! vars = [{'tag': 'longitude', 'unit': convtodeg, 'default_unit': 'RAD', 'ic_prop': 'ic/long-gc-deg', 'prop': 'position/long-gc-deg', 'CSV_header': 'Longitude (deg)'}, {'tag': 'altitudeAGL', 'unit': convtoft, 'default_unit': 'FT', ! 'ic_prop': 'ic/h-agl-ft', 'prop': 'position/h-agl-ft', ! 'CSV_header': 'Altitude AGL (ft)'}, {'tag': 'altitudeMSL', 'unit': convtoft, 'default_unit': 'FT', 'ic_prop': 'ic/h-sl-ft', 'prop': 'position/h-sl-ft', 'CSV_header': 'Altitude ASL (ft)'}] + if lat_tag is None: + lat_vars = [] + elif 'type' not in lat_tag.attrib or lat_tag.attrib['type'][:4] != "geod": + lat_vars = [{'tag': 'latitude', 'unit': convtodeg, + 'default_unit': 'RAD', 'ic_prop': 'ic/lat-gc-deg', + 'prop': 'position/lat-gc-deg', + 'CSV_header': 'Latitude (deg)'}] + else: + lat_vars = [{'tag': 'latitude', 'unit': convtodeg, + 'default_unit': 'RAD', 'ic_prop': 'ic/lat-geod-deg', + 'prop': 'position/lat-geod-deg', + 'CSV_header': 'Latitude Geodetic (deg)'}] + + return lat_vars+vars + + def test_geod_position_from_init_file_v2(self): for s in self.script_list(('ZLT-NT-moored-1.xml', '737_cruise_steady_turn_simplex.xml')): *************** *** 233,246 **** # Only testing version 2.0 of init files ! if ('version' not in IC_root.attrib ! or float(IC_root.attrib['version']) != 2.0): continue position_tag = IC_root.find('position') lat_tag = position_tag.find('latitude') - if lat_tag is None or 'type' not in lat_tag.attrib or lat_tag.attrib['type'][:4] != "geod": - continue ! self.CheckICValues(vars, tree, position_tag, s, prop_output_to_CSV) RunTest(TestInitialConditions) --- 247,311 ---- # Only testing version 2.0 of init files ! if ('version' not in IC_root.attrib or float(IC_root.attrib['version']) != 2.0): continue position_tag = IC_root.find('position') lat_tag = position_tag.find('latitude') ! f, fdm = self.LoadScript(tree, s) ! self.CheckICValues(self.GetVariables(lat_tag), 'script %s' % (f,), ! fdm, position_tag) ! del fdm ! ! def test_initial_latitude(self): ! Output_file = self.sandbox.path_to_jsbsim_file('tests', 'output.xml') ! GEODETIC, ELEVATION, ALTITUDE = (1, 2, 4) ! ! for v in ('', '_v2'): ! IC_file = self.sandbox.path_to_jsbsim_file('aircraft', 'ball', ! 'reset00'+v+'.xml') ! ! for i in xrange(8): ! for latitude_pos in xrange(4): ! IC_tree = et.parse(IC_file) ! IC_root = IC_tree.getroot() ! if v: ! position_tag = IC_root.find('position') ! latitude_tag = et.SubElement(position_tag, 'latitude') ! latitude_tag.attrib['unit'] = 'DEG' ! else: ! position_tag = IC_root ! latitude_tag = IC_root.find('latitude') ! ! latitude_tag.text = str(latitude_pos*30.) ! ! if i & GEODETIC: ! latitude_tag.attrib['type'] = 'geod' ! ! if i & ELEVATION: ! elevation_tag = et.SubElement(IC_root, 'elevation') ! elevation_tag.text = '1000.' ! ! if i & ALTITUDE: ! if v: ! altitude_tag = position_tag.find('altitudeMSL') ! altitude_tag.tag = 'altitudeAGL' ! else: ! altitude_tag = position_tag.find('altitude') ! altitude_tag.tag = 'altitudeMSL' ! ! IC_tree.write('IC.xml') ! ! fdm = CreateFDM(self.sandbox) ! fdm.load_model('ball') ! fdm.set_output_directive(Output_file) ! fdm.set_output_filename(1, 'check_csv_values.csv') ! fdm.load_ic('IC.xml', False) ! fdm.run_ic() ! ! self.CheckICValues(self.GetVariables(latitude_tag), ! 'IC%d' % (i,), fdm, position_tag) ! ! del fdm RunTest(TestInitialConditions) |
From: Bertrand <bco...@us...> - 2016-06-25 19:55:18
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv12178/tests Modified Files: jsbsim.pxd Log Message: Intercept exceptions from more Python routines. Index: jsbsim.pxd =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/jsbsim.pxd,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** jsbsim.pxd 16 May 2016 17:25:48 -0000 1.2 --- jsbsim.pxd 25 Jun 2016 19:55:15 -0000 1.3 *************** *** 64,68 **** void Unbind() bool Run() except +convertJSBSimToPyExc ! bool RunIC() except + bool LoadModel(string model, bool add_model_to_path) --- 64,68 ---- void Unbind() bool Run() except +convertJSBSimToPyExc ! bool RunIC() except +convertJSBSimToPyExc bool LoadModel(string model, bool add_model_to_path) *************** *** 72,76 **** string model, bool add_model_to_path) ! bool LoadScript(string script, double delta_t, string initfile) except + bool SetEnginePath(string path) bool SetAircraftPath(string path) --- 72,76 ---- string model, bool add_model_to_path) ! bool LoadScript(string script, double delta_t, string initfile) except +convertJSBSimToPyExc bool SetEnginePath(string path) bool SetAircraftPath(string path) |
From: Bertrand <bco...@us...> - 2016-06-25 19:50:54
|
Update of /cvsroot/jsbsim/JSBSim In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv11978 Modified Files: CMakeLists.txt Log Message: Do not package the TAGS file. Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/CMakeLists.txt,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** CMakeLists.txt 18 Oct 2015 09:46:39 -0000 1.9 --- CMakeLists.txt 25 Jun 2016 19:50:50 -0000 1.10 *************** *** 87,90 **** --- 87,91 ---- "/.libs/" "/CVS/" + "TAGS" "${CPACK_SOURCE_IGNORE_FILES}") include (CPack) |
From: Bertrand <bco...@us...> - 2016-06-25 18:09:25
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/mk82 In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv7132/aircraft/mk82 Modified Files: mk82.xml Log Message: The Mk82 model now uses STRUCTURE contact points. Its corresponding script is now using a better integration scheme to handle the high spin rates (and prevent overflows).And finally the simulation is terminated as soon as the bomb hits the ground (to avoid a violent rebound which cannot happen anyway). Index: mk82.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/mk82/mk82.xml,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** mk82.xml 22 Dec 2012 15:22:22 -0000 1.12 --- mk82.xml 25 Jun 2016 18:09:22 -0000 1.13 *************** *** 63,67 **** <ground_reactions> ! <contact type="BOGEY" name="NOSE_CONTACT"> <location unit="IN"> <x> 0 </x> --- 63,67 ---- <ground_reactions> ! <contact type="STRUCTURE" name="NOSE_CONTACT"> <location unit="IN"> <x> 0 </x> *************** *** 78,82 **** <retractable>0</retractable> </contact> ! <contact type="BOGEY" name="TAIL_CONTACT"> <location unit="IN"> <x> 66 </x> --- 78,82 ---- <retractable>0</retractable> </contact> ! <contact type="STRUCTURE" name="TAIL_CONTACT"> <location unit="IN"> <x> 66 </x> |
From: Bertrand <bco...@us...> - 2016-06-25 18:09:25
|
Update of /cvsroot/jsbsim/JSBSim/scripts In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv7132/scripts Modified Files: mk82_script.xml Log Message: The Mk82 model now uses STRUCTURE contact points. Its corresponding script is now using a better integration scheme to handle the high spin rates (and prevent overflows).And finally the simulation is terminated as soon as the bomb hits the ground (to avoid a violent rebound which cannot happen anyway). Index: mk82_script.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/scripts/mk82_script.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** mk82_script.xml 24 Aug 2006 13:38:16 -0000 1.3 --- mk82_script.xml 25 Jun 2016 18:09:22 -0000 1.4 *************** *** 5,8 **** name="MK-82-01A"> <use aircraft="mk82" initialize="reset00"/> ! <run start="0.00" end="500.00" dt="0.020"/> </runscript> --- 5,15 ---- name="MK-82-01A"> <use aircraft="mk82" initialize="reset00"/> ! <run start="0.00" end="500.00" dt="0.020"> ! <property value="3">simulation/integrator/position/rotational</property> ! <event name="Boom!"> ! <condition>contact/unit/WOW == 1</condition> ! <set name="simulation/terminate" value="1"/> ! <notify/> ! </event> ! </run> </runscript> |
From: Bertrand <bco...@us...> - 2016-06-25 17:48:05
|
Update of /cvsroot/jsbsim/JSBSim/src/models In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv5685 Modified Files: FGLGear.cpp Log Message: Display the simulation time at which a crash has been detected. Index: FGLGear.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/FGLGear.cpp,v retrieving revision 1.123 retrieving revision 1.124 diff -C2 -r1.123 -r1.124 *** FGLGear.cpp 16 May 2016 18:19:57 -0000 1.123 --- FGLGear.cpp 25 Jun 2016 17:48:02 -0000 1.124 *************** *** 556,560 **** SinkRate > 1.4666*30 ) && !fdmex->IntegrationSuspended()) { ! PutMessage("Crash Detected: Simulation FREEZE."); // fdmex->SuspendIntegration(); } --- 556,562 ---- SinkRate > 1.4666*30 ) && !fdmex->IntegrationSuspended()) { ! ostringstream buf; ! buf << "*CRASH DETECTED* " << fdmex->GetSimTime() << " seconds: " << name; ! PutMessage(buf.str()); // fdmex->SuspendIntegration(); } |
From: Bertrand <bco...@us...> - 2016-06-25 17:45:46
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/L410 In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv5544 Modified Files: reset00.xml Log Message: Set a better initial altitude to avoid a rebound of the aircraft. Index: reset00.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/L410/reset00.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** reset00.xml 12 Apr 2015 16:55:48 -0000 1.1 --- reset00.xml 25 Jun 2016 17:45:42 -0000 1.2 *************** *** 13,17 **** <theta unit="DEG"> 0.0 </theta> <psi unit="DEG"> 0.0 </psi> ! <altitude unit="FT"> 6.5 </altitude> <elevation unit="FT"> 0.0 </elevation> <hwind> 0.0 </hwind> --- 13,17 ---- <theta unit="DEG"> 0.0 </theta> <psi unit="DEG"> 0.0 </psi> ! <altitude unit="FT"> 7.1 </altitude> <elevation unit="FT"> 0.0 </elevation> <hwind> 0.0 </hwind> |
From: Bertrand <bco...@us...> - 2016-06-25 10:16:25
|
Update of /cvsroot/jsbsim/JSBSim/scripts In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv19195 Modified Files: L410.xml Log Message: Set the gear control property such that the gear remains extended during the execution of the script. Index: L410.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/scripts/L410.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** L410.xml 8 Jul 2010 11:39:53 -0000 1.4 --- L410.xml 25 Jun 2016 10:16:22 -0000 1.5 *************** *** 7,10 **** --- 7,11 ---- <use aircraft="L410" initialize="reset00"/> <run start="0.0" end="10" dt="0.0010"> + <property value="1.0">/controls/gear/gear-down-cond</property> <event name="Turn on battery 1"> <condition>simulation/sim-time-sec ge 5.0</condition> |