How do I solve this State Space Equation for a 8 DOF Model for a selected output?
6 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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;
0 Kommentare
Antworten (1)
Siehe auch
Kategorien
Mehr zu Nonlinear Control finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!