我正在开展机器人项目,涉及控制大型机器人手臂的位置。建议是使用双PID循环,我想知道这涉及到什么。
正如我所描述的那样,第一个PID循环应该处理手臂的速度(因为它预计会很重且很长,因此“更难”控制)然后是第二个来控制手臂的位置将其值输入第一个PID。
我之前使用过PID,按照wikipedia上提供的表来校准循环。 (AKA:不要以为我将能够使用复杂的方法来校准循环)
所以我正在寻找一些很好的资源来帮助我们如何校准循环,还有一些关于如何使其工作的信息(伪代码),以及这是否是一个好主意。
答案 0 :(得分:3)
大多数机器人手臂具有用于控制电机扭矩的低水平电流回路,用于控制速度的另一个低水平电压回路,以及用于控制电机位置的更高水平位置回路。在可能的范围内,您需要设置一个前馈系统,以考虑重力和摩擦等已知效应。您希望低级循环尽可能快地运行。较高级别的位置循环可能稍慢。例如,低电平回路可以以5Khz(每0.0002秒)运行,位置环路为250 Hz(0.004秒)。
答案 1 :(得分:1)
模拟你的循环。我不能强调这一点(特别是如果你将采用手动调整方法)。如果您可以访问它,Simulink就是您的选择。如果没有,还有其他方法可以模拟手臂。
如果你确定两个循环是最好的方法(并且我不相信),那么首先将问题分解为两个不同的控制循环并独立解决它们。作为示例,首先开发速度环以实现和维持具有可接受的控制性能的速度目标。然后,开发一个位移环,以使用少量固定的离散速度来实现和保持位置。
一旦您满意地解决了这两个问题,您就可以使用置换循环来设置速度环的目标。这就是模拟变得至关重要的地方:控制系统将是非线性的(但在应用常数系数PID时,您实际上是在假设一个合理的线性度量)。您通过使用置换环为速度环设置变量目标来复合非线性。时间安排至关重要:在设定新的速度目标之前,位移环必须给速度环一段时间以达到目标目标。
调整将是一个挑战。我通过完全避免调整解决了复杂的PID问题。相反,我使用模拟退火算法来发现最佳PID系数。请注意,这种方法假设了两件事:a)问题可以被可靠地模拟,b)存在客观的绩效标准。