我们最近在做有关交流伺服电机的运动控制,目前在做的过程中发现了一些问题,想请教版上的各位大牛,
首先交代下背景,我们目前在用一个松下的200W的交流伺服电机做运动控制,由于我对系统运动的速度曲线有一些要求,不是传统的那种T形 或者S形曲线,所以我采用速度控制的方式,然后利用伺服电机控制器的模拟输入口通过输入模拟电压来控制运动速度,我在运动的过程中利用上位机(工控机)来读取电机尾部的光电编码器的脉冲数来监控电机位移,当我控制输入电压为零时,利用伺服电机钳位功能使电机停止,这时我发现伺服电机反馈回来的编码器脉冲数和我理想要走的脉冲数有一定的偏差,也就是虽然速度基本按照我要求的速度曲线来走,可是运动位移有一定的偏差,这个问题不知道该如何解决。
因此 我有两个问题想要请教版上的高手
(1)伺服电机如何在模拟量速度控制模式下实现精确的位移控制
(2)我看到很多人都说利用伺服电机做PID控制算法,我也看了下伺服电机的控制接线图,其实伺服电机内部可以通过速度环、位置环以及电流环来实现闭环的PID控制算法,一般的控制要求都只要手动或自动调节控制增益来实现伺服电机内部的PID控制,但是我现在想关于伺服电机的PID控制我想拿到上位机来完成,也就是通过编码器检测伺服电机当前的位移,得到速度,然后跟给定的位移、速度比较得到偏差,这个如何形成PID控制,也就是如何加到伺服电机的闭环控制中去?我的理解一般的得到位移 、速度加速度偏差 乘以对应的系数得到的应该是控制力矩?这个如何融入都速度控制模式中去?
希望各位大牛指点下,这个我最近看了好多,也没有找到解决办法,谢谢
另外我目前设置编码器四分频后10000个脉冲代表转一圈,我给定一定的速度曲线。是一个余弦曲线,用这个曲线计算后应该是走4圈,最后接收到编码器的脉冲数只有39500,
回复内容:
对: luoyongsheng123 可能说的太笼统了,上位机先做一个位置控制器,具PID调... 内容的回复!
luoyongsheng123,你好,你说的很对,我觉得应该是这样的,首先将给定的速度曲线计算得到某一时间的理想位移值sk,然后通过读光电编码器得到实时的位移值ask,从而得到实际与理想的位移偏差sk-ask=ek,如果采用增量式的PID控制算法,当前时刻的Vk=Vk-1+(kp*[ek-ek-1]+ki*ek+kd*[ek-2*ek-1+ek-2]),然后利用这个计算的量进行一定的变化得到模拟电压控制量,是这样的吗?我有一个疑问,一般的PID控制算法不都是针对力矩控制的吗?其实如果在速度模式控制下采用PID控制,其实是自身PID控制后,又经过了速度环的PI控制,以及电流环的控制,是这样的嘛?我还就是想问怎么样直接在上位机做闭环控制呢?