PID control is one of the most widely used algorithms in engineering control systems. It has mature technology, does not require a mathematical model, offers flexible parameter settings, strong adaptability, robust performance, and effective control results. As a result, it is extensively applied in various industries. However, the tuning of PID parameters significantly affects the control performance, and there is limited research on parameter tuning methods for incremental PID.
There are two main types of PID control: positional PID and incremental PID. In positional PID, the output depends on the entire past state, using the accumulated error value. In contrast, incremental PID calculates only the current and previous two states, making it more efficient. This means that the cumulative error in positional PID is larger, while incremental PID outputs a control increment. If the microprocessor fails, the impact is smaller because the actuator can retain its position, ensuring minimal disruption to the system. Therefore, incremental PID is more commonly used in real-world applications.
**Incremental PID Control**
Incremental PID is a fundamental form of digital PID control. It works by adjusting the control action based on the difference between the current and previous control values. Instead of relying on the integral term’s accumulation, it uses the change in the control signal, which reduces computational load and memory requirements.
The main advantages of incremental PID include:
1. It avoids the need for error accumulation, as the control increment Δu(k) depends only on the last three sampled values, allowing for better control performance through weighting.
2. The computer only outputs a control increment at a time, reducing the impact if a failure occurs, and minimizing disruption to the production process.
3. Manual-to-automatic switching causes minimal disturbance, enabling smooth transitions without causing instability.
Since incremental PID requires memory of previous control values, systems without memory devices typically use positional PID instead.
**Incremental PID Parameter Adjustment Formula**
The incremental PID control formula is derived from the positional PID approach. Assuming the following variables:
- $ u(k) $: The control output at time $ k $
- $ e(k) $: The error at time $ k $
The incremental form can be expressed as:
$$
\Delta u(k) = K_p [e(k) - e(k-1)] + K_i e(k) + K_d [e(k) - 2e(k-1) + e(k-2)]
$$
This simplifies the computation and makes it more suitable for digital implementation.
**Incremental PID Control Algorithm**
When the actuator requires a control increment rather than an absolute value (such as driving a stepper motor), the incremental PID algorithm becomes essential. The algorithm can be derived from the standard PID equation and is often implemented recursively in digital systems.
By using the deviation values from the previous three samples, the control output can be calculated efficiently. Compared to the positional PID algorithm, the incremental version requires less computation, making it more practical for real-time applications.
Additionally, the recursive form of the PID algorithm allows for continuous updates and improved performance over time.
**C51 Program for Incremental PID Control**
Here is a sample C51 code snippet for implementing incremental PID control:
```c
typedef struct PID {
int SetPoint; // Target value
long SumError; // Error accumulation
double Proportion; // Proportional constant
double Integral; // Integral constant
double Derivative; // Derivative constant
int LastError; // Previous error
int PrevError; // Error before previous
} PID;
static PID sPID;
static PID *sptr = &sPID;
void IncPIDInit(void) {
sptr->SumError = 0;
sptr->LastError = 0;
sptr->PrevError = 0;
sptr->Proportion = 0;
sptr->Integral = 0;
sptr->Derivative = 0;
sptr->SetPoint = 0;
}
int IncPIDCalc(int NextPoint) {
int iError, iIncpid;
iError = sptr->SetPoint - NextPoint;
iIncpid = sptr->Proportion * iError
- sptr->Integral * sptr->LastError
+ sptr->Derivative * sptr->PrevError;
sptr->PrevError = sptr->LastError;
sptr->LastError = iError;
return iIncpid;
}
```
This code initializes the PID structure and calculates the incremental control output based on the current and previous errors.
**Exploring the General Control Law and Common Tuning Methods of PID**
1. **Control Law of PID Parameters**
- **Proportional (Kp):** Reacts immediately to the current error, reducing it quickly.
- **Integral (Ki):** Eliminates steady-state error by accumulating past errors.
- **Derivative (Kd):** Predicts future errors based on the rate of change, improving stability.
- **PID:** Combines all three actions for optimal control, balancing speed, accuracy, and stability.
2. **Common Parameter Tuning Methods**
- **Experimental Testing:** A trial-and-error method where parameters are adjusted step-by-step.
- **Theoretical Calculation:** Uses mathematical models to determine optimal values.
- **Experience-Based Method:** Relies on field experience and iterative adjustments, often preferred for its simplicity and effectiveness.
For beginners, starting with proportional, integral, and derivative coefficients at similar levels can help achieve stable control. Understanding these principles helps users apply PID effectively in real-world scenarios.
35 Kv Transformer,Low Noise 35 Kvoil-Immersed Transformer,Oil Immersed Transformers With High Load Capacity,High Voltage Insulated Oil-Immersed Transformer
Tianhong Electric Power Technology Co., Ltd , https://www.tianhongtransformer.com