/stateSpaceReduction

Reduce dimensions of a state space system while preserving model output accuracy.

Primary LanguageMATLABGNU General Public License v3.0GPL-3.0

State space reduction

Reduce dimensions of a state space system while preserving model output accuracy, by balanced realization.

This example uses a 3 mass spring damper system.

3mass

The original system has 6 states: speed and position of each mass. Reduced system matrices are stores as Ared, Bred, and Cred. It tests different amounts of state reduction by comparing model output:

p2

We can see that the system behavior deviates more after 3 states are discarded. This is confirmed by checking diagonal values of T * wc * T', where T is the transformation to realize the new system, and wc is the original system's controllability gramian.

image

These diagonal values can be used to predict output accuracy. The 4th element is much smaller than the 3rd, meaning removing 3 states will significantly affect the quality of your reduced model. Keep in mind that regardless of how many states you take away, states of the reduced model do not correspond to states of your physical system anymore. It's the output Y that is still accurate.

Purpose

Once you have your reduced system, it can be used in model based algorithms such as Kalman filters and model predictive control. The advantage here is since it's a smaller state space, your code will run faster.