搜索
bottom↓
回复: 24

MWC飞控算法

[复制链接]

出0入0汤圆

发表于 2013-1-13 23:05:45 | 显示全部楼层 |阅读模式
     最经买各个MWC飞控,用默认参数飞了一下,效果还不错 ,看了一下程序,姿态结算部分用的是互补滤波,控制算法是PID ,但很多细节问题没弄明白,希望大家能一起讨论,感觉大家一起讨论,共同学习,共同进步,比一个人想效率高
第一个问题:有一个rcData[]和rcCommand[]变量,rcData[]是接收的遥控器指令,实际控制用的是rcCommand[],他把rcData[],做了一个复杂的运算
    rcCommand[axis] = lookupPitchRollRC[tmp2] + (tmp-tmp2*100) * (lookupPitchRollRC[tmp2+1]-lookupPitchRollRC[tmp2]) / 100;
上位机上有个RCRATE,和RCEXPO的选项,lookupPitchRollRC跟这两个选项有关,我查了一下是这么解释的:RCRATE影响最大油门。比如0.9,你的最大油门就是实际的90% ;EXPO调整油门曲线形状的(没玩过多少航模,表示不明白);我的问题是这么个处理就是为了改变油门曲线形状?,,我记得我的遥控器上有个选项是改变油门曲线形状的,这个选项是不是为了使那些不带这个功能的接收机也能用,(我的接收机明天我去确认一下,问问我那个飞航模的师兄是不是这样,有什么功能,如果得到解答,明天就贴上......)

第二个问题:
   delta          = gyroData[axis] - lastGyro[axis];                               // 16 bits is ok here, the dif between 2 consecutive gyro reads is limited to 800
    lastGyro[axis] = gyroData[axis];
    deltaSum       = delta1[axis]+delta2[axis]+delta;
    delta2[axis]   = delta1[axis];
    delta1[axis]   = delta;
    if (abs(deltaSum)<640) DTerm = (deltaSum*dynD8[axis])>>5;                       // 16 bits is needed for calculation 640*50 = 32000           16 bits is ok for result
                      else DTerm = ((int32_t)deltaSum*dynD8[axis])>>5;  
PID计算的D项貌似用了个角加速度计算,实在没见过,记得以前问了一个外面的人,也没问明白,还有计算完了,移位运算是干嘛的,

问题三......
今晚就写在这吧,困了明天继续写,还有这几个问题我会去外面找做无人机的师兄请教,如果弄明白了一定第一时间贴上.......

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2013-1-14 21:00:23 | 显示全部楼层
PID中的D我也有相同疑问,为什么是角速度的变化量?实际陀螺仪的输出就是角度的变化率(也就是角速度)了。至于移位实际就是简单地除以2的5次方。至于你说的摇杆的曲线形状,我是这理解的为了让摇杆在中点位置的分辨率更高,控制更细腻柔和

出105入79汤圆

发表于 2013-1-14 21:07:58 | 显示全部楼层
移位是缩小幅度,就是除法~

出0入0汤圆

发表于 2013-1-15 08:57:52 | 显示全部楼层
这个,PID算法是4参数的广义PID
在一定条件下,以角度作主控参数,于是积分是角度积分,比例是乘角度,微分就是角速率,即陀螺输出值了.
在另一种条件下,以角速率为主控量,积分是姿态解算的角度,比例是角速率,微分则对角速率再作微分计算
这个算法我以前在做特大飞艇时用过的,估计在4轴中效果会更好!!!

出0入0汤圆

发表于 2013-1-15 10:52:23 来自手机 | 显示全部楼层
但是只看到角度误差的p,角度误差的I,以及角速度的变化率D,没有看到角速度直接加到计算公式里面?也就是说为什么是4楼说的第一种PID的前2个参数加上第二种PID的第三个参数?这个控制原理是什么?

出0入0汤圆

发表于 2013-1-16 09:45:12 来自手机 | 显示全部楼层
本帖最后由 cw628 于 2013-1-16 09:55 编辑

楼主弄明自没?来说说怎么回事1,另外微分项的乘积参数dynD8好像是个动态的变量,和比例项、积分项的乘积参数为常数不一样,这是怎么算出来的?

出0入0汤圆

发表于 2013-1-16 23:58:57 | 显示全部楼层
我刚想买mwc

出0入0汤圆

发表于 2013-1-17 14:59:32 来自手机 | 显示全部楼层
有明白人出来答个疑呢^

