PID在PLC中的实现

2019-03-11 14:38

3.1 PID控制算法及在PLC中的实现

3.1.1 PID控制算法

PID控制器的输入量e是设定值r和检测值y的偏差量,即 ,经过运算,并输出控制信号u。PID控制算法的理想形式为

?1u?Kc?e??Tide? ?0edt?Tddt??t

?3-1?式中 Kc——控制器比例增益;

Ti——积分时间; Td——微分时间。

由理想PID控制算法连续形式可以得到其离散形式。离散PID控制算法有三种不同的形式:位置算法、增量算法、速度算法。由连续的PID算法容易的到其位置算法,为

e?k??e?k?1???1k u?k??Kc?ek??e?i?Ts?Td?

Tii?0Ts??其中, Ts为采样周期。

?3-2?PID控制增量算法为相邻两次采样时刻所计算的位置值之差,即

?u?k??u?k??u?k?1?

?3-3??3-4? PID控制速度算法为增量值除以采样周期,即

v?k???u?k? Ts3.1.2 PLC中的PID实现

由于理想PID控制算法存在一定的局限性,在实际应用中,理想

PID要改进之后才能使用。 S7-200 PLC的PID指令中,PID控制算法是基于理想PID控制算法的改进得到的。其微分项采用微分先行改进,积分项采用抗积分饱和法改进。 微分先行,是指只对被控量微分,而对偏差无微分作用,这样避免了当改变设定值时对系统产生冲击。 抗饱和积分,是指对计算出的控制量限幅。在S7-200 PLC中,积分项MI的积分公式为

MIn?KcTs?SPn?PVn??MX Ti?3-5?式中

MIn——第n次采样的积分项数值; SPn——第n次采样的设定值数值; PVn——第n次采样的检测值数值

MX——第n-1次采样的积分项数值。

对控制量的限幅为

?MX?1.0?(MPn?MDn)??MX??(MPn?MDn)式中

Mn?1.0Mn?0.0

?3-6?MPn——第n次采样的比例计算输出数值; MDn——第n次采样的积分计算输出数值; Mn——第n次采样的PID控制量计算输出数值。

通过按照上述方式调节MX,一旦计算输出返回适当范围即可实现系统应答能力的改善。控制量也被固定在0.0~1.0。

S7-200 PLC中使用PID控制算法的方法有两种:一种是使用指令集中的PID计算指令;令一种是使用PID向导,根据向导提示一步一步完成PID的参数配置,生成PID指令。无论是哪种方式使用PID指令,都需要建立PID回路表。PID回路表是存储用于控制回路操作参数的连续存储空间,长度为80字节。对于使用PID指令向导建立存储区,用户还需额外分配40字节的存储空间,用于指令计算的缓存。PID回路

表见表1.1。

表1.1 偏移量 0 4 8 12 16 20 24 28 32 36 40 41 42 43 44 数据类型 I I I/O I I I I I/O I/O Cont I O I/O I I 数据格式 双字/实数 双字/实数 双字/实数 双字/实数 双字/实数 双字/实数 双字/实数 双字/实数 双字/实数 ASCII 字节 字节 字节 字节 实数 PID回路表 符号 PVn SPn Mn 注释 过程变量,0.0~1.0 给定值,0.0~1.0 输出计算值,0.0~1.0 回路增益,正/负常数 采样时间,正数,单位为秒 积分时间,正数,单位为分钟 微分时间,正数,单位为分钟 积分项前值,0.0~1.0 过程变量前值,0.0~1.0 PID扩展回路表标志(A版) 算法控制字节,详见后文 算法状态字节,详见后文 算法结果字节,详见后文 算法配置字节,详见后文 最大PV振荡幅度的归一值,0.025~0.25 过零的PV滞后的归一值,0.005~0.1。若DEV/ HYS<4,则自动调谐过程中会出现警告 初始输出步长改变的归一值,0.05~0.4 看门狗时间,两个过零间的最大允许时间,60~7200,单位为秒 自动调谐确定的建议回路增益。 自动调谐确定的建议积分时间 自动调谐确定的建议微分时间 自动调谐确定的归一输出步长值 自动调谐确定的归一PV滞后值 Kc Ts Ti Td MX PVn?1 PIDA ACNTL ASTAT ARES ACNFG DEV 48 I 实数 HYS 52 56 60 64 68 72 76 I I O O O O O 实数 实数 实数 实数 实数 实数 实数 STEP WDOG AT_KC AT_TI AT_TD ASTEP AHYS 1. PID回路指令的使用 PID回路指令的LAD格式如图1.1所示。TBL为PID回路表的首地址,VB指定的字节型数据;LOOP为PID回路号,回路号为0~7的常数。当使能端有效,则启动该PID回路运

