文章目录
- 一、PID控制原理
- 二、PID控制指令
- 1.PID_Compact
- 2.PID_3Step
- 3.PID_Temp
- 4.指令块功能对比
- 三、PID控制示例
- 1.调用并组态PID_Compact
- 2.调用被控对象仿真块
- 3.进行预调节
- 4.进行精确调节
- 四、串级控制
- 1.调用并组态PID_Temp
- 2.调用被控对象仿真块
- 3.进行从控制器预调节加热
- 4.进行从控制器预调节加热/制冷
- 5.进行从控制器预调节制冷
- 6.进行从控制器精确调节加热
- 7.进行从控制器精确调节制冷
- 8.进行主控制器预调节加热
- 9.进行主控制器精确调节加热
一、PID控制原理
基于反馈控制理论,在工程实际中,应用最为广泛的比例、积分、微分控制,简称PID控制。
PID具有以下优点:
1.原理简单实用方便;
2.适用性强,可以广泛应用在化工,冶金等领域;
3.控制品质对其被控对象特性的变化不大敏感;
4.对模型依赖性少,按PID控制进行工作的自动控制调节器早已商品化。
S7-1200的PID功能:
1.提供3个PID指令:PID_Compact、PID_3Step、PID Temp;
2.PID的调节回路数仅受程序大小及执行时间影响,没有具体数量限制;
3.支持抗积分饱和功能;
4.支持不同错误的响应。
5.PID_3Step、PID_Temp支持死区;
6.PID_Temp支持控制带;
7.PID Temp支持串级控制。
二、PID控制指令
1.PID_Compact
PID_Compact是连续的PID控制指令,支持模拟量或脉冲宽度调制(PWM)输出。
引脚 | 注释 |
---|---|
Setpoint | 自动模式下的设定值 |
Input | 工程量反馈值 |
Input_PER | 模拟量反馈值(0~27648) |
Disturbance | 扰动变量或预控制值 |
ManualEnable | 上升沿激活“手动”模式;下降沿激活由“Mode”指定的工作模式 |
ManualValue | 该值在手动模式下使用,用作 PID 输出值 |
ErrorAck | 确认错误 |
Reset | 重启控制器 |
ModeActivate | 上升沿激活由“Mode”指定的工作模式 |
Mode | 通过“ModeActivate”的上升沿激活的模式;0:未激活;1:预调节;2:精确调节;3:自动模式;4:手动模式 |
ScaledInput | 线性化输入 |
Output | 工程量输出 |
Output_PER | 模拟量输出(0~27648) |
Output_PWM | 脉宽调制输出 |
SetpointLimit_H | 到达设定上限 |
SetpointLimit_L | 到达设定下限 |
InputWarning_H | 到达输入上限 |
InputWarning_L | 到达输入下限 |
State | 控制器当前操作模式 |
Error | 错误报警 |
ErrorBits | 报警信息 |
2.PID_3Step
PID_3Step是用于开关量信号控制的执行器;其输出用于模拟量和二进制阀门的控制;支持阀门的位置反馈和停止信号的检测;集成了电机转换时间的测量;支持死区控制。
引脚 | 注释 |
---|---|
Setpoint | 自动模式下的设定值 |
Input | 工程量反馈值 |
Input_PER | 模拟量反馈值(0~27648) |
Actuator_H | 阀门处于上端停止位时的数字位置反馈 |
Actuator_L | 阀门处于下端停止位时的数字位置反馈 |
Feedback | 阀门的位置反馈 |
Feedback_PER | 阀门的模拟位置反馈 |
Disturbance | 扰动变量或预控制值 |
ManualEnable | 上升沿激活“手动”模式;下降沿激活由“Mode”指定的工作模式 |
ManualValue | 在手动模式下指定阀门的绝对位置 |
Manual_UP | 1:即使正在使用 Output_PER 或位置反馈,阀门也打开。如果已达到上端停止位,则阀门将不再移动;0:如果正在使用 Output_PER 或位置反馈,则阀门移至 ManualValue。否则阀门不再移动 |
Manual_DN | 1:即使正在使用 Output_PER 或位置反馈,阀门也关闭。如果已达到下端停止位,则阀门将不再移动;0:如果正在使用 Output_PER 或位置反馈,则阀门移至 ManualValue。否则阀门不再移动 |
ErrorAck | 确认错误 |
Reset | 重新启动控制器 |
ModeActivate | 上升沿激活由“Mode”指定的工作模式 |
ScaledInput | 线性化输入 |
ScaledFeedback | 线性化位置反馈 |
Output_UP | 用于打开阀门的数字量输出值 |
Output_DN | 用于关闭阀门的数字量输出值 |
Output_PER | 模拟量输出值 |
SetpointLimit_H | 到达设定上限 |
SetpointLimit_L | 到达设定下限 |
InputWarning_H | 到达输入上限 |
InputWarning_L | 到达输入下限 |
State | 控制器当前操作模式 |
Error | 错误报警 |
ErrorBits | 报警信息 |
Mode | 通过“ModeActivate”的上升沿激活的模式;0:未激活;1:预调节;2:精确调节;3:自动模式;4:手动模式;6:转换时间测量;10:无停止位信号的手动模式 |
3.PID_Temp
PID_Temp转为温度控制而设计,支持加热和制冷控制;支持模拟量或脉冲宽度调制(PWM)输出;提供加热和制冷的自整定;带有抗积分饱和的级联控制功能;支持死区和控制带功能。
引脚 | 注释 |
---|---|
Setpoint | 自动模式下的设定值 |
Input | 工程量反馈值 |
Input_PER | 模拟量反馈值(0~27648) |
Disturbance | 扰动变量或预控制值 |
ManualEnable | 上升沿激活“手动”模式;下降沿激活由“Mode”指定的工作模式 |
ManualValue | 该值在手动模式下使用,用作 PID 输出值 |
ErrorAck | 确认错误 |
Reset | 重启控制器 |
ModeActivate | 上升沿激活由“Mode”指定的工作模式 |
Mode | 通过“ModeActivate”的上升沿激活的模式;0:未激活;1:预调节;2:精确调节;3:自动模式;4:手动模式 |
Master | 级联控制的接口,通过主控制器“PID_Temp_1”调用从控制器“PID_Temp_2” |
Slave | 级联控制的接口,需要将主站Slave接口变量,在从站Master接口处调用 |
ScaledInput | 标定后的过程值 |
OutputHeat | 工程量加热输出 |
OutputCool | 工程量制冷输出 |
OutputHeat_PER | 模拟量加热输出 |
OutputCool_PER | 模拟量制冷输出 |
OutputHeat_PWM | 脉宽调制加热输出 |
OutputCool_PWM | 脉宽调制制冷输出 |
SetpointLimit_H | 到达设定上限 |
SetpointLimit_L | 到达设定下限 |
InputWarning_H | 到达输入上限 |
InputWarning_L | 到达输入下限 |
State | 控制器当前操作模式 |
Error | 错误报警 |
ErrorBits | 报警信息 |
4.指令块功能对比
指令 | PID_Compact | PID_3Step | PID_Temp |
---|---|---|---|
模拟量输出 | 支持 | 支持 | 支持 |
PWM | 支持 | 支持 | 支持 |
加热/指令输出 | 不支持 | 不支持 | 支持 |
死区 | 不支持 | 支持 | 支持 |
控制带 | 不支持 | 不支持 | 支持 |
串级控制 | 不支持 | 不支持 | 支持 |
预调节 | 支持 | 支持 | 支持 |
精确调节 | 支持 | 支持 | 支持 |
抗积分饱和 | 支持 | 支持 | 支持 |
执行器阀位反馈 | 不支持 | 支持 | 不支持 |
三、PID控制示例
1.调用并组态PID_Compact
PID指令块需要在循环中断组织块中调用;
在默认变量表中创建如下变量;
将变量连接到PID_Compact指令块的对应引脚;
组态PID_Compact;
过程值标定功能只有在Input/Output参数选择Input_PER或Out_PER时,才会启用;
2.调用被控对象仿真块
PID仿真块的库文件“LSim”可在西门子工业在线支持官网下载;
PID仿真块的库文件
关于添加全局库的方法,以及更多全局库文件的下载,见以下链接;
在 TIA Portal 中,如何打开、编辑和升级全局库
调用下载好的仿真块,并连接如下变量;
3.进行预调节
首先进行预调节,预调节用于确定对输出值跳变的过程响应,并搜索拐点。
要求:
1.设定值-过程值>(过程值上限值-过程值下限值)×30%;
2.设定值-过程值>设定值×50%;
3.PID控制器处于手动、未激活或者自动模式。
打开PLC仿真器,下载程序,双击打开调试界面;
为满足预调节的要求,给定Setpoint一个设定值,在程序段中修改操作数,我们设置为90;
点击Start进行预调节。
4.进行精确调节
预调节结束后,点击上传PID参数,将PID参数上传至CPU中,然后启动精确调节;
精确调节:使过程值出现恒定受限的振荡,并根据此振荡的幅度和频率为操作点调节PID参数;
要求:
1.控制器工作在操作点;
2.不希望有扰动。
精确调节结束后,点击上传PID参数,将PID参数上传至CPU中。
四、串级控制
- 多个PID控制回路相互嵌套,形成级联控制;
- 主控制器的输出值作为从控制器的设定值,最外层从控制器的输出值应用于执行器;
- 可以迅速纠正控制系统中发生的扰动,显著降低扰动对受控变量的影响;
- 从控制器回路以线性形式发挥作用。因此,这些非线性扰动对受控变量的负面影响可得到缓解。
以巧克力加热炉温度控制为例,将巧克力溶液的温度作为主控制器PID_Temp_1的反馈值Input,从上位机获得想要达到的巧克力溶液温度Setpoint,将水的温度作为从控制器PID_Temp_2的反馈值,将主控制器的输出OutputHeat作为从控制器的输入Setpoint,将从控制器的输出OutputHeat用于水温控制,从而通过水温控制巧克力溶液的温度达到设定值。
1.调用并组态PID_Temp
调用两次PID_Temp功能块,分别作为主控制器PID_Temp_1和从控制器PID_Temp_2,必须先调用主控制器,再调用从控制器,并连接变量;
PID_Temp_1组态过程如下所示:
注意:只有在作为从控制器的时候,才可以“激活制冷”;
勾选“控制器为主站”,这里从站数量为1,最大可支持255个从站;
PID_Temp_2组态过程如下所示:
在“输出的基本设置”选项卡中,加热/制冷方法可选择“切换加热/制冷的PID参数”,此时加热和制冷分别自整定;当加热和制冷的变化曲线基本一致时,可以选择“加热/制冷的制冷系数”,此时制冷的PID参数由加热的PID参数乘以设置的制冷系数得到。这里我们选择“切换加热/制冷的PID参数”;
2.调用被控对象仿真块
仿真块下载链接已在上文给出,连接对应变量,同时,将水温反馈值赋值给巧克力溶液温度反馈值。
3.进行从控制器预调节加热
预调节常规要求:
1.ManualEnable = FALSE,Reset = FALSE;
2.PID_Temp处于“未激活”、“手动模式”或“自动模式”;
3.设定值与过程值均处于组态的限定范围内。
预调节加热要求:
1.设定值-过程值>(过程值上限值-过程值下限值)×30%;
2.设定值-过程值>设定值×50%;
3.设定值大于过程值。
因为要进行串级调试,故在进行主控制器自整定之前,需要进行从控制器自整定,但从控制器的设定值是主控制器的输出值,无法手动修改,此时,可以用调试面板中的设定替代值作为从控制器的设定值。
打开PID_Temp_2的调试面板,点击测量面板的start按钮,调节模式选择预调节加热,勾选控制器的在线状态面板里的Subst.Setpoint,设定一个满足预调节加热要求的数值,这里设置为80.0,然后点击旁边的闪电按钮,发送给PLC,最后点击调节面板的Start按钮,开始预调节加热。
调节状态显示系统已调节表示预调节加热完成。
4.进行从控制器预调节加热/制冷
要求同预调节加热。
此例程本步骤省略。
5.进行从控制器预调节制冷
预调节制冷要求:
1.已成功执行了“预调节加热”或“预调节加热/制冷”;
2.设定值-过程值<(过程值上限值-过程值下限值)×5%。
调节模式选择预调节制冷,点击调节面板的Start按钮,开始预调节制冷。
6.进行从控制器精确调节加热
精确调节常规要求:
1.控制回路已稳定在工作点;
2.不能被干扰;
2.PID_Temp处于“未激活”、“手动模式”或“自动模式”;
3.设定值与过程值均处于组态的限定范围内。
精确调节加热要求:
1.Heat.EnableTuning = True;激活加热自整定
2.Cool.EnableTuning = False;不激活制冷自整定
3.PidOutputSum>0.0。如果此条件不满足,则需要在精确调节加热前增加制冷偏移量
调节模式选择精确调节加热,调节偏移量此时不需要设置,点击调节面板的Start按钮,开始精确调节加热。
系统调节完毕后,点击上传PID参数。
7.进行从控制器精确调节制冷
精确调节制冷要求:
1.Heat.EnableTuning = False;不激活加热自整定
2.Cool.EnableTuning = True;激活制冷自整定
3.PidOutputSum<0.0。如果此条件不满足,则需要在精确调节制冷前增加加热偏移量
调节模式选择精确调节制冷,调节偏移量此时不需要设置,点击调节面板的Start按钮,开始精确调节制冷。
系统调节完毕后,点击上传PID参数。
8.进行主控制器预调节加热
在程序块中,手动修改PID_Temp_1的设定值Setpoint,这里设置为80.0;
打开PID_Temp_1的调试面板,可以看到:
所以将从控制器PID_Temp_2调试面板中的“Subst.Setpoint”取消勾选;
点击PID_Temp_1测量面板的start按钮,调节模式选择预调节加热,点击调节面板的Start按钮,开始预调节加热。
9.进行主控制器精确调节加热
调节模式选择精确调节加热,点击调节面板的Start按钮,开始精确调节加热;
系统调节完毕后点击上传PID参数。
更改PID_Temp_1的设定值Setpoint,若系统可以较为准确地调节温度值,则说明此系统的PID参数较为合适,下载程序即可。