半个月没啥进展

上次说到减小重力传感器的读数权重,得到了比较好的角度波形图。充满希望的去试飞了一次,结果还是非常不稳定。
正好这两周很忙,这件事情就被搁置了,正好有时间仔细的回想思考问题。

这次又发现了一个潜在的可能原因,就是控制电调(电子调速器)的PWM频率。当时看说明书,提到电调需要工作在50Hz的PWM条件下,这样一来,实际上我费尽心思把角度读数采样提高到350Hz是没有意义的,因为读7次角度后才会修改一次电机转速。

刚才搜到了一篇文章,提到了以下内容(来自5imx
控制频率低,普通电调在设计的时候大多考虑的是标准PWM(PPM)脉宽,而标准PWM(PPM)的控制频率只有50Hz即20ms一个周期。虽然标准的PWM只有50Hz的控制频率,但多数电调都能工作在比这个高的多的范围内而不会有任何异常。在我们测试过的电调中,它们基本上都能很好的工作在200Hz到300Hz的控制频率上,但这个频率只能满足一般的需求。

这样说来,适当提高PWM的频率还是有点希望的,但是这个是不是问题的罪魁祸首还不能确定,只能改改看了。
之前做磁悬浮的时候,曾经找过资料,可以把Arduino的系统PWM提高到1000Hz以上,所以看上去比较稳定。但是这个系统的PWM用在四轴上却有点问题,因为电调的转速区间很小。对于50Hz(20毫秒)的PWM来说,控制转速的区间大约在0.9ms到2.1ms之间。对应的Arduino的PWM值范围是12到26之间,也就是说从最低转速调到最高转速,只有14级的范围。这个跳跃的范围有点过大了,而且从我实测的经验看,19还飞不起来,20可能就已经飞的很高了 :(

所以这次还需要对程序进行比较大的修改,同样需要在代码中直接用DigitalWrite操作PWM输出,希望这次能有好运!



对 “半个月没啥进展” 的 22 条 评论

  1. grapeot 说:

    一直在关注博主的网站,很钦佩您的动手能力并在努力学习中。看到这里想提醒一下,就是有个网站也是做四轴飞行器的:http://aeroquad.com/,里面有完整的开源控制代码,还有详尽的文档。也许可以参考一下。当然您可能早就知道了,只是提醒一下~

  2. Allvie 说:

    自从一个偶然的机会发现博主的站,每天都会上来看下,特别是当博主开始摆弄四轴,来的更勤了,看博主的文章,还有相关的评论,受益良多.
    最近也准备搞四轴,和博主差不多的方式,arduino+9DOF+气压+超声波,然后用个小路由WR703来通信,这样视屏传输可以一起解决.arduino和wr703是之前造小车时使用的.
    之前网上找开源的四轴源码,无意中在淘宝code发现了博主的四轴源码,虽然很久没更新,但从中也学习了很多,之后会大量借鉴,博主莫怪,哈哈.
    现在在研究arduino开源四轴Multiwii,源码: https://code.google.com/p/multiwii/, 博主使用的传感器都有支持,推荐博主看看,或许可以从中获得点灵感.

  3. SSS_SXS 说:

    动力男孩,榜样的力量啊,哈哈,带动了那么多志同道合的兄弟

  4. 猪头 说:

    要不是楼主…我还立不出一个项目呢…(^-^)虽然我觉得我们的项目比四轴飞行器要简单…不过还是要争取个科研资金……

  5. ENIAC 说:

    看无线电上说商品电调有控制延迟,就是反映比较迟钝,是怎么回事?

    • 哦?这个之前倒是没注意到,请问有详细的介绍吗?

      • ENIAC 说:

        在无线电11年12期,有这个四周飞行器的制作。。
        概括一下原话:
        要保持平衡就要求电机转速在四周飞行器倾斜时迅速调整,商品电调里的PID恰好阻止了这个过程的发生,转速可以快速提高,可要想降下来,就得等0.2秒,这时即使通知电调降低转速也没有效果,所以一旦倾斜,就会不停的晃来晃去。。

        特意留意了一下这个,可能您半个月没啥进展的问题就在这里!
        另外,我是个小P孩,今年14岁,也爱好这个,很想认识一下您。

        • 哈哈,原来是小朋友!你说的这个太重要了,如果转速调节延时的话,我们费尽心思的采样和PID就没意义了,0.2秒已经是10个控制周期过去,早就倾斜十几度了。
          我查查资料,多谢!

  6. ENIAC 说:

    如有不对,请指教。

  7. ENIAC 说:

    我在西单住’。。。。。

  8. ENIAC 说:

    嘿嘿。。。^_^

  9. ENIAC 说:

    可能这是问题的罪魁祸首。
    无线电上还说要自己焊个I2C(I方C)的电调。您可以看看这期杂志。
    我拿回看见这玩意就很想DIY一台玩玩,可惜我的单片机技术还不够,我想先做个磁悬浮试试。。
    +个QQ认识一下^_^2425014157^_^

    • 我找到这个文章了,但是看了下,很多玩家用普通电调也能飞四轴,我怀疑电调可能有设置的方式,可以去掉这种延时。
      I2C电调貌似比普通电调贵很多,我先调研一下。
      至于QQ真是抱歉了,平时很少用聊天工具,上班的叔叔们伤不起啊 :)

  10. ENIAC 说:

    我想做一个能浮地很高的磁悬浮,最好还能是动态会跳舞的,是不是就应该用一个很大磁力、直径大的汝磁磁钢的磁铁地盘和电流很大的放大器和线圈?

    • 你需要悬浮多高呢?
      我的这个磁悬浮里,悬浮高度比较低,距离线圈只有2cm左右。
      实际上我的线圈是坐在环形磁铁上面的,如果用一圈小钕铁硼磁铁,线圈布置在里面,悬浮高度应该可以到4~5cm。
      当然磁铁和线圈电流再大点确实可以推的更高。在科技馆见到过比人还大的地球仪,就是用巨大的线圈推的。
      至于跳舞,这个很有意思,你打算让这个小设备带电源上去还是怎么样呢?
      目前我的磁悬浮稳定区域还是挺有限的,大概只有1cm左右的直径范围,如果晃动剧烈了就会飞到一边,我觉得加大线圈距离和电流可以扩大稳定范围。

      另外,我用的电源就是普通的2A的笔记本电源,如果你想玩个大的,估计要专门配个好电源吧

      • Conffge 说:

        其实悬浮高度很好解决。我用的是80MM内径的磁铁,悬浮高度也达到了近10cm,但是控制力不行啊,还得调高线圈就着。如果想要实现跳舞功能,悬浮范围很难解决,我演示的时候也尝试过,但是一旦偏离中心太远,就已经很不稳定,更别说还要进行别的运动了

        • 总结的好,这个磁悬浮方案里,陀螺和大磁铁的距离其实还是挺大的,主要还是线圈的作用力范围比较小,只能把线圈搭在磁铁上,这样一来,可见的悬浮距离就很小了。

  11. ENIAC 说:

    就是好需要更大磁力的磁铁和更大的线圈,我用喇叭上120-80-20mm的磁铁用手拿着磁钢就只能浮4–5厘米,显然不行啊。还得有更大的磁铁,当然线圈的磁力控制范围也得跟的上…

发表评论

可以使用下列 XHTML 标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>