224  PID: Tuning and Applications

224.1 Learning Objectives

By the end of this chapter, you will be able to:

  • Tune PID Parameters: Use manual and automatic tuning methods to optimize controller performance
  • Apply Control Theory: Implement temperature, motor, and position control systems using microcontrollers
  • Analyze Real-World Systems: Evaluate industrial PID implementations and their performance metrics
  • Select Appropriate Configurations: Choose P, PI, or PID based on application requirements
TipMVU: PID Tuning in Practice

Core Concept: Start tuning with P only (increase until oscillation), add I to eliminate steady-state error, then add D to reduce overshoot - not every application needs full PID; PI often suffices. Why It Matters: Poorly tuned PID causes oscillation, overshoot, or sluggish response; systematic tuning achieves optimal performance without trial-and-error waste. Key Takeaway: Start with Kp that produces slight oscillation, set Ki to eliminate offset in 2-5 settling times, add Kd only if overshoot causes actual problems - simpler is usually better in production IoT systems.

224.2 Prerequisites

Before diving into this chapter, you should be familiar with:

Misconception 1: “Higher Kp always means better performance”

Reality: Increasing proportional gain Kp makes the system respond faster initially, but excessive Kp causes overshoot and oscillation. There’s an optimal Kp value - too low leaves steady-state error, too high creates instability.

Example: Thermostat with Kp=10 oscillates wildly between 18C and 26C. Reducing to Kp=2 provides smooth approach to 22C target.


Misconception 2: “Integral term is always necessary”

Reality: Integral control eliminates steady-state error but isn’t always needed. Simple applications with acceptable error tolerance (LED dimming, fan speed) work fine with P-only control. Adding I increases complexity and can cause integral windup problems.

When I is critical: Precision temperature control, motor position control, chemical process regulation.

When I is optional: Simple ON/OFF with hysteresis, non-critical comfort applications.


Misconception 3: “Derivative term makes the system faster”

Reality: Derivative actually slows down aggressive P and I responses to prevent overshoot. It doesn’t speed up the system - it adds damping and stability. D term is the “brake” that prevents overshooting the target.

Analogy: Car approaching stop sign. P says “brake proportional to distance.” I says “brake more if you’ve been too close for a while.” D says “if approaching fast, brake harder NOW to prevent passing the line.”


Misconception 4: “PID parameters can be randomly adjusted until system works”

Reality: PID tuning requires systematic methods. Random adjustment wastes time and can cause damage or instability. Use established methods: Ziegler-Nichols, Cohen-Coon, or software auto-tuning.

224.3 Systematic PID Tuning Approach

Systematic approach:

  1. Start with all gains at zero
  2. Increase Kp until stable oscillation (critical gain Ku)
  3. Add Ki to eliminate offset
  4. Add Kd to reduce overshoot
  5. Fine-tune iteratively
WarningTradeoff: P-Only vs Full PID Control

Option A: P-Only Control - Simplest implementation using only proportional gain. Fast response but always has steady-state error (offset from setpoint).

Option B: Full PID Control - Three-term controller with proportional, integral, and derivative gains. Eliminates steady-state error and reduces overshoot but requires careful tuning.

Decision Factors:

  • Choose P-Only when: Application tolerates 2-10% steady-state offset (LED dimming, fan speed), system responds quickly with minimal inertia, tuning time must be minimized, or computational resources are extremely limited (8-bit microcontrollers with <2KB RAM).

  • Choose Full PID when: Zero steady-state error is required (precision temperature control within 0.1C), overshoot must be minimized (liquid level control to prevent overflow), system has significant thermal or mechanical inertia, or disturbances are frequent and unpredictable.

  • Tuning effort comparison: P-only requires adjusting 1 parameter (Kp) - typical tuning time 5-15 minutes. Full PID requires tuning 3 parameters (Kp, Ki, Kd) with interaction effects - typical tuning time 1-4 hours for manual methods, or 15-30 minutes with auto-tuning algorithms.

