Rearrange state space system

Technical Source
2 min readAug 24, 2021

--

I’ve modelled a system in simulink and used operspec and linearise to extract a state space system. While the activity has worked well, I have a downstream process which requires the state space to be expressed in a different form.

Without modifying the simulink model, is there a matlab command or series of commands that is capable of rearranging a state space system such that some parameters which where previously ouputs become states. For context, my downstream process will also be dropping a number of states.

I’ve been using simulink, simulink control, system identification and the control system toolbox.

ANSWER

Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.

Let’s assume that the state space model from Simulink is defined as:

xdot = A*x + B*u

[y1;y2] = [C1; C2] * x + [0;D2] u

where y1 are the outputs that you want to be state variables (you can always order the ouputs this way) and all matrices are of compatible dimensions. Note that D1 == 0.

Now we have at least two options.

The first option is to add additional states (w) with derivatives equal to the derivatives of the outputs

w = y1

wdot = y1dot = C1*xdot = C1*A*x + C1*B*u.

Now we can augment the state vector x witht the new states w. By definition, the new outputs that replace y1 are just w. Hence the new state space model is:

[xdot;wdot] = [A 0;C1*A 0] * [x;w] + [B;C1*B] * u

[ynew;y2] = [0 I;C2 0] * [x;w] + [0;D] * u

where the zero and identity matrices are of approropriate dimension. The result will be a non — minimal state space realization that preseves the original states, retains the input/output transfer function from u to y, and has outputs ynew that are state variables.

Here’s an example.

First, define some state space model

>> sys1 = minreal(ss(zpk([tf(1,[1 1]);tf(1,conv([1 1],[1 2]));tf(1,conv([1 1],[1 3]))])))sys1 =

A =
x1 x2 x3
x1 -2.067 -0.2775 -0.1388
x2 0.2401 -1.212 0.894
x3 0.03861 0.5588 -2.721

B =
u1
x1 0.9679
x2 0.6052
x3 1.303

C =
x1 x2 x3
y1 0.1629 0.6703 0.3352
y2 -0.6095 0.4695 0.2348
y3 0.06517 0.4681 -0.2659

D =
u1
y1 0
y2 0
y3 0

Continuous-time state-space model.

Let’s look at it

SEE COMPLETE ANSWER CLICK THE LINK

--

--

Technical Source
Technical Source

Written by Technical Source

Simple! That is me, a simple person. I am passionate about knowledge and reading. That’s why I have decided to write and share a bit of my life and thoughts to.

No responses yet