[原][JSBSIM]aircraft飞机xml脚本
jsb定义每架飞机时定义的参数:
JSBSim does not model specific aircraft in program code. The aircraft itself is defined in a file written in an XML-based format where the aircraft mass and geometric properties are specified. Additional statements define such characteristics as:
- Landing gear location and properties.
- Pilot eyepoint
- Additional point masses (passengers, cargo, etc.)
- Propulsion system (engines, fuel tanks, and "thrusters")
- Flight control system
- Autopilot
- Aerodynamic stability derivatives and coefficients
JSBSim不会在程序代码中为特定飞机建模。 飞机本身在以基于XML的格式编写的文件中定义,其中指定了飞机质量和几何属性。 附加声明定义了以下特征:
•起落架的位置和属性。 ground_reactions
•飞行员眼点 EYEPOINT
•附加点质量(乘客,货物等) mass_balance
•推进系统(发动机,油箱和“推进器”) propulsion
•飞行控制系统 flight_control
•自动驾驶仪 autopilot
•空气动力学稳定性导数和系数 aerodynamics
配置文件格式被设置为易于理解,例如具有类似教科书的系数,这使得新手能够立即流畅地描述车辆,并且仅需要先前的基本理论空气动力学知识。
JSBSim的一个更独特的功能是其飞行系统建模方法,如飞行控制系统,自动驾驶仪,电气等。这些是通过组装代表滤波器,开关,夏天,增益,传感器等的组件串来建模的。
Fileheader
文件简介
Author作者
Filecreationdate 日期
Version 版本
License 许可方式
Description 简单描述
Note 详细描述
Reference 参考
Metrics
管理机身各项参数指标
单位:unit
FT2 平方英尺
FT 英尺
RAD 弧度数
所有单位在FGAircraft::Load 函数里加载
wingarea 机翼面积
wingspan 翼展;翼层长度
chord 翼弦
htailarea、vtailarea 尾翼面积
htailarm、vtailarm 尾翼力臂
wing_incidence 机翼倾角
location 位置
ground_reactions
管理起落架
FGGroundFeactions类
管理与地面的接触。 维护起落架和地面接触点列表,FGLGear的所有实例。 计算他们的推力和时间片,提供给FGPropagate。 解析的是飞机配置文件的<ground_reactions>部分。
<ground_reactions> <contact> ... {see FGLGear for specifics of this format} </contact> ... {more contacts} </ground_reactions>
FGMassBalance
管理模型重量,平衡和转动惯量信息。 保持点质量的向量。 总结所有的信息,提供给FGPropagate。 加载的是飞机配置文件的<mass_balance>部分
<mass_balance> <ixx unit="{SLUG*FT2 | KG*M2}"> {number} </ixx> <iyy unit="{SLUG*FT2 | KG*M2}"> {number} </iyy> <izz unit="{SLUG*FT2 | KG*M2}"> {number} </izz> <ixy unit="{SLUG*FT2 | KG*M2}"> {number} </ixy> <ixz unit="{SLUG*FT2 | KG*M2}"> {number} </ixz> <iyz unit="{SLUG*FT2 | KG*M2}"> {number} </iyz> <emptywt unit="{LBS | KG"> {number} </emptywt> <location name="CG" unit="{IN | M}"> <x> {number} </x> <y> {number} </y> <z> {number} </z> </location> <pointmass name="{string}"> <weight unit="{LBS | KG}"> {number} </weight> <location name="POINTMASS" unit="{IN | M}"> <x> {number} </x> <y> {number} </y> <z> {number} </z> </location> </pointmass> ... other point masses ... </mass_balance>
external_reactions
单方向力管理器,FGExternalForce基于FGForce派生
此类封装在车辆上指定位置应用的单个力,并按照三个框架之一中的指定方向定向:
- BODY框架定义为基于飞机本身的
X轴正向前,Y轴正向右翼,Z轴正向下腹部。
- LOCAL框架定义基于世界的
X为正北,Y为正东和Z正下地球中心的右手坐标系
- WIND 框架(旋转)在风矢量中具有X负(换句话说,拖动沿着正X轴),Z轴垂直于X并且正向上(升力)但是在飞机XZ平面中,Y完成了 右手系统。 这是从正常的风框架定义修改的,该定义从该WIND框架绕Y轴旋转180度。(搞不懂)
<force name="name" frame="BODY | LOCAL | WIND"> [<function> ... </function>] <location unit="{IN | M}"> <x> {number} </x> <y> {number} </y> <z> {number} </z> </location> [<direction> <!-- optional initial direction vector --> <x> {number} </x> <y> {number} </y> <z> {number} </z> </direction>] </force>
Propulsion
推进管理器 FGPropulsion
推进级是整个推进系统的容器,其由发动机engine和容器罐tank组成
<propulsion> <engine file="{string}"> ... see FGEngine, FGThruster, and class for engine type ... </engine> ... more engines ... <tank type="{FUEL | OXIDIZER}"> ... see FGTank ... </tank> ... more tanks ... <dump-rate unit="{LBS/MIN | KG/MIN}"> {number} </dump-rate> </propulsion>
flight_control
飞行控制管理器 FGFCS
“系统system”和“自动驾驶autopilot”也在本管理器中
aerodynamics
system
output
可以输出的参数
simulation
atmosphere
massprops
aerosurfaces
rates
velocities
forces
moments
position
coefficients
ground_reactions
fcs
propulsion
Output文件自带了几种输出类型:
CSV 保存到文件,数据用逗号分隔
SOCKET 通过网络SOCKET输出,JSB没完成,我自己改成UDP发送
FLIGHTGEAR 专门给FLIGHTGEAR软件定制的二进制SOCKET流发送,可以参考
TABULAR 想要进行柱状数据输出,JSB没完成
TERMINAL 输出到终端,JSB没完成