## Summary Implement controllability/observability gramians and matrix-form analysis tools. ## Functions - [ ] `Gram(sys, type)` — compute controllability or observability gramian (continuous/discrete) - [ ] `Ctrb(A, B)` — controllability matrix `[B, AB, A²B, ...]` - [ ] `Obsv(A, C)` — observability matrix `[C; CA; CA²; ...]` - [ ] `CtrbF(A, B, C)` — controllability staircase form (extends existing `ControllabilityStaircase`) - [ ] `ObsvF(A, B, C)` — observability staircase form ## Implementation Notes - `Gram` solves Lyapunov equations: controllability gramian `Wc` satisfies `A*Wc + Wc*A' + B*B' = 0` - `Ctrb`/`Obsv` build full rank matrices — warn about numerical issues for large n - Staircase forms already partially implemented via `ControllabilityStaircase` ## Depends on - #3 Lyapunov & Riccati equation solvers (for `Gram`) ## Blocks - Balanced realization & advanced model reduction - System norms
Summary
Implement controllability/observability gramians and matrix-form analysis tools.
Functions
Gram(sys, type)— compute controllability or observability gramian (continuous/discrete)Ctrb(A, B)— controllability matrix[B, AB, A²B, ...]Obsv(A, C)— observability matrix[C; CA; CA²; ...]CtrbF(A, B, C)— controllability staircase form (extends existingControllabilityStaircase)ObsvF(A, B, C)— observability staircase formImplementation Notes
Gramsolves Lyapunov equations: controllability gramianWcsatisfiesA*Wc + Wc*A' + B*B' = 0Ctrb/Obsvbuild full rank matrices — warn about numerical issues for large nControllabilityStaircaseDepends on
Gram)Blocks