[四轴原创DIY]

四轴经验分享 倾角四轴PID调试平衡问题

[复制链接]
17697|43
手机看帖
扫描二维码
随时随地手机跟帖
qinhuan7|  楼主 | 2014-7-5 22:46 | 显示全部楼层 |阅读模式
本帖最后由 qinhuan7 于 2014-9-18 10:24 编辑

最近在调试四轴PID,自己画的板子,网上买的空心杯电机,焊接好后一直卡在PID调试平衡这儿,电机平衡控制如下               
Cotrol_M2 = proportion + PID.Cx[0];
Cotrol_M3 = proportion - PID.Cx[0];
Cotrol_M2和Cotrol_M3是X轴上一对电机的控制量,PID.Cx[0]是根据X轴的倾角(采用的是Y轴的角速度积分得出)计算得出的控制量,不知道这种方法对不对,请前辈指点,调了很久,四轴始终左右震荡,连续震荡的波形如下:
图片 1 ,图片 2;
如果减小P或者减小D,四轴就篇向一边,起不来,如果增大P或者增大D,四轴震荡更加激烈,不知道问题所在,请前辈指导下,谢谢!!!
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
终于把PID调通了,把最终的曲线贴出来和大家分享一下,其实这曲线并没有想象的那么漂亮。
图片 PID。

单次转到波形

单次转到波形
1.jpg

PID曲线

PID曲线

相关帖子

qinhuan7|  楼主 | 2014-7-10 21:34 | 显示全部楼层
没有人???

使用特权

评论回复
759646015| | 2014-7-23 15:34 | 显示全部楼层
请问你是用什么传感器的?

使用特权

评论回复
洛川| | 2014-7-29 10:31 | 显示全部楼层
哥,你怎么看的波形??什么上位机软件?求一份可以不

使用特权

评论回复
qinhuan7|  楼主 | 2014-8-4 21:57 | 显示全部楼层
用的MPU6050,用MATLAB看波形

使用特权

评论回复
qinhuan7|  楼主 | 2014-8-4 21:58 | 显示全部楼层
759646015 发表于 2014-7-23 15:34
请问你是用什么传感器的?

MPU6050

使用特权

评论回复
qinhuan7|  楼主 | 2014-8-4 21:58 | 显示全部楼层
洛川 发表于 2014-7-29 10:31
哥,你怎么看的波形??什么上位机软件?求一份可以不

用MATLAB看波形

使用特权

评论回复
lyfly_away| | 2014-8-4 22:38 | 显示全部楼层
表示很敬佩用 MATLAB 的高手

使用特权

评论回复
qinhuan7|  楼主 | 2014-8-6 21:16 | 显示全部楼层
只是会用点简单的功能而已

使用特权

评论回复
qinhuan7|  楼主 | 2014-8-6 21:18 | 显示全部楼层
终于把PID调通了,四轴也飞起来了,就是四轴有点重,飞起来**一两分钟就电量不足了,有空了共享一下经验

使用特权

评论回复
hozsir| | 2014-8-8 11:10 | 显示全部楼层
qinhuan7 发表于 2014-8-6 21:18
终于把PID调通了,四轴也飞起来了,就是四轴有点重,飞起来**一两分钟就电量不足了,有空了共享一下经验 ...

能分享一下参数调试经验吗

使用特权

评论回复
ysjqq520| | 2014-8-9 15:42 | 显示全部楼层
表示也想知道调参经验。

使用特权

评论回复
qinhuan7|  楼主 | 2014-8-9 20:36 | 显示全部楼层
hozsir 发表于 2014-8-8 11:10
能分享一下参数调试经验吗

我了解的PID有两种,一种是位置式PID,一种是增量式PID,我的四轴选用的增量式PID,有兴趣的小伙伴可以去了解这两种PID的区别,我之前在网上看见有网友把这几种PID都转换成了C语言,真心感谢他;具体代码如下:
;位置型PID算法:
E(K)=R(K)-M(K)         ;本次误差=本次设定值-本次测量值
Pp(K)=Kp*E(K)          ;本次比例输出=比例系数×本次误差值
Pi(K)=Ki*E(K)+Pi(K-1)  ;本次积分输出=积分系数×本次误差值+上次积分输出值
Pd(K)=Kd[E(K)-E(K-1)]  ;本次微分输出=微分系数×(本次误差值-上次误差值)
P(K)=Pp(K)+Pi(K)+Pd(K) ;输出值=本次比例输出+本次积分输出+本次微分输出

