请问刘工关于Galil控制触屏设备PID的控制 点击:664 | 回复:7



visiones

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 6回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2015年3月24日
发表于:2015-03-24 14:15:44
楼主

刘工,我现在用一个Galil DMC-30012的单轴控制器来控制一个行程是10mm,编码器分辨率1微米的音圈电机。编码器是一个光栅尺,现在是做一个平面的手机屏触屏控制,音圈电机轴与手机屏幕接触的地方上安装了一个压力传感器,用于实时传回触压手机屏的接触压力。当触屏时电机定位到位位后,再根据压力传感器的压力反馈值,用PID控制音圈电机输出,使电机与手机屏接触压力控制在0.5g的力度内。现在问题有两个;

1、请问程序应该如果设计,是应该先做一个定位程序,到位后再进入PID;还是一开始就引用PID来定位,直到压力达到0.5g

2、现在电机是垂直安装于Z轴,电机往下运动输出定位值为负值,往上为正值,编码器反馈值方向与电机方向一致,只是每次定位都要输入一个负值(eg: PA-6000),请问这样对控制会不会有影响。

3、因为是第一次使用GALIL控制器,刘工是否可以写一段简单的程序供参考




刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:17帖 | 8240回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2015-03-27 09:56:01
1楼

1、请问程序应该如果设计,是应该先做一个定位程序,到位后再进入PID;还是一开始就引用PID来定位,直到压力达到0.5g

我想到的是,先定位,但是在定位的时候,以压力信号出现作为定位结束的依据,然后再对压力整定。

 

2、现在电机是垂直安装于Z轴,电机往下运动输出定位值为负值,往上为正值,编码器反馈值方向与电机方向一致,只是每次定位都要输入一个负值(eg: PA-6000),请问这样对控制会不会有影响。

没有影响

 

3、因为是第一次使用GALIL控制器,刘工是否可以写一段简单的程序供参考

这个,我还是觉得,不妨先确认:

1、对于整个检测系统来说,小于0.5g的力是可以稳定检测的,包括传感器的分辨率、电气传输的噪声大小、控制器的接收分辨率。

2、对于运动机构来说,0.5g的力是可以问个产生的。机械我不太熟,不知静摩擦力的大小是否会有很大的影响。

 

 

LeoJia

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 16回
  • 年度积分:0
  • 历史总积分:102
  • 注册:2011年10月27日
发表于:2015-04-04 22:38:13
2楼

0.5g的压力稳定,不简单哦,整定时间是多久呢?

visiones

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 6回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2015年3月24日
发表于:2015-04-07 14:27:45
3楼


回复内容:刘工:用AF1可以控制,但是在做AF1切换时(到位后MO机电)力度会有一个很大的峰峰值(如需要60g,控制器切换到AF后,开始为8000g左右然后再降到60g),PID值为KP=1,KI=0.05,KD=0,如果设大值系统稳定性会差。请问有什么办法可以解决峰峰值过大的问题。

2、如果自己做算法,应该怎样将增量式PID公式做到程序里面去呢。

对: 刘岩利 1、请问程序应该如果设计,是应该先做一个定位程序,到位... 内容的回复!


visiones

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 6回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2015年3月24日
发表于:2015-04-07 14:36:38
4楼


回复内容:如需要600g,控制器切换到AF后,开始为8000g左右然后再降到60g)


----上面写错了,600g写成了60g---

对: 刘岩利 1、请问程序应该如果设计,是应该先做一个定位程序,到位... 内容的回复!


刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:17帖 | 8240回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2015-04-08 09:18:41
5楼

(如需要60g,控制器切换到AF后,开始为8000g左右然后再降到60g),PID值为KP=1,KI=0.05,KD=0,如果设大值系统稳定性会差。请问有什么办法可以解决峰峰值过大的问题。

 

先确认几个细节:

1、定位到位后,控制卡输出电压是多少? TT指令可查询

2、定位到位后,接收到的模拟电压是多少? MG_@AN[1]可查询

3、定位到位后,目标位置是多少? RP指令可查询

4、执行AF后,当前位置是多少? TP指令可查询

