EBSILON®Professional Online Documentation
EBSILON Professional 对象 / 组件 / 可再生 / 组件 130:PID 控制器
本主题中
    组件 130:PID 控制器
    本主题中

    组件 130:PID 控制器(带抗饱和功能)


    规格

    管道连接

    1

    信号进 

    2

    PID 出

    3

    设定点

    4

    Kp(作为 M)、TN 或 Kl(作为 H)和 TV 或 KD(作为 P)的控制进口

    通用       用户输入值       结果       特征曲线       物理应用       结果       示例

     

    通用 

    该控制器的任务是在瞬态过程中补偿控制差异(例如由瞬态组件的传递行为引起)。它不能作为数据控制器("迭代控制器")使用,例如像组件 12 那样! 通过校正变量,计算出按时间顺序变化的实际值,直到它达到指定的设定值。这是一个带有 P-、I- 和 D- 部分的控制算法问题,而不是通过稳态输入变量来计算目标值的问题! 这种类型的控制器使用常见的微分方程来计算 PID-控制器的传递函数:

    方程 1-1

    提供具有以下参数的输出信号 y(t):

    输出信号 y(t) 的积分部分可以从输入信号的历史中得到。积分器是通过对以前的输入信号 e(t) 求和来实现的。差分的时间步长 dt 差分的时间步长 Dt 的间隔代替,这些间隔由 EBSILON 中的时间序列对话框给出。

    使用这种离散化,方程 1-1 时间步长 k 变化如下:

    方程 1-2

    这种类型的控制器需要对要控制的物理量以及输入量进行指定。修正变量必须是基本量之一,如质量流量、热焓和压力。关于输入值,也可以是导出值,如热流和温度。应注意设置正确的控制器特性:

    瞬态组件的全局初始化

    所有拥有 FINIT 标志的瞬态组件都可以通过一个全局标志进行控制。

    为此,标志 FINIT 已经被扩展到 GLOBAL: 0。

    如果它被设置为这个值,瞬态模拟的控制将被移交给全局变量"瞬态模式",这个变量可以在下面找到

    附加\模型选项模拟瞬态\选项框"瞬态模式"

     

    然后将把所需的模式(第一次迭代或后续迭代)传递给组件。这可以通过表达式"@calcoptions.sim.transientmode"从时间序列对话框中来控制。

     

    额外的逻辑线(引脚4)

    对于 PID 控制器,有一条额外的逻辑线(端口4),可以选择性地打开。在它的帮助下,控制器的参数(Kp, KI, 和KD)可以从外部设置。这里的数据在每个迭代步骤中都被带入模型。与此相关,还有一个标志 FPARAMIN 用于选择参数的来源。

    规格值 FOUTUS:指定出口信号

    通常情况下,目标变量的实际值在模拟前是未知的,而且它只有在迭代过程中才能确定。另一方面,控制器的出口信号(PIN2)分别取决于实际值和相对于参考变量的差异。这可能会导致收敛问题。为了缓解这个问题,在组件 130 中应用规格值 FOUTUS 。

    FOUTUS = 0 是默认设置。只有在其它方法不能实现收敛的情况下,才建议使用 FOUTUS = 1 的设置。

     


     

     

    用户输入值

     FINIT

    标志:初始化状态

    如父工况(子工况为可选项)

    表达式

    =0: 全局,通过模型选项下的全局变量"瞬态模式"控制。
          "附加\模型选项模拟瞬态\选项框"瞬态模式""

         (见-> 通用-> 瞬态组件的全局初始化)

     =1: 第一次运行 (TCOUNT 设置为 0)

     =2: 继续运行

     FTYPE

    切换控制器参数的规格

    如父工况(子工况为可选项)

    表达式

     =0: 指定比例增益系数和时间常数 Kp、Tn 和 Tv

     =1: 指定增益系数 KP, KI, KD

     FSPIN

    指定增益系数 KP, KI, KD

    如父工况(子工况为可选项)

    表达式          
     =0:  内部给定值

     =1:  从管道 3 外部输入

     =2:  仅从管道 1 输入(不考虑管道 3 和内部设定点)

     FPARAMIN

    控制器参数的来源               

    如父工况(子工况为可选项)

    表达式 

     =0:  内部设置
     =1:  通过连接点 n          

     FSPTYPE

    用于指定控制器参数类型的开关

    如父工况(子工况为可选项)

    表达式

    =1: 压力

    =2: 温度

    =3: 焓

    =4: 质量流量

    =5: 功率、热流量

     FPIDOUT

    控制变量类型的开关  

    如父工况(子工况为可选项)

    表达式

    =1: 压力

    =3: 焓

    =4: 质量流量

     SETPOINT

    内部设定点取决于 FSPSOURCE

     KP

    比例增益系数

     <0: 控制器的负特性

     >0: 控制器的正特性

     KI

    积分增益系数,取决于 FTYPE,在 FTYPE = 0 的情况下不激活

     KD

    微分增益系数,取决于 FTYPE,在 FTYPE = 0 的情况下不激活

     TN

    复位时间,取决于 FTYPE,在 FTYPE = 1 的情况下不激活

     TV

    复位时间,取决于 FTYPE,在 FTYPE = 1 的情况下不激活

     YINI

    输出信号的初始值

     FPIDMODE

    控制器算法切换

    如父工况(子工况为可选项)

    表达式

    =1: 微分方程

    =2: 位置算法

     FINTEGRAL

    积分方法切换

    如父工况(子工况为可选项)

    表达式

    =1: 反向积分

    =2: 正向积分

    =3: 梯形积分

     FYLIMIT

    控制器的极限值切换

    如父工况(子工况为可选项)

    表达式

    =0: 无限制

    =1: 饱和反馈

    =2: 停止积分器

    =3: 积分器的限值

     YMIN

    输出信号的最小值

     YMAX

    输出信号的最小值

     TPRE

    前一个时间段的指数(如果设置为 0,所有的缓冲区将被初始化)

     TIMEINT

    总积分时间

     FOUTUS

    修正值的使用(见"通用"一节)          

    如父工况(子工况为可选项)

    表达式

    =0: 从当前时间步长(最高精度)

    =1: 从上一个时间步长(最高收敛率)

     CFLAG

    积分器限值(钳位)的设定值,无输入变量,对 FYLIMIT = 3 有效
    如果显示值(CFLAG) = 1,则表明钳位在上一时间步骤中是有效的。

     


     

     

    结果值

    RKP

    计算出的比例增益系数

    RKI

    计算出的积分增益系数

    RKD

    计算出的微分增益系数

    RTN

    计算出的复位时间

    RTV

    计算出的速率时间

    RPROP

    控制器输出信号的当前比例部分

    RINT

    控制器输出信号的当前积分部分

    RDIFF

    控制器输出信号的当前微分部分

    RTCURR

    当前时间步骤的指数

    RTIMETOT

    计算结束时的总时间

    RCFLAG

    积分器钳位的状态


    特征曲线

    这些"特征"线并不提供任何规格或关联性来描述组件的特性。它们对于建立信号的记忆是必要的。通常情况下,不需要设置任何数值或给定规格值,因为它们是由时间序列计算自动传输的。

     

    CCONTROLIN - 管道 1 的输入信号历史记录

    这条线存储了管道 1 的输入信号历程。

    x-轴:时间步骤,从第一步 Dt 开始,以秒为单位累计。

    y-轴:输入信号的值。

    COUTPUT - 管道 2 输出信号历史记录

    这条线存储了管道 2 的输出信号历程。

    x-轴:时间步骤,从第一步 Dt 开始,以秒为单位累计。

    y-轴:输出信号的值。

    CINTEGRATOR - 输出信号积分部分的历史

    这条线存储了代表管道 2 输出信号 I 部分积分器数值的历程。

    x-轴:时间步骤,从第一步 Dt 开始,以秒为单位累计。

    y-轴:输出信号的值。

    CSETPOINT - 设定点的历史(管道 3 或内部)

    这条线存储设定点的历程。

    x-轴:时间步骤,从第一步 Dt 开始,以秒为单位累计。

    y-轴:设定点的值。

     

    结果曲线

    RACONTROLIN - 管道 1 输入信号的历史

    RAOUTPUT - 管道 2 输出信号的历史

    RAINTEGRATOR - 管道 2 输出信号积分部分的历史

    RASETPOINT - 设定点(管道 3 或内部)的历史

    输出曲线与相应的特征线相关联,它们都显示时间步骤结束时的数值。
    为了计算下一个时间步骤,结果曲线的值被复制到特征线中并形成一种循环缓冲。


    物理应用

    方程式

    考虑到用户需求,有两种算法来确定控制器方程式 1-2 的数值处理:

    • PID 差分方程
    • 定位算法

    差分方程

     

      

     

    定位算法

     

               
     y(k)     = y(k-1) + b0*e(k)+b1*e(k-1)+b2*e(k-2)

     其中 b0 = KP + KI*DT+KD/DT

             b1 = -KP-2KD/DT

             b2 = KD/DT
            

     

    输入参数的关联性(基于理想的 PID 控制器模型)

     


     KI  = KP/TN, 且 TN = KP/KI

     KD = KP*TV, 且 TV=KD/KP
                     

     

    控制输出信号的可能性(抗饱和)

    所有真实的控制器都会达到一个几乎是物理上确定的被控制量的极限。不管是下限还是上限,都会削减控制系统可能的输出值范围。例如,在给定条件下,水龙头的输出只能在零和最大流量之间变化。

    因此,如果有残留控制偏差,积分器部分可能会导致问题(饱和效应)。事实上,这意味着积分器的数值可能需要很长时间才能重新平衡。

    为了控制输出信号,特别是信号中的积分器部分,可以采用各种方法:

    饱和度反馈  (FYLIMIT = 1)

    y(k)    <=  ymax && y(k) >= ymin 

    y(k)    = ymax, 或 ymin

    y(k-1) = (ylim - KP*e(k) - KD/DT*(e(k) -e(k-1)))/KI*DT
              

     

    这种方法将输出信号与一个给定的极限值进行比较。当欠流或溢流时,极限值将被设置为控制器的输出,积分部分则通过差分值的反馈来固定,这模拟了对积分器的零输入。通过这种方式,存储的值仍然是激活的,但不会导致任何超出阈值。

     停止积分 (FYLIMIT = 2)

     


     y(k)    <=  ymax && y(k) >= ymin 

     y(k)    = ymax, 或 ymin

     y(k-1) = const. (y(k-2))

     

    这种方法通过将积分设置为一个常数来停止积分,例如前一个时间步骤的值。

     钳位积分 (FYLIMIT = 3)

     


     y(k)    <=  ymax && y(k) >= ymin 

     Se(i)  = ymax, 或 ymin

     

    这种方法将积分限制在给定的范围内。

    积分方式

    对于控制器方程中的求和计算,可以选择三种方法:

     正向

     

     Se(i) = e(k)

     

     反向

     

     Se(i) = e(k-1)      

     

     梯形

     

      Se(i) = 1/2*(e(k)+e(k-1))               

     


     

    组件显示

    显示选项 1


    示例

    点击 >> 组件 130 示例 << 加载示例。

    查看其它