建议调试前先把四轴对称两个轴固定起来,先调试另外两个对称的电机,调试完成后其他两个的电机也基本可以用这个PID值,如果精度要求高的话还需要进一步调试。
先看一下我调试的效果吧,参数还不是很精致,但是基本可以飞起来http://www.tudou.com/programs/view/tHXTn8nR3e8/;
这是但是P参数的效果http://www.tudou.com/programs/view/A3vafHmnN9M/;从视频中可以看出,单调P参数基本上没有什么效果;
这是PD参数的效果http://www.tudou.com/programs/view/bkkAcGnTqNs/;从视频中可以看出,调试PD参数,也基本没有什么效果;
这是PID三个参数一起调试效果http://www.tudou.com/programs/view/-3XIOa5aqvA/
开始调试的时候用 P 和 I 参数一起调试,先将 P 固定在某个值,慢慢增大 I 值,I越大,四轴恢复到平衡位置越快,I 过大就会造成四轴恢复过度导致四轴震荡;把 I 增加到四轴刚好能够产生震荡为止,然后开始慢慢增加 D 参数,增加到四轴基本能保持平衡,但是不一定在水平位置,最后再同时调试 P 和 I 参数(P 和 I 参数的作用有点类似),如果四轴能够保持平衡,但是有点倾斜,这时慢慢增大 I 值,此时如果四轴产生振荡,慢慢增大P 值 或减小 P 值来调节,将振荡减小到最小后再通过调试D值使四轴平衡。

以上方法只是个人意见,仅供参考。



使用特权

评论回复
qinhuan7|  楼主 | 2014-8-9 20:36 | 显示全部楼层
ysjqq520 发表于 2014-8-9 15:42
表示也想知道调参经验。

可以参考一下楼上的回答。

使用特权

评论回复
hozsir| | 2014-8-10 00:57 | 显示全部楼层
qinhuan7 发表于 2014-8-9 20:36
可以参考一下楼上的回答。

我们刚刚调好,才发现就是你推荐的方法,虽然是我们调完后我才发现楼主的回复,但还是非常感谢。至于定向前进、后退、的PID调节,你还有什么相关经验吗?

使用特权

评论回复
qinhuan7|  楼主 | 2014-8-13 22:53 | 显示全部楼层
hozsir 发表于 2014-8-10 00:57
我们刚刚调好,才发现就是你推荐的方法,虽然是我们调完后我才发现楼主的回复,但还是非常感谢。至于定向 ...

如果你的四轴上面没有安装磁力计、GPS、气压计这些传感器的话,能实现简单的前进、后退,但是想要实现精准的前进、后退操作就很难, 即使你把PID调节到了极致,四轴也会存在“漂移”情况。

使用特权

评论回复
hozsir| | 2014-8-14 18:01 | 显示全部楼层
哦原来如此,那么四轴如何感知自己水平移动有多远啊?

使用特权

评论回复
zxc852905168| | 2014-8-14 18:20 | 显示全部楼层
想问一下,yaw轴的pid怎么调,它和roll轴和pitch轴上的电机的关系在哪里?

使用特权

评论回复
qinhuan7|  楼主 | 2014-8-14 20:05 | 显示全部楼层
hozsir 发表于 2014-8-14 18:01
哦原来如此,那么四轴如何感知自己水平移动有多远啊?

最简单的办法就是装个GPS啊

使用特权

评论回复
qinhuan7|  楼主 | 2014-8-14 20:10 | 显示全部楼层
zxc852905168 发表于 2014-8-14 18:20
想问一下,yaw轴的pid怎么调,它和roll轴和pitch轴上的电机的关系在哪里?

你四轴对角线上的一对电机转向相同,对角线上另一对电机转向也相同,但是与前一对相反,这是有原因的,它们的力矩可以控制Yaw,你可以去看看力矩相关资料就清楚了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:把学习当成一种娱乐!

26

主题

400

帖子

7

粉丝