ENPIDENOTBLLOOP图3.1PID指令格式算。

在使用PID指令之前,需要先建立回路表并初始化,用户可在编写程序时定义数据块,建立起回路表并执行初始化,或者把初始化作为子程序,在程序运行时对回路表进行初始化。另外,还需要将采集回来的过程量进行归一化处理。调用PID指令后,再将回路输出计算值转换为控制工程量。

在这里的归一化处理是指将数据值的实际取值按比例一一对应到0.0~1.0之间的无量纲实数。数据字归一化处理,要先把数据字转换为实数再通过公式(3-7)对实数进行归一化。由于S7-200 PLC没有直接将数据字转换为实数的指令,所以要先将数据字转换为双整数,再将双整数转换为实数。

式中

RNorm?RRaw?RRmin

Span?3-7?RNorm——输入过程量的归一化值; RRaw——输入过程量的原始数值; RRmin——输入过程量的最小可能值;

Span——值域大小,即为输入过程量的最大可能数值减去

最小可能数值。

对于单极性数值,RRmin一般取0,Span一般取32000;对于双极性数值,RRmin一般取-32000,Span一般取64000。但RRmin、Span的具体取值要是具体情况而定。例如:扩展模块EM231采用PT100作为模拟输入时,假设使用的数据采集通道地址是AIW0,AIW0的有效数值范围为-500~2000,对应测量温度值为-50.0~200.0℃。此时,RRmin就不能取-32000,应该取RRmin??500,Span?2500。

将回路输出计算值转换为控制工程量,可按以下公式进行转换,再将转换后的实数转换为数据字。

RScal?MnSpan?RSmin

?3-8?式中

RScal——原始控制工程量的实数表示; RSmin——原始控制工程量的最小可能实数值。

2. PID指令向导

PID指令向导,实质上是通过向导,引导用户完成PID回路表的建立及初始化,并自动完成对过程量的归一化及计算输出值的PID0_INITEN转换过程。所以使用上较PID

OutputPV_I回路指令简单,但两者使用的

HighAlarmSetpoint_RPID控制算法原理上是一致LowAlarmAuto_Manual的。PID向导生成的指令格式ManualOutputModuleErr如图3.2所示:

图3.2由向导生成的PID指令格式

其操作数格式如表1.2所示,其中Auto_Manual、ManualOutput、HighAlarm、LowAlarm、ModuleErr为可选项。

表3.2 符号 EN PV_I Setpoint_R Auto_Manual ManualOutput Output HighAlarm LowAlarm ModuleErr I I I I I O O O O 由向导生成的PID指令操作数 注释 使能端 过程量输入 给定值输入 手自动切换 手动模式的输出值,标准化数值 输出工程值 过程量高限报警 过程量低限报警 指定位置的模拟量模块错误报警 BOOL INT REAL BOOL REAL INT BOOL BOOL BOOL 变量类型 数据格式 3. S7-200 PLC的PID回路类型选择 如果不需要积分项,则将积分时间置为无穷大(即INF)。但由于积分项前值MX的存在,积分项的数值也可能不为零。

如果不需要微分项,则将微分时间置为0.0。

特别的,如果不需要比例项,则将回路增益值置为0.0。系统在计算积分项和微分项时默认回路增益值为1.0。

应该注意:在执行PID指令时出现任何错误,都将置位特殊功能寄存器SM1.1,并将终止PID指令的执行。则此次回路表中输出数值的更新可能不完全,应当忽略这些数值,并在下一次执行PID回路指令之前纠正引起数学错误的输入数值。


PID在PLC中的实现.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:14秋学期南开《政府经济学》在线作业

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: