已经写好能让电机开环运转和读取磁编码器数据的代码 并进行了数据采集和分析
目前实验的是最便宜的AS5600 这玩意其实不合适用在闭环驱动里 原因主要不是它精度比MT6701少两位 而是它慢 非常慢 采样和稳定时间都是最快次毫秒级 而我预期的计算周期仅仅是几十微秒 但是它价格只有MT6701的几分之一 慢速低精度非FOC控制的可以用它
径向充磁的磁块我没有粘好 只是靠磁性吸附在电机上 很偏心 再加上AS5600的焊接装配也有误差 我曾想考虑这两个偏心的相对运动模型 但是感觉好难 有点三体的感觉 ..... 此外 我买的磁性不行 AS5600状态认为磁场太弱 我把磁块直接抵在芯片上也不行 还是被认为是个弱鸡磁块 不过还是有角度信息
我配置AS5600 关闭回滞 所有滤波降噪参数打到最低 让它工作在最快最不可靠的状态
再让电机以16细分方式工作 一圈分为3200步 每10毫秒前进一步 并采集磁编码器的结果 并对存下的3200点对应数据进行分析 结论如下:
如此低廉的芯片 恶劣的装配 弱鸡的磁块 几乎没有的滤波降噪 总误差在正负1.5度内 见下图左上
进行移动平均滤除高频误差 明显最大的误差来自编码器 但是并非噪声 而是重现性的 可校正的规律信号 估计主要来自偏心装配 (右上图) 说明装配后的校正必不可少 校正将提高闭环精度
剔除编码器误差后 剩下的误差在0.15度内 (左中图) 取其中512点分析其频谱 主要误差波长在512/32=16 除此之外 其他中频误差少到可以忽略 (右中图) 放大看明显主要是电机齿槽转矩带来的 (左下图) 其实这也是重现性的 可以校正的 校正可以提高开环的精度
其他误差 如电流精度 (我使用8bit PWM) 数学运算精度(三角函数使用整数化的查表法) 驱动精度等等 都几乎无法与上面分析的误差相比 完全可以忽略
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |