problem
LoweredProblem dataclass - container for all lowering outputs.
LoweredProblem
dataclass
¶
Container for all outputs from symbolic problem lowering.
This dataclass holds all the results of lowering symbolic expressions to executable JAX and CVXPy code. It provides a clean, typed interface for accessing the various components needed for optimization.
Attributes:
| Name | Type | Description |
|---|---|---|
dynamics |
Dynamics
|
Optimization dynamics with fields f, A, B (JAX functions) |
dynamics_prop |
Dynamics
|
Propagation dynamics with fields f, A, B |
jax_constraints |
LoweredJaxConstraints
|
Non-convex constraints lowered to JAX with gradients |
cvxpy_constraints |
LoweredCvxpyConstraints
|
Convex constraints lowered to CVXPy |
x_unified |
UnifiedState
|
Aggregated optimization state interface |
u_unified |
UnifiedControl
|
Aggregated optimization control interface |
x_prop_unified |
UnifiedState
|
Aggregated propagation state interface |
ocp_vars |
CVXPyVariables
|
Typed CVXPy variables and parameters for OCP construction |
cvxpy_params |
Dict[str, Parameter]
|
Dict mapping user parameter names to CVXPy Parameter objects |
Example
After lowering a symbolic problem::
lowered = lower_symbolic_problem(
dynamics_aug=dynamics,
states_aug=states,
controls_aug=controls,
constraints=constraint_set,
parameters=params,
N=50,
)
# Access components
dx_dt = lowered.dynamics.f(x, u, node, params)
jacobian_A = lowered.dynamics.A(x, u, node, params)
# Use CVXPy objects
ocp = OptimalControlProblem(settings, lowered)