Aero.dat
The aero.dat configuration file describes the aerodynamic properties of the flight model.
The Silent Wings aerodynamic model works with a "panel model" that describes the geometrical design of the aircraft that is to be simulated. By manually dividing an aircraft into segments, or "panels", the flight dynamics code can calculate the forces that act on the aircraft and let it fly.
The panel model works with two different panels: wingpanels and fuselage panels. The Wing panels are used to describe the wings and fins on the aircraft. Every wing panel needs an airfoil to do the aerodynamic definition, so these airfoils need to be defined as well.
The airfoils can be shared between panels of the same wing, and are therefor defined before the wing panels. You must define one airfoil for each wing (or fin), also when they all would use the same airfoil, because the airfoil is defined with 3-dimensional properties (aspect ratio of wing, etc).
You may, however, use several airfoils for a single wing, if desired.
Airfoils
An airfoil is defined like this:
airfoil { name = xxx profile = xx ... }
The variables to be defined are:
name = <string>
The name of the airfoil. This can be called whatever you like, and is the name to be used in the wing panels.
profile = <name>
There are two airfoil file formats available. The first and oldest format is a fileset of 3 files, defining lift (name.cl), drag (name.cd) and pitch moment (name.cm). (TODO: write docs)
The second file format defines the complete polar in a single file (name.polar). It can easily be generated from polars calculated with the free 2d airfoil program xfoil, using a simple perl script called xf2sw.
The airfoil polar fileset to use. These files are found in the airfoils directory. There are 3 files for one airfoil, defining lift (.cl), drag (.cd) and pitch moment (.cm), that all have the same name.
k = <float>
The "k" factor defines the induced drag finesse of the wing. A setting of 1.0 gives the optimum, planar wing with elliptical lift distribution. So any other planar wing will have a value higher than 1.0.
Wings with winglets may get values lower than 1.0. The best wings currently available (Antares) have a k factor of 0.95.
aspectratio = <float>
The aspect ratio of the wing that will use this airfoil.
meanchord = <float>
The mean chord of the wing that will use this airfoil
cl_adjust = <float>
This factor can be used to fine-tune the lift curve. The variable is multiplied with the lift from the lift polar. Leave this to 1.0 when you start up, and use it as a last resort when fine tuning your model.
cd_adjust = <float>
This factor can be used to fine-tune the drag curve. The variable is added to the drag polar. Use with caution.
Wing panel
A wingpanel is defined with "wingpanel" followed by brackets containing the wing panel variables, one variable per line.
wingpanel { name = xxx area = xxx ... }
A wing can be defined with one or several panels. For elevator and rudder surfaces, one panel is mostly sufficient. A main wing should have at least 4 panels in total (two left, two right).
When not defined, variables default to zero. That means, if certain things are not to be used on the wing panel (such as a spoiler), the variables do not have to be set.
Please see the example illustration of the Ventus aero model to get a picture of how the panels are defined.
Variable descriptions:
General data:
name = <text string>
Wing panel name
airfoil = <text string>
The airfoil to use. The name to use is the same as defined in one of the airfoil sections.
position = [ x.x y.y z.z ]
The panel position coordinate. See the illustration on how to define this point.
area = <float>
Wing panel area
meanchord = <float>
The mean chord of the wing panel (not the wing!)
alpha = <float>
The panel's angle of incident.
dihedral = <float>
The panel's dihedral angle.
sweep = <float>
The panel's sweep angle.
propwash = 0.0 to 1.0
If the panel is positioned behind a propeller, you can set this value higher than 0.0 to have a propwash effect on the panel. This will for example allow for rudder and elevator authority when standing still on the Antares model.
Control surface variables: (can be left out if the panel has non controls)
The control system of Silent Wings is quite flexible, and can handle more exotic designs like canards, v-tails and flying wings. You can add all the controllers to have an effect on every panel in different ways.
delta_max = <float>
The flap's maximum (positive) deflection angle, in degrees.
delta_min = <float>
The flap's minimum (negative) deflection angle, in degrees.
delta_neutral = <float>
The flap's position when the controls are centered
aileron_mix = -1.0 to 1.0
The amount of aileron control that is to be applied to the flap. For the left wing, normally 1.0 is used, for the right wing -1.0. For less effect use smaller numbers. For no aileron control set to 0.0 or leave it out.
aileron_delta = <float>
The maximum difference in deflection between the left and right aileron. For example, if with fully deflected ailerons the left one is at +10 and the right one at -10, this value should be set to 20.0.
aileron_diff = <float>
Aileron differential. This factor will define how much more the up-going (negative) aileron will go up compared with the down-going one (positive). The value 1.0 (default) means equal deflection in both directions. A setting of 2.0 means the up-going aileron will do twice as much deflection as the down-going aileron. This is common on sailplanes as it reduces the adverse yaw effect of the ailerons.
flap_pos = <float>
If the panel has flap control, set the most positive flap setting in degrees here.
flap_neg = <float>
If the panel has flap control, set the most negative flap position in degrees here.
elevator_mix = -1.0 to 1.0
The amount of elevator control that is to be applied to the flap.
rudder_mix = -1.0 to 1.0
The amount of rudder control that is to be applied to the flap.
throttle_mix = -1.0 to 1.0
The amount of throttle control that is to be applied to the flap (this is rather uncommon, so it will mostly be left out. It can be used to compensate or emulate some throttle effects)
Spoiler/airbrake variables: (can be left out if the panel has no airbrake or spoiler)
brake_on = 0 or 1
Set this variable to 1 to enable the spoiler/airbrake
brake_surface = <float>
The surface frontal surface of the fully extended brake.
brake_liftdest = <float>
The amount of lift coefficient reduction with a fully extended brake. This is normally around 1.0, but must be experimented with.
brake_cd = <float>
The drag coefficient of the fully extended brake.
brake_superp = 0 or 1
Setting this to 1 enables superpositional mode. With this a brake can be added upon a wing and will have an effect on the lift and drag from the other wing panels only when the brake controller is on. When set to zero the wing panel is just a normal wing panel, that also has an airbrake/spoiler attached. Which to use depends on how the panelling of the wing is chosen.
Fuselage panel
The fuselage panel is a model of an aircraft fuselage. Its largest effect is to add drag to the aero model.
It is defined as
fuselage { name = xxx position = xxx ... }
Variable description:
name = <string>
Panel name
position = [ x.x y.y z.z ]
The panel position. This is the position where the drag force is applied, and does influence flight mechanics of your model, especially in spins. Start out by positioning this near to your model's centre of gravity.
ref_area = <float>
Reference frontal area of the fuselage
ref_volume = <float>
Reference volume of the fuselage. In most cases, this can be set to 1.0.
cd_front = frontal_drag_filenamename (but without the .cd extension)
The frontal drag is defined in a name.cd file that is placed in the airfoils directory. Use this file to finetune your model's glide polar.
cd_side = <float>
Sidewards drag coefficient
cd_top = <float>
Top/bottom drag coefficient
k_y = 0.0 to 1.0 k_z = 0.0 to 1.0
These two factors set the magnitude of instability of the fuselage. Try something like 0.1 first. A larger value means more instability.
alpha_fuselage = <float>
The fuselage's angle of incidence. Normally 0.0.
cd_landinggear = <float>
The drag of an extended landing gear.