TipMVU: Choosing Your PID Configuration

Core Concept: You rarely need full PID - PI control handles 80% of real-world applications because most systems tolerate some overshoot but cannot tolerate persistent steady-state error. Why It Matters: Adding the D term introduces noise sensitivity and tuning complexity; only precision applications like motor positioning or temperature-critical processes justify the extra effort. Key Takeaway: Start with PI control (Kp for responsiveness, Ki for accuracy), add D only if overshoot causes actual problems - simpler is usually better in production IoT systems.

224.4 Real-World Example: Industrial Brewery Temperature Control

Industry Context: A craft brewery fermentation process requires precise temperature control during different fermentation stages. Temperature variations >+/-0.5C affect yeast metabolism, producing off-flavors that ruin entire 1,000-liter batches worth $8,000-$12,000 each.

System Architecture:

Component Specification Cost Purpose
Fermentation Tank 1,000L stainless steel, jacketed $15,000 Primary fermentation vessel
Temperature Probe PT100 RTD, +/-0.1C, 4-20mA $120 Measure wort temperature
Glycol Valve Modulating control valve, 0-100% $850 Regulate cooling flow
Heating Element 2kW immersion heater, PWM control $280 Provide heating when needed
ESP32 Controller Custom board + 16-bit ADC $45 Execute PID control loop
Cloud Platform AWS IoT Core + Lambda $30/month Monitoring and alerts

Fermentation Profile Requirements:

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#2C3E50', 'primaryTextColor': '#fff', 'primaryBorderColor': '#16A085', 'lineColor': '#16A085', 'secondaryColor': '#E67E22', 'tertiaryColor': '#7F8C8D'}}}%%
graph TD
    Stage1[Stage 1: Primary Fermentation<br/>Temperature: 18.0 deg C +/-0.3<br/>Duration: 7 days] --> Stage2[Stage 2: Diacetyl Rest<br/>Temperature: 20.0 deg C +/-0.5<br/>Duration: 2 days]
    Stage2 --> Stage3[Stage 3: Conditioning<br/>Temperature: 2.0 deg C +/-1.0<br/>Duration: 14 days]
    Stage3 --> Complete[Ready for Packaging]

    style Stage1 fill:#E67E22,color:#fff
    style Stage2 fill:#16A085,color:#fff
    style Stage3 fill:#2C3E50,color:#fff
    style Complete fill:#16A085,color:#fff

Figure 224.1: Beer fermentation temperature profile with three PID-controlled stages

PID Tuning for Different Stages:

Stage Setpoint Kp Ki Kd Rationale
Primary (18C) 18.0C 4.5 0.15 1.8 Tight control, moderate Kp (exothermic fermentation produces heat)
Diacetyl Rest (20C) 20.0C 3.0 0.1 1.2 Less aggressive (allows natural temp rise)
Conditioning (2C) 2.0C 6.0 0.25 2.5 High Kp for cold-crash, strong integral to overcome thermal mass

Performance Metrics (Before vs After PID Implementation):

Metric Before (Hysteresis Control) After (PID Control) Improvement
Temperature Stability +/-1.5C oscillation +/-0.15C deviation 90% improvement
Off-Flavor Batch Rejection 12% (5 batches/year) 1.2% (0.5 batches/year) 90% reduction
Annual Waste Cost $50,000 (5 x $10K/batch) $5,000 (0.5 x $10K) $45K saved
Energy Consumption 45 kWh/batch (frequent on/off) 32 kWh/batch (modulation) 29% reduction
Setpoint Transition Time 18C to 2C in 8 hours (overshoot to -1C) 18C to 2C in 6 hours (no overshoot) 25% faster, no overshoot
Glycol Valve Cycling 200 cycles/day (wear) 15 cycles/day (smooth modulation) 92% reduction, 5x valve lifespan

