Comprehensive review of all five modules with emphasis on PID control, digital implementation, and system integration. All prior modules are also represented.
| Topic | Equation / Formula | Notes |
|---|---|---|
| Kline-McClintock | w_R = √∑(∂R/∂x_i · w_xi)² | RSS uncertainty propagation |
| Confidence Interval | x̄ ± t·s/√N | t from table at df = N-1 |
| INA Gain | A = 1 + 2R/R_G | R = internal precision resistor |
| Quarter-bridge | V_out = V_ex·G_f·ε/4 | Linear approximation |
| Nyquist | f_s ≥ 2·f_max | Minimum sampling rate |
| ADC resolution | Δ = V_FSR/2&sup_N | Step size per count |
| CJC correction | V_corr = V_meas + V_CJC(T_ref) | Type K: ~41 µV/°C |
| Pt100 linear | R(T) ≈ 100(1 + 0.00385T) | T in °C; 0-850°C range |
| Laplace diff. | L{dx/dt} = sX(s) - x(0) | Key property |
| Closed-loop TF | G_CL = G/(1+GH) | Unity feedback: H=1 |
| 2nd order ω_d | ω_d = ω_n√(1-ζ²) | Underdamped only |
| %OS | e^(-πζ/√(1-ζ²))×100% | Underdamped step response |
| Settling time | t_s = 4/(ζω_n) | 2% criterion |
| PID continuous | u = K_p·e + K_i∫e dt + K_d·de/dt | Parallel form |
| Z-N PID (FOPDT) | K_p=1.2T/(KL), T_i=2L, T_d=0.5L | Reaction curve method |
| Discrete PI (Tustin) | I[k]=I[k-1]+(K_i·T_s/2)(e[k]+e[k-1]) | Tustin integration |
| Encoder θ_res | 360°/(4×PPR) | Quadrature decoding |
| Orifice flow | Q = C_d·A_2·√(2ΔP/(ρ(1-(A_2/A_1)²))) | Discharge coefficient C_d |
η = 850/1000 = 0.850 (85.0%)
∂η/∂Q_out = 1/Q_in = 1/1000 = 0.001 → (0.001×12)² = 0.000144
∂η/∂Q_in = -Q_out/Q_in² = -850/10&sup6; = -0.00085 → (0.00085×8)² = 0.0000046
w_η = √(0.000144 + 0.0000046) = √0.0001486 = 0.01219
η = 0.850 ± 0.012 (1.4% uncertainty)
Thermistor: max ~150°C. Eliminated. Pt100 RTD: max ~850°C but mechanically fragile in vibration. Type J: max ~750°C, susceptible to oxidation above 550°C. Eliminated at 650°C. Type K: max 1350°C, robust, widely available, excellent vibration tolerance in mineral-insulated (MI) sheathed versions.
Type K thermocouple (MI sheathed). High range, vibration-resistant, excellent at 650°C.
Closed-loop characteristic equation: 1 + G(s) = 0 → s(s+2)(s+4) + K = 0
s(s²+6s+8) + K = 0 → s³ + 6s² + 8s + K = 0
Routh array: Row1: 1, 8 Row2: 6, K Row3: (48-K)/6, 0 Row4: K
For stability, all first-column entries positive: K>0 AND (48-K)/6>0 → K<48
Stable for 0 < K < 48. At K=48: sustained oscillations (marginally stable).
K_p = 0.6×K_u = 0.6×12 = 7.2
T_i = T_u/2 = 4/2 = 2 s → K_i = K_p/T_i = 7.2/2 = 3.6 s&sup-¹
T_d = T_u/8 = 4/8 = 0.5 s → K_d = K_p×T_d = 7.2×0.5 = 3.6 s
K_p = 7.2, K_i = 3.6 s&sup-¹, K_d = 3.6 s
Windup: When the heater saturates at 100% power (maximum), the temperature error remains positive. The integral term continues accumulating (winding up) to a very large value. When the setpoint is reached, the large integral forces the controller to maintain full power well past the setpoint, causing severe overshoot. The system then undershoots as the integral finally unwinds.
Prevention (clamping): Stop integrating when the controller output is saturated. If u[k] ≥ u_max and e[k] > 0, set I[k] = I[k-1] (do not update integral).
Windup occurs when actuator saturates and error persists. Prevent with clamping: freeze the integrator when the output is at its limit.
A pure gain has no dynamics to discretize. C(s) = 5 maps directly to C[k] = 5 for all methods (Euler forward, backward, Tustin all give the same result for a memoryless gain).
Discrete equation: u[k] = 5·e[k]
u[k] = 5·e[k]. No difference between methods for pure gain (no s dependence to transform).
Moore FSM outputs (by state):
Missing transition added: HEATING → COOLING (if temperature overshoots significantly). All states must handle undefined inputs (remain in state or go to FAULT).
4-state Moore machine. Each state drives outputs directly. Transitions driven by sensor thresholds and commands. Implement in C++ with enum + switch-case in timer ISR.
(a) Sensor sensitivity: 100 mV / 50 N = 2 mV/N. ADC step = 3300 mV / 4096 counts = 0.806 mV/count. Force per count = 0.806 mV ÷ 2 mV/N = 0.403 N/count.
(b) Resolution = 0.403 N. Target tolerance = ±0.5 N = 1.0 N range = ~2.5 counts. This is marginally achievable: the ADC resolution (0.40 N) is below the ±0.5 N tolerance, so the target is achievable if the sensor noise is below 0.5 N (which a good INA and averaging should achieve). A 16-bit ADC would give 0.025 N resolution, which is more comfortable.
(a) Force resolution ≈ 0.40 N/count. (b) Marginally achievable; ADC resolution is within spec but noise margin is tight. Consider 16-bit ADC or averaging for robust performance.