软件底盘功率限制
软件功率限制通过限制电机输出力矩来控制底盘功率,以达到在底盘剧烈运动、实际功率即将超过给定的最大功率时,将实际功率限制到最大功率附近以下的目的。
电机的输出功率为:
Pout=τω(1) 电机的输入功率为输出功率和损失功率的和,可表示为:
Pin=Pout+k1τ2+k2ω2(2) 其中k1和 k2为常数。
我们根据(2)式来实现功率限制。已知:最大功率 Pmax、各电机当前转速 ωreal 和电机 PID 计算出来的原始力矩指令 τcmd 。当 τcmd 将使 Pin 高于 Pmax 时,设有一缩放系数 k,令 τcmd′=kτcmd, 使得 τcmd′ 满足:
Pmax=∑∣ωrealτcmd′∣+k1∑τcmd′2+k2∑ωreal′2 则可由上式计算出 k 的值:
k=2k1∑τcmd2−∑∣ωrealτcmd∣+∑(ωrealτcmd)2−4k1(∑τcmd2)(k2∑ωreal2−Pmax) 最终给电机的力矩指令即为 τcmd′=kτcmd。
k1、k2 的调试方法:实时读取裁判系统反馈的底盘功率。先让底盘电机堵转,调整 k1 使底盘实际功率大致与限制功率相等。再让机器人原地小陀螺,调整 k2使底盘实际功率大致与限制功率相等。
具体的代码实现请点这里。
下图展示了步兵机器人在 静止状态下进入高速小陀螺后再进入慢速小陀螺最后在高速小陀螺状态下进行平移的功率(最上)、速度指令(中间)和实际速度(最下)的曲线,可见在高速小陀螺状态下,功率被限制在了红线附近之下,实际速度比速度指令小,进入慢速小陀螺后,功率降低,此时实际速度与速度指令相等,最后在高速小陀螺状态下平移时,功率依然被限制在了青色线(最大功率)附近以下。