mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-11-29 07:24:13 +01:00
OP-1022 Adding a proportional term on the square of the altitude error.
This commit is contained in:
parent
5b4d46819e
commit
0203e2c6e2
@ -250,6 +250,7 @@ static void altitudeHoldTask(__attribute__((unused)) void *parameters)
|
||||
if (!enterFailSafe) {
|
||||
if(fabsf(altitudeHoldDesired.Velocity) < 1e-3f) {
|
||||
stabilizationDesired.Throttle = error * altitudeHoldSettings.Kp
|
||||
+ error * fabsf(error) * altitudeHoldSettings.Kp2
|
||||
+ throttleIntegral
|
||||
- altHold.Velocity * altitudeHoldSettings.Kd
|
||||
- altHold.Accel * altitudeHoldSettings.Ka;
|
||||
|
@ -813,7 +813,7 @@ static void updateLandDesired(__attribute__((unused)) ManualControlCommandData *
|
||||
*/
|
||||
static void altitudeHoldDesired(ManualControlCommandData *cmd, bool changed)
|
||||
{
|
||||
const float DEADBAND = 0.25f;
|
||||
const float DEADBAND = 0.20f;
|
||||
const float DEADBAND_HIGH = 1.0f / 2 + DEADBAND / 2;
|
||||
const float DEADBAND_LOW = 1.0f / 2 - DEADBAND / 2;
|
||||
|
||||
|
@ -1,15 +1,16 @@
|
||||
<xml>
|
||||
<object name="AltitudeHoldSettings" singleinstance="true" settings="true" category="Control">
|
||||
<description>Settings for the @ref AltitudeHold module</description>
|
||||
<field name="Kp" units="throttle/m" type="float" elements="1" defaultvalue="0.03"/>
|
||||
<field name="Kv" units="throttle/(m/s)" type="float" elements="1" defaultvalue="0.01"/>
|
||||
<field name="Ki" units="throttle/m" type="float" elements="1" defaultvalue="0"/>
|
||||
<field name="Kd" units="throttle/m" type="float" elements="1" defaultvalue="0.03"/>
|
||||
<field name="Ka" units="throttle/(m/s^2)" type="float" elements="1" defaultvalue="0.005"/>
|
||||
<field name="VelocityTau" units="" type="float" elements="1" defaultvalue="0.05"/>
|
||||
<field name="AccelTau" units="" type="float" elements="1" defaultvalue="0.05"/>
|
||||
<field name="ThrottleExp" units="" type="uint8" elements="1" defaultvalue="128"/>
|
||||
<field name="ThrottleRate" units="m/s" type="uint8" elements="1" defaultvalue="5"/>
|
||||
<field name="Kp" units="throttle/m" type="float" elements="1" defaultvalue="0"/>
|
||||
<field name="Kp2" units="throttle/m^2" type="float" elements="1" defaultvalue="0.03"/>
|
||||
<field name="Kv" units="throttle/(m/s)" type="float" elements="1" defaultvalue="0.01"/>
|
||||
<field name="Ki" units="throttle/m" type="float" elements="1" defaultvalue="0"/>
|
||||
<field name="Kd" units="throttle/m" type="float" elements="1" defaultvalue="0.03"/>
|
||||
<field name="Ka" units="throttle/(m/s^2)" type="float" elements="1" defaultvalue="0.005"/>
|
||||
<field name="VelocityTau" units="" type="float" elements="1" defaultvalue="0.05"/>
|
||||
<field name="AccelTau" units="" type="float" elements="1" defaultvalue="0.05"/>
|
||||
<field name="ThrottleExp" units="" type="uint8" elements="1" defaultvalue="128"/>
|
||||
<field name="ThrottleRate" units="m/s" type="uint8" elements="1" defaultvalue="5"/>
|
||||
<access gcs="readwrite" flight="readwrite"/>
|
||||
<telemetrygcs acked="true" updatemode="onchange" period="0"/>
|
||||
<telemetryflight acked="true" updatemode="onchange" period="0"/>
|
||||
|
Loading…
Reference in New Issue
Block a user