发表于:2007-06-29 08:01:00
11楼
位置控制是典型的反馈控制,应该在固定的周期内完成,控制周期越短,控制性能越好,一般都在1-10ms,小于1ms当然更好,只是采用软件控制有点难度。
在过去的DOS环境下,你可以用PC的定时中断来周期性地执行你的位置控制(PID调节); 在Windows环境下,要么用多媒体定时器产生实时定时中断,用其回调函数执行位置控制,要么加一个实时扩展,比如Ardence 的RTX或是TenAsys的INtime到Windows操作系统中,再在RTX的实时环境下处理位置控制; 当然如果你有实时操作系统如RTLinux,QNX或是VxWorks之类的,那就更简单,开一个实时线程,把位置控制程序放到这个线程中即可。
用不用VC并不要紧,那就是一种编程语言,事实上C就够了,整个位置控制程序的代码不会很长,假设你的伺服系统是接受速度指令的,用期望的运动位置减去从编码器读到的反馈位置值,再乘上一个适当的值(比例增益),把这个值定时(假定1ms)送到你的伺服系统,就是一个最简单PID控制器(P控制)。
问题的关键是如何生成既精确又充分考虑运动平稳快速的位置参考点,并且定时(1ms)送给位置控制程序,就是所谓的插补,关于插补有必要先去看看原理介绍。
至于加减速控制,也是需要在插补的时候考虑的,种类很多,最简单的直线加减速,复杂的有指数加减速,S曲线加减速(钟形加减速),取决于你对运动平滑性的要求:是期望速度光滑,加速度光滑还是加加速度光滑,应该可以找到很多的参考资料。