OpenEdv-开源电子网

标题: 四轴终于起飞了 [打印本页]

作者: Creas_Tall    时间: 2013-10-2 21:04
标题: 四轴终于起飞了
 
调节PID,太伤人了,
损失了好多的桨,
最后还是飞起来了
但是,用普通的NRF24L01控制的话感觉距离不够,
由于信号问题,不敢飞太高了
有可能是原子大哥的NRF24L01的PCB天线朝里面的缘故吧,我也是猜猜的,希望原子大哥能把PCB天线朝外面
就好了;

作者: xiaoyan    时间: 2013-10-2 21:50
恭喜恭喜
作者: Creas_Tall    时间: 2013-10-2 21:50
回复【2楼】咯耶:
---------------------------------
刚刚做到平衡和简单的方向控制,估计翻空有些困难,后期慢慢想想
作者: wangyan915205    时间: 2013-10-2 22:47
牛!
作者: tanminhunan    时间: 2013-10-2 23:25
绝对牛值
作者: 神通广大    时间: 2013-10-2 23:43
回复【楼主位】Creas_Tall:
 调节PID,太伤人了,损失了好多的桨,最后还是飞起来了但是,用普通的NRF24L01控制的话感觉距离不够,由于信号问题,不敢飞太高了有可能是原子大哥的NRF24L01的PCB天线朝里面的缘故吧,我也是猜猜的,希望原子大哥能把PCB天线朝外面就好了;
---------------------------------
楼主,四轴硬件你是自己做的吗?遥控部分是原子哥的开发板啊?
作者: Creas_Tall    时间: 2013-10-3 07:39
回复【7楼】神通广大:
---------------------------------
硬件部分,一个ARM处理器STM32F103C8T6最小系统版,然后焊接了一个NRF24L01,一个MPU6050,MS5611,HMC5883L,后面三个是整合到一个芯片上的;
遥控部分的确是原子哥的开发板
作者: maxuejia    时间: 2013-10-3 09:47
恭喜啊,我也在做四轴,弄到pid了,你是怎么调pid啊?是不是绑起来,先调一个直线上的两个电机?
作者: XINSI    时间: 2013-10-3 11:48
回复【楼主位】Creas_Tall:
---------------------------------
niu b
作者: Creas_Tall    时间: 2013-10-3 13:04
回复【9楼】maxuejia:
---------------------------------
对,你可以看看这个视频http://v.youku.com/v_show/id_XNTQyNDE1NzE2.html
作者: buyashenshi    时间: 2013-10-3 14:02
牛B啊,人材啊。
作者: 啊变变变    时间: 2013-10-3 14:12
我们的大四轴也可以飞~~楼主有悬停么?貌似要用到GPS的
作者: maxuejia    时间: 2013-10-3 19:34
回复【11楼】Creas_Tall:
---------------------------------
你的pid程序是增量式的还是位置式的?能贴出来看看么?
作者: maxuejia    时间: 2013-10-3 19:34
回复【13楼】啊变变变:
---------------------------------
你的pid程序是增量式的还是位置式的?能贴出来看看么?
作者: dianzi430    时间: 2013-10-3 20:50
好玩
作者: Creas_Tall    时间: 2013-10-3 20:56
回复【13楼】啊变变变:
---------------------------------
还没有写悬停的程序呢,目前在搞指南针和高度
作者: Creas_Tall    时间: 2013-10-3 20:56
回复【14楼】maxuejia:
---------------------------------
贴了
作者: 正点原子    时间: 2013-10-3 23:06
酷...
作者: xujiangyu0619    时间: 2013-10-4 10:11
回复【楼主位】Creas_Tall:
---------------------------------
楼主,硬件和航模是自己买的还是??
作者: Creas_Tall    时间: 2013-10-4 10:37
回复【20楼】xujiangyu0619:
---------------------------------
买飞机硬件,写自己的程序
作者: maxuejia    时间: 2013-10-4 14:52
回复【13楼】啊变变变:
---------------------------------
悬停需要gps么?
作者: maxuejia    时间: 2013-10-4 14:53
楼主的是位置式的pid啊,为啥不用增量式的呢?
作者: Creas_Tall    时间: 2013-10-4 15:13
回复【23楼】maxuejia:
---------------------------------
增量式的有什么优势?
作者: maxuejia    时间: 2013-10-4 15:34
回复【24楼】Creas_Tall:
---------------------------------
课本上说的是增量式的计算量小小额。
作者: Creas_Tall    时间: 2013-10-4 16:39
回复【25楼】maxuejia:
---------------------------------
我目前先用位置的嘛,等基本功能实现了,在用增量的试试看
作者: 不后悔wk    时间: 2013-10-4 17:06
牛人啊,MARK!!!
作者: maxuejia    时间: 2013-10-4 17:40
回复【26楼】Creas_Tall:
---------------------------------
楼主是哪个专业的 啊?
作者: Creas_Tall    时间: 2013-10-4 18:03
回复【28楼】maxuejia:
---------------------------------
电子信息科学与技术
作者: Creas_Tall    时间: 2013-10-4 20:03
回复【28楼】maxuejia:
---------------------------------
你呢
作者: maxuejia    时间: 2013-10-4 20:11
回复【30楼】Creas_Tall:
---------------------------------
自动化的哈,专门研究控制的,不过刚开始学自控课,可能等些日子才研究的深入。
作者: Creas_Tall    时间: 2013-10-4 20:23
回复【31楼】maxuejia:
---------------------------------
嗯,加油!
作者: SR_LI    时间: 2013-10-5 09:04
花了多少大洋
作者: Creas_Tall    时间: 2013-10-5 10:21
回复【33楼】SR_LI:
---------------------------------
快1k了
作者: maxuejia    时间: 2013-10-5 10:45
回复【34楼】Creas_Tall:
---------------------------------
楼主,我还有一事不明白

假如说目标姿态是俯仰和横滚都是0度,但是离地1米,或离地2米,上升或下降,都可能是0度,那pid到底把他调到了哪种状态?

或者说,pid怎么和遥控器的油门等信号结合起来?

新手求指导
作者: Creas_Tall    时间: 2013-10-5 12:04
回复【35楼】maxuejia:
---------------------------------
PID 直接控制的是期望角与当前角之差;
例如现在油门为
moto1=moto2=moto3=moto4=1000;

期望角的俯仰和横滚都是0度,但是目标姿态角的俯仰和横滚不是0度,都为10度,
就会在4个电机当前油门的基础上进行加减;
PID控制之后的效果可能就是:
moto1=900;
moto2=900;
moto3=1100;
moto4=1100;
电机执行该油门后,就有可能回到期望的角度;
能不能回到期望的角度,就要看PID的参数调整好没有;
如果PID参数调节好了,PID调节后的状态为你给的期望角;
至于高度,是在四个电机上加相同的量,使4个电机增量相同
作者: Creas_Tall    时间: 2013-10-5 12:08
回复【35楼】maxuejia:
---------------------------------
moto1 = throttle - ID_ROL.OUT + ID_PIT.OUT - ID_YAW.OUT;
moto2 = throttle + ID_ROL.OUT + ID_PIT.OUT + ID_YAW.OUT; 
moto3 = throttle + ID_ROL.OUT - ID_PIT.OUT - ID_YAW.OUT; 
moto4 = throttle - ID_ROL.OUT - PID_PIT.OUT + PID_YAW.OUT;
 throttle为遥控给的油门,PID_ROL.OUT 、PID_PIT.OUT 、PID_YAW.OUT为PID调节所产生的量;
moto为pid调节后总的油门
作者: maxuejia    时间: 2013-10-5 12:28
回复【37楼】Creas_Tall:
---------------------------------
谢谢楼主的解释!
作者: 皮皮鲁    时间: 2013-10-5 14:11
挺牛
作者: zsk    时间: 2013-10-5 14:22
好牛的样子
作者: zsk    时间: 2013-10-5 14:23
哥们  哪个学校的 大几的
作者: Creas_Tall    时间: 2013-10-5 17:58
回复【41楼】zsk:
---------------------------------
成都理工的,大四
作者: Creas_Tall    时间: 2013-10-5 17:58
回复【41楼】zsk:
---------------------------------
你呢?
作者: maxuejia    时间: 2013-10-6 14:32
PID_ROL.P = ID_PIT.P = tmp_buf_RX[1];
PID_ROL.I = ID_PIT.I = tmp_buf_RX[2]
PID_ROL.D = ID_PIT.D = tmp_buf_RX[3];
PID_YAW.P = tmp_buf_RX[4];
PID_YAW.I = tmp_buf_RX[5];
PID_YAW.D = tmp_buf_RX[6];

请问这几句的意思是不是用遥控器进行调参?我还以为调整一次参数就得烧一次程序呢。
作者: Creas_Tall    时间: 2013-10-6 14:47
回复【44楼】maxuejia:
---------------------------------
对,就是遥控调节pid参数的
作者: maxuejia    时间: 2013-10-6 14:58
回复【45楼】Creas_Tall:
---------------------------------
请问你是不是先调一条直线上的两个电机,再调另外两个?

还有,调好pid是不是就能悬停了?
作者: Creas_Tall    时间: 2013-10-6 15:07
回复【46楼】maxuejia:
---------------------------------
我当时是那么调的,调好一边,另一边基本不用调了,调好pid,只能保持平衡,
平衡不等于悬停,一般说的悬停是定点定高,没有遥控的干预,平衡是只有油门够大,就不会掉下来,但是会各种漂移,对风特别敏感;
如果有遥控的话,在有风的时候,给一个期望角,就可以简单的抗风了,手动遥控可以悬停了
作者: maxuejia    时间: 2013-10-6 15:24
PID_ROL.dout = ID_ROL.D * (error_rol_temp[0]-error_rol_temp[1])/0.0007/3000;
PID_PIT.dout = ID_PIT.D * (error_pit_temp[0]-error_pit_temp[1])/0.0007/3000;
PID_YAW.dout = ID_YAW.D * (error_yaw_temp[0]-error_yaw_temp[1])/0.0007/3000; 

楼主,想问下最后为啥要除以3000和0.0007?

还有为啥只用 了pd没用i?

我感觉楼主的程序思路很清晰,所以研究下,感激楼主耐心的解答哈。
作者: Creas_Tall    时间: 2013-10-6 15:51
回复【48楼】maxuejia:
---------------------------------
其实除以3000和0.0007只是当时调节PID参数写的衰减系数的,其实直接除以2.1也行,衰减系数可以控制PID的大致范围;上面的三个表达式中只有(error_rol_temp[0]-error_rol_temp[1])为变量,其他的就是需要调节的参数;
目前我的P为50,如果不除以2.1,那么P就是50/2.1了
作者: Creas_Tall    时间: 2013-10-6 15:53
回复【48楼】maxuejia:
---------------------------------
I也可以用,感觉影响不是很大
作者: maxuejia    时间: 2013-10-6 16:59
回复【50楼】Creas_Tall:
---------------------------------
楼主,我还有个疑惑

假设对角线的两个电机是1和2,这两个电机一个加速一个减速就导致了俯仰角的变化,那么这两个电机只需要加上油门的大小,和俯仰角的pid输出,和偏航的输出,为什么还要加上横滚的pid输出?

moto1 = throttle - ID_ROL.OUT + ID_PIT.OUT - ID_YAW.OUT; 
moto2 = throttle + ID_ROL.OUT + ID_PIT.OUT + ID_YAW.OUT;  
moto3 = throttle + ID_ROL.OUT - ID_PIT.OUT - ID_YAW.OUT;  
moto4 = throttle - ID_ROL.OUT - PID_PIT.OUT + PID_YAW.OUT;
作者: maxuejia    时间: 2013-10-6 17:14
我知道了,楼主用的是x模式啊
作者: Creas_Tall    时间: 2013-10-6 17:53
回复【52楼】maxuejia:
---------------------------------
对的
作者: maxuejia    时间: 2013-10-6 17:57
楼主,你试过+模式没?+模式有啥缺点?没看见几个人用+模式啊。
作者: Creas_Tall    时间: 2013-10-6 18:31
回复【54楼】maxuejia:
---------------------------------
资料显示+模式没有x模式灵活
作者: 分析    时间: 2013-10-6 18:51
 恭喜恭喜
作者: eezhenggx    时间: 2013-10-6 19:18
http://v.163.com/movie/2013/6/K/4/M90KU15HG_M90KUKOK4.html
这个可以翻跟斗的,也不错。可以往这方面发挥

