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-06-19 12:40:02
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24490/tests Modified Files: fpectlmodule.h fpectlmodule.cpp ExceptionManagement.h Log Message: Better conformance to the fpectl module official documentation: the exception fpectl.FloatingPointError is now raised when the signal SIGFPE is caught. Index: fpectlmodule.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/fpectlmodule.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** fpectlmodule.h 19 Jun 2016 09:26:22 -0000 1.1 --- fpectlmodule.h 19 Jun 2016 12:39:59 -0000 1.2 *************** *** 17,20 **** --- 17,21 ---- */ + #include "Python.h" #include <exception> #include <string> *************** *** 24,32 **** { public: ! FloatingPointException(const std::string& _msg) : msg(_msg) {} const char* what() const throw() { return msg.c_str(); } ~FloatingPointException() throw() {} private: std::string msg; }; --- 25,36 ---- { public: ! FloatingPointException(PyObject* _pyexc, const std::string& _msg) ! : pyexc(_pyexc), msg(_msg) {} const char* what() const throw() { return msg.c_str(); } + PyObject* getPyExc() const { return pyexc; } ~FloatingPointException() throw() {} private: + PyObject* pyexc; std::string msg; }; Index: fpectlmodule.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/fpectlmodule.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** fpectlmodule.cpp 19 Jun 2016 09:26:22 -0000 1.1 --- fpectlmodule.cpp 19 Jun 2016 12:39:59 -0000 1.2 *************** *** 66,74 **** */ - #include "Python.h" - #include <signal.h> - #include "fpectlmodule.h" #if defined(_MSC_VER) # include <float.h> --- 66,73 ---- */ #include "fpectlmodule.h" + #include <signal.h> + #if defined(_MSC_VER) # include <float.h> *************** *** 81,84 **** --- 80,84 ---- static PyOS_sighandler_t handler = 0; + static PyObject *fpe_error; PyMODINIT_FUNC initfpectl(void); static PyObject *turnon_sigfpe(PyObject *self,PyObject *args); *************** *** 94,98 **** { PyOS_setsig(SIGFPE, sigfpe_handler); ! throw JSBSim::FloatingPointException("Caught signal SIGFPE in JSBSim"); } --- 94,99 ---- { PyOS_setsig(SIGFPE, sigfpe_handler); ! throw JSBSim::FloatingPointException(fpe_error, ! "Caught signal SIGFPE in JSBSim"); } *************** *** 127,130 **** PyMODINIT_FUNC initfpectl(void) { ! Py_InitModule("fpectl", fpectl_methods); } --- 128,138 ---- PyMODINIT_FUNC initfpectl(void) { ! PyObject *m = Py_InitModule("fpectl", fpectl_methods); ! if (m == NULL) ! return; ! PyObject *d = PyModule_GetDict(m); ! fpe_error = PyErr_NewException((char*)"fpectl.FloatingPointError", ! PyExc_FloatingPointError, NULL); ! if (fpe_error != NULL) ! PyDict_SetItemString(d, "FloatingPointError", fpe_error); } Index: ExceptionManagement.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/ExceptionManagement.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** ExceptionManagement.h 19 Jun 2016 09:26:22 -0000 1.2 --- ExceptionManagement.h 19 Jun 2016 12:39:59 -0000 1.3 *************** *** 18,22 **** #include <string> - #include "Python.h" #include "fpectlmodule.h" --- 18,21 ---- *************** *** 34,38 **** } catch (const JSBSim::FloatingPointException& e) { ! PyErr_SetString(PyExc_FloatingPointError, e.what()); } } --- 33,37 ---- } catch (const JSBSim::FloatingPointException& e) { ! PyErr_SetString(e.getPyExc(), e.what()); } } |
From: Bertrand <bco...@us...> - 2016-06-19 12:32:29
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv24143/tests Modified Files: setup.py.in Log Message: Don't output the compiler commands, just the warnings and errors. Index: setup.py.in =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/setup.py.in,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** setup.py.in 19 Jun 2016 09:26:22 -0000 1.2 --- setup.py.in 19 Jun 2016 12:32:26 -0000 1.3 *************** *** 1,3 **** ! import os.path from distutils.core import setup --- 1,3 ---- ! import os, sys from distutils.core import setup *************** *** 36,39 **** --- 36,51 ---- self.install_dir+self.module_name) + + class SilentBuild(build_ext): + def __init__(self, dist): + build_ext.__init__(self, dist) + self.oldstdout = os.dup(sys.stdout.fileno()) + self.devnull = open('devnull.txt', 'w') + os.dup2(self.devnull.fileno(), sys.stdout.fileno()) + + def __del__(self): + os.dup2(self.oldstdout, sys.stdout.fileno()) + self.devnull.close() + # Installation process for the JSBSim Python module setup( *************** *** 50,56 **** # Build process for the fpectl module ! setup(ext_modules=[Extension('fpectl', ! sources=[os.path.join('${CMAKE_SOURCE_DIR}', ! 'tests', ! 'fpectlmodule.cpp')], ! language='c++')]) --- 62,70 ---- # Build process for the fpectl module ! setup( ! cmdclass={'build_ext': SilentBuild}, ! ext_modules=[Extension('fpectl', ! sources=[os.path.join('${CMAKE_SOURCE_DIR}', ! 'tests', ! 'fpectlmodule.cpp')], ! language='c++')]) |
From: Bertrand <bco...@us...> - 2016-06-19 09:26:26
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv15729/tests Modified Files: CMakeLists.txt CheckScripts.py ExceptionManagement.h setup.py.in Added Files: fpectlmodule.h fpectlmodule.cpp Log Message: Discovered by accident that the script L410.xml is raising an FPE exception and that this was not caught by the test cases. This commit adds the Python framework to enable the FPE mechanism and catch one of its occurence through the Python exception mechanism. This work is derived from the official Python fpectl module (see the license details in tests/fpectlmodule.cpp) --- NEW FILE --- /* Python module to control floating point exceptions * * 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/> */ #include <exception> #include <string> namespace JSBSim { class FloatingPointException: public std::exception { public: FloatingPointException(const std::string& _msg) : msg(_msg) {} const char* what() const throw() { return msg.c_str(); } ~FloatingPointException() throw() {} private: std::string msg; }; } --- NEW FILE --- /* --------------------------------------------------------------------- / Copyright (c) 1996. \ | The Regents of the University of California. | | All rights reserved. | | | | Permission to use, copy, modify, and distribute this software for | | any purpose without fee is hereby granted, provided that this en- | | tire notice is included in all copies of any software which is or | | includes a copy or modification of this software and in all | | copies of the supporting documentation for such software. | | | | This work was produced at the University of California, Lawrence | | Livermore National Laboratory under contract no. W-7405-ENG-48 | | between the U.S. Department of Energy and The Regents of the | | University of California for the operation of UC LLNL. | | | | DISCLAIMER | | | | This software was prepared as an account of work sponsored by an | | agency of the United States Government. Neither the United States | | Government nor the University of California nor any of their em- | | ployees, makes any warranty, express or implied, or assumes any | | liability or responsibility for the accuracy, completeness, or | | usefulness of any information, apparatus, product, or process | | disclosed, or represents that its use would not infringe | | privately-owned rights. Reference herein to any specific commer- | | cial products, process, or service by trade name, trademark, | | manufacturer, or otherwise, does not necessarily constitute or | | imply its endorsement, recommendation, or favoring by the United | | States Government or the University of California. The views and | | opinions of authors expressed herein do not necessarily state or | | reflect those of the United States Government or the University | | of California, and shall not be used for advertising or product | \ endorsement purposes. / --------------------------------------------------------------------- */ /* Floating point exception control module. This Python module provides bare-bones control over floating point units from several hardware manufacturers. Specifically, it allows the user to turn on the generation of SIGFPE whenever any of the three serious IEEE 754 exceptions (Division by Zero, Overflow, Invalid Operation) occurs. We currently ignore Underflow and Inexact Result exceptions, although those could certainly be added if desired. The module also establishes a signal handler for SIGFPE during initialization. This is an adaptation of the fpectl module (https://docs.python.org/2/library/fpectl.html) which code can be found in the Python distribution at Module/fpectlmodule.c The module has been adapted to modern OS APIs and simplified by the use of the C++ exception mechanism. The Python API remains the same. This module is only useful to you if it happens to include code specific for your hardware and software environment. If you can contribute OS-specific code for new platforms, or corrections for the code provided, it will be greatly appreciated. ** Version 1.0: September 20, 1996. Lee Busby, LLNL. ** JSBSim adaptation: June 18, 2016. Bertrand Coconnier */ #include "Python.h" #include <signal.h> #include "fpectlmodule.h" #if defined(_MSC_VER) # include <float.h> static unsigned int fp_flags = 0; #elif defined(__GNUC__) && !defined(sgi) # include <fenv.h> static int fp_flags = 0; #endif static PyOS_sighandler_t handler = 0; PyMODINIT_FUNC initfpectl(void); static PyObject *turnon_sigfpe(PyObject *self,PyObject *args); static PyObject *turnoff_sigfpe(PyObject *self,PyObject *args); static PyMethodDef fpectl_methods[] = { {"turnon_sigfpe", (PyCFunction) turnon_sigfpe, METH_VARARGS}, {"turnoff_sigfpe", (PyCFunction) turnoff_sigfpe, METH_VARARGS}, {0,0} }; static void sigfpe_handler(int signo) { PyOS_setsig(SIGFPE, sigfpe_handler); throw JSBSim::FloatingPointException("Caught signal SIGFPE in JSBSim"); } static PyObject *turnon_sigfpe(PyObject *self, PyObject *args) { #if defined(_MSC_VER) _clearfp(); fp_flags = _controlfp(_controlfp(0, 0) & ~(_EM_INVALID | _EM_ZERODIVIDE | _EM_OVERFLOW), _MCW_EM); #elif defined(__GNUC__) && !defined(sgi) fp_flags = feenableexcept(FE_DIVBYZERO | FE_INVALID | FE_OVERFLOW); #endif handler = PyOS_setsig(SIGFPE, sigfpe_handler); Py_INCREF (Py_None); return Py_None; } static PyObject *turnoff_sigfpe(PyObject *self, PyObject *args) { #if defined(_MSC_VER) _controlfp(fp_flags, _MCW_EM); #elif defined(__GNUC__) && !defined(sgi) fedisableexcept(fp_flags); #endif PyOS_setsig(SIGFPE, handler); Py_INCREF (Py_None); return Py_None; } PyMODINIT_FUNC initfpectl(void) { Py_InitModule("fpectl", fpectl_methods); } Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/CMakeLists.txt,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -r1.29 -r1.30 *** CMakeLists.txt 12 Jun 2016 14:39:51 -0000 1.29 --- CMakeLists.txt 19 Jun 2016 09:26:22 -0000 1.30 *************** *** 10,13 **** --- 10,18 ---- target_link_libraries(jsbsim libJSBSim) + set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py") + configure_file(setup.py.in ${SETUP_PY}) + add_custom_target(fpectl_module ALL DEPENDS ${SETUP_PY} + COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} build_ext -i) + # Replicate the Python files in the build dir. # With CMake, the build tree can be separated from the source tree. For tests *************** *** 53,58 **** # Install the JSBSim Python module if (INSTALL_PYTHON_MODULE) - set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py") - configure_file(setup.py.in ${SETUP_PY}) install(CODE "execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SETUP_PY} install)") endif() --- 58,61 ---- Index: CheckScripts.py =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/CheckScripts.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -r1.5 -r1.6 *** CheckScripts.py 30 Jan 2016 14:34:44 -0000 1.5 --- CheckScripts.py 19 Jun 2016 09:26:22 -0000 1.6 *************** *** 20,23 **** --- 20,24 ---- # + import fpectl from JSBSim_utils import JSBSimTestCase, CreateFDM, RunTest *************** *** 25,28 **** --- 26,31 ---- class CheckScripts(JSBSimTestCase): def testScripts(self): + fpectl.turnon_sigfpe() + for s in self.script_list(): fdm = CreateFDM(self.sandbox) Index: ExceptionManagement.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/ExceptionManagement.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** ExceptionManagement.h 2 Jan 2016 17:06:49 -0000 1.1 --- ExceptionManagement.h 19 Jun 2016 09:26:22 -0000 1.2 *************** *** 17,23 **** */ - #include <exception> #include <string> #include "Python.h" void convertJSBSimToPyExc() --- 17,23 ---- */ #include <string> #include "Python.h" + #include "fpectlmodule.h" void convertJSBSimToPyExc() *************** *** 33,35 **** --- 33,38 ---- PyErr_SetString(PyExc_RuntimeError, msg); } + catch (const JSBSim::FloatingPointException& e) { + PyErr_SetString(PyExc_FloatingPointError, e.what()); + } } Index: setup.py.in =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/setup.py.in,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** setup.py.in 18 May 2014 12:43:35 -0000 1.1 --- setup.py.in 19 Jun 2016 09:26:22 -0000 1.2 *************** *** 6,9 **** --- 6,10 ---- from distutils.command.install_lib import install_lib + # Dummy class to skip the standard build process of Python distutils. This is # done separately by CMake. *************** *** 11,45 **** class NoBuild(build_ext): def build_extension(self, ext): ! pass # Don't build # The standard install_lib class installs every single file it finds in the # directory contained in self.build_dir. Here, we just want to install the ! # JSBSim module so that it can be accessed everywhere on the platform. ! # This class is therefore specializing the standard install_lib to do just that. # class InstallJSBSimModule(install_lib): def __init__(self, dist): install_lib.__init__(self, dist) ! # Append whichever platform specific extension to the jsbsim module name self.module_name = build_ext(dist).get_ext_filename('jsbsim') ! # To stay on the safe side, we are explicitly asking (again) to skip the ! # build process. Note that, according to my tests, this does not prevent ! # the Python distutils from calling 'build_ext', hence the class ! # 'NoBuild' above. self.skip_build = True def install(self): ! self.copy_file(os.path.join('tests',self.module_name), self.install_dir+self.module_name) setup( name="${PROJECT_NAME}", version="${PROJECT_VERSION}", ! cmdclass = {'build_ext' : NoBuild, 'install_lib' : InstallJSBSimModule }, ! ext_modules = [Extension('jsbsim',['jsbsim.cxx'], ! libraries=['JSBSim'], ! include_dirs=[os.path.join('${CMAKE_SOURCE_DIR}', ! 'src')], ! library_dirs=[os.path.join('${CMAKE_BINARY_DIR}', ! 'src')], ! language='c++')] ! ) --- 12,56 ---- class NoBuild(build_ext): def build_extension(self, ext): ! pass # Don't build ! # The standard install_lib class installs every single file it finds in the # directory contained in self.build_dir. Here, we just want to install the ! # JSBSim module so that it can be accessed everywhere on the platform. This ! # class is therefore specializing the standard install_lib to do just that. # class InstallJSBSimModule(install_lib): def __init__(self, dist): install_lib.__init__(self, dist) ! # Append whichever platform specific extension to the jsbsim module ! # name self.module_name = build_ext(dist).get_ext_filename('jsbsim') ! # To stay on the safe side, we are explicitly asking (again) to skip ! # the build process. Note that, according to my tests, this does not ! # prevent the Python distutils from calling 'build_ext', hence the ! # class 'NoBuild' above. self.skip_build = True + def install(self): ! self.copy_file(os.path.join('tests', self.module_name), self.install_dir+self.module_name) + # Installation process for the JSBSim Python module setup( name="${PROJECT_NAME}", version="${PROJECT_VERSION}", ! cmdclass={'build_ext': NoBuild, 'install_lib': InstallJSBSimModule}, ! ext_modules=[Extension('jsbsim', ['jsbsim.cxx'], ! libraries=['JSBSim'], ! include_dirs=[os.path.join('${CMAKE_SOURCE_DIR}', ! 'src')], ! library_dirs=[os.path.join('${CMAKE_BINARY_DIR}', ! 'src')], ! language='c++')]) ! ! # Build process for the fpectl module ! setup(ext_modules=[Extension('fpectl', ! sources=[os.path.join('${CMAKE_SOURCE_DIR}', ! 'tests', ! 'fpectlmodule.cpp')], ! language='c++')]) |
From: Bertrand <bco...@us...> - 2016-06-12 14:47:49
|
Update of /cvsroot/jsbsim/JSBSim/src/models/flight_control In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv15283/src/models/flight_control Modified Files: FGKinemat.h FGKinemat.cpp Log Message: Avoid the lag while trimming and code cleanup. Index: FGKinemat.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/flight_control/FGKinemat.h,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -r1.11 -r1.12 *** FGKinemat.h 28 Mar 2015 14:49:02 -0000 1.11 --- FGKinemat.h 12 Jun 2016 14:47:46 -0000 1.12 *************** *** 122,126 **** /** Kinematic component output value. @return the current output of the kinematic object on the range of [0,1]. */ ! double GetOutputPct() const { return OutputPct; } /** Run method, overrides FGModel::Run(). --- 122,127 ---- /** Kinematic component output value. @return the current output of the kinematic object on the range of [0,1]. */ ! double GetOutputPct() const ! { return (Output-Detents[0])/(Detents.back()-Detents[0]); } /** Run method, overrides FGModel::Run(). *************** *** 132,137 **** std::vector<double> Detents; std::vector<double> TransitionTimes; - size_t NumDetents; - double OutputPct; bool DoScale; --- 133,136 ---- Index: FGKinemat.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/models/flight_control/FGKinemat.cpp,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -r1.15 -r1.16 *** FGKinemat.cpp 2 Apr 2015 17:39:28 -0000 1.15 --- FGKinemat.cpp 12 Jun 2016 14:47:46 -0000 1.16 *************** *** 40,43 **** --- 40,44 ---- #include "FGKinemat.h" #include "input_output/FGXMLElement.h" + #include "models/FGFCS.h" #include <iostream> #include <cstdlib> *************** *** 63,67 **** TransitionTimes.clear(); ! Output = OutputPct = 0; DoScale = true; --- 64,68 ---- TransitionTimes.clear(); ! Output = 0; DoScale = true; *************** *** 77,83 **** setting_element = traverse_element->FindNextElement("setting"); } - NumDetents = Detents.size(); ! if (NumDetents <= 1) { cerr << "Kinematic component " << Name << " must have more than 1 setting element" << endl; --- 78,83 ---- setting_element = traverse_element->FindNextElement("setting"); } ! if (Detents.size() <= 1) { cerr << "Kinematic component " << Name << " must have more than 1 setting element" << endl; *************** *** 86,90 **** FGFCSComponent::bind(); - // treenode->Tie("output-norm", this, &FGKinemat::GetOutputPct ); Debug(0); --- 86,89 ---- *************** *** 106,161 **** Input = InputNodes[0]->getDoubleValue() * InputSigns[0]; ! if (DoScale) Input *= Detents[NumDetents-1]; if (IsOutput) Output = OutputNodes[0]->getDoubleValue(); ! if (Input < Detents[0]) ! Input = Detents[0]; ! else if (Detents[NumDetents-1] < Input) ! Input = Detents[NumDetents-1]; ! ! // Process all detent intervals the movement traverses until either the ! // final value is reached or the time interval has finished. ! while ( dt0 > 0.0 && !EqualToRoundoff(Input, Output) ) { ! ! // Find the area where Output is in ! unsigned int ind; ! for (ind = 1; (Input < Output) ? Detents[ind] < Output : Detents[ind] <= Output ; ++ind) ! if (NumDetents <= ind) ! break; ! // A transition time of 0.0 means an infinite rate. ! // The output is reached in one step ! if (TransitionTimes[ind] <= 0.0) { ! Output = Input; ! break; ! } else { ! // Compute the rate in this area ! double Rate = (Detents[ind] - Detents[ind-1])/TransitionTimes[ind]; ! // Compute the maximum input value inside this area ! double ThisInput = Input; ! if (ThisInput < Detents[ind-1]) ThisInput = Detents[ind-1]; ! if (Detents[ind] < ThisInput) ThisInput = Detents[ind]; ! // Compute the time to reach the value in ThisInput ! double ThisDt = fabs((ThisInput-Output)/Rate); ! ! // and clip to the timestep size ! if (dt0 < ThisDt) { ! ThisDt = dt0; ! if (Output < Input) ! Output += ThisDt*Rate; ! else ! Output -= ThisDt*Rate; ! } else ! // Handle this case separate to make shure the termination condition ! // is met even in inexact arithmetics ... ! Output = ThisInput; ! dt0 -= ThisDt; } } - OutputPct = (Output-Detents[0])/(Detents[NumDetents-1]-Detents[0]); - Clip(); if (IsOutput) SetOutput(); --- 105,158 ---- Input = InputNodes[0]->getDoubleValue() * InputSigns[0]; ! if (DoScale) Input *= Detents.back(); if (IsOutput) Output = OutputNodes[0]->getDoubleValue(); ! Input = Constrain(Detents.front(), Input, Detents.back()); ! if (fcs->GetTrimStatus()) ! // When trimming the output must be reached in one step ! Output = Input; ! else { ! // Process all detent intervals the movement traverses until either the ! // final value is reached or the time interval has finished. ! while ( dt0 > 0.0 && !EqualToRoundoff(Input, Output) ) { ! ! // Find the area where Output is in ! unsigned int ind; ! for (ind = 1; (Input < Output) ? Detents[ind] < Output : Detents[ind] <= Output ; ++ind) ! if (ind >= Detents.size()) ! break; ! ! // A transition time of 0.0 means an infinite rate. ! // The output is reached in one step ! if (TransitionTimes[ind] <= 0.0) { ! Output = Input; ! break; ! } else { ! // Compute the rate in this area ! double Rate = (Detents[ind] - Detents[ind-1])/TransitionTimes[ind]; ! // Compute the maximum input value inside this area ! double ThisInput = Constrain(Detents[ind-1], Input, Detents[ind]); ! // Compute the time to reach the value in ThisInput ! double ThisDt = fabs((ThisInput-Output)/Rate); ! ! // and clip to the timestep size ! if (dt0 < ThisDt) { ! ThisDt = dt0; ! if (Output < Input) ! Output += ThisDt*Rate; ! else ! Output -= ThisDt*Rate; ! } else ! // Handle this case separate to make shure the termination condition ! // is met even in inexact arithmetics ... ! Output = ThisInput; ! dt0 -= ThisDt; ! } } } Clip(); if (IsOutput) SetOutput(); *************** *** 190,195 **** if (from == 0) { // Constructor cout << " INPUT: " << InputNodes[0]->GetName() << endl; ! cout << " DETENTS: " << NumDetents << endl; ! for (unsigned int i=0;i<NumDetents;i++) { cout << " " << Detents[i] << " " << TransitionTimes[i] << endl; } --- 187,192 ---- if (from == 0) { // Constructor cout << " INPUT: " << InputNodes[0]->GetName() << endl; ! cout << " DETENTS: " << Detents.size() << endl; ! for (unsigned int i=0;i<Detents.size();i++) { cout << " " << Detents[i] << " " << TransitionTimes[i] << endl; } |
From: Bertrand <bco...@us...> - 2016-06-12 14:39:55
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14878/tests Modified Files: CMakeLists.txt Added Files: TestKinematic.py Log Message: Added a new test case to check the <kinematic> flight control --- NEW FILE --- # TestKinematic.py # # Regression tests of the <kinematic> system # # 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/> # from JSBSim_utils import JSBSimTestCase, CreateFDM, RunTest class TestKinematic(JSBSimTestCase): def testKinematicTiming(self): fdm = CreateFDM(self.sandbox) fdm.load_model('c172r') fdm.load_ic(self.sandbox.path_to_jsbsim_file('aircraft', 'c172r', 'reset00'), False) fdm.run_ic() self.assertEqual(fdm['fcs/flap-cmd-norm'], 0.0) self.assertEqual(fdm['fcs/flap-pos-deg'], 0.0) # Test the flap down sequence. The flap command is set to a value # higher than 1.0 to check that JSBSim clamps it to 1.0 fdm['fcs/flap-cmd-norm'] = 1.5 t = fdm['simulation/sim-time-sec'] while t < 2.0: self.assertAlmostEqual(fdm['fcs/flap-pos-deg'], 5.*t) fdm.run() t = fdm['simulation/sim-time-sec'] while t < 4.0: self.assertAlmostEqual(fdm['fcs/flap-pos-deg'], 10.*(t-1.)) fdm.run() t = fdm['simulation/sim-time-sec'] while t < 5.0: self.assertAlmostEqual(fdm['fcs/flap-pos-deg'], 30.) fdm.run() t = fdm['simulation/sim-time-sec'] # Test the flap up sequence with an interruption at 7.5 deg fdm['fcs/flap-cmd-norm'] = 0.25 while t < 7.0: self.assertAlmostEqual(fdm['fcs/flap-pos-deg'], 30.-10.*(t-5.)) fdm.run() t = fdm['simulation/sim-time-sec'] while t < 7.5: self.assertAlmostEqual(fdm['fcs/flap-pos-deg'], 10.-5.*(t-7.)) fdm.run() t = fdm['simulation/sim-time-sec'] while t < 8.0: self.assertAlmostEqual(fdm['fcs/flap-pos-deg'], 7.5) fdm.run() t = fdm['simulation/sim-time-sec'] # Complete the flap up sequence. The flap command is set to a value # lower than 0.0 to check that JSBSim clamps it to 0.0 fdm['fcs/flap-cmd-norm'] = -1. while t < 9.5: self.assertAlmostEqual(fdm['fcs/flap-pos-deg'], 10.-5.*(t-7.5)) fdm.run() t = fdm['simulation/sim-time-sec'] while t < 10.0: self.assertAlmostEqual(fdm['fcs/flap-pos-deg'], 0.0) fdm.run() t = fdm['simulation/sim-time-sec'] def testKinematicAndTrim(self): fdm = CreateFDM(self.sandbox) fdm.load_model('p51d') fdm.load_ic(self.sandbox.path_to_jsbsim_file('aircraft', 'p51d', 'reset01'), False) self.assertEqual(fdm['gear/gear-cmd-norm'], 1.0) # Set the landing gears up. Since the command is equal to 1.0, the # <kinematic> system will trigger the gear down sequence. fdm['gear/gear-pos-norm'] = 0.0 fdm.run_ic() # The test succeeds if the trim does not raise an exception i.e. if the # <kinematic> system does not interfer with the trim on ground # algorithm. fdm['simulation/do_simple_trim'] = 2 # Ground trim RunTest(TestKinematic) Index: CMakeLists.txt =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/CMakeLists.txt,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -r1.28 -r1.29 *** CMakeLists.txt 22 May 2016 16:49:34 -0000 1.28 --- CMakeLists.txt 12 Jun 2016 14:39:51 -0000 1.29 *************** *** 44,48 **** TestSuspend TestLGearSteer ! TestAeroFuncOutput) foreach(test ${PYTHON_TESTS}) --- 44,49 ---- TestSuspend TestLGearSteer ! TestAeroFuncOutput ! TestKinematic) foreach(test ${PYTHON_TESTS}) |
From: Bertrand <bco...@us...> - 2016-06-12 09:09:05
|
Update of /cvsroot/jsbsim/JSBSim/src/initialization In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv27245 Modified Files: FGTrim.cpp Log Message: Skip the retracted landing gears during the trim on ground since it will lead to an incorrect solution once the simulation will restart. Index: FGTrim.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGTrim.cpp,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -r1.33 -r1.34 *** FGTrim.cpp 5 Jun 2016 15:23:02 -0000 1.33 --- FGTrim.cpp 12 Jun 2016 09:09:02 -0000 1.34 *************** *** 391,395 **** for (int i = 0; i < GroundReactions->GetNumGearUnits(); ++i) { ContactPoints c; ! c.location = GroundReactions->GetGearUnit(i)->GetBodyLocation(); FGLocation gearLoc = CGLocation.LocalToLocation(Tb2l * c.location); --- 391,401 ---- for (int i = 0; i < GroundReactions->GetNumGearUnits(); ++i) { ContactPoints c; ! FGLGear* gear = GroundReactions->GetGearUnit(i); ! ! // Skip the retracted landing gears ! if (!gear->GetGearUnitDown()) ! continue; ! ! c.location = gear->GetBodyLocation(); FGLocation gearLoc = CGLocation.LocalToLocation(Tb2l * c.location); *************** *** 403,407 **** if (height < hmin) { hmin = height; ! contactRef = i; } } --- 409,413 ---- if (height < hmin) { hmin = height; ! contactRef = contacts.size() - 1; } } |
From: Bertrand <bco...@us...> - 2016-06-11 16:19:04
|
Update of /cvsroot/jsbsim/JSBSim/tests In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv7137 Modified Files: CheckAircrafts.py Log Message: Summary: Check all the initial conditions file. Do not skip to the next aircraft as soon as one IC file has successfully been loaded. Index: CheckAircrafts.py =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/tests/CheckAircrafts.py,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** CheckAircrafts.py 30 Jan 2016 18:50:23 -0000 1.3 --- CheckAircrafts.py 11 Jun 2016 16:19:01 -0000 1.4 *************** *** 57,62 **** self.fail('Failed to run IC %s for aircraft %s' % (f, d)) - break - del fdm --- 57,60 ---- |
From: Bertrand <bco...@us...> - 2016-06-11 16:16:36
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/c172p In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv7025 Modified Files: reset01.xml Log Message: Summary: Values are given in degrees but the unit is not specified: JSBSim interpret them wrongly as radians. Index: reset01.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/c172p/reset01.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** reset01.xml 17 May 2006 03:39:31 -0000 1.3 --- reset01.xml 11 Jun 2016 16:16:33 -0000 1.4 *************** *** 8,20 **** <vbody> 0.0 </vbody> <wbody> 0.0 </wbody> ! <latitude> 47.0 </latitude> ! <longitude> 122.0 </longitude> <phi> 0.0 </phi> <theta> 0.0 </theta> ! <psi> 150.0 </psi> <altitude> 2000.00 </altitude> <hwind> 0.0 </hwind> <xwind> 0.0 </xwind> <vc> 90.0 </vc> ! <gamma> 3.0 </gamma> </initialize> --- 8,20 ---- <vbody> 0.0 </vbody> <wbody> 0.0 </wbody> ! <latitude unit="DEG"> 47.0 </latitude> ! <longitude unit="DEG"> 122.0 </longitude> <phi> 0.0 </phi> <theta> 0.0 </theta> ! <psi unit="DEG"> 150.0 </psi> <altitude> 2000.00 </altitude> <hwind> 0.0 </hwind> <xwind> 0.0 </xwind> <vc> 90.0 </vc> ! <gamma unit="DEG"> 3.0 </gamma> </initialize> |
From: Bertrand <bco...@us...> - 2016-06-11 16:11:20
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/c172r In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv6383/aircraft/c172r Modified Files: reset01.xml Log Message: Values are specified in degrees but the unit is not specified. JSBSim interpret them wrongly as radians. Index: reset01.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/c172r/reset01.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -r1.3 -r1.4 *** reset01.xml 17 May 2006 03:39:31 -0000 1.3 --- reset01.xml 11 Jun 2016 16:11:17 -0000 1.4 *************** *** 8,20 **** <vbody> 0.0 </vbody> <wbody> 0.0 </wbody> ! <latitude> 47.0 </latitude> ! <longitude> 122.0 </longitude> <phi> 0.0 </phi> <theta> 0.0 </theta> ! <psi> 150.0 </psi> <altitude> 2000.00 </altitude> <hwind> 0.0 </hwind> <xwind> 0.0 </xwind> <vc> 90.0 </vc> ! <gamma> 3.0 </gamma> </initialize> --- 8,20 ---- <vbody> 0.0 </vbody> <wbody> 0.0 </wbody> ! <latitude unit="DEG"> 47.0 </latitude> ! <longitude unit="DEG"> 122.0 </longitude> <phi> 0.0 </phi> <theta> 0.0 </theta> ! <psi unit="DEG"> 150.0 </psi> <altitude> 2000.00 </altitude> <hwind> 0.0 </hwind> <xwind> 0.0 </xwind> <vc> 90.0 </vc> ! <gamma unit="DEG"> 3.0 </gamma> </initialize> |
From: Bertrand <bco...@us...> - 2016-06-11 10:02:12
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv22568 Modified Files: Controls.cpp Thruster.cpp Log Message: For some reason, MSVC++ requires to specify explicitly the typename of the min/max functions. Index: Controls.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Controls.cpp,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -r1.39 -r1.40 *** Controls.cpp 5 Jun 2016 20:00:14 -0000 1.39 --- Controls.cpp 11 Jun 2016 10:02:09 -0000 1.40 *************** *** 233,237 **** float CLmin = CL0 + MIN_ALPHA*CLalpha; ! float CLmax = CL0 + std::max(alpha,MAX_ALPHA)*CLalpha; _aircraft->_CYp.at(i) = -CL*CYp_const; --- 233,237 ---- float CLmin = CL0 + MIN_ALPHA*CLalpha; ! float CLmax = CL0 + std::max<float>(alpha,MAX_ALPHA)*CLalpha; _aircraft->_CYp.at(i) = -CL*CYp_const; Index: Thruster.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Thruster.cpp,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -r1.25 -r1.26 *** Thruster.cpp 3 May 2016 11:51:19 -0000 1.25 --- Thruster.cpp 11 Jun 2016 10:02:09 -0000 1.26 *************** *** 221,225 **** float alpha = th-phi; ! float CL = std::min(std::max(CL0 + alpha*CLa, -1.42f), 1.42f); float CD = CD0 + alpha*CDa*CL + CDi*CL*CL; float CY = CL*cphi - CD*sphi; --- 221,225 ---- float alpha = th-phi; ! float CL = std::min<float>(std::max<float>(CL0 + alpha*CLa, -1.42f), 1.42f); float CD = CD0 + alpha*CDa*CL + CDi*CL*CL; float CY = CL*cphi - CD*sphi; |
From: Erik H. <eh...@us...> - 2016-06-06 10:49:24
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/pc7/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv27159/Systems Added Files: Conventional Controls.xml Flaps.xml Landing Gear.xml Log Message: Update to the latest Aeromatic output ***** Bogus filespec: Conventional --- NEW FILE --- --- NEW FILE --- <?xml version="1.0"?> <system name="Flaps"> <channel name="Flaps"> <kinematic name="Flaps Control"> <input>fcs/flap-cmd-norm</input> <traverse> <setting> <position> 0 </position> <time> 0 </time> </setting> <setting> <position> 15 </position> <time> 4 </time> </setting> <setting> <position> 30 </position> <time> 3 </time> </setting> </traverse> <output>fcs/flap-pos-deg</output> </kinematic> <aerosurface_scale name="Flap Normalization"> <input>fcs/flap-pos-deg</input> <domain> <min> 0 </min> <max> 30 </max> </domain> <range> <min> 0 </min> <max> 1 </max> </range> <output>fcs/flap-pos-norm</output> </aerosurface_scale> </channel> </system> ***** Bogus filespec: Landing --- NEW FILE --- |
From: Erik H. <eh...@us...> - 2016-06-06 10:49:24
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/pc7/Engines In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv27159/Engines Added Files: PT6A.xml Propeller.xml Log Message: Update to the latest Aeromatic output --- NEW FILE --- <?xml version="1.0"?> <!-- File: PT6A.xml Author: AeromatiC++ v 3.2.5 See: http://wiki.flightgear.org/JSBSim_Engines#FGTurboprop Inputs: name: PT6A type: Turboprop Engine power: 549.8 hp inlet temperature: 725.0 degrees C overall pressure ratio: 6.3:1 Outputs: psfc: 0.641 lbs/hr/hp engine weight: 298.2 lbs engine length: 4.6 ft engine diameter: 1.8 ft --> <turboprop_engine name="PT6A"> <milthrust unit="LBS"> 1231.6 </milthrust> <idlen1> 60.0 </idlen1> <maxn1> 100.0 </maxn1> <maxpower unit="HP"> 549.8 </maxpower> <psfc unit="LBS/HR/HP"> 0.641 </psfc> <n1idle_max_delay> 1 </n1idle_max_delay> <maxstartingtime> 20 </maxstartingtime> <startern1> 20 </startern1> <ielumaxtorque unit="FT*LB"> 1303.7 </ielumaxtorque> <itt_delay> 0.05 </itt_delay> <betarangeend> 64 </betarangeend> <reversemaxpower> 60 </reversemaxpower> <function name="EnginePowerVC"> <table> <description> Engine power, function of airspeed and pressure </description> <independentVar lookup="row">atmosphere/P-psf</independentVar> <independentVar lookup="column">velocities/ve-kts</independentVar> <tableData> 0 50 100 150 200 250 503 0.357 0.380 0.400 0.425 0.457 0.486 1048 0.586 0.589 0.600 0.621 0.650 0.686 1328 0.707 0.721 0.731 0.757 0.786 0.821 1496 0.779 0.786 0.808 0.821 0.857 0.900 1684 0.850 0.857 0.874 0.900 0.943 0.979 1896 0.914 0.929 0.946 0.971 1 1.057 2135 1 1.011 1.029 1.043 1.083 1.150 2213 1.029 1.043 1.057 1.079 1.114 1.171 </tableData> </table> </function> <table name="EnginePowerRPM_N1" type="internal"> <description> Engine Power, function of RPM and N1 </description> <tableData> 0 5 60 86 94 95 96 97 98 99 100 101 0.0 0.0 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 0.4 862.7 0.0 0.4 25.9 148.0 259.0 281.2 310.8 340.4 370.0 392.2 429.2 458.8 1291.7 0.0 0.4 22.2 170.2 296.0 318.2 347.8 373.7 407.0 436.6 473.6 503.2 1723.0 0.0 0.4 3.7 177.6 325.6 351.5 377.4 407.0 440.3 466.2 503.2 532.8 2154.4 0.0 0.1 0.1 166.5 333.0 366.3 388.5 418.1 451.4 481.0 518.0 551.3 2370.1 0.0 0.1 0.1 151.7 325.6 355.2 381.1 414.4 447.7 477.3 514.3 549.8 </tableData> </table> <table name="ITT_N1" type="internal"> <description> Inter-Turbine Temperature ITT [deg C] depending on N1 and engine run (0=off / 1=running) </description> <tableData> 0 1 0 0 0 15 105.1 105.1 60 188.5 546.7 96 283.5 714.8 100 294.4 790.2 </tableData> </table> <table name="CombustionEfficiency_N1" type="internal"> <description>Dependency of fuel efficiency coefficient on N1 (and RPM)</description> <tableData> 90 0.1221 91.2 0.2834 92.2 0.5336 93.4 0.7188 94.1 0.7741 95.2 0.8471 96.5 0.9001 100 1 </tableData> </table> </turboprop_engine> --- NEW FILE --- <?xml version="1.0"?> <!-- Generated by Aero-Matic v 3.2.5 See: http://wiki.flightgear.org/JSBSim_Thrusters#FGPropeller Inputs: horsepower: 549.81 max engine rpm: 37500 prop diameter (ft): 7.91667 prop chord (ft): 0.756031 pitch: variable at 45 inch Outputs: max prop rpm: 2370.06 gear ratio: 15.8224 Cp0: 0.0663477 Ct0: 0.15459 static thrust (lbs): 2253.1 --> <propeller version="1.01" name="prop"> <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 --> <table name="C_THRUST" type="internal"> <tableData> -15 0 15 30 45 60 0.00 0.0499 0.1140 0.1781 0.2421 0.3062 0.3702 0.05 0.0438 0.1076 0.1712 0.2345 0.2975 0.3604 0.10 0.0378 0.1014 0.1645 0.2272 0.2894 0.3511 0.15 0.0319 0.0954 0.1582 0.2202 0.2816 0.3423 0.20 0.0260 0.0895 0.1520 0.2136 0.2743 0.3340 0.25 0.0202 0.0838 0.1461 0.2073 0.2673 0.3261 0.30 0.0144 0.0781 0.1404 0.2013 0.2607 0.3187 0.35 0.0086 0.0726 0.1349 0.1955 0.2544 0.3117 0.40 0.0029 0.0672 0.1296 0.1900 0.2485 0.3051 0.45 -0.0029 0.0618 0.1244 0.1847 0.2428 0.2988 0.50 -0.0087 0.0565 0.1193 0.1796 0.2375 0.2929 0.55 -0.0146 0.0513 0.1144 0.1747 0.2323 0.2872 0.60 -0.0204 0.0461 0.1095 0.1700 0.2275 0.2819 0.65 -0.0263 0.0409 0.1048 0.1655 0.2228 0.2769 0.70 -0.0323 0.0357 0.1002 0.1611 0.2184 0.2721 0.75 -0.0383 0.0306 0.0957 0.1569 0.2142 0.2676 0.80 -0.0444 0.0255 0.0912 0.1528 0.2101 0.2633 0.85 -0.0506 0.0203 0.0868 0.1488 0.2063 0.2593 0.90 -0.0569 0.0152 0.0825 0.1449 0.2026 0.2554 0.95 -0.0633 0.0100 0.0782 0.1412 0.1990 0.2517 1.00 -0.0697 0.0049 0.0739 0.1375 0.1956 0.2482 1.05 -0.0763 -0.0004 0.0697 0.1340 0.1924 0.2449 1.10 -0.0830 -0.0056 0.0655 0.1305 0.1892 0.2418 1.15 -0.0897 -0.0109 0.0614 0.1271 0.1862 0.2388 1.20 -0.0966 -0.0162 0.0572 0.1237 0.1833 0.2359 1.25 -0.1036 -0.0216 0.0531 0.1205 0.1805 0.2332 1.30 -0.1108 -0.0270 0.0490 0.1173 0.1778 0.2306 1.35 -0.1180 -0.0325 0.0449 0.1141 0.1752 0.2282 1.40 -0.1254 -0.0381 0.0407 0.1110 0.1727 0.2258 1.50 -0.1406 -0.0494 0.0325 0.1049 0.1679 0.2214 1.60 -0.1564 -0.0609 0.0242 0.0989 0.1633 0.2174 1.70 -0.1727 -0.0728 0.0158 0.0930 0.1590 0.2137 1.80 -0.1896 -0.0850 0.0073 0.0873 0.1549 0.2103 1.90 -0.2071 -0.0975 -0.0013 0.0815 0.1510 0.2071 2.00 -0.2251 -0.1104 -0.0100 0.0759 0.1473 0.2042 2.10 -0.2439 -0.1236 -0.0189 0.0702 0.1437 0.2015 2.20 -0.2632 -0.1371 -0.0279 0.0645 0.1402 0.1990 2.30 -0.2831 -0.1511 -0.0371 0.0589 0.1368 0.1967 2.40 -0.3037 -0.1654 -0.0464 0.0532 0.1335 0.1945 </tableData> </table> <!-- power coefficient as a function of advance ratio and blade angle --> <table name="C_POWER" type="internal"> <tableData> -15 0 15 30 45 60 0.00 0.0067 0.0317 0.0792 0.1492 0.2418 0.3568 0.05 0.0077 0.0344 0.0835 0.1551 0.2492 0.3658 0.10 0.0084 0.0366 0.0873 0.1605 0.2563 0.3745 0.15 0.0085 0.0384 0.0907 0.1657 0.2631 0.3832 0.20 0.0083 0.0397 0.0938 0.1705 0.2698 0.3916 0.25 0.0075 0.0407 0.0965 0.1750 0.2762 0.3999 0.30 0.0063 0.0412 0.0989 0.1793 0.2824 0.4082 0.35 0.0047 0.0414 0.1009 0.1832 0.2884 0.4163 0.40 0.0025 0.0411 0.1026 0.1870 0.2942 0.4244 0.45 -0.0000 0.0404 0.1039 0.1904 0.3000 0.4325 0.50 -0.0031 0.0394 0.1050 0.1937 0.3055 0.4405 0.55 -0.0066 0.0379 0.1057 0.1967 0.3110 0.4485 0.60 -0.0106 0.0360 0.1061 0.1995 0.3163 0.4565 0.65 -0.0151 0.0337 0.1061 0.2021 0.3215 0.4646 0.70 -0.0201 0.0310 0.1059 0.2044 0.3267 0.4726 0.75 -0.0256 0.0279 0.1053 0.2066 0.3317 0.4807 0.80 -0.0315 0.0244 0.1044 0.2085 0.3366 0.4889 0.85 -0.0380 0.0204 0.1032 0.2102 0.3415 0.4971 0.90 -0.0451 0.0161 0.1017 0.2117 0.3463 0.5053 0.95 -0.0526 0.0112 0.0998 0.2131 0.3510 0.5136 1.00 -0.0607 0.0060 0.0976 0.2142 0.3556 0.5220 1.05 -0.0694 0.0003 0.0951 0.2151 0.3602 0.5304 1.10 -0.0786 -0.0059 0.0923 0.2158 0.3647 0.5389 1.15 -0.0884 -0.0125 0.0891 0.2162 0.3691 0.5475 1.20 -0.0987 -0.0195 0.0855 0.2165 0.3734 0.5562 1.25 -0.1097 -0.0271 0.0817 0.2166 0.3777 0.5649 1.30 -0.1212 -0.0351 0.0775 0.2164 0.3818 0.5737 1.35 -0.1334 -0.0436 0.0729 0.2161 0.3860 0.5826 1.40 -0.1461 -0.0526 0.0680 0.2155 0.3900 0.5915 1.50 -0.1735 -0.0720 0.0570 0.2136 0.3979 0.6097 1.60 -0.2034 -0.0935 0.0446 0.2109 0.4054 0.6281 1.70 -0.2359 -0.1171 0.0306 0.2072 0.4126 0.6469 1.80 -0.2711 -0.1428 0.0151 0.2025 0.4195 0.6660 1.90 -0.3090 -0.1706 -0.0019 0.1969 0.4260 0.6853 2.00 -0.3497 -0.2006 -0.0206 0.1903 0.4321 0.7049 2.10 -0.3932 -0.2329 -0.0410 0.1826 0.4379 0.7248 2.20 -0.4396 -0.2675 -0.0630 0.1739 0.4432 0.7449 2.30 -0.4889 -0.3044 -0.0867 0.1641 0.4481 0.7652 2.40 -0.5412 -0.3436 -0.1122 0.1532 0.4525 0.7858 </tableData> </table> <!-- thrust effects of helical tip Mach --> <table name="CT_MACH" type="internal"> <tableData> 0.85 1.0 1.05 0.8 </tableData> </table> <!-- power-required effects of helical tip Mach --> <table name="CP_MACH" type="internal"> <tableData> 0.85 1.0 1.05 1.8 2.00 1.4 </tableData> </table> </propeller> |
From: Erik H. <eh...@us...> - 2016-06-06 10:47:52
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/fokker50 In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv27023/fokker50 Modified Files: fokker50.xml Log Message: Update to the latest Aeromatic output Index: fokker50.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/fokker50/fokker50.xml,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -r1.21 -r1.22 *** fokker50.xml 22 Dec 2012 15:22:22 -0000 1.21 --- fokker50.xml 6 Jun 2016 10:47:49 -0000 1.22 *************** *** 1,4 **** --- 1,9 ---- <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="http://jsbsim.sourceforge.net/JSBSim.xsl"?> + + <!-- + Reference: + http://www.dtic.mil/dtic/tr/fulltext/u2/a257974.pdf + --> <fdm_config name="fokker50" version="2.0" release="BETA" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" *************** *** 6,12 **** <fileheader> - <author> External model, animations and FDM by Erik Hofman. Cockpit model in progress, work by the FlightGear community. </author> - <filecreationdate> In progress January 2008 </filecreationdate> - <version> External model $Revision$ Cockpit model in development.</version> <author> Erik Hofman </author> <filecreationdate> 2002-01-01</filecreationdate> --- 11,14 ---- *************** *** 14,29 **** <description> Fokker 50 commercial turboprop airliner </description> <reference refID="None" author="n/a" title="n/a" date="n/a"/> - <note> - This model was created using publicly available data, publicly available - technical reports, textbooks, and guesses. It contains no proprietary or - restricted data. If this model has been validated at all, it would be - only to the extent that it seems to "fly right", and that it possibly - complies with published, publicly known, performance data (maximum speed, - endurance, etc.). Thus, this model is meant for educational and entertainment - purposes only. - - This simulation model is not endorsed by the manufacturer. This model is not - to be sold. - </note> </fileheader> --- 16,19 ---- *************** *** 31,34 **** --- 21,25 ---- <wingarea unit="FT2"> 753.55 </wingarea> <wingspan unit="FT"> 95.15 </wingspan> + <wing_incidence> 3.27 </wing_incidence> <chord unit="FT"> 7.92 </chord> <htailarea unit="FT2"> 120.57 </htailarea> *************** *** 190,195 **** <propulsion> ! <!-- <engine file="PWC125B_Aeromatic"> --> ! <engine file="PW125BX"> <location unit="IN"> <x> 497.072 </x> --- 181,185 ---- <propulsion> ! <engine file="PW125BX"> --> <location unit="IN"> <x> 497.072 </x> *************** *** 204,209 **** <feed>0</feed> <thruster file="dowty-rotol-aero"> - <!-- <thruster file="prop_RAF-6-mod"> --> - <!-- <thruster file="direct"> --> <location unit="IN"> <x> 497.072 </x> --- 194,197 ---- *************** *** 218,222 **** </thruster> </engine> - <!-- <engine file="PWC125B_Aeromatic"> --> <engine file="PW125BX"> <location unit="IN"> --- 206,209 ---- *************** *** 232,237 **** <feed>1</feed> <thruster file="dowty-rotol-aero"> - <!-- <thruster file="prop_RAF-6-mod"> --> - <!-- <thruster file="direct"> --> <location unit="IN"> <x> 497.072 </x> --- 219,222 ---- *************** *** 277,284 **** - <flight_control name="Fokker50"> ! <channel name="EEC"> <switch name="fcs/eec-throttle-multiplier"> --- 262,271 ---- <flight_control name="Fokker50"> ! <property value="0" type="float">/systems/fokker50/erp/settingn</property> ! <property value="0" type="float">/systems/fokker50/erp/settinggi</property> ! ! <channel name="EEC"> <switch name="fcs/eec-throttle-multiplier"> *************** *** 328,365 **** <!-- Control Np. GA =1 TO =2 MCT =3 CLB = 4 CRZ =5, plus 0.5 for gnd idle range --> ! <switch name="fcs/erp-np-cmd"> ! <default value="0.825"/> ! <test logic="OR" value="0.495"> ! /systems/fokker50/erp/settinggi == 5 ! /systems/fokker50/erp/settinggi == 4 ! </test> ! <test logic="OR" value="0"> ! /systems/fokker50/erp/settinggi == 2.5 ! /systems/fokker50/erp/settinggi == 3.5 ! /systems/fokker50/erp/settinggi == 4.5 ! /systems/fokker50/erp/settinggi == 5.5 ! </test> ! <output>fcs/advance-pos-norm[1]</output> ! <output>fcs/advance-pos-norm</output> ! </switch> ! ! <switch name="fcs/erp-np-cmd[1]"> ! <default value="0.825"/> ! <test logic="OR" value="0.495"> ! /systems/fokker50/erp/settinggi == 5 ! /systems/fokker50/erp/settinggi == 4 ! </test> ! <test logic="OR" value="0"> ! /systems/fokker50/erp/settinggi == 2.5 ! /systems/fokker50/erp/settinggi == 3.5 ! /systems/fokker50/erp/settinggi == 4.5 ! /systems/fokker50/erp/settinggi == 5.5 ! </test> ! <output>fcs/advance-pos-norm</output> ! </switch> </channel> ! <channel name="Pitch"> <summer name="Pitch Trim Sum"> --- 315,372 ---- <!-- Control Np. GA =1 TO =2 MCT =3 CLB = 4 CRZ =5, plus 0.5 for gnd idle range --> ! <switch name="fcs/erp-np-cmd"> ! <default value="0.825"/> ! <test logic="OR" value="0.495"> ! /systems/fokker50/erp/settinggi == 5 ! /systems/fokker50/erp/settinggi == 4 ! </test> ! <test logic="OR" value="0"> ! /systems/fokker50/erp/settinggi == 2.5 ! /systems/fokker50/erp/settinggi == 3.5 ! /systems/fokker50/erp/settinggi == 4.5 ! /systems/fokker50/erp/settinggi == 5.5 ! </test> ! <output>fcs/advance-pos-norm[1]</output> ! <output>fcs/advance-pos-norm</output> ! </switch> ! ! <switch name="fcs/erp-np-cmd[1]"> ! <default value="0.825"/> ! <test logic="OR" value="0.495"> ! /systems/fokker50/erp/settinggi == 5 ! /systems/fokker50/erp/settinggi == 4 ! </test> ! <test logic="OR" value="0"> ! /systems/fokker50/erp/settinggi == 2.5 ! /systems/fokker50/erp/settinggi == 3.5 ! /systems/fokker50/erp/settinggi == 4.5 ! /systems/fokker50/erp/settinggi == 5.5 ! </test> ! <output>fcs/advance-pos-norm</output> ! </switch> </channel> ! <channel name="Thruster"> ! <summer name="Thrust Coefficient Left"> ! <input>propulsion/engine[0]/thrust-coefficient</input> ! <output>systems/propulsion/thrust-coefficient-left</output> ! </summer> ! <summer name="Thrust Coefficient Right"> ! <input>propulsion/engine[1]/thrust-coefficient</input> ! <output>systems/propulsion/thrust-coefficient-right</output> ! </summer> ! <summer name="Thrust Coefficient Left-Right"> ! <input>systems/propulsion/thrust-coefficient-left</input> ! <input>-systems/propulsion/thrust-coefficient-right</input> ! <output>systems/propulsion/thrust-coefficient-left-right</output> ! </summer> ! <summer name="Thrust Coefficient"> ! <input>systems/propulsion/thrust-coefficient-left</input> ! <input>systems/propulsion/thrust-coefficient-right</input> ! <output>systems/propulsion/thrust-coefficient</output> ! </summer> ! </channel> + <channel name="Pitch"> <summer name="Pitch Trim Sum"> *************** *** 618,626 **** <independentVar>aero/alpha-rad</independentVar> <tableData> ! -1.5700 1.5000 ! -0.2600 0.0500 ! 0.0000 0.0250 ! 0.2600 0.0500 ! 1.5700 1.5000 </tableData> </table> --- 625,633 ---- <independentVar>aero/alpha-rad</independentVar> <tableData> ! -1.5700 1.4083 ! -0.3400 0.0806 ! 0.0000 0.0245 ! 0.3400 0.0806 ! 1.5700 1.4083 </tableData> </table> *************** *** 634,638 **** <property>aero/cl-squared</property> <property>aero/function/kCDge</property> ! <value>0.0390</value> </product> </function> --- 641,645 ---- <property>aero/cl-squared</property> <property>aero/function/kCDge</property> ! <value>0.0300</value> </product> </function> *************** *** 661,665 **** <property>fcs/flap-pos-norm</property> <property>aero/function/kCDge</property> ! <value>0.0350</value> </product> </function> --- 668,672 ---- <property>fcs/flap-pos-norm</property> <property>aero/function/kCDge</property> ! <value>0.0011</value> </product> </function> *************** *** 670,683 **** <property>metrics/Sw-sqft</property> <property>gear/gear-pos-norm</property> ! <value>0.0230</value> ! </product> ! </function> ! <function name="aero/coefficient/CDsb"> ! <description>Drag_due_to_speedbrakes</description> ! <product> ! <property>aero/qbar-psf</property> ! <property>metrics/Sw-sqft</property> ! <property>fcs/speedbrake-pos-norm</property> ! <value>0.0250</value> </product> </function> --- 677,681 ---- <property>metrics/Sw-sqft</property> <property>gear/gear-pos-norm</property> ! <value>0.0460</value> </product> </function> *************** *** 690,695 **** <independentVar>aero/beta-rad</independentVar> <tableData> ! -1.5700 1.2300 ! -0.2600 0.0500 0.0000 0.0000 0.2600 0.0500 --- 688,693 ---- <independentVar>aero/beta-rad</independentVar> <tableData> ! -1.5700 1.2300 ! -0.2600 0.0500 0.0000 0.0000 0.2600 0.0500 *************** *** 705,709 **** <property>metrics/Sw-sqft</property> <abs><property>fcs/elevator-pos-norm</property></abs> ! <value>0.0350</value> </product> </function> --- 703,707 ---- <property>metrics/Sw-sqft</property> <abs><property>fcs/elevator-pos-norm</property></abs> ! <value>0.0400</value> </product> </function> *************** *** 717,726 **** <property>metrics/Sw-sqft</property> <property>aero/beta-rad</property> ! <value>-1.0000</value> </product> </function> </axis> <axis name="LIFT"> <function name="aero/coefficient/CLalpha"> <description>Lift_due_to_alpha</description> --- 715,781 ---- <property>metrics/Sw-sqft</property> <property>aero/beta-rad</property> ! <value>-0.4157</value> </product> </function> + <function name="aero/force/Side_roll_rate"> + <description>Side_force_due_to_roll_rate</description> + <product> + <property>aero/qbar-psf</property> + <property>metrics/Sw-sqft</property> + <property>aero/bi2vel</property> + <property>velocities/p-aero-rad_sec</property> + <table> + <independentVar lookup="row">aero/Re</independentVar> + <tableData> + 9657151 0.4339 + 10622865 0.0324 + 14485727 0.0144 + 19153512 0.0082 + </tableData> + </table> + </product> + </function> + <function name="aero/force/Side_yaw_rate"> + <description>Side_force_due_to_yaw_rate</description> + <product> + <property>aero/qbar-psf</property> + <property>metrics/Sw-sqft</property> + <property>aero/bi2vel</property> + <property>velocities/r-aero-rad_sec</property> + <value> 0.3618 </value> + </product> + </function> + <function name="aero/force/Side_rudder"> + <description>Side_force_due_to_rudder</description> + <product> + <property>aero/qbar-psf</property> + <property>metrics/Sw-sqft</property> + <property>fcs/rudder-pos-rad</property> + <value> 0.2532 </value> + </product> + </function> </axis> <axis name="LIFT"> + <function name="aero/force/Lift_propwash"> + <description>Delta lift due to propeller induced velocity</description> + <product> + <property>systems/propulsion/thrust-coefficient</property> + <property>aero/qbar-psf</property> + <property>metrics/Sw-sqft</property> + <table> + <independentVar lookup="row">aero/alpha-rad</independentVar> + <independentVar lookup="column">fcs/flap-pos-deg</independentVar> + <tableData> + 0.0 60.0 + -0.15 0.000 0.000 + 0.00 0.057 0.151 + 0.38 0.299 0.797 + 0.75 0.000 0.000 + </tableData> + </table> + </product> + </function> + <function name="aero/coefficient/CLalpha"> <description>Lift_due_to_alpha</description> *************** *** 732,743 **** <independentVar>aero/alpha-rad</independentVar> <tableData> ! -0.2000 -0.7400 ! 0.0000 0.2400 ! 0.2400 1.4000 ! 0.6000 0.7040 </tableData> </table> </product> </function> <function name="aero/coefficient/dCLflap"> <description>Delta_Lift_due_to_flaps</description> --- 787,818 ---- <independentVar>aero/alpha-rad</independentVar> <tableData> ! -0.2000 -0.6932 ! 0.0000 0.4678 ! 0.3400 2.4669 ! 0.6000 0.8813 </tableData> </table> </product> </function> + <function name="aero/force/Lift_pitch_rate"> + <description>Lift_due_to_pitch_rate</description> + <product> + <property>aero/qbar-psf</property> + <property>metrics/Sw-sqft</property> + <property>velocities/q-aero-rad_sec</property> + <property>aero/ci2vel</property> + <value> 5.2170 </value> + </product> + </function> + <function name="aero/force/Lift_alpha_rate"> + <description>Lift_due_to_alpha_rate</description> + <product> + <property>aero/qbar-psf</property> + <property>metrics/Sw-sqft</property> + <property>aero/alphadot-rad_sec</property> + <property>aero/ci2vel</property> + <value> 1.4906 </value> + </product> + </function> <function name="aero/coefficient/dCLflap"> <description>Delta_Lift_due_to_flaps</description> *************** *** 750,762 **** </product> </function> - <function name="aero/coefficient/dCLsb"> - <description>Delta_Lift_due_to_speedbrake</description> - <product> - <property>aero/qbar-psf</property> - <property>metrics/Sw-sqft</property> - <property>fcs/speedbrake-pos-norm</property> - <value>0.0000</value> - </product> - </function> <function name="aero/coefficient/CLde"> <description>Lift_due_to_Elevator_Deflection</description> --- 825,828 ---- *************** *** 765,769 **** <property>metrics/Sw-sqft</property> <property>fcs/elevator-pos-rad</property> ! <value>0.2000</value> </product> </function> --- 831,835 ---- <property>metrics/Sw-sqft</property> <property>fcs/elevator-pos-rad</property> ! <value>0.2732</value> </product> </function> *************** *** 771,774 **** --- 837,852 ---- <axis name="ROLL"> + <function name="aero/moment/Roll_differential_propwash"> + <description>Roll moment due to differential propwash</description> + <product> + <property>systems/propulsion/thrust-coefficient-left-right</property> + <property>aero/qbar-psf</property> + <property>metrics/Sw-sqft</property> + <property>metrics/bw-ft</property> + <property>aero/alpha-rad</property> + <value> -1.7213 </value> + </product> + </function> + <function name="aero/coefficient/Clb"> <description>Roll_moment_due_to_beta</description> *************** *** 778,783 **** <property>metrics/bw-ft</property> <property>aero/beta-rad</property> ! <!-- <value>-0.1000</value>--> ! <value>-0.1000</value> </product> </function> --- 856,868 ---- <property>metrics/bw-ft</property> <property>aero/beta-rad</property> ! <table> ! <independentVar lookup="row">aero/alpha-rad</independentVar> ! <independentVar lookup="column">aero/Re</independentVar> ! <tableData> ! 9657151 10622865 14485727 19153512 ! -0.0349 -0.2127 -0.0369 -0.0290 -0.0265 ! 0.3491 -0.3313 -0.0478 -0.0406 -0.0391 ! </tableData> ! </table> </product> </function> *************** *** 790,794 **** <property>aero/bi2vel</property> <property>velocities/p-aero-rad_sec</property> ! <value>-0.4000</value> </product> </function> --- 875,879 ---- <property>aero/bi2vel</property> <property>velocities/p-aero-rad_sec</property> ! <value>-0.5138</value> </product> </function> *************** *** 801,805 **** <property>aero/bi2vel</property> <property>velocities/r-aero-rad_sec</property> ! <value>0.1500</value> </product> </function> --- 886,898 ---- <property>aero/bi2vel</property> <property>velocities/r-aero-rad_sec</property> ! <table> ! <independentVar lookup="row">aero/alpha-rad</independentVar> ! <independentVar lookup="column">aero/Re</independentVar> ! <tableData> ! 9657151 10622865 14485727 19153512 ! -0.0349 0.7227 0.1035 0.0758 0.0663 ! 0.3491 6.8236 0.6608 0.6331 0.6236 ! </tableData> ! </table> </product> </function> *************** *** 815,819 **** <tableData> 0.0000 0.1500 ! 2.0000 0.0500 </tableData> </table> --- 908,912 ---- <tableData> 0.0000 0.1500 ! 2.0000 0.0375 </tableData> </table> *************** *** 833,836 **** --- 926,950 ---- <axis name="PITCH"> + <function name="aero/moment/Pitch_propwash"> + <description>Pitch moment due to propeller induced velocity</description> + <product> + <property>systems/propulsion/thrust-coefficient</property> + <property>aero/qbar-psf</property> + <property>metrics/Sw-sqft</property> + <property>metrics/bw-ft</property> + <table> + <independentVar lookup="row">aero/alpha-rad</independentVar> + <independentVar lookup="column">fcs/flap-pos-deg</independentVar> + <tableData> + 0.0 60.0 + -0.01 0.000 0.000 + 0.00 -0.035 -0.093 + 0.38 -0.185 -0.492 + 0.49 0.000 0.000 + </tableData> + </table> + </product> + </function> + <function name="aero/coefficient/Cmalpha"> <description>Pitch_moment_due_to_alpha</description> *************** *** 840,844 **** <property>metrics/cbarw-ft</property> <property>aero/alpha-rad</property> ! <value>-0.4000</value> </product> </function> --- 954,958 ---- <property>metrics/cbarw-ft</property> <property>aero/alpha-rad</property> ! <value>-1.8763</value> </product> </function> *************** *** 853,858 **** <independentVar>velocities/mach</independentVar> <tableData> ! 0.0000 -1.0000 ! 2.0000 -0.2500 </tableData> </table> --- 967,972 ---- <independentVar>velocities/mach</independentVar> <tableData> ! 0.0000 -1.6280 ! 2.0000 -0.4070 </tableData> </table> *************** *** 867,871 **** <property>aero/ci2vel</property> <property>velocities/q-aero-rad_sec</property> ! <value>-22.0000</value> </product> </function> --- 981,985 ---- <property>aero/ci2vel</property> <property>velocities/q-aero-rad_sec</property> ! <value>-20.1341</value> </product> </function> *************** *** 878,882 **** <property>aero/ci2vel</property> <property>aero/alphadot-rad_sec</property> ! <value>-8.0000</value> </product> </function> --- 992,996 ---- <property>aero/ci2vel</property> <property>aero/alphadot-rad_sec</property> ! <value>-5.7526</value> </product> </function> *************** *** 884,887 **** --- 998,1020 ---- <axis name="YAW"> + <!-- Stall initiator --> + <function name="aero/moment/Yaw_alpha"> + <description>Yaw moment due to alpha</description> + <product> + <property>aero/qbar-psf</property> + <property>metrics/Sw-sqft</property> + <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> + 9657151 10622865 + -0.3491 1.0000 0.0000 + 0.3491 -1.0000 0.0000 + </tableData> + </table> + </product> + </function> <function name="aero/coefficient/Cnb"> <description>Yaw_moment_due_to_beta</description> *************** *** 891,898 **** <property>metrics/bw-ft</property> <property>aero/beta-rad</property> ! <value>0.1200</value> ! <!-- <value>0.1200</value> --> </product> </function> <function name="aero/coefficient/Cnr"> <description>Yaw_moment_due_to_yaw_rate</description> --- 1024,1049 ---- <property>metrics/bw-ft</property> <property>aero/beta-rad</property> ! <value>0.1809</value> </product> </function> + <function name="aero/moment/Yaw_rol_rate"> + <description>Yaw_moment_due_to_roll_rate</description> + <product> + <property>aero/qbar-psf</property> + <property>metrics/Sw-sqft</property> + <property>metrics/bw-ft</property> + <property>aero/bi2vel</property> + <property>velocities/p-rad_sec</property> + <table> + <independentVar lookup="row">aero/Re</independentVar> + <tableData> + 9657151 -3.0836 + 10622865 -0.2300 + 14485727 -0.1022 + 19153512 -0.0585 + </tableData> + </table> + </product> + </function> <function name="aero/coefficient/Cnr"> <description>Yaw_moment_due_to_yaw_rate</description> *************** *** 903,907 **** <property>aero/bi2vel</property> <property>velocities/r-aero-rad_sec</property> ! <value>-0.1500</value> </product> </function> --- 1054,1058 ---- <property>aero/bi2vel</property> <property>velocities/r-aero-rad_sec</property> ! <value>-0.1739</value> </product> </function> *************** *** 913,917 **** <property>metrics/bw-ft</property> <property>fcs/rudder-pos-rad</property> ! <value>-0.1000</value> </product> </function> --- 1064,1068 ---- <property>metrics/bw-ft</property> <property>fcs/rudder-pos-rad</property> ! <value>-0.1102</value> </product> </function> |
From: Erik H. <eh...@us...> - 2016-06-06 10:47:52
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/pc7 In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv27023/pc7 Modified Files: pc7.xml Log Message: Update to the latest Aeromatic output Index: pc7.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/pc7/pc7.xml,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -r1.16 -r1.17 *** pc7.xml 22 Dec 2012 15:22:22 -0000 1.16 --- pc7.xml 6 Jun 2016 10:47:49 -0000 1.17 *************** *** 1,629 **** <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="http://jsbsim.sourceforge.net/JSBSim.xsl"?> ! <fdm_config name="pc7" version="2.0" release="BETA" ! xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ! xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd"> ! ! <fileheader> ! <author> Unknown </author> ! <filecreationdate> 2001-01-01 </filecreationdate> ! <version> $Revision$ </version> [...1348 lines suppressed...] ! ! <function name="aero/moment/Yaw_aileron"> ! <description>Adverse yaw</description> ! <product> ! <property>aero/qbar-psf</property> ! <property>metrics/Sw-sqft</property> ! <property>metrics/bw-ft</property> ! <property>fcs/left-aileron-pos-rad</property> ! <value> -0.0030 </value> ! </product> ! </function> ! ! </axis> ! ! </aerodynamics> ! ! <external_reactions> ! </external_reactions> ! </fdm_config> |
From: Erik H. <eh...@us...> - 2016-06-06 10:46:12
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/pc7/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv26942/Systems Log Message: Directory /cvsroot/jsbsim/JSBSim/aircraft/pc7/Systems added to the repository |
From: Erik H. <eh...@us...> - 2016-06-06 10:45:16
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/pc7/Engines In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv26897/Engines Log Message: Directory /cvsroot/jsbsim/JSBSim/aircraft/pc7/Engines added to the repository |
From: Erik H. <eh...@us...> - 2016-06-05 20:00:17
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv20123/Systems Modified Files: Controls.cpp Log Message: Add a stall initiator table, Fix the Reynolds number calculation and Fix the tables that relay on the Reynolds number Index: Controls.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Systems/Controls.cpp,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -r1.38 -r1.39 *** Controls.cpp 2 Jun 2016 22:08:06 -0000 1.38 --- Controls.cpp 5 Jun 2016 20:00:14 -0000 1.39 *************** *** 45,49 **** #include "Controls.h" ! #define MIN_ALPHA (-10*DEG_TO_RAD) #define MAX_ALPHA ( 20*DEG_TO_RAD) --- 45,49 ---- #include "Controls.h" ! #define MIN_ALPHA (-2*DEG_TO_RAD) #define MAX_ALPHA ( 20*DEG_TO_RAD) *************** *** 159,163 **** 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; --- 159,163 ---- 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; *************** *** 189,194 **** float dsdB = 0.0f; // ds/dB float CYbeta = -nv*(Sv/Sw)*CLav[0]*(1.0f+dsdB); ! float CYp_const = (AR+cosf(sweep))/(AR+4*cosf(sweep))*tanf(sweep); ! float Clr_const = 2.0f*lv*lv/bw/bw*CYbeta; float CL0 = _aircraft->_CL0; --- 189,193 ---- float dsdB = 0.0f; // ds/dB float CYbeta = -nv*(Sv/Sw)*CLav[0]*(1.0f+dsdB); ! float CYp_const = -(AR+cosf(sweep))/(AR+4*cosf(sweep))*tanf(sweep); float CL0 = _aircraft->_CL0; *************** *** 201,251 **** float Clbvt = -(zv/bw)*CLah[0]; for (int i=0; i<4; ++i) { ! if (i == 3) ! { ! CL0 = CLaw[0]*(iw - a0w)+(Sh/Sw)*nh*CLah[0]*(ih - E0); ! ! _aircraft->_CL0 = CL = CL0; ! _aircraft->_CDalpha.at(i) = CLalpha*(2.0f*CL)/(PI*AR*Ew); ! ! Vt = sqrtf(W/(0.5f*rho*CL*Sw)); ! } ! else { ! if (i == 2) Vt = 1.33f*Vs; ! else if (i == 1) Vt = Vs; ! else if (i == 0) Vt = 10*KNOTS_TO_FPS; // 0.25f*Vs; ! Q = 0.5f*rho*Vt*Vt; CL = W/Q/Sw; } ! _aircraft->_Re.at(i) = (0.0765f * Vt * cbarw)/ 1.983e-5f; alpha = (CL-CL0)/CLalpha; _aircraft->_alpha.at(i) = alpha; ! float CLmin = CL - (alpha-MIN_ALPHA)*CLalpha; ! float CLmax = CL + (alpha+MAX_ALPHA)*CLalpha; _aircraft->_CYp.at(i) = -CL*CYp_const; _aircraft->_Cnp.at(i) = -CL/8.0f; - // _aircraft->_Clbeta.at(i) = -((1.0f+2.0f*TR)/(6.0f+6.0f*TR))*(dihedral*CLaw[0] + (CL*tanf(sweep)/(1.0f-M2*powf(cosf(sweep), 2.0f))))); - // _aircraft->_Clr.at(i) = (CL/4.0f)-Clr_const; - #if 1 float Cmin, Cmax; // From Flight Dynamics by Robert F. Stengel page 99 Cmin = (-((1.0f+2.0f*TR)/(6.0f+6.0f*TR))*(dihedral*CLaw[0] + (CLmin*tanf(sweep)/(1.0f-M2*powf(cosf(sweep), 2.0f))))); Cmax = (-((1.0f+2.0f*TR)/(6.0f+6.0f*TR))*(dihedral*CLaw[0] + (CLmax*tanf(sweep)/(1.0f-M2*powf(cosf(sweep), 2.0f))))); - _aircraft->_Clbeta.at(i) = -Cmin - Clbwf - Clbvt; - _aircraft->_Clbeta.at(i) = -Cmax - Clbwf - Clbvt; Cmin = (CLmin/4.0f)-Clr_const; Cmax = (CLmax/4.0f)-Clr_const; ! _aircraft->_Clr.at(i) = Cmin; ! _aircraft->_Clr.at(i) = Cmax; ! #endif } --- 200,256 ---- float Clbvt = -(zv/bw)*CLah[0]; + CL0 = CLaw[0]*(iw - a0w)+(Sh/Sw)*nh*CLah[0]*(ih - E0); + _aircraft->_CDalpha.at(0) = CLalpha*(2.0f*CL0)/(PI*AR*Ew); + + _aircraft->_CL0 = CL0; for (int i=0; i<4; ++i) { ! switch (i) { ! case 0: ! CL = 10.0f * _aircraft->_CLmax[0]; ! Vt = Vs; ! break; ! case 1: ! Vt = 1.1*Vs; ! Q = 0.5f*rho*Vs*Vs; ! CL = W/Q/Sw; ! break; ! case 2: ! Vt = 1.5f*Vs; Q = 0.5f*rho*Vt*Vt; CL = W/Q/Sw; + break; + case 3: + CL = CL0; + Vt = sqrtf(W/(0.5f*rho*CL*Sw)); + break; } ! _aircraft->_Re.at(i) = (Vt * cbarw)*6372.38970987f; // 1/0.000156927 alpha = (CL-CL0)/CLalpha; _aircraft->_alpha.at(i) = alpha; ! float CLmin = CL0 + MIN_ALPHA*CLalpha; ! float CLmax = CL0 + std::max(alpha,MAX_ALPHA)*CLalpha; _aircraft->_CYp.at(i) = -CL*CYp_const; _aircraft->_Cnp.at(i) = -CL/8.0f; float Cmin, Cmax; // From Flight Dynamics by Robert F. Stengel page 99 + M = Vt / 661.5f; M2 = M*M; Cmin = (-((1.0f+2.0f*TR)/(6.0f+6.0f*TR))*(dihedral*CLaw[0] + (CLmin*tanf(sweep)/(1.0f-M2*powf(cosf(sweep), 2.0f))))); Cmax = (-((1.0f+2.0f*TR)/(6.0f+6.0f*TR))*(dihedral*CLaw[0] + (CLmax*tanf(sweep)/(1.0f-M2*powf(cosf(sweep), 2.0f))))); + _aircraft->_Clbeta.at(i*2) = Cmin - Clbwf - alpha*Clbvt; + _aircraft->_Clbeta.at(i*2+1) = Cmax - Clbwf - alpha*Clbvt; + + float Clr_const = 2.0f*lv*lv/bw/bw*(CYbeta*alpha); Cmin = (CLmin/4.0f)-Clr_const; Cmax = (CLmax/4.0f)-Clr_const; ! _aircraft->_Clr.at(i*2) = Cmin; ! _aircraft->_Clr.at(i*2+1) = Cmax; } *************** *** 275,279 **** // roll float TRh = _aircraft->_htail.taper; ! float TRv = _aircraft->_vtail.taper; _aircraft->_Clp = -(CLaw[0]/12.0f)*(1.0f+3.0f*TR)/(1.0f+TR) + (CLah[0]/12.0f)*(Sh/Sw)*(1.0f+3.0f*TRh)/(1.0f+TRh) --- 280,284 ---- // roll float TRh = _aircraft->_htail.taper; ! // float TRv = _aircraft->_vtail.taper; _aircraft->_Clp = -(CLaw[0]/12.0f)*(1.0f+3.0f*TR)/(1.0f+TR) + (CLah[0]/12.0f)*(Sh/Sw)*(1.0f+3.0f*TRh)/(1.0f+TRh) *************** *** 327,331 **** file << std::endl; file << " <function name=\"aero/force/Lift_pitch_rate\">" << std::endl; ! file << " <description>Lift_due_to_pitch_rate</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; --- 332,336 ---- file << std::endl; file << " <function name=\"aero/force/Lift_pitch_rate\">" << std::endl; ! file << " <description>Lift due to pitch rate</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; *************** *** 338,342 **** file << std::endl; file << " <function name=\"aero/force/Lift_alpha_rate\">" << std::endl; ! file << " <description>Lift_due_to_alpha_rate</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; --- 343,347 ---- file << std::endl; file << " <function name=\"aero/force/Lift_alpha_rate\">" << std::endl; ! file << " <description>Lift due to alpha rate</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; *************** *** 374,378 **** float AR = _aircraft->_wing.aspect; ! float sweep = _aircraft->_wing.sweep * DEG_TO_RAD; float Ew = _aircraft->_wing.efficiency; --- 379,383 ---- float AR = _aircraft->_wing.aspect; ! // float sweep = _aircraft->_wing.sweep * DEG_TO_RAD; float Ew = _aircraft->_wing.efficiency; *************** *** 486,490 **** file << " </function>" << std::endl; file << " <function name=\"aero/force/Side_roll_rate\">" << std::endl; ! file << " <description>Side_force_due_to_roll_rate</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; --- 491,495 ---- file << " </function>" << std::endl; file << " <function name=\"aero/force/Side_roll_rate\">" << std::endl; ! file << " <description>Side force due to roll rate</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; *************** *** 499,503 **** file << std::endl; file << " <function name=\"aero/force/Side_yaw_rate\">" << std::endl; ! file << " <description>Side_force_due_to_yaw_rate</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; --- 504,508 ---- file << std::endl; file << " <function name=\"aero/force/Side_yaw_rate\">" << std::endl; ! file << " <description>Side force due to yaw rate</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; *************** *** 510,514 **** file << std::endl; file << " <function name=\"aero/force/Side_rudder\">" << std::endl; ! file << " <description>Side_force_due_to_rudder</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; --- 515,519 ---- file << std::endl; file << " <function name=\"aero/force/Side_rudder\">" << std::endl; ! file << " <description>Side force due to rudder</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; *************** *** 682,685 **** --- 687,724 ---- file << std::setprecision(4) << std::fixed << std::showpoint; + file << " <!-- Stall initiator -->" << std::endl; + file << " <function name=\"aero/moment/Yaw_alpha\">" << std::endl; + file << " <description>Yaw moment 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 << " <property>metrics/bw-ft</property>" << std::endl; + file << " <property>aero/alpha-rad</property>" << std::endl; + + file << " <table>" << std::endl; + file << " <independentVar lookup=\"row\">aero/beta-rad</independentVar>" << std::endl; + file << " <independentVar lookup=\"column\">aero/Re</independentVar>" << std::endl; + file << " <tableData>" << std::endl; + float alpha = -MAX_ALPHA; + file << std::setw(24) << ""; + for (int i=0; i<2; i++) { + file << std::setw(9) << int(_aircraft->_Re[i]); + } + for (int j=0; j<2; ++j) + { + file << std::endl << std::setprecision(4) << std::setw(24) << alpha; + for (int i=0; i<2; i++) + { + file << std::setw(9) << _aircraft->_Cna[j+2*i]; + } + alpha = MAX_ALPHA; + } + file << std::endl; + file << " </tableData>" << std::endl; + file << " </table>" << std::endl; + + file << " </product>" << std::endl; + file << " </function>" << std::endl; + file << std::endl; file << " <function name=\"aero/moment/Yaw_beta\">" << std::endl; file << " <description>Yaw moment due to beta</description>" << std::endl; *************** *** 694,698 **** file << std::endl; file << " <function name=\"aero/moment/Yaw_roll_rate\">" << std::endl; ! file << " <description>Yaw_moment_due_to_roll_rate</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; --- 733,737 ---- file << std::endl; file << " <function name=\"aero/moment/Yaw_roll_rate\">" << std::endl; ! file << " <description>Yaw moment due to roll rate</description>" << std::endl; file << " <product>" << std::endl; file << " <property>aero/qbar-psf</property>" << std::endl; *************** *** 1065,1069 **** file << " <independentVar lookup=\"column\">aero/Re</independentVar>" << std::endl; file << " <tableData>" << std::endl; ! float Clra = (C[1] - C[0])/_aircraft->_alpha[1]; float alpha = MIN_ALPHA; file << std::setw(24) << ""; --- 1104,1108 ---- file << " <independentVar lookup=\"column\">aero/Re</independentVar>" << std::endl; file << " <tableData>" << std::endl; ! // float Clra = (C[1] - C[0])/_aircraft->_alpha[1]; float alpha = MIN_ALPHA; file << std::setw(24) << ""; |
From: Erik H. <eh...@us...> - 2016-06-05 20:00:17
|
Update of /cvsroot/jsbsim/JSBSim/utils/aeromatic++ In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv20123 Modified Files: Aircraft.cpp Aircraft.h version Log Message: Add a stall initiator table, Fix the Reynolds number calculation and Fix the tables that relay on the Reynolds number Index: Aircraft.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Aircraft.cpp,v retrieving revision 1.67 retrieving revision 1.68 diff -C2 -r1.67 -r1.68 *** Aircraft.cpp 2 Jun 2016 22:08:06 -0000 1.67 --- Aircraft.cpp 5 Jun 2016 20:00:13 -0000 1.68 *************** *** 164,171 **** _CDalpha.resize(4, 0.0f); _CYp.resize(4, 0.0f); ! _Clbeta.resize(4, 0.0f); ! _Clr.resize(4, 0.0f); _Cnp.resize(4, 0.0f); _CLaw.resize(3, 0.0f); _CLah.resize(3, 0.0f); --- 164,175 ---- _CDalpha.resize(4, 0.0f); _CYp.resize(4, 0.0f); ! _Clbeta.resize(8, 0.0f); ! _Clr.resize(8, 0.0f); _Cnp.resize(4, 0.0f); + _Cna.resize(8, 0.0f); + _Cna.at(0) = -1.0f; + _Cna.at(1) = 1.0f; + _CLaw.resize(3, 0.0f); _CLah.resize(3, 0.0f); Index: Aircraft.h =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/Aircraft.h,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -r1.26 -r1.27 *** Aircraft.h 2 Jan 2016 14:58:27 -0000 1.26 --- Aircraft.h 5 Jun 2016 20:00:13 -0000 1.27 *************** *** 663,667 **** float _Cmalpha, _Cmde, _Cmq, _Cmadot; ! std::vector<float> _Cnp; float _Cnbeta, _Cnr, _Cndr, _Cnda; --- 663,667 ---- float _Cmalpha, _Cmde, _Cmq, _Cmadot; ! std::vector<float> _Cna, _Cnp; float _Cnbeta, _Cnr, _Cndr, _Cnda; Index: version =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/utils/aeromatic++/version,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -r1.12 -r1.13 *** version 16 Jan 2016 13:12:08 -0000 1.12 --- version 5 Jun 2016 20:00:13 -0000 1.13 *************** *** 1 **** ! 3.2.5 --- 1 ---- ! 3.3.0 |
From: Bertrand <bco...@us...> - 2016-06-05 15:23:05
|
Update of /cvsroot/jsbsim/JSBSim/src/initialization In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv8237/src/initialization Modified Files: FGTrim.cpp Log Message: Fixed 2 bugs for the trim algorithm on ground. First, the algorithm was using the compressed contacts which was leading to incorrect placement once the aircraft was relocated with uncompressed contacts. Second, the order in which the rotations were applied was wrong and that was corrupting the trim solution for tail wheel aircrafts. Unfortunately the error was harmless for tricycle aircrafts which generally have small pitch angles when resting on ground. Index: FGTrim.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGTrim.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -r1.32 -r1.33 *** FGTrim.cpp 4 Jun 2016 19:04:20 -0000 1.32 --- FGTrim.cpp 5 Jun 2016 15:23:02 -0000 1.33 *************** *** 199,205 **** double PitchTrim0 = FCS->GetPitchTrimCmd(); ! for(int i=0;i < fdmex->GetGroundReactions()->GetNumGearUnits();i++){ fdmex->GetGroundReactions()->GetGearUnit(i)->SetReport(false); - } fdmex->SetTrimStatus(true); --- 199,204 ---- double PitchTrim0 = FCS->GetPitchTrimCmd(); ! for(int i=0;i < fdmex->GetGroundReactions()->GetNumGearUnits();i++) fdmex->GetGroundReactions()->GetGearUnit(i)->SetReport(false); fdmex->SetTrimStatus(true); *************** *** 345,351 **** fdmex->SetTrimStatus(false); ! for(int i=0;i < fdmex->GetGroundReactions()->GetNumGearUnits();i++){ fdmex->GetGroundReactions()->GetGearUnit(i)->SetReport(true); - } return !trim_failed; --- 344,349 ---- fdmex->SetTrimStatus(false); ! for(int i=0;i < fdmex->GetGroundReactions()->GetNumGearUnits();i++) fdmex->GetGroundReactions()->GetGearUnit(i)->SetReport(true); return !trim_failed; *************** *** 385,389 **** FGLocation CGLocation = Propagate->GetLocation(); FGMatrix33 Tec2b = Propagate->GetTec2b(); ! FGMatrix33 Tl2b = Propagate->GetTl2b(); double hmin = 1E+10; int contactRef = -1; --- 383,387 ---- FGLocation CGLocation = Propagate->GetLocation(); FGMatrix33 Tec2b = Propagate->GetTec2b(); ! FGMatrix33 Tb2l = Propagate->GetTb2l(); double hmin = 1E+10; int contactRef = -1; *************** *** 391,400 **** // Build the list of the aircraft contact points and take opportunity of the // loop to find which one is closer to (or deeper into) the ground. ! for (int i = 0; i < GroundReactions->GetNumGearUnits(); i++) { ContactPoints c; ! FGLGear* gear = GroundReactions->GetGearUnit(i); ! c.location = gear->GetLocalGear(); ! FGLocation gearLoc = CGLocation.LocalToLocation(c.location); ! c.location = Tl2b * c.location; FGColumnVector3 normal, vDummy; --- 389,396 ---- // Build the list of the aircraft contact points and take opportunity of the // loop to find which one is closer to (or deeper into) the ground. ! for (int i = 0; i < GroundReactions->GetNumGearUnits(); ++i) { ContactPoints c; ! c.location = GroundReactions->GetGearUnit(i)->GetBodyLocation(); ! FGLocation gearLoc = CGLocation.LocalToLocation(Tb2l * c.location); FGColumnVector3 normal, vDummy; *************** *** 439,443 **** FGMatrix33 rot = q0.GetTInv(); vector<ContactPoints>::iterator iter; ! for (iter = contacts.begin(); iter != contacts.end(); iter++) iter->location = contact0 + rot * (iter->location - contact0); --- 435,439 ---- FGMatrix33 rot = q0.GetTInv(); vector<ContactPoints>::iterator iter; ! for (iter = contacts.begin(); iter != contacts.end(); ++iter) iter->location = contact0 + rot * (iter->location - contact0); *************** *** 463,467 **** // Update the aircraft orientation ! FGColumnVector3 euler = (q0 * q1 * fgic.GetOrientation()).GetEuler(); fgic.SetPhiRadIC(euler(1)); --- 459,463 ---- // Update the aircraft orientation ! FGColumnVector3 euler = (fgic.GetOrientation() * q0 * q1).GetEuler(); fgic.SetPhiRadIC(euler(1)); *************** *** 488,492 **** rParam.angleMin = 3.0 * M_PI; ! for (iter = contacts.begin(); iter != contacts.end(); iter++) { // Below the processed contact point is named 'M' // Construct an orthonormal basis (u, v, t). The ground normal is obtained --- 484,488 ---- rParam.angleMin = 3.0 * M_PI; ! for (iter = contacts.begin(); iter != contacts.end(); ++iter) { // Below the processed contact point is named 'M' // Construct an orthonormal basis (u, v, t). The ground normal is obtained |
From: Bertrand <bco...@us...> - 2016-06-05 15:09:09
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/p51d In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv7562/aircraft/p51d Modified Files: reset01.xml Log Message: Sets adverse initial conditions to stress the trimming algorithm on ground. Index: reset01.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/p51d/reset01.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** reset01.xml 23 May 2016 17:17:58 -0000 1.1 --- reset01.xml 5 Jun 2016 15:09:06 -0000 1.2 *************** *** 4,13 **** <vbody unit="FT/SEC"> 0.0 </vbody> <wbody unit="FT/SEC"> 0.0 </wbody> ! <phi unit="DEG"> 0.0 </phi> ! <theta unit="DEG"> 11.6 </theta> <psi unit="DEG"> 90.0 </psi> <longitude unit="DEG"> 122.0 </longitude> <latitude unit="DEG"> 47.0 </latitude> ! <altitude unit="FT"> 5.9 </altitude> <hwind unit="KTS"> 3.0 </hwind> </initialize> --- 4,13 ---- <vbody unit="FT/SEC"> 0.0 </vbody> <wbody unit="FT/SEC"> 0.0 </wbody> ! <phi unit="DEG"> 10.0 </phi> ! <theta unit="DEG"> 0.0 </theta> <psi unit="DEG"> 90.0 </psi> <longitude unit="DEG"> 122.0 </longitude> <latitude unit="DEG"> 47.0 </latitude> ! <altitude unit="FT"> 0.0 </altitude> <hwind unit="KTS"> 3.0 </hwind> </initialize> |
From: Bertrand <bco...@us...> - 2016-06-05 15:09:09
|
Update of /cvsroot/jsbsim/JSBSim/scripts In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv7562/scripts Modified Files: p51d_tail_wind.xml Log Message: Sets adverse initial conditions to stress the trimming algorithm on ground. Index: p51d_tail_wind.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/scripts/p51d_tail_wind.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** p51d_tail_wind.xml 23 May 2016 17:17:58 -0000 1.1 --- p51d_tail_wind.xml 5 Jun 2016 15:09:06 -0000 1.2 *************** *** 23,26 **** --- 23,31 ---- <property value="0"> atmosphere/cosine-gust/Z-velocity-ft_sec </property> + <event name="Trim"> + <condition>simulation/sim-time-sec gt 0.0</condition> + <set name="simulation/do_simple_trim" value="2"/> + </event> + <event name="Engine start"> <description>Start the engine</description> |
From: Erik H. <eh...@us...> - 2016-06-04 21:17:02
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/pogo-jsbsim/Engines In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv25557/aircraft/pogo-jsbsim/Engines Modified Files: YT40-A-16.xml Log Message: Do not use sea-level pressure but pressure at altitude Index: YT40-A-16.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/pogo-jsbsim/Engines/YT40-A-16.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** YT40-A-16.xml 5 Oct 2009 04:47:00 -0000 1.1 --- YT40-A-16.xml 4 Jun 2016 21:16:59 -0000 1.2 *************** *** 49,53 **** <table name="EnginePowerVC"> <description> Engine power, function of airspeed and pressure </description> ! <independentVar lookup="row">atmosphere/P-sl-psf</independentVar> <independentVar lookup="column">velocities/ve-kts</independentVar> <tableData> --- 49,53 ---- <table name="EnginePowerVC"> <description> Engine power, function of airspeed and pressure </description> ! <independentVar lookup="row">atmosphere/P-psf</independentVar> <independentVar lookup="column">velocities/ve-kts</independentVar> <tableData> *************** *** 89,91 **** </table> ! </turboprop_engine> \ No newline at end of file --- 89,91 ---- </table> ! </turboprop_engine> |
From: Erik H. <eh...@us...> - 2016-06-04 21:17:02
|
Update of /cvsroot/jsbsim/JSBSim/aircraft/paraglider In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv25557/aircraft/paraglider Modified Files: reset00.xml Log Message: Do not use sea-level pressure but pressure at altitude Index: reset00.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/aircraft/paraglider/reset00.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** reset00.xml 19 May 2016 09:37:31 -0000 1.2 --- reset00.xml 4 Jun 2016 21:16:59 -0000 1.3 *************** *** 8,13 **** <vbody unit="FT/SEC"> 0.0 </vbody> <wbody unit="FT/SEC"> 0.0 </wbody> ! <latitude unit="DEG"> 47.0 </latitude> ! <longitude unit="DEG"> 122.0 </longitude> <phi unit="DEG"> 0.0 </phi> <theta unit="DEG"> 20.0 </theta> --- 8,13 ---- <vbody unit="FT/SEC"> 0.0 </vbody> <wbody unit="FT/SEC"> 0.0 </wbody> ! <latitude unit="DEG"> 41.3 </latitude> ! <longitude unit="DEG"> 2.1 </longitude> <phi unit="DEG"> 0.0 </phi> <theta unit="DEG"> 20.0 </theta> |
From: Erik H. <eh...@us...> - 2016-06-04 21:17:02
|
Update of /cvsroot/jsbsim/JSBSim/engine In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv25557/engine Modified Files: PW125BX.xml engtm601.xml Log Message: Do not use sea-level pressure but pressure at altitude Index: PW125BX.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/engine/PW125BX.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -r1.1 -r1.2 *** PW125BX.xml 17 Apr 2015 21:17:34 -0000 1.1 --- PW125BX.xml 4 Jun 2016 21:16:59 -0000 1.2 *************** *** 47,51 **** <table name="EnginePowerVC"> <description> Engine power, function of airspeed and pressure </description> ! <independentVar lookup="row">atmosphere/P-sl-psf</independentVar> <independentVar lookup="column">velocities/ve-kts</independentVar> <tableData> --- 47,51 ---- <table name="EnginePowerVC"> <description> Engine power, function of airspeed and pressure </description> ! <independentVar lookup="row">atmosphere/P-psf</independentVar> <independentVar lookup="column">velocities/ve-kts</independentVar> <tableData> Index: engtm601.xml =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/engine/engtm601.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -r1.4 -r1.5 *** engtm601.xml 3 Jan 2006 13:50:20 -0000 1.4 --- engtm601.xml 4 Jun 2016 21:16:59 -0000 1.5 *************** *** 43,47 **** <table name="EnginePowerVC"> <description> Engine power, function of airspeed and pressure </description> ! <independentVar lookup="row">atmosphere/P-sl-psf</independentVar> <independentVar lookup="column">velocities/ve-kts</independentVar> <tableData> --- 43,47 ---- <table name="EnginePowerVC"> <description> Engine power, function of airspeed and pressure </description> ! <independentVar lookup="row">atmosphere/P-psf</independentVar> <independentVar lookup="column">velocities/ve-kts</independentVar> <tableData> |
From: Bertrand <bco...@us...> - 2016-06-04 19:04:23
|
Update of /cvsroot/jsbsim/JSBSim/src/initialization In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv20115/src/initialization Modified Files: FGTrim.cpp Log Message: Update the previous steps of the multistep integration schemes after a trim such that the simulation continues with a consistent set of derivatives. This avoid some overshoots in the velocities and accelerations that sometimes follow a trim. Index: FGTrim.cpp =================================================================== RCS file: /cvsroot/jsbsim/JSBSim/src/initialization/FGTrim.cpp,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -r1.31 -r1.32 *** FGTrim.cpp 17 Jan 2016 15:54:04 -0000 1.31 --- FGTrim.cpp 4 Jun 2016 19:04:20 -0000 1.32 *************** *** 341,344 **** --- 341,345 ---- } + fdmex->GetPropagate()->InitializeDerivatives(); fdmex->ResumeIntegration(); fdmex->SetTrimStatus(false); |