Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
nps_atmosphere.c
Go to the documentation of this file.
1/*
2 * Copyright (C) 2013 Felix Ruess <felix.ruess@gmail.com>
3 *
4 * This file is part of paparazzi.
5 *
6 * paparazzi is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2, or (at your option)
9 * any later version.
10 *
11 * paparazzi is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with paparazzi; see the file COPYING. If not, write to
18 * the Free Software Foundation, 59 Temple Place - Suite 330,
19 * Boston, MA 02111-1307, USA.
20 */
21
27#include "nps_atmosphere.h"
28#include "nps_fdm.h"
29#include "nps_ivy.h"
30
31#ifndef NPS_QNH
32#define NPS_QNH 101325.0
33#endif
34
35#ifndef NPS_WIND_SPEED
36#define NPS_WIND_SPEED 0.0
37#endif
38
39#ifndef NPS_WIND_DIR
40#define NPS_WIND_DIR 0
41#endif
42
43#ifndef NPS_TURBULENCE_SEVERITY
44#define NPS_TURBULENCE_SEVERITY 0
45#endif
46
47#ifndef NPS_WORLD_ENV_UPDATE
48#define NPS_WORLD_ENV_UPDATE 1.0
49#endif
50
52
62
64{
66 /* recalc wind in north and east */
69}
70
72{
73 /* normalize dir to 0-2Pi */
74 while (dir < 0.0) { dir += 2 * M_PI; }
75 while (dir >= 2 * M_PI) { dir -= 2 * M_PI; }
76
78 /* recalc wind in north and east */
81}
82
84{
88 /* recalc horizontal wind speed and dir */
90
91 double dir = atan2(-wind_east, -wind_north);
92 /* normalize dir to 0-2Pi */
93 while (dir < 0.0) { dir += 2 * M_PI; }
94 while (dir >= 2 * M_PI) { dir -= 2 * M_PI; }
96}
97
#define FLOAT_VECT3_ZERO(_v)
#define FLOAT_VECT2_NORM(_v)
uint16_t foo
Definition main_demo5.c:58
void nps_atmosphere_set_wind_ned(double wind_north, double wind_east, double wind_down)
void nps_atmosphere_init(void)
void nps_atmosphere_update(double dt)
struct NpsAtmosphere nps_atmosphere
#define NPS_WIND_DIR
#define NPS_QNH
#define NPS_WIND_SPEED
#define NPS_WORLD_ENV_UPDATE
#define NPS_TURBULENCE_SEVERITY
void nps_atmosphere_set_wind_speed(double speed)
void nps_atmosphere_set_wind_dir(double dir)
Atmosphere model (pressure, wind) for NPS.
double qnh
barometric pressure at sea level in Pascal
double wind_dir
horitzontal wind direction in radians north=0, increasing CCW
int turbulence_severity
turbulence severity from 0-7
struct DoubleVect3 wind
wind speed in NED in m/s
double last_world_env_req
last world env request time
double wind_speed
horizontal wind magnitude in m/s
void nps_fdm_set_wind_ned(double wind_north, double wind_east, double wind_down)
void nps_fdm_set_turbulence(double wind_speed, int turbulence_severity)
bool nps_ivy_send_world_env
Definition nps_ivy.c:29
static const float dir[]