二阶控制器 (SOC)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
CompactLogix
5380、
ControlLogix
5580 和 ControlLogix 5590 控制器。
SOC 指令专用于闭环控制系统中,与 PI 指令的工作方式相似。SOC 指令具有增益项、一阶滞后和二阶超前。
可用语言
梯形图
此指令不可用于梯形图中。
功能块
RSL5K_SOC Function Block_v31
结构化文本
SOC(SOC_tag);
操作数
功能块
操作数
类型
格式
说明
SOC tag
SEC_ORDER_CONTROLLER
结构
SOC 结构
SEC_ORDER_CONTROLLER 结构
输入参数
数据类型
说明
EnableIn
BOOL
启用输入。如果此参数清零,指令不会执行,也不会更新输出。
默认置位。
In
REAL
指令的模拟信号输入。
有效值 = 任意浮点值
默认值 = 0.0
Initialize
BOOL
指令初始化命令。置位时,Out 和内部积分器设为等于 InitialValue 的值。
默认清零。
InitialValue
REAL
输入初始值。Initialize 置位时,Out 和积分器设为 InitialValue 的值。使用 HighLimit 和 LowLimit 来限制 InitialValue 的值。
有效值 = 任意浮点值
默认值 = 0.0
Gain
REAL
指令的比例增益。如果值超出范围,指令会对值进行限制,并置位 Status 中的相应位。
有效值 = 大于 0.0 的任意浮点数。
默认值 = 最小正浮点值
WLag
REAL
一阶滞后截止频率,单位为弧度/秒。如果值超出范围,指令会对值进行限制,并置位 Status 中的相应位。
有效值 = 有关有效范围,请参阅下面的“说明”部分
默认值 = 0.0
WLead
REAL
二阶超前截止频率,单位为弧度/秒。如果值超出范围,指令会对值进行限制,并置位 Status 中的相应位。
有效值 = 有关有效范围,请参阅下面的“说明”部分
默认值 = 0.0
ZetaLead
REAL
二阶超前阻尼系数。如果值超出范围,指令会对值进行限制,并置位 Status 中的相应位。
有效值 = 0.0 至 10.0
默认值 = 0.0
HighLimit
REAL
上限值。这是 Out 的最大值。如果 HighLimitLess than or equal toLowLimit,则指令将设置 HighAlarm 和 LowAlarm,将 Status 中的相应位置位,并将 Out 设置为 LowLimit。
有效值 = LowLimit < HighLimit Less than or equal to 最大正浮点值
默认值 = 最大正浮点值
LowLimit
REAL
下限值。这是 Out 的最小值。如果 HighLimit Less than or equal to LowLimit,则指令会将 HighAlarm 和 LowAlarm 置位,将 Status 中的相应位置位,并设置 Out = LowLimit。
有效值 = 最大负浮点值 Less than or equal to LowLimit < HighLimit
默认值 = 最大负浮点值
HoldHigh
BOOL
保持高位命令。置位时,不允许内部积分器的值增大。
默认清零。
HoldLow
BOOL
保持低位命令。置位时,不允许内部积分器的值减小。
默认清零。
TimingMode
DINT
选择时序执行模式。
0 = 周期性模式
1 = 过采样模式
2 = 实时采样模式
有关时序模式的更多信息,请参见“功能块属性”部分。
有效值 = 0 至 2
默认值 = 0
OversampleDT
REAL
过采样模式的执行时间。
有效值 = 0 到 4194.303 秒
默认值 = 0
RTSTime
DINT
实时采样模式的模块更新周期
有效值 = 1 至 32,767 ms
默认值 = 1
RTSTimeStamp
DINT
实时采样模式的模块时戳值。
有效值 = 0 至 32,767 ms
默认值 = 0
输出参数
数据类型
说明
EnableOut
BOOL
指示指令是否处于启用状态。如果 Out 溢出,则设置为假。
Out
REAL
计算所得的算法输出。
HighAlarm
BOOL
上限报警指示器。当 Out 的计算值 Greater than or equal to HighLimit 且输出强制设为 HighLimit 时置位。
LowAlarm
BOOL
下限报警指示器。当 Out 的计算值 Less than or equal to LowLimit 且输出强制设为 LowLimit 时置位。
DeltaT
REAL
两次更新间隔的时间。控制算法计算过程输出所用的时间(秒)。
Status
DINT
功能块的状态。
InstructFault (Status.0)
BOOL
该指令检测到以下执行错误之一。这不是轻微或严重的控制器错误。检查其他状态位以确定发生的情况。
GainInv (Status.1)
BOOL
增益 < 最小正浮点值。
WLagInv (Status.2)
BOOL
WLag > 最大值或 WLag < 最小值。
WLeadInv (Status.3)
BOOL
WLead > 最大值或 WLead < 最小值。
ZetaLeadInv (Status.4)
BOOL
ZetaLead > 最大值或 ZetaLead < 最小值。
HighLowLimsInv (Status.5)
BOOL
HighLimit Less than or equal to LowLimit。
TimingModeInv (Status.27)
BOOL
计时模式无效。
有关时序模式的更多信息,请参见“功能块属性”部分。
RTSMissed (Status.28)
BOOL
仅用于实时采样模式。当 ABS | DeltaT - RTSTime | > 1(0.001 秒)时置位。
RTSTimeInv (Satus.29)
BOOL
RTSTime 值无效。
RTSTimeStampInv (Status.30)
BOOL
RTSTimeStamp 值无效。
DeltaT (Status.31)
BOOL
DeltaT 值无效。
结构化文本
操作数
类型
格式
说明
SOC tag
SEC_ORDER_CONTROLLER
结构
SOC 结构
有关结构化文本中表达式语法的更多信息,请参见“结构化文本语法”部分。
说明
SOC 指令具有增益项、一阶滞后和二阶超前。滞后的频率可以调整,并且超前的频率和阻尼也可以调整。二阶超前零点对可以是复数(阻尼小于 1)或实数(阻尼Greater than or equal to1)。SOC 指令专用于恒速扫描的任务中。
SOC 指令使用以下拉普拉斯变换方程。
SOC_Equation
参数限制
以下 SOC 参数对有效值具有以下限值。
参数
Limit
WLead
SOC high and low limit equation
其中,DeltaT 以秒为单位。
WLag
SOC high and low limit equation 2
其中,DeltaT 以秒为单位。
ZetaLead
下限 = 0.0
上限 = 10.0
一旦计算出的输出值无效 (NAN),指令会将 Out 设为无效值。内部参数不会更新。在每次的后续扫描过程中,都会使用上一次扫描(输出有效)的内部参数计算输出。
限制
该指令基于 Hold 输入的状态停止积分饱和。
若:
则:
HoldHigh 置位且 Integrator > Integrator
n-1
Integrator = Integrator
n-1
HoldLow 置位且 Integrator < Integrator
n-1
Integrator = Integrator
n-1
指令还会根据 HighLimit 和 LowLimit 值停止积分器的积分饱和。
若:
则:
Integrator > IntegratorHighLimit
Integrator = IntegratorHighLimit
Integrator < IntegratorLowLimit
Integrator = IntegratorLowLimit
其中:
SOC_equation 2
指令还会根据 HighLimit 和 LowLimit 值限制 Out 值。
若:
则:
HighLimit Less than or equal to LowLimit
Out = LowLimit
Integrator = IntegratorLowLimit
HighLowLimsInv 已设置
HighAlarm 置位
LowAlarm 置位
Out Greater than or equal to HighLimit
Out = HighLimit
IntegratorLowLimit
n-1
HighAlarm 置位
Out Less than or equal to LowLimit
Out = LowLimit
Integrator = Integrator
n-1
LowAlarm 置位
影响数学状态标志
严重/轻微故障
在以下情况下发生轻微故障
故障类型
故障代码
功能已启用并检测到溢出。
4
4
有关操作数相关的故障,请参阅 通用属性
执行
提醒事项: 在结构化文本中,EnableIn 在普通扫描期间始终为真。因此,如果指令处于由逻辑激活的控制路径中,指令将会执行。有关所有功能块指令的更多详细信息(包括定义和常规行为),请参阅出版物 1756-RM006G-EN-P《高级过程控制和驱动器指令》。
条件/状态
执行的操作
预扫描
不执行任何操作。
后扫描
不执行任何操作。
条件仅在普通扫描模式期间才会出现
条件/状态
执行的操作
指令首次运行
内部参数和 Out 设置为 0。强制重新计算公式系数。不执行主算法,但是会验证输入参数。
指令首次扫描
内部参数和 Out 设置为 0。强制重新计算公式系数。不执行主算法,但是会验证输入参数。
EnableIn 为假
.EnableOut 位设置为假。
EnableIn 为真
.EnableOut 位设置为真。
将执行指令的主算法,并更新输出。
结构化文本
条件/状态
执行的操作
预扫描
请参见“功能块”表中的“预扫描”行。
正常执行
请参见“功能块”表中的“Tag.EnableIn 为真”行。
后扫描
请参见“功能块”表中的“后扫描”行。
示例
SOC 指令是一个专用的功能块,用于在两个区域之间通过弹簧质点系统传递能量的应用中。在这类应用中,过程本身的频率响应通常表示为如下所示的波德图(图 A):
SOC_Diagram A
SOC 指令用于实现一阶滞后滤波器,后跟 PID 控制器,从而实现包含积分、二阶零点(超前)和一阶极点(滞后)的传递函数。使用该指令可简化 PID 调谐,因为调节项的组织方式可以确保 WLead 和 ZLead (而非 Kp、Ki 和 Kd 值)作为 SOC 指令的输入。SOC 指令的传递函数如下:
SOC_Example formula
其相应的波特图如图 B 所示。
L5K_SOC_Diagram B
SOC 指令可用于扭矩或张力调节应用中,其中采用测力传感器作为反馈,调节系统的输出直接作用于驱动器的扭矩(电流)次回路。在诸多此类应用中,从机械角度而言受控系统都是欠阻尼的,并且具有一个固有频率,由于系统本身会通过反馈设备发生反射,因此难以稳定。
SOC_Example 2 torque reg app
使用 SOC 指令可简化 PID 调节,因为调节项的组织方式可以确保 WLead 和 ZLead (而非 Kp、Ki 和 Kd 值)作为 SOC 指令的输入。通过这种方式,可以更轻松地根据实际过程调整和设置控制器/调节器的截止频率。启动期间,可根据经验预估或在现场测量系统的固有频率和阻尼系数。然后,可以根据过程的特征调整调节器的参数,从而对最终过程进行更多增益以及更加稳定的控制。
SOC_Example 2 PID tuning
在上述系统中,如果将 Wlead 设置为与系统固有频率相等,将 Wlag 设置为远大于所需分频频率(> 5 倍的分频频率),则产生的系统响应显示如下:
SOC_Example Wlead
在实际应用中,使用和设置此指令的步骤包括:
识别受控过程的类型。如果系统对阶跃函数的响应导致高度振铃,或者该响应的特征可以通过上述过程曲线来表示,则该块可以提供稳定控制所需的调节特征。
确定系统/过程的固有频率。既可以根据经验预估,也可以进行现场测量。调整 WLead,使其与过程本身的固有频率相对应或稍微超前。
调整阻尼系数 Zlead,使其消除系统中存在的任何超调。
将 WLag 调整为远大于系统分频频率(> 5 倍),开始增大总增益以达到
功能块
SOC_FBD_ex
结构化文本
SOC_01.In := Process_Error;
SOC_01.Initialize := Regulator_Enable_Not;
SOC_01.Gain := Gain;
SOC_01.WLag := Lag_Radians_per_sec;
SOC_01.WLead := Lead_radians_per_sec;
SOC_01.ZetaLead := Damping_Factor;
SOC_01.HighLimit := Max_Out;
SOC_01.LowLimit := Min_Out;
SOC(SOC_01);
SOC_Out := SOC_01.Out;
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal