"""
    ctrl_heatup_unsat(t, x, plant, ref)

Heatup controller WITHOUT saturation.  Identical to `ctrl_heatup` but the
`clamp()` is removed — u can be anything the feedback-linearization +
ramped-reference P wants.

Used as the starting point for nonlinear reach analysis.  The full
`ctrl_heatup` adds saturation on top of this, which turns the controller
into a 3-mode piecewise-affine system and is hybrid-reach territory.
"""
function ctrl_heatup_unsat(t, x, plant, ref)
    Kp = 1e-4
    T_f   = x[8]
    T_avg = x[9]
    u_ff = -plant.alpha_f * (T_f   - plant.T_f0) -
            plant.alpha_c * (T_avg - plant.T_c0)
    T_ref = min(ref.T_start + ref.ramp_rate * t, ref.T_target)
    return u_ff + Kp * (T_ref - T_avg)
end
