Contents
|
MultiWii Parameter Adjustment
I try to setup the parameters in order to allow First Person View with slow and stable movement.
The text Configurable parameters in the Link does not show the actual status (Software version 1.8.patch2). So I like to fill the gap, as good as possible.
The actual MultiWii version is 2.4 (2015-03-16).
Clear EEPROM
Before making an update to a new MultiWii program version, save your old parameter set to a file, and best, make a screen shot of the program MultiWiiConf.
Next clear the EEPROM with the Arduino sketch File/Examples/EEPROM/eeprom_clear. Just change temporary the EEPROM size from 512 to 4096 for the ATMega2560 MCU.
Then update the MultiWii program with your own configuration (file config.h), and start the program MultiWiiConf to restore your own parameter set.
Gyro PID Parameters
Version 2.4 flown with QuadrocopterFrameEPP.
The default parameters for the Gyro are the following, as found in the software:
Gyro Parameters in use |
|||||||||||
Originator |
Date |
ROLL P |
ROLL I |
ROLL D |
PITCH P |
PITCH I |
PITCH D |
YAW P |
YAW I |
YAW D |
Remark |
Ver.1.8.p2 |
2011-08 |
4.0 |
0.030 |
17.0 |
4.0 |
0.030 |
17.0 |
8.5 |
0.000 |
0.0 |
Default |
Ver.dev_20111029 |
2011-10 |
8.1 |
0.030 |
23.0 |
8.2 |
0.030 |
23.0 |
8.5 |
0.000 |
0.0 |
little wobble |
Ver.dev_20111029 |
2011-10 |
7.0 |
0.030 |
23.0 |
7.0 |
0.030 |
23.0 |
8.5 |
0.000 |
0.0 |
OK |
Ver.2.4 |
2015-03 |
3.3 |
0.030 |
23.0 |
3.3 |
0.030 |
23.0 |
6.8 |
0.045 |
0.0 |
OK |
Ver.2.4 |
2015-05-02 |
9.5 |
0.030 |
23.0 |
9.5 |
0.030 |
23.0 |
6.8 |
0.045 |
0.0 |
OK |
Alt: 8.0, 0.025, 24
Altitude Hold
About Altitude Hold very little is documented (see Link). I will try to improve that.
First I try to find proven parameter settings in the forum, see link:
Altitude Hold Parameters in use |
||||||||||
Originator |
Date |
ALT P |
ALT I |
ALT D |
Pos P |
Pos I |
MAG P |
LEVEL P |
LEVEL I |
LEVEL D |
Rudolf |
2011-11-02 |
20.0 |
0.030 |
10 |
? |
0.000 |
? |
9.0 |
0.045 |
? |
Ver.2.4 |
2015-03-16 |
6.4 |
0.025 |
24 |
0.15 |
0.000 |
4.0 |
9.0 |
0.010 |
100 |
Ver.2.4 |
2015-05-02 |
8.0 |
0.025 |
24 |
0.15 |
0.000 |
4.0 |
9.0 |
0.010 |
100 |
Info
"P" fights all motion... increase until you get a feedback wobble, reduce by ~20%
"I" is heading hold.... increase until you get a bounce back when you release a big stick input.
"D" the bigger(note this is a negative term, bigger in a negative sense) the better from what I can tell this tries to smooth out any rotation. The farther from zero you run "D" it appears you can further increase "P"
NOTE: Poorly balanced props will result in bad data coming from the sensors which will be amplified by your PID coefficients. Comes down to garbage in, garbage out... your sensors are your friends and your props are their enemies!
Berkley MultiWii additional HOWTO overview
In order to fine tune parameters, Alex suggest to increment/decrement the values with the following steps: P:0.2 ; I:0.005 ; D:1
joebarteam, PID tuning with video
If nothing helps getting the platform stable:
- Is the IMU (sensors) located in the center of gravity?
- Mounted on anti vibration isolation (gyro foam, rubber / silicone mounts)
- Experiment with different props, maybe a smaller prop diameter.
- Larger props = lower P, Smaller props = higher P.
- Vibrations: remove the props, speed up the motors and feel if any vibrations originate from the motors.
- Balance the props, motor bells and prop adapters.
Shikra, TriWiiCopter Configuration and Settings
RC Rate
The design of the MulitWiiCopter requires the Tx rates for the 2 main control channels to be at a high setting.
- This means that if you need to reduce control throws it is not possible easily on some tx.
- To address this, use RC rate to apply a global rate reduction to the Pitch / Roll controls.
- It works very well e.g. Starting point - Beginner/FPV =0.30-0.50, Advanced 1.00
RC expo
- This is a global expo setting for Pitch / Roll.
- Can use this if your Tx (transmitter) does not support expo
- 1.00 is no expo, e.g. Starting point - 0.70 (less sensitive around center)
Pitch/Roll Rate
- This setting affects the amount of PID stabilization as you move sticks away from center points.
- Needed for aerobatic fliers who need more maneuverability. Helps prevent oscillations / over-corrections in extreme maneuvers
- e.g. Starting point - 0 for gentle fliers / FPV. Around 0.5 for aerobatic fliers
Yaw Rate
- This setting affects the amount of PID stabilization as you move sticks away from center points.
- Needed for aerobatic fliers who need more maneuverability. Helps prevent oscillations / over-corrections in extreme maneuvers
- e.g. Starting point - 0 for gentle fliers / FPV. Around 0.5 for aerobatic fliers
Throttle Rate PID
- This setting affects the amount of PID stabilization as you increase throttle over 50%
- Less stabilization is needed at higher throttle rates. Helps prevent oscillations / over-corrections in high throttle situations
- e.g. Starting point - 0
PID settings Checklist
- Set PID to the designers default recommended settings
Hold the MultiRotor securely and safely in the air
- Increase throttle to the hover point where it starts to feel light
Try to lean the MultiRotor down onto each motor axis
- You should feel a reaction against your pressure for each axis.
- Change P until it is difficult to move against the reaction. Without stabilization you will feel it allow you to move over a period of time. That is OK
Now try rocking the MultiRotor. Increase P until it starts to oscillate and then reduce a touch.
- Repeat for Yaw Axis.
All gyros sensors suffer some output drift over time, most of which happens immediately after the power is switched on. Therefore to get the best heading hold performance, wait for about two minutes after connecting the MultiRotor lithium battery, before switching on the transmitter. This will allow the sensors to “warm up” before calibration. Note also that the gyros can be re-calibrated at any time. If the MultiRotor has a slow drift when in Stable mode, resetting will reduce it.
- It is not advisable to take off in Stable mode.
config.h Ver.2.4, board MultiWii_HK
If you update to a new program version, do a diff folder_new folder_old to see the differences.
See also at QuadrocopterFrameEPP for details.
- #define QUADX
- #define MINTHROTTLE 1250 // for Turnigy Plush 10A
- #define CRIUS_AIO_PRO
- #define YAW_COLL_PRECOMP 15
- #define OVERRIDE_PSENSORPIN A1 // instead of A2
- #define ALTITUDE_RESET_ON_ARM
- #define FAILSAFE
- #define GPS_SERIAL 2
- #define GPS_BAUD 38400
- #define UBLOX
- #define USE_MSP_WP // use way points
- #define MAG_DECLINATION 1.5666f // Wiesbaden 1 + 34/60 = 1,5666f
- #define SAFE_WP_DISTANCE 200 //(**) default 500
- #define MAX_NAV_ALTITUDE 50 //(**) default 100
- #define NAV_BANK_MAX 2000 //(**) default = 3000
- #define RTH_ALTITUDE 5 //(**) default 15 m
- #define FENCE_DISTANCE 120 // default 600 m
- #define VBAT
Adjustment factor for R1=33k || 100 nF and R2=51k at A0
- #define POWERMETER_HARD // Sensor module ACS715, 30 A
- #define PSENSORNULL 100 // for I=0 A, my sensor gives 100 * 4,87 mV = 0.488 V
- #define PINT2mA 37 // 1000 / 133 mv/A * 4.9 mV = 36.8
- #define VBAT_SMOOTH 64 // len of averaging vector for smoothing the VBAT readings; should be power of 2;
config.h Ver.2.3, Arduino Mega
See also at QuadrocopterMegaShield for details.
- #define MINTHROTTLE 1200 // for Super Simple ESCs 15A Prog.
- #define QUADX
- #define I2C_SPEED 400000L //400kHz fast mode, it works only with some WMP clones
- #define MEGA
- #define INTERNAL_I2C_PULLUPS
- #define TRUSTED_ACCZ
- I2C gyroscope
- #define ITG3200
- I2C accelerometer
- #define BMA020
- I2C barometer
- #define BMP085
- I2C magnetometer
- #define HMC5883
- Adjustment factor for R1=33k and R2=51k
- #define VBATSCALE 133
- #define POWERMETER 2
- #define PLEVELDIV 4891L // ACS715 30A, to convert the sum into mAh divide by this value
- #define PSENSORNULL 102 // for I=0A my sensor gives 102 * 4,9 mV = 0.5 V for ACS715
- #define PINT2mA 37 // for telemtry display: one integer step on arduino analog translates to mA, ACS715 1000 / 133 * 4.9
- Sparkfun board is special
- #define MAG_ORIENTATION(X, Y, Z) {magADC[ROLL] = -Y; magADC[PITCH] = X; magADC[YAW] = Z;}
Links
List of pages in this category:
-- RudolfReuter 2011-10-03 10:21:29
Go back to CategoryQuadrocopter or FrontPage ; KontaktEmail (ContactEmail)