Model and numerical method
The drawing, plots and numbers come from the same browser calculation. The equations and limits make the experiment reproducible.
DC motor
The preset uses R = 2 Ω, L = 0.12 H, Kₑ = Kₜ = 0.05, J = 0.002 kg·m² and b = 0.0005 N·m·s. Applied voltage is limited to ±12 V. The rotor angle integrates angular speed. Motor experiments can scale actual inertia and friction from 0.5× to 2× while nominal frequency analysis keeps these reference values.
Cart-pole
The pole is a point mass m = 0.2 kg at length l = 0.3 m on a cart of mass M = 0.5 kg. Cart damping is b = 0.1 N·s/m. Force is limited to ±30 N. The run stops at ±2.4 m or a pole angle of ±90°.
Angle-only mode controls near upright. Cascade mode adds a desired angle based on cart position and velocity; swing-up is outside this model.
Mass–spring–damper
m·x″ + c·x′ + k·x = F(t)
The separate mechanics lab uses linear stiffness and viscous damping without a feedback controller. Fixed 1 ms RK4 integrates displacement, velocity, external work and dissipated energy; samples are recorded at 20 ms. Free, step and sinusoidal inputs are compared with independent analytical and SciPy reference solutions. Energy balance and the assumptions are displayed in the lab.
Explore mechanics →Thermal body
C·dT/dt = u − H(T − Ta), 0 ≤ u ≤ Pmax
A single uniform temperature, constant capacity and linear heat loss. The heating-only actuator cannot actively cool. ON-OFF hysteresis and PI update every 1 s; held input is integrated by 0.1 s RK4 in a Worker and recorded at 1 s. Conditional anti-windup permits unwinding and blocks integral increments that worsen clipping. One persistent target or ambient step can be edited or removed. An independent Python recurrence with exact held-input solutions verifies the guides. There is no sensor delay, heater residual heat or hardware PWM model.
Explore thermal control →Follow the signal, then reduce the blocks
Series: G₁G₂ · Parallel: G₁+G₂ · Negative feedback: G₁G₂/(1+G₁G₂H)
The lab uses static gains, so this calculation has no delay or motion through time. The same signal algebra works for compatible single-input, single-output transfer functions with zero initial state. Dynamic stability is a separate check; a static gain calculation cannot establish it.
Open concept bench →Count integrators, then check the error
L₀=K/(s+1); L₁=K/s; L₂=K(s+1)/s² · E=R/(1+L)
More integrators are not automatically better. They change stability and required input too. A finite plot shows the last recorded error; the theoretical steady error describes the infinite-time limit. Slow responses may make those two values quite different.
Open concept bench →Find stability without solving every root
p(s)=s³+as²+bs+c · first column: 1, a, (ab−c)/a, c
For this bench, a and b are positive and c is nonnegative. Strict stability requires 0 < c < ab. At c=0 there is a zero pole; at c=ab a whole table row vanishes. Do not apply the ordinary sign-count procedure unchanged at those boundaries. The table does not give settling time.
Open concept bench →Place poles. Estimate what you cannot see.
x′ = Ax + Bu; ureq = −Kx̂ + Nr; x̂′ = Ax̂ + Buapplied + L(y − Cx̂)
m = 1 kg, k = 4 N/m, c = 0.8 N·s/m; x = [position, velocity], y = position + noise. Continuous controller and observer, RK4 at 1 ms, recorded every 20 ms. Observer damping is 0.8; its natural frequency is the chosen ratio times controller ωn. Uniform seeded noise is held for 20 ms. Saturation is included; delays, model mismatch and process noise are not. This is not a sampled digital implementation or a Kalman filter.
Open experiment →Fill. Drain. Test the tangent.
A h′ = qin − c√h − d; δh′ = [δqin − c δh/(2√h₀) − d]/A
Constant area, incompressible fluid, ideal pump; no valve lag, sensor noise or fluid momentum. RK4 at 10 ms, continuous PI, samples every 100 ms. q₀ = c√h₀ biases manual and PI commands; Δq applies only to manual mode. The linear predictor receives the actual nonlinear-loop pump flow. Extra drain is a persistent step at 30 s; zero removes it. Stop at h = 0 or 2 m, interpolating the crossing within a physics step; overflow after the rim is not modeled. The linear predictor is not clipped and can be physically invalid far from h₀.
Open experiment →Charge. Ring. Follow the energy.
C vC′ = i; L i′ = vin − Ri − vC; E = ½C vC² + ½L i²
Ideal voltage source, linear resistor, inductor and capacitor. There is no feedback controller, source current limit, parasitic resistance or breakdown model. RK4 at 1 ms integrates both states, source work and resistor loss; samples every 20 ms. E(t) − E(0) = source work − resistor loss. Large resonance voltages are mathematical predictions within these assumptions, not equipment ratings. A finite trace may still include startup transients.
Open experiment →Motor / cart controllers and time
Motor controllers update every 10, 20, 40 or 80 ms; cart controllers update every 20 ms. PID, lead/lag, discrete LQR and Kalman/LQG are available in their respective labs. PID derivative action uses measured speed or angle and a first-order filter; anti-windup conditionally pauses integral accumulation during saturation. Motor/cart continuous states use fixed-step RK4 every 5 ms. Playback speed changes only the display clock.
A cart kick changes velocity once. A motor tap applies a finite torque pulse. Older shared 'load' events remain persistent steps for reproducibility.
Reading the analysis
Motor rise time is the first 10–90% target interval. Settling time is the first instant after the last exit from a ±2% band; otherwise it is not settled. The frequency workbench shows the sampled nominal motor speed loop and excludes saturation, noise, anti-windup and actual-motor parameter changes. Its margins do not certify a nonlinear run. The root locus is a separate proportional-only sweep in the discrete z-plane; it does not represent the active PI, PID, lead or lag law.