选择用《树莓派来开发自稳三轴无刷云台》,这个非常折磨自己的题目来做在职研究生论文方向,我当时一定是脑温超高了。光在题目上我就给自己挖了两个坑,1.用树莓派,为啥不用单片机?因为别人都用单片机,我就不用,我当初就是用这个SB想法睡服自己的,现在天天睡不好了。2.三轴,搞个2轴不好吗?一个轴都很难搞好吗。真是佩服自己敢逞大能作大死。到现在截稿日期快要到了,还没做出来啥,我已经做好了研究生必挂的决心,但是这个题目还是想做下去。而且给自己立了更大的FLAG,做中国自己的开源(哪怕是照抄也得抄明白儿的)。
这个题目最大的难点是什么?网上资源少(相对于自平衡小车来说),开源项目都是国外,没有详细的讲解,导致其中体现出的控制原理不能理解。而且国内能搞清楚这个东西的人真的是不多,知乎上问了都没有人回答。不过更可能是会的人都在开发商业云台,也就没人在做开源项目。
不吐槽了, 下面严肃的说一下摆在这题目面前的第一个难题吧:电机控制。云台大都采用无刷电机,你在百度上搜索无感无刷云台电机控制,90%的文章都是告诉你利用反电动势过零点来控制电子换向,好消息是这90%文章你都不用看,这类都是电机高速运动的控制方法,目标是让无刷电机转的越快越好,除非你是打算研究电调。但是云台上的电机,是转的很慢的,角速度每秒可能就是几度或者零点几度。坏消息是剩下的10%的文章里面都是讲FOC(高大上且难的矢量控制,而且还得配编码器)。但是很多开源项目都没有用到编码器啊。就我目前收集的信息,开源大都采用三路正弦波驱动的方式,也就是无刷电机的三相分别输入三相相位相差一百二十度的正弦波电压,那么无刷电机就会转。这里讲一下大概的原理:三路正弦波会在电机的定子绕组上生成一个旋转的磁场。但是电角度经过360°,电机并不会转360°,只会转过一定的角度,这个角度和电机的极对数有关,每当经过这个度数,电机的定子与转子的位置关系就会出现重复,然后继续通三路正弦电压,那电机就会继续旋转。但是如果从一个瞬间取个三个电压值,然后按照这个值不变的给电机通电,电机会怎样,电机就固定在一个位置了,旋转的磁场不转了,固定在那里了,电机也就不动了。那么这样我们把电压的波形离散化,我们就假设把一个周期的正弦波离散成360个点,1度一个点,就会得到360组 三相电压的数据。通过每次给电机一组电压值,不就能让电机一次只转动一点了吗,具体是多少度,比如说极对数是9:12的电机,电角度转360°,电机转60°,那么60°/360=1/60°,这样就能让电机能以非常慢的速度和非常高的精度来转动了吧。而且转速也能控制,通过给电机电压数据之间的延时不同的值来实现。怎么样?是不是666,我也觉得是,索性马上购入装备进行测试,pwm生成器我选择的是NXP的PCA9685,是一个能提供16路12位精度的PWM的芯片,淘宝上有现成做好的树莓派扩展板,电机驱动芯片采用的是TI 的DRV8313。搭好线,编好程,实测,效果不好,1.PWM波形失真;2.电机发热严重 ;3噪音很大 ;4旋转不顺畅,有卡顿 ;5转速真的很低,但是却高不上去。这些天我就在寻找这些问题的原因。目前就卡在这里了。
论坛上发了求助帖,无人回答。没办法还是老老实实学习开源吧,毕竟人家是经过实践验证的方法。我打算从德国的开源项目BruGi开始研究。接下来的文章我就试着读读他的源代码,做做简单注释,如果大家感兴趣一起来啊。
BruGi代码版本:BruGi_050_r217 下载地址:点我点我点我
网友评论