数控位置控制,自己编程怎么实现 点击:1251 | 回复:11



cnc猫

    
  • 精华:1帖
  • 求助:1帖
  • 帖子:20帖 | 15回
  • 年度积分:0
  • 历史总积分:99
  • 注册:2006年5月23日
发表于:2007-06-26 08:31:00
楼主
数控位置控制,用vc编辑PID控制器能实现吗,他的加减速怎么控制(尤其是到位前减速)



中尉兄

  • 精华:0帖
  • 求助:0帖
  • 帖子:25帖 | 436回
  • 年度积分:0
  • 历史总积分:647
  • 注册:2006年6月05日
发表于:2007-06-26 10:42:00
1楼
可以控制,但是你要建好算法模型,可以利用madlab仿真一下

作者

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 8回
  • 年度积分:0
  • 历史总积分:17
  • 注册:2007年4月17日
发表于:2007-06-26 10:56:00
2楼
VC能实现,控制率自己编写好

lg_006

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 390回
  • 年度积分:0
  • 历史总积分:419
  • 注册:2005年2月24日
发表于:2007-06-26 10:56:00
3楼
可以吗?我的担心是响应不够。数控位置控制的PID算法的采样和计算响应要求都很高的(3000r/min,8000分辨率,1ms就400脉冲当量)。没有高响应,PID控制只怕是没什么好处,反而容易造成系统震荡或不稳定。算法相对要求倒是简单,仿真容易,应用难。

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2007-06-26 13:07:00
4楼
“数控位置控制,用vc编辑PID控制器能实现吗”———只要楼主能解决操作系统的底层实时性问题,就没有问题。采用模拟接口的位置闭环系统很多都是用C加PID完成的,当然在PID问题上都各有窍门。
    至于加减速控制,则应该是运动规划的事,需要与位置控制环节分开考虑,千万别揉到一块去了。

cnc猫

  • 精华:1帖
  • 求助:1帖
  • 帖子:20帖 | 15回
  • 年度积分:0
  • 历史总积分:99
  • 注册:2006年5月23日
发表于:2007-06-26 15:02:00
5楼
请问加减速运动规划又如何做

vchao123

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 16回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2007年5月18日
发表于:2007-06-26 15:42:00
6楼
操作系统的底层实时性是指什么啊,要求响应时间快?

lg_006

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 390回
  • 年度积分:0
  • 历史总积分:419
  • 注册:2005年2月24日
发表于:2007-06-26 16:14:00
7楼
这样说吧。以前我在IPC上作过点东东,在windows系统下VC的响应要1ms左右(当然这和我的ipc硬件也有关系)。那时候我们的io板卡用的是研华的,而我们有个io点的响应速度就要高于1ms,那怎么办呢?我们最后自己写了研华卡的驱动,做了一个硬件程序中断才搞定。就是说把对这个io点的处理放到中断响应程序里搞定,响应速度我就不会测了。这就是底层实时性的意义和其中一种处理办法。但楼主的情况,我猜可能是采用(IPC+脉冲采样卡+脉冲输出卡)的结构,这种架构做实时性PID控制恐怕很难。至于加减速吗,是要根据你的工况进行规划的。

波恩

  • 精华:10帖
  • 求助:0帖
  • 帖子:203帖 | 11028回
  • 年度积分:0
  • 历史总积分:36300
  • 注册:2003年6月12日
发表于:2007-06-26 17:31:00
8楼
标准的Windows操作系统是不具备运动控制所必须的实时性的(ms级中断刷新率,微秒级中断响应),所以用VC编程本身没问题,但是经windows调度时,就存在问题了,这也就是为什么运动控制系统需要使用实时操作系统的根源所在。

至于运动规划,建议首先查点资料,了解一下什么是S加减速,有什么作用。

刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:16帖 | 8239回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2007-06-27 20:13:00
9楼
"请问加减速运动规划又如何做"
最简单的办法就是计算当前速度下需要的减速距离。

linfuhao2003

  • 精华:0帖
  • 求助:1帖
  • 帖子:17帖 | 116回
  • 年度积分:0
  • 历史总积分:236
  • 注册:2007年4月23日
发表于:2007-06-28 20:48:00
10楼
西门子的伺服有点位功能
你可以看看

斯科特901

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 1回
  • 年度积分:0
  • 历史总积分:2
  • 注册:2007年6月22日
发表于: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曲线加减速(钟形加减速),取决于你对运动平滑性的要求:是期望速度光滑,加速度光滑还是加加速度光滑,应该可以找到很多的参考资料。

热门招聘
相关主题

官方公众号

智造工程师