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: Erik H. <eh...@us...> - 2016-08-26 09:30:47
|
Update of /cvsroot/jsbsim/JSBSim In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv22319 Modified Files: JSBSim.vcxproj Log Message: Add propertyObject.cxx to the MSVC10 project file Index: JSBSim.vcxproj =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/JSBSim.vcxproj,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** JSBSim.vcxproj 9 Dec 2015 04:28:14 -0000 1.15 --- JSBSim.vcxproj 26 Aug 2016 09:30:44 -0000 1.16 *************** *** 597,600 **** --- 597,601 ---- <ClCompile Include="src\input_output\FGXMLParse.cpp" /> <ClCompile Include="src\JSBSim.cpp" /> + <ClCompile Include="src\simgear\props\propertyObject.cxx" /> <ClCompile Include="src\simgear\props\props.cxx" /> <ClCompile Include="src\simgear\xml\xmlparse.c" /> *************** *** 653,655 **** <ImportGroup Label="ExtensionTargets"> </ImportGroup> ! </Project> \ No newline at end of file --- 654,656 ---- <ImportGroup Label="ExtensionTargets"> </ImportGroup> ! </Project> |
From: Erik H. <eh...@us...> - 2016-08-20 09:01:01
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv13512 Modified Files: Aircraft.cpp Log Message: Add a comment about CD for gear |
From: Erik H. <eh...@us...> - 2016-08-20 09:01:01
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv13512/Systems Modified Files: Controls.cpp Log Message: Add a comment about CD for gear Index: Controls.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Controls.cpp,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -r1.47 -r1.48 *** Controls.cpp 19 Aug 2016 10:20:42 -0000 1.47 --- Controls.cpp 20 Aug 2016 09:00:58 -0000 1.48 *************** *** 320,324 **** if (_aircraft->_user_wing_data > 0) { ! _aircraft->_Cmalpha = CLaw[0]*(dcgx/cbarw) - Vh*CLah[0]*(1.0f-deda); _aircraft->_Cmq = -_aircraft->_CLq*(lh/cbarw); _aircraft->_Cmadot = -_aircraft->_CLadot*(lh/cbarw); --- 320,327 ---- if (_aircraft->_user_wing_data > 0) { ! // float dwf = L/_aircraft->_aero_rp[X]; ! // float Kf = 0.033f + 0.538f*dwf + 1.5f*dwf*dwf; ! // float Cmfus = Kf*D*D*L/Sw/cbarw/CLaw[0]; ! _aircraft->_Cmalpha = CLaw[0]*(dcgx/cbarw) - Vh*CLah[0]*(1.0f-deda); _aircraft->_Cmq = -_aircraft->_CLq*(lh/cbarw); _aircraft->_Cmadot = -_aircraft->_CLadot*(lh/cbarw); *************** *** 478,481 **** --- 481,485 ---- file << " <!-- CD0 is based on fuselage, wing, horizontal- en vertical tail -->" << std::endl; file << " <!-- Antennas, struts and wires are not taken into account -->" << std::endl; + file << " <!-- CD for gear (fixed and retractable) is defined below -->" << std::endl; file << " <function name=\"aero/force/Drag_zero_lift\">" << std::endl; file << " <description>Drag at zero lift</description>" << std::endl; |
From: Erik H. <eh...@us...> - 2016-08-20 08:04:13
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv10976 Modified Files: Aircraft.cpp aeromatic.cpp types.h version Log Message: Add some comments when logging to the parameter file for clearity, when possible Index: aeromatic.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/aeromatic.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -r1.9 -r1.10 *** aeromatic.cpp 6 Jul 2016 07:44:56 -0000 1.9 --- aeromatic.cpp 20 Aug 2016 08:04:10 -0000 1.10 *************** *** 95,99 **** } if (log.is_open()) { ! log << input << endl; } } --- 95,104 ---- } if (log.is_open()) { ! log << input; ! if (param->get_type() != Aeromatic::PARAM_STRING && ! param->get_type() != Aeromatic::PARAM_BOOL) { ! log << std::setw(32-input.size()) << "; " << param->name(); ! } ! log << endl; } } Index: types.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/types.h,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -r1.22 -r1.23 *** types.h 19 Aug 2016 10:20:42 -0000 1.22 --- types.h 20 Aug 2016 08:04:10 -0000 1.23 *************** *** 216,219 **** --- 216,220 ---- std::string get(); + enum ParamType get_type() { return ParamType(_ptype); } const char* get_units() { return _cvt_t[_utype].name[_convert]; Index: version =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/version,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -r1.20 -r1.21 *** version 19 Aug 2016 10:20:42 -0000 1.20 --- version 20 Aug 2016 08:04:10 -0000 1.21 *************** *** 1 **** ! 3.3.6 --- 1 ---- ! 3.3.7 |
From: Erik H. <eh...@us...> - 2016-08-19 10:20:46
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv8714 Modified Files: AeroBiplane.cpp AeroFighterJet.cpp AeroHighPerformance.cpp AeroJetTransport.cpp AeroLightGA.cpp AeroPropTransport.cpp Aircraft.cpp types.h version Log Message: Calculate CD0 based on the build-up method Index: AeroBiplane.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroBiplane.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** AeroBiplane.cpp 18 Aug 2016 12:52:40 -0000 1.3 --- AeroBiplane.cpp 19 Aug 2016 10:20:42 -0000 1.4 *************** *** 175,179 **** float const Biplane::_fuselage_diameter_t[1][5] = { ! { 4.0f, 4.0f, 5.5f, 6.0f, 6.5f } }; --- 175,179 ---- float const Biplane::_fuselage_diameter_t[1][5] = { ! { 4.4f, 4.4f, 6.0f, 6.75f, 7.25f } }; Index: AeroFighterJet.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroFighterJet.cpp,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -r1.14 -r1.15 *** AeroFighterJet.cpp 18 Aug 2016 16:28:17 -0000 1.14 --- AeroFighterJet.cpp 19 Aug 2016 10:20:42 -0000 1.15 *************** *** 176,180 **** float const Fighter::_fuselage_diameter_t[1][5] = { ! { 2.5f, 3.25f, 4.0f, 4.25f, 4.75f } }; --- 176,180 ---- float const Fighter::_fuselage_diameter_t[1][5] = { ! { 2.75f, 3.85f, 4.5f, 4.75f, 5.25f } }; Index: AeroHighPerformance.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroHighPerformance.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** AeroHighPerformance.cpp 18 Aug 2016 16:28:17 -0000 1.13 --- AeroHighPerformance.cpp 19 Aug 2016 10:20:42 -0000 1.14 *************** *** 177,181 **** float const Performance::_fuselage_diameter_t[1][5] = { ! { 2.5f, 3.0f, 3.5f, 3.75f, 4.0f } }; --- 177,181 ---- float const Performance::_fuselage_diameter_t[1][5] = { ! { 2.75f, 3.25f, 3.75f, 4.25f, 4.5f } }; Index: AeroJetTransport.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroJetTransport.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** AeroJetTransport.cpp 18 Aug 2016 16:28:17 -0000 1.13 --- AeroJetTransport.cpp 19 Aug 2016 10:20:42 -0000 1.14 *************** *** 177,181 **** float const JetTransport::_fuselage_diameter_t[1][5] = { ! { 3.0f, 4.0f, 10.0f, 17.5f, 20.5f } }; --- 177,1 |
From: Erik H. <eh...@us...> - 2016-08-19 10:20:45
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv8714/Systems Modified Files: Controls.cpp Log Message: Calculate CD0 based on the build-up method Index: Controls.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Controls.cpp,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -r1.46 -r1.47 *** Controls.cpp 18 Aug 2016 13:19:52 -0000 1.46 --- Controls.cpp 19 Aug 2016 10:20:42 -0000 1.47 *************** *** 154,171 **** // drag float Sv = _aircraft->_vtail.area; // Sfus: Fuselage wetted area ! float TC = _aircraft->_wing.thickness/cbarw; ! float k0 = 0.075f; ! float k1 = 0.2f*TC; // 1.256f; // correction factor for wing thickness ! // float k2 = 1.12f; // fuselage fineness ratio correction factor ! float Cf = 0.006f; // skin Friction Coefficient ! float fwings = Cf*(Sw+Sh+Sv)*2.04f*k1; ! float CD0w = fwings/Sw; ! // float ffus = Cf*Sfus*k2; ! // float CD0f = ffus/Sw; ! // _aircraft->_CD0 = CD0f + CD0w; ! _aircraft->_CD0 *= (1.0f - sinf(sweep)); // lift --- 154,227 ---- // drag + // http://faculty.dwc.edu/sadraey/Chapter%203.%20Drag%20Force%20and%20its%20Coefficient.pdf float Sv = _aircraft->_vtail.area; + float TC = _aircraft->_wing.thickness/cbarw; + + float Re = 150000; + float Cf = 1.328f/sqrtf(Re); + + float M2, M = 0.01f; + float fM = 1.0f - 0.08f*powf(M, 1.45f); // Sfus: Fuselage wetted area ! float D = _aircraft->get_fuselage_diameter(); ! float L = _aircraft->_length; ! float fLD = 1.0f + 60.0f/powf(L/D, 3.0f) + 0.0025f*(L/D); ! float Sfus = 0.75f*PI*D*L; ! float CD0f = Cf*fLD*fM*(Sfus/Sw); ! ! // Main Wing ! Cf = 0.2f*Cf + 0.8f*0.455f/powf(logf(Re),2.58f); ! float CDminw = 0.004f; ! float fD = powf(CDminw/0.004f, 0.4f); ! float fTC = 1.0f + 2.7f*TC + 100.0f*powf(TC, 4.0f); ! float Swing = 2.0f*(1.0f + 0.5f*TC)*bw*cbarw; ! float CD0w = Cf*fM*fTC*fD*(Swing/Sw); ! CD0w *= (1.0f - sinf(sweep)); ! ! // Horizontal tail ! float cbarh = _aircraft->_htail.chord_mean; ! float TCh = _aircraft->_htail.thickness/cbarh; ! float CDminh = 0.002f; ! float fDh = powf(CDminh/0.004f, 0.4f); ! float fTCh = 1.0f + 2.7f*TCh + 100.0f*powf(TCh, 4.0f); ! float CD0h = Cf*fM*fTCh*fDh*(Swing/Sw); ! CD0h *= (1.0f - sinf(_aircraft->_htail.sweep)); ! ! // Vertical tail ! float bv = _aircraft->_vtail.span; ! float cbarv = _aircraft->_vtail.chord_mean; ! float TCv = _aircraft->_vtail.thickness/cbarv; ! float CDminv = 0.002f; ! float fDv = powf(CDminv/0.004f, 0.4f); ! float fTCv = 1.0f + 2.7f*TCv + 100.0f*powf(TCv, 4.0f); ! float Svtail = 2.0f*(1.0f + 0.5f*TCv)*bv*cbarv; ! float CD0v = Cf*fM*fTCv*fDv*(Svtail/Sv); ! CD0v *= (1.0f - sinf(_aircraft->_vtail.sweep)); ! ! float Kc = 1.05f; ! switch(_aircraft->_atype) ! { ! case LIGHT: ! if (_aircraft->_no_engines > 0) Kc = 1.3f; ! break; ! case PERFORMANCE: ! case PROP_TRANSPORT: ! Kc = 1.2f; ! break; ! case FIGHTER: ! case JET_TRANSPORT: ! Kc = 1.1f; ! break; ! // case BIPLANE: ! default: ! Kc = 1.5f; ! break; ! } ! #if 0 ! printf("CD0: %f (%f), Kc: %f, CD0f: %f, CD0w: %f, CD0h: %f, CD0v: %f\n", _aircraft->_CD0, Kc*(CD0f + CD0w + CD0h + CD0v), Kc, CD0f, CD0w, CD0h, CD0v); ! #endif ! _aircraft->_CD0 = Kc*(CD0f + CD0w + CD0h + CD0v); ! // lift *************** *** 185,190 **** float Er = _aircraft->_vtail.flap_ratio; // rudder ! float M = 0.0f; ! float M2 = M*M; float dsdB = 0.0f; // ds/dB --- 241,246 ---- float Er = _aircraft->_vtail.flap_ratio; // rudder ! M = 0.0f; ! M2 = M*M; float dsdB = 0.0f; // ds/dB *************** *** 197,202 **** float zw = -0.0f; // z-pos. wing: positive down float zv = -1.0f; // z-pos. vertical tail: positive down ! float fus_diameter = _aircraft->get_fuselage_diameter(); ! float Clbwf = 1.2f*sqrt(AR)*((zw+2.0f*fus_diameter)/(bw*bw)); float Clbvt = -(zv/bw)*CLah[0]; --- 253,257 ---- float zw = -0.0f; // z-pos. wing: positive down float zv = -1.0f; // z-pos. vertical tail: positive down ! float Clbwf = 1.2f*sqrt(AR)*((zw+2.0f*D)/(bw*bw)); float Clbvt = -(zv/bw)*CLah[0]; *************** *** 287,290 **** --- 342,347 ---- // yaw + float k0 = 0.075f; + float k1 = 1.0f+TC; // 1.256f; // correction factor for wing thickness _aircraft->_Cnbeta = nv*Vv*CLav[0]*(1.0-dsdB); _aircraft->_Cnr = -(k0*CL*CL + k1*CD0w) - 2.0f*nv*Vv*CLav[0]*(lv/bw); *************** *** 419,422 **** --- 476,481 ---- file << std::setprecision(4) << std::fixed << std::showpoint; + file << " <!-- CD0 is based on fuselage, wing, horizontal- en vertical tail -->" << std::endl; + file << " <!-- Antennas, struts and wires are not taken into account -->" << std::endl; file << " <function name=\"aero/force/Drag_zero_lift\">" << std::endl; file << " <description>Drag at zero lift</description>" << std::endl; |
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv22561 Modified Files: AeroFighterJet.cpp AeroHighPerformance.cpp AeroJetTransport.cpp AeroLightGA.cpp AeroPropTransport.cpp Aircraft.cpp Log Message: Finetune the (average) fuselage diameter values for the different classes of aircraft Index: AeroFighterJet.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroFighterJet.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** AeroFighterJet.cpp 18 Aug 2016 12:52:40 -0000 1.13 --- AeroFighterJet.cpp 18 Aug 2016 16:28:17 -0000 1.14 *************** *** 176,180 **** float const Fighter::_fuselage_diameter_t[1][5] = { ! { 4.0f, 5.5f, 6.0f, 6.5f, 7.0f } }; --- 176,180 ---- float const Fighter::_fuselage_diameter_t[1][5] = { ! { 2.5f, 3.25f, 4.0f, 4.25f, 4.75f } }; Index: AeroHighPerformance.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroHighPerformance.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** AeroHighPerformance.cpp 18 Aug 2016 12:52:40 -0000 1.12 --- AeroHighPerformance.cpp 18 Aug 2016 16:28:17 -0000 1.13 *************** *** 177,181 **** float const Performance::_fuselage_diameter_t[1][5] = { ! { 4.0f, 4.0f, 5.0f, 5.5f, 6.0f } }; --- 177,181 ---- float const Performance::_fuselage_diameter_t[1][5] = { ! { 2.5f, 3.0f, 3.5f, 3.75f, 4.0f } }; Index: AeroJetTransport.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroJetTransport.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** AeroJetTransport.cpp 18 Aug 2016 12:52:40 -0000 1.12 --- AeroJetTransport.cpp 18 Aug 2016 16:28:17 -0000 1.13 *************** *** 177,181 **** float const JetTransport::_fuselage_diameter_t[1][5] = { ! { 4.0f, 8.0f, 10.0f, 19.5f, 22.5f } }; --- 177,181 ---- float const JetTransport::_fuselage_diameter_t[1][5] = { ! { 3.0f, 4.0f, 10.0f, 17.5f, 20.5f } }; Index: AeroLightGA.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroLightGA.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** AeroLightGA.cpp 18 Aug 2016 12:52:40 -0000 1.13 --- AeroLightGA.cpp 18 Aug 2016 16:28:17 -0000 1.14 *************** *** 176,180 **** float const Light::_fuselage_diameter_t[1][5] = { ! { 4.0f, 8.0f, 8.0f, 10.0f, 10.0f } }; --- 176,180 ---- float const Light::_fuselage_diameter_t[1][5] = { ! { 2.5f, 4.0f, 5.0f, 5.5f, 5.5f } }; Index: AeroPropTransport.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroPropTransport.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** AeroPropTransport.cpp 18 Aug 2016 12:52:40 -0000 1.11 --- AeroPropTransport.cpp 18 Aug 2016 16:28:17 -0000 1.12 *************** *** 176,180 **** float const PropTransport::_fuselage_diameter_t[1][5] = { ! { 4.0f, 6.0f, 9.0f, 10.0f, 11.0f } }; --- 176,180 ---- float const PropTransport::_fuselage_diameter_t[1][5] = { ! { 4.0f, 5.5f, 9.0f, 10.0f, 11.0f } }; |
From: Erik H. <eh...@us...> - 2016-08-18 13:19:55
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14472/Systems Modified Files: Controls.cpp Log Message: Fix a sign error Index: Controls.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Controls.cpp,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -r1.45 -r1.46 *** Controls.cpp 18 Aug 2016 12:52:40 -0000 1.45 --- Controls.cpp 18 Aug 2016 13:19:52 -0000 1.46 *************** *** 1252,1256 **** TRopt = 0.45f*expf(-0.0375f*sweep); ! TR += TRopt; TR2 = TR*TR; fY = 0.0524f*TR2*TR2-0.15f*TR2*TR+0.1659f*TR2-0.0706f*TR+0.0119f; --- 1252,1256 ---- TRopt = 0.45f*expf(-0.0375f*sweep); ! TR -= TRopt; TR2 = TR*TR; fY = 0.0524f*TR2*TR2-0.15f*TR2*TR+0.1659f*TR2-0.0706f*TR+0.0119f; |
From: Erik H. <eh...@us...> - 2016-08-18 12:52:43
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv13274/Systems Modified Files: Controls.cpp Thruster.cpp Log Message: Improved version of approximation of the Oswald Efficiency factor e Index: Controls.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Controls.cpp,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -r1.44 -r1.45 *** Controls.cpp 16 Aug 2016 13:11:05 -0000 1.44 --- Controls.cpp 18 Aug 2016 12:52:40 -0000 1.45 *************** *** 197,201 **** float zw = -0.0f; // z-pos. wing: positive down float zv = -1.0f; // z-pos. vertical tail: positive down ! float fus_diameter = AR/bw; // 0.1f*bw; float Clbwf = 1.2f*sqrt(AR)*((zw+2.0f*fus_diameter)/(bw*bw)); float Clbvt = -(zv/bw)*CLah[0]; --- 197,201 ---- float zw = -0.0f; // z-pos. wing: positive down float zv = -1.0f; // z-pos. vertical tail: positive down ! float fus_diameter = _aircraft->get_fuselage_diameter(); float Clbwf = 1.2f*sqrt(AR)*((zw+2.0f*fus_diameter)/(bw*bw)); float Clbvt = -(zv/bw)*CLah[0]; *************** *** 303,310 **** { float CLalpha, CLmax, CL0, CLde, CLq, CLadot; ! float alpha, alpha0, TCF; std::stringstream file; ! TCF = 1.0f + _aircraft->_wing.thickness/_aircraft->_wing.chord_mean; CLalpha = _aircraft->_CLalpha[0]; CLmax = _aircraft->_CLmax[0]; --- 303,310 ---- { float CLalpha, CLmax, CL0, CLde, CLq, CLadot; ! float alpha, alpha0, TC; std::stringstream file; ! TC = _aircraft->_wing.thickness/_aircraft->_wing.chord_mean; CLalpha = _aircraft->_CLalpha[0]; CLmax = _aircraft->_CLmax[0]; *************** *** 339,345 **** file << " <tableData>" << std::endl; file << " -1.57 0.0000" << std::endl; ! file << " -1.22 " << std::setw(6) << (-0.6428*TCF) << std::endl; ! file << " -1.05 " << std::setw(6) << (-0.8660*TCF) << std::endl; ! file << " -0.88 " << std::setw(6) << (-1.0f*TCF) << std::endl; file << " " << std::setprecision(2) << (-0.6+alpha0) << " " << std::setw(6) << std::setprecision(4) << -(CLmax-(0.6*alpha*CLalpha)-CL0) << std::endl; file << " " << std::setprecision(2) << (-alpha+alpha0) << std::setprecision(4) << " " << (-CLmax+CL0) << std::endl; --- 339,345 ---- file << " <tableData>" << std::endl; file << " -1.57 0.0000" << std::endl; ! file << " -1.22 " << std::setw(6) << (-0.6428*(1.0f-TC)) << std::endl; ! file << " -1.05 " << std::setw(6) << (-0.8660*(1.0f-TC)) << std::endl; ! file << " -0.88 " << std::setw(6) << (-1.0f*(1.0f-TC)) << std::endl; file << " " << std::setprecision(2) << (-0.6+alpha0) << " " << std::setw(6) << std::setprecision(4) << -(CLmax-(0.6*alpha*CLalpha)-CL0) << std::endl; file << " " << std::setprecision(2) << (-alpha+alpha0) << std::setprecision(4) << " " << (-CLmax+CL0) << std::endl; *************** *** 347,353 **** file << " " << std::setprecision(2) << (alpha) << std::setprecision(4) << " " << (CLmax) << std::endl; file << " 0.60 " << std::setw(6) << (CLmax-(0.6*alpha*CLalpha)) << std::endl; ! file << " 0.88 " << std::setw(6) << (1.0f*TCF) << std::endl; ! file << " 1.05 " << std::setw(6) << (0.8660*TCF) << std::endl; ! file << " 1.22 " << std::setw(6) << (0.6428*TCF) << std::endl; file << " 1.57 0.0000" << std::endl; file << " </tableData>" << std::endl; --- 347,353 ---- file << " " << std::setprecision(2) << (alpha) << std::setprecision(4) << " " << (CLmax) << std::endl; file << " 0.60 " << std::setw(6) << (CLmax-(0.6*alpha*CLalpha)) << std::endl; ! file << " 0.88 " << std::setw(6) << (1.0f*(1.0f+TC)) << std::endl; ! file << " 1.05 " << std::setw(6) << (0.8660*(1.0f+TC)) << std::endl; ! file << " 1.22 " << std::setw(6) << (0.6428*(1.0f+TC)) << std::endl; file << " 1.57 0.0000" << std::endl; file << " </tableData>" << std::endl; *************** *** 1168,1172 **** // lift coefficient gradient over angle of attack in incompressible flow float CLalpha_ic = 1.0f; ! float M, M2, k, R, e; // Wing dihedral --- 1168,1172 ---- // lift coefficient gradient over angle of attack in incompressible flow float CLalpha_ic = 1.0f; ! float M, M2, e; // Wing dihedral *************** *** 1196,1200 **** CLaw[1] = PAR/2.0f; CLaw[2] = PAR/2.0f; - e = 1.0f; break; case DELTA: --- 1196,1199 ---- *************** *** 1206,1214 **** M = 2.0f; M2 = M*M; CLaw[2] = 4.0f / (sqrtf(M2 - 1.0f)*(1.0f-TR/(2.0f*AR*sqrtf(M2 - 1.0f)))); - - // Pamadi approximation for Oswald Efficiency Factor e - k = (AR*TR) / cosf(sweep_le); - R = 0.0004f*k*k*k - 0.008f*k*k + 0.05f*k + 0.86f; - e = (1.1f* CLaw[0]) / (R* CLaw[0] + ((1.0f-R)*PAR)); break; case VARIABLE_SWEEP: --- 1205,1208 ---- *************** *** 1222,1238 **** M = 2.0f; M2 = M*M; CLaw[2] = 4.0f / (sqrtf(M2 - 1.0f)*(1.0f-TR/(2.0f*AR*sqrtf(M2 - 1.0f)))); /* ! * Comparison of different methods of estimating the Oswald factor (Grosu). * http://www.fzt.haw-hamburg.de/pers/Scholz/OPerA/OPerA_PUB_DLRK_12-09-10.pdf */ ! // Pamadi approximation for Oswald Efficiency Factor e ! k = (AR*TR) / cosf(sweep_le); ! R = 0.0004f*k*k*k - 0.008f*k*k + 0.05f*k + 0.86f; ! e = (1.1f* CLaw[0]) / (R* CLaw[0] + ((1.0f-R)*PAR)); ! break; ! } - if (wing.efficiency == 0) { wing.efficiency = e; } --- 1216,1269 ---- M = 2.0f; M2 = M*M; CLaw[2] = 4.0f / (sqrtf(M2 - 1.0f)*(1.0f-TR/(2.0f*AR*sqrtf(M2 - 1.0f)))); + break; + } + + if (wing.efficiency == 0) + { + if (wing.shape != ELLIPTICAL) + { + #if 0 + /* + * Raymer, D. + * Aircraft Design: A Conceptual Approach, 1999 + */ + if (fabsf(sweep_le) < 0.05f) { + e = 1.78f*(1.0f - 0.045f*powf(AR, 0.68f)) - 0.64f; + } else { + e = 4.61f*(1.0f - 0.045f*powf(AR, 0.86f))*powf(cosf(sweep_le), 0.15f) - 3.1f; + } + #elif 0 + /* + * Pamadi, Bandu N. + * Performance, Stability, Dynamics, & Control, 2004 + */ + float k = (AR*TR) / cosf(sweep_le); + float R = 0.0004f*k*k*k - 0.008f*k*k + 0.05f*k + 0.86f; + e = (1.1f* CLaw[0]) / (R* CLaw[0] + ((1.0f-R)*PAR)); + #else /* ! * Scholz, D. and NiÈÄ, M. ! * Comparison of different methods of estimating the Oswald factor, 2012 * http://www.fzt.haw-hamburg.de/pers/Scholz/OPerA/OPerA_PUB_DLRK_12-09-10.pdf */ ! float e_theo, fY, TR2, TRopt, kf, kd; ! float bw = _aircraft->_wing.span; ! ! TRopt = 0.45f*expf(-0.0375f*sweep); ! TR += TRopt; ! TR2 = TR*TR; ! fY = 0.0524f*TR2*TR2-0.15f*TR2*TR+0.1659f*TR2-0.0706f*TR+0.0119f; ! e_theo = 1.0f / (1.0f + fY*AR); ! ! kf = 1.0f - 2.0f*powf(_aircraft->get_fuselage_diameter()/bw, 2.0f); ! kd = powf(1.0f/cosf(dihedral), 2.0f); ! e = e_theo * kf * kd; ! #endif ! } ! else { // wing.shape == ELLIPTICAL ! e = 1.0f; ! } wing.efficiency = e; } Index: Thruster.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Thruster.cpp,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -r1.27 -r1.28 *** Thruster.cpp 28 Jul 2016 10:58:15 -0000 1.27 --- Thruster.cpp 18 Aug 2016 12:52:40 -0000 1.28 *************** *** 305,309 **** // estimate the number of blades - printf("_Cp0: %f\n", _Cp0); if (_Cp0 < 0.035f) { _blades = 2; --- 305,308 ---- |
From: Erik H. <eh...@us...> - 2016-08-18 12:52:43
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv13274 Modified Files: AeroBiplane.cpp AeroFighterJet.cpp AeroHighPerformance.cpp AeroJetTransport.cpp AeroLightGA.cpp AeroPropTransport.cpp Aircraft.cpp Aircraft.h version Log Message: Improved version of approximation of the Oswald Efficiency factor e Index: AeroBiplane.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroBiplane.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** AeroBiplane.cpp 2 Jan 2016 14:58:27 -0000 1.2 --- AeroBiplane.cpp 18 Aug 2016 12:52:40 -0000 1.3 *************** *** 173,176 **** --- 173,181 ---- // ---------------------------------------------------------------------------- + float const Biplane::_fuselage_diameter_t[1][5] = + { + { 4.0f, 4.0f, 5.5f, 6.0f, 6.5f } + }; + float const Biplane::_wing_loading_t[1][5] = { Index: AeroFighterJet.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroFighterJet.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** AeroFighterJet.cpp 2 Jan 2016 14:58:27 -0000 1.12 --- AeroFighterJet.cpp 18 Aug 2016 12:52:40 -0000 1.13 *************** *** 174,177 **** --- 174,182 ---- // ---------------------------------------------------------------------------- + float const Fighter::_fuselage_diameter_t[1][5] = + { + { 4.0f, 5.5f, 6.0f, 6.5f, 7.0f } + }; + float const Fighter::_wing_loading_t[1][5] = { Index: AeroHighPerformance.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroHighPerformance.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** AeroHighPerformance.cpp 2 Jan 2016 14:58:27 -0000 1.11 --- AeroHighPerformance.cpp 18 Aug 2016 12:52:40 -0000 1.12 *************** *** 175,178 **** --- 175,183 ---- // ---------------------------------------------------------------------------- + float const Performance::_fuselage_diameter_t[1][5] = + { + { 4.0f, 4.0f, 5.0f, 5.5f, 6.0f } + }; + float const Performance::_wing_loading_t[1][5] = { Index: AeroJetTransport.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroJetTransport.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** AeroJetTransport.cpp 2 Jan 2016 14:58:27 -0000 1.11 --- AeroJetTransport.cpp 18 Aug 2016 12:52:40 -0000 1.12 *************** *** 175,178 **** --- 175,183 ---- // ---------------------------------------------------------------------------- + float const JetTransport::_fuselage_diameter_t[1][5] = + { + { 4.0f, 8.0f, 10.0f, 19.5f, 22.5f } + }; + float const JetTransport::_wing_loading_t[1][5] = { Index: AeroLightGA.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroLightGA.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** AeroLightGA.cpp 2 Jan 2016 14:58:27 -0000 1.12 --- AeroLightGA.cpp 18 Aug 2016 12:52:40 -0000 1.13 *************** *** 174,177 **** --- 174,182 ---- // ---------------------------------------------------------------------------- + float const Light::_fuselage_diameter_t[1][5] = + { + { 4.0f, 8.0f, 8.0f, 10.0f, 10.0f } + }; + float const Light::_wing_loading_t[1][5] = { Index: AeroPropTransport.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/AeroPropTransport.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** AeroPropTransport.cpp 2 Jan 2016 14:58:27 -0000 1.10 --- AeroPropTransport.cpp 18 Aug 2016 12:52:40 -0000 1.11 *************** *** 174,177 **** --- 174,182 ---- // ---------------------------------------------------------------------------- + float const PropTransport::_fuselage_diameter_t[1][5] = + { + { 4.0f, 6.0f, 9.0f, 10.0f, 11.0f } + }; + float const PropTransport::_wing_loading_t[1][5] = { Index: Aircraft.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Aircraft.cpp,v retrieving revision 1.70 retrieving revision 1.71 diff -C2 -r1.70 -r1.71 *** Aircraft.cpp 16 Aug 2016 12:01:46 -0000 1.70 --- Aircraft.cpp 18 Aug 2016 12:52:40 -0000 1.71 *************** *** 148,151 **** --- 148,152 ---- Aircraft::_aircraft = this; + _CL0 = 0.0f; _CLde = 0.0f; _CLq = 0.0f; _CLadot = 0.0f; _CD0 = 0.0f; _CDde = 0.0f; _CDbeta = 0.0f; Index: Aircraft.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Aircraft.h,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -r1.27 -r1.28 *** Aircraft.h 5 Jun 2016 20:00:13 -0000 1.27 --- Aircraft.h 18 Aug 2016 12:52:40 -0000 1.28 *************** *** 57,60 **** --- 57,61 ---- } + virtual float get_fuselage_diameter() { return 0.0f; } virtual float get_wing_loading() { return 0.0f; } virtual float get_aspect_ratio() { return 0.0f; } *************** *** 109,112 **** --- 110,116 ---- ~Light() {} + float get_fuselage_diameter() { + return _fuselage_diameter_t[_subtype][_engines]; + } float get_wing_loading() { return _wing_loading_t[_subtype][_engines]; *************** *** 151,154 **** --- 155,159 ---- protected: + static float const _fuselage_diameter_t[1][5]; static float const _wing_loading_t[1][5]; static float const _aspect_ratio_t[1][5]; *************** *** 187,190 **** --- 192,198 ---- ~Performance() {} + float get_fuselage_diameter() { + return _fuselage_diameter_t[_subtype][_engines]; + } float get_wing_loading() { return _wing_loading_t[_subtype][_engines]; *************** *** 229,232 **** --- 237,241 ---- protected: + static float const _fuselage_diameter_t[1][5]; static float const _wing_loading_t[1][5]; static float const _aspect_ratio_t[1][5]; *************** *** 265,268 **** --- 274,280 ---- ~Fighter() {} + float get_fuselage_diameter() { + return _fuselage_diameter_t[_subtype][_engines]; + } float get_wing_loading() { return _wing_loading_t[_subtype][_engines]; *************** *** 307,310 **** --- 319,323 ---- protected: + static float const _fuselage_diameter_t[1][5]; static float const _wing_loading_t[1][5]; static float const _aspect_ratio_t[1][5]; *************** *** 343,346 **** --- 356,362 ---- ~JetTransport() {} + float get_fuselage_diameter() { + return _fuselage_diameter_t[_subtype][_engines]; + } float get_wing_loading() { return _wing_loading_t[_subtype][_engines]; *************** *** 385,388 **** --- 401,405 ---- protected: + static float const _fuselage_diameter_t[1][5]; static float const _wing_loading_t[1][5]; static float const _aspect_ratio_t[1][5]; *************** *** 421,424 **** --- 438,444 ---- ~PropTransport() {} + float get_fuselage_diameter() { + return _fuselage_diameter_t[_subtype][_engines]; + } float get_wing_loading() { return _wing_loading_t[_subtype][_engines]; *************** *** 463,466 **** --- 483,487 ---- protected: + static float const _fuselage_diameter_t[1][5]; static float const _wing_loading_t[1][5]; static float const _aspect_ratio_t[1][5]; *************** *** 508,511 **** --- 529,535 ---- bool fdm(); + float get_fuselage_diameter() { + return _aircraft[_atype]->get_fuselage_diameter(); + } float get_wing_loading() { return _aircraft[_atype]->get_wing_loading(); Index: version =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/version,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -r1.18 -r1.19 *** version 16 Aug 2016 12:06:06 -0000 1.18 --- version 18 Aug 2016 12:52:40 -0000 1.19 *************** *** 1 **** ! 3.3.4 --- 1 ---- ! 3.3.5 |
From: Erik H. <eh...@us...> - 2016-08-16 13:11:08
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9618/Systems Modified Files: Controls.cpp Log Message: Add CL0 to -CLmax Index: Controls.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Controls.cpp,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -r1.43 -r1.44 *** Controls.cpp 16 Aug 2016 11:41:46 -0000 1.43 --- Controls.cpp 16 Aug 2016 13:11:05 -0000 1.44 *************** *** 343,347 **** file << " -0.88 " << std::setw(6) << (-1.0f*TCF) << std::endl; file << " " << std::setprecision(2) << (-0.6+alpha0) << " " << std::setw(6) << std::setprecision(4) << -(CLmax-(0.6*alpha*CLalpha)-CL0) << std::endl; ! file << " " << std::setprecision(2) << (-alpha+alpha0) << std::setprecision(4) << " " << (-CLmax) << std::endl; file << " 0.00 " << std::setw(6) << CL0 << std::endl; file << " " << std::setprecision(2) << (alpha) << std::setprecision(4) << " " << (CLmax) << std::endl; --- 343,347 ---- file << " -0.88 " << std::setw(6) << (-1.0f*TCF) << std::endl; file << " " << std::setprecision(2) << (-0.6+alpha0) << " " << std::setw(6) << std::setprecision(4) << -(CLmax-(0.6*alpha*CLalpha)-CL0) << std::endl; ! file << " " << std::setprecision(2) << (-alpha+alpha0) << std::setprecision(4) << " " << (-CLmax+CL0) << std::endl; file << " 0.00 " << std::setw(6) << CL0 << std::endl; file << " " << std::setprecision(2) << (alpha) << std::setprecision(4) << " " << (CLmax) << std::endl; |
From: Erik H. <eh...@us...> - 2016-08-16 12:06:10
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv6547 Modified Files: version Log Message: Increase the version number (now for real) Index: version =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/version,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -r1.17 -r1.18 *** version 13 Aug 2016 09:39:39 -0000 1.17 --- version 16 Aug 2016 12:06:06 -0000 1.18 *************** *** 1 **** ! 3.3.3 --- 1 ---- ! 3.3.4 |
From: Erik H. <eh...@us...> - 2016-08-16 12:01:49
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv6336 Modified Files: Aircraft.cpp Log Message: Increase the version number Index: Aircraft.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Aircraft.cpp,v retrieving revision 1.69 retrieving revision 1.70 diff -C2 -r1.69 -r1.70 *** Aircraft.cpp 6 Jul 2016 07:44:56 -0000 1.69 --- Aircraft.cpp 16 Aug 2016 12:01:46 -0000 1.70 *************** *** 532,543 **** file << " Outputs:" << std::endl; ! file << " wing loading: " << wing_loading << " lb/sq-ft" << std::endl; ! file << " payload: " << _payload << " lbs" << std::endl; ! file << " CL-alpha: " << _CLalpha[0] << " per radian" << std::endl; ! file << " CL-0: " << _CL0 << std::endl; ! file << " CL-max: " << _CLmax[0] << std::endl; ! file << " CD-0: " << _CD0 << std::endl; ! file << " K: " << _Kdi << std::endl; ! file << " Mcrit: " << _Mcrit << std::endl; file << "-->" << std::endl; file << std::endl; --- 532,544 ---- file << " Outputs:" << std::endl; ! file << " wing loading: " << wing_loading << " lb/sq-ft" << std::endl; ! file << " - thickness ratio: " << (_wing.thickness/_wing.chord_mean)*100 << "%" << std::endl; ! file << " payload: " << _payload << " lbs" << std::endl; ! file << " CL-alpha: " << _CLalpha[0] << " per radian" << std::endl; ! file << " CL-0: " << _CL0 << std::endl; ! file << " CL-max: " << _CLmax[0] << std::endl; ! file << " CD-0: " << _CD0 << std::endl; ! file << " K: " << _Kdi << std::endl; ! file << " Mcrit: " << _Mcrit << std::endl; file << "-->" << std::endl; file << std::endl; |
From: Erik H. <eh...@us...> - 2016-08-16 11:41:49
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv5471/Systems Modified Files: Controls.cpp Log Message: Extend the Lift table to +1.57 and -1.57 by supplying a sine function based on TC Index: Controls.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Controls.cpp,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -r1.42 -r1.43 *** Controls.cpp 13 Aug 2016 09:39:39 -0000 1.42 --- Controls.cpp 16 Aug 2016 11:41:46 -0000 1.43 *************** *** 38,41 **** --- 38,42 ---- #include <math.h> + #include <iostream> #include <sstream> #include <iomanip> *************** *** 291,298 **** #if 0 ! printf("Cma: %f, Cmadot: %f, Cmq: %f, Cmde: %f\n", _aircraft->_Cmalpha, _aircraft->_Cmadot, _aircraft->_Cmq, _aircraft->_Cmde); ! printf("CYbeta: %f, CYr: %f, CYp: %f, CYdr: %f\n", _aircraft->_CYbeta, _aircraft->_CYr, _aircraft->_CYp, _aircraft->_CYdr); ! printf("Cnbeta: %f, Cnr: %f, Cnp: %f, Cndr: %f\n", _aircraft->_Cnbeta, _aircraft->_Cnr, _aircraft->_Cnp, _aircraft->_Cndr); ! printf("Clbeta: %f, Clr: %f, Clp: %f\n", _aircraft->_Clbeta, _aircraft->_Clr, _aircraft->_Clp); #endif } --- 292,299 ---- #if 0 ! printf("Cma: %f, Cmadot: %f, Cmq: %f, Cmde: %f\n", _aircraft->_Cmalpha, _aircraft->_Cmadot, _aircraft->_Cmq, _aircraft->_Cmde); ! printf("CYbeta: %f, CYr: %f, CYp: %f, CYdr: %f\n", _aircraft->_CYbeta, _aircraft->_CYr, _aircraft->_CYp, _aircraft->_CYdr); ! printf("Cnbeta: %f, Cnr: %f, Cnp: %f, Cndr: %f\n", _aircraft->_Cnbeta, _aircraft->_Cnr, _aircraft->_Cnp, _aircraft->_Cndr); ! printf("Clbeta: %f, Clr: %f, Clp: %f\n", _aircraft->_Clbeta, _aircraft->_Clr, _aircraft->_Clp); #endif } *************** *** 301,307 **** std::string CableControls::lift() { ! float CLalpha, CLmax, CL0, CLde, CLq, CLadot, alpha; std::stringstream file; CLalpha = _aircraft->_CLalpha[0]; CLmax = _aircraft->_CLmax[0]; --- 302,310 ---- std::string CableControls::lift() { ! float CLalpha, CLmax, CL0, CLde, CLq, CLadot; ! float alpha, alpha0, TCF; std::stringstream file; + TCF = 1.0f + _aircraft->_wing.thickness/_aircraft->_wing.chord_mean; CLalpha = _aircraft->_CLalpha[0]; CLmax = _aircraft->_CLmax[0]; *************** *** 312,316 **** --- 315,332 ---- alpha = (CLmax-CL0)/CLalpha; + alpha0 = -CL0/CLalpha; + if (alpha >= 0.60) { + std::cerr << std::endl; + std::cerr << "*** ERROR: The alpha value for maximum lift is too high." << std::endl; + std::cerr << " This means the specified Stall Speed was too low." << std::endl; + std::cerr << " Make sure it is for a clean (no gear and no flaps) configurtion." << std::endl; + std::cerr << std::endl; + } + + // Post stall behaviour is loosly based on: + // http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20140000500.pdf + + file << " <!-- Lift above 0.85 and below -0.85 is generalised -->" << std::endl; file << std::setprecision(4) << std::fixed << std::showpoint; file << " <function name=\"aero/force/Lift_alpha\">" << std::endl; *************** *** 322,329 **** file << " <independentVar lookup=\"row\">aero/alpha-rad</independentVar>" << std::endl; file << " <tableData>" << std::endl; ! file << " -0.20 " << std::setw(5) << (-0.2*CLalpha + CL0) << std::endl; file << " 0.00 " << std::setw(6) << CL0 << std::endl; file << " " << std::setprecision(2) << (alpha) << std::setprecision(4) << " " << (CLmax) << std::endl; file << " 0.60 " << std::setw(6) << (CLmax-(0.6*alpha*CLalpha)) << std::endl; file << " </tableData>" << std::endl; file << " </table>" << std::endl; --- 338,354 ---- file << " <independentVar lookup=\"row\">aero/alpha-rad</independentVar>" << std::endl; file << " <tableData>" << std::endl; ! file << " -1.57 0.0000" << std::endl; ! file << " -1.22 " << std::setw(6) << (-0.6428*TCF) << std::endl; ! file << " -1.05 " << std::setw(6) << (-0.8660*TCF) << std::endl; ! file << " -0.88 " << std::setw(6) << (-1.0f*TCF) << std::endl; ! file << " " << std::setprecision(2) << (-0.6+alpha0) << " " << std::setw(6) << std::setprecision(4) << -(CLmax-(0.6*alpha*CLalpha)-CL0) << std::endl; ! file << " " << std::setprecision(2) << (-alpha+alpha0) << std::setprecision(4) << " " << (-CLmax) << std::endl; file << " 0.00 " << std::setw(6) << CL0 << std::endl; file << " " << std::setprecision(2) << (alpha) << std::setprecision(4) << " " << (CLmax) << std::endl; file << " 0.60 " << std::setw(6) << (CLmax-(0.6*alpha*CLalpha)) << std::endl; + file << " 0.88 " << std::setw(6) << (1.0f*TCF) << std::endl; + file << " 1.05 " << std::setw(6) << (0.8660*TCF) << std::endl; + file << " 1.22 " << std::setw(6) << (0.6428*TCF) << std::endl; + file << " 1.57 0.0000" << std::endl; file << " </tableData>" << std::endl; file << " </table>" << std::endl; *************** *** 1198,1201 **** --- 1223,1230 ---- CLaw[2] = 4.0f / (sqrtf(M2 - 1.0f)*(1.0f-TR/(2.0f*AR*sqrtf(M2 - 1.0f)))); + /* + * Comparison of different methods of estimating the Oswald factor (Grosu). + * http://www.fzt.haw-hamburg.de/pers/Scholz/OPerA/OPerA_PUB_DLRK_12-09-10.pdf + */ // Pamadi approximation for Oswald Efficiency Factor e k = (AR*TR) / cosf(sweep_le); |
From: Erik H. <eh...@us...> - 2016-08-13 09:39:42
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv4026 Modified Files: version Log Message: Split Drag_basif into Drag_parasite and Drag_alpha Index: version =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/version,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -r1.16 -r1.17 *** version 28 Jul 2016 10:58:48 -0000 1.16 --- version 13 Aug 2016 09:39:39 -0000 1.17 *************** *** 1 **** ! 3.3.2 --- 1 ---- ! 3.3.3 |
From: Erik H. <eh...@us...> - 2016-08-13 09:39:42
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv4026/Systems Modified Files: Controls.cpp Log Message: Split Drag_basif into Drag_parasite and Drag_alpha Index: Controls.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Controls.cpp,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -r1.41 -r1.42 *** Controls.cpp 6 Jul 2016 08:00:40 -0000 1.41 --- Controls.cpp 13 Aug 2016 09:39:39 -0000 1.42 *************** *** 394,409 **** file << std::setprecision(4) << std::fixed << std::showpoint; ! file << " <function name=\"aero/force/Drag_basic\">" << std::endl; file << " <description>Drag at zero lift</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; file << " <property>metrics/Sw-sqft</property>" << std::endl; file << " <table>" << std::endl; file << " <independentVar lookup=\"row\">aero/alpha-rad</independentVar>" << std::endl; file << " <tableData>" << std::endl; file << " -1.57 " << (CDmax) << std::endl; ! file << " " << std::setprecision(2) << (-alpha) << " " << std::setprecision(4) << (CD0 + alpha * CDalpha) << std::endl; ! file << " 0.00 " << (CD0) << std::endl; ! file << " " << std::setprecision(2) << (alpha) << " " << std::setprecision(4) << (CD0 + alpha * CDalpha) << std::endl; file << " 1.57 " << (CDmax) << std::endl; file << " </tableData>" << std::endl; --- 394,420 ---- file << std::setprecision(4) << std::fixed << std::showpoint; ! file << " <function name=\"aero/force/Drag_zero_lift\">" << std::endl; file << " <description>Drag at zero lift</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; file << " <property>metrics/Sw-sqft</property>" << std::endl; + file << " <value> " << (CD0) << " </value>" << std::endl; + file << " </product>" << std::endl; + file << " </function>" << std::endl; + file << std::endl; + + file << std::setprecision(4) << std::fixed << std::showpoint; + file << " <function name=\"aero/force/Drag_alpha\">" << std::endl; + file << " <description>Drag due to alpha</description>" << std::endl; + file << " <product>" << std::endl; + file << " <property>aero/qbar-psf</property>" << std::endl; + file << " <property>metrics/Sw-sqft</property>" << std::endl; file << " <table>" << std::endl; file << " <independentVar lookup=\"row\">aero/alpha-rad</independentVar>" << std::endl; file << " <tableData>" << std::endl; file << " -1.57 " << (CDmax) << std::endl; ! file << " " << std::setprecision(2) << (-alpha) << " " << std::setprecision(4) << (alpha * CDalpha) << std::endl; ! file << " 0.00 " << 0.0f << std::endl; ! file << " " << std::setprecision(2) << (alpha) << " " << std::setprecision(4) << (alpha * CDalpha) << std::endl; file << " 1.57 " << (CDmax) << std::endl; file << " </tableData>" << std::endl; |
From: Erik H. <eh...@us...> - 2016-07-28 10:58:52
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv3669 Modified Files: version Log Message: Increase the version number Index: version =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/version,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** version 6 Jul 2016 07:51:14 -0000 1.15 --- version 28 Jul 2016 10:58:48 -0000 1.16 *************** *** 1 **** ! 3.3.1 --- 1 ---- ! 3.3.2 |
From: Erik H. <eh...@us...> - 2016-07-28 10:58:32
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv3654/Systems Modified Files: Propulsion.cpp Log Message: Extend the Turboprop EnginePowerVC table frotm 250kts to 350kts. Index: Propulsion.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Propulsion.cpp,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -r1.37 -r1.38 *** Propulsion.cpp 4 Jun 2016 08:30:44 -0000 1.37 --- Propulsion.cpp 28 Jul 2016 10:58:29 -0000 1.38 *************** *** 805,817 **** file << " <independentVar lookup=\"column\">velocities/ve-kts</independentVar>" << std::endl; file << " <tableData>" << std::endl; ! file << " 0 50 100 150 200 250" << std::endl; ! file << " 503 0.357 0.380 0.400 0.425 0.457 0.486" << std::endl; ! file << " 1048 0.586 0.589 0.600 0.621 0.650 0.686" << std::endl; ! file << " 1328 0.707 0.721 0.731 0.757 0.786 0.821" << std::endl; ! file << " 1496 0.779 0.786 0.808 0.821 0.857 0.900" << std::endl; ! file << " 1684 0.850 0.857 0.874 0.900 0.943 0.979" << std::endl; ! file << " 1896 0.914 0.929 0.946 0.971 1 1.057" << std::endl; ! file << " 2135 1 1.011 1.029 1.043 1.083 1.150" << std::endl; ! file << " 2213 1.029 1.043 1.057 1.079 1.114 1.171" << std::endl; file << " </tableData>" << std::endl; file << " </table>" << std::endl; --- 805,817 ---- file << " <independentVar lookup=\"column\">velocities/ve-kts</independentVar>" << std::endl; file << " <tableData>" << std::endl; ! file << " 0 50 100 150 200 250 300 350" << std::endl; ! file << " 503 0.357 0.380 0.400 0.425 0.457 0.486 0.517 0.550" << std::endl; ! file << " 1048 0.586 0.589 0.600 0.621 0.650 0.686 0.724 0.764"<< std::endl; ! file << " 1328 0.707 0.721 0.731 0.757 0.786 0.821 0.858 0.896" << std::endl; ! file << " 1496 0.779 0.786 0.808 0.821 0.857 0.900 0.945 0.993" << std::endl; ! file << " 1684 0.850 0.857 0.874 0.900 0.943 0.979 1.016 1.055" << std::endl; ! file << " 1896 0.914 0.929 0.946 0.971 1 1.057 1.117 1.181" << std::endl; ! file << " 2135 1 1.011 1.029 1.043 1.083 1.150 1.221 1.297" << std::endl; ! file << " 2213 1.029 1.043 1.057 1.079 1.114 1.171 1.231 1.294" << std::endl; file << " </tableData>" << std::endl; file << " </table>" << std::endl; |
From: Erik H. <eh...@us...> - 2016-07-28 10:58:19
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv3634/Systems Modified Files: Thruster.cpp Log Message: Adjust ct_factor based on the number of blades and tweak the guessing table for the number fo blades Index: Thruster.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Thruster.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -r1.26 -r1.27 *** Thruster.cpp 11 Jun 2016 10:02:09 -0000 1.26 --- Thruster.cpp 28 Jul 2016 10:58:15 -0000 1.27 *************** *** 305,315 **** // estimate the number of blades if (_Cp0 < 0.035f) { _blades = 2; ! } else if (_Cp0 > 0.160f) { _blades = 8; ! } else if (_Cp0 > 0.105f) { _blades = 6; ! } else if (_Cp0 > 0.065f) { _blades = 4; } else { --- 305,316 ---- // estimate the number of blades + printf("_Cp0: %f\n", _Cp0); if (_Cp0 < 0.035f) { _blades = 2; ! } else if (_Cp0 > 0.280f) { _blades = 8; ! } else if (_Cp0 > 0.140f) { _blades = 6; ! } else if (_Cp0 > 0.070f) { _blades = 4; } else { *************** *** 498,507 **** file << "<propeller version=\"1.01\" name=\"prop\">" << std::endl; ! file << " <ixx> " << _ixx << " </ixx>" << std::endl; file << " <diameter unit=\"IN\"> " << (_diameter * FEET_TO_INCH) << " </diameter>" << std::endl; file << " <numblades> " << _blades << " </numblades>" << std::endl; file << " <gearratio> " << _gear_ratio << " </gearratio>" << std::endl; file << " <cp_factor> 1.00 </cp_factor>" << std::endl; ! file << " <ct_factor> 1.00 </ct_factor>" << std::endl; if(_fixed_pitch == false) --- 499,508 ---- file << "<propeller version=\"1.01\" name=\"prop\">" << std::endl; ! file << " <ixx> " << _ixx * _blades << " </ixx>" << std::endl; file << " <diameter unit=\"IN\"> " << (_diameter * FEET_TO_INCH) << " </diameter>" << std::endl; file << " <numblades> " << _blades << " </numblades>" << std::endl; file << " <gearratio> " << _gear_ratio << " </gearratio>" << std::endl; file << " <cp_factor> 1.00 </cp_factor>" << std::endl; ! file << " <ct_factor> " << _blades << " </ct_factor> <!-- set to match the number of blades -->" << std::endl; if(_fixed_pitch == false) |
From: Anders G. <an...@us...> - 2016-07-27 22:42:51
|
Update of /cvsroot/jsbsim/JSBSim/src/models/flight_control In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv5071/src/models/flight_control Modified Files: FGAngles.cpp Log Message: Make sure the argument to acos() is never out of bounds. Index: FGAngles.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/flight_control/FGAngles.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** FGAngles.cpp 13 Jan 2014 10:46:07 -0000 1.4 --- FGAngles.cpp 27 Jul 2016 22:42:47 -0000 1.5 *************** *** 146,150 **** double y2 = sin(target_angle); ! double angle_to_heading_rad = acos(x1*x2 + y1*y2); double x1y2 = x1*y2; double x2y1 = x2*y1; --- 146,151 ---- double y2 = sin(target_angle); ! double x1x2_y1y2 = max(-1.0, min(x1*x2 + y1*y2, 1.0)); ! double angle_to_heading_rad = acos(x1x2_y1y2); double x1y2 = x1*y2; double x2y1 = x2*y1; |
From: Bertrand <bco...@us...> - 2016-07-10 12:39:31
|
Update of /cvsroot/jsbsim/JSBSim/src/models/propulsion In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv2539/src/models/propulsion Modified Files: FGTurboProp.h FGTurboProp.cpp Log Message: Removed lots of no-op members Index: FGTurboProp.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/propulsion/FGTurboProp.h,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -r1.23 -r1.24 *** FGTurboProp.h 10 Jul 2016 09:16:37 -0000 1.23 --- FGTurboProp.h 10 Jul 2016 12:39:28 -0000 1.24 *************** *** 103,107 **** ~FGTurboProp(); ! enum phaseType { tpOff, tpRun, tpSpinUp, tpStart, tpStall, tpSeize, tpTrim }; void Calculate(void); --- 103,107 ---- ~FGTurboProp(); ! enum phaseType { tpOff, tpRun, tpSpinUp, tpStart, tpTrim }; void Calculate(void); *************** *** 109,113 **** double GetPowerAvailable(void) const { return (HP * hptoftlbssec); } ! double GetRPM(void) const { return (RPM); } double GetIeluThrottle(void) const { return (ThrottlePos); } bool GetIeluIntervent(void) const { return Ielu_intervent; } --- 109,113 ---- double GetPowerAvailable(void) const { return (HP * hptoftlbssec); } ! double GetRPM(void) const { return RPM; } double GetIeluThrottle(void) const { return (ThrottlePos); } bool GetIeluIntervent(void) const { return Ielu_intervent; } *************** *** 118,131 **** phaseType GetPhase(void) const { return phase; } - bool GetOvertemp(void) const {return Overtemp; } - bool GetFire(void) const { return Fire; } bool GetReversed(void) const { return Reversed; } bool GetCutoff(void) const { return Cutoff; } - int GetIgnition(void) const {return Ignition;} - double GetInlet(void) const { return InletPosition; } - double GetNozzle(void) const { return NozzlePosition; } double GetN1(void) const {return N1;} - double GetN2(void) const {return N2;} double GetEPR(void) const {return EPR;} double GetITT(void) const {return Eng_ITT_degC;} --- 118,125 ---- *************** *** 138,142 **** inline int GetCondition(void) const { return Condition; } - void SetIgnition(int ignition) {Ignition = ignition;} void SetPhase( phaseType p ) { phase = p; } void SetEPR(double epr) {EPR = epr;} --- 132,135 ---- *************** *** 155,180 **** double MilThrust; ///< Maximum Unaugmented Thrust, static @ S.L. (lbf) double IdleN1; ///< Idle N1 - double IdleN2; ///< Idle N2 double N1; ///< N1 - double N2; ///< N2 double MaxN1; ///< N1 at 100% throttle - double MaxN2; ///< N2 at 100% throttle double delay; ///< Inverse spool-up time from idle to 100% (seconds) double N1_factor; ///< factor to tie N1 and throttle - double N2_factor; ///< factor to tie N2 and throttle double ThrottlePos; ///< FCS-supplied throttle position, modified locally - bool Stalled; ///< true if engine is compressor-stalled - bool Seized; ///< true if inner spool is seized - bool Overtemp; ///< true if EGT exceeds limits - bool Fire; ///< true if engine fire detected bool Reversed; bool Cutoff; - int Ignition; double EPR; double OilPressure_psi; double OilTemp_degK; - double InletPosition; - double NozzlePosition; double Ielu_max_torque; // max propeller torque (before ielu intervent) --- 148,162 ---- Index: FGTurboProp.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/propulsion/FGTurboProp.cpp,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -r1.34 -r1.35 *** FGTurboProp.cpp 10 Jul 2016 09:16:37 -0000 1.34 --- FGTurboProp.cpp 10 Jul 2016 12:39:28 -0000 1.35 *************** *** 116,125 **** if (el->FindElement("idlen1")) IdleN1 = el->FindElementValueAsNumber("idlen1"); - if (el->FindElement("idlen2")) - IdleN2 = el->FindElementValueAsNumber("idlen2"); if (el->FindElement("maxn1")) MaxN1 = el->FindElementValueAsNumber("maxn1"); - if (el->FindElement("maxn2")) - MaxN2 = el->FindElementValueAsNumber("maxn2"); if (el->FindElement("betarangeend")) BetaRangeThrottleEnd = el->FindElementValueAsNumber("betarangeend")/100.0; --- 116,121 ---- *************** *** 174,178 **** delay=1; N1_factor = MaxN1 - IdleN1; - N2_factor = MaxN2 - IdleN2; OilTemp_degK = in.TAT_c + 273.0; --- 170,173 ---- *************** *** 229,233 **** if (Running && !Starved) { phase = tpRun; - N2 = IdleN2; N1 = IdleN1; OilTemp_degK = 366.0; --- 224,227 ---- *************** *** 383,387 **** OilPressure_psi = (N1/100.0*0.25+(0.1-(OilTemp_degK-273.15)*0.1/80.0)*N1/100.0) / 7692.0e-6; //from MPa to psi - NozzlePosition = 1.0; EngPower_HP = EnginePowerRPM_N1->GetValue(RPM,N1); --- 377,380 ---- *************** *** 405,409 **** EngStarting = false; ! if ((N1 > 15.0) && !Starved) { // minimum 15% N2 needed for start double old_N1 = N1; Cranking = true; // provided for sound effects signal --- 398,402 ---- EngStarting = false; ! if ((N1 > 15.0) && !Starved) { // minimum 15% N1 needed for start double old_N1 = N1; Cranking = true; // provided for sound effects signal *************** *** 429,433 **** FuelFlow_pph = 0; } ! } else { // no start if N2 < 15% or Starved phase = tpOff; Starter = false; --- 422,426 ---- FuelFlow_pph = 0; } ! } else { // no start if N1 < 15% or Starved phase = tpOff; Starter = false; *************** *** 482,502 **** { // Name = "Not defined"; ! N1 = N2 = 0.0; HP = 0.0; Type = etTurboprop; MilThrust = 10000.0; IdleN1 = 30.0; - IdleN2 = 60.0; MaxN1 = 100.0; - MaxN2 = 100.0; - InletPosition = 1.0; - NozzlePosition = 1.0; Reversed = false; Cutoff = true; phase = tpOff; - Stalled = false; - Seized = false; - Overtemp = false; - Fire = false; Eng_ITT_degC = 0.0; --- 475,487 ---- { // Name = "Not defined"; ! N1 = 0.0; HP = 0.0; Type = etTurboprop; MilThrust = 10000.0; IdleN1 = 30.0; MaxN1 = 100.0; Reversed = false; Cutoff = true; phase = tpOff; Eng_ITT_degC = 0.0; *************** *** 522,526 **** buf << Name << "_N1[" << EngineNumber << "]" << delimiter - << Name << "_N2[" << EngineNumber << "]" << delimiter << Name << "_PwrAvail[" << EngineNumber << "]" << delimiter << Thruster->GetThrusterLabels(EngineNumber, delimiter); --- 507,510 ---- *************** *** 536,540 **** buf << N1 << delimiter - << N2 << delimiter << HP << delimiter << Thruster->GetThrusterValues(EngineNumber,delimiter); --- 520,523 ---- *************** *** 551,555 **** Cutoff=false; Running=true; - N2=16.0; Calculate(); in.TotalDeltaT = dt; --- 534,537 ---- *************** *** 565,570 **** property_name = base_property_name + "/n1"; PropertyManager->Tie( property_name.c_str(), &N1); - // property_name = base_property_name + "/n2"; - // PropertyManager->Tie( property_name.c_str(), &N2); property_name = base_property_name + "/reverser"; PropertyManager->Tie( property_name.c_str(), &Reversed); --- 547,550 ---- |
From: Bertrand <bco...@us...> - 2016-07-10 12:37:14
|
Update of /cvsroot/jsbsim/JSBSim/engine In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv2423/engine Modified Files: PW125BX.xml Log Message: Engine name correction and removal of obsolete and no-op parameters Index: PW125BX.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/engine/PW125BX.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** PW125BX.xml 4 Jun 2016 21:16:59 -0000 1.2 --- PW125BX.xml 10 Jul 2016 12:37:11 -0000 1.3 *************** *** 5,10 **** idlen1 [%] maxn1 [%] - idlen2 [%] - maxn2 [%] betarangeend[%] if ThrottleCmd < betarangeend/100.0 then engine power=idle, propeller pitch --- 5,8 ---- *************** *** 28,40 **** --> ! <turboprop_engine name="M601"> <milthrust unit="LBS"> 5712 </milthrust> <idlen1> 60.0 </idlen1> <maxn1> 100.0 </maxn1> - <idlen2> 60.0 </idlen2> - <maxn2> 100.0 </maxn2> <maxpower unit="HP"> 2500 </maxpower> <psfc unit="LBS/HR/HP"> 0.31 </psfc> - <idlefuelflow> 50.0 </idlefuelflow> <n1idle_max_delay> 1 </n1idle_max_delay> <maxstartingtime> 20 </maxstartingtime> --- 26,35 ---- --> ! <turboprop_engine name="PW125BX"> <milthrust unit="LBS"> 5712 </milthrust> <idlen1> 60.0 </idlen1> <maxn1> 100.0 </maxn1> <maxpower unit="HP"> 2500 </maxpower> <psfc unit="LBS/HR/HP"> 0.31 </psfc> <n1idle_max_delay> 1 </n1idle_max_delay> <maxstartingtime> 20 </maxstartingtime> |
From: Bertrand <bco...@us...> - 2016-07-10 09:16:40
|
Update of /cvsroot/jsbsim/JSBSim/src/models/propulsion In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv25207/src/models/propulsion Modified Files: FGTurboProp.h FGTurboProp.cpp Log Message: Code cleanup: removed members FDMExec and TAT and collapsed the 2 members EnginePowerVC and EnginePowerVCFN into one. Index: FGTurboProp.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/propulsion/FGTurboProp.h,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -r1.22 -r1.23 *** FGTurboProp.h 7 Dec 2015 10:01:48 -0000 1.22 --- FGTurboProp.h 10 Jul 2016 09:16:37 -0000 1.23 *************** *** 164,168 **** double N2_factor; ///< factor to tie N2 and throttle double ThrottlePos; ///< FCS-supplied throttle position, modified locally - double TAT; ///< total air temperature (deg C) bool Stalled; ///< true if engine is compressor-stalled bool Seized; ///< true if inner spool is seized --- 164,167 ---- *************** *** 191,196 **** double MaxStartingTime; // maximal time for start [s] (-1 means not used) double RPM; // shaft RPM - //double Velocity; - //double rho; double PSFC; // Power specific fuel comsumption [lb/(HP*hr)] at best efficiency double CombustionEfficiency; --- 190,193 ---- *************** *** 221,228 **** FGTable* ITT_N1; // ITT temperature depending on throttle command FGTable* EnginePowerRPM_N1; ! FGTable* EnginePowerVC; ! FGFunction* EnginePowerVCFN; FGTable* CombustionEfficiency_N1; - FGFDMExec* FDMExec; }; } --- 218,223 ---- FGTable* ITT_N1; // ITT temperature depending on throttle command FGTable* EnginePowerRPM_N1; ! FGParameter* EnginePowerVC; FGTable* CombustionEfficiency_N1; }; } Index: FGTurboProp.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/propulsion/FGTurboProp.cpp,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -r1.33 -r1.34 *** FGTurboProp.cpp 7 Dec 2015 10:01:48 -0000 1.33 --- FGTurboProp.cpp 10 Jul 2016 09:16:37 -0000 1.34 *************** *** 65,73 **** FGTurboProp::FGTurboProp(FGFDMExec* exec, Element *el, int engine_number, struct Inputs& input) : FGEngine(engine_number, input), ! ITT_N1(NULL), EnginePowerRPM_N1(NULL), EnginePowerVC(NULL), EnginePowerVCFN(NULL), CombustionEfficiency_N1(NULL), ! FDMExec(exec) { SetDefaults(); - Load(exec, el); Debug(0); --- 65,72 ---- FGTurboProp::FGTurboProp(FGFDMExec* exec, Element *el, int engine_number, struct Inputs& input) : FGEngine(engine_number, input), ! ITT_N1(NULL), EnginePowerRPM_N1(NULL), EnginePowerVC(NULL), ! CombustionEfficiency_N1(NULL) { SetDefaults(); Load(exec, el); Debug(0); *************** *** 80,84 **** delete ITT_N1; delete EnginePowerRPM_N1; ! delete EnginePowerVC; delete CombustionEfficiency_N1; Debug(1); --- 79,84 ---- delete ITT_N1; delete EnginePowerRPM_N1; ! if (dynamic_cast<FGTable*>(EnginePowerVC)) ! delete EnginePowerVC; delete CombustionEfficiency_N1; Debug(1); *************** *** 107,111 **** string property_prefix = CreateIndexedPropertyName("propulsion/engine", EngineNumber); ! EnginePowerVCFN = GetPreFunction(property_prefix+"/EnginePowerVC"); --- 107,111 ---- string property_prefix = CreateIndexedPropertyName("propulsion/engine", EngineNumber); ! EnginePowerVC = GetPreFunction(property_prefix+"/EnginePowerVC"); *************** *** 147,161 **** ITT_Delay = el->FindElementValueAsNumber("itt_delay"); ! Element *table_element; ! string name; FGPropertyManager* PropertyManager = exec->GetPropertyManager(); ! while (true) { ! table_element = el->FindNextElement("table"); ! if (!table_element) break; ! name = table_element->GetAttributeValue("name"); ! if (!EnginePowerVCFN && name == "EnginePowerVC") { EnginePowerVC = new FGTable(PropertyManager, table_element); ! std::cerr << "Note: Using the EnginePowerVC without enclosed <function> tag is deprecated" << std::endl; } else if (name == "EnginePowerRPM_N1") { EnginePowerRPM_N1 = new FGTable(PropertyManager, table_element); --- 147,160 ---- ITT_Delay = el->FindElementValueAsNumber("itt_delay"); ! Element *table_element = el->FindElement("table"); FGPropertyManager* PropertyManager = exec->GetPropertyManager(); ! while (table_element) { ! string name = table_element->GetAttributeValue("name"); ! if (!EnginePowerVC && name == "EnginePowerVC") { EnginePowerVC = new FGTable(PropertyManager, table_element); ! cerr << table_element->ReadFrom() ! <<"Note: Using the EnginePowerVC without enclosed <function> tag is deprecated" ! << endl; } else if (name == "EnginePowerRPM_N1") { EnginePowerRPM_N1 = new FGTable(PropertyManager, table_element); *************** *** 168,171 **** --- 167,171 ---- << " in turboprop definition." << endl; } + table_element = el->FindNextElement("table"); } *************** *** 189,193 **** } ! bindmodel(exec->GetPropertyManager()); return true; } --- 189,193 ---- } ! bindmodel(PropertyManager); return true; } *************** *** 201,206 **** RunPreFunctions(); - TAT = in.TAT_c; - ThrottlePos = in.ThrottlePos[EngineNumber]; --- 201,204 ---- *************** *** 238,244 **** phase = tpOff; Cutoff = true; ! Eng_ITT_degC = TAT; ! Eng_Temperature = TAT; ! OilTemp_degK = TAT+273.15; } } --- 236,242 ---- phase = tpOff; Cutoff = true; ! Eng_ITT_degC = in.TAT_c; ! Eng_Temperature = in.TAT_c; ! OilTemp_degK = in.TAT_c+273.15; } } *************** *** 313,319 **** N1 = ExpSeek(&N1, in.qbar/15.0, Idle_Max_Delay*2.5, Idle_Max_Delay * 5); ! OilTemp_degK = ExpSeek(&OilTemp_degK,273.15 + TAT, 400 , 400); ! Eng_Temperature = ExpSeek(&Eng_Temperature,TAT,300,400); double ITT_goal = ITT_N1->GetValue(N1,0.1) + ((N1>20) ? 0.0 : (20-N1)/20.0 * Eng_Temperature); Eng_ITT_degC = ExpSeek(&Eng_ITT_degC,ITT_goal,ITT_Delay,ITT_Delay*1.2); --- 311,317 ---- N1 = ExpSeek(&N1, in.qbar/15.0, Idle_Max_Delay*2.5, Idle_Max_Delay * 5); ! OilTemp_degK = ExpSeek(&OilTemp_degK,273.15 + in.TAT_c, 400 , 400); ! Eng_Temperature = ExpSeek(&Eng_Temperature,in.TAT_c,300,400); double ITT_goal = ITT_N1->GetValue(N1,0.1) + ((N1>20) ? 0.0 : (20-N1)/20.0 * Eng_Temperature); Eng_ITT_degC = ExpSeek(&Eng_ITT_degC,ITT_goal,ITT_Delay,ITT_Delay*1.2); *************** *** 339,343 **** EngPower_HP = EnginePowerRPM_N1->GetValue(RPM,N1); ! EngPower_HP *= EnginePowerVCFN ? EnginePowerVCFN->GetValue() : EnginePowerVC->GetValue(); if (EngPower_HP > MaxPower) EngPower_HP = MaxPower; --- 337,341 ---- EngPower_HP = EnginePowerRPM_N1->GetValue(RPM,N1); ! EngPower_HP *= EnginePowerVC->GetValue(); if (EngPower_HP > MaxPower) EngPower_HP = MaxPower; *************** *** 378,386 **** N1 = ExpSeek(&N1, StarterN1, Idle_Max_Delay * 6, Idle_Max_Delay * 2.4); ! Eng_Temperature = ExpSeek(&Eng_Temperature,TAT,300,400); double ITT_goal = ITT_N1->GetValue(N1,0.1) + ((N1>20) ? 0.0 : (20-N1)/20.0 * Eng_Temperature); Eng_ITT_degC = ExpSeek(&Eng_ITT_degC,ITT_goal,ITT_Delay,ITT_Delay*1.2); ! OilTemp_degK = ExpSeek(&OilTemp_degK,273.15 + TAT, 400 , 400); OilPressure_psi = (N1/100.0*0.25+(0.1-(OilTemp_degK-273.15)*0.1/80.0)*N1/100.0) / 7692.0e-6; //from MPa to psi --- 376,384 ---- N1 = ExpSeek(&N1, StarterN1, Idle_Max_Delay * 6, Idle_Max_Delay * 2.4); ! Eng_Temperature = ExpSeek(&Eng_Temperature,in.TAT_c,300,400); double ITT_goal = ITT_N1->GetValue(N1,0.1) + ((N1>20) ? 0.0 : (20-N1)/20.0 * Eng_Temperature); Eng_ITT_degC = ExpSeek(&Eng_ITT_degC,ITT_goal,ITT_Delay,ITT_Delay*1.2); ! OilTemp_degK = ExpSeek(&OilTemp_degK,273.15 + in.TAT_c, 400 , 400); OilPressure_psi = (N1/100.0*0.25+(0.1-(OilTemp_degK-273.15)*0.1/80.0)*N1/100.0) / 7692.0e-6; //from MPa to psi *************** *** 388,392 **** EngPower_HP = EnginePowerRPM_N1->GetValue(RPM,N1); ! EngPower_HP *= EnginePowerVCFN ? EnginePowerVCFN->GetValue() : EnginePowerVC->GetValue(); if (EngPower_HP > MaxPower) EngPower_HP = MaxPower; --- 386,390 ---- EngPower_HP = EnginePowerRPM_N1->GetValue(RPM,N1); ! EngPower_HP *= EnginePowerVC->GetValue(); if (EngPower_HP > MaxPower) EngPower_HP = MaxPower; *************** *** 412,416 **** if (N1 < IdleN1) { EngPower_HP = EnginePowerRPM_N1->GetValue(RPM,N1); ! EngPower_HP *= EnginePowerVCFN ? EnginePowerVCFN->GetValue() : EnginePowerVC->GetValue(); if (EngPower_HP > MaxPower) EngPower_HP = MaxPower; N1 = ExpSeek(&N1, IdleN1*1.1, Idle_Max_Delay*4, Idle_Max_Delay * 2.4); --- 410,414 ---- if (N1 < IdleN1) { EngPower_HP = EnginePowerRPM_N1->GetValue(RPM,N1); ! EngPower_HP *= EnginePowerVC->GetValue(); if (EngPower_HP > MaxPower) EngPower_HP = MaxPower; N1 = ExpSeek(&N1, IdleN1*1.1, Idle_Max_Delay*4, Idle_Max_Delay * 2.4); *************** *** 549,558 **** int FGTurboProp::InitRunning(void) { ! FDMExec->SuspendIntegration(); Cutoff=false; Running=true; N2=16.0; Calculate(); ! FDMExec->ResumeIntegration(); return phase==tpRun; } --- 547,557 ---- int FGTurboProp::InitRunning(void) { ! double dt = in.TotalDeltaT; ! in.TotalDeltaT = 0.0; Cutoff=false; Running=true; N2=16.0; Calculate(); ! in.TotalDeltaT = dt; return phase==tpRun; } |
From: Bertrand <bco...@us...> - 2016-07-10 09:11:02
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24964/tests Modified Files: CMakeLists.txt Added Files: TestTurboProp.py Log Message: Added a test case to check that <function name="EnginePowerVC"> yields exactly the same results as <table name="EnginePowerVC" --- NEW FILE --- # TestTurboProp.py # # Regression tests for the turboprop engine model. # # Copyright (c) 2016 Bertrand Coconnier # # 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 3 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, see <http://www.gnu.org/licenses/> # import shutil import xml.etree.ElementTree as et import pandas as pd from JSBSim_utils import JSBSimTestCase, CreateFDM, RunTest, isDataMatching, FindDifferences class TestTurboProp(JSBSimTestCase): def testEnginePowerVC(self): # Check that the same results are obtained whether the engine power # velocity correction is given in a <table> or <function> fdm = CreateFDM(self.sandbox) fdm.load_script(self.sandbox.path_to_jsbsim_file('scripts', 'L4102.xml')) fdm.run_ic() while fdm.run(): pass del fdm ref = pd.read_csv('L410.csv', index_col=0) tree = et.parse(self.sandbox.path_to_jsbsim_file('engine', 'engtm601.xml')) # Modify the engine definition to use a <function> rather than a # <table> component. root = tree.getroot() engPowVC_tag = root.find("table/[@name='EnginePowerVC']") root.remove(engPowVC_tag) del engPowVC_tag.attrib['name'] func_engPowVC = et.SubElement(root, 'function') func_engPowVC.attrib['name'] = 'EnginePowerVC' func_engPowVC.append(engPowVC_tag) tree.write('engtm601.xml') # Copy the propeller file. shutil.copy(self.sandbox.path_to_jsbsim_file('engine', 'vrtule2.xml'), '.') self.sandbox.delete_csv_files() fdm = CreateFDM(self.sandbox) fdm.set_engine_path('.') fdm.load_script(self.sandbox.path_to_jsbsim_file('scripts', 'L4102.xml')) fdm.run_ic() while fdm.run(): pass current = pd.read_csv('L410.csv', index_col=0) # Check the data are matching i.e. the time steps are the same between # the two data sets and that the output data are also the same. self.assertTrue(isDataMatching(ref, current)) # Find all the data that are differing by more than 1E-5 between the # two data sets. diff = FindDifferences(ref, current, 0.0) self.longMessage = True self.assertEqual(len(diff), 0, msg='\n'+diff.to_string()) RunTest(TestTurboProp) Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/CMakeLists.txt,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -r1.30 -r1.31 *** CMakeLists.txt 19 Jun 2016 09:26:22 -0000 1.30 --- CMakeLists.txt 10 Jul 2016 09:10:59 -0000 1.31 *************** *** 50,54 **** TestLGearSteer TestAeroFuncOutput ! TestKinematic) foreach(test ${PYTHON_TESTS}) --- 50,55 ---- TestLGearSteer TestAeroFuncOutput ! TestKinematic ! TestTurboProp) foreach(test ${PYTHON_TESTS}) |
From: Bertrand <bco...@us...> - 2016-07-10 09:07:41
|
Update of /cvsroot/jsbsim/JSBSim/scripts In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24816/scripts Added Files: L4102.xml Log Message: New script to test the turboprop engines. --- NEW FILE --- <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="http://jsbsim.sf.net/JSBSimScript.xsl"?> <runscript xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://jsbsim.sf.net/JSBSimScript.xsd" name="L410 test script"> <description>For testing the L410 electrical system</description> <use aircraft="L410" initialize="reset00"/> <run start="0.0" end="10" dt="0.001"> <property value="1.0"> /controls/gear/gear-down-cond </property> <property value="1.0"> fcs/right-brake-cmd-norm </property> <property value="1.0"> fcs/left-brake-cmd-norm </property> <event name="Engines start"> <condition>simulation/sim-time-sec ge 0.0</condition> <set name="propulsion/set-running" value="-1"/> <notify/> </event> </run> <output name="L410.csv" type="CSV" rate="20"> <rates> ON </rates> <velocities> ON </velocities> <position> ON </position> <atmosphere> ON </atmosphere> <fcs> OFF </fcs> <ground_reactions> OFF </ground_reactions> <propulsion> ON </propulsion> <simulation> ON </simulation> <massprops> OFF </massprops> <forces> ON </forces> <moments> ON </moments> <aerosurfaces> OFF </aerosurfaces> <coefficients> ON </coefficients> </output> </runscript> |