gpt4 book ai didi

robotics - 四轴飞行器PID Controller

转载 作者:行者123 更新时间:2023-12-01 17:10:24 25 4
gpt4 key购买 nike

上下文

我的任务是为室内飞行的微型四轴飞行器设计和构建速度 PID Controller 。四轴飞行器飞行的房间配备了基于摄像头的高精度室内跟踪系统,可以为四轴飞行器提供速度和位置数据。由此产生的系统应该能够接受每个轴(x、y、z)的目标速度并以该速度驱动四轴飞行器。

四轴飞行器的控制输入是横滚/俯仰/偏航角度和高度的推力百分比。

我的想法是为每个轴实现一个 PID Controller ,其中 SP 是该方向上的所需速度,测量值是跟踪系统提供的速度,输出值是滚动/俯仰/偏航角,分别是推力百分比。

不幸的是,因为这是我第一次接触控制理论,所以我不确定我是否朝着正确的方向前进。

问题

  • 我了解基本的PID Controller 原理,但仍然我不清楚它如何将速度(米/秒)转换为滚动/俯仰/偏航(弧度)仅通过求和误差并乘以常数?是的,速度和横滚/俯仰成正比,也是如此意味着通过乘以正确的常数会产生正确的结果?

  • 对于垂直速度 Controller 的情况,如果速度设置为 0,四轴飞行器实际上应该保持其高度,而不上升或下降。如何将其与PID Controller 集成,使得当误差实际上为0时推力值不为0(应该保持悬停,而不是下降)?我应该在输出中添加一个常数项吗?

  • 系统实现后,什么是好的方法调整PID增益参数?手动试错?

  • 系统开发的下一步是添加一个附加层位置 PID Controller 将所需的设定值作为设定值位置(x,y,z),测量位置由室内提供跟踪系统,输出为 x/y/z 速度。这是一个好方法吗?分离这些 PID 控制层的原因是该项目是促进可重用性的更大框架的一部分。仅使用单层 PID Controller 直接将位置坐标作为设定值并输出横滚/俯仰/偏航/推力值会更好吗?

最佳答案

  • 这就是基本想法。理论上,您最终可以在系统中使用几个常数来从一种单位转换为另一种单位。就您而言,您的 P、I、D 常数将隐式包含正确的转换因子。例如,如果在理想化系统中,您希望通过 P=0.5(以度为单位)的反馈来控制角度,但您所能访问的只是速度,并且您知道 5 度的倾斜会产生 1 m/s,那么您会对 P Controller 进行编程,将测量到的速度乘以 0.1,结果将作为角度的控制输入。
  • 我认为最好的方法是实现一个 SISO PID Controller ,不是基于高度 (h),而是基于垂直速度 (dh/dt),并以推力百分比作为输出,但我对此不确定。<
  • 不幸的是,如果您对参数没有预先了解,那将是唯一的方法。我推荐一个即使四轴飞行器坠毁也不会造成太大损害的环境......
  • 这听起来是个好方法

关于robotics - 四轴飞行器PID Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21093419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com