首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Arduino平衡四分机

用Arduino平衡四分机
EN

Stack Overflow用户
提问于 2017-03-09 16:21:24
回答 1查看 1.1K关注 0票数 0

我正在做一个项目的自我平衡四分仪与自主控制。我正在使用Arduino Mega 2560和MPU6050。在不需要DMP的情况下,我从MPU6050中获得了辊角和俯仰角,并应用复滤波器消除了振动引起的噪声。

此外,配置和能够运行的无刷直流电机与弗利斯基发射机和接收机的帮助下,Arduino中断。现在,为了平衡,我只关注一个轴(即滚动)。我还建立了一个平衡架,以自由运动的滚轴由电机。

在控制部分,我实现了PID算法。我试着只使用kp值,这样,我就可以平衡,然后转到ki和kd项。但不幸的是,对Kp本身来说,四连飞机正经历着剧烈的振荡,而且根本不稳定。

我的一些问题是:

  • 是否一个PID循环就足够了,还是我们必须再加一个?
  • 我能实现哪种类型的调优方法,找出kp,ki,kd以外的试错?
  • 我编写了1000到2000微秒的ESC程序。我的PID输入角将在+/- 180范围内。我是否可以直接设置PID输出限制范围-1000至1000或-180至180或任何其他值?

代码可以从URL https://github.com/antonkewin/quadcopter/blob/master/quadpid.ino中读取

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-26 09:18:57

由于没有提供,我假设:

  • 循环时间至少为4ms。(越少越好)
  • 传感器噪声降低到一个可接受的水平。
  • MPU-6050需要将gyro+accel数据组合起来以获得角度。

如果不注意以上各点,就不会平衡自己。

最初,您可以不调优kI就可以逃脱。因此,让我们关注kP和kD:

  • 继续增加Kp,直到它开始快速振荡。保持Kp值的一半。
  • 在设置了kP之后,开始试验kD值,因为它将试图抑制kP的超调。
  • 围绕这两个价值观,调整它以达到完美。

注意,陀螺数据越精确,您可以将kP设置得越高。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42700393

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档