2.5 Stability and Transient Response
Stability is a feasibility condition¶
For the linear closed-loop system
asymptotic stability requires every continuous-time eigenvalue of to have negative real part. In discrete time, every eigenvalue must lie inside the unit circle. Stability should normally be enforced as a constraint, not traded against cost as if mild instability were acceptable.
Physical design changes open-loop poles. Stiffness and inertia change natural frequencies; damping changes decay; aerodynamics can add negative damping; flexible modes add lightly damped poles. The controller moves closed-loop poles only within limits imposed by authority, sensing, delay, uncertainty, and unmodeled dynamics.
Second-order interpretation¶
For
sets a response time scale and controls oscillation and decay. For the passive mass-spring-damper,
Changing mass or stiffness therefore changes the bandwidth a controller must address. Raising stiffness may speed the rigid-body mode while introducing or exposing structural modes that limit gain.
Transient metrics¶
Rise time, settling time, overshoot, peak acceleration, vibration decay, and disturbance amplification describe different aspects of response. CCD should use metrics tied to the mission. A pole-placement target alone does not enforce actuator effort, comfort, stress, or saturation.
Pole calculation¶
import numpy as np
def passive_poles(m, c, k):
A = np.array([[0.0, 1.0], [-k/m, -c/m]])
return np.linalg.eigvals(A)
for k in (50.0, 150.0, 450.0):
poles = passive_poles(m=2.0, c=8.0, k=k)
print(f"k={k:5.1f} N/m -> poles {poles}")Robust stability¶
Nominal poles are not enough. Plant uncertainty, delay, neglected modes, and controller implementation can erode margins. A physical design that permits high nominal feedback gain may amplify an uncertain flexible mode. Gain margin, phase margin, structured uncertainty, and worst-case analysis become design criteria when robustness drives feasibility.