Wind#

The wind component is attached to the world and its associated machine is therefore called world. It must be specified when accessing its parameters with sphinx-cli. For example, to set the speed mean to 5.0 m/s, enter the following:

$ sphinx-cli param -m world wind magnitude_mean 5.0

By default, the wind is described as a uniform worldwide model. So it does not depend on the drone position. Its components are computed separately:

  • Full magnitude in m/s

  • Horizontal direction in degrees

  • Angle in degrees formed by the horizontal plane and the wind direction projected onto the vertical plane

Each component is computed from an ExprTk expression, where val is the mean value.

For example, the following defines an horizontal sinusoidal wind with an orientation that turns 360° every 60 seconds. Note that, in this example, the mean direction and mean elevation are unused.

$ sphinx-cli param -m world wind magnitude_expr val*(1+0.05*sin(2*pi*time/15))
$ sphinx-cli param -m world wind direction_expr 360*time/60
$ sphinx-cli param -m world wind direction_expr "0.03*noise()"

Low-pass filtering#

To prevent the wind from changing too fast in a non-realistic way, mean values can optionally be lowpass filtered by setting their time_for_rise to a value greater than 1 ms. The equation of the filter is:

\[v(t) = (1 - 0.001 / time_for_rise) * v(t-1) + 0.001 / time_for_rise * target\]

Therefore when time_for_rise is set to 0.001 second (or lower), the filter is deactivated.

Advanced parameters#

The mean wind can optionally depends on:

  • The height \(z\) above the ground

  • The terrain roughness \(c_r\) defined by the terrain_category

By default, the height above the ground and terrain roughness are ignored. To activate their effects, the enable_terrain_effect parameter must be set to true.

Important

When the enable_terrain_effect parameter is set to true, the magnitude_mean parameter defines the mean wind velocity at 10 m above ground level.

When activated, the mean wind velocity at height \(z\) is determined using the expression found in section 4.3 of [EN1991-1-4]:

\[v_m(z) = c_r(z) * c_0(z) * v_b\]

where \(v_b\) is the characteristic mean wind velocity, at 10 m above ground level in open country terrain with low vegetation. The orography factor \(c_0\) accounts for the increase of mean wind speed over isolated hills and escarpments. In the simulator, for ease of use, the orography factor \(c_0\) is always set to 1, which means that the average slope of the terrain exposed to the wind is always considered to be less than 3°.

Available terrain_category values are:

Value

Description

0

Sea, or coastal area, exposed to sea winds; lakes and bodies of water travered by wind over a distance of at least 5 km.

1

Open countryside, with or without a few isolated obstacles (trees, buildings, etc.) separated from each other by more than 40 times their height.

2

Countryside with hedges; vineyards; bocage; scattered habitat.

3

Urbanized or industrial areas; dense bocage; orchards.

4

Urban areas, of which at least 15% of the surface is covered by buildings whose average height is greater than 15 m.

[EN1991-1-4]

European Committee for Standardization, EN 1991-1-4:2005+A1:2010 - Eurocode 1. Actions on structures. General actions. Wind actions, CEN, 2005/2010.

Internals#

In Gazebo, the wind component is instantiated by a world plugin. Its default parameter values are set in the .world file used to start Parrot Sphinx. When no .world file is provided in the command line, Parrot Sphinx starts with the .world file located in /opt/parrot-sphinx/usr/share/sphinx/sphinx/worlds/void.world. If you want to change these default values, you would have to create you own .world file and specify its path in Parrot Sphinx command line like so:

$ sphinx /path/to/my.drone /path/to/custom.world

All parameters#

Name

Description

Expected type

direction_expr

Direction expression where val is the lowpass filtered mean value.

string

direction_mean

Desired mean direction in degrees.

floating-point number

direction_time_for_rise

Lowpass filter time characteristics for the direction in seconds. A value of 0 second deactivates the filter.

floating-point number

elevation_expr

Elevation expression where val is the lowpass filtered mean value.

string

elevation_mean

Desired mean elevation in degrees.

floating-point number

elevation_time_for_rise

Lowpass filter time characteristics for the elevation in seconds. A value of 0 second deactivates the filter.

floating-point number

enable_terrain_effect

If true, the mean wind velocity depends on the height above the ground and on the terrain roughness.

boolean

magnitude_expr

Magnitude expression where val is the lowpass filtered mean value.

string

magnitude_mean

Desired mean magnitude in m/s.

floating-point number

magnitude_time_for_rise

Lowpass filter time characteristics for the magnitude in seconds. A value of 0 second deactivates the filter.

floating-point number

terrain_category

Terrain category (0-5). Defaults to 1.

integer