MATLAB: How to get state vector from the State-space block in Simulink

Control System Toolboxsimulinkstate vectorstate-space

Hello! I have a state-space block in Simulink and I want to extract the state vector in order to visualize it on scope. Is there any way to do this? Thanks!

Best Answer

I don't believe there's a direct way to access the states unless you re-implement the state-space block yourself with matrix multiplications, integrators, etc.
What you could do expand your C matrix to include the identity matrix. Then, you can use a Selector block to break the output into output and states.
For example, say you had a 2-state, 1-output system with C = [2 1]. You could change the C matrix to be [2 1;1 0;0 1] (you'd have to also reshape your D matrix). Then, the 1st element would be your original output and the 2nd and 3rd elements would be your actual state values.
- Sebastian
Related Question