iQ-F PID controller function block

iQ-F PID controller function block

This article describes implementation of a PID instruction inside a function block for iQ-F PLC.
Ten artykuł opisuje blok funkcyjny dla sterownika iQ-F implementujący instrukcję PID.

"Copyright © Mitsubishi Electric Europe B.V.

IMPORTANT !

These Function Blocks are demo versions that are only  intended to demonstrate program functions and provide general orientation for  your software choices. They are not suitable for use in real applications! "

"Improper use of demo versions in applications can lead to serious malfunctions  and damage! Programs for real applications must always be configured for the  individual application by trained staff and tested thoroughly before being  used.

Mitsubishi Electric cannot assume any liability if these examples are used in real applications."



1. Function Block

This function block is a iQ-F PID instruction implementation for ease of use with all functionality and parameters as inputs of fb. There is also added manual mode for setting exact Manipulated Value with PID turned off. It can be use for easier configuration of PID regulation in iQ-F PLC.



2. Settings

To start PID regulation you need to set parameters described below

      2.1 Basic PID inputs and outputs:

Set Value is value you want to achieve in regulation, Process Value is actual value of regulated object and Manipulated Value is output of regulator.

      2.2 Operation direction:

Forward operation is operation that increases the output value (MV) when the measured value (PV) becomes larger than the target value (SV). This operation is used when performing cooling control:



Backward operation is operation that increases the output value (MV) when the measured value (PV) becomes smaller than the target value (SV). This operation is used when performing heating control.


This option is settable from i_bOperationDirection input. "0" is Forward (cooling) operation and "1" is Backward (heating) operation:



      2.3 Modes:

When enabling function block with i_bEN input you need to select and enable one of the operation modes:

            2.3.1 Manual mode

In this mode value writen to i_wManualSetValue is set to o_wManipulatedValue.

            2.3.2 Auto mode

In this mode o_wManipulatedValue is calculated by PID regulator.

      2.4 Sampling time:

To properly use PID regulation you need to set sample frequency. In this function block you set sampling time in miliseconds. Sampling time should be at least as fast as Nyquist rate which is twice as fast as the response rate of the controlling system. But preferably sampling time should be 5 to 10 times faster then system frequency.

      2.5 Overshoot Suppression Processing:

This input enables additional processing counteracting overshoot occurrence



      2.6 Manipulated Value settings:

            2.6.1 Limits

To limit manipulated value you need to set upper and lower limit value (ULV, LLV). When you set 1000 in ULV and 0 in LLV it mean that Manipulated value will not exceed 1000 nor drop below 0:




            

            2.6.2 Alarms                     

When you want to know when Manipulated Value reaches exact value you need to set Upper and Lower Limit Alarm:



When Manipulated Value reaches alarm treshold will be turned on:


      2.7 Input filter:

The input filter (α) is a software filter to reduce the fluctuation of the measured value (PV) caused by noise. By setting this time constant of the filter according to the control target characteristics and noise level, the effect of noise can be reduced. If the input filter value is too small, the filter effect is small. If the input filter value is too large, the input response is bad. Setting range: 0 to 99 (%).


      2.8 Regulation constants:

Before turning PID regulation ON for first time you need to set some values in registers connected to this inputs. After autotuning they will be overwitten:



3. Autotuning:

      3.1 Autotuning parameters:

Before starting autotuning you need to set basic parameters like: autotuning method (limit cycle or step response method) , hysteresis (in limit cycle method), lower and upper value limit in autotuning and wait time setting from end of tunning cycle to start PID control

      3.2 Autotuning method:

This function block support two autotuning methods: limit cycle and step response. To select method you need to use i_bATMethod:




            3.2.1 Limit cycle method:

When in the limit cycle method, changes in the input value in two-position control (in which the output Upper Limit Value (ULV) and output Lower Limit Value (LLV) are switched according to the deviation) are measured, and then constants in the PID control are obtained. 



To properly configure lthis method you need to declare four parameters, one o them is histeresis:



It says how much Process Value will be rising and falling during autotuning. Hysteresis is declared by i_wATSHPV input:



Next, you need to set upper and lower limit values for autotuning which limit Manipulated Value during autotuning:





Last parameter of this method is wait setting form end of tuning cycle to start of PID control (KW):




            3.2.2 Step respone method:

In step response method, by giving stepped output from 0 to 100 % to the control system, three constants in the PID control are obtained from the operation characteristics (maximum ramp (R) and dead time (L) and the input value variation. The stepped output may be obtained from 0 to 75% or from 0 to 50 %.


      3.3 Starting autotuning

To start tuning process firstly you need to start standard PID control and then turn on i_bStartAutoTuning input.



When autotuning will start, output o_bInAutoTuning will turn on:



When autotuning will end, output o_bAutoTuningComplete will turn on:


      3.4 Example autotuning results

Example autotuning result using limit cycle method (red line is Set Value and white line is Process Value) are presented below:


4. Example project

In attachment there is a example project for simulating pid regulation of temperature. There's also included PID_IQF structure for this function block. Temperatule is simulated with second inertia model to create more realistic environment:













    • Related Articles

    • iQ-F PWM outputs controler for PID temperature regulation

      This article describes the function block to control heating/cooling outputs with PWM for temperature control using PID Ten artykuł opisuje blok funkcyjny do sterowania wyjściami grzania/chłodzenia wykorzystując PWM dla kontroli temperatury poprzez ...
    • Determination of PID parameters using table method

      W dokumencie opisane są tabelaryczne metody doboru nastaw w oparciu o model inercyjny pierwszego rzędu. Parametry modelu wyznaczane są z użyciem narzędzia Realtime Monitor Function Summary: This document describes PID tuning using step response ...
    • INV - FR-E800 - Position control in Vector Mode

      The article provides information on how to prepare the FR-E800 frequency converter and FR-A8AP -E-kit encoder card for positional vector operation. For details, refer to the manual: FR-E800 Instruction Manual (Function), Chapter 7 FR-A8AP E-kit card ...
    • iQ Monozukuri HANDLING FAQ

      This article answered for frequently asked questions about iQ Monozukuri HANDLING. Q1. For what kind of application this package is useful? This solution provides machine libraries for controlling the simplified robot (link configuration), ...
    • GX Works3 - Function block for rounding float numbers with variable amount of significant numbers

      This article contains GX Works3 function block for rounding float numbers with variable amount of significant numbers. "Copyright © Mitsubishi Electric Europe B.V. IMPORTANT ! These Function Blocks are demo versions that are only intended to ...