3

我正在尝试构建一个两轮平衡机器人来取乐。我已经构建并组装了所有硬件,并且我认为我也对其进行了编码。我正在使用带有陀螺仪和加速度计的 IMU 来找到我的倾斜角度,并带有一个用于平滑信号的免费滤波器。来自 IMU 的输入信号看起来非常平滑,小于 0.7 方差 + 或 - 实际倾斜角。

我的 IMU 采样率为 50 Hz,我也以 50 Hz 进行PID计算,我认为这应该足够快。

基本上,我使用的是 PID Library 中的PID 库

当我将 P 值设置为较低的值时,车轮会朝正确的方向前进。

当我将 P 值设置为较大时,我会得到类似图表的输出。

在此处输入图像描述

4

4 回答 4

1

正如 Praks 所写的那样,您的系统看起来要么不稳定,要么可能略微稳定。

一般来说,两轮机器人很难控制,因为它们在没有控制器的情况下本质上是不稳定的。

我首先会亲自尝试使用 PD 控制器,如果您在设定点精度方面遇到问题,我会使用 PID,但请记住,如果您想在控制器(D 部分)中获得微分增益,那么您非常重要有一个非常流畅的信号。

此外,控制器的值很大程度上取决于您的硬件设置(机器人的重量和重量分布、电机系数和电压水平)以及您在软件内部用于控制信号的单位(例如 mV V、度/弧度) )。这意味着任何人几乎不可能为您猜出正确的参数。

控制工程师可以做的是制作机器人的数学模型并分析极点/零点位置。

如果你对控制理论有任何经验,你可以看看下面的论文,看看它是否对你有意义。

http://dspace.mit.edu/bitstream/handle/1721.1/69500/775672333.pdf

于 2013-05-29T02:28:52.710 回答
1

从图中看起来您的系统不稳定。我希望您在直接进行调整之前已经测试了机器人的每个子系统。这意味着传感器和执行器都正确响应并且具有可接受的错误。一旦每个子系统都针对外部误差进行了正确校准。你可以开始调音了。完成此操作后,您可以从 P 的有效值开始,可能是 (0.5) 以首先获得适当的响应时间,您需要在这里进行一些试验,它们会缓慢增加 I 以减少稳态误差(如果有),并且仅在以下情况下使用 D需要(在振荡的情况下)。我建议一一处理 P、I 和 D,而不是一次调整所有内容。此外,在测试期间,您需要持续监控传感器和执行器数据,以查看它们是否在可接受的范围内。

于 2013-05-23T14:00:59.850 回答
1

PID 调整有许多启发式规则,但大多数人没有意识到 PID 调整不应该是一个启发式过程,而应该基于数学和科学。

@Sigurd V 说的是正确的:“控制工程师可以做的是建立一个数学模型......”,这可以变得像你想要的那样复杂。但是现在有很多软件工具可以帮助您自动执行所有数学运算并轻松获得所需的 PID 增益。

假设您的所有硬件都处于良好状态,您可以使用免费的在线工具(如PidTuner)输入数据并接近最佳 PID 增益。我个人使用过,效果不错。使用这些作为起点,然后在需要时手动调整。

于 2019-10-07T11:05:46.390 回答
0

如果您还没有,我建议您搜索术语Arduino PID(很明显的建议,但很多人已经走上了这条路)。我记得在编写 PID 库时,作者发布了很多教程等(示例)。我也遇到了这个PIDAutotuneLibrary

我编写了自己的 PID 例程,但也进行了时间调整,但从未完全正确。

于 2013-05-23T10:55:31.043 回答