记一次无感 FOC (龙伯格) 调参填坑
文章目录1. 半闭环测试2. 踩坑与破局3. 灵魂拷问为什么有感随便跑无感一闭环就发飙前言最近在用 Simulink 搭小电机的无感 FOC龙伯格观测器。一开始极度崩溃明明开环跑得好好的一接上速度环闭环电机直接跟不上目标。1. 半闭环测试一闭环就炸很容易怀疑是龙伯格观测器算错了。为了锁定嫌疑人我先做了个“半闭环测试”操作 断开速度环直接给电流环输入一个恒定的 Iq 目标值比如 0.5A。结果 电流稳稳跟上Park 变换的 Id 死死贴在 0 轴上龙伯格估算的角度和真实角度完美重合。结论 底层模型、SVPWM、龙伯格核心逻辑 100% 没问题罪魁祸首全在闭环 PI 参数上。去除速度闭环后只输入iq0.5与龙伯格观测器的电动势2. 踩坑与破局在发现龙伯格观测器半闭环没有问题后我开始重新闭环准备大干一场调节速度环的 PI。第一阶段死磕速度环系统狂抖我的第一反应极其自然速度跟不上那就加大速度环的参数呗结果一加大速度环的 P电机直接开始高频狂抖波形像宽面条一样炸裂。折腾了半天我发现在这个状态下速度环的参数怎么调都是死胡同。第二阶段顿悟锁相环 (PLL)用“迟钝”换“纯净”我回过头去看观测器发现算出来的角度在疯狂发散。这时候我才意识到我之前给的 PLL 参数太大了P 给到了两百多致命误区很多人以为 PLL 参数大反应快是好事其实不然P200 导致带宽极大它对反电动势里的 PWM 开关噪声和采样毛刺极度敏感。它毫无延迟地把所有噪声全吃进去了吐出来的是一把全是毛刺的速度信号。对策我果断把 PLL 的 P 砍到了15I 砍到了250。虽然这在物理上引入了一丁点相位延迟但这层延迟就像一堵防波堤完美挡住了高频噪声。调整完后波形终于勉强维持住了不再全屏乱飞。第三阶段幕后黑手竟是电流环但是死胡同又来了角度稳住了但我接着去微调速度环的 PI发现还是没用不管怎么调速度总是像挤牙膏一样死活贴不上目标线一直再震荡。这时候我才恍然大悟外环速度发神经且无力真正的病根在最底层的内环电流回头一查发现我电流环的 P 居然给到了 3 甚至 10这是之前有感开环测出来的理想参数。原因拆解小电机的电感极小P 给到 3 就会引发“大炮轰蚊子”效应。只要有一丁点误差控制器就瞬间拉满极限电压。底层电流环一直在暗中疯狂震荡导致系统永远处于“带病狂奔”的虚脱状态外面速度环想发力也发不出来。终极对策降维打击放弃死磕外环我果断把电流环 P 直接砍到1甚至0.1I 设为20。奇迹出现了底层电流瞬间平滑变成了极其听话的“透明执行器”。之前一闭环就炸、怎么调都跟不上的问题直接被连根拔起3. 灵魂拷问为什么有感随便跑无感一闭环就发飙在把电流环压下来、波形终于稳住的那一刻我脑子里一直有个巨大的疑问之前带编码器有感或者直接用理想角度跑的时候我电流环 P 给到 10 甚至 30电机都像打了鸡血一样跑得飞起。凭什么一换成龙伯格无感观测器P 才给到 3 就炸得六亲不认了1. 有感状态上帝视角绝对纯净真实的硬件编码器或理想角度就像一面“完美的镜子”。它反馈的是纯机械物理量没有任何电气延迟也绝不掺杂 PWM 开关噪声。在这种状态下哪怕你电流环 P 给得特别大把底层的电流搞出了一点毛刺和震荡编码器也根本不在乎它依然会稳稳地告诉你最真实的转子角度。反馈是绝对干净的所以系统容错率极高“你强任你强”。2. 无感状态左脚踩右脚的死亡螺旋无感观测器其实是个“瞎子”它没有任何外部传感器全靠采集电机线圈里的相电流和电压来反推角度。这就带来了一个致命的问题你的控制信号和测量信号被死死绑在了同一根线上一旦你在无感状态下把电流环 P 给大了就会发生极其恐怖的连锁反应P 太大→ \rightarrow→产生电流微小震荡电噪声。观测器吃进带噪声的电流→ \rightarrow→算出一个发抖的错误角度。发抖的角度被送给 Park 变换→ \rightarrow→拆分出严重错误的 Id 和 Iq。巨大的 P 看到错误的 Iq→ \rightarrow→瞬间输出更暴力的极限电压去纠正。结果→ \rightarrow→制造了更大的电流震荡。