[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Paparazzi-devel] Maximum wind speed for paparazzi multicopter

From: Loic Drumettaz
Subject: Re: [Paparazzi-devel] Maximum wind speed for paparazzi multicopter
Date: Wed, 21 Aug 2013 12:35:15 +0200

Hi Heinrich,

You can find specifications about DJI F450 quadrotor frame at the end of user manual:

It's a nice airframe to start with. I use 8 x 4.5 propellers with 3S battery.

Here are the settings for the control loops:
<!-- config F450 with 8"4.5 propellers-->
<!-- command laws/ stabilisation parameters / gain-->
    <define name="SP_MAX_P" value="9600"/>
    <define name="SP_MAX_Q" value="9600"/>
    <define name="SP_MAX_R" value="9600"/>
    <define name="GAIN_P" value="400"/>
    <define name="GAIN_Q" value="400"/>  <!-- NOT TESTED -->
    <define name="GAIN_R" value="350"/>

   <!-- setpoints -->
    <define name="SP_MAX_PHI"     value="40." unit="deg"/>
    <define name="SP_MAX_THETA"   value="40." unit="deg"/>
    <define name="SP_MAX_R"       value="90." unit="deg/s"/>
    <define name="DEADBAND_R"     value="250"/>
   <!-- reference -->
    <define name="REF_OMEGA_P"  value="720" unit="deg/s"/> <!--divide by 360 to obtain bandwidth in Hz (2Hz) -->
    <define name="REF_ZETA_P"   value="0.9"/> <!--1.2 -->
    <define name="REF_MAX_P"    value="90." unit="deg/s"/> <!-- maximum angular rate reference -->
    <define name="REF_MAX_PDOT" value="RadOfDeg(8000.)"/>   <!-- maximum angular acceleration reference -->

    <define name="REF_OMEGA_Q"  value="720" unit="deg/s"/>
    <define name="REF_ZETA_Q"   value="0.9"/> <!--1.2-->
    <define name="REF_MAX_Q"    value="90." unit="deg/s"/> 
    <define name="REF_MAX_QDOT" value="RadOfDeg(8000.)"/>

    <define name="REF_OMEGA_R"  value="360" unit="deg/s"/><!--was720-->
    <define name="REF_ZETA_R"   value="0.9"/>  <!--1.2-->
    <define name="REF_MAX_R"    value="90." unit="deg/s"/>
    <define name="REF_MAX_RDOT" value="RadOfDeg(1800.)"/> 
<!-- feedback -->
    <define name="PHI_PGAIN"  value="1000"/>  <!--1000-->
    <define name="PHI_DGAIN"  value="450"/>  <!--500-->
    <define name="PHI_IGAIN"  value="50"/>   <!--400-->

    <define name="THETA_PGAIN"  value="1000"/> <!--1000-->
    <define name="THETA_DGAIN"  value="450"/>  <!--500-->
    <define name="THETA_IGAIN"  value="50"/>  <!--400-->

    <define name="PSI_PGAIN"  value="2000"/>
    <define name="PSI_DGAIN"  value="1000"/>
    <define name="PSI_IGAIN"  value="300"/>

 <!-- feedforward -->
    <define name="PHI_DDGAIN"   value="0"/>
    <define name="THETA_DDGAIN" value="0"/>
    <define name="PSI_DDGAIN"   value="100"/> 


  <section name="GUIDANCE_H" prefix="GUIDANCE_H_">
   <define name="USE_REF" value="1"/>                   <!-- Use Reference Generator -->
   <define name="REF_MAX_SPEED" value="4"/>             <!--reference generator max speed -->
   <define name="REF_MAX_ACCEL" value="1.0"/>           <!--reference generator max acceleration-->
   <define name="REF_OMEGA"  value="RadOfDeg(18.)"/>    <!-- reference generator bandwidth, divide by 360 to obtain bandwidth in Hz  (0.05Hz) -->
   <define name="REF_ZETA"  value="0.9"/>               <!-- reference generator damping-->
   <define name="MAX_BANK" value="35" unit="deg"/>      <!--max bank setpoint-->
   <define name="PGAIN" value="80"/> <!--90/65/90/30 -->
   <define name="DGAIN" value="120"/> <!--90/120/70 -->
   <define name="IGAIN" value="20"/><!--10/20-->

<section name="GUIDANCE_V" prefix="GUIDANCE_V_">
   <define name="REF_OMEGA" value="RadOfDeg(36.)"/>  <!--reference generator bandwidth, (0.1Hz)-->
   <define name="REF_TAU" value="1"/>  <!--(0.25) constante de temps générateur de consignes Vz-->
   <define name="MIN_ERR_Z"   value="POS_BFP_OF_REAL(-3.)"/>   <!-- (was -10) altitude error saturation-->
   <define name="MAX_ERR_Z"   value="POS_BFP_OF_REAL( 3.)"/>   <!-- (was 10) altitude error saturation-->
   <define name="MIN_ERR_ZD"  value="SPEED_BFP_OF_REAL(-3.)"/> <!-- (was -10) vz error saturation-->
   <define name="MAX_ERR_ZD"  value="SPEED_BFP_OF_REAL( 3.)"/> <!-- (was 10) vz  error saturation-->
   <define name="MAX_SUM_ERR" value="2000000"/>
   <define name="REF_MIN_ZDD"  value="-1"/>  <!-- (was -3) reference generator min acceleration--->
   <define name="REF_MAX_ZDD"  value=" 1"/> <!--  (was 3) reference generator max acceleration--->
   <define name="REF_MIN_ZD"   value="-3"/> <!--(was -1.5)reference generator min speed--->
   <define name="REF_MAX_ZD"   value=" 3"/> <!-- (was 1.5)reference generator max speed--->
   <define name="HOVER_KP"    value="120"/> <!--100-->
   <define name="HOVER_KD"    value="80"/> <!--70-->
   <define name="HOVER_KI"    value="10"/>
   <!-- 1.5m/s for full stick : BOOZ_SPEED_I_OF_F(1.5) / (MAX_PPRZ/2) -->
   <define name="RC_CLIMB_COEF" value ="163"/>
   <!-- BOOZ_SPEED_I_OF_F(1.5) * 20% -->
   <define name="RC_CLIMB_DEAD_BAND" value ="160000"/>
   <define name="ADAPT_INITIAL_HOVER_THROTTLE" value ="0.5"/>

Some comments:
The most important parameter to fly in wind is MAX_BANK, together with appropriate horizontal guidance PID settings.
The reference generator filter the horizontal setpoint with slow dynamics. This also help the guidance PID to handle perturbations such as wind variations.


2013/8/20 Prof. Dr.-Ing. Heinrich Warmers <address@hidden>
Dear Loic,

can i get yours settings?
Waht is the f450 airfraime  (propellers, motors, mass)?

Loic Drumettaz schrieb:


It depends on your airframe and settings. I fly my F450 airframe in winds up to 8 m/s.


Le 20 août 2013 08:01, "Prof. Dr.-Ing. Heinrich Warmers" <address@hidden> a écrit :
what is the maximum wind speed for  a paparazzi multicopter  in automatic mode?
I had a malfunction for a speed over 6m/s.
I read that the multicopter from Oliver Meister (his multicopter was the best on the IMAV2010?)
was able to hold to position at a speed of 5m/s in a 2,5m window.


Paparazzi-devel mailing list

_______________________________________________ Paparazzi-devel mailing list address@hidden

Paparazzi-devel mailing list

reply via email to

[Prev in Thread] Current Thread [Next in Thread]