State-Space for Inerter based suspension system

12 views (last 30 days)
Hello, I'm doing my project on the comparison of Conventional suspension system with an inerter based suspension system. I'm struck at deriving the state-space equations for the parallel based inerter. Here the acceleration of other mass acts as a loop. I tried but i wasn't able to solve. I'll be grateful if someone could give me a hint to crack this. The Equations are given below.
Where Z0 is an input, Z1 is the Unsprung Mass & Z2 is the Sprung Mass.
These are the Matrices i got.
Amat = [0,1,0,0 % A_mat of the Unsprung and Sprung Mass
-((Ks/Mu)+(Kt/Mu)), -Cs/Mu, Ks/Mu, Cs/Mu
0,0,0,1
Ks/Ms, Cs/Ms, -Ks/Ms, -Cs/Ms];
Bmat = [0;Kt/Mu;0;0]; % B_Matrix of the Unsprung mass and Sprung Mass
Cmat = [1,0,0,0 % C_Matrix of the Unsprung Mass and Sprung Mass
0,1,0,0
0,0,1,0
0,0,0,1];
Dmat = [0]; % D_Matrix of the Unsprung Mass and Sprung Mass
  2 Comments
Aneesur Rahman Shafeer
Aneesur Rahman Shafeer on 29 Apr 2020
No. I mean my task is to model the suspension system using State-Space Equations.

Sign in to comment.

Accepted Answer

Ameer Hamza
Ameer Hamza on 29 Apr 2020
Edited: Ameer Hamza on 1 May 2020
See odetovectorfield :https://www.mathworks.com/help/symbolic/odetovectorfield.html. It also have example to convert the symbolic ODE to the system of first order ODE which can be used to write a ss-model.
If you want to do it by hand, then you first need to write the two ODEs in this form
and then convert it into the state-space form
where .
Following shows the code using ode2vectorfield:
syms ms mu ks cs binrt kt z0(t) z1(t) z2(t)
Dz1 = diff(z1);
DDz1 = diff(Dz1);
Dz2 = diff(z2);
DDz2 = diff(Dz2);
eq1 = ms*DDz2 == ks*(z1-z2) + cs*(Dz1-Dz2) + binrt*(DDz1-DDz2);
eq2 = mu*DDz1 == ks*(z1-z2) + cs*(Dz1-Dz2) + binrt*(DDz1-DDz2) + kt*(z0-z1);
[V,S] = odeToVectorField(eq1, eq2)
Result
>> V
V =
Y[2]
(binrt*kt*z0(t) + kt*ms*z0(t) - binrt*kt*Y[1] + cs*ms*Y[2] - cs*ms*Y[4] + ks*ms*Y[1] - ks*ms*Y[3] - kt*ms*Y[1])/(binrt*mu - binrt*ms + ms*mu)
Y[4]
(binrt*kt*z0(t) - binrt*kt*Y[1] + cs*mu*Y[2] - cs*mu*Y[4] + ks*mu*Y[1] - ks*mu*Y[3])/(binrt*mu - binrt*ms + ms*mu)
>> S
S =
z1
Dz1
z2
Dz2
You can also use this outout to write a state-space model.
  12 Comments
Aneesur Rahman Shafeer
Aneesur Rahman Shafeer on 1 May 2020
Yes. I got the answer now. Though there's a slight variations, eventually will solve this. Thank You so much for your help.
Ameer Hamza
Ameer Hamza on 1 May 2020
I am glad to be of help. I guess you can carefully recheck the parameters again. There might be some minor mistake which causes the difference.

Sign in to comment.

More Answers (0)

Categories

Find more on Programming in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!