今天看了几套网上闭环开源方案在PID方面的源代码 总结下来是
最早期的代码直接单环位置控制
有的有位置控制和速度控制 但是并不形成双环 只是可以配置电机用在哪种场景
有的是把位置误差和速度误差直接相加 然后做单环PID
比较复杂的方案是位置差距较远时 双环位置速度控制 但是接近目标时切换到单环位置控制(但如果跟不上造成位置偏差大就是失败 跟上了又等于纯粹单环了 。。。感觉双环只在救失步时候用上)
面对复杂情况 有使用保守的 主要只用Kp的 有做了自整定的 还有及时重置控制参数的
可见闭环步进如果需要用到复杂场景上也并不容易 纯粹搬伺服电机的控制理论并不适用 虽然“用恰当的速度到达恰当的地方”听起来不错 但就现在一般运动控制器和步进电机的协议而言 还缺了“恰当的时间点”和“恰当的前瞻”的信息
算法的事情还需要考虑 但是忍不住布局了硬件规划
MCU用AIR001 引脚恰恰够
驱动用A4950或兼容的
磁编码器用MT6701
输入使用MCU的正交编码器 目前网上没有用STM32正交编码器 纯硬件计数“方向”“脉冲”的方案 因为那不是正交编码 但我想到了个绝妙的主意 利用STM32定时器异或功能先异或“方向”和“脉冲” 然后使用输入过滤器进行延时 延时后的信号和“方向”“脉冲”任一方就变成正交编码了 只是一次计数两倍
使用串口进行设置 不用什么按钮和OLED 并且尽量就不需要设置
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |