fgbuoyantforces.h
来自「6 DOF Missle Simulation」· C头文件 代码 · 共 181 行
H
181 行
/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Header: FGBuoyantForces.h Author: Anders Gidenstam, Jon S. Berndt Date started: 01/21/08 ------------- Copyright (C) 2008 Anders Gidenstam ------------- ------------- Copyright (C) 2008 Jon S. Berndt (jsb@hal-pc.org) ------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Further information about the GNU Lesser General Public License can also be found on the world wide web at http://www.gnu.org.HISTORY--------------------------------------------------------------------------------01/21/08 JSB Created%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%SENTRY%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/#ifndef FGBuoyanTFORCES_H#define FGBuoyanTFORCES_H/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%INCLUDES%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/#include <vector>#include <map>#include "FGModel.h"#include "FGGasCell.h"#include <math/FGColumnVector3.h>#include <input_output/FGXMLFileRead.h>/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%DEFINITIONS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/#define ID_BUOYANTFORCES "$Id$"/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%FORWARD DECLARATIONS%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/namespace JSBSim {/*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CLASS DOCUMENTATION%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*//** Encapsulates the Buoyant forces calculations. This class owns and contains the list of force/coefficients that define the Buoyant properties of an air vehicle. Here's an example of a gas cell specification: @code <buoyant_forces> <gas_cell type="HYDROGEN"> <location unit="M"> <x> 18.8 </x> <y> 0.0 </y> <z> 0.0 </z> </location> <x_radius unit="M"> 22.86 </x_radius> <y_radius unit="M"> 4.55 </y_radius> <z_radius unit="M"> 4.55 </z_radius> <max_overpressure unit="PA"> 340.0 </max_overpressure> <valve_coefficient unit="M4*SEC/KG"> 0.015 </valve_coefficient> </gas_cell> ... {other gass cells} ... </buoyant_forces> @endcode See FGGasCell for the full configuration file format for gas cells. @author Anders Gidenstam, Jon S. Berndt @version $Id$*//*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%CLASS DECLARATION%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/class FGBuoyantForces : public FGModel, public FGXMLFileRead{public: /** Constructor @param Executive a pointer to the parent executive object */ FGBuoyantForces(FGFDMExec* Executive); /// Destructor ~FGBuoyantForces(); bool InitModel(void); /** Runs the Buoyant forces model; called by the Executive @return false if no error */ bool Run(void); /** Loads the Buoyant forces model. The Load function for this class expects the XML parser to have found the Buoyant_forces keyword in the configuration file. @param element pointer to the current XML element for Buoyant forces parameters. @return true if successful */ bool Load(Element* element); /** Gets the total Buoyant force vector. @return a force vector. */ FGColumnVector3 GetForces(void) {return vTotalForces;} /** Gets the total Buoyancy moment vector. @return a moment vector. */ FGColumnVector3 GetMoments(void) {return vTotalMoments;} /** Gets the total gas mass. The gas mass is part of the aircraft's inertia. @return mass in slugs. */ double GetGasMass(void); /** Gets the total moment from the gas mass. @return a moment vector. */ FGColumnVector3& GetGasMassMoment(void); /** Gets the total moments of inertia for the gas mass. @return . */ FGMatrix33& GetGasMassInertia(void); /** Gets the strings for the current set of gas cells. @param delimeter either a tab or comma string depending on output type @return a string containing the descriptive names for all parameters */ string GetBuoyancyStrings(string delimeter); /** Gets the coefficient values. @param delimeter either a tab or comma string depending on output type @return a string containing the numeric values for the current set of parameters */ string GetBuoyancyValues(string delimeter);private: vector <FGGasCell*> Cells; // Buoyant forces and moments. Excluding the gas weight. FGColumnVector3 vTotalForces; FGColumnVector3 vTotalMoments; // Gas mass related masses, inertias and moments. FGMatrix33 gasCellJ; FGColumnVector3 vGasCellXYZ; FGColumnVector3 vXYZgasCell_arm; bool NoneDefined; void bind(void); void unbind(void); void Debug(int from);};} // namespace JSBSim//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?