使用 PID_Temp的多区域控制简介在多区域控制系统中,可控制工厂的多个部分(即所谓的多个区域),使其达到不同的温度。多区域控制系统的特点为各个温度区域会由于热耦合而相互影响,例如,某个区域的过程值会因热耦合而影响其它区域的过程值。这种影响的作用强度取决于工厂的结构和这些区域所选的工作点。示例:例如,塑料加工行业的挤压厂。必须对通过挤压机的混合物进行控制,使其达到不同的温度,以实现Zui优处理。例如,可能要求挤压机填料口的温度不同于排料口。各个温度区域会由于热耦合而相互影响。在多区域控制系统中使用PID_Temp 时,每个温度区域都由单独的 PID_Temp 实例进行控制。在多区域控制系统中使用 PID_Temp时,请遵照下列说明。分别进行加热和制冷预调节通常,对工厂进行初始调试时会执行预调节,以便对 PID参数进行初始设置并对工作点进行控制。对多区域控制系统进行预调节时通常可对所有区域执行预调节。对于已激活制冷过程且将 PID参数切换作为加热/制冷方法(Config.ActivateCooling = TRUE,Config.AdvancedCooling= TRUE)的控制器,PID_Temp 可在一个步骤中实现加热和制冷的预调节(Mode = 1,Heat.EnableTuning= TRUE,Cool.EnableTuning = TRUE)。建议不要使用这种调节对多区域控制系统中的多个 PID_Temp实例进行预调节。而应分别执行加热预调节(Mode = 1,Heat.EnableTuning =TRUE,Cool.EnableTuning =FALSE)和制冷预调节(Mode = 1,Heat.EnableTuning =FALSE,Cool.EnableTuning=TRUE)。只有当所有区域都完成加热预调节且达到工作点时,才能启动制冷预调节。这会降低调节过程中各区域间由于热耦合而产生的相互影响。调整延迟时间如果应用PID_Temp的多区域控制系统的各区域间存在较强的热耦合,应quebaotongguoPIDSelfTune.SUT.AdaptDelayTime= 0禁止调整预调节延迟时间。否则,如果在调整延迟时间期间(此阶段加热被禁用),某个区域的制冷因其它区域的热效应而无法进行,则确定延迟时间时可能出错。暂时禁用制冷对于已激活制冷(Config.ActivateCooling = TRUE) 的控制器,通过设置 DisableCooling=TRUE,PID_Temp可在自动模式下暂时禁用制冷。这可以确保当其它区域的控制器尚未完成加热调节时,此控制器在调试过程中不会以自动模式制冷。否则,调节可能会因各区域间的热耦合而受到负面影响。步骤对存在热耦合的多区域控制系统进行调试时,可按以下步骤进行操作:1.对于所有已激活制冷的控制器,设置 DisableCooling = TRUE。2. 对于所有控制器,设置PIDSelfTune.SUT.AdaptDelayTime = 0。3. 指定所需设定值(Setpoint参数)并对所有控制器启动加热预调节(Mode = 1,Heat.EnableTuning =TRUE,Cool.EnableTuning = FALSE)。4. 耐心等待,直到所有控制器均完成加热预调节。5.对于所有已激活制冷的控制器,设置 DisableCooling = FALSE。6.耐心等待,直到所有区域的过程值均达到稳定状态,且接近相应的设定值。如果对于某个区域,经过很长时间都无法达到设定值,则说明加热或制冷执行器的作用太弱。7.对于所有已激活制冷的控制器,启动制冷预调节(Mode = 1,Heat.EnableTuning=FALSE,Cool.EnableTuning = TRUE)。说明过程值超出限值如果在自动模式下通过 DisableCooling= TRUE 禁用了制冷,则可能导致当 DisableCooling =TRUE 时,过程值超出设定值或过程值限值。使用DisableCooling时请注意观察过程值,在适用的情况下可以进行干预。说明多区域控制系统对于多区域控制系统,各区域间的热耦合在调试或运行期间可能导致过调次数增加、暂时或长时间超出限值或出现暂时或长时间的控制偏差。请注意观察过程值并准备好进行干预。根据系统不同,操作步骤可能会与上述步骤有所不同。同步多个jingque调节过程如果在自动模式下启动jingque调节且PIDSelfTune.TIR.RunIn = FALSE,则 PID_Temp 会尝试通过PID 控制和当前 PID参数达到设定值。达到设定值后,才会启动实际调节过程。对于多区域控制系统,各个区域达到设定值所需的时间可能各不相同。如果要对多个区域执行jingque调节,PID_Temp可以在达到设定值后,等待的调节步骤,从而同步这些过程。步骤这可以确保当实际调节步骤启动时,所有控制器都已达到设定值。这会降低调节过程中各区域间由于热耦合而产生的相互影响。对于相应区域要执行jingque调节的各控制器,请执行以下步骤:1.对于所有控制器,设置 PIDSelfTune.TIR.WaitForControlIn = TRUE。这些控制器必须处于自动模式,且PIDSelfTune.TIR.RunIn = FALSE。2. 指定所需设定值(Setpoint参数)并对所有控制器启动jingque调节。3. 耐心等待,直到所有控制器的PIDSelfTune.TIR.ControlInReady = TRUE。4. 对于所有控制器,设置PIDSelfTune.TIR.FinishControlIn = TRUE。所有控制器会启动实际调节过程。使用PID_Temp进行超驰控制超驰控制超驰控制时,两个或多个控制器共享一个执行器。只有一个控制器可以随时访问执行器并影响过程。由逻辑运算决定可以访问执行器的控制器。通常根据所有控制器的输出值比较结果做出此决定(例如,进行Zui大选择时),具有Zui大输出值的控制器将获得对执行器的访问权限。基于输出值的选择要求所有控制器均在自动模式下工作。对不影响执行器的控制器进行更新。为防止饱和效应及其对控制响应和控制器之间的切换产生负面影响,这很有必要。自版本V1.1 起,PID_Temp 通过提供一个用于更新未激活控制器的简单过程,支持超驰控制:通过使用变量OverwriteInitialOutputValue 和PIDCtrl.PIDInit,可以预分配自动模式下控制器的积分作用,好像在上一周期中 PID 算法已为 PID 输出值计算PidOutputSum=OverwriteInititalOutputValue。为此,OverwriteInitialOutputValue与当前可以访问执行器的控制器的输出值互连。通过设置位 PIDCtrl.PIDInit,触发积分作用的预分配以及控制器循环和PWM周期的重启。根据预分配的(并针对所有控制器同步的)积分作用,以及当前控制偏差的比例作用与积分作用,在当前循环中进行输出值的后续计算。通过PIDCtrl.PIDInit = TRUE 调用期间,微分作用未激活,对输出值不起作用。此过程可以确保仅根据当前的过程状态和PI 参数对当前输出值进行计算,并从而决定可以访问执行器的控制器。可防止未激活控制器的饱和效应,并防止切换逻辑的错误决定。要求•只有在激活了积分作用时(变量 Retain.CtrlParams.Heat.Ti 和Retain.CtrlParams.Cool.Ti >0.0),PIDCtrl.PIDInit 才有效。•您必须在用户程序中自行分配 PIDCtrl.PIDInit 和OverwriteInitialOutputValue(请参见下面的示例)。PID_Temp 不会自动更改这些变量。• 仅当PID_Temp 处于自动模式(参数 State = 3)时,PIDCtrl.PIDInit 才有效。• 如果可能,请选择 PID算法的采样时间( Retain.CtrlParams.Heat.Cycle 和Retain.CtrlParams.Cool.Cycle变量)以使所有控制器的采样时间均相同,并在同一个循环中断 OB 中调用所有控制器。这样,可以确保在一个控制器循环或 PWM周期内不发生切换。说明不断调整输出值限制也可以通过在其它控制器系统中不断调整输出值限制实现这一操作,而不是如此处所述对没有执行器访问权的控制器进行主动更新。无法使用PID_Temp 实现这一操作,因为在自动模式下不支持更改输出值限制。示例:大型锅炉的控制PID_Temp用于控制大型锅炉。主要目标是控制温度 Input1。为此使用控制器 PID_Temp_1。通过限制控制器PID_Temp_2使温度 Input2 保持在附加测量点的上限值以下。这两个温度仅受一个加热器的影响。控制器的输出值对应于加热功率。通过编写程序变量ActuatorInput 并借助 PID_Temp 的脉宽调制输出值(参数OutputHeat_PWM)对该加热器进行控制。在参数PID_Temp_1.Setpoint 处指定温度 Input1的设定值。在参数 PID_Temp_2.Setpoint处将附加测量点的温度上限值指定为设定值。两个控制器必须共享一个加热器作为共享的执行器。在这种情况下,通过 PID输出值(采用实数格式,参数 PidOutputSum)的Zui小选择实现逻辑,该逻辑决定哪个控制器获得执行器的访问权。由于 PID输出值对应于加热功率,需要较低加热功率的控制器将获得控制权。设备正常运行时,主受控变量的过程值对应于设定值。主控制器PID_Temp_1 已稳定在固定的PID 输出值 PID_Temp_1.PidOutputSum。正常操作过程中,限制控制器Input2 的过程值显著低于指定为 PID_Temp_2设定值的上限。限制控制器要增大加热功率以增大其过程值,即,它将计算一个大于主控制器PID_Temp_1.PidOutputSum 输出值的 PID输出值PID_Temp_2.PidOutputSum。切换逻辑的Zui小选择从而使得主控制器 PID_Temp_1可以继续访问执行器。quebaotongguo赋值 PID_Temp_2.OverwriteInitialOutputValue=PID_Temp_1.PidOutputSum 以及 PID_Temp_2.PIDCtrl.PIDInit = TRUE 来更新PID_Temp_2。如果 Input2 现已接近于上限或超出上限(例如,因故障而导致),则限制控制器PID_Temp_2会计算一个较小的 PID 输出值,以限制加热功率并而减小 Input2。如果PID_Temp_2.PidOutputSum 小于PID_Temp_1.PidOutputSum,则限制控制器 PID_Temp_2将通过Zui小选择获得执行器访问权,并减小加热功率。quebaotongguo赋值PID_Temp_1.OverwriteInitialOutputValue= PID_Temp_2.PidOutputSum 以及PID_Temp_1.PIDCtrl.PIDInit = TRUE 来更新PID_Temp_1。附加测量点 Input2 处的温度下降。主受控变量 Input1的温度也会下降,并且无法再保持在设定值解决故障后,Input2会继续下降,并通过限制控制器增大加热功率。只要主控制器计算出了一个较小的加热功率作为输出值,设备就会恢复正常操作,以使主控制器PID_Temp_1获得对执行器的访问权限。可以通过以下 SCL 程序代码实现此示例使用 PLCSIM 仿真PID_Temp说明使用 PLCSIM 进行仿真不支持通过 PLCSIM 针对 CPU S7-1200 仿真PID_Temp。只能通过 PLCSIM 针对 CPU S7-1500 仿真 PID_TEMP。对于使用 PLCSIM进行的仿真,仿真 PLC 的时间特性与“真实”PLC 并不完全相同。仿真 PLC 循环中断 OB 的实际周期时钟波动比“真实”PLC的波动大。在标准组态中,PID_Temp 会自动确定调用之间的时间,并监视波动情况。使用 PLCSIM 仿真 PID_Temp时,可能检测到采样时间错误 (ErrorBits =DW#16#00000800)。这会导致进行中的调节中止。自动模式下的响应取决于ActivateRecoverMode 变量的值。为防止此类情况发生,应按下列方式为使用 PLCSIM 进行的仿真组态PID_Temp:• CycleTime.EnEstimation = FALSE• CycleTime.EnMonitoring =FALSE• CycleTime.Value:以秒为单位为此变量分配调用循环中断 OB 的周期时钟。