032、摩擦补偿与重力补偿
2026/5/8 16:47:22 网站建设 项目流程

032、摩擦补偿与重力补偿

从一次半夜的调试崩溃说起

凌晨两点,实验室的空调早就停了,我盯着示波器上那条死活过不去的速度曲线,差点把键盘砸了。那是一个六轴协作机器人的末端执行器,低速运行时总在零点附近抖得像帕金森病人,速度指令给到0.01 rad/s以下,电机就开始“咔咔”响,位置误差来回跳。我试过调大PID的积分项,结果积分饱和让系统在换向时直接飞车;试过加死区,精度又完全没法看。折腾到天亮,终于意识到——这不是PID能解决的问题,是摩擦和重力这两个“隐形杀手”在作祟。

后来我花了整整一周,把摩擦补偿和重力补偿的模型从理论推到嵌入式实现,才把那条曲线压平。今天这篇笔记,就把这些坑和解决方案原原本本写出来。

摩擦补偿:别被库伦模型骗了

很多教材上来就给你库伦摩擦模型:F_f = μ * N * sign(v)。这个模型在理论推导里很漂亮,但放到实际电机上,你会发现自己被坑得很惨。

真实情况是什么?低速时摩擦不是常数,而是随速度非线性变化的。Stribeck效应会让摩擦在从静摩擦切换到动摩擦时出现一个“凹陷”,这个凹陷恰恰是低速抖动和爬行现象的根源。我调试的那个机器人,在0.005 rad/s附近,摩擦系数突然下降,导致系统等效阻尼变小,PID控制器以为误差在减小,实际是摩擦在“帮忙”,结果一过这个点,摩擦恢复,系统又需要更大的力,来回震荡。

别这样写代码:

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询