「百说不如一练」如何自己动手写一个PID控制算法?
前言
一般来说,各家品牌的PLC都是自带PID功能的,直接调用即可。要求不高的调节场合,直接使用默认参数即可。有些控制要求较高的场合,除了耐心也要讲究一些技巧,不过学会PID通用调试方法,什么控制器都不怕!当然也可以通过下面的(模型+动态图)更直观的学习PID控制。西门子PLC有三种PID功能,可以参考PID功能选型以及故障处理。不过今天重点来说明下,如何自己动手做一个PID控制算法:根据PID的通用算法公式分别用C语言和梯形图来编程实现。(以下图片源自网络)
一、PID控制算法公式
二、C语言程序
直接上C语言代码:
三、梯形图程序
再上PLC梯形图:
其实根据PID算法公式,实现的方法有很多,可以用各种不同的编程语言来实现,欢迎朋友们留言说说你们是如何实现的?
PLC编程过程控制PID指令的使用方式
使用PLC稳定控制一个连续的对象时,典型的控制方式就是使用PID算法实现控制过程。PID是典型的单输入单输出 控制手段,用于执行根据输入的变化量而改变输出值的控制情况。在使用的过程中,可以依照不同的工艺要求,对PID进行叠加、嵌套等处理。
PID指令使用方法
执行对目标值S1、测量值S2、参数S3~S3+6进行设定的程序后,每隔采样时间S3将运算结 果(MV)保存到输出值D中。
PID指令使用方法
S1:保存目标值(SV)的数据寄存器编号
设置为PID运行的控制目标值(控制过程需要稳定的目标值)。PID指令运行过程中,不修改其变量内部数据。
S2:保存测量值(PV)的数据寄存器编号
设置为PID运行过程中的过程值(控制过程反馈的实时状态值),如恒温控制系统,系统的测量温度值就为过程值,应映射设置到S2。
S3:保存参数的数据寄存器编号
PID运行的过程参数。PLC的PID算法可以配置为自整定方式运行,集成了2种自整定方式。分别为:
1、 极限循环法(占用从S3开始的29个连续地址)
2、阶跃响应法的(占用从S3开始的25个连续地址)
D:保存输出值(MV)的数据寄存器编号
此变量为PID运行过程中,通过反馈状态计算后的控制输出值。
参数说明
PID运行过程参数说明,如下表格所示。其中最最关键的几个参数为:
PID整定过程
经验原则(参考):
1、先比例,后积分,再微分
2、参数从小到大设置
3、比例超调后,加积分
4、曲线振荡频繁,则加比例
5、大曲线振荡,则减比例
6、曲线偏离回复慢,则降积分
7、曲线波动周期长,则加积分
使用过程中问题点
在设置S3~S3+29这个区域的时候,若设置为掉电保持区域,一定注意不要将D的地址设置为掉电保持区域,否则可能会出现系统抖动;若需要设置到掉电保持区域,则应在初始化的时候,对D地址的值进行复位。
(转载请注明来源函控自动化工程师头条号)
相关问答
台达plc的pid指令怎么用?
PID输出的是一个模拟量值,你把输出的模拟量4-20mA或者0-10V接到变频器上不就行了,把最小频率设置为30Hz,最大频率为50Hz。可编程逻辑控制器,它采用一类可编程...
西门子PLC中什么叫PID指令啊?
PID指比例积分微分,Proportion比例,Integration积分,Differentiation微分西门子PLC编程软件中有PID向导,程序中的PID程序块可利用s7-Micro/win程...
永宏plc编程指令pid的详解?
永宏PLC编程指令PID是用于控制系统中实际物理量与理想值之间的差异,自动调整输出量,实现过程控制的一种控制方法。具体指令如下:PID指令的格式:PID(ID,CV,SV...
三菱plcpid指令?
三菱PLC的PID指令如下:1、对于温度系统:P(%)20--60,I(分)3--10,D(分)0.5--32、对于流量系统:P(%)40--100,I(分)0.1--13、对于压力系统:P(%...
如何用plc程序模拟量控制变频器?
其实用模拟量来控制变频器还是比较简单的,你完全可以用一个直流电压表或电流表来代替变频器。真正有点难度的是PID控制,通讯控制,以及与电脑组态软件,或触摸...
s71200pid指令使用方法?
S7-1200PID控制指令是用于实现PID控制的指令集,可以在S7-1200PLC中实现温度、压力、液位等过程控制。使用方法如下:1.配置PID控制块:在TIAPortal中,选择...
PID控制与PLC控制的区别?
楼主没有总体概念,多接触工厂就会明白的;PLC控制是个大的硬件概念,称PLC控制系统;PID只是一个回路控制技术,PLC控制系统会用到PID控制指令的,用来控制PI...
PLC(可编程序控制器)一共有几种编程方式?
你说的应该是编程语言分几种吧。一般有以下几种:梯形图(LD语言)也有叫LAD语言、顺序功能图(SFC)语言、功能块图(FBD)语言,指令表(IL)语言和结构文本(S...SFC的...
欧姆龙plcpid指令的应用?
欧姆龙PLCPID指令是一种控制指令,主要用于控制系统中的温度、压力、流量等变量,使其达到设定值。PID算法之所以被广泛应用,是因为它可以自适应地对系统进行调...
st编程语言入门教学?
ST编程语言入门教学应从基本概念、ST语言基础语法出发,对ST语言中的变量、表达式、操作符、逻辑结构、数据类型和控制语句等要素进行全面讲解,并结合实例加以...