How do I solve this State Space Equation for a 8 DOF Model for a selected output?
5 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Pole and Zero Locations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!