作者: Creas_Tall    时间: 2013-10-6 19:27
回复【57楼】eezhenggx:
---------------------------------
嗯,目前正在写定高的程序,等有GPS然后定点,之后就可以弄一些特技了
作者: maxuejia    时间: 2013-10-7 21:32
楼主,调参好费劲啊,一个轴上的电机,我怎么调都振荡,并且感觉他的平衡点还不是水平的,我的姿态解算应该是有效的额。

还有怎么确定参数的大致范围,我弄不清他是几十还是个位数还是精确到几位小数啊。

作者: a546924171    时间: 2013-10-7 22:38
回复【19楼】正点原子:
---------------------------------
回复【58楼】Creas_Tall:
---------------------------------
LZ的板子貌似是淘宝的宙斯科技的ZEUS战舰开发板呀?
作者: Creas_Tall    时间: 2013-10-7 22:45
回复【59楼】maxuejia:
---------------------------------
我的机架是x240大小的,我是这样估计pid大致范围的;
1.我的油门行程:moto=0-4000,对应1ms-2ms的脉宽;
2.P的大致范围估计:先随便给我P的值,然后倾斜机体45度左右,这时moto就会产生变化量,如果变化量在200到300之间,那么这时的P就是正确的大致范围;
3.I和D是相同的方法;
机架大小,可能影响机体的重量,如果机体更重一些,那么给定P时,moto的变化量就有可能要大一些,300到400都是有可能的,同理小的机架,moto的变化量就要小一些
调零问题:
“并且感觉他的平衡点还不是水平的”
可以重新调零:将机架放到平整的地面,每旋转45度,记录一下个方向的角度,直到旋转了一周,可以得到8组数据,求平均值,得到的角度的平均值就是零偏;
作者: Creas_Tall    时间: 2013-10-7 22:46
回复【60楼】a546924171:
---------------------------------
不是呀
作者: Creas_Tall    时间: 2013-10-7 22:50
回复【60楼】a546924171:
---------------------------------
我明明 在原子这里买的呀,宙斯科技怎么也有和原子一样的板子呢?
作者: 正点原子    时间: 2013-10-7 23:02
回复【63楼】Creas_Tall:
---------------------------------
这家伙几乎把我店铺的东西抄了个遍...
作者: XINSI    时间: 2013-10-7 23:43
回复【64楼】正点原子:
---------------------------------
呵呵,看了哈,他说他的事兼容板
作者: XINSI    时间: 2013-10-7 23:43
回复【64楼】正点原子:
---------------------------------
便宜一点点。。。
作者: shzb9999    时间: 2013-10-8 08:01
挺牛!
作者: fengshu426    时间: 2013-10-8 08:27
回复【楼主位】Creas_Tall:
---------------------------------
真牛啊!也准备做四轴呢,有时间请教一下,呵呵!
QQ:942165166
作者: tian123chi    时间: 2013-10-8 10:40
回复【25楼】maxuejia:
---------------------------------
他这边没用I,所以位置式有优势,当然我见过的都是位置式,哈哈!
作者: xujiangyu0619    时间: 2013-10-8 18:14
航模在哪儿买的啊? 大概多少钱?
作者: Creas_Tall    时间: 2013-10-8 18:23
回复【70楼】xujiangyu0619:
---------------------------------
http://item.taobao.com/item.htm?spm=a1z10.3.w1017-3464691284.34.L7ia8n&id=16640276673&
这个店买的机架
电机是A1510,
电调是FLYFUN-10A
作者: Creas_Tall    时间: 2013-10-8 19:44
回复【68楼】fengshu426:
-------------------------------
218425799,加这个群嘛,我刚刚建的,以后一起讨论
作者: 不后悔wk    时间: 2013-10-9 00:33
楼主,你那个MPU6050,MS5611,HMC5883L传感器在哪买的呢?
作者: Creas_Tall    时间: 2013-10-9 08:34
回复【73楼】不后悔wk:
---------------------------------
http://item.taobao.com/item.htm?id=16784456286
作者: lya126    时间: 2013-10-9 08:54
牛x的楼主,向你靠拢。。。。
作者: liuyongliuyong    时间: 2013-10-9 12:17
厉害
作者: maxuejia    时间: 2013-10-19 10:57
我先调两个电机,再调另外两个,都调好了,但是放在一起还是振荡,这应该咋办
作者: kassandra    时间: 2013-10-19 14:01
回复【14楼】maxuejia:

