State Space Analysis — Controllability, Observability & Pole Placement
Enter matrices A, B, C, D to check controllability and observability, visualize eigenvalues on the s-plane, compute Ackermann state feedback gain K, and simulate closed-loop step response.
System Order & Presets
System Matrices
Matrix A (NxN)
Matrix B (Nx1)
Matrix C (1xN)
D (scalar)
Desired Closed-Loop Poles
Real parts (comma-separated)
e.g.: -2,-3 (stable poles in left-half plane)
Results
—
Controllability Rank
—
Observability Rank
—
Open-Loop Stability
—
Closed-Loop Stability
Poles
Step
Engineering Note
In structural FEM, mass and stiffness matrices define the state-space model. Active vibration control (active dampers, piezo actuators) uses state feedback. If certain modes are unobservable from sensor placement, they cannot be controlled regardless of actuator power.
Theory & Key Formulas
State Space Fundamentals
$$\dot{x}= Ax + Bu, \quad y = Cx + Du$$
Controllability: $\mathcal{C}= [B \;|\; AB \;|\; A^2B \;|\; \ldots]$ — full rank required
Observability: $\mathcal{O}= [C;\; CA;\; CA^2;\; \ldots]^T$ — full rank required
Transfer function: $H(s) = C(sI-A)^{-1}B + D$
What is State Space Analysis?
🙋
Okay, I get that $\dot{x}= Ax + Bu$ describes a system's dynamics. But what do "controllability" and "observability" actually mean in practice? Why are they the first things this simulator checks?
🎓
Great question! Basically, controllability asks: "Can I steer this system to any state I want using my control inputs $u$?" Observability asks: "Can I figure out the system's full internal state $x$ just by watching the outputs $y$?" In this simulator, you define the $A$, $B$, and $C$ matrices. Try entering a system where $B$ is a zero column—you'll instantly see it's uncontrollable, because you have no way to influence the states.
🙋
Wait, really? So if a system is uncontrollable, I can't design a controller for it at all? What about the "pole placement" part of the tool?
🎓
Exactly right! Pole placement—moving the system's eigenvalues to desired locations for stability and performance—is only possible for the controllable part of the system. The simulator computes the state feedback gain $K$ so that $u = -Kx$ places the poles. But if you look at the results after entering your matrices, it will warn you if you try to place poles for an uncontrollable mode. It's a direct, visual way to see the theory in action.
🙋
That makes sense. So in the CAE note about structural vibration, an "unobservable mode" means a vibration pattern my sensors can't see. But if I can't see it, can I still control it with my actuators?
🎓
You've hit on a key insight! In practice, if a mode is unobservable, you cannot build a controller that stabilizes it based on your sensor feedback. You might have an actuator that could influence it (controllable), but without a measurement, you're flying blind. This simulator helps you diagnose that. Try defining a $C$ matrix that doesn't "see" a particular state. You'll get an observability rank failure, showing the need to redesign your sensor layout before even calculating $K$.
Physical Model & Key Equations
The core state-space model describes how the internal state $x$ evolves over time based on the current state and control input $u$, and how the output $y$ is produced.
$$
\dot{x}(t) = A x(t) + B u(t), \quad y(t) = C x(t) + D u(t)
$$
$x$: State vector (e.g., positions & velocities). $A$: System matrix (defines natural dynamics). $B$: Input matrix (how controls affect states). $C$: Output matrix (what we can measure). $D$: Feedforward matrix (direct input-to-output effect, often zero).
Controllability and Observability are binary properties determined by the ranks of their respective matrices. Pole placement uses state feedback to change the system's dynamics by relocating the eigenvalues of $(A-BK)$.
The system is controllable if $rank(\mathcal{C}) = n$ (full state dimension). It is observable if $rank(\mathcal{O}) = n$. The state feedback control law is $u = -Kx$, and the closed-loop system matrix becomes $A_{cl} = A - BK$, whose eigenvalues (poles) you can place arbitrarily if the system is controllable.
Real-World Applications
Active Vibration Control in Aerospace: Aircraft wings and spacecraft structures have flexible modes that can be excited during flight. Engineers use piezo-electric actuators (matrix $B$) and strain sensors (matrix $C$) to define a state-space model. They use this exact analysis to ensure all critical bending modes are both observable and controllable before designing a feedback law $K$ to dampen vibrations in real-time.
Automotive Suspension & Ride Control: Modern active suspension systems model the car's vertical dynamics (bounce, pitch) as a state-space system. By checking controllability with force actuators and observability with accelerometers, engineers can design a pole-placement controller that optimally trades off ride comfort and handling, placing the closed-loop poles for a desired response characteristic.
Robotic Arm Trajectory Tracking: Precise control of a multi-joint robot requires a model of its motor dynamics and link mechanics. The state vector includes joint angles and velocities. Controllability analysis confirms all joints can be driven to their target states. Observability confirms that if only end-effector position is measured (output $y$), the internal joint states can still be estimated for accurate feedback control.
Chemical Process Regulation: In a continuous stirred-tank reactor, states like temperature and concentration are governed by nonlinear dynamics often linearized into an $(A,B,C)$ form. Engineers must verify that the chosen heater (input) can control the temperature (state) and that available sensors can observe concentration changes. Pole placement is then used to make the reactor respond quickly to setpoint changes without overshoot.
Common Misconceptions and Points to Note
First, understand that "controllable/observable" is not synonymous with "good performance." This is a binary determination of "whether control/observation is theoretically possible." For example, a system can be controllable, but if you place the poles at -1 and -2 via pole placement, the response will be slow. Placing them at -10 and -20 would make it faster, but the control input might become impractically large. Performance depends on gain design.
Next, be mindful of numerical computation limits. This tool also calculates matrix ranks internally, but as the state number increases or if the matrix is ill-conditioned, it might be judged as rank-deficient numerically even if it's mathematically full rank. For instance, be cautious with systems having two eigenvalues extremely close to each other. In practice, it's common to evaluate "how much" controllable/observable a system is by looking at the singular values of the controllability/observability matrices (using the controllability/observability Gramian).
Finally, the gap between model dimension and reality. The A, B, C matrices you input into the tool are a representation of the "model" you conceived. If this does not accurately represent the real physical system, even a perfect design in the tool may not work well in practice. For example, a robot arm model ignoring friction or backlash might perform perfectly in simulation but vibrate on the actual machine.