其中一个为两段式或者三段式开关通道,需要有通道中立点和行程调整功能。 从未使用过的MWC,需按照以下步骤设置和安装好,才能开始飞行时的调试: 1. 烧写Bootloader 到飞控上的单片机,让飞控可以自由导入程序; 2. 用Arduino编辑MWC程序,然后用FTDI工具把程序上传到飞控; 3. 安装到机架上,接好所有相关的连接线;
4. 飞行前用MWC GUI配置程序,对飞控进行基本设置;
5. 外场飞行时用电脑、蓝牙模块或者LCD模块来调整PID及其他参数。 接下来将按照以上步骤开始配置您的飞控。
1. 烧写Bootloader,我们已经在测试时烧好飞控的Bootloader,否则拿到手也启动不了,更
没办法刷程序,所以您不必再理会这个。如果您的Bootloader出现问题,导致无法启动飞控,请与我们联系。
2. 请先准备好以下驱动和程序:
以下驱动和程序都可以用于苹果MacOS、Linux与Windows操作系统,我们以Windows 7/32bit为例进行说明。
FTDI工具驱动,FTDI是一种USB转TTL电平的信号转换工具,我们用它来上传需要的程序到飞控,调试时也会用到。驱动下载后需要手动安装,安装好以后,电脑会出现一个COM口:
例如本机上分配到的是COM3,在不同电脑上分配到的端口可能会不一样,但不影响使用。请务必完成此安装步骤,否则无法上传程序到飞控。 下载地址:
http://www.ftdichip.com/Drivers/CDM/CDM20814_WHQL_Certified.zip
MWC程序源代码。MWC程序升级较为频繁,每次更新都会出现实用的新功能,或者某方面性能得到提高,方便我们随时享用最好的效果。下载过来的MWC程序包,包括源代码和GUI配置程序两部分,请解压文件。 下载地址:
http://code.google.com/p/multiwii/downloads/list
Arduino集成开发环境。我们使用Arduino这个工具来编辑MWC源代码,进行简单配置后,点击上传,程序就会通过FTDI传输到飞控中。如有需要调整程序的基础功能(例如切换飞行模式),也将通过它来进行。下载后请解压文件,程序无需安装。 下载地址:
http://arduino.googlecode.com/files/arduino-0023.zip
JAVA虚拟机。也许您的电脑已经安装过,不过为了更好地运行Arduino与GUI程序,请升级到最新版。 下载地址:
http://java.com/zh_CN/download/manual.jsp?locale=zh_CN
另外推荐收藏两个网址,分别是MWC官网与RCGroups论坛的MWC主帖,会有最新升级信息以及玩家讨论。 http://www.multiwii.com/
http://www.rcgroups.com/forums/showthread.php?t=1340771
如果您购买飞控时已经指定好飞行模式,我们会对程序做好初步的修改,尽量让您可以直接使用,飞行时调整参数即可(除了Y3),如果发现工作不正常,再来修改程序即可。 本文将以4轴×模式为例,讲解如何配置飞控程序,其他模式于此相同,只有Y3需要单独配置舵机。 准备好以上程序后,我们先打开MWC源代码,首先启动Arduino程序,看到如下窗口:
点击菜单中的“File”-“Open”
选择好您准备好的MWC主程序工程文件:
这里MWC的程序版本为1.9,请选择打开MultiWii_1.0.pde文件,打开后即可看到该工程文件包含多个源代码文本,会在新窗口中显示,之前空白的窗口可以关闭。我们一般只需修改config.h中的一些程序语句即可,请用鼠标切换至config.h标签,看起来如下图所示。
修改程序语句的方法:
每行语句左边带有“/*”或者“//”的时候,显示为灰色,表示该句为注释,是无效的程序语句。如果需要它生效,只需去掉“//”,它会以黑色显示出来,表示该语句有效。 首先要清楚飞行模式也是从程序中去指定,但考虑到MWC硬件环境以及电调搭配的不同,有些其他关键语句是需要修改的,如果配置有误,会造成程序无法上传或者飞控工作不正常。我们不会对所有语句进行说明,仅仅修改必要的部分。请注意,不要轻易改动太多没有把握的语句,否则可能会出现问题而找不出原因在哪里。
我们从上往下看,第一个关键的地方是电调的怠速设置:
/* Set the minimum throttle command sent to the ESC (Electronic Speed Controller) This is the minimum value that allow motors to run at a idle speed */ //#define MINTHROTTLE 1300 // for Turnigy Plush ESCs 10A //#define MINTHROTTLE 1120 // for Super Simple ESCs 10A //#define MINTHROTTLE 1220 #define MINTHROTTLE 1100
标准电调通过1000~2000us范围内的信号进行控制,如果您需要飞控解锁后电机就开始慢速旋转,请设定一个合适的怠速信号值(默认是1100,大多数电调会开始输出电流)请注意此值不合适太小,否则会影响飞行器回中的效果,如果您喜欢解锁后电机停转,请启用“MOTOR_STOP“代码(请参见下文)。上传程序后如果发现不符合需求,可以再次修改后上传。
接下来是飞行模式的选择: /* The type of multicopter */ //#define GIMBAL //#define BI //#define TRI //#define QUADP #define QUADX //#define Y4 //#define Y6 //#define HEX6 //#define HEX6X //#define OCTOX8 //#define OCTOFLATP
//#define OCTOFLATX
//#define FLYING_WING //experimental
这里默认就是X模式,您可以根据需要修改成其他模式,需要注意的是,SE标准版和Lite轻量版MWC并不支持8轴的三个模式(OCTO),所以这三行无效。 关于I2C信号频率的选择:
//#define I2C_SPEED 100000L //100kHz normal mode, this value must be used for a genuine WMP
#define I2C_SPEED 400000L //400kHz fast mode, it works only with some WMP clones
克瑞斯MWC均良好支持400Khz高速模式,请启用400000L这一行,注释掉第一行。 启用三轴加速度的Z轴控制:
/* This option should be uncommented if ACC Z is accurate enough when motors are running*/
//#define TRUSTED_ACCZ
开启此项有助于提高飞行器的高度稳定性,此项目请自行测试效果,目前不推荐打开。 启用A0与A1端口输出:
/* PIN A0 and A1 instead of PIN D5 & D6 for 6 motors config and promini config This mod allow the use of a standard receiver on a pro mini (no need to use a PPM sum receiver) */
#define A0_A1_PIN_HEX
这两个端口原本用于连接云台稳定用的舵机,如果您没有PPM SUM类型接收机又想让SE与Lite飞控支持6轴,请启用它,这样会让云台增稳功能失效。另外一种情况是,您想使用6轴模式,同时又想启用云台增稳功能,那必须使用PPM SUM接收机/JR卫星/S.Bus.接收机,或者换用PRO版全功能飞控。 启用D8或者D12端口:
/* possibility to use PIN8 or PIN12 as the AUX2 RC input
it deactivates in this case the POWER PIN (pin 12) or the BUZZER PIN (pin 8) */
#define RCAUXPIN8 //#define RCAUXPIN12
SE与Lite飞控带有MODE(AUX1)端口,通过三段开关的信号可以控制传感器状态的开和关,如果您觉得还需要AUX2进行更详细的状态控制,包括云台增稳开关或者作为解锁开关来用,可以启用D8或者D12作为AUX2的信号输入端口。请注意只能启用其中之一。
信号死区宽度:
/* introduce a deadband around the stick center
Must be greater than zero, comment if you dont want a deadband on roll, pitch and yaw */ #define DEADBAND 6
通常接收机出来的信号脉宽会有1~3us的误差(这是我们用信号测试仪检测的结果),设置一个合理的死区宽度,可以让飞控忽略这种轻微的误差,避免误差的信号直接去控制飞控动作。设置得过大的话,会让摇杆附近范围内的微小动作被飞控忽略到,反而降低飞控灵敏度,默认值为6。
下面是非常关键的传感器类型选项: /* if you use a specific sensor board: please submit any correction to this list. Note from Alex: I only own some boards
for other boards, I'm not sure, the info was gathered via rc forums, be cautious */
//#define FFIMUv1 // first 9DOF+baro board from Jussi, with HMC5843 <- confirmed by Alex //#define FFIMUv2 // second version of 9DOF+baro board from Jussi, with HMC5883 <- confirmed by Alex
//#define FREEIMUv1 // v0.1 & v0.2 & v0.3 version of 9DOF board from Fabio //#define FREEIMUv03 // FreeIMU v0.3 and v0.3.1 //#define FREEIMUv035 // FreeIMU v0.3.5 no baro
//#define FREEIMUv035_MS // FreeIMU v0.3.5_MS <- confirmed by Alex #define FREEIMUv035_BMP // FreeIMU v0.3.5_BMP //#define PIPO // 9DOF board from erazz
//#define QUADRINO // full FC board 9DOF+baro board from witespy with BMP085 baro <- confirmed by Alex
//#define QUADRINO_ZOOM // full FC board 9DOF+baro board from witespy second edition <- confirmed by Alex
//#define ALLINONE // full FC board or standalone 9DOF+baro board from CSG_EU //#define AEROQUADSHIELDv2
//#define ATAVRSBIN1 // Atmel 9DOF (Contribution by EOSBandi). requires 3.3V power. //#define SIRIUS // Sirius Navigator IMU <- confirmed by Alex
//#define SIRIUS600 // Sirius Navigator IMU using the WMP for the gyro //#define MINIWII // Jussi's MiniWii Flight Controller //#define CITRUSv1_0 // CITRUSv1 from qcrc.ca //#define DROTEK_IMU10DOF
如果是SE版飞控,请直接启用define FREEIMUv035_BMP 如果是Lite版飞控,请启用如下两个地方的语句: //if you use independent sensors
//leave it commented it you already checked a specific board above /* I2C gyroscope */ #define ITG3200 //#define L3G4200D /* I2C accelerometer */ #define ADXL345 //#define BMA020 //#define BMA180
//#define NUNCHACK // if you want to use the nunckuk as a standalone I2C ACC without WMP
//#define LIS3LV02
//#define LSM303DLx_ACC
请务必仔细确认不同版本飞控的传感器选项,否则飞控将不能正常工作。 下列语句是关于解锁后,油门保持最低时油门停转
/* motors will not spin when the throttle command is in low position this is an alternative method to stop immediately the motors */ #define MOTOR_STOP
如果不启用此项,解锁后电机会开始转起来,请根据需要来调整。 修改到这里就可以上传程序到飞控进行试飞了,上传之前还有两件事情需要准备好,一个是FTDI端口和飞控类型的选择,另外一个是您的电脑、FTDI和飞控之间连接要准备好。SE与Lite都是328P单片机,所以需要在Arduino的菜单“Tools”-“Board”中选择对应的选项5V,16Mhz ATmega328:
FTDI工具在本机分配到的端口为COM3(每台电脑可能会不同),所以在“Tools”“-Serial Port”中需要选择“COM3”,如果没找到这个COM口,请检查与电脑的连接是否正常,还有驱动是否已经安装好,可以到“设备管理器”里面检查。
这两个地方设置完以后,需要确认飞控与FTDI工具是否连接好(见上图),飞控在使用FTDI的时候无需单独供电,只需与FTDI直接对接即可,接上后飞控就会开始启动,LED会亮并且闪动。这样上传程序前的硬件连接工作就已经完成了。 修改好的程序可以点按保存按钮进行保存,方便日后直接调用。
上传好修改的程序,请点此按钮
然后会看到Arduino底部出现相应的状态信息
顺利上传后,会显示Done uploading.
现在飞控已经可以正常工作,可以断开FTDI与飞控之间的连接。 3. 请安装好您的机架及其他设备,飞控安装时请注意以下几个问题:
注意飞控上的箭头方向,它指向机架的头部位置,这点与其他飞控可能会不一样,也许会影响您的隔离柱安装位置;
如有条件,请尽量使用减震方式安装飞控,譬如减震橡胶或者直接用泡棉双面胶固定在机架上,如果您确定不使用螺丝固定,请确保粘贴飞控时的角度准确,否则可能会严重影响飞行效果。
飞控与接收机之间的连接:
使用附带的杜邦连接线分别连接您的接收机与飞控,需要注意的是所有通道的信号级位置都是最靠飞控最内侧,标注有“S”的那一排插针。 飞控通道 接收机通道 THR - 油门 ROLL - 副翼 PITCH - 升降舵 YAW - 方向舵
MODE - 任意三段式开关通道,作为AUX1信号输入
D8/D12 - 依程序选项而定,作为AUX2信号输入,也是任意三段式开关通道
飞控与电调之间的连接:
接上电调前,应该单独把每个电调接到接收机的油门通道上做一次油门校准,然后才接上飞控。我们不建议直接把每个电调的插头全部接到飞控上(虽然这样看起来似乎没问题),并联了多组电调电源,可能会造成电调故障,如果供电出现问题,会导致危险!解决办法之一是让某个电调的3线插头直接连接到飞控上(这组负责供电给飞控与接收机),其余每个电调都只连接信号级(S),通常这条线为白色,这样可以避免电调供电并联。 补图:接收机、电调与飞控的连接
电调连接顺序以及电机旋转方向非常重要。为了安全,连接好以后先不要装上螺旋桨。 电机上的数字表示连接到飞控上对应的输出端口号,例如“11”表示连接到飞控上的“D11”端口。请根据需要的模按照接线指示图来接好所有电机、电调和舵机,接好后再次接上FTDI工具与电脑,让飞控启动,然后进行下面的设置。 Lite与SE,3轴 Tricopter 在config.h中以“TRI”表示。
其中3是舵机,用这个模式还需要在config.h中调整舵机相关的选项。 Lite与SE,4轴×模式/QuadcopterX 在config.h中以“QUADX”表示。
Lite与SE,4轴+模式/Quadcopter+ 在config.h中以“QUADP”表示。
Lite与SE,4轴Y4模式 在config.h中以“Y4”表示。
Lite与SE,6轴Y6模式 在config.h中以“Y6”表示。
Lite与SE,6轴HEX6+模式 在config.h中以“HEX6”表示。
Lite与SE,6轴HEX6 X模式 在config.h中以“HEX6X”表示。
以上3种6轴模式,电机5和6,如果开启A0与A1,则由A0取代5,A1取代6,否则您要使用PPM SUM接收机/JR卫星/S.Bus信号输入才能使用6轴,当然不用PPM输入又要使用6轴,就不能用云台增稳功能,除非使用PRO专业版飞控。 Lite与SE,2轴阿凡达模式 BICOPTER 在config.h中以“BI”表示。
Lite与SE,不作为飞控的云台稳定模式 在config.h中以“GIMBAL”表示。
4. 飞行前,需要用GUI程序观察和调整必要的选项,主要包括以下几个方面:
设置通道正反向,校准通道中立点和通道行程; 设置传感器开关(AUX1/AUX2);
检查传感器输出信号是否正确(如果不正常则代表飞控有故障); 测试启动电机后,飞控动作是否正常。
调试过程中可以不需要连接电池,只需接上FTDI。飞控启动时,请保持机架在尽可能水平的位置,蓝色LED灯会在一阵快速闪动之后熄灭,表示已经初始化完成。请打开GUI程序,选好端口号(本例为COM3)。然后点按START进行数据读取,这时马上会看到
所有传感器的输出状态,点按READ可读取到飞控参数,如下图:
请先看遥控器信号监控,垂直的两条分别是油门与升降舵通道,水平的是副翼、升降舵与AUX1通道:
设置通道正反向:
油门/升降舵摇杆往上下方向推,图中对应的滑块也应该往对应方向滑动,如果不正确,则需要把对应的通道反向;
副翼/发射电摇杆往左右方向推,图中对应的滑块也应该往对应方向滑动,如果不正确,则需要把对应的通道反向; 校准通道中立点:
油门通道无需校准,观察升降舵/副翼/方向舵摇杆在中间位置时,对应的滑块是否显示为1500左右(允许±3误差),如果正确,请修改对应通道的中立点,让这三个通道摇杆在中立点时,对应的数值也在1500左右。请注意,如果中立点信号位置不准确,会导致飞行误动作。
校准通道行程:
油门通道无需校准,观察升降舵/副翼/方向舵通道摇杆在推到最大/最小位置时,对应的滑块是否显示为最大1900/最小1100左右,如果有偏差,请修改对应通道的行程,让其最大值刚好超过1900,最小值刚好低于1100。请注意,如果不处理好,会导致解锁/锁定油门、校准传感器和进入液晶编程模式出现故障。 接下来需要设置传感器开关
遥控器的两段式或者三段式开关信号由飞控的MODE端口输入后,会作为AUX1显示出来,拨动开关,会看到AUX1的滑块跟随滑动,这里需要靠它来控制传感器的开关状态。下图中我们主要设置前三个传感器状态,灰色小方格表示当前设置无效,点选成白色后表示有效。 LEVEL是自稳功能控制(需要加速度计,SE/Lite版都支持) BARO是高度保持功能(需要气压计,SE版支持) MAG是航线锁定功能(需要磁阻,SE版支持)
CAMSTAB是云台增稳输出开关,启用后飞控会控制云台舵机(需要加速度计,SE/Lite版都支持,并且需要在程序中启用#define statement),输出端口是A0与A1。
CAMSTRIG是一组舵机信号输出,输出端口是A2。它可以在程序代码中定义舵机的两个角度位置以及各自延时动作的时间,这样您可以用它来作为操作快门开关的功能。
上图中AUX1下方的三列小方格,分别表示三段开关的三个状态,当开关处于低中高三个位置时,会对应选中左中右三个方块。我们举例说明这个设置方法,比如下图中点选这6个小方格,并按WRITE保存设置。
那么当开关位置处于最低点时,AUX1的滑块在左边(图中是1108),ACC(加速度计)显示为ACTIVE(启用),BARO(气压计)和MAG(磁阻)都为OFF(禁用),对应AUX1下面左边LOW这一列,开关在这个位置只有LEVEL的小方格是白色。
当开关位置处于中间点时,AUX1的滑块在中间(图中是1506),这时ACC与MAG(加速度计与磁阻)都为ACTIVE(启用)状态,BARO(气压计)为OFF(禁用),对应AUX1下面中间MID这一列,开关在这个位置只有BARO的小方格是灰色。
当开关位置处于最高点时,AUX1的滑块在右边(图中是1905),这时ACC、BARO与MAG(加速度计、气压计与磁阻)都为ACTIVE(启用)状态,对应AUX1下面右边HIGH这一列,开关在这个位置的小方格全为白色。
相信您已经掌握这种设置方法,上图中间是传感器开关状态,绿色是启用,红色是禁用,传感器的状态可以根据自己的需要来进行设置,并无标准。注意点选小方块时如果无法切换为白色或者灰色,请多试几次,完成后一定要按底部绿色的WRITE按键进行保存,否则设置会无效,设置完成后按一次READ以确认飞控是否保存正确,然后拨动开关观察状态是否是您想要的效果。
下面我们需要检查4种传感器的数据输出是否正确,万一出现故障,请不要进行飞行,应联系我们进行维修。
加速度计(ACC)在飞行器静止时,三轴读数会相对稳定,如果前后/左右/上下移动飞行器,对应的PITCH/ROLL/Z会有读数变化,这表面加速度计工作正常。这时如果需要校准加速度计,请将飞行器放在尽量平的地面上,点按CALIB_ACC按钮,等待大约5秒钟,加速度计校准完成后,ROLL/PITCH会显示为0,校准完成。
陀螺(GYRO)在飞行器静止的时候,ROLL/PITCH/YAW三组数据都为0,拿起飞行器,分别朝向三个轴向摆动,会看到三组数据会跟随变化,同时右边的状态图会跟着摆动的方向做指示。左右倾斜飞行器,右边的ROLL不会保持水平状态,会有对应的倾斜动作,前后倾斜飞行器,PITCH也会产生相应变化,转动飞行器,有图中的4轴飞行器也会有对应动作。 磁阻(MAG)读数中我们只需关心ROLL这一项,当水平转动飞行器指向北的时候,此读数与下面的HEAD都为0,同时右边的指北针也指向N位置,说明磁阻工作正常。如需校准磁阻,请点按CALIB_MAG按钮,在30秒钟内把飞行器朝三个轴向分别旋转至少一圈再放回地面,即可完成校准。
气压计(ALT)读数并不是绝对值,每个飞控都有可能不一样,请不用担心,我们只是需要相对的数据。测试气压计时可以上下移动飞行器超过1米高度差,或者用手按着气压计的金属盖,会看到读数出现变化,当气压变高时,显示海拔下降,这时正常情况。
接下来应该请尝试解锁油门,油门摇杆保持最低,方向舵或者副翼摇杆推到最右,直到看到蓝色LED灯恒亮,表示解锁完成。本例我们设置的解锁后油门信号为1060(见上文程序修改部分),请看下图对比解锁前后油门信号的变化。 解锁前: 解锁后:
本例设置的飞行模式为X模式,上图中4个条状分别代表4个电调的控制信号,排列位置近似于×结构。
解锁前蓝色LED为熄灭状态,信号显示为1000(默认值)解锁后为1060(程序中指定的怠速值),如果解锁后的数值设置为1100或者更高一些,那么有些电机就会开始慢速转起来,建议先设置这个较低的数值,因为我们相信大部分人不会喜欢解锁后螺旋桨转起来,这样较为不安全。请注意,进行这些测试的时候仍然不要装上螺旋桨。
您可以尝试推高油门,看看电机是否都顺利转起来,如果出现某些电机不转,请检查相关连接线是否有问题。
您还可以抓着飞行器,前后左右摆动,观察电机的加减速修正是否正确,比如往前倾斜,前面两个电机会明显加速,同时上图中FRONT_L与FRONT_R都会往上滑动,数值增大。同时还需要注意电机旋转方向是否正确,请参见前文中不同飞行模式的电调接线位置图。 飞控主要调整的参数是下图中绿色背景的数值,修改方式是用鼠标左键在需要调整的数值方框内点按住不动,左右滑动鼠标,修改完毕后松开鼠标左键即可。请记得每次修改完一系列参数后,点按WRITE进行保存。
PID参数右边的RATE(包含ROLL/PITCH/YAW)表示飞控的灵活程度,数值越高飞行器越灵活,默认的0.00适合初学者,最大值1.00适合高机动性飞行,例如飞特技空翻或者其他高机动飞行动作,如果是FPV或者常规飞行可取值在0.4~0.7之间。
Throttle PID attenuation可改善快速爬升时飞行器的稳定性,通常为默认值0.00。
RC RATE表示遥控信号的动作量(等同于遥控器的D/R),这里针对ROLL与PITCH,1.9版本中默认为0.9,如果您觉得稍微动一下摇杆,飞行器的动作量就很大,可以适当减小该值,反之应该加大。
RC EXPO表示摇杆动作柔和度(等同于遥控器的EXPO),如果该值增大,那么摇杆的上下左右动作在一小段范围内会显得更为柔和,意思是减小摇杆附近范围内输出的动作量,这样会让飞行器动作更为柔和,如果您想让操控飞行器的动作灵敏度更高,请适当减小该值。该值介于0~1.0之间,0表示没有柔和度,1表示柔和度最高。 LEVEL的P与I值,LEVEL这一项用于控制自稳效果(它必须在LEVEL功能启用时才有效果),如果飞行器飞行时自稳效果不好,可以通过调整P值改善。 ROLL/PITCH/YAW的PID值我们会在后面另外说明。
恭喜您!飞行前的调试到此结束,接下来可以开始进行飞行测试和调整了。 5. 飞行调试。
MWC是用PID算法进行飞行稳定性控制的程序,三个字母分别代表比例(P)-积分(I)-微分(D)。
PID三个参数的直观作用:
P(比例):这是一个增益因子,当多轴飞行器受风等的影响发生向一边倾斜时,P值直接决定多轴飞行器的抵抗这种倾斜的力的大小。P越大,多轴飞行器抵抗意外倾斜的能力越强,但P过于大时会引起多轴飞行器抖动甚至猛烈侧翻。P越小,多轴飞行器抵抗意外倾斜的能力越弱,但P过小时会引起多轴飞行器自平衡能力不足甚至朝一边侧翻(如顺着风的方向)。
(I积分):这个参数决定了飞行控制器对过往飞行状态的依赖程度。如果I值太小,会使飞行器过度依赖当前的误差,不能抑制“过敏”现象,从而造成飞行颠簸;如果I值太大,则会过度削弱系统对误差的反应能力,造成反应迟缓。
D(微分):一旦多轴飞行器发生倾斜,则认为多轴飞行器会继续向同一方向倾斜,合适的D参数的能有效抑制未来可能发生的倾斜。如果D值太小,您会觉得多轴飞行
器反应不够灵敏;如果D值太大,也会引起“过敏”。相较于P而言,D反映得更多的是灵敏度,而P反映的是纠正误差的力度。
我们在此引用国外模友的经验帖,相信能帮助您有效掌握一些调整技巧。 原文地址:http://www.rcgroups.com/forums/showthread.php?t=1375728
――――――――――――――――――――――――――――――――――――――――――――――――
PID的调整原理与多轴飞行器的设置指南 (此文还在持续更新中) P-I-D:比利-积分-微分
当多轴飞行器在PITCH/ROLL/YAW轴上有任意角度变化时,陀螺仪会输出相对于初始位置的偏差角度值。
飞控根据记录的原始位置,使用“PID”程序算法驱动电机,让多轴飞行器回到初始位置。
这是个基于测量角度偏差量,随着时间推移的数据抽样与预测未来位置的数据组合。它提供的信息足以使飞控驱动电机,让多轴飞行器回到平衡状态。
P值是PID中最重要的部分,它直接决定飞行器的飞行效果。 首次起飞前PID的基本调整
请先把PID设置成当前程序版本的初始值。
用手小心抓着飞行器,增大油门直到接近悬停的位置,试着把它向前后左右倾斜,你会感觉到飞行器会产生一个反作用力,压制人为造成的倾斜。
改变P值(ROLL/PITCH)的大小,直到飞行器变得难以随意倾斜。如果没有打开自稳功能,飞控会允许你在一段时间内倾斜飞行器,这是正常情况。
现在尝试前后左右摇动飞行器,增大P值(ROLL/PITCH)直到它自己开始出现抖动,再往回减小一点。
重复操作把YAW的P也调整好。 现在已经适合在飞行中调整了。
高级调整,了解P、I和D的实际作用 P – 纠正飞行器回到初始位置的力度大小。
这个修正力度是一个比例值,反映初始位置偏差值减去飞控输入控制方向变化的组合。
较高的P值会产生较强的修正力去抵抗飞行器位置的偏移。
如果P值太高,在飞行器返回初始位置的过程中会过冲然后再次往反方向修正,接着再次进行回到初始位置的补偿。这会导致飞行器出现持续振荡,严重的话会完全破坏平衡。
增大P值:
飞行器会逐渐变得稳定,但P值太高会造成振荡和失控。
需要注意的是,提高P值会产生一个更强的修正力度,阻止飞行器的偏移。 减小P值:
飞行器会逐渐开始偏移,但P值太低会让飞行器变得非常不稳定。 它会让阻止飞行器偏移的修正力度变弱。 特技飞行:需要的P值稍高。 普通飞行:需要的P值稍低。
I – 对角度变化进行采样与取平均值计算的时间周期
存在偏差时,返回到初始位置有个修正的过程,在修正过程中力度会越来越大,直到达到最大值。
较高的I值会增强稳定的效果。 增大I值:
减小漂移和提升稳定效果,但过大的I值会延长稳定过程的周期,同时也会降低P的效果。
减小I值:
增强反应速度,但会增加漂移和降低稳定效果,同时会提升P的效果。 特技飞行:需要的I值稍低。 普通飞行:需要的I值稍高。 D – 飞行器回到初始位置的速度
较高的D值(数值与效果相反,较高的D值参数上会更接近0)意味着飞行器会快速返到回初始位置。
增大D值:(请记住,增大效果等于减小设定的参数值)
提升修正的速度,也会提升产生修正过量与振荡的几率,同时也会提升P的效果。 减小D值:(请记住,减小效果等于增大设定的参数值)
降低由偏差状态返回初始位置的振荡,恢复到稳定效果的时间变长,同时也会降低P的效果。
特技飞行:增大D值(请注意是减小参数值)。 普通飞行:减小的D值(请注意是增大参数值)。 实际应用中的高级调整 (下面这些只是建议) 特技飞行:
增大P值直到出现振荡,然后稍微减小一点。
改变I值直到悬停漂移达到无法接受的程度,然后稍微增大一点。
增大D值(请注意是减小参数值)直到出现大动作控制时无法接受的振荡。 P值现在可以稍微减小一点。 稳定飞行(常规/FPV):
增大P值直到出现振荡,然后稍微减小一点。
改变I值直到偏差程度达到无法接受的程度,然后稍微增大一点。
减小D值(请注意是增大参数值)直到出现大动作控制时回中速度变慢,然后稍微增大一点D值(请注意是减小参数值)。
P值现在可以稍微减小一点。
在一般的飞行中,你会找到一组折中的PID值,这是最优化的效果。 其他影响PID的因素
你会倾向于某组PID参数值,但不会有两个最佳状态的飞行器拥有完全同样的参数,这时因为下列的原因造成:
机架的重量/尺寸/材料/硬度 电机的功率/扭力/推力
电机的安装位置/电机的间距 螺旋桨的直径/螺距/材料 机架的平衡效果 操控者的技能
参考资料,维基百科中关于PID控制的介绍: http://en.wikipedia.org/wiki/PID_controller
LED指示方式及各种功能的摇杆动作说明 蓝色LED显示方式:
通电后初始化:快速闪动几秒钟后熄灭;
初始化陀螺/加速度计:快速闪动几秒钟后熄灭; 开机后无法顺利初始化:持续闪动(请重新上电); 锁定时,飞行器倾角过大:闪动; 锁定时:熄灭; 解锁后:常亮。
启动(解锁)和锁定油门
解锁:保持油门摇杆最低,方向舵摇杆(或者副翼摇杆)最右,直到蓝色LED常亮。 如果怠速油门设置为低转速而不是停转,解锁后电机会马上转起来,注意安全! 锁定:保持油门摇杆最低,方向舵摇杆(或者副翼摇杆)最左,直到蓝色LED熄灭。
陀螺仪校准
在锁定状态下,保持油门摇杆最低,方向舵摇杆最左,然后升降舵摇杆拉到最低,蓝色LED会持续闪动几秒后熄灭,校准结束,松开摇杆。陀螺仪初始化过程中,请勿移动飞行器。 加速度计(自稳功能)校准
飞行前必须操作一次校准。飞行器应放在尽量水平的地面(或其他平面),在锁定状态下,保持油门摇杆最高,方向舵摇杆最左,然后升降舵摇杆拉到最低,蓝色LED会持续闪动一段时间后熄灭,校准结束。注意要先松开升降舵摇杆,才松开方向舵/油门摇杆。在GUI中的“CALIB_ACC”按键同样具有校准功能。
操作结束前请勿移动飞行器,如果校准没有正确完成,蓝色LED会一直闪动而不熄灭,这样您也无法解锁油门(安全设计),需要重新上电操作初始化。
请注意,如果校准后先松开方向舵摇杆,会误进入加速度微调功能。 加速度计(自稳功能)微调
飞行器在无风状态下悬停时如果会朝某个方向漂移,就需要进行加速度计微调。在锁定状态下,保持油门最高,升降舵摇杆和副翼摇杆可以根据情况打到最大/最小位置再回中,每次操作时蓝色LED会闪动,根据需要重复这个操作。微调完成后升降舵/副翼摇杆回中,油门摇杆回到最低位。
例如悬停时飞行器往正前方漂移,微调时就需要把升降舵摇杆往下打到底再回到中间,根据漂移的严重程度重复操作数次,每次摇杆打到底都会看到LED闪动,重新解锁起飞后观察效果,不行的话再次进行调整。
★以上4项操作如果出现问题,请检查1~4通道的正反向以及通道行程是否正确(GUI中观察的每个通道最小值应小于1100,最大值应大于1900,否则可能会造成设置失败。) 使用液晶模块时,可进入编程模式用遥控器设定参数。
进入编程模式:在锁定状态下,先将升降舵摇杆推到最高并保持,然后油门摇杆最低,方向舵摇杆最右,蓝色LED会持续闪动,这时可以松开两个摇杆,继续等待几秒钟,LED再次快速闪动后就表示进入编程模式。接着可以接上液晶模块(如果未进入编程模式而是先接上液晶模块,可能会显示不正常)。
参数项目选择:保持油门最低,用升降舵上下摇动选择参数项目。 参数值选择:保持油门最低,用方向舵摇杆左右摇动选择参数值。
保存参数并退出编程模式:在编程模式下,先将升降舵摇杆推到最高并保持,然后油门摇杆最低,方向舵摇杆最左,蓝色LED会持续闪动几秒后熄灭,这时已经保持并退出编程模式。如果再进行参数选择操作将会无效。
因篇幅问题不能全部显示,请点此查看更多更全内容