Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

1.5 What Performance Opportunities Sequential Design Misses

Conditional optima are not system optima

Suppose pp is a plant variable and cc is a controller variable. A sequential process computes

pseq=argminpJp(p),cseq=argmincJ(pseq,c).p_{\mathrm{seq}}=\arg\min_p J_p(p), \qquad c_{\mathrm{seq}}=\arg\min_c J(p_{\mathrm{seq}},c).

CCD instead computes

(pccd,cccd)=argminp,cJ(p,c)(p_{\mathrm{ccd}},c_{\mathrm{ccd}})=\arg\min_{p,c}J(p,c)

subject to the same system dynamics and constraints. Even if both sequential subproblems are solved perfectly, their pair need not minimize the combined objective.

Alternating conditional improvements can approach a point different from the integrated system optimum.

Four kinds of missed opportunity

Performance synergy

A physical change may look harmful without feedback but become valuable when paired with control. Reduced passive damping, for example, can lower energy dissipation or mass while active feedback supplies damping selectively.

Feasibility

Freezing the plant can leave no controller capable of satisfying travel, force, thermal, or stability constraints. An integrated redesign may recover feasibility by changing geometry, natural frequencies, actuator authority, and feedback together.

Architecture

Sequential tuning cannot discover a missing sensor, a different actuator location, or a passive-active topology if those choices were frozen before control analysis.

Lifecycle value

A design with a higher capital cost may reduce operating energy, fatigue, maintenance, or downtime enough to improve lifecycle value. Separating hardware and control budgets can hide this system benefit.

A small numerical landscape

The following teaching model represents a plant choice pp and controller choice cc:

J(p,c)=(p1.8)2+1.4[c(1.20.65p)]2+0.15pc.J(p,c)=\left(p-1.8\right)^2+1.4\left[c-(1.2-0.65p)\right]^2+0.15pc.

It is not a suspension model; it is a visualization of coupled preferences. The controller preferred at one pp is not preferred at another.

import numpy as np

def system_objective(p, c):
    return (p - 1.8)**2 + 1.4*(c - (1.2 - 0.65*p))**2 + 0.15*p*c

p_grid = np.linspace(0.0, 3.0, 301)
c_grid = np.linspace(-1.0, 2.0, 301)
P, C = np.meshgrid(p_grid, c_grid)
J = system_objective(P, C)
i = np.unravel_index(np.argmin(J), J.shape)
print(f"Grid-search CCD optimum: p={P[i]:.3f}, c={C[i]:.3f}, J={J[i]:.3f}")
p = linspace(0,3,301);
c = linspace(-1,2,301);
[P,C] = meshgrid(p,c);
J = (P-1.8).^2 + 1.4.*(C-(1.2-0.65.*P)).^2 + 0.15.*P.*C;
[Jmin,idx] = min(J(:));
fprintf('CCD optimum: p = %.3f, c = %.3f, J = %.3f\n', ...
        P(idx), C(idx), Jmin);

Activity 1.5: construct a fair baseline