pySimBlocks.blocks.optimizers.quadratic_program

class pySimBlocks.blocks.optimizers.quadratic_program.QuadraticProgram(name: str, solver: str = 'clarabel')[source]

Bases: Block

General time-varying quadratic program solver block.

Solves at each time step the quadratic program:

minimize 1/2 x^T P x + q^T x

subject to G x <= h, A x = b, lb <= x <= ub

All problem data are provided as input ports and may vary with time. Inequality and equality constraints may be omitted by leaving their input ports unconnected (None).

solver

Name of the QP solver used to solve the problem.

initialize(t0: float) None[source]

Set outputs to default failure values before the first solve.

Parameters:

t0 – Initial simulation time in seconds.

output_update(t: float, dt: float) None[source]

Fetch inputs, build the QP, solve it, and write outputs.

Output status encodes the result: 0 = optimal, 1 = infeasible, 2 = solver error, 3 = input error. cost is NaN on failure.

Parameters:
  • t – Current simulation time in seconds.

  • dt – Current time step in seconds.

state_update(t: float, dt: float) None[source]

No-op: QuadraticProgram carries no internal state.