出0入0汤圆

 楼主| 发表于 2013-1-17 15:57:41 | 显示全部楼层
cw628 发表于 2013-1-16 09:45
楼主弄明自没?来说说怎么回事1,另外微分项的乘积参数dynD8好像是个动态的变量,和比例项、积分项的乘积参 ...

          那个应该就是设置油门线性的,我看了我的遥控器有那个选项,这个选项应该是做什么特技,3D(这个具体是怎么飞我也不明白,问了别人,解释了一下,似懂非懂)飞行用的,咱们普通飞行油门曲线就是一条斜率固定的直线,,这个设置可以把油门输出设置成曲线,我的Futuba T12FGH,8K多的货应该算比较高级了,带这个个功能,我估计普通的遥控器应该没有,所以飞控加了这个功能.......个人观点不知道这个说法对不对

比例项PTerm = -(int32_t) angle[axis] * cfg.P8[PIDLEVEL] / 100;这个P是固定的,后面PTerm -= (int32_t) gyroData[axis] * dynP8[axis] / 10 / 8;这个P根据油门改变是个角速率反馈,相当于加了一个内回路,后面D项在角速率回路里面又加了一个回路.......
回头我画个框图,关键在这讨论,我的四旋翼怎么也飞不起来,郁闷得很啊.......

出0入0汤圆

发表于 2013-1-17 16:16:59 来自手机 | 显示全部楼层
楼主你的MWc不是已经飞起来了吗?怎么四旋翼飞不起来?

出0入0汤圆

 楼主| 发表于 2013-1-17 16:42:22 | 显示全部楼层
cw628 发表于 2013-1-15 10:52
但是只看到角度误差的p,角度误差的I,以及角速度的变化率D,没有看到角速度直接加到计算公式里面?也就是 ...

我理解这个角速率就是一个内回路,跟角度控制是位置控制的内回路一样,一层套一层

出0入0汤圆

发表于 2013-4-12 14:35:54 | 显示全部楼层
楼主怎么不更新了

出0入0汤圆

发表于 2013-4-17 16:39:36 | 显示全部楼层
agnd 发表于 2013-1-15 08:57
这个,PID算法是4参数的广义PID
在一定条件下,以角度作主控参数,于是积分是角度积分,比例是乘角度,微分就是 ...

你好,可以详细介绍一下所谓的广义PID吗?看不太懂这段代码什么意思~谢谢了~

出0入0汤圆

发表于 2013-8-14 20:46:37 | 显示全部楼层
帮顶,过段时间在研究

出0入0汤圆

发表于 2013-11-5 11:20:26 | 显示全部楼层
这种类型的PID参数真的不好调,调了很久都调不出合适的参数

出0入0汤圆

发表于 2013-11-6 11:53:10 | 显示全部楼层
想不通!!!!

出0入0汤圆

发表于 2013-11-7 10:59:05 | 显示全部楼层
我想开始研究四轴飞行器的算法,也想找点资料学学,买MWC的飞控,能给看代码吗??提问不当地方请见谅··刚刚学习

出0入0汤圆

发表于 2013-11-20 17:26:50 | 显示全部楼层
我的理解是 先对角度做PI控制,再对焦速度做PD控制。

出0入0汤圆

发表于 2013-12-23 21:35:16 | 显示全部楼层
正在学习之中

出0入0汤圆

发表于 2014-1-8 20:52:01 | 显示全部楼层
如果D项用角度控制的话会照成严重的滞后,飞不起来

出0入0汤圆

发表于 2014-1-8 21:24:16 | 显示全部楼层
表示看不懂,算是学习吧。

出0入0汤圆

发表于 2014-3-7 21:47:08 | 显示全部楼层
向楼主学习!最近也在玩MWC我想请教一下楼主,我不知道MWC的遥控解锁是怎么写的,看了很久没有看明白。

出0入0汤圆

发表于 2014-7-9 10:57:12 | 显示全部楼层
赞一个································

出0入0汤圆

发表于 2014-8-22 14:26:54 | 显示全部楼层
SHIYOULAN 发表于 2014-1-8 20:52
如果D项用角度控制的话会照成严重的滞后,飞不起来

D项怎么会用角度来控制呢,D项是角度的微分。。。

出0入0汤圆

发表于 2014-10-26 23:48:46 | 显示全部楼层
好好研究下~~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-9 08:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表