5、8000g压力,大致对应的控制卡输出电压是多少?

6、60g力,对应的虚拟位置是多少?控制卡接收的模拟电压是多少?

2、如果自己做算法,应该怎样将增量式PID公式做到程序里面去呢。

一般来说,是类似下面的程序,如果有必要,您自己再加上更多细节。

 

#PID

o=0

p=0
i=0
d=0

e1=0

max=9.9982

min=-9.9982

AT0

#LOOP

er=_ERA

p=er*kp

i=er*ki+i

d=(er-e1)*kd

e1=er

out=o-p-i-d

IF(out>max)

out=max

ENDIF

IF(out<min)

out=min

ENDIF

OFA=out

AT-5

JP#LOOP

 

 

 

visiones

  • 精华:0帖
  • 求助:1帖
  • 帖子:2帖 | 6回
  • 年度积分:0
  • 历史总积分:13
  • 注册:2015年3月24日
发表于:2015-04-08 17:51:26
6楼


回复内容:

对: 刘岩利 (如需要60g,控制器切换到AF后,开始为8000g左... 内容的回复!


您好刘工:1、您上面给的PID程序写到终端时提示 p=er*kp  i=er*ki+i d=(er-e1)*kd  这几个地方变量错误,TC=9

2、因为我是按您说只要@AN[1]有值后便立即ST,MO,然后AF,所以下面的值都是转换为AF模式下所得到的数据。

a、定位到位后,控制卡输出电压是多少?  

   50g时,AF模式下为"-0.15"左右变化

   80G时,          -0.042

b、定位到位后,接收到的模拟电压是多少? 

   50g时,0.0024V(压力传感器输入为0-5V 分辨率1mV)

   80G时 0.183

c、定位到位后,目标位置是多少? 

   50g时,RP=1

   80G时  RP=125

d、执行AF后,当前位置是多少? TP指令可查询

   50g时,TP为1-18内变动

   80G时  TP=154(变动)

e、8000g压力,大致对应的控制卡输出电压是多少?,

   8000g,按计算应为16V,在AF转换瞬间,可看到软件上@AN[1]值为4.988V,然后回到0.0024V

f、60g力,对应的虚拟位置是多少?控制卡接收的模拟电压是多少?

   50g时,PA=1    控制卡接收电压为0.0024V

   80G时,PA=125                  0.183

程序如下,请刘工帮看看

#AUTO

MO

OE1

CE2

MT-1

KP5

KD64

KI1

#a

SH

JG -20000

FI

BG

AM

WT10

JG20000

BG

#LOOP

IF @AN[1]>0.1

JS #STOP

ENDIF

JP #LOOP

#af1

EN

#STOP

ST

WT100

MO

AF1

KP1

KD0

KI0.05

SH

PA125

BG

WT1000

JP #af1

EN


刘岩利

  • [版主]
  • 精华:2帖
  • 求助:0帖
  • 帖子:17帖 | 8240回
  • 年度积分:397
  • 历史总积分:28760
  • 注册:2005年3月09日
发表于:2015-04-09 09:20:56
7楼

您好刘工:1、您上面给的PID程序写到终端时提示 p=er*kp  i=er*ki+i d=(er-e1)*kd  这几个地方变量错误,TC=9

 

这大概是因为您没有给kp、ki、kd赋相应的值。您要做PID控制,总要有个增益系数吧。

 

 

e、8000g压力,大致对应的控制卡输出电压是多少?,

   8000g,按计算应为16V,在AF转换瞬间,可看到软件上@AN[1]值为4.988V,然后回到0.0024V

 

我是问控制卡输出电压,不是问您的传感器输出电压。

 

 

另外,在您的程序执行过程中,突然增加的压力是在MO/SH指令时出现的,还是在BG指令时出现的?在BG指令之前,加入指令SP100(或者更小的数值),压力突增的情况是否会有所缓解?KP1改为KP0.125,压力突增的情况是否会有所缓解?是否需要OF指令大致平衡机构自身重力?

 


热门招聘
相关主题

官方公众号

智造工程师