对于机器人控制,还有一个很重要的部分就是电机控制。本篇博文以单电机带单杆为对象进行说明。其中观测器为提高机器人的鲁棒性。
注意本篇博文认为控制力矩=输出力矩,也就是说驱动器是完美的。 因此就不考虑整体模型的电气部分,只考虑电机的运动模型和控制器模型。
同时本篇博文在机器人的运动控制中认为,连杆质量和惯性是微不足道的,不会影响独立运动控制性能,也就是说本篇博文考虑的是属于分散式控制——Decentralized Control。
电机建模
考虑减速比Gr,噪声Tdis,转动惯量Jm和粘滞摩擦D的电机模型如下图所示:
在实际控制中,粘滞摩擦的影响比较小因此可以不考虑。
下面讨论控制相关,有关PID控制的基础可以参考->【运动控制】经典控制理论——PID控制
位置控制
这里使用PD控制器对电机进行控制。控制框图如下所示:
PD控制器的比例增益和微分增益的选择将会影响到控制系统的阻尼状态。
为了观察方便这里不考虑Tdis,以下图片橘色为指令,蓝色为实际。
-
过阻尼 Kv>2*sqrt(Kp)
-
欠阻尼 Kv<2*sqrt(Kp)
-
临界阻尼 Kv=2*sqrt(Kp)
实际控制中可以根据自己的需求选择不同的状态。
观测器
以上是没有考虑干扰的情况,如果考虑干扰的时候,控制效果如下图:
可以看出噪音的干扰十分明显并且强烈!
仔细观察位置控制的控制框图可以发现,只要通过设计观测器,Tdis可以被估计出来并且用于前馈减少Tdis的影响。
依据此思路设计出观测器,并且仿真。
可以看出控制系统受噪音的影响大大减少!
并且估计出的Tdis如下图所示:
力控制
既然观测器能够估计出干扰(一般为摩擦力),那么如果将摩擦力辨识出来,那么观测器就能估计出施加在电机上的外力,那么可以直接用观测器进行力控。
这里假设环境为弹簧阻尼模型。
力控制器为P控制器(减少噪声的影响)。
仿真条件:
- 环境刚度为1000,环境阻尼为 2*sqrt(1000)
- 目标力:1N
可以看出电机能够追踪1N的力指令,但是存在干扰,这是因为观测器往往由于加入了滤波器或者参数模型不准确导致观测出的干扰和辨识补偿的干扰不完全相同,对指令力造成了干扰。因此力控并不是容易的,最好还是使用力矩传感器进行力的测量。
电机位置为: