Howto:Implement wing flex: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
Line 60: Line 60:
   <x-m>  0.00</x-m>
   <x-m>  0.00</x-m>
   <y-m>-12.25</y-m>
   <y-m>-12.25</y-m>
   <z-m> -1.25</m>
   <z-m> -1.25</z-m>
   </center>
   </center>
   <axis>
   <axis>
Line 70: Line 70:
</pre>
</pre>


You probably need to add a lot more objects to each section (like engines, flaps, ailerons etc.).
You probably need to add a lot more objects to each section (like engines, flaps, ailerons etc.) and also change the ''center'' coordinates according to your aircraft. For the right wing, just change the sign of the center <y-m> coordinate and the factor value.


===JSBSim===
===JSBSim===

Revision as of 11:31, 12 May 2010

Wing flex as seen on the Boeing 747-400.

Wing flex is the flexing of wings on aircraft, due to lift and fuselage load. FlightGear is able to show realistic wing flex. Currently the Boeing 787 and 747-400 are equipped with flexing wings.

Model

A few edits have to be made to the aircrafts model. Each wing has to be cut into multiple sections. The more sections, the smoother the wing flex. Be carefull that you do not cut through flaps or engines. Naming our wing sections, from fuselage to wing tip: wing.1, wing.2 and wing.3.

Measure the coordinates of the start of each new wing section, you will need them to animate the wings.

Animation

The following lines have to be added to the aircrafts model .xml file. These lines are used with three wing sections, and a JSBSim FDM.

 <animation>
  <type>rotate</type>
  <object-name>LeftWing.1</object-name>
  <object-name>LeftWing.2</object-name>
  <object-name>LeftWing.3</object-name>
  <property>fdm/jsbsim/aero/coefficient/CLalpha</property>
  <factor>-0.0000045</factor>
  <offset-deg>0</offset-deg>   
  <center>
   <x-m> 0.00</x-m>
   <y-m>-4.00</y-m>
   <z-m>-1.70</z-m>
  </center>
  <axis>
   <x>1.0</x>
   <y>0.0</y>
   <z>0.0</z>
  </axis>
 </animation>
 
 <animation>
  <type>rotate</type>
  <object-name>LeftWing.2</object-name>
  <object-name>LeftWing.3</object-name>
  <property>fdm/jsbsim/aero/coefficient/CLalpha</property>
  <factor>-0.0000045</factor>
  <offset-deg>0</offset-deg>   
  <center>
   <x-m> 0.00</x-m>
   <y-m>-8.00</y-m>
   <z-m>-1.50</z-m>
  </center>
  <axis>
   <x>1.0</x>
   <y>0.0</y>
   <z>0.0</z>
  </axis>
 </animation>
 
 <animation>
  <type>rotate</type>
  <object-name>LeftWing.3</object-name>
  <property>fdm/jsbsim/aero/coefficient/CLalpha</property>
  <factor>-0.0000045</factor>
  <offset-deg>0</offset-deg>
  <center>
   <x-m>  0.00</x-m>
   <y-m>-12.25</y-m>
   <z-m> -1.25</z-m>
  </center>
  <axis>
   <x>1.0</x>
   <y>0.0</y>
   <z>0.0</z>
  </axis>
 </animation>

You probably need to add a lot more objects to each section (like engines, flaps, ailerons etc.) and also change the center coordinates according to your aircraft. For the right wing, just change the sign of the center <y-m> coordinate and the factor value.

JSBSim

JSBSim calculates the lift force of the aircraft. The lift reacts on the G-forces, the velocity and turbulences. The respective property is: fdm/jsbsim/aero/coefficient/CLalpha

YASim

YASim does not calculate wingflex as nice as JSBSim, but a pretty realistic effect can be reached by using the accelerations/pilot-g[0] property instead.