liu443
大家好! 我现在有一个应用,现在驱动器工作在速度模式(因为应用环境的问题必须工作在速度模式)
我自己做了一块运动控制板,想用它来做位置控制,根据给定的位置,让运动控制板将每时刻的速度
根据S曲线算法解算出来,然后发送给驱动器,我想通过这样来实现精确的位置控制,但是不知道怎么
去实现它,难道用测量码盘来进行闭环控制? 具体怎么实现呢? 谢谢大家!!!
叫我小白
运动控制器输出模拟量给驱动器,从而控制电机转速,驱动器会反馈脉冲作为位置反馈. 这样就形成了闭环.
当你控制走S曲线的时候,先计算出每时刻的目标位置来,与实际位置进行PID计算,发送模拟量给驱动器.
刘岩利
不要说 难道,是必须做闭环控制
统一
任何理论上的计算,再经过数字化之后,一定是会有误差的。
顶起来呀 请大家多多指教~
闭环以后,您给出的指令很可能在细节上偏离了标准曲线。这样才能保证实际速度曲线更接近标准曲线。
另外,如果开环的一致性足够好,是否可以考虑在规划中补偿位置偏差?
回复内容:对:刘岩利关于闭环以后,您给出的指令很可能在细节上偏离了标准曲线。这样才能保证实际速度曲线更接近标准曲线。另外,如果开环的一致性足够好,是否可以考虑在规划中补偿位置偏差?内容的回复:
我估计闭环以后 经过pid给出的速度指令就不能满足S曲线了细节上肯定不完美,但是大致应该差不多。实际运动状态和指令之间在细节上一定有差异。您关注的是什么?您想要的是一个完美的指令曲线而不完美的实际动作,还是相反?
谢谢落
1、确定你的定位位移
2、确定你的S曲线等效加减速
3、根据你的S曲线等效加减速算出加速区位移,匀速区位移,减速区位移
4、根据3的结果算出每个PID周期对应位移值
5、根据3,4的结果计算出每个PID周期对应速度值
6、以4,5的结果作为标准S曲线值进行PID调节
这是我做点对点位置控制的波形图,红线为标准S曲线,蓝线为pid调制后的曲线
现在有个问题就是精度不够,比如设置加加速度为200rap,最大速度为1000rap,行走的距离为10000rap,最后误差为几十厘米。我的PID调制周期为10ms。
我的增量PID算法:ptpVar.Vout = piduk + tempV;// + sFF.FFValue; piduk += tempV;
ptpVar.Vout :为实际输出值
piduk :为累计值
tempV:为增量PID计算的值
想请问您一下有没有什么好的提高精度的算法,能给我您的QQ吗? 谢谢!!! 我的QQ:284985160
回复内容:
对: 刘岩利 闭环以后,您给出的指令很可能在细节上偏离了标准曲线。这... 内容的回复!
刘老师, 我现在给伺服电机发送脉冲,10ms发送一次,因为用的arm可以准确发送脉冲个数,想请问控制电机的转速是改变pwm的频率,还是脉冲个数?改变pwm频率,运动比较流畅,对于发送脉冲个数,因为周期可以变,比如发送10ms中发送10个脉冲,这10个脉冲可以在5ms之内发送完,这样后5ms电机是不动的,运动不平顺,但是这种可以准确定位,而改变pwm频率不能准确定位,所以想请问,改变pwm频率怎样准确定位?