PID参数的解释和计算

正在学习PID,但是看了很多的资料大家都在提到的是P、I、D和T这几个参数,比如说过程变量还有设定值和增益这几个数就很的解释,我就是想问问找几个参数是怎么计算的,还有就是怎么去理解他的,谢谢!!

最佳答案

西门子200PLC  软件帮助中有  仔细看    

 S7-200 CPU提供PID回路指令(比例、积分、微分回路),执行PID计算。PID回路操作取决于存储在36个字节回路表中的9个参数。

 PID算法
 在稳定状态操作中,PID控制器管理输出数值,以便将错误(e)驱动为零。错误测量由设定值(所需的操作点)和进程变量(实际操作点)之间的差别决定。PID控制原则基于以下公式,其中将输出M(t)表示为比例项、积分项和微分项的函数:

 其中:

 作为时间函数的回路输出
 回路增益
   E 回路错误(设定值和进程变量之间的差别)
 回路输出的初始值
 为了在数字计算机中运行该控制函数,必须将连续函数量化为错误值的定期样本,并随后计算输出。数字计算机运算以下列相应的公式为基础:

 其中:

 采样时间n的回路输出计算值
 回路增益
 采样时间n的回路错误值
 回路错误的前一个数值(在采样时间n ?1)
 积分项的比例常数
 微分项的比例常数
 微分项的比例常数
 在该公式中,积分项被显示为全部错误项的函数,从第一个样本至当前样本。微分项是当前样本和前一个样本的函数,而比例项仅是当前样本的函数。在数字计算机中,既不可能也没有必要存储所有的错误项样本。
 因为从第一个样本开始,每次对错误采样时数字计算机都必须计算输出值,因此仅需存储前一个错误值和前一个积分项数值。由于数字计算机计算结果的重复性,可在任何采样时间对公式进行简化。简化后的公式为:

 其中:

 采样时间n的回路输出计算值
 回路增益
 采样时间n的回路错误值
 回路错误的前一个数值(采样时间n ?1)
 积分项的比例常数
 积分项的前一个数值(采样时间n ?1)
 微分项的比例常数
 计算回路输出值时,CPU使用对上述简化公式的修改格式。修改后的公式为:

 其中:

 采样时间n的回路输出计算值
 采样时间n的回路输出比例项数值
 采样时间n的回路输出积分项数值
 采样时间n的回路输出微分项数值
 比例项
 比例项MP是增益和错误(e)的乘积,其中增益控制输出计算的敏感度,错误是在某一特定采样时间设定值(SP)和进程变量(PV)之间的差别。CPU采用的计算比例项的公式为:

 其中:

 采样时间n的回路输出比例项数值
 回路增益
 采样时间n的设定值数值
 采样时间n的进程变量数值
 积分项
 积分项MI在时间上与错误(e)和成比例。CPU采用的积分项公式为:

 
 其中:

 采样时间n的回路输出积分项数值
 回路增益
 回路采样时间
 积分时间(亦称为积分时间或复原)
 采样时间n的设定值数值
 采样时间n的进程变量数值
 采样时间n – 1的积分项数值(亦称为积分和或偏差)
 积分和或偏差(MX)是积分项所有先前数值的运行和。每次计算后,根据的数值更新偏差,该数值可能被调节或截取(详情请参阅"变量和范围"一节)。偏差的初始值通常被设为第一次回路输出计算之前的输出值。其他几个常数也是积分项的一部分,例如增益、采样时间(即PID回路重新计算输出值的循环时间)以及积分时间或复原(即用于控制积分项对输出计算影响的时间)。

 微分项
 微分项MD与错误变化成比例。计算微分项的公式为:

 为了避免步骤改变或由于对设定值变化求导带来的输出变化,对该公式进行修改,假定设定值为常数 = 。如下所示,会导致计算进程变量的变化,而不计算错误的变化:

 或:

 其中:

 采样时间n的回路输出微分项数值
 回路增益
 回路采样时间
 回路微分阶段(亦称为微分时间或速率)
   采样时间n的设定值数值
 采样时间n – 1的设定值数值
 采样时间n – 1的进程变量数值
 采样时间n – 1的进程变量数值
 必须保存进程变量,而不必保存错误,用于下一次微分项计算。第一次采样时,数值被初始化,等于。

 
 回路控制选项

 在很多控制系统中,可能有必要仅采用一种或两种回路控制方法。例如,可能只要求比例控制或比例和积分控制。通过设置常数参数值对所需的回路控制类型进行选择。

 如果您不需要积分运算(即在PID计算中无"I"),则应将积分时间(复原)指定为"INF"(无限大)。由于积分和MX的初始值,即使没有积分运算,积分项的数值也可能不为零。
 如果您不需要求导数运算(即在PID计算中无"D"),则应将求微分时间(速率)指定为0.0。
 如果您不需要比例运算(即在PID计算中无"P"),并且您需要I或ID控制,则应将增益值指定为0.0。因为回路增益是计算积分和微分项公式中的系数,将回路增益设为0.0
 会导致在积分和微分项计算中使用的回路增益值为1.0。

 回路输入转换和标准化

 一个回路有两个输入变量、设定值和进程变量。设定值通常为固定数值,类似汽车定速控制的速度设置。进程变量是与回路输出相关的数值,因此可测量回路输出对受控系统的影响。在汽车定速控制的例子中,进程变量为测量轮胎转速的转速计输入。

 设定值和进程变量均为实际数值,其大小、范围和工程单位可能不同。在这些实际数值可用于PID指令操作之前,必须将其转换成标准化浮点表示法。

 第一步是将实际数值从16位整数数值转换成浮点或实数数值。下列指令序列说明如何将整数数值转换成实数。
 ITD AIW0, AC0 //将输入数值转换成双字
 DTR AC0, AC0  //将32位整数转换成实数

 下一步是将实数数值的实数数值表示转换成0.0至1.0之间的标准化数值。可使用下列公式使设定值和进程变量标准化:

 其中:

 实际数值的标准化实数数值表示
 实际数值的非标准化或原始实数数值表示
 对单极数值为0.0,对双极数值为0.5
 等于最大可能数值减去最小可能数值
 = 32,000,对于单极数值(典型)
 = 64,000,对于双极数值(典型)
 下列指令序列说明如何使AC0中的双极数值(间距为64,000)标准化,作为前一个指令序列的继续:

 /R 64000.0, AC0 //使累加器中的数值标准化
 +R 0.5, AC0 //将数值的偏移量设为0.0至1.0范围
 MOVR AC0, VD100 //将标准化数值存储在回路表中

 将回路输出转换成比例整数数值

 回路输出是控制变量,例如汽车定速控制范例中的调速气门设置。回路输出是0.0和1.0之间的标准化实数数值。在回路输出可用于驱动模拟输出之前,回路输出必须被转换成16位成比例整数数值。这一过程是与将PV和SP转换成标准化数值相反的过程。第一步是利用以下公式将回路输出转换为成比例实数数值:

 
 其中:

 回路输出成比例实数数值
 回路输出标准化实数数值
 对于单极数值为0.0,对于双极数值为0.5
 等于最大可能数值减去最小可能数值
 = 32,000,对于单极数值(典型)
 = 64,000,对于双极数值(典型)
 下列指令序列显示如何使回路输出成比例:

 MOVR VD108, AC0 //将回路输出移至累加器。
 -R 0.5, AC0 //只有在双极数值的情况下才包括本语句。
 *R 64000.0, AC0 //使累加器中的数值成比例。

 然后,代表回路输出的成比例实数数值必须被转换成16位整数。下列指令序列显示如何进行此一转换:

 ROUND AC0, AC0 //将实数转换成32位整数。
 DTI AC0, LW0 //转换成16位整数。
 MOVW AC0, AQW0 //写入数值模拟输出。

 正向或反向作用回路
 如果增益为正数,回路则为正向作用;如果增益为负数,回路则为负向作用。(对于I或ID控制,增益值为0.0,将积分和微分时间设为正值将产生正向作用回路,将其设为负值将产生负向作用回路。)

 
 变量和范围

 进程变量和设定值是PID计算的输入值,因此PID指令读取但不改变这些变量的回路表域。

 输出值由PID计算生成,因此每次PID计算完成后更新回路表中的输出值域。输出值被固定在0.0至1.0之间。用户可将输出值域用作输入,在从手动控制到PID指令(自动)输出控制的转换过程中指定初始输出值(请参阅以下"模式"一节中的内容)。

 如果使用积分控制,则PID计算更新偏差值,而且更新后的数值被用作下一次PID计算的输入。当计算输出值超出范围(输出小于0.0或大于1.0)时,则根据下列公式调整偏差:
  当计算输出 > 1.0
 或
    当计算输出 < 0.0

 其中:

 调节偏差数值
 采样时间n的回路输出比例项数值
 采样时间n的回路输出微分项数值
 采样时间n的回路输出数值
 通过按照上述方式调节偏差,一旦计算输出返回适当范围即可实现系统应答能力的改善。计算偏差也被固定在0.0至1.0之间,然后每次完成PID计算时被写入回路表的偏差域。回路表中存储的数值用于下一次PID计算。
 在执行PID指令之前,用户可修改回路表中的偏差值,以便解决某些应用环境中的偏差值问题。以手动方式调节偏差值时,必须格外小心,写入回路表的任何偏差值必须是0.0至1.0之间的实数。

 在回路表中保存进程变量比较,用于PID计算的求导计算部分。您不应当修改该数值。

 
 模式

 S7-200 PID回路没有内装模式控制,只有在使能位进入PID方框时才执行PID计算。因此,循环执行PID计算时存在"自动"模式;不执行PID计算时存在"手动"模式。

 PID指令有一个使能位记录位,与计数器指令类似。该指令使用该记录位检测0至1使能位转换,当检测到这种转换时,将执行一系列运算,提供从手动控制到自动控制的顺利转变。为了顺利转变为自动模式控制,在转换至自动控制之前由手动控制设置的输出值必须作为PID指令的输入供给(为写入回路表条目)。PID 指令对回路表中的数值执行下列运算,以确保检测到0至1使能位转换时从手动控制顺利转换成自动控制:

 ?设置设定值 = 进程变量 

 ?设置旧进程变量 = 进程变量 

 ?设置偏差(MX)= 输出值 

 PID记录位被"设为"默认状态,该状态在CPU启动和控制器每次出现STOP(停止)至RUN(运行)模式转换时建立。如果流入PID方框的使能位在进入RUN(运行)模式后首次被执行,则无法检测到使能位转换,无法执行顺利的模式改变。

 警报检查和特殊操作
 PID指令是执行PID计算的简单但功能强大的指令。如果要求使用其他进程,例如警报检查或回路变量特殊计算,则必须使用受CPU支持的基本指令执行此类进程。

 
 错误条件

 编译时,如果回路表起始地址或指令中指定的PID回路数字操作数超出范围,CPU会生成编译错误(范围错误),编译会失败。

 PID指令对某些回路表输入值不进行范围检查。您必须确保进程变量和设定值(以及偏差和用作输入的以前的进程变量)是0.0和1.0之间的实数。

 如果在执行PID计算数学操作时发生任何错误,将设置SM1.1(溢出或非法数值),并将终止PID指令的执行。(回路表中输出数值的更新可能不完全,因此您应当忽略这些数值,并在下一次执行回路PID指令之前纠正引起数学错误的输入数值。)

 另请参阅:

 PID回路表
 PID调谐控制面板

 PID向导
 PIDx_INIT (PID向导子程序)

 注释:
 具有PID向导配置的项目不直接使用标准PID指令。如果您使用PID向导配置,您的程序必须使用CALL PIDxINIT来激活PID向导子程序。
 PID (标准PID指令)

提问者对于答案的评价:
谢谢,基本上明白,
 但是这个帮助哪有的下载么 ???
 

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc352343.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日
下一篇 2021年7月5日

相关推荐

发表回复

登录后才能评论