OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 四轴飞行器PID控制电机算法讨论

共24条 1/3 1 2 3 跳转至

四轴飞行器PID控制电机算法讨论

高工
2014-03-28 17:51:26    评分
经常看到说要用PID,PID具体含义是什么呢,,用最简单的语言解释下吧。千万不要用那个积分公式来回答,就算上过大学回来看看也看看是公式一堆,一堆公式不用PID算法行不行?比如说我上面有角度传感器MPU6050,单片机获取MPU6050的数据后,对这些数据进行判断,进而来实行姿态调整,这样也可以吧?????????

专家
2014-03-28 18:04:40    评分
2楼
讨论一下吧!

助工
2014-03-28 18:15:47    评分
3楼
PID就是一种最简单的最直接的控制系统稳定的方法,思想就是差多少补回来。这就是P,然后微分D是检测变化的快慢提前调节,积分 I 就是对偏差积分,对总体的偏差进行调节。最后按比例将三个值加在一起,再乘以一个总的比例。。说的可能不是很准确,我就是这么理解的

助工
2014-03-28 18:26:19    评分
4楼

你那个偏移量不同,调节量也不同,直接分段调节的方式误差太大。

关于6050的参数。首先,现在飞机等设备上使用的机械式陀螺仪,是没有漂移误差的,加速度对倾斜角的测量没有影响。但是我们使用的数字式小型陀螺仪,例如MPU6050,使用的类似电容极板的方式,在非惯性系中测得的陀螺仪值收到加速度的影响。所以就要用加速度去修正陀螺仪的值。就是滤波(或者叫数据融合)

目前用的比较多的是四元数算法然后求欧拉角,然后来表征空间状态。另外一种是卡尔曼(或者拓展卡尔曼)来进行数据融合。这样能得到比较准确的空间矢量。

飞行器的姿态解算的越准确,控制的也就越好

(好吧,大概就是这样,手敲的好累)


高工
2014-03-28 22:46:10    评分
5楼
貌似  卡尔曼  是一种滤波方法啊,四元数和欧拉角才是用来表示姿态的吧!

助工
2014-03-29 11:02:35    评分
6楼
卡尔曼算法也可以用来融合6个初始数据得到比较精确的结果。不过用的人不多

助工
2014-03-29 11:18:04    评分
7楼
我贴上一个2年前看到的PID的故事吧,我觉得讲得还是蛮通俗的:
小云接到这样一个任务:一个水缸有点漏水(而且漏水的速度还不是固定不变的),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。 小云接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,开始每30分钟来检查一次水面高度。结果水漏得太快,每次小云来检查时,水都快漏完了,离要求的高度相差很远,后来小云改为每3分钟来检查一次,结果每次来水都没怎么漏,不需要加水,来得太频繁做的是无用功。几次试验后,他确定每10分钟来检查一次。这个检查时间就称为采样周期。
开始小云用勺子加水,水龙头离水缸有十几米远的距离,经常要跑好几趟才加够水,于是小云又改为用桶加,一加就是一桶,跑的次数少了,加水的速度也快了,但好几次将缸给加溢出了,小云又动脑筋,我不用瓢也不用桶,最后选择可用盆,几次下来,发现刚刚好,不用跑太多次,也不会让水溢出。这个加水工具的大小就称为比例系数。
小云又发现水虽然不会加过量溢出了,有时会高过要求位置比较多,还是有溢出的可能。于是他又想了个办法,在水缸上装一个漏斗,每次加水不直接倒进水缸,而是倒进漏斗让它慢慢加。这样溢出的问题解决了,但加水的速度又慢了,有时还赶不上漏水的速度。于是他试着变换不同大小口径的漏斗来控制加水的速度,最终找到了满意的漏斗。漏斗的时间就称为积分时间。
小云终于喘了一口,但任务的要求突然严了,水位控制的及时性要求大大提高,一旦水位过低,必须立即将水加到要求位置,而且不能高出太多,否则不给工钱。小云又为难了!于是他又开动脑筋,终于让它想到一个办法,常放一盆备用水在旁边,一发现水位低了,不经过漏斗就是一盆水下去,这样及时性是保证了,但水位有时会高很多。他又在要求水面位置上面一点将水缸凿一孔,再接一根管子到下面的备用桶里,这样多出的水会从上面的孔里漏出来。这个水漏出的快慢就称为微分时间。

高工
2014-03-29 11:31:51    评分
8楼
是的,好像是因为卡尔曼的参数不好选择。。

工程师
2014-03-29 11:32:16    评分
9楼
这个简直通俗易懂

高工
2014-03-29 11:33:55    评分
10楼
不错不错

共24条 1/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]