PID指令 1. PID算法 在工业生产过程控制中,模拟信号PID(由比例、积分、微分构成的闭合回路)调节是常见的一种控制方法。运行PID控制指令,S7-200西门子plc将根据参数表中的输入测量值、控制设定值及PID参数,进行PID运算,求得输出控制值。参数表中有9个参数,全部为32位的实数,共占用36个字节。PID控制回路的参数表如表6-15所示。 表6-15 PID控制回路的参数表
Mn=Kc*(SPn-PVn)+Kc*(Ts/Ti)*(SPn-PVn)+Mx+Kc*(Td/Ts)*(PVn-1-PVn) 其中各参数的含义已在表6-15中描述。 比例项Kc*(SPn-PVn):能及时地产生与偏差(SPn-PVn)成正比的调节作用,比例系数Kc越大,比例调节作用越强,系统的稳态精度越高,但Kc过大会使系统的输出量振荡加剧,稳定性降低。 积分项Kc*(Ts/Ti)*(SPn-PVn)+Mx:与偏差有关,只要偏差不为0,PID控制的输出就会因积分作用而不断变化,直到偏差消失,系统处于稳定状态,所以积分的作用是消除稳态误差,提高控制精度,但积分的动作缓慢,给系统的动态稳定带来不良影响,很少单独使用。从式中可以看出:积分时间常数增大,积分作用减弱,消除稳态误差的速度减慢。 微分项Kc*(Td/Ts)*(PVn-1-PVn):根据误差变化的速度(既误差的微分)进行调节具有超前和预测的特点。微分时间常数Td增大时,超调量减少,动态性能得到改善,如Td过大,系统输出量在接近稳态时可能上升缓慢。 2. PID控制回路选项 在很多控制系统中,有时只采用一种或两种控制回路。例如,可能只要求比例控制回路或比例和积分控制回路。通过设置常量参数值选择所需的控制回路。 (1)如果不需要积分回路(即在PID计算中无“I”),则应将积分时间Ti设为无限大。由于积分项Mx的初始值,虽然没有积分运算,积分项的数值也可能不为零。 (2)如果不需要微分运算(即在PID计算中无“D”),则应将微分时间Td设定为0.0。 (3)如果不需要比例运算(即在PID计算中无“P”),但需要I或ID控制,则应将增益值Kc指定为0.0。因为Kc是计算积分和微分项公式中的系数,将循环增益设为0.0会导致在积分和微分项计算中使用的循环增益值为1.0。 3. 回路输入量的转换和标准化 每个回路的给定值和过程变量都是实际数值,其大小、范围和工程单位可能不同。在PLC进行PID控制之前,必须将其转换成标准化浮点表示法。步骤如下: (1)将实际从16位整数转换成32位浮点数或实数。下列指令说明如何将整数数值转换成实数。 XORD AC0,AC0 //将AC0清0 www.plcs.cn ITD AIW0, AC0 //将输入数值转换成双字 DTR AC0, AC0 //将32位整数转换成实数 (2)将实数转换成0.0至1.0之间的标准化数值。用下式: 实际数值的标准化数值=实际数值的非标准化数值或原始实数/取值范围 +偏移量 其中:取值范围=最大可能数值-最小可能数值=32 000(单极数值)或64 000(双极数值) 偏移量:对单极数值取0.0,对双极数值取0.5 单极(0~32000),双极(-32000~32000) 如将上述AC0中的双极数值(间距为64,000)标准化: /R 64000.0, AC0 //使累加器中的数值标准化 +R 0.5, AC0 //加偏移量0.5 MOVR AC0, VD100 //将标准化数值写入PID回路参数表中。 4. PID回路输出转换为成比例的整数 程序执行后,PID回路输出0.0和1.0之间的标准化实数数值,必须被转换成16位成比例整数数值,才能驱动模拟输出。 PID回路输出成比例实数数值=(PID回路输出标准化实数值-偏移量)*取值范围 程序如下: MOVR VD108, AC0 //将PID回路输出送入AC0。 -R 0.5, AC0 //双极数值减偏移量0.5 *R 64000.0, AC0 //AC0的值*取值范围,变为成比例实数数值 ROUND AC0,AC0 //将实数四舍五入取整,变为32位整数 DTI AC0, AC0 //32位整数转换成16位整数 MOVW AC0, AQW0 //16位整数写入AQW0 5. PID指令 PID指令:使能有效时,根据回路参数表(TBL)中的输入测量值、控制设定值及PID参数进行PID计算。格式如表6-16所示。 说明: (1)程序中可使用八条PID指令,分别编号0-7,不能重复使用。 (2)使ENO = 0的错误条件:0006(间接地址),SM1.1(溢出,参数表起始地址或指令中指定的PID回路指令号码操作数超出范围)。 (3)PID指令不对参数表输入值进行范围检查。必须保证过程变量和给定值积分项前值和过程变量前值在0.0和1.0之间。 表6-16 PID指令格式
|