PID Control Response During Disturbance Event:

Scenario: During primary fermentation (Day 3), yeast activity peaks, generating 150W of metabolic heat. Ambient temperature also rises from 20C to 28C (summer heatwave).

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#2C3E50', 'primaryTextColor': '#fff', 'primaryBorderColor': '#16A085', 'lineColor': '#16A085', 'secondaryColor': '#E67E22', 'tertiaryColor': '#7F8C8D'}}}%%
flowchart LR
    D1[Disturbance:<br/>+150W Yeast Heat<br/>+8 deg C Ambient] --> T1[Temp Rises:<br/>18.0 to 18.6 deg C]
    T1 --> E1[Error Detected:<br/>+0.6 deg C above setpoint]
    E1 --> P1[P Term:<br/>Kp x 0.6 = 2.7% valve]
    E1 --> I1[I Term Accumulates:<br/>integral increasing]
    E1 --> D1a[D Term Detects:<br/>Rapid rise = +0.3 deg C/min]
    P1 & I1 & D1a --> V1[Glycol Valve Opens:<br/>45% to 85%]
    V1 --> C1[Cooling Increases:<br/>Temp stabilizes at 18.1 deg C]
    C1 --> R1[Recovery:<br/>Back to 18.0 deg C in 8 minutes]

    style D1 fill:#E74C3C,color:#fff
    style E1 fill:#E67E22,color:#fff
    style V1 fill:#16A085,color:#fff
    style R1 fill:#2C3E50,color:#fff

Figure 224.2: PID response to combined fermentation heat and ambient temperature disturbance

Key Lessons:

  1. Adaptive PID Gains: Different fermentation stages require different tuning. High Kp during cold-crash (large temperature delta), moderate Kp during fermentation (smaller delta, exothermic reaction).

  2. Derivative is Critical: Without D term, system overshoots 2C setpoint down to -1C during cold-crash, stressing yeast. D term (Kd=2.5) provides predictive damping, smooth approach to 2.0C.

  3. Integral Eliminates Offset: Yeast metabolic heat creates constant +150W disturbance. P-only control settles at 18.4C (0.4C offset). Adding integral (Ki=0.15) accumulates error, increasing cooling until exact 18.0C achieved.

  4. Local Control Latency: ESP32 PID loop runs at 1 Hz (1-second intervals). Cloud-based control would have 3-10 second latency - during rapid fermentation, temperature could swing +/-0.8C before correction arrives. Local feedback is mandatory.

  5. ROI Analysis: $1,295 hardware investment. Payback in 11 days from avoiding just one bad batch ($10K). Additional savings from energy (29% reduction = $450/year) and valve longevity (5x lifespan = $170/year replacement cost savings).

224.5 PID Across Different IoT Domains

This variant shows how the same PID concepts apply differently across various IoT application domains.

