一、PID编程的实例?
PID编程实例
塑料挤出机加热温度控制的一个单元,多路控制只要复制以后改一下元件编号就可以了,用于制冷的只要改变PID控制方向就可以,类似的都可以用。带8路温度采集+温度校准+PID温度控制+PMW输出+PID自动调谐整定+风机上限设置,回差设置以及停机强制风冷以后风机自停,
二、西门子1200pid编程实例?
1. 配置控制器:
首先,需要在控制器中配置PID控制器参数,包括比例系数、积分时间和微分时间等。可以使用控制器的参数设置功能来配置这些参数。
2. 编写PID控制器程序:
接下来,需要编写PID控制器程序。程序的基本结构如下:
```
VAR
//定义变量
u: REAL; //控制量
e: REAL; //误差
e1: REAL; //上一次误差
y: REAL; //输出量
y1: REAL; //上一次输出量
kp: REAL := 0.5; //比例系数
ki: REAL := 0.2; //积分时间
kd: REAL := 0.1; //微分时间
t: REAL := 0.1; //采样周期
END_VAR
//PID控制器主程序
PROC PID_Controller()
//计算偏差
e := Setpoint - ProcessValue;
//计算积分项
u := u + ki * (e + e1) * t / 2;
//计算微分项
u := u + kd * (e - e1) / t;
//计算比例项
u := u + kp * e;
//保存误差
e1 := e;
//输出控制量
y := y1 + u;
//保存输出量
y1 := y;
END_PROC
```
在程序中,需要定义一些变量,包括控制量、误差、输出量以及比例系数、积分时间和微分时间等。然后,通过计算偏差、积分项、微分项和比例项等,得出控制量,并根据控制量计算输出量。最后,程序保存误差和输出量的值,以便在下一次计算中使用。
3. 调试程序:
完成程序编写后,需要进行调试。可以使用控制器的在线监视功能来查看控制器的输出量和误差等信息,以确保程序正确运行。
需要注意的是,PID控制器的编程需要根据具体的应用场景进行调整和优化,例如根据控制对象的动态特性调整PID参数,或者使用先进的控制算法来优化控制效果。
三、三菱plc 恒压pid编程实例?
以下是一个三菱PLC恒压PID控制的程序实例:
```
MC + GB10
#10=2000 //设置计算周期为 2000ms (示例)
MC + S1
#1=0 //PV 实际值
#2=0 //SV 设定值
#3=0 //MV 控制作用量
#4=0 //Error 微分计算用的误差值
#5=0 //PrevError 微分计算用的上一个误差值
#6=0 //SumError 积分计算用的误差累积值
#7=3000 //P 参数 (示例)
#8=0.01 //I 参数 (示例)
#9=5000 //D 参数 (示例)
//主循环
L1:
//读取PV值,入存储器#1
LD M800
TST M801
BZ L2
LD Y0
ST #1
//读取SV值,入存储器#2
LD M802
TST M803
BZ L2
LD Y1
ST #2
//计算误差
LD #2
SUB #1
ST #4
//计算积分项
LD #6
ADD #4
ST #6
//计算微分项
LD #4
SUB #5
ST #5
//计算控制作用量
LD #7
MUL #4
ADD #8
LD #6
MUL #8
ADD #9
MUL #5
ADD
ST #3
//输出控制作用量
LD #3
LIM 0,2000
OUT Y2
//保存误差值
LD #4
ST #5
//等待计算周期结束
LD #10
TON
JMP L1
//初始化跳转
L2:
JMP L1
```
在这个程序中:
- 将计算周期设置为2000ms (示例),代码: `#10=2000`
- PV实际值存储在存储器#1, 代码: `LD Y0, ST #1`
- SV设定值存储在存储器#2, 代码: `LD Y1, ST #2`
- P参数存储在存储器#7, I参数存储在存储器#8, D参数存储在存储器#9, 代码: `#7=3000, #8=0.01, #9=5000`
- 计算误差值, 积分项, 微分项, 控制作用量, 代码:
```
LD #2 //读取SV值
SUB #1 //计算误差
ST #4 //保存误差值
LD #6
ADD #4
ST #6
LD #4
SUB #5
ST #5
LD #7
MUL #4
ADD #8
LD #6
MUL #8
ADD #9
MUL #5
ADD
ST #3
```
- 输出控制作用量到Y2, 代码: `LD #3, LIM 0,2000, OUT Y2`
四、西门子PLC300的PID调节怎么编程啊?
现成的块,FB40\FB41
基本上不需要编程的
直接调用这个块,然后配置下即可
当然在线调整参数也比较重要
300的PID没有向导的
S7-300无向导,直接在周期性中断OB中调用FB41/FB42
A"PID".COM_RST
=L20.0
BLD103
A"PID".MAN_ON
=L20.1
BLD103
A"PID".PVPER_ON
=L20.2
BLD103
A"PID".P_SEL
=L20.3
BLD103
A"PID".I_SEL
=L20.4
BLD103
A"PID".INT_HOLD
=L20.5
BLD103
A"PID".I_ITL_ON
=L20.6
BLD103
A"PID".D_SEL
=L20.7
BLD103
CALL"CONT_C","PID"
COM_RST:=L20.0
MAN_ON:=L20.1
PVPER_ON:=L20.2
P_SEL:=L20.3
I_SEL:=L20.4
INT_HOLD:=L20.5
I_ITL_ON:=L20.6
D_SEL:=L20.7
CYCLE:="PID".CYCLE
SP_INT:="PID".SP_INT
PV_IN:="PID".PV_IN
PV_PER:="PID".PV_PER
MAN:="PID".MAN
GAIN:="PID".GAIN
TI:="PID".TI
TD:="PID".TD
TM_LAG:="PID".TM_LAG
DEADB_W:="PID".DEADB_W
LMN_HLM:="PID".LMN_HLM
LMN_LLM:="PID".LMN_LLM
PV_FAC:="PID".PV_FAC
PV_OFF:="PID".PV_OFF
LMN_FAC:="PID".LMN_FAC
LMN_OFF:="PID".LMN_OFF
I_ITLVAL:="PID".I_ITLVAL
DISV:="PID".DISV
LMN:="PID".LMN
LMN_PER:="PID".LMN_PER
QLMN_HLM:="PID".QLMN_HLM
QLMN_LLM:="PID".QLMN_LLM
LMN_P:="PID".LMN_P
LMN_I:="PID".LMN_I
LMN_D:="PID".LMN_D
PV:="PID".PV
ER:="PID".ER
NOP0
S7-300无向导,直接在周期性中断OB中调用FB41/FB42
A"PID".COM_RST
=L20.0
BLD103
A"PID".MAN_ON
=L20.1
BLD103
A"PID".PVPER_ON
=L20.2
BLD103
A"PID".P_SEL
=L20.3
BLD103
A"PID".I_SEL
=L20.4
BLD103
A"PID".INT_HOLD
=L20.5
BLD103
A"PID".I_ITL_ON
=L20.6
BLD103
A"PID".D_SEL
=L20.7
BLD103
CALL"CONT_C","PID"
COM_RST:=L20.0
MAN_ON:=L20.1
PVPER_ON:=L20.2
P_SEL:=L20.3
I_SEL:=L20.4
INT_HOLD:=L20.5
I_ITL_ON:=L20.6
D_SEL:=L20.7
CYCLE:="PID".CYCLE
SP_INT:="PID".SP_INT
PV_IN:="PID".PV_IN
PV_PER:="PID".PV_PER
MAN:="PID".MAN
GAIN:="PID".GAIN
TI:="PID".TI
TD:="PID".TD
TM_LAG:="PID".TM_LAG
DEADB_W:="PID".DEADB_W
LMN_HLM:="PID".LMN_HLM
LMN_LLM:="PID".LMN_LLM
PV_FAC:="PID".PV_FAC
PV_OFF:="PID".PV_OFF
LMN_FAC:="PID".LMN_FAC
LMN_OFF:="PID".LMN_OFF
I_ITLVAL:="PID".I_ITLVAL
DISV:="PID".DISV
LMN:="PID".LMN
LMN_PER:="PID".LMN_PER
QLMN_HLM:="PID".QLMN_HLM
QLMN_LLM:="PID".QLMN_LLM
LMN_P:="PID".LMN_P
LMN_I:="PID".LMN_I
LMN_D:="PID".LMN_D
PV:="PID".PV
ER:="PID".ER
NOP0
给你个口诀,经验总结啊,很实用。
pid常用口诀:
参数整定找最佳,从小到大顺序查,先是比例后积分,最后再把微分加,曲线振荡很频繁,比例度盘要放大,曲线漂浮绕大湾,比例度盘往小扳,曲线偏离回复慢,积分时间往下降,曲线波动周期长,积分时间再加长,曲线振荡频率快,先把微分降下来,动差大来波动慢,微分时间应加长,理想曲线两个波,前高后低4比1
你要是不太熟悉,就用向导自动生成。
五、三菱fx3u plc pid编程实例?
塑料挤出机加热温度控制的一个单元,多路控制只要复制以后改一下元件编号就可以了,用于制冷的只要改变PID控制方向就可以,类似的都可以用。带8路温度采集+温度校准+PID温度控制+PMW输出+PID自动调谐整定+风机上限设置,回差设置以及停机强制风冷以后风机自停,
备注:本例使用了8路温度采集模块+FX3U。带详细注释,希望可以帮到需要的人
六、pid整定实例教学?
PID控制器是一种常见的反馈控制器,用于控制系统中的变量,例如温度、速度、位置等。PID代表比例、积分和微分,这是控制器中三个主要组成部分的名称。每个部分都有一个系数,可以调整以控制系统的响应。
PID控制器的整定是指确定控制器中三个部分的系数,以使系统的响应最佳。整定通常涉及试验和误差分析,以确定最佳的系数值。
以下是一些有用的资源,可帮助您更深入地了解PID控制器和整定:
1. 《PID控制系统设计》(第二版),由Karl Johan Åström和Tore Hägglund编写,是一本经典的PID控制器教材。
2. MATLAB和Simulink是常用的控制系统设计和仿真工具,它们提供了丰富的PID控制器设计和整定功能。
3. 大量的在线教程和视频教程可供学习和参考。在YouTube上搜索“PID控制器整定”,您会发现许多有用的资源。
希望这些资源能帮助您更好地了解PID控制器的整定。
七、西门子pid控制实例?
给你个Step 7写的位置式PID控制的FC模块。带"_IN"与带"_OUT"的变量,如果前缀是一样的,要求连接同一个变量。硬件方面需要只需要模拟量输入和模拟量输出模块各一个。
FUNCTION FC1 : VOID
VAR_INPUT
Run:BOOL;//True-运行,False-停止
Auto:BOOL;//True-自动,False-手动
ISW:BOOL;//True-积分有效,False-积分无效
DSW:BOOL;//True-微分有效,False-微分无效
SetMV:REAL;//手动时的开度设定值
SVSW:REAL;//当设定值低于SVSW时,开度为零
PV:REAL;//测量值
SV:REAL;//设定值
DeadBand:REAL;//死区大小
PBW:REAL;//比例带大小
IW:REAL;//积分带大小
DW:REAL;//微分带大小
dErr_IN:REAL;//误差累积
LastPV_IN:REAL;//上一控制周期的测量值
END_VAR
VAR_OUTPUT
MV:REAL;//输出开度
dErr_OUT:REAL;//误差累积
LastPV_OUT:REAL;//上一控制周期的测量值
END_VAR
VAR
Err:REAL;//误差
dErr:REAL;//误差累积
PBH:REAL;//比例带上限
PBL:REAL;//比例带下限
PVC:REAL;//测量值在一个控制周期内的变化率,即测量值变化速率
P:REAL;//比例项
I:REAL;//积分项
D:REAL;//微分项
END_VAR
IF Run=1 THEN
IF Auto=1 THEN
IF SV>=SVSW THEN
Err:=SV-PV;
PBH:=SV+PBW;
PBL:=SV-PBW;
IF PV<PBL THEN
MV:=1;
ELSIF PV>PBH THEN
MV:=0;
ELSE
P:=(PBH-PV)/(PBH-PBL);//计算比例项
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////以下为积分项的计算//////////////////////////////////////////////////////////////
IF ISW=1 THEN
dErr:=dErr_IN;
IF (PV<(SV-DeadBand)) OR (PV>(SV+DeadBand)) THEN
IF (dErr+Err)<(0-IW) THEN
dErr:=0-IW;
ELSIF (dErr+Err)>IW THEN
dErr:=IW;
ELSE
dErr:=dErr+Err;
END_IF;
END_IF;
I:=dErr/IW;
dErr_OUT:=dErr;
ELSE
I:=0;
END_IF;
/////////////////////////////////////////////以上为积分项的计算//////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////以下为微分项的计算//////////////////////////////////////////////////////////////
IF DSW=1 THEN
PVC:=LastPV_IN-PV;
D:=PVC/DW;
LastPV_OUT:=PV;
ELSE
D:=0;
END_IF;
/////////////////////////////////////////////以上为微分项的计算//////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
IF (P+I+D)>1 THEN
MV:=1;
ELSIF (P+I+D)<0 THEN
MV:=0;
ELSE
MV:=P+I+D;
END_IF;
END_IF;
ELSE
MV:=0;
END_IF;
ELSE
MV:=SetMV;
END_IF;
ELSE
MV:=0;
END_IF;
END_FUNCTION
进行整定时先进行P调节,使I和D作用无效,观察温度变化曲线,若变化曲线多次出现波形则应该放大比例(P)参数,若变化曲线非常平缓,则应该缩小比例(P)参数。比例(P)参数设定好后,设定积分(I)参数,积分(I)正好与P参数相反,曲线平缓则需要放大积分(I),出现多次波形则需要缩小积分(I)。比例(P)和积分(I)都设定好以后设定微分(D)参数,微分(D)参数与比例(P)参数的设定方法是一样的。
当初写这段程序的就是为了使用调功器来控制炉子的温度的,已经在我单位的调功器上运行成功了,还有就是我单位的调功器没有使用微分(D),只是用了比例(P)和积分(I)。
八、温控仪pid调节实例?
以下是一个西门子PID温度控制的实例:
1. 选择设定参数: 比例系数(Kp)=2, 积分时间(Ti)=20, 微分时间(Td)=10。
2. 设定温度范围: 设定温度范围为20~80℃。
3. 设定初始设定值: 设定初始设定值为40℃。
4. 设定高温报警:设定高温报警为90℃。
5. 设定低温报警:设定低温报警为10℃。
6. 控制模式:PID控制模式。
7. 控制对象:温度传感器,控制电磁阀。
8. 调整控制参数:可在PID控制器中根据实际控制效果进行调整。
9. 控制效果优化:通过调整比例系数、积分时间、微分时间等参数,实现温度控制效果的优化。
10. 监测设备运行状态:监测控制器、传感器、执行机构等设备的运行状态,及时进行维护保养,确保设备正常运行。
九、西门子pid温度控制实例?
以下是一个西门子PID温度控制的实例:
1. 选择设定参数: 比例系数(Kp)=2, 积分时间(Ti)=20, 微分时间(Td)=10。
2. 设定温度范围: 设定温度范围为20~80℃。
3. 设定初始设定值: 设定初始设定值为40℃。
4. 设定高温报警:设定高温报警为90℃。
5. 设定低温报警:设定低温报警为10℃。
6. 控制模式:PID控制模式。
7. 控制对象:温度传感器,控制电磁阀。
8. 调整控制参数:可在PID控制器中根据实际控制效果进行调整。
9. 控制效果优化:通过调整比例系数、积分时间、微分时间等参数,实现温度控制效果的优化。
10. 监测设备运行状态:监测控制器、传感器、执行机构等设备的运行状态,及时进行维护保养,确保设备正常运行。
十、s71200pid温度控制实例?
实例:
1. 使用S7-1200PID控制器来控制温度,运行于恒定湿度环境。
2. S7-1200PID程序使用脉冲转换器从PT100温度传感器中读取温度数据。
3. PID控制器进行处理,并将控制信号发送到VSD(变频器)。 VSD控制风扇转速,以达到设定的温度。
4. 再由温度传感器实时读取当前环境温度,并与设定温度相比较,控制VSD的转速,以使当前温度力争和设定温度一致。