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 window | Power-network companion form → Grid |
You need step/impulse response at arbitrary T | Banded heat/diffusion MOL → Thermal |
Inputs encoded in x0 or constant forcing via augmented state | Nonlinear f(t,y) → SolvSRK |
Typical production integration
- Operator:
Afrom linearization Jacobian or canonical second-order form[x, x_dot]. - Initial state: encode unit step on position or velocity channel in
y0. - Horizons: loop
Tfor settling analysis, or singleTfor 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.
| Field | Value | Notes |
|---|---|---|
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.
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 →