回复【11楼】Creas_Tall:
---------------------------------
你的pid程序是增量式的还是位置式的?能贴出来看看么?

---------------------------------
普遍都是增量式的吧
作者: maxuejia    时间: 2013-10-20 12:43
楼主,还有个问题哈,十字的,先调俩电机,能平衡,但是增加转速,四轴又乱晃了,这该咋办?
作者: 霹雳华    时间: 2013-10-20 18:18
牛人是也。。
作者: Creas_Tall    时间: 2013-10-23 08:30
回复【79楼】maxuejia:
---------------------------------
两个调好了,然后再调四个试试,加速会乱动是正常的吧,好像是被绑着的原因
作者: maxuejia    时间: 2013-10-23 17:08
回复【81楼】Creas_Tall:
---------------------------------
楼主,我有点怀疑是我四轴硬件的问题了,我放到桌子上,增加转速,增加到40%时,震动的太厉害了,显示的姿态全乱了。

我再试试,不行就做个微型四轴。
作者: Creas_Tall    时间: 2013-10-23 18:09
回复【82楼】maxuejia:
---------------------------------
微型的也可以呀,不危险
作者: 木晨    时间: 2013-11-7 15:01
大概看了下那个pid视频,楼主有那个上位机不
作者: Creas_Tall    时间: 2013-11-7 22:05
回复【84楼】木晨:
---------------------------------
没有,我没有用上位机调pid
作者: arm51avr    时间: 2013-11-8 12:00
我们想看电路板的照片
作者: Creas_Tall    时间: 2013-11-8 16:33
回复【86楼】arm51avr:
---------------------------------
最小系统做的
作者: 祝锦烨    时间: 2014-4-3 17:52
竟然在这里偶遇理工校友!还是同专业的!师兄现在想必都毕业了哈!
作者: duowanjacky    时间: 2014-4-3 19:08
mark!!
作者: 别的城市    时间: 2014-7-7 13:48
楼主强人啊,求带
作者: 页木鸟    时间: 2014-7-15 11:10
mark!!!
作者: d_rhasta    时间: 2014-7-16 14:18
来顶一下!!
作者: 钢铁侠    时间: 2014-7-18 13:11
回复【4楼】Creas_Tall:
---------------------------------
悬停可否加个超声波测距模块,距离一般只有3m,高度低于1m,启动悬停模式,这样可否?
作者: LIUYABO    时间: 2014-11-1 22:44
只能是羡慕下
作者: sevekwl    时间: 2014-11-2 01:41
我比较关心你的遥控器手柄是从哪来的?
我也在搞这东西,但是遥控器手柄是个问题,总不能拿着原子哥的开发板加游戏手柄跑出去试飞吧?
作者: woi314ow    时间: 2015-2-25 20:39
一直有一个东西不懂,那就是大家做出来的姿态检测工具到底会不会受到加速度变话影响
作者: 流浪者转世    时间: 2015-3-8 17:36
楼主我也想做一个四轴想画一个pcb板,求楼主一份原理图!!!1
作者: myb13149251    时间: 2015-4-22 21:43
mark>>>>>>>>>>>>>>>
作者: wdhywzzc    时间: 2015-5-6 19:16
太给力了,激起了浓厚的学习兴趣。
作者: cornrn    时间: 2015-5-7 08:27
大概能飞多长时间啊? 我现在飞的时间太短,想搞个信浓的好电机,结构平衡可能需要匹配好,这样算法就会好做点,不知道想法对不对
作者: wjfhsym    时间: 2015-5-7 14:27
楼主你好,我刚开始做这个,小四轴外形X形,支架最大尺寸10*10。MCU 是STM32F103RF,空心杯电机7*20,驱动芯片SI2302,暂时还没有上陀螺仪 气压等传感器。只是测试 通用定时器PWM输出,顺时电机配2正桨,逆时电机配2反桨,现在的问题是,PWM占空比可以调整,电机转速也有变化,但无论怎样都无法升起来,最多就是在桌面上抖动。我在网上看到说,空心杯电机只需要用PWM调速 而不需要电调,也有其它不同意见,自己刚准备做小四轴,没有经验。麻烦你分享下你的经验。




欢迎光临 OpenEdv-开源电子网 (https://www.openedv.com/) Powered by Discuz! X3.4