%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#2C3E50', 'primaryTextColor': '#fff', 'primaryBorderColor': '#16A085', 'lineColor': '#16A085', 'secondaryColor': '#E67E22', 'tertiaryColor': '#7F8C8D', 'fontSize': '11px'}}}%%
graph TB
    subgraph HVAC["HVAC CONTROL"]
        direction TB
        H1["Setpoint: Temperature<br/>22C +/- 0.5C"]
        H2["Sensor: Thermistor<br/>Response: 5-30 sec"]
        H3["Actuator: Valve/Fan<br/>Slow modulation"]
        H4["Priority: Energy<br/>efficiency over speed"]
        H5["Kp: LOW<br/>Ki: HIGH<br/>Kd: LOW"]
    end

    subgraph Motor["MOTOR CONTROL"]
        direction TB
        M1["Setpoint: RPM<br/>3600 +/- 10 RPM"]
        M2["Sensor: Encoder<br/>Response: 1-10 ms"]
        M3["Actuator: PWM Driver<br/>Fast switching"]
        M4["Priority: Speed<br/>and precision"]
        M5["Kp: HIGH<br/>Ki: MEDIUM<br/>Kd: HIGH"]
    end

    subgraph Agri["IRRIGATION"]
        direction TB
        A1["Setpoint: Soil Moisture<br/>35% +/- 5%"]
        A2["Sensor: Capacitive<br/>Response: 1-5 min"]
        A3["Actuator: Solenoid<br/>On/Off cycles"]
        A4["Priority: Water<br/>conservation"]
        A5["Kp: MEDIUM<br/>Ki: HIGH<br/>Kd: VERY LOW"]
    end

    subgraph Vehicle["AUTONOMOUS VEHICLE"]
        direction TB
        V1["Setpoint: Lane Center<br/>+/- 5 cm"]
        V2["Sensor: Camera/LIDAR<br/>Response: 10-50 ms"]
        V3["Actuator: Steering<br/>Fast, precise"]
        V4["Priority: Safety<br/>no overshoot"]
        V5["Kp: MEDIUM<br/>Ki: LOW<br/>Kd: VERY HIGH"]
    end

    H1 --> H2 --> H3 --> H4 --> H5
    M1 --> M2 --> M3 --> M4 --> M5
    A1 --> A2 --> A3 --> A4 --> A5
    V1 --> V2 --> V3 --> V4 --> V5

    style HVAC fill:#16A085,stroke:#2C3E50,color:#fff
    style Motor fill:#E67E22,stroke:#2C3E50,color:#fff
    style Agri fill:#2C3E50,stroke:#16A085,color:#fff
    style Vehicle fill:#7F8C8D,stroke:#2C3E50,color:#fff

Figure 224.3: Different IoT domains require different PID tuning strategies based on sensor response time, actuator characteristics, and system priorities.

224.6 Practical Design Considerations

When designing IoT systems with PID control, consider:

Sensor Placement:

  • Feedback sensors must accurately measure the controlled variable
  • Minimize latency between actual change and sensor detection
  • Consider sensor accuracy requirements vs. cost

Communication Delays:

  • For distributed systems, network latency affects feedback loop performance
  • Long delays can cause instability
  • May need to implement local closed-loop with cloud monitoring

Failure Modes:

  • What happens if feedback sensor fails?
  • Should system fail-safe (shut down) or continue open-loop?
  • Redundant sensors for critical applications?

Power Constraints:

  • Closed-loop systems consume more power
  • May need to alternate between open and closed loop operation
  • Sleep modes between control actions

224.7 Knowledge Check

Question: A smart HVAC system samples temperature every 10 seconds. At t=0s, temp=20C; t=10s, temp=20.5C; t=20s, temp=21.5C. What does the derivative term detect?

Explanation: Derivative term measures rate of change (temperature velocity). Calculation: t=0-10s: change=0.5C/10s. t=10-20s: change=1.0C/10s. Rate is increasing (acceleration). Derivative action: Detects rapid rise and reduces heating preemptively to prevent overshoot.

224.9 Summary

This chapter covered practical PID tuning and real-world applications:

  • Systematic Tuning: Start with P-only, add I to eliminate offset, add D to reduce overshoot
  • Configuration Selection: PI handles 80% of applications; full PID for precision requirements
  • Real-World Example: Industrial brewery achieving 90% improvement in temperature stability with $45K annual savings
  • Domain-Specific Tuning: HVAC (low Kp, high Ki), motors (high Kp, high Kd), irrigation (medium Kp, high Ki)
  • Design Considerations: Sensor placement, communication delays, failure modes, power constraints

224.10 What’s Next

The next chapter explores Processes & Systems Fundamentals, covering the theoretical foundations of systems, processes, input-output transformations, and how IoT devices transform inputs into meaningful outputs through controlled operations.

Foundation:

Architecture:

Sensing & Actuation:

Applications:

Learning Resources: