Appearance
Continuous P Controller
Proportional-only with integrating output (velocity form)
Overview
The Continuous P Controller implements proportional-only control with an integrating (accumulating) output. Also known as "velocity form" or "incremental" control, the output changes proportionally to error rather than being directly proportional. This is ideal for integrating processes like valve positioning.
When to Use
- Integrating processes: Level, position, inventory
- Self-regulating outputs: Valve positions
- Noise immunity: When derivative causes issues
- Simple tuning: Single gain parameter
Common Applications
| Application | Process Type | Typical Kp |
|---|---|---|
| Valve positioning | Integrating | 0.5-2.0 |
| Level control | Integrating | 0.1-1.0 |
| Tank inventory | Integrating | 0.2-0.8 |
| Dosing adjustment | Self-regulating | 0.5-1.5 |
Control Theory
Concept
Unlike standard P control where output is directly proportional to error, Continuous P changes output proportionally to error:
Standard P: $$output = K_p \cdot error$$
Continuous P (Velocity Form): $$\Delta output = K_p \cdot error \cdot \Delta t$$ $$output_k = output_{k-1} + \Delta output$$
Block Diagram
mermaid
graph LR
SP[Setpoint] --> Sum((+/-))
PV[Process Variable] --> Sum
Sum -->|error| P[Kp × dt]
P -->|Δoutput| Int[Integrator]
Int --> Output[Output]
Output --> Rate[Rate Limit]
Rate --> MV[Manipulated Variable]Mathematical Model
$$output_k = output_{k-1} + K_p \cdot e_k \cdot \Delta t$$
Subject to: $$rate_{min} \leq \frac{\Delta output}{\Delta t} \leq rate_{max}$$ $$output_{min} \leq output \leq output_{max}$$
Parameters
| Parameter | Unit | Range | Default | Description |
|---|---|---|---|---|
| Setpoint | varies | - | - | Target value |
| Kp | - | 0.1-10 | 1.0 | Proportional gain |
| Rate Max | units/day | 1-100 | 10 | Maximum rate of change |
| Rate Min | units/day | -100 to -1 | -10 | Minimum rate of change |
| Output Min | % | 0-100 | 0 | Minimum output |
| Output Max | % | 0-100 | 100 | Maximum output |
| Bias | % | 0-100 | 50 | Initial/center output |
| Action | - | direct/reverse | direct | Control direction |
Tuning Guidelines
Gain Selection
- Start low: Begin with Kp = 0.5
- Increase gradually: Until response is adequate
- Watch for overshoot: Reduce if overshooting
Rate Limit Selection
- Equipment capability: Actuator speed limit
- Process dynamics: How fast process can respond
- Stability: Prevent output racing
Recommended Settings
| Application | Kp | Rate Limit | Bias |
|---|---|---|---|
| Valve position | 1.0 | 10%/hr | 50% |
| Level control | 0.5 | 20%/hr | 50% |
| Flow trim | 1.5 | 30%/hr | 0% |
Configuration
Example: Valve Position Control
json
{
"id": "valve-position-1",
"type": "ContinuousP",
"enabled": true,
"targetNodeId": "control-valve-1",
"pvNodeId": "flow-meter-1",
"pvVariable": "flow",
"manipulatedVariable": "position",
"setpoint": 1000,
"kp": 1.0,
"rateLimit": {
"maxRate": 10,
"minRate": -10
},
"outputMin": 0,
"outputMax": 100,
"action": "direct",
"bias": 50,
"mode": "auto"
}Integration Example
Flow Control via Valve Position
Scenario: Control flow by adjusting valve position
Error = Setpoint - Flow
1000 - 900 = 100 m³/d (positive error)
Δposition = Kp × error × dt
= 1.0 × 100 × (1/24) day
= 4.2%
If previous position = 50%
New position = 50 + 4.2 = 54.2%
Rate check: 4.2% / (1/24 day) = 100%/day
If rate limit = 10%/day → limited to:
New position = 50 + 10 × (1/24) = 50.4%Response Characteristics
Setpoint 1000 ──────────────────────────
┌──────────────── Actual Flow
Flow 900 ─────────┘
Position 60% ─────────────────────────
╭──────────────────── Valve Position
50% ────╯ (ramps up)
Time 0 1h 2h 3hComparison: Continuous P vs Standard PID
| Aspect | Continuous P | Standard PID |
|---|---|---|
| Integrating action | Built-in | From Ki term |
| Complexity | Simple | More complex |
| Tuning | One parameter | Three parameters |
| Noise sensitivity | Low | Depends on Kd |
| Best for | Integrating processes | Self-regulating processes |
Why Use Continuous P?
- Natural for valves: Valve position is inherently integrating
- Simple tuning: Only Kp to adjust
- Smooth response: Rate limits prevent jumps
- Bumpless restart: Starts from last position
Best Practices
Set appropriate bias
- Center of operating range
- Starting point after reset
Rate limit for stability
- Match actuator capabilities
- Prevent process upsets
Action direction
- Direct: More output = more PV
- Reverse: More output = less PV
Monitor for drift
- Check output over time
- Ensure reaching setpoint
Troubleshooting
| Issue | Cause | Solution |
|---|---|---|
| Output drifts continuously | Kp too high | Reduce Kp |
| Slow response | Kp too low | Increase Kp |
| Output races to limit | Rate limit too high | Reduce rate limit |
| Stuck at bias | Kp = 0 or disabled | Check configuration |
| Wrong direction | Action incorrect | Toggle action |
Advanced Features
Rate Limiting
Prevents rapid output changes:
typescript
const maxChange = maxRate * dt;
const minChange = minRate * dt;
outputChange = clamp(outputChange, minChange, maxChange);Accumulated Output
Output accumulates over time:
typescript
accumulatedOutput += kp * error * dt;
output = clamp(accumulatedOutput + bias, outputMin, outputMax);Manual Reset
Set output to specific value:
typescript
controller.setOutput(60); // Set valve to 60%Mathematical Derivation
From PID to Velocity Form
Standard PID: $$u = K_p e + K_i \int e , dt + K_d \frac{de}{dt}$$
Velocity form (derivative of output): $$\frac{du}{dt} = K_p \frac{de}{dt} + K_i e + K_d \frac{d^2e}{dt^2}$$
For Continuous P (Ki = Kd = 0): $$\frac{du}{dt} = K_p \frac{de}{dt}$$
For constant setpoint: $$\frac{du}{dt} = -K_p \frac{dPV}{dt}$$
But we want response to error magnitude: $$\frac{du}{dt} = K_p \cdot e$$
This gives integrating behavior on position.
Related Controllers
- PID-Controller - Standard position-form PID
- Feedforward-Controller - Combine with FF for disturbances
- Ratio-Controller - For ratio-based control
References
- Smith, C.L. "Digital Computer Process Control" (1972)
- Shinskey, F.G. "Process Control Systems" (4th Edition)
- Seborg, D.E. "Process Dynamics and Control" (4th Edition)