Product documentation — installation, licensing, and integration guides.
SolvLRDE
Examples
09 SolvLRDE-Control

Journey 09 — SolvLRDE-Control

License token: control · Product name: SolvLRDE-Control (resonix-control)

See also: Vertical SKUs overview · Licensing

What this SKU is for

SolvLRDE-Control is the licensed vertical for linear time-invariant (LTI) control and systems engineering — aerospace flight dynamics, automotive chassis/ride models, robotics manipulators, and any team that holds a state-space plant x_dot = A x + B u and needs responses at specific times without running a stiff ODE integrator.

The engineering problem

Step responses, impulse responses, modal decay studies, and many Gramian-style queries reduce to the matrix exponential or resolvent: y(T) = exp(A * T) * y0. Engineers usually integrate x_dot = A x forward with RK or BDF, picking dt for stability and accuracy. That is correct but wasteful when you only need y(T) at a handful of horizons (e.g. settling time, peak overshoot, 20 s modal decay) or when you sweep many T values for a frequency-domain style study derived from the resolvent.

Why Control exists (and why LRDE fits)

Paste A from your linearized plant (or second-order companion form) and call solve(A, x0, T). No timestep selection, no stiffness tolerance tuning for the linear subproblem. Control is the SKU most often adopted through the 30-day trial: engineers verify against known transfer functions or Simulink linearizations before OEM licensing.

Who should buy Control (not another SKU)

Choose Control when…Choose something else when…
Plant is LTI with constant A over the analysis windowPower-network companion form → Grid
You need step/impulse response at arbitrary TBanded heat/diffusion MOL → Thermal
Inputs encoded in x0 or constant forcing via augmented stateNonlinear f(t,y) → SolvSRK

Typical production integration

  • Operator: A from linearization Jacobian or canonical second-order form [x, x_dot].
  • Initial state: encode unit step on position or velocity channel in y0.
  • Horizons: loop T for settling analysis, or single T for peak-response queries.
  • License gate: solvlrde.license_has_sku("control") before control-analysis features ship.

This walkthrough

Prerequisites: Core journeys 01–06 complete.

Scenario: Transfer functions, step responses, and Gramian queries reduce to evaluating the resolvent (zI - A)^-1. SolvLRDE gives y(T) for the state-space realization directly.

Key APIs

  • solvlrde.solve()
  • state-space A from linearized plant

Concepts to internalize

  • SolvLRDE-Control — resonix-control SKU.
  • Resolvent view — step/frequency analysis without time marching.
  • Trial-led funnel — engineers paste A from their linearization.

Important code

The guided tour script wraps this pattern. Copy the production shape into your pipeline:

A = np.array([[0, 1], [-wn**2, -2*zeta*wn]])
result = lrde.solve(A, [0.0, 1.0], T=5.0)

Act-by-act walkthrough

Act 1 — Linear control analysis

Transfer functions, step responses, and Gramian queries reduce to evaluating the resolvent (zI - A)^-1. SolvLRDE gives y(T) for the state-space realization directly.

Act 2 — Second-order mode in state space

x'' + 2 zeta wn x' + wn^2 x = 0 with state [x, x_dot]. Unit step on velocity channel: y0 = [0, 1]. Compare y(T) at several T without integrating.

FieldValueNotes
T1.0
n_solves32
survivedTrue
statusok
y[0.271467, -0.344391]
n_talbot_used32
n_solves32
nu_used0.6
contour_scale12.8
wall_s0
T5.0
n_solves32
survivedTrue
statusok
y[-0.00304701, -0.0480967]
n_talbot_used32
n_solves32
nu_used0.6
contour_scale2.56
wall_s0
T20.0
n_solves32
survivedTrue
statusok
y[-1.16073e-10, -1.07562e-10]
n_talbot_used32
n_solves32
nu_used0.6
contour_scale0.64
wall_s0

Act 3 — Self-serve trial path

LRDE-Control is the SKU most often adopted via the 30-day trial: engineers paste A from their linearized plant and verify step/frequency response before OEM licensing.

Guided tour output

Verified console capture from sku_control.py:

-- Act 1 - Linear control analysis --
  -> Transfer functions, step responses, and Gramian queries reduce to evaluating the resolvent (zI - A)^-1. SolvLRDE gives y(T) for the state-space realization directly.

-- Act 2 - Second-order mode in state space --
  -> x'' + 2 zeta wn x' + wn^2 x = 0 with state [x, x_dot]. Unit step on velocity channel: y0 = [0, 1]. Compare y(T) at several T without integrating.
  T: 1.0
  n_solves: 32
  survived: True
  status: ok
  y: [0.271467, -0.344391]
  n_talbot_used: 32
  n_solves: 32
  nu_used: 0.6
  contour_scale: 12.8
  wall_s: 0
  T: 5.0
  n_solves: 32
  survived: True
  status: ok
  y: [-0.00304701, -0.0480967]
  n_talbot_used: 32
  n_solves: 32
  nu_used: 0.6
  contour_scale: 2.56
  wall_s: 0
  T: 20.0
  n_solves: 32
  survived: True
  status: ok
  y: [-1.16073e-10, -1.07562e-10]
  n_talbot_used: 32
  n_solves: 32
  nu_used: 0.6
  contour_scale: 0.64
  wall_s: 0

-- Act 3 - Self-serve trial path --
  -> LRDE-Control is the SKU most often adopted via the 30-day trial: engineers paste A from their linearized plant and verify step/frequency response before OEM licensing.

-- Run complete --
  next_journey: sku_climate.py (Climate SKU)

Run it

cd python
# Guided tour — narrated scenario walkthrough (recommended first run):
python examples/skus/sku_control.py
 
# Production one-liner — same API call you ship:
python -c "import solvlrde,numpy as np;wn,z=2.,0.3;A=[[0,1],[-wn**2,-2*z*wn]];print(solvlrde.solve(np.array(A),[0.,1.],T=5.)['y'])"

What comes next

SolvLRDE-Climate for TLM blocks.

Navigation

← Journey 08 — SolvLRDE-Pricing · Journey 10 — SolvLRDE-Climate →