# PID controller
<!-- MICROSIMGEN:BEGIN v1.7 — generated by g08_place_microsims.py; three.js first (§15); do not hand-edit inside -->
## Microsims — p5.js
### PID controller (p5.js) · `P + I + D`
<div class="microsim-player">
<iframe src="https://editor.p5js.org/sciencenibber/full/VOi4_2NFp" width="100%" height="480" frameborder="0" loading="lazy" sandbox="allow-scripts allow-same-origin" title="PID controller — p5.js microsim"></iframe>
</div>
*The three-term controller — proportional, integral, derivative — that runs most of the world's feedback loops.*
**Open in the editor:** [▶ fork this sketch](https://editor.p5js.org/sciencenibber/sketches/VOi4_2NFp) · movement *VI · Control theory & estimation* · library `p5js`
### Related microsims
Live sims on neighbouring articles — 6 of them inside this article's own Wikipedia link tree:
- [[Control_theory]] *(in tree)*
- [[Cruise_control]] *(in tree)*
- [[Digital_signal_processing]] *(in tree)*
- [[Feedback]] *(in tree)*
- [[Frequency_response]] *(in tree)*
- [[Kalman_filter]] *(in tree)*
*Sim hosted off-article; the article owns the reference, not the runtime (WIKI_RULES §10.4). Placed by `g08_place_microsims.py`.*
<!-- MICROSIMGEN:END -->
## Links (Wikipedia order)
<!-- injected from _registry/childlinks/PID_controller.json (2026-07-30T02:09:12Z) -->
`Adaptive_control` · `Adolf_Hurwitz` · `Analog-to-digital_converter` · [[Angular_frequency]] · `Angular_velocity` · `Automation` · `Automation_and_Remote_Control` · `Backlash_(engineering)` · `Biasing` · [[Block_diagram]] · `Bode_plot` · `Centrifugal_governor` · [[Christiaan_Huygens]] · `Closed-loop_controller` · `Closed-loop_transfer_function` · `Coefficient_diagram_method` · `Compact_controller` · `Concentration` · `Conical_pendulum` · `Control_loop` · `Control_reconfiguration` · [[Control_system]] · [[Control_theory]] · `Control_valve` · `Controllability` · [[Cruise_control]] · `Current_loop` · `Deadband` · `Derivative` · `Digital-to-analog_converter` · `Digital_control` · [[Digital_signal_processing]] · `Distributed_control_system` · `Distributed_parameter_system` · `Edward_Routh` · [[Electric_current]] · [[Electric_motor]] · `Electrical_equipment_in_hazardous_areas` · `Embedded_system` · `Energy-shaping_control` · `Errors_and_residuals` · `Fail-safe` · `Feed_forward_(control)` · [[Feedback]] · `Finite_difference` · [[Force]] · `Fourier_transform` · `Fractional-order_control` · `Fractional_calculus` · [[Frequency_response]] · [[Fuzzy_control_system]] · `Fuzzy_logic` · `Gain_scheduling` · `H-infinity_loop-shaping` · `HVAC_control_system` · `Hankel_singular_value` · `Harold_Stephen_Black` · `Helmsman` · `Human_error` · `Hunting_oscillation` · `Hybrid_computer` · `Industrial_control_system` · `Infinite_impulse_response` · `Instability` · `Integral` · `Integral_windup` · `Intelligent_control` · `James_Clerk_Maxwell` · `James_Watt` · [[Kalman_filter]] · `Karl_Johan_Åström` · `Krener's_theorem` · [[Laplace_transform]] · `Lead–lag_compensator` · `Least_squares` · `Licentiate` · `Loop_optimization` · `Low-pass_filter` · [[Lyapunov_stability]] · `Marginal_stability` · `Mass` · [[Mechatronics]] · `Median_filter` · `Microcontroller` · `Millstone` · `Minor_loop_feedback` · [[Model_predictive_control]] · `Motion_control` · `Nathaniel_B._Nichols` · [[Negative_feedback]] · `Nicolas_Minorsky` · `Noise_(spectral_phenomenon)` · `Nonlinear_control` · `Nyquist_stability_criterion` · [[Observability]] · [[Optimal_control]] · [[Oscillation]] · `Overshoot_(signal)` · [[Perceptual_control_theory]] · `Performance` · [[Physical_system]] · `Pneumatic_actuator` · [[Positive_feedback]] · `Power_supply` · `Pressure` · `Process_variable` · `Programmable_logic_controller` · `Proportional_control` · [[Quantization_(signal_processing)]] · [[Real-time_computing]] · `Relay` · `Resistance_thermometer` · `Richard_L._Hills` · `Rise_time` · `Robotic_arm` · [[Robotics]] · `Robust_control` · `Root_locus_analysis` · `SCADA` · `Seismometer` · `Servomechanism` · `Setpoint_(control_system)` · `Settling_time` · [[Signal-flow_graph]] · `Simulink` · `Speed` · `Stability_theory` · `State-space_representation` · `State_observer` · `Steady_state` · `Stiction` · `Stochastic_control` · [[System_dynamics]] · [[System_identification]] · `Temperature` · `Thermocouple` · [[Transfer_function]] · `USS_New_Mexico_(BB-40)` · `Volumetric_flow_rate` · `Weight` · `Windmill` · [[Z-transform]]
> Signal Processing concept · part of the Signal Processing Portal · movement VI · !01 制御 seigyo.svg
<!-- RENDER-THUMB:START -->
!480
*Rendered from the live microsim (▶ motion).*
<!-- RENDER-THUMB:END -->
<!-- GIFPLATE:BEGIN v1.0 g16 — Commons hotlink; do not hand-edit inside -->
## Images
<figure class="wt-gifplate">
<img src="https://commons.wikimedia.org/wiki/Special:FilePath/Oscillating_pendulum.gif" alt="Stabilizing Oscillations" loading="lazy" decoding="async">
<figcaption><strong>Stabilizing Oscillations</strong> — Show proportional-integral-derivative regulation stabilizing motion.<br>
<span class="wt-credit">Wikimedia Commons · <strong>licence pending verification</strong> (run <code>g17_gif_verify.py</code> on a networked lane) · <a href="https://commons.wikimedia.org/wiki/File:Oscillating_pendulum.gif">Details</a></span></figcaption>
</figure>
*Still companion to the 1 live microsim above: the sim is the instrument, the plate is the glance. §15 keeps the player first; this sits in the image slot on [[PID_controller]].*
<!-- GIFPLATE:END -->
## See it next
[](Automatic_control)
*→ Automatic control*
<!-- VISUAL-LINK:END -->
---
Back to Signal Processing Portal · the room · Semiotic gateway
<!-- REAL-GENERATIVE-MEDIA:START -->
## From the Real GENERATIVE library

*Animated: PID controller — placed from the Real G.E.N.E.R.A.T.I.V.E. course library (Electronics room). Source: Wikimedia Commons (via Wikipedia article media). [Details & license](https://commons.wikimedia.org/wiki/File:PID_Compensation_Animated.gif).*
> A proportional–integral–derivative controller (PID controller or three-term controller) is a feedback-based control loop mechanism commonly used to manage machines and processes that require continuous control and automatic adjustment. It is typically used in industrial control systems and various other applications where constant control through modulation ([Wikipedia](https://en.wikipedia.org/wiki/PID_controller))
<!-- REAL-GENERATIVE-MEDIA:END -->
## Media (PD/CC)
<!-- MEDIA-DEPLOY:PID_controller/PID_Compensation_Animated.gif -->
!Gif Library/PID controller/PID Compensation Animated.gif
*PID_Compensation_Animated.gif · CC0*
<!-- /MEDIA-DEPLOY -->
## What it is
A PID controller is a feedback controller that computes its control action as the weighted sum of three terms driven by the error signal: one proportional to the error, one to the integral of the error, and one to its derivative.
## How it works / why it matters
The proportional term pushes harder as the error grows, the integral term accumulates past error to eliminate steady-state offset, and the derivative term anticipates change to damp overshoot and oscillation; tuning the three gains ($K_p, K_i, K_d$) shapes speed, stability, and accuracy of the closed loop. Its simplicity, model-free tuning, and robustness make it by far the most widely used controller in industry — in temperature, motion, flow, and process control. Poor tuning, however, can cause oscillation, sluggishness, or integral windup.
## Signs & universals
Instantiates the semiotic universals: control_loop · feedback · equilibrium.
## Related
The dominant practical algorithm of Automatic control and [[Control_theory]]; used in [[Cruise_control]] and typically analyzed via its [[Transfer_function]] on a [[Linear_time-invariant_system]].
<!-- VISUAL-LINK:START -->
<!-- CRAFT-LINK:START g12 -->
*Built to the [[WT!P5_js_Microsim_Master_Class|p5.js Master Class]].*
<!-- CRAFT-LINK:END -->
## Wikipedia : Wikitube
**Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/PID_controller) : [Wikitube](https://en.wikitube.io/wiki/PID_controller)
## Previous hub tags
Tree parents: [[Control_theory]] · [[Feedback]].
Legacy hubs: none.
---
*Sources: 1 legacy note. Minted wave 1, 2026-07-30 (v1.6 order).*