1 张力控制的背景
塑料挤出行业中,管材和薄膜挤出生产线中经常要用到张力控制,纺机行业中,织机和卷染机都要用到张力控制。从这些张力控制的共性看,张力控制的目标是张力值,控制的对象是变频器或伺服,所加工的材质都是软性料。
所采用的控制手段主要有以下三种:
第一、张力控制一般采用PID控制。PID控制效果的好坏主要在于采样时间、滤波时间、增益、积分、微分等PID参数的调节。
第二、由于变频器的设定到实际速度稳定有一个滞后过程,这一滞后过程往往影响控制系统的动态跟踪。前馈控制可以很好的解决动态跟踪问题。
第三、张力控制时,低速PID参数到高速时可能不适合,或者不同速度段的PID参数可能不通用,因此PID参数的线性化是解决该问题的首选。
总之,张力控制的过程中,动态和稳态都必须兼顾到,单一状态和全程都必须考虑。
张力传感器的一般形式
2 控制理论
2.1 一般PID调节器原理图
W 引导值(设定值)
X 被调值 (实际值)
Y 调节值
P 比例调节值
I 积分调节值
D 微分调节值
E 调节偏差
Kp比例增强系数
Tn滞后时间
Tv超调时间
Y= Kp*[e + Ta/Tn*sum(e) + Tv/Ta*de]
上式在实际应用中,Kp,Ta,Tn,Tv的选择是关键。
2.2 前馈控制
一般变频器速度设定到实际速度稳定有滞后,如果后一台变频仅依据中间张力传感器来调节,将会出现如下情况:
前一台变频器设定速度变化,延时一段时间,实际速度改变,再延时一段时间,张力传感器张力改变;后一台变频器根据张力控制的PID值调节设定速度,该设定值经过一段时间延时,到实际速度改变,一段时间积累后,张力该变。
这其中,变频设定速度到实际速度之间有延时,导致张力传感器反应有很大延时,容易造成调节超调,特别当生产速度很快时,很容易造成大幅度震荡。
变频器设定速度到实际速度稳定有延时
无前馈控制的PID调节
系统增加前馈控制,可以提高动态响应。由于前后变频器可以看作线性关系,因此前馈部分公式简化为:
V2=K12 * V1 K12为前后牵引机的转速比
这样,总的公式为:
Y= K12 * V1 + Kp*[e + Ta/Tn*sum(e) + Tv/Ta*de]
其中e=W-X
2.3 PID参数线性化
PID参数线性化的前提:全程PID参数的变化是可线性的,即可以近似用较少的折线相连来表示的。线性化方法参见下图:
PID参数的线性化
线性化的折线线段应尽可能地靠近所模拟的曲线,使该曲线上的点分布在折线两边的概率和距离之和近似相等。
3 实现方法
3.1 采样周期选择
一般原则:采样时间的选定应保证调节回路中最快的事件能被采样几次。太长的采样时间增强了振荡倾向而且通过漂移效应容易导致失控。太短的采样时间不仅不必要地消耗运算资源甚至还能导致参数输入的困难.
采样时间确定的标准:继续缩短采样时间不再会引起调节性能的明显改善。
3.2 PID参数调节方法
Kp:尽可能调高,因为一个较大的Kp可使调节回路既快又精确。但过高等Kp值可导致超调甚至振荡(不稳定)。可用的初始值:1/Ks(Ks=调节对象的静态放大系数=开环稳态输出对输入的比)。从一个较小的值开始一步步翻倍调整,直至出现振荡趋势,然后再回调,使振荡消除。在加入超前时间后,Kp往往还可以再明显调大。
Ki: 目的是消除P-调节器的剩余误差。选择好初始值,然后一步步减半, 直至出现振荡,再回调,使振荡消除。
Kd: 微分器作为实际值振荡的阻尼。选择好初始值,然后一步步加倍, 直至出现振荡,再回调,使振荡消除。
3.3 滤波参数的选择
滤波器用于抑制测量噪声。初始值: Td/10,一步步加倍, 直至副作用如阶跃响应出现振荡倾向,再回调,使振荡消除。
3.4 线性化步骤
第1步:从最低速到最高速设定N组PID参数值:选最低速度、最高速度和中间的8个速度;
第2步:针对每一个速度,调节好PID参数,使系统在这一速度下的动稳态性能达到最佳;
第3步:自动升降速过程中,以前一台变频器为基准,按一定步长,平稳调整前一台变频器速度设定值。后一台变频器根据张力PID调节值设定速度,其中PID参数值根据这N组PID参数对整线的速度插补求得;
3.5步长选择
在规定全程加减速时间的前提下,步长/加速间隔=常数,加大步长,可以减少调整频率;减小步长,必须增大调整频率。步长越大,系统调节效果越差。因此,应尽可能选择小步长;但变频器对设定速度有一个最小的敏感值(如LENZE变频这个值为0.02),这个步长应大于这个敏感值,否则这么小的步长调整是没有意义的。实际应用中,一般选为1倍敏感值以上步长即可。
3.6 线性化计算:
这里给出线性化在B&R PLC上的应用。B&R Automation Studio是一个基于Windows环境专为开发B&R 产品应用软件的多目标集成开发系统,支持6种不同的编程语言:梯形图(LAD)、指令表(IL)、结构文本(ST)、顺序结构(SFC)、ANSI-C、Automation BASIC。这里线性化例程用ANSI-C编写。
/* long x,y: 指针;short points:x,y曲线共有points个点;long input:x曲线上某点;返回值:对应y曲线上某点 */
long lin(long *x,long *y,short points,long input)
{
short i;
float dx;
float k;
float output=0;
if (points >=2)
{
/* Searching for the usefull point */
for(i=0;i< points;i++)
{
/* Point found -> stop searching */
if(x[i] > input)
break;
}
/* If we found a usefull point => calculate output */
if((0
ouput = y[0] */
output = y[0];
else if(i==points)
/* Input higher than x[points] -> output = y[points] */
output = y[points-1];
return (long)output;