# Integral Action Design

> Adding integral action to MPC for offset-free tension tracking.

- Skill: `benchflow-ai/integral-action-design` (Agent Skill)
- Install (CLI): `npx skillmds@latest add benchflow-ai/integral-action-design`
- Raw SKILL.md: https://api.skillmd.com/api/skills/benchflow-ai/integral-action-design/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: benchflow-ai (https://skillmd.com/u/benchflow-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/benchflow-ai/integral-action-design

---


# Integral Action for Offset-Free Control

## Why Integral Action?

MPC with model mismatch may have steady-state error. Integral action eliminates offset by accumulating error over time.

## Implementation

```python
u_I = gamma * u_I - c_I * dt * (T - T_ref)
u_total = u_mpc + u_I
```

Where:
- u_I: Integral control term
- gamma: Decay factor (0.9-0.99)
- c_I: Integral gain (0.1-0.5 for web systems)
- dt: Timestep

## Tuning Guidelines

**Integral gain c_I**:
- Too low: Slow offset correction
- Too high: Oscillations, instability
- Start with 0.1-0.3

**Decay factor gamma**:
- gamma = 1.0: Pure integral (may wind up)
- gamma < 1.0: Leaky integrator (safer)
- Typical: 0.9-0.99

## Anti-Windup

Limit integral term to prevent windup during saturation:
```python
u_I = np.clip(u_I, -max_integral, max_integral)
```

## For R2R Systems

Apply integral action per tension section:
```python
for i in range(num_sections):
    u_I[i] = gamma * u_I[i] - c_I * dt * (T[i] - T_ref[i])
```

