Clear Filters
Clear Filters

How do I solve this State Space Equation for a 8 DOF Model for a selected output?

3 views (last 30 days)
This is my model of an 8 DOF vehicle that I am trying to solve for a response, namely X15. I tried the ss(A,B,C,D) function but I don't know how to plot a response from there.
--------------------------------------------------------------------------------- global M_s M_wr1 M_wl1 M_wr2 M_wl2 k_wr1 k_wl1 k_wr2 k_wl2 I_xx I_yy global q r s t x y global k_seat C_seat
q = 1.5, r = q; s = 1, t = s; x = .25, y = x; M_s = 1200; M_seat = 30; M_wr1 = 60, M_wl1 = M_wr1; M_wr2 = 60, M_wl2 = M_wr2; k_wr1 = 30000, k_wl1 = k_wr1; k_wr2 = 30000, k_wl2 = k_wr2; I_xx = 4000; I_yy = 950; k_sr1 = 55000, k_sl2 = k_sr1, k_sr2 = k_sl2, k_sl1 = k_sr2; k_seat = 600; C_sr1 = 1000, C_sl2 = C_sr1, C_sr2 = C_sl2, C_sl1 = C_sr2; C_seat = 100;
A1 = [0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0] ;
A2 = [(-k_sr1 - k_sl1 - k_sr2 - k_sl2 - k_seat), (-C_sr1- C_sl1 - C_sr2 - C_sl2 - C_seat) , (k_sr1.*q + k_sl1.*q + k_sr2.*r -k_sl2.*r + k_seat.*x), (C_sr1.*q + C_sl1.*q - C_sr2.*r - C_sl2.*r + C_seat.*x), (k_sr1.*t - k_sl1.*s+ k_sr2.*t - k_sl2.*s - k_seat.*y), (C_sr1.*t - C_sl1.*s + C_sr2.*t - C_sl2.*s - C_seat.*y), (k_sr1); (C_sr1); (k_sl1); (C_sl1); (k_sr2); (C_sr2); (k_sl2); (C_sl2); (k_seat); (C_seat);] ;
A2 = A2';
A3 = [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0] ;
A4 = [(k_sr1.*q + k_sl1.*q - k_sr2.*r - k_sl2.*r + k_seat.*x), (C_sr1.*q + C_sl1.*q - C_sr2.*r - C_sl2.*r + C_seat.*x), (-k_sr1.*q^2 - k_sl1.*q^2 - k_sr2.*r^2 - k_sl2.*r^2 - k_seat.*x^2), (-C_sr1.*q^2 - C_sl1.*q^2 - C_sr2.*r^2 - C_sl2.*r^2 - C_seat.*x^2) , (-k_sr1.*q.*t + k_sl1.*q.*s + k_sr2.*r.*t - k_sl2.*r.*s + k_seat.*y.*x), (-C_sr1.*q.*t + C_sl1.*q.*s + C_sr2.*r.*t - C_sl2.*r.*s - C_seat.*y.*x), (-k_sr1.*q); (-C_sr1.*q); (-k_sl1.*q); (-C_sl1.*q); (k_sr2.*r); (C_sr2.*r); (k_sl2.*r); (C_sl2.*r); (-k_seat.*x); (-C_seat.*x);];
A4 = A4';
A5 = [0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0];
A6 = [(k_sr1.*t - k_sl1.*s + k_sr2.*t - k_sl2.*s + k_seat.*y), (C_sr1.*t - C_sl1.*s + C_sr2.*t - C_sl2.*s - C_seat.*y), (-k_sr1.*q.*t + k_sl1.*q.*s + k_sr2.*r.*t - k_sl2.*r.*s + k_seat.*x.*y), (-C_sr1.*q.*t + C_sl1.*q.*s + C_sr2.*r.*t - C_sl2.*r.*s + C_seat.*x.*y), (-k_sr1.*t^2 - k_sl1.*s^2 - k_sr2.*t^2 - k_sl2.*s^2 - k_seat.*y^2), (-C_sr1.*t^2 - C_sl1.*s^2 - C_sr2.*t^2 - C_sl2.*s^2 + C_seat.*y^2), (-k_sr1.*t); (-C_sr1.*t); (k_sl1.*s); (C_sl1.*s); (-k_sr2.*t) ; (-C_sr2.*t) ; (k_sl2.*s) ; (C_sl2.*s) ; (k_seat.*y); (C_seat.*y);];
A6 = A6';
A7 = [0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 ];
A8 = [k_sr1 C_sr1 k_sr1.*q C_sr1.*q k_sr1.*t C_sr1.*t (-k_sr1-k_wr1) C_sr1 0 0 0 0 0 0 0 0];
A9 = [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0];
A10 = [(k_sl1) , (C_sl1) , k_sl1.*(q) , -C_sl1.*(q) , k_sl1.*(s) , C_sl1.*(s), 0 ,0, (- k_sl1-k_wl1), -C_sl1 , 0 ,0 ,0 ,0, 0, 0];
A11 = [0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ];
A12 = [(k_sr2) , (C_sr2), k_sr2.*(r), C_sr2.*(r), -k_sr2.*(t), -C_sr2.*(t), 0 , 0, 0, 0, (- k_sr2-k_wr2), -C_sr2, 0, 0, 0, 0 ];
A13 = [0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0];
A14 = [(k_sl2) , (C_sl2), k_sl2.*(r), C_sl2.*(r), k_sl2.*(t), C_sl2.*(t), 0, 0, 0, 0, 0, 0, (- k_sr2-k_wr2), -C_sl2, 0, 0];
A15 = (1/10).*[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1];
A16 = [ k_seat, C_seat, -k_seat.*x , -C_seat.*x, k_seat.*y, C_seat.*y, 0, 0, 0, 0, 0, 0, 0, 0, -k_seat, -C_seat];
A = [A1 ; A2; A3; A4; A5; A6; A7; A8; A9; A10; A11; A12; A13; A14; A15; A16];
B = [0;0;0;0;0;0;0;k_wr1.*(1/M_wr1);0;k_wl1.*(1/M_wl1);0;k_wr2.*(1/M_wr2);0;k_wl2.*(1/M_wl2);0;0];
C = [0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0];
D = 0;

Answers (1)

Areej Varamban Kallan
Areej Varamban Kallan on 28 Sep 2018
Hi Mohamed,
You can use the 'lsim()' function to obtain the time response of linear systems for arbitrary inputs. The documentation of the 'lsim()' function can be found here.
An example for obtaining the response of state-space models is given here.

Categories

Find more on Develop Apps Using App Designer 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!