paparazzi-devel
[Top][All Lists]
Advanced

[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:
http://download.dji-innovations.com/downloads/flamewheel/en/F450_User_Manual_v2.1_en.pdf

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-->
<airframe>
<section name="STABILIZATION_RATE" prefix="STABILIZATION_RATE_">
 
    <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"/>
 
</section>
<section name="STABILIZATION_ATTITUDE" prefix="STABILIZATION_ATTITUDE_">

   <!-- 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>

  <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>

<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"/>
  </section>

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.

Regards
Loïc



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)?
Heinrich

Loic Drumettaz schrieb:

Hi,

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

Regards

Le 20 août 2013 08:01, "Prof. Dr.-Ing. Heinrich Warmers" <address@hidden> a écrit :
Hi,
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.

Heinrich


_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel

_______________________________________________ Paparazzi-devel mailing list address@hidden https://lists.nongnu.org/mailman/listinfo/paparazzi-devel

_______________________________________________
Paparazzi-devel mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/paparazzi-devel



reply via email to

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