From fc628bd021b81499e14bd41d92b3c47fafd2a10d Mon Sep 17 00:00:00 2001 From: Markus Koschi Date: Wed, 24 Apr 2019 17:01:05 +0200 Subject: [PATCH] added Release 2017a --- MATLAB/init_KS.m | 69 ++++ MATLAB/init_MB.m | 134 +++++++ MATLAB/init_ST.m | 72 ++++ MATLAB/parameters_vehicle1.m | 128 ++++++ MATLAB/parameters_vehicle2.m | 128 ++++++ MATLAB/parameters_vehicle3.m | 128 ++++++ MATLAB/readme.txt | 19 + MATLAB/testVehicle.m | 224 +++++++++++ MATLAB/unitConversions/ft2_IN_m2.m | 7 + MATLAB/unitConversions/ft_IN_m.m | 7 + MATLAB/unitConversions/ft_lb_IN_m_N.m | 8 + MATLAB/unitConversions/ft_lb_rad_IN_N_m_rad.m | 8 + MATLAB/unitConversions/lb_ft_sec2_IN_kg_m2.m | 10 + MATLAB/unitConversions/lb_sec2_ft_IN_kg.m | 8 + MATLAB/unitConversions/lb_sec_ft_IN_N_s_m.m | 8 + MATLAB/unitConversions/lbs_ft_IN_N_m.m | 9 + MATLAB/unitConversions/rad_ft_IN_rad_m.m | 7 + .../rad_ft_lb_IN_rad_sec2_kg_m2.m | 9 + MATLAB/vehicleDynamics_KS.m | 50 +++ MATLAB/vehicleDynamics_MB.m | 373 ++++++++++++++++++ MATLAB/vehicleDynamics_ST.m | 70 ++++ Python/init_KS.py | 67 ++++ Python/init_MB.py | 132 +++++++ Python/init_ST.py | 70 ++++ Python/parameters_vehicle1.py | 135 +++++++ Python/parameters_vehicle2.py | 131 ++++++ Python/parameters_vehicle3.py | 135 +++++++ Python/readme.txt | 19 + Python/testVehicle.py | 190 +++++++++ Python/tireModel.py | 106 +++++ Python/tireParameters.py | 38 ++ Python/unitConversions/__init__.py | 0 Python/unitConversions/unitConversion.py | 95 +++++ Python/vehicleDynamics_KS.py | 54 +++ Python/vehicleDynamics_MB.py | 287 ++++++++++++++ Python/vehicleDynamics_ST.py | 73 ++++ Python/vehicleParameters.py | 65 +++ README.md | 10 +- vehicleModels_commonRoad.pdf | Bin 0 -> 360690 bytes 39 files changed, 3082 insertions(+), 1 deletion(-) create mode 100644 MATLAB/init_KS.m create mode 100644 MATLAB/init_MB.m create mode 100644 MATLAB/init_ST.m create mode 100644 MATLAB/parameters_vehicle1.m create mode 100644 MATLAB/parameters_vehicle2.m create mode 100644 MATLAB/parameters_vehicle3.m create mode 100644 MATLAB/readme.txt create mode 100644 MATLAB/testVehicle.m create mode 100644 MATLAB/unitConversions/ft2_IN_m2.m create mode 100644 MATLAB/unitConversions/ft_IN_m.m create mode 100644 MATLAB/unitConversions/ft_lb_IN_m_N.m create mode 100644 MATLAB/unitConversions/ft_lb_rad_IN_N_m_rad.m create mode 100644 MATLAB/unitConversions/lb_ft_sec2_IN_kg_m2.m create mode 100644 MATLAB/unitConversions/lb_sec2_ft_IN_kg.m create mode 100644 MATLAB/unitConversions/lb_sec_ft_IN_N_s_m.m create mode 100644 MATLAB/unitConversions/lbs_ft_IN_N_m.m create mode 100644 MATLAB/unitConversions/rad_ft_IN_rad_m.m create mode 100644 MATLAB/unitConversions/rad_ft_lb_IN_rad_sec2_kg_m2.m create mode 100644 MATLAB/vehicleDynamics_KS.m create mode 100644 MATLAB/vehicleDynamics_MB.m create mode 100644 MATLAB/vehicleDynamics_ST.m create mode 100644 Python/init_KS.py create mode 100644 Python/init_MB.py create mode 100644 Python/init_ST.py create mode 100644 Python/parameters_vehicle1.py create mode 100644 Python/parameters_vehicle2.py create mode 100644 Python/parameters_vehicle3.py create mode 100644 Python/readme.txt create mode 100644 Python/testVehicle.py create mode 100644 Python/tireModel.py create mode 100644 Python/tireParameters.py create mode 100644 Python/unitConversions/__init__.py create mode 100644 Python/unitConversions/unitConversion.py create mode 100644 Python/vehicleDynamics_KS.py create mode 100644 Python/vehicleDynamics_MB.py create mode 100644 Python/vehicleDynamics_ST.py create mode 100644 Python/vehicleParameters.py create mode 100644 vehicleModels_commonRoad.pdf diff --git a/MATLAB/init_KS.m b/MATLAB/init_KS.m new file mode 100644 index 0000000..b15fd78 --- /dev/null +++ b/MATLAB/init_KS.m @@ -0,0 +1,69 @@ +function x0 = init_KS(initState, p) +% init_KS - generates the initial state vector for the kinematic +% single-track model +% +% Syntax: +% x0 = init_KS(initState, p) +% +% Inputs: +% initState - core initial states +% p - parameter vector +% +% Outputs: +% x0 - initial state vector +% +% Example: +% +% Other m-files required: none +% Subfunctions: none +% MAT-files required: none +% +% See also: --- + +% Author: Matthias Althoff +% Written: 11-January-2017 +% Last update: --- +% Last revision:--- + +%------------- BEGIN CODE -------------- + +%states +%x1 = s_x x-position in a global coordinate system +%x2 = s_y y-position in a global coordinate system +%x3 = δ steering angle of front wheels +%x4 = u velocity in x-direction +%x5 = Ψ yaw angle + +%u1 = v_delta steering angle velocity of front wheels +%u2 = ax longitudinal acceleration + + +%obtain initial states from vector +sx0 = initState(1); +sy0 = initState(2); +vel0 = initState(3); +Psi0 = initState(4); +dotPsi0 = initState(5); +beta0 = initState(6); + + +%create equivalent bicycle parameters +g = 9.81; %[m/s^2] +mu = p.tire.p_dy1; +C_Sf = -p.tire.p_ky1/p.tire.p_dy1; +C_Sr = -p.tire.p_ky1/p.tire.p_dy1; +lf = p.a; +lr = p.b; + +%initial steering angle from steady state of slip angle +delta0 = vel0*(lf + lr)/(C_Sf*g*lr*mu)*dotPsi0 ... + + 1/(C_Sf*lr)*((C_Sr*lf + C_Sf*lr)*beta0 - (C_Sr - C_Sf)*lr*lf*dotPsi0/vel0); + +%sprung mass states +x0(1) = sx0; % s_x x-position in a global coordinate system +x0(2) = sy0; % s_y y-position in a global coordinate system +x0(3) = delta0; % steering angle of front wheels +x0(4) = vel0; % velocity +x0(5) = Psi0; % Ψ yaw angle + +%------------- END OF CODE -------------- \ No newline at end of file diff --git a/MATLAB/init_MB.m b/MATLAB/init_MB.m new file mode 100644 index 0000000..4feff05 --- /dev/null +++ b/MATLAB/init_MB.m @@ -0,0 +1,134 @@ +function x0 = init_MB(initState, p) +% init_MB - generates the initial state vector for the multi-body model +% +% Syntax: +% x0 = init_MB(initState, p) +% +% Inputs: +% initState - core initial states +% p - parameter vector +% +% Outputs: +% x0 - initial state vector +% +% Example: +% +% Other m-files required: none +% Subfunctions: none +% MAT-files required: none +% +% See also: --- + +% Author: Matthias Althoff +% Written: 11-January-2017 +% Last update: --- +% Last revision:--- + +%------------- BEGIN CODE -------------- + +%states +%x1 = s_x x-position in a global coordinate system +%x2 = s_y y-position in a global coordinate system +%x3 = δ steering angle of front wheels +%x4 = u velocity in x-direction +%x5 = Ψ yaw angle +%x6 = Ψ yaw rate + +%x7 = ΦS roll angle +%x8 = ΦS roll rate +%x9 = ΘS pitch angle +%x10 = ΘS pitch rate +%x11 = v velocity in y-direction +%x12 = zS z-position +%x13 = w velocity in z-direction + +%x14 = ΦUF roll angle front +%x15 = ΦUF roll rate front +%x16 = vUF velocity in y-direction front +%x17 = zUF z-position front +%x18 = wUF velocity in z-direction front + +%x19 = ΦUR roll angle rear +%x20 = ΦUR roll rate rear +%x21 = vUR velocity in y-direction rear +%x22 = zUR z-position rear +%x23 = wUR velocity in z-direction rear + +%x24 = ωLF left front wheel angular speed +%x25 = ωRF right front wheel angular speed +%x26 = ωLR left rear wheel angular speed +%x27 = ωRR right rear wheel angular speed + +%x28 = delta_y_f +%x29 = delta_y_r + +%u1 = v_delta steering angle velocity of front wheels +%u2 = acceleration + + +%obtain initial states from vector +sx0 = initState(1); +sy0 = initState(2); +vel0 = initState(3); +Psi0 = initState(4); +dotPsi0 = initState(5); +beta0 = initState(6); + + +%create equivalent bicycle parameters +g = 9.81; %[m/s^2] +mu = p.tire.p_dy1; +C_Sf = -p.tire.p_ky1/p.tire.p_dy1; +C_Sr = -p.tire.p_ky1/p.tire.p_dy1; +lf = p.a; +lr = p.b; + +%initial steering angle from steady state of slip angle +delta0 = vel0*(lf + lr)/(C_Sf*g*lr*mu)*dotPsi0 ... + + 1/(C_Sf*lr)*((C_Sr*lf + C_Sf*lr)*beta0 - (C_Sr - C_Sf)*lr*lf*dotPsi0/vel0); + +%auxiliary initial states +F0_z_f = p.m_s*g*p.b/((p.a + p.b)) + p.m_uf*g; +F0_z_r = p.m_s*g*p.a/((p.a + p.b)) + p.m_ur*g; + +%sprung mass states +x0(1) = sx0; % s_x x-position in a global coordinate system +x0(2) = sy0; % s_y y-position in a global coordinate system +x0(3) = delta0; % steering angle of front wheels +x0(4) = cos(beta0)*vel0; % u velocity in x-direction +x0(5) = Psi0; % Ψ yaw angle +x0(6) = dotPsi0; % Ψ yaw rate +x0(7) = 0; % ΦS roll angle +x0(8) = 0; % ΦS roll rate +x0(9) = 0; % ΘS pitch angle +x0(10) = 0; % ΘS pitch rate +x0(11) = sin(beta0)*vel0; % v velocity in y-direction +x0(12) = 0; % zS z-position (zero height corresponds to steady state solution) +x0(13) = 0; % w velocity in z-direction + +%unsprung mass states (front) +x0(14) = 0; % ΦUF roll angle front +x0(15) = 0; % ΦUF roll rate front +x0(16) = sin(beta0)*vel0 + p.a*dotPsi0; % vUF velocity in y-direction front +x0(17) = (F0_z_f)/(2*p.K_zt); % zUF z-position front +x0(18) = 0; % wUF velocity in z-direction front + +%unsprung mass states (rear) +x0(19) = 0; % ΦUR roll angle rear +x0(20) = 0; % ΦUR roll rate rear +x0(21) = sin(beta0)*vel0 - p.b*dotPsi0; % vUR velocity in y-direction rear +x0(22) = (F0_z_r)/(2*p.K_zt); % zUR z-position rear +x0(23) = 0; % wUR velocity in z-direction rear + +%wheel states +x0(24) = x0(4)/(p.R_w); % ωLF left front wheel angular speed +x0(25) = x0(4)/(p.R_w); % ωRF right front wheel angular speed +x0(26) = x0(4)/(p.R_w); % ωLR left rear wheel angular speed +x0(27) = x0(4)/(p.R_w); % ωRR right rear wheel angular speed + +x0(28) = 0; % delta_y_f +x0(29) = 0; % delta_y_r + + + +%------------- END OF CODE -------------- \ No newline at end of file diff --git a/MATLAB/init_ST.m b/MATLAB/init_ST.m new file mode 100644 index 0000000..ff2f462 --- /dev/null +++ b/MATLAB/init_ST.m @@ -0,0 +1,72 @@ +function x0 = init_ST(initState, p) +% init_MB - generates the initial state vector for the single-track model +% +% Syntax: +% x0 = init_ST(initState, p) +% +% Inputs: +% initState - core initial states +% p - parameter vector +% +% Outputs: +% x0 - initial state vector +% +% Example: +% +% Other m-files required: none +% Subfunctions: none +% MAT-files required: none +% +% See also: --- + +% Author: Matthias Althoff +% Written: 11-January-2017 +% Last update: --- +% Last revision:--- + +%------------- BEGIN CODE -------------- + +%states +%x1 = s_x x-position in a global coordinate system +%x2 = s_y y-position in a global coordinate system +%x3 = δ steering angle of front wheels +%x4 = u velocity in x-direction +%x5 = Ψ yaw angle +%x6 = Ψ yaw rate +%x7 = β slip angle at vehicle center + +%u1 = v_delta steering angle velocity of front wheels +%u2 = ax longitudinal acceleration + + +%obtain initial states from vector +sx0 = initState(1); +sy0 = initState(2); +vel0 = initState(3); +Psi0 = initState(4); +dotPsi0 = initState(5); +beta0 = initState(6); + + +%create equivalent bicycle parameters +g = 9.81; %[m/s^2] +mu = p.tire.p_dy1; +C_Sf = -p.tire.p_ky1/p.tire.p_dy1; +C_Sr = -p.tire.p_ky1/p.tire.p_dy1; +lf = p.a; +lr = p.b; + +%initial steering angle from steady state of slip angle +delta0 = vel0*(lf + lr)/(C_Sf*g*lr*mu)*dotPsi0 ... + + 1/(C_Sf*lr)*((C_Sr*lf + C_Sf*lr)*beta0 - (C_Sr - C_Sf)*lr*lf*dotPsi0/vel0); + +%sprung mass states +x0(1) = sx0; % s_x x-position in a global coordinate system +x0(2) = sy0; % s_y y-position in a global coordinate system +x0(3) = delta0; % steering angle of front wheels +x0(4) = vel0; % velocity +x0(5) = Psi0; % Ψ yaw angle +x0(6) = dotPsi0; % Ψ yaw rate +x0(7) = beta0; % β slip angle at vehicle center + +%------------- END OF CODE -------------- \ No newline at end of file diff --git a/MATLAB/parameters_vehicle1.m b/MATLAB/parameters_vehicle1.m new file mode 100644 index 0000000..b7bedd9 --- /dev/null +++ b/MATLAB/parameters_vehicle1.m @@ -0,0 +1,128 @@ +function p = parameters_vehicle1() +% parameters_vehicle1 - parameter set of the multi-body vehicle dynamics +% based on the DOT (department of transportation) vehicle dynamics; +% values are taken from a Ford Escort +% +% Syntax: +% p = parameters_vehicle1() +% +% Inputs: +% --- +% +% Outputs: +% p - parameter vector +% +% Example: +% +% Other m-files required: none +% Subfunctions: none +% MAT-files required: none +% +% See also: --- + +% Author: Matthias Althoff +% Written: 15-January-2017 +% Last update: 05-July-2017 +% Last revision:--- + +%------------- BEGIN CODE -------------- + +%vehicle body dimensions +p.l = 4.298; %vehicle length [m] +p.w = 1.674; %vehicle width [m] + +%masses +p.m = lb_sec2_ft_IN_kg(84); %vehicle mass [kg]; MASS +p.m_s = lb_sec2_ft_IN_kg(75); %sprung mass [kg]; SMASS +p.m_uf = lb_sec2_ft_IN_kg(4.5); %unsprung mass front [kg]; UMASSF +p.m_ur = lb_sec2_ft_IN_kg(4.5); %unsprung mass rear [kg]; UMASSR + +%axes distances +p.a = ft_IN_m(2.9); %distance from spring mass center of gravity to front axle [m]; LENA +p.b = ft_IN_m(4.95); %distance from spring mass center of gravity to rear axle [m]; LENB + +%moments of inertia of sprung mass +p.I_Phi_s = lb_ft_sec2_IN_kg_m2(180); %moment of inertia for sprung mass in roll [kg m^2]; IXS +p.I_y_s = lb_ft_sec2_IN_kg_m2(990); %moment of inertia for sprung mass in pitch [kg m^2]; IYS +p.I_z = lb_ft_sec2_IN_kg_m2(1135); %moment of inertia for sprung mass in yaw [kg m^2]; IZZ +p.I_xz_s = lb_ft_sec2_IN_kg_m2(0); %moment of inertia cross product [kg m^2]; IXZ + +%suspension parameters +p.K_sf = lbs_ft_IN_N_m(1500); %suspension spring rate (front) [N/m]; KSF +p.K_sdf = lb_sec_ft_IN_N_s_m(100); %suspension damping rate (front) [N s/m]; KSDF +p.K_sr = lbs_ft_IN_N_m(1500); %suspension spring rate (rear) [N/m]; KSR +p.K_sdr = lb_sec_ft_IN_N_s_m(100); %suspension damping rate (rear) [N s/m]; KSDR + +%geometric parameters +p.T_f = ft_IN_m(4.56); %track width front [m]; TRWF +p.T_r = ft_IN_m(4.67); %track width rear [m]; TRWB +p.K_ras = lbs_ft_IN_N_m(12000); %lateral spring rate at compliant compliant pin joint between M_s and M_u [N/m]; KRAS + +p.K_tsf = ft_lb_rad_IN_N_m_rad(-9500); %auxiliary torsion roll stiffness per axle (normally negative) (front) [N m/rad]; KTSF +p.K_tsr = ft_lb_rad_IN_N_m_rad(0); %auxiliary torsion roll stiffness per axle (normally negative) (rear) [N m/rad]; KTSR +p.K_rad = lb_sec_ft_IN_N_s_m(700); % damping rate at compliant compliant pin joint between M_s and M_u [N s/m]; KRADP +p.K_zt = lbs_ft_IN_N_m(13000); % vertical spring rate of tire [N/m]; TSPRINGR + +p.h_cg = ft_IN_m(1.83); %center of gravity height of total mass [m]; HCG (mainly required for conversion to other vehicle models) +p.h_raf = ft_IN_m(0); %height of roll axis above ground (front) [m]; HRAF +p.h_rar = ft_IN_m(0); %height of roll axis above ground (rear) [m]; HRAR + +p.h_s = ft_IN_m(1.95); %M_s center of gravity above ground [m]; HS + +p.I_uf = lb_ft_sec2_IN_kg_m2(24); %moment of inertia for unsprung mass about x-axis (front) [kg m^2]; IXUF +p.I_ur = lb_ft_sec2_IN_kg_m2(24); %moment of inertia for unsprung mass about x-axis (rear) [kg m^2]; IXUR +p.I_y_w = 1.7; %wheel inertia, from internet forum for 235/65 R 17 [kg m^2] + +p.K_lt = ft_lb_IN_m_N(0.00015); %lateral compliance rate of tire, wheel, and suspension, per tire [m/N]; KLT +p.R_w = 0.344; %effective wheel/tire radius; chosen as tire rolling radius RR; taken from ADAMS documentation [m] + +%split of brake and engine torque +p.T_sb = 0.76; +p.T_se = 1; + +%suspension parameters +p.D_f = rad_ft_IN_rad_m(-0.19); %[rad/m]; DF +p.D_r = rad_ft_IN_rad_m(-0.064); %[rad/m]; DR +p.E_f = 0; %[needs conversion if nonzero]; EF +p.E_r = 0; %[needs conversion if nonzero]; ER + + +%tire parameters from ADAMS handbook +%longitudinal coefficients +p.tire.p_cx1 = 1.6411; %Shape factor Cfx for longitudinal force +p.tire.p_dx1 = 1.1739; %Longitudinal friction Mux at Fznom +p.tire.p_dx3 = 0; %Variation of friction Mux with camber +p.tire.p_ex1 = 0.46403; %Longitudinal curvature Efx at Fznom +p.tire.p_kx1 = 22.303; %Longitudinal slip stiffness Kfx/Fz at Fznom +p.tire.p_hx1 = 0.0012297; %Horizontal shift Shx at Fznom +p.tire.p_vx1 = -8.8098e-006; %Vertical shift Svx/Fz at Fznom +p.tire.r_bx1 = 13.276; %Slope factor for combined slip Fx reduction +p.tire.r_bx2 = -13.778; %Variation of slope Fx reduction with kappa +p.tire.r_cx1 = 1.2568; %Shape factor for combined slip Fx reduction +p.tire.r_ex1 = 0.65225; %Curvature factor of combined Fx +p.tire.r_hx1 = 0.0050722; %Shift factor for combined slip Fx reduction + +%lateral coefficients +p.tire.p_cy1 = 1.3507; %Shape factor Cfy for lateral forces +p.tire.p_dy1 = 1.0489; %Lateral friction Muy +p.tire.p_dy3 = -2.8821; %Variation of friction Muy with squared camber +p.tire.p_ey1 = -0.0074722; %Lateral curvature Efy at Fznom +p.tire.p_ky1 = -21.92; %Maximum value of stiffness Kfy/Fznom +p.tire.p_hy1 = 0.0026747; %Horizontal shift Shy at Fznom +p.tire.p_hy3 = 0.031415; %Variation of shift Shy with camber +p.tire.p_vy1 = 0.037318; %Vertical shift in Svy/Fz at Fznom +p.tire.p_vy3 = -0.32931; %Variation of shift Svy/Fz with camber +p.tire.r_by1 = 7.1433; %Slope factor for combined Fy reduction +p.tire.r_by2 = 9.1916; %Variation of slope Fy reduction with alpha +p.tire.r_by3 = -0.027856; %Shift term for alpha in slope Fy reduction +p.tire.r_cy1 = 1.0719; %Shape factor for combined Fy reduction +p.tire.r_ey1 = -0.27572; %Curvature factor of combined Fy +p.tire.r_hy1 = 5.7448e-006; %Shift factor for combined Fy reduction +p.tire.r_vy1 = -0.027825; %Kappa induced side force Svyk/Muy*Fz at Fznom +p.tire.r_vy3 = -0.27568; %Variation of Svyk/Muy*Fz with camber +p.tire.r_vy4 = 12.12; %Variation of Svyk/Muy*Fz with alpha +p.tire.r_vy5 = 1.9; %Variation of Svyk/Muy*Fz with kappa +p.tire.r_vy6 = -10.704; %Variation of Svyk/Muy*Fz with atan(kappa) + + +%------------- END OF CODE -------------- diff --git a/MATLAB/parameters_vehicle2.m b/MATLAB/parameters_vehicle2.m new file mode 100644 index 0000000..59a275b --- /dev/null +++ b/MATLAB/parameters_vehicle2.m @@ -0,0 +1,128 @@ +function p = parameters_vehicle2() +% parameters_vehicle2 - parameter set of the multi-body vehicle dynamics +% based on the DOT (department of transportation) vehicle dynamics; +% values are taken from a BMW 320i +% +% Syntax: +% p = parameters_vehicle2() +% +% Inputs: +% --- +% +% Outputs: +% p - parameter vector +% +% Example: +% +% Other m-files required: none +% Subfunctions: none +% MAT-files required: none +% +% See also: --- + +% Author: Matthias Althoff +% Written: 15-January-2017 +% Last update: 05-July-2017 +% Last revision:--- + +%------------- BEGIN CODE -------------- + +%vehicle body dimensions +p.l = 4.508; %vehicle length [m] (with US bumpers) +p.w = 1.610; %vehicle width [m] + +%masses +p.m = lb_sec2_ft_IN_kg(74.91452); %vehicle mass [kg]; MASS +p.m_s = lb_sec2_ft_IN_kg(66.17221); %sprung mass [kg]; SMASS +p.m_uf = lb_sec2_ft_IN_kg(4.371153); %unsprung mass front [kg]; UMASSF +p.m_ur = lb_sec2_ft_IN_kg(4.371153); %unsprung mass rear [kg]; UMASSR + +%axes distances +p.a = ft_IN_m(3.793293); %distance from spring mass center of gravity to front axle [m]; LENA +p.b = ft_IN_m(4.667707); %distance from spring mass center of gravity to rear axle [m]; LENB + +%moments of inertia of sprung mass +p.I_Phi_s = lb_ft_sec2_IN_kg_m2(152.871); %moment of inertia for sprung mass in roll [kg m^2]; IXS +p.I_y_s = lb_ft_sec2_IN_kg_m2(1154.888); %moment of inertia for sprung mass in pitch [kg m^2]; IYS +p.I_z = lb_ft_sec2_IN_kg_m2(1321.416); %moment of inertia for sprung mass in yaw [kg m^2]; IZZ +p.I_xz_s = lb_ft_sec2_IN_kg_m2(0); %moment of inertia cross product [kg m^2]; IXZ + +%suspension parameters +p.K_sf = lbs_ft_IN_N_m(1675); %suspension spring rate (front) [N/m]; KSF +p.K_sdf = lb_sec_ft_IN_N_s_m(122.3966); %suspension damping rate (front) [N s/m]; KSDF +p.K_sr = lbs_ft_IN_N_m(1345); %suspension spring rate (rear) [N/m]; KSR +p.K_sdr = lb_sec_ft_IN_N_s_m(112.9981); %suspension damping rate (rear) [N s/m]; KSDR + +%geometric parameters +p.T_f = ft_IN_m(4.55); %track width front [m]; TRWF +p.T_r = ft_IN_m(4.475); %track width rear [m]; TRWB +p.K_ras = lbs_ft_IN_N_m(12000); %lateral spring rate at compliant compliant pin joint between M_s and M_u [N/m]; KRAS + +p.K_tsf = ft_lb_rad_IN_N_m_rad(-5100.155); %auxiliary torsion roll stiffness per axle (normally negative) (front) [N m/rad]; KTSF +p.K_tsr = ft_lb_rad_IN_N_m_rad(-1949.82); %auxiliary torsion roll stiffness per axle (normally negative) (rear) [N m/rad]; KTSR +p.K_rad = lb_sec_ft_IN_N_s_m(700); % damping rate at compliant compliant pin joint between M_s and M_u [N s/m]; KRADP +p.K_zt = lbs_ft_IN_N_m(10842.89); % vertical spring rate of tire [N/m]; TSPRINGR + +p.h_cg = ft_IN_m(1.886053); %center of gravity height of total mass [m]; HCG (mainly required for conversion to other vehicle models) +p.h_raf = ft_IN_m(0); %height of roll axis above ground (front) [m]; HRAF +p.h_rar = ft_IN_m(0); %height of roll axis above ground (rear) [m]; HRAR + +p.h_s = ft_IN_m(2.01355); %M_s center of gravity above ground [m]; HS + +p.I_uf = lb_ft_sec2_IN_kg_m2(22.62345); %moment of inertia for unsprung mass about x-axis (front) [kg m^2]; IXUF +p.I_ur = lb_ft_sec2_IN_kg_m2(21.88377); %moment of inertia for unsprung mass about x-axis (rear) [kg m^2]; IXUR +p.I_y_w = 1.7; %wheel inertia, from internet forum for 235/65 R 17 [kg m^2] + +p.K_lt = ft_lb_IN_m_N(2.397884e-4); %lateral compliance rate of tire, wheel, and suspension, per tire [m/N]; KLT +p.R_w = 0.344; %effective wheel/tire radius; chosen as tire rolling radius RR; taken from ADAMS documentation [m] + +%split of brake and engine torque +p.T_sb = 0.66; +p.T_se = 0; + +%suspension parameters +p.D_f = rad_ft_IN_rad_m(-0.12); %[rad/m]; DF +p.D_r = rad_ft_IN_rad_m(-0.276); %[rad/m]; DR +p.E_f = 0; %[needs conversion if nonzero]; EF +p.E_r = 0; %[needs conversion if nonzero]; ER + + +%tire parameters from ADAMS handbook +%longitudinal coefficients +p.tire.p_cx1 = 1.6411; %Shape factor Cfx for longitudinal force +p.tire.p_dx1 = 1.1739; %Longitudinal friction Mux at Fznom +p.tire.p_dx3 = 0; %Variation of friction Mux with camber +p.tire.p_ex1 = 0.46403; %Longitudinal curvature Efx at Fznom +p.tire.p_kx1 = 22.303; %Longitudinal slip stiffness Kfx/Fz at Fznom +p.tire.p_hx1 = 0.0012297; %Horizontal shift Shx at Fznom +p.tire.p_vx1 = -8.8098e-006; %Vertical shift Svx/Fz at Fznom +p.tire.r_bx1 = 13.276; %Slope factor for combined slip Fx reduction +p.tire.r_bx2 = -13.778; %Variation of slope Fx reduction with kappa +p.tire.r_cx1 = 1.2568; %Shape factor for combined slip Fx reduction +p.tire.r_ex1 = 0.65225; %Curvature factor of combined Fx +p.tire.r_hx1 = 0.0050722; %Shift factor for combined slip Fx reduction + +%lateral coefficients +p.tire.p_cy1 = 1.3507; %Shape factor Cfy for lateral forces +p.tire.p_dy1 = 1.0489; %Lateral friction Muy +p.tire.p_dy3 = -2.8821; %Variation of friction Muy with squared camber +p.tire.p_ey1 = -0.0074722; %Lateral curvature Efy at Fznom +p.tire.p_ky1 = -21.92; %Maximum value of stiffness Kfy/Fznom +p.tire.p_hy1 = 0.0026747; %Horizontal shift Shy at Fznom +p.tire.p_hy3 = 0.031415; %Variation of shift Shy with camber +p.tire.p_vy1 = 0.037318; %Vertical shift in Svy/Fz at Fznom +p.tire.p_vy3 = -0.32931; %Variation of shift Svy/Fz with camber +p.tire.r_by1 = 7.1433; %Slope factor for combined Fy reduction +p.tire.r_by2 = 9.1916; %Variation of slope Fy reduction with alpha +p.tire.r_by3 = -0.027856; %Shift term for alpha in slope Fy reduction +p.tire.r_cy1 = 1.0719; %Shape factor for combined Fy reduction +p.tire.r_ey1 = -0.27572; %Curvature factor of combined Fy +p.tire.r_hy1 = 5.7448e-006; %Shift factor for combined Fy reduction +p.tire.r_vy1 = -0.027825; %Kappa induced side force Svyk/Muy*Fz at Fznom +p.tire.r_vy3 = -0.27568; %Variation of Svyk/Muy*Fz with camber +p.tire.r_vy4 = 12.12; %Variation of Svyk/Muy*Fz with alpha +p.tire.r_vy5 = 1.9; %Variation of Svyk/Muy*Fz with kappa +p.tire.r_vy6 = -10.704; %Variation of Svyk/Muy*Fz with atan(kappa) + + +%------------- END OF CODE -------------- diff --git a/MATLAB/parameters_vehicle3.m b/MATLAB/parameters_vehicle3.m new file mode 100644 index 0000000..bfe2d92 --- /dev/null +++ b/MATLAB/parameters_vehicle3.m @@ -0,0 +1,128 @@ +function p = parameters_vehicle3() +% parameters_vehicle3 - parameter set of the multi-body vehicle dynamics +% based on the DOT (department of transportation) vehicle dynamics; +% values are taken from a VW Vanagon +% +% Syntax: +% p = parameters_vehicle3() +% +% Inputs: +% --- +% +% Outputs: +% p - parameter vector +% +% Example: +% +% Other m-files required: none +% Subfunctions: none +% MAT-files required: none +% +% See also: --- + +% Author: Matthias Althoff +% Written: 15-January-2017 +% Last update: 05-July-2017 +% Last revision:--- + +%------------- BEGIN CODE -------------- + +%vehicle body dimensions +p.l = 4.569; %vehicle length [m] +p.w = 1.844; %vehicle width [m] + +%masses +p.m = lb_sec2_ft_IN_kg(101.3367); %vehicle mass [kg]; MASS +p.m_s = lb_sec2_ft_IN_kg(90.21635); %sprung mass [kg]; SMASS +p.m_uf = lb_sec2_ft_IN_kg(5.56015); %unsprung mass front [kg]; UMASSF +p.m_ur = lb_sec2_ft_IN_kg(5.56015); %unsprung mass rear [kg]; UMASSR + +%axes distances +p.a = ft_IN_m(3.775563); %distance from spring mass center of gravity to front axle [m]; LENA +p.b = ft_IN_m(4.334437); %distance from spring mass center of gravity to rear axle [m]; LENB + +%moments of inertia of sprung mass +p.I_Phi_s = lb_ft_sec2_IN_kg_m2(353.9445); %moment of inertia for sprung mass in roll [kg m^2]; IXS +p.I_y_s = lb_ft_sec2_IN_kg_m2(1625.825); %moment of inertia for sprung mass in pitch [kg m^2]; IYS +p.I_z = lb_ft_sec2_IN_kg_m2(1824.078); %moment of inertia for sprung mass in yaw [kg m^2]; IZZ +p.I_xz_s = lb_ft_sec2_IN_kg_m2(0); %moment of inertia cross product [kg m^2]; IXZ + +%suspension parameters +p.K_sf = lbs_ft_IN_N_m(2300); %suspension spring rate (front) [N/m]; KSF +p.K_sdf = lb_sec_ft_IN_N_s_m(164.8335); %suspension damping rate (front) [N s/m]; KSDF +p.K_sr = lbs_ft_IN_N_m(2680); %suspension spring rate (rear) [N/m]; KSR +p.K_sdr = lb_sec_ft_IN_N_s_m(189.7866); %suspension damping rate (rear) [N s/m]; KSDR + +%geometric parameters +p.T_f = ft_IN_m(5.165); %track width front [m]; TRWF +p.T_r = ft_IN_m(5.065); %track width rear [m]; TRWB +p.K_ras = lbs_ft_IN_N_m(12000); %lateral spring rate at compliant compliant pin joint between M_s and M_u [N/m]; KRAS + +p.K_tsf = ft_lb_rad_IN_N_m_rad(-25038.92); %auxiliary torsion roll stiffness per axle (normally negative) (front) [N m/rad]; KTSF +p.K_tsr = ft_lb_rad_IN_N_m_rad(-5702.369); %auxiliary torsion roll stiffness per axle (normally negative) (rear) [N m/rad]; KTSR +p.K_rad = lb_sec_ft_IN_N_s_m(700); % damping rate at compliant compliant pin joint between M_s and M_u [N s/m]; KRADP +p.K_zt = lbs_ft_IN_N_m(14565.6); % vertical spring rate of tire [N/m]; TSPRINGR + +p.h_cg = ft_IN_m(2.453467); %center of gravity height of total mass [m]; HCG (mainly required for conversion to other vehicle models) +p.h_raf = ft_IN_m(0); %height of roll axis above ground (front) [m]; HRAF +p.h_rar = ft_IN_m(0); %height of roll axis above ground (rear) [m]; HRAR + +p.h_s = ft_IN_m(2.639405); %M_s center of gravity above ground [m]; HS + +p.I_uf = lb_ft_sec2_IN_kg_m2(37.08234); %moment of inertia for unsprung mass about x-axis (front) [kg m^2]; IXUF +p.I_ur = lb_ft_sec2_IN_kg_m2(35.66033); %moment of inertia for unsprung mass about x-axis (rear) [kg m^2]; IXUR +p.I_y_w = 1.7; %wheel inertia, from internet forum for 235/65 R 17 [kg m^2] + +p.K_lt = ft_lb_IN_m_N(1.7850283e-04); %lateral compliance rate of tire, wheel, and suspension, per tire [m/N]; KLT +p.R_w = 0.344; %effective wheel/tire radius; chosen as tire rolling radius RR; taken from ADAMS documentation [m] + +%split of brake and engine torque +p.T_sb = 0.64; +p.T_se = 0; + +%suspension parameters +p.D_f = rad_ft_IN_rad_m(-0.1); %[rad/m]; DF; modified from orig. paper due to stability issues when damping is ignored +p.D_r = rad_ft_IN_rad_m(-0.1); %[rad/m]; DR; modified from orig. paper due to stability issues when damping is ignored +p.E_f = 0; %[needs conversion if nonzero]; EF +p.E_r = 0; %[needs conversion if nonzero]; ER + + +%tire parameters from ADAMS handbook +%longitudinal coefficients +p.tire.p_cx1 = 1.6411; %Shape factor Cfx for longitudinal force +p.tire.p_dx1 = 1.1739; %Longitudinal friction Mux at Fznom +p.tire.p_dx3 = 0; %Variation of friction Mux with camber +p.tire.p_ex1 = 0.46403; %Longitudinal curvature Efx at Fznom +p.tire.p_kx1 = 22.303; %Longitudinal slip stiffness Kfx/Fz at Fznom +p.tire.p_hx1 = 0.0012297; %Horizontal shift Shx at Fznom +p.tire.p_vx1 = -8.8098e-006; %Vertical shift Svx/Fz at Fznom +p.tire.r_bx1 = 13.276; %Slope factor for combined slip Fx reduction +p.tire.r_bx2 = -13.778; %Variation of slope Fx reduction with kappa +p.tire.r_cx1 = 1.2568; %Shape factor for combined slip Fx reduction +p.tire.r_ex1 = 0.65225; %Curvature factor of combined Fx +p.tire.r_hx1 = 0.0050722; %Shift factor for combined slip Fx reduction + +%lateral coefficients +p.tire.p_cy1 = 1.3507; %Shape factor Cfy for lateral forces +p.tire.p_dy1 = 1.0489; %Lateral friction Muy +p.tire.p_dy3 = -2.8821; %Variation of friction Muy with squared camber +p.tire.p_ey1 = -0.0074722; %Lateral curvature Efy at Fznom +p.tire.p_ky1 = -21.92; %Maximum value of stiffness Kfy/Fznom +p.tire.p_hy1 = 0.0026747; %Horizontal shift Shy at Fznom +p.tire.p_hy3 = 0.031415; %Variation of shift Shy with camber +p.tire.p_vy1 = 0.037318; %Vertical shift in Svy/Fz at Fznom +p.tire.p_vy3 = -0.32931; %Variation of shift Svy/Fz with camber +p.tire.r_by1 = 7.1433; %Slope factor for combined Fy reduction +p.tire.r_by2 = 9.1916; %Variation of slope Fy reduction with alpha +p.tire.r_by3 = -0.027856; %Shift term for alpha in slope Fy reduction +p.tire.r_cy1 = 1.0719; %Shape factor for combined Fy reduction +p.tire.r_ey1 = -0.27572; %Curvature factor of combined Fy +p.tire.r_hy1 = 5.7448e-006; %Shift factor for combined Fy reduction +p.tire.r_vy1 = -0.027825; %Kappa induced side force Svyk/Muy*Fz at Fznom +p.tire.r_vy3 = -0.27568; %Variation of Svyk/Muy*Fz with camber +p.tire.r_vy4 = 12.12; %Variation of Svyk/Muy*Fz with alpha +p.tire.r_vy5 = 1.9; %Variation of Svyk/Muy*Fz with kappa +p.tire.r_vy6 = -10.704; %Variation of Svyk/Muy*Fz with atan(kappa) + + +%------------- END OF CODE -------------- diff --git a/MATLAB/readme.txt b/MATLAB/readme.txt new file mode 100644 index 0000000..5d95fc7 --- /dev/null +++ b/MATLAB/readme.txt @@ -0,0 +1,19 @@ +To execute a test function, which produces the plots of the vehicle models documentation, run 'testVehicle.m'. + +Initialization of models------------------------------------------ +kinematic single-track model: init_KS.m +single-track model: init_ST.m +multi-body model: init_MB.m +------------------------------------------------------------------ + +Parameter sets---------------------------------------------------- +Ford Escort: parameters_vehicle1.m +BMW 320i: parameters_vehicle2.m +VW Vanagon: parameters_vehicle3.m +------------------------------------------------------------------ + +Vehicle models---------------------------------------------------- +kinematic single-track model: vehicleDynamics_KS.m +single-track model: vehicleDynamics_ST.m +multi-body model: vehicleDynamics_MB.m +------------------------------------------------------------------ diff --git a/MATLAB/testVehicle.m b/MATLAB/testVehicle.m new file mode 100644 index 0000000..9bd784b --- /dev/null +++ b/MATLAB/testVehicle.m @@ -0,0 +1,224 @@ +function testVehicle() +% testVehicle - tests vehicle dynamics +% +% Syntax: +% testVehicle() +% +% Inputs: +% --- +% +% Outputs: +% --- +% +% Example: +% +% Other m-files required: none +% Subfunctions: none +% MAT-files required: none +% +% See also: --- + +% Author: Matthias Althoff +% Written: 11-January-2017 +% Last update: --- +% Last revision:--- + +%------------- BEGIN CODE -------------- + +%load parameters +p = parameters_vehicle2; +g = 9.81; %[m/s^2] + +%set options -------------------------------------------------------------- +tStart = 0; %start time +tFinal = 1; %start time + +% vel0 = 15; +% Psi0 = 0.1; +% dotPsi0 = -0.1; +% beta0 = 0.05; +% sy0 = 1; +vel0 = 15; +Psi0 = 0; +dotPsi0 = 0; +beta0 = 0; +sy0 = 0; +initialState = [0,sy0,vel0,Psi0,dotPsi0,beta0]; %initial state for simulation +x0_KS = init_KS(initialState, p); %initial state for kinematic single-track model +x0_ST = init_ST(initialState, p); %initial state for single-track model +x0_MB = init_MB(initialState, p); %initial state for multi-body model +%-------------------------------------------------------------------------- + +% %specify continuous dynamics----------------------------------------------- +% carDyn = vehicleSys('vehicleDynamics',28,2,@vehicleDynamics_MB,[]); %initialize car +% carDyn_bicycle = vehicleSys('vehicleDynamics_bicycle',6,2,@DOTBicycleDynamics,[]); %initialize car +% %-------------------------------------------------------------------------- + +% %generate ode options +% stepsizeOptions = odeset('MaxStep',options.tStart-options.tFinal); +% opt = odeset(stepsizeOptions); + +%set input: rolling car (velocity should stay constant) +u = [0 0]; +%simulate car +[t_roll,x_roll] = ode45(getfcn(@vehicleDynamics_MB,u,p),[tStart, tFinal],x0_MB); +figure +plot(t_roll,x_roll(:,4)); +plot(x_roll(:,1),x_roll(:,2)); + +%set input: braking car (wheel spin and velocity should decrease; similar wheel spin) +v_delta = 0.15; +acc = -0.7*g; +u = [v_delta acc]; +%simulate car +[t_brake,x_brake] = ode45(getfcn(@vehicleDynamics_MB,u,p),[tStart, tFinal],x0_MB); +figure %position +hold on +plot(x_brake(:,1),x_brake(:,2)) +figure % velocity +plot(t_brake,x_brake(:,4)); +figure % wheel spin +hold on +plot(t_brake,x_brake(:,24)); +plot(t_brake,x_brake(:,25)); +plot(t_brake,x_brake(:,26)); +plot(t_brake,x_brake(:,27)); +figure % pitch +plot(t_brake,x_brake(:,9)); + +%set input: accelerating car (wheel spin and velocity should increase; more wheel spin at rear) +v_delta = 0.15; +acc = 0.63*g; +u = [v_delta acc]; +%simulate car +[t_acc,x_acc] = ode45(getfcn(@vehicleDynamics_MB,u,p),[tStart, tFinal],x0_MB); +figure %position +hold on +plot(x_acc(:,1),x_acc(:,2)) +figure % velocity +plot(t_acc,x_acc(:,4)); +figure % wheel spin +hold on +plot(t_acc,x_acc(:,24)); +plot(t_acc,x_acc(:,25)); +plot(t_acc,x_acc(:,26)); +plot(t_acc,x_acc(:,27)); +figure % pitch +plot(t_acc,x_acc(:,9)); +figure %orientation +hold on +plot(t_acc,x_acc(:,5)) + + +%steering to left +v_delta = 0.15; +u = [v_delta 0]; + +%simulate full car +[t_left,x_left] = ode45(getfcn(@vehicleDynamics_MB,u,p),[tStart, tFinal],x0_MB); + +%simulate single-track model +[t_left_st,x_left_st] = ode45(getfcn(@vehicleDynamics_ST,u,p),[tStart, tFinal],x0_ST); + +%simulate kinematic single-track model +[t_left_ks,x_left_ks] = ode45(getfcn(@vehicleDynamics_KS,u,p),[tStart, tFinal],x0_KS); + +figure %position +hold on +plot(x_left(:,1),x_left(:,2)) +plot(x_left_st(:,1),x_left_st(:,2)) +plot(x_left_ks(:,1),x_left_ks(:,2)) +figure %orientation +hold on +plot(t_left,x_left(:,5)) +plot(t_left_st,x_left_st(:,5),'r') +plot(t_left_ks,x_left_ks(:,5),'g') +figure %steering +hold on +plot(t_left,x_left(:,3)) +plot(t_left_st,x_left_st(:,3),'r') +plot(t_left_ks,x_left_ks(:,3),'g') +figure %yaw rate +hold on +plot(t_left,x_left(:,6)) +plot(t_left_st,x_left_st(:,6),'r') +figure %slip angle +hold on +plot(t_left,atan(x_left(:,11)./x_left(:,4))) +plot(t_left_st,x_left_st(:,7)) +% figure % wheel spin +% hold on +% plot(t_acc,x_acc(:,24)); +% plot(t_acc,x_acc(:,25)); +% plot(t_acc,x_acc(:,26)); +% plot(t_acc,x_acc(:,27)); + + +%compare position for braking/normal +figure %position +hold on +plot(x_left(:,1),x_left(:,2)) +plot(x_brake(:,1),x_brake(:,2)) +plot(x_acc(:,1),x_acc(:,2)) +for i=1:10 + t_next = tFinal/10*i; + ind = find(t_left kg.m^2 + +post_val = 4.4482216152605*0.3048*prev_val; \ No newline at end of file diff --git a/MATLAB/unitConversions/lb_sec2_ft_IN_kg.m b/MATLAB/unitConversions/lb_sec2_ft_IN_kg.m new file mode 100644 index 0000000..7e89cda --- /dev/null +++ b/MATLAB/unitConversions/lb_sec2_ft_IN_kg.m @@ -0,0 +1,8 @@ +function post_val = lb_sec2_ft_IN_kg(prev_val) + +% 1lb is 4.4482216152605 N +% 1ft is 0.3048 m + +% lb.sec^2/ft --> kg + +post_val = 4.4482216152605/0.3048*prev_val; \ No newline at end of file diff --git a/MATLAB/unitConversions/lb_sec_ft_IN_N_s_m.m b/MATLAB/unitConversions/lb_sec_ft_IN_N_s_m.m new file mode 100644 index 0000000..e981adb --- /dev/null +++ b/MATLAB/unitConversions/lb_sec_ft_IN_N_s_m.m @@ -0,0 +1,8 @@ +function post_val = lb_sec_ft_IN_N_s_m(prev_val) +% original: [lb sec/ft] +% new: [N sec/m] + +% 1lb is 4.4482216152605 N +% 1ft is 0.3048 m + +post_val = 4.4482216152605/0.3048*prev_val; \ No newline at end of file diff --git a/MATLAB/unitConversions/lbs_ft_IN_N_m.m b/MATLAB/unitConversions/lbs_ft_IN_N_m.m new file mode 100644 index 0000000..7fb1b24 --- /dev/null +++ b/MATLAB/unitConversions/lbs_ft_IN_N_m.m @@ -0,0 +1,9 @@ +function post_val = lbs_ft_IN_N_m(prev_val) +% original: [lbs/ft] +% new: [N/m] + +% 1lbs is 0.45359237 kg +% 1kg is around 9.81 N assuming being close to sea level +% 1ft is 0.3048 m + +post_val = 0.45359237*9.81/0.3048*prev_val; \ No newline at end of file diff --git a/MATLAB/unitConversions/rad_ft_IN_rad_m.m b/MATLAB/unitConversions/rad_ft_IN_rad_m.m new file mode 100644 index 0000000..dc54d6c --- /dev/null +++ b/MATLAB/unitConversions/rad_ft_IN_rad_m.m @@ -0,0 +1,7 @@ +function post_val = rad_ft_IN_rad_m(prev_val) +%original: [rad/ft] +%new: [rad/m] + +% 1ft is 0.3048 m + +post_val = 1/0.3048*prev_val; \ No newline at end of file diff --git a/MATLAB/unitConversions/rad_ft_lb_IN_rad_sec2_kg_m2.m b/MATLAB/unitConversions/rad_ft_lb_IN_rad_sec2_kg_m2.m new file mode 100644 index 0000000..0b63b0c --- /dev/null +++ b/MATLAB/unitConversions/rad_ft_lb_IN_rad_sec2_kg_m2.m @@ -0,0 +1,9 @@ +function post_val = rad_ft_lb_IN_rad_sec2_kg_m2(prev_val) + +%original: [rad/(ft lb)] +%new: [rad/(N m)] = [rad s^2/(kg m^2)] + +% 1lb is 4.4482216152605 N +% 1ft is 0.3048 m + +post_val = 1/(4.4482216152605*0.3048)*prev_val; \ No newline at end of file diff --git a/MATLAB/vehicleDynamics_KS.m b/MATLAB/vehicleDynamics_KS.m new file mode 100644 index 0000000..e9b9a3c --- /dev/null +++ b/MATLAB/vehicleDynamics_KS.m @@ -0,0 +1,50 @@ +function f = vehicleDynamics_KS(x,u,p) +% vehicleDynamics_KS - kinematic single-track vehicle dynamics +% +% Syntax: +% f = vehicleDynamics_KS(x,u,p) +% +% Inputs: +% x - vehicle state vector +% u - vehicle input vector +% p - vehicle parameter vector +% +% Outputs: +% f - right-hand side of differential equations +% +% Example: +% +% Other m-files required: none +% Subfunctions: none +% MAT-files required: none +% +% See also: --- + +% Author: Matthias Althoff +% Written: 12-January-2017 +% Last update: --- +% Last revision:--- + +%------------- BEGIN CODE -------------- + +%create equivalent kinematic single-track parameters +l = p.a + p.b; + +%states +%x1 = s_x x-position in a global coordinate system +%x2 = s_y y-position in a global coordinate system +%x3 = δ steering angle of front wheels +%x4 = u velocity in x-direction +%x5 = Ψ yaw angle + +%u1 = v_delta steering angle velocity of front wheels +%u2 = ax longitudinal acceleration + +%system dynamics +f(1,1) = x(4)*cos(x(5)); +f(2,1) = x(4)*sin(x(5)); +f(3,1) = u(1); +f(4,1) = u(2); +f(5,1) = x(4)/l*tan(x(3)); + +%------------- END OF CODE -------------- diff --git a/MATLAB/vehicleDynamics_MB.m b/MATLAB/vehicleDynamics_MB.m new file mode 100644 index 0000000..4168fc3 --- /dev/null +++ b/MATLAB/vehicleDynamics_MB.m @@ -0,0 +1,373 @@ +function f = vehicleDynamics_MB(x,u,p) +% vehicleDynamics_MB - multi-body vehicle dynamics based on the DOT +% (department of transportation) vehicle dynamics +% +% Syntax: +% f = vehicleDynamics_MB(t,x,u,p) +% +% Inputs: +% x - vehicle state vector +% u - vehicle input vector +% p - vehicle parameter vector +% +% Outputs: +% f - right-hand side of differential equations +% +% Example: +% +% Other m-files required: none +% Subfunctions: none +% MAT-files required: none +% +% See also: --- + +% Author: Matthias Althoff +% Written: 05-January-2017 +% Last update: --- +% Last revision:--- + +%------------- BEGIN CODE -------------- + +% set gravity constant +g = 9.81; %[m/s^2] + +%states +%x1 = s_x x-position in a global coordinate system +%x2 = s_y y-position in a global coordinate system +%x3 = δ steering angle of front wheels +%x4 = u velocity in x-direction +%x5 = Ψ yaw angle +%x6 = Ψ yaw rate + +%x7 = ΦS roll angle +%x8 = ΦS roll rate +%x9 = ΘS pitch angle +%x10 = ΘS pitch rate +%x11 = v velocity in y-direction +%x12 = zS z-position +%x13 = w velocity in z-direction + +%x14 = ΦUF roll angle front +%x15 = ΦUF roll rate front +%x16 = vUF velocity in y-direction front +%x17 = zUF z-position front +%x18 = wUF velocity in z-direction front + +%x19 = ΦUR roll angle rear +%x20 = ΦUR roll rate rear +%x21 = vUR velocity in y-direction rear +%x22 = zUR z-position rear +%x23 = wUR velocity in z-direction rear + +%x24 = ωLF left front wheel angular speed +%x25 = ωRF right front wheel angular speed +%x26 = ωLR left rear wheel angular speed +%x27 = ωRR right rear wheel angular speed + +%x28 = delta_y_f +%x29 = delta_y_r + +%u1 = v_delta steering angle velocity of front wheels +%u2 = acceleration + + +%compute slip angle at cg +beta = atan(x(11)/x(4)); +vel = sqrt(x(4)^2 + x(11)^2); + +%vertical tire forces +F_z_LF = (x(17) + p.R_w*(cos(x(14)) - 1) - 0.5*p.T_f*sin(x(14)))*p.K_zt; +F_z_RF = (x(17) + p.R_w*(cos(x(14)) - 1) + 0.5*p.T_f*sin(x(14)))*p.K_zt; +F_z_LR = (x(22) + p.R_w*(cos(x(19)) - 1) - 0.5*p.T_r*sin(x(19)))*p.K_zt; +F_z_RR = (x(22) + p.R_w*(cos(x(19)) - 1) + 0.5*p.T_r*sin(x(19)))*p.K_zt; + +%obtain individual tire speeds +u_w_lf = (x(4) + 0.5*p.T_f*x(6))*cos(x(3)) + (x(11) + p.a*x(6))*sin(x(3)); +u_w_rf = (x(4) - 0.5*p.T_f*x(6))*cos(x(3)) + (x(11) + p.a*x(6))*sin(x(3)); +u_w_lr = x(4) + 0.5*p.T_r*x(6); +u_w_rr = x(4) - 0.5*p.T_r*x(6); + +%compute longitudinal slip +s_lf = 1 - p.R_w*x(24)/u_w_lf; +s_rf = 1 - p.R_w*x(25)/u_w_rf; +s_lr = 1 - p.R_w*x(26)/u_w_lr; +s_rr = 1 - p.R_w*x(27)/u_w_rr; + +%lateral slip angles +alpha_LF = atan((x(11) + p.a*x(6) - x(15)*(p.R_w - x(17)))/(x(4) + 0.5*p.T_f*x(6))) - x(3); +alpha_RF = atan((x(11) + p.a*x(6) - x(15)*(p.R_w - x(17)))/(x(4) - 0.5*p.T_f*x(6))) - x(3); +alpha_LR = atan((x(11) - p.b*x(6) - x(20)*(p.R_w - x(22)))/(x(4) + 0.5*p.T_r*x(6))); +alpha_RR = atan((x(11) - p.b*x(6) - x(20)*(p.R_w - x(22)))/(x(4) - 0.5*p.T_r*x(6))); + +%auxiliary suspension movement +z_SLF = (p.h_s - p.R_w + x(17) - x(12))/cos(x(7)) - p.h_s + p.R_w + p.a*x(9) + 0.5*(x(7) - x(14))*p.T_f; +z_SRF = (p.h_s - p.R_w + x(17) - x(12))/cos(x(7)) - p.h_s + p.R_w + p.a*x(9) - 0.5*(x(7) - x(14))*p.T_f; +z_SLR = (p.h_s - p.R_w + x(22) - x(12))/cos(x(7)) - p.h_s + p.R_w - p.b*x(9) + 0.5*(x(7) - x(19))*p.T_r; +z_SRR = (p.h_s - p.R_w + x(22) - x(12))/cos(x(7)) - p.h_s + p.R_w - p.b*x(9) - 0.5*(x(7) - x(19))*p.T_r; + +dz_SLF = x(18) - x(13) + p.a*x(10) + 0.5*(x(8) - x(15))*p.T_f; +dz_SRF = x(18) - x(13) + p.a*x(10) - 0.5*(x(8) - x(15))*p.T_f; +dz_SLR = x(23) - x(13) - p.b*x(10) + 0.5*(x(8) - x(20))*p.T_r; +dz_SRR = x(23) - x(13) - p.b*x(10) - 0.5*(x(8) - x(20))*p.T_r; + +%camber angles +gamma_LF = x(7) + p.D_f*z_SLF + p.E_f*(z_SLF)^2; +gamma_RF = x(7) - p.D_f*z_SRF - p.E_f*(z_SRF)^2; +gamma_LR = x(7) + p.D_r*z_SLR + p.E_r*(z_SLR)^2; +gamma_RR = x(7) - p.D_r*z_SRR - p.E_r*(z_SRR)^2; + +%compute longitudinal tire forces using the magic formula for pure slip +F0_x_LF = mFormulaLongitudinal(s_lf, gamma_LF, F_z_LF, p.tire); +F0_x_RF = mFormulaLongitudinal(s_rf, gamma_RF, F_z_RF, p.tire); +F0_x_LR = mFormulaLongitudinal(s_lr, gamma_LR, F_z_LR, p.tire); +F0_x_RR = mFormulaLongitudinal(s_rr, gamma_RR, F_z_RR, p.tire); + +%compute lateral tire forces using the magic formula for pure slip +[F0_y_LF, mu_y_LF] = mFormulaLateral(alpha_LF, gamma_LF, F_z_LF, p.tire); +[F0_y_RF, mu_y_RF] = mFormulaLateral(alpha_RF, gamma_RF, F_z_RF, p.tire); +[F0_y_LR, mu_y_LR] = mFormulaLateral(alpha_LR, gamma_LR, F_z_LR, p.tire); +[F0_y_RR, mu_y_RR] = mFormulaLateral(alpha_RR, gamma_RR, F_z_RR, p.tire); + +%compute longitudinal tire forces using the magic formula for combined slip +F_x_LF = mFormulaLongitudinalComb(s_lf, alpha_LF, F0_x_LF, p.tire); +F_x_RF = mFormulaLongitudinalComb(s_rf, alpha_RF, F0_x_RF, p.tire); +F_x_LR = mFormulaLongitudinalComb(s_lr, alpha_LR, F0_x_LR, p.tire); +F_x_RR = mFormulaLongitudinalComb(s_rr, alpha_RR, F0_x_RR, p.tire); + +%compute lateral tire forces using the magic formula for combined slip +F_y_LF = mFormulaLateralComb(s_lf, alpha_LF, gamma_LF, mu_y_LF, F_z_LF, F0_y_LF, p.tire); +F_y_RF = mFormulaLateralComb(s_rf, alpha_RF, gamma_RF, mu_y_RF, F_z_RF, F0_y_RF, p.tire); +F_y_LR = mFormulaLateralComb(s_lr, alpha_LR, gamma_LR, mu_y_LR, F_z_LR, F0_y_LR, p.tire); +F_y_RR = mFormulaLateralComb(s_rr, alpha_RR, gamma_RR, mu_y_RR, F_z_RR, F0_y_RR, p.tire); + +%auxiliary movements for compliant joint equations +delta_z_f = p.h_s - p.R_w + x(17) - x(12); +delta_z_r = p.h_s - p.R_w + x(22) - x(12); + +delta_phi_f = x(7) - x(14); +delta_phi_r = x(7) - x(19); + +dot_delta_phi_f = x(8) - x(15); +dot_delta_phi_r = x(8) - x(20); + +dot_delta_z_f = x(18) - x(13); +dot_delta_z_r = x(23) - x(13); + +dot_delta_y_f = x(11) + p.a*x(6) - x(16); +dot_delta_y_r = x(11) - p.b*x(6) - x(21); + +delta_f = delta_z_f*sin(x(7)) - x(28)*cos(x(7)) - (p.h_raf - p.R_w)*sin(delta_phi_f); +delta_r = delta_z_r*sin(x(7)) - x(29)*cos(x(7)) - (p.h_rar - p.R_w)*sin(delta_phi_r); + +dot_delta_f = (delta_z_f*cos(x(7)) + x(28)*sin(x(7)))*x(8)... + + dot_delta_z_f*sin(x(7)) - dot_delta_y_f*cos(x(7)) - (p.h_raf - p.R_w)*cos(delta_phi_f)*dot_delta_phi_f; +dot_delta_r = (delta_z_r*cos(x(7)) + x(29)*sin(x(7)))*x(8)... + + dot_delta_z_r*sin(x(7)) - dot_delta_y_r*cos(x(7)) - (p.h_rar - p.R_w)*cos(delta_phi_r)*dot_delta_phi_r; + +%compliant joint forces +F_RAF = delta_f*p.K_ras + dot_delta_f*p.K_rad; +F_RAR = delta_r*p.K_ras + dot_delta_r*p.K_rad; + +%auxiliary suspension forces (bump stop neglected; squat/lift forces neglected) +F_SLF = p.m_s*g*p.b/(2*(p.a+p.b)) - z_SLF*p.K_sf - dz_SLF*p.K_sdf + (x(7) - x(14))*p.K_tsf/p.T_f; + +F_SRF = p.m_s*g*p.b/(2*(p.a+p.b)) - z_SRF*p.K_sf - dz_SRF*p.K_sdf - (x(7) - x(14))*p.K_tsf/p.T_f; + +F_SLR = p.m_s*g*p.a/(2*(p.a+p.b)) - z_SLR*p.K_sr - dz_SLR*p.K_sdr + (x(7) - x(19))*p.K_tsr/p.T_r; + +F_SRR = p.m_s*g*p.a/(2*(p.a+p.b)) - z_SRR*p.K_sr - dz_SRR*p.K_sdr - (x(7) - x(19))*p.K_tsr/p.T_r; + + +%auxiliary variables sprung mass +sumX = F_x_LR + F_x_RR + (F_x_LF + F_x_RF)*cos(x(3)) - (F_y_LF + F_y_RF)*sin(x(3)); + +sumN = (F_y_LF + F_y_RF)*p.a*cos(x(3)) + (F_x_LF + F_x_RF)*p.a*sin(x(3))... + + (F_y_RF - F_y_LF)*0.5*p.T_f*sin(x(3)) + (F_x_LF - F_x_RF)*0.5*p.T_f*cos(x(3))... + + (F_x_LR - F_x_RR)*0.5*p.T_r - (F_y_LR + F_y_RR)*p.b; + +sumY_s = (F_RAF + F_RAR)*cos(x(7)) + (F_SLF + F_SLR + F_SRF + F_SRR)*sin(x(7)); + +sumL = 0.5*F_SLF*p.T_f + 0.5*F_SLR*p.T_r - 0.5*F_SRF*p.T_f - 0.5*F_SRR*p.T_r... + - F_RAF/cos(x(7))*(p.h_s - x(12) - p.R_w + x(17) - (p.h_raf - p.R_w)*cos(x(14)))... + - F_RAR/cos(x(7))*(p.h_s - x(12) - p.R_w + x(22) - (p.h_rar - p.R_w)*cos(x(19))); + +sumZ_s = (F_SLF + F_SLR + F_SRF + F_SRR)*cos(x(7)) - (F_RAF + F_RAR)*sin(x(7)); + +sumM_s = p.a*(F_SLF + F_SRF) - p.b*(F_SLR + F_SRR) + ((F_x_LF + F_x_RF)*cos(x(3))... + - (F_y_LF + F_y_RF)*sin(x(3)) + F_x_LR + F_x_RR)*(p.h_s - x(12)); + +%auxiliary variables unsprung mass +sumL_uf = 0.5*F_SRF*p.T_f - 0.5*F_SLF*p.T_f - F_RAF*(p.h_raf - p.R_w)... + + F_z_LF*(p.R_w*sin(x(14)) + 0.5*p.T_f*cos(x(14)) - p.K_lt*F_y_LF)... + - F_z_RF*(-p.R_w*sin(x(14)) + 0.5*p.T_f*cos(x(14)) + p.K_lt*F_y_RF)... + - ((F_y_LF + F_y_RF)*cos(x(3)) + (F_x_LF + F_x_RF)*sin(x(3)))*(p.R_w - x(17)); + +sumL_ur = 0.5*F_SRR*p.T_r - 0.5*F_SLR*p.T_r - F_RAR*(p.h_rar - p.R_w)... + + F_z_LR*(p.R_w*sin(x(19)) + 0.5*p.T_r*cos(x(19)) - p.K_lt*F_y_LR)... + - F_z_RR*(-p.R_w*sin(x(19)) + 0.5*p.T_r*cos(x(19)) + p.K_lt*F_y_RR)... + - (F_y_LR + F_y_RR)*(p.R_w - x(22)); + +sumZ_uf = F_z_LF + F_z_RF + F_RAF*sin(x(7)) - (F_SLF + F_SRF)*cos(x(7)); + +sumZ_ur = F_z_LR + F_z_RR + F_RAR*sin(x(7)) - (F_SLR + F_SRR)*cos(x(7)); + +sumY_uf = (F_y_LF + F_y_RF)*cos(x(3)) + (F_x_LF + F_x_RF)*sin(x(3))... + - F_RAF*cos(x(7)) - (F_SLF + F_SRF)*sin(x(7)); + +sumY_ur = (F_y_LR + F_y_RR)... + - F_RAR*cos(x(7)) - (F_SLR + F_SRR)*sin(x(7)); + + +%dynamics common with single-track model +f(1,1) = cos(beta + x(5))*vel; +f(2,1) = sin(beta + x(5))*vel; +f(3,1) = u(1); +f(4,1) = 1/p.m*sumX + x(6)*x(11); +f(5,1) = x(6); +f(6,1) = 1/(p.I_z - (p.I_xz_s)^2/p.I_Phi_s)*(sumN + p.I_xz_s/p.I_Phi_s*sumL); + + +% remaining sprung mass dynamics +f(7,1) = x(8); +f(8,1) = 1/(p.I_Phi_s - (p.I_xz_s)^2/p.I_z)*(p.I_xz_s/p.I_z*sumN + sumL); +f(9,1) = x(10); +f(10,1) = 1/p.I_y_s*sumM_s; +f(11,1) = 1/p.m_s*sumY_s - x(6)*x(4); +f(12,1) = x(13); +f(13,1) = g - 1/p.m_s*sumZ_s; + +%unsprung mass dynamics (front) +f(14,1) = x(15); +f(15,1) = 1/p.I_uf*sumL_uf; +f(16,1) = 1/p.m_uf*sumY_uf - x(6)*x(4); +f(17,1) = x(18); +f(18,1) = g - 1/p.m_uf*sumZ_uf; + +%unsprung mass dynamics (rear) +f(19,1) = x(20); +f(20,1) = 1/p.I_ur*sumL_ur; +f(21,1) = 1/p.m_ur*sumY_ur - x(6)*x(4); +f(22,1) = x(23); +f(23,1) = g - 1/p.m_ur*sumZ_ur; + +%convert acceleration input to brake and engine torque +if u(2)>0 + T_B = 0; + T_E = p.m*p.R_w*u(2); +else + T_B = p.m*p.R_w*u(2); + T_E = 0; +end + +%wheel dynamics (p.T; new parameter for torque splitting) +f(24,1) = 1/p.I_y_w*(-p.R_w*F_x_LF + 0.5*p.T_sb*T_B + 0.5*p.T_se*T_E); +f(25,1) = 1/p.I_y_w*(-p.R_w*F_x_RF + 0.5*p.T_sb*T_B + 0.5*p.T_se*T_E); +f(26,1) = 1/p.I_y_w*(-p.R_w*F_x_LR + 0.5*(1-p.T_sb)*T_B + 0.5*(1-p.T_se)*T_E); +f(27,1) = 1/p.I_y_w*(-p.R_w*F_x_RR + 0.5*(1-p.T_sb)*T_B + 0.5*(1-p.T_se)*T_E); + +%negative wheel spin forbidden +for iState = 24:27 + if x(iState)<0 + x(iState) = 0; + f(iState,1) = 0; + end +end + +%compliant joint equations +f(28,1) = dot_delta_y_f; +f(29,1) = dot_delta_y_r; + + +%longitudinal tire forces +function F_x = mFormulaLongitudinal(kappa, gamma, F_z, p) + +%turn slip is neglected, so xi_i=1; +%all scaling factors lambda = 1; + +%coordinate system transformation +kappa = -kappa; + +S_hx = p.p_hx1; +S_vx = F_z*p.p_vx1; + +kappa_x = kappa + S_hx; +mu_x = p.p_dx1*(1-p.p_dx3*gamma^2); + +C_x = p.p_cx1; +D_x = mu_x*F_z; +E_x = p.p_ex1; +K_x = F_z*p.p_kx1; +B_x = K_x/(C_x*D_x); + +%magic tire formula +F_x = D_x*sin(C_x*atan(B_x*kappa_x - E_x*(B_x*kappa_x - atan(B_x*kappa_x))) + S_vx); + + +%lateral tire forces +function [F_y, mu_y] = mFormulaLateral(alpha, gamma, F_z, p) + +%turn slip is neglected, so xi_i=1; +%all scaling factors lambda = 1; + +%coordinate system transformation +%alpha = -alpha; + +S_hy = sign(gamma)*(p.p_hy1 + p.p_hy3*abs(gamma)); +S_vy = sign(gamma)*F_z*(p.p_vy1 + p.p_vy3*abs(gamma)); + +alpha_y = alpha + S_hy; +mu_y = p.p_dy1*(1-p.p_dy3*gamma^2); + +C_y = p.p_cy1; +D_y = mu_y*F_z; +E_y = p.p_ey1; +K_y = F_z*p.p_ky1; %simplify K_y0 to p.p_ky1*F_z +B_y = K_y/(C_y*D_y); + +%magic tire formula +F_y = D_y*sin(C_y*atan(B_y*alpha_y - E_y*(B_y*alpha_y - atan(B_y*alpha_y)))) + S_vy; + + +%longitudinal tire forces for combined slip +function F_x = mFormulaLongitudinalComb(kappa, alpha, F0_x, p) + +%turn slip is neglected, so xi_i=1; +%all scaling factors lambda = 1; + +S_hxalpha = p.r_hx1; + +alpha_s = alpha + S_hxalpha; + +B_xalpha = p.r_bx1*cos(atan(p.r_bx2*kappa)); +C_xalpha = p.r_cx1; +E_xalpha = p.r_ex1; +D_xalpha = F0_x/(cos(C_xalpha*atan(B_xalpha*S_hxalpha - E_xalpha*(B_xalpha*S_hxalpha - atan(B_xalpha*S_hxalpha))))); + +%magic tire formula +F_x = D_xalpha*cos(C_xalpha*atan(B_xalpha*alpha_s - E_xalpha*(B_xalpha*alpha_s - atan(B_xalpha*alpha_s)))); + + + +%longitudinal tire forces for combined slip +function F_y = mFormulaLateralComb(kappa, alpha, gamma, mu_y, F_z, F0_y, p) + +%turn slip is neglected, so xi_i=1; +%all scaling factors lambda = 1; + +S_hykappa = p.r_hy1; + +kappa_s = kappa + S_hykappa; + +B_ykappa = p.r_by1*cos(atan(p.r_by2*(alpha-p.r_by3))); +C_ykappa = p.r_cy1; +E_ykappa = p.r_ey1; +D_ykappa = F0_y/(cos(C_ykappa*atan(B_ykappa*S_hykappa - E_ykappa*(B_ykappa*S_hykappa - atan(B_ykappa*S_hykappa))))); + +D_vykappa = mu_y*F_z*(p.r_vy1 + p.r_vy3*gamma) * cos(atan(p.r_vy4*alpha)); +S_vykappa = D_vykappa*sin(p.r_vy5*atan(p.r_vy6*kappa)); + +%magic tire formula +F_y = D_ykappa*cos(C_ykappa*atan(B_ykappa*kappa_s - E_ykappa*(B_ykappa*kappa_s - atan(B_ykappa*kappa_s)))) + S_vykappa; + + +%------------- END OF CODE -------------- \ No newline at end of file diff --git a/MATLAB/vehicleDynamics_ST.m b/MATLAB/vehicleDynamics_ST.m new file mode 100644 index 0000000..3d6b589 --- /dev/null +++ b/MATLAB/vehicleDynamics_ST.m @@ -0,0 +1,70 @@ +function f = vehicleDynamics_ST(x,u,p) +% vehicleDynamics_ST - single-track vehicle dynamics +% +% Syntax: +% f = vehicleDynamics_ST(x,u,p) +% +% Inputs: +% x - vehicle state vector +% u - vehicle input vector +% p - vehicle parameter vector +% +% Outputs: +% f - right-hand side of differential equations +% +% Example: +% +% Other m-files required: none +% Subfunctions: none +% MAT-files required: none +% +% See also: --- + +% Author: Matthias Althoff +% Written: 12-January-2017 +% Last update: --- +% Last revision:--- + +%------------- BEGIN CODE -------------- + +% set gravity constant +g = 9.81; %[m/s^2] + +%create equivalent bicycle parameters +mu = p.tire.p_dy1; +C_Sf = -p.tire.p_ky1/p.tire.p_dy1; +C_Sr = -p.tire.p_ky1/p.tire.p_dy1; +lf = p.a; +lr = p.b; +h = p.h_s; +m = p.m; +I = p.I_z; + +%states +%x1 = s_x x-position in a global coordinate system +%x2 = s_y y-position in a global coordinate system +%x3 = δ steering angle of front wheels +%x4 = u velocity in x-direction +%x5 = Ψ yaw angle +%x6 = Ψ yaw rate +%x7 = β slip angle at vehicle center + +%u1 = v_delta steering angle velocity of front wheels +%u2 = ax longitudinal acceleration + + +%system dynamics +f(1,1) = x(4)*cos(x(7) + x(5)); +f(2,1) = x(4)*sin(x(7) + x(5)); +f(3,1) = u(1); +f(4,1) = u(2); +f(5,1) = x(6); +f(6,1) = -mu*m/(x(4)*I*(lr+lf))*(lf^2*C_Sf*(g*lr-u(2)*h) + lr^2*C_Sr*(g*lf + u(2)*h))*x(6) ... + +mu*m/(I*(lr+lf))*(lr*C_Sr*(g*lf + u(2)*h) - lf*C_Sf*(g*lr - u(2)*h))*x(7) ... + +mu*m/(I*(lr+lf))*lf*C_Sf*(g*lr - u(2)*h)*x(3); +f(7,1) = (mu/(x(4)^2*(lr+lf))*(C_Sr*(g*lf + u(2)*h)*lr - C_Sf*(g*lr - u(2)*h)*lf)-1)*x(6) ... + -mu/(x(4)*(lr+lf))*(C_Sr*(g*lf + u(2)*h) + C_Sf*(g*lr-u(2)*h))*x(7) ... + +mu/(x(4)*(lr+lf))*(C_Sf*(g*lr-u(2)*h))*x(3); + + +%------------- END OF CODE -------------- \ No newline at end of file diff --git a/Python/init_KS.py b/Python/init_KS.py new file mode 100644 index 0000000..7188577 --- /dev/null +++ b/Python/init_KS.py @@ -0,0 +1,67 @@ +def init_KS(initState, p): + # init_KS - generates the initial state vector for the kinematic single-track model + + # Syntax: + # x0 = init_KS(initState, p) + # + # Inputs: + # initState - core initial states + # p - parameter vector + # + # Outputs: + # x0 - initial state vector + # + # Example: + # + # See also: --- + + # Author: Matthias Althoff + # Written: 11-January-2017 + # Last update: --- + # Last revision:--- + + + #------------- BEGIN CODE -------------- + + #states + #x1 = x-position in a global coordinate system + #x2 = y-position in a global coordinate system + #x3 = steering angle of front wheels + #x4 = velocity in x-direction + #x5 = yaw angle + + #u1 = steering angle velocity of front wheels + #u2 = ongitudinal acceleration + + + #obtain initial states from vector + sx0 = initState[0] + sy0 = initState[1] + vel0 = initState[2] + Psi0 = initState[3] + dotPsi0 = initState[4] + beta0 = initState[5] + + + #create equivalent bicycle parameters + g = 9.81 #[m/s^2] + mu = p.tire.p_dy1 + C_Sf = -p.tire.p_ky1/p.tire.p_dy1 + C_Sr = -p.tire.p_ky1/p.tire.p_dy1 + lf = p.a + lr = p.b + + #initial steering angle from steady state of slip angle + delta0 = vel0*(lf + lr)/(C_Sf*g*lr*mu)*dotPsi0 + 1/(C_Sf*lr)*((C_Sr*lf + C_Sf*lr)*beta0 - (C_Sr - C_Sf)*lr*lf*dotPsi0/vel0) + + #sprung mass states + x0 = [] # init initial state vector + x0.append(sx0) # x-position in a global coordinate system + x0.append(sy0) # y-position in a global coordinate system + x0.append(delta0) # steering angle of front wheels + x0.append(vel0) # velocity + x0.append(Psi0) # yaw angle + + return x0 + + #------------- END OF CODE -------------- diff --git a/Python/init_MB.py b/Python/init_MB.py new file mode 100644 index 0000000..a78bcc5 --- /dev/null +++ b/Python/init_MB.py @@ -0,0 +1,132 @@ +import math + +def init_MB(initState, p): + # init_MB - generates the initial state vector for the multi-body model + # + # Syntax: + # x0 = init_MB(initState, p) + # + # Inputs: + # initState - core initial states + # p - parameter vector + # + # Outputs: + # x0 - initial state vector + # + # Example: + # + # See also: --- + + # Author: Matthias Althoff + # Written: 11-January-2017 + # Last update: --- + # Last revision:--- + + #------------- BEGIN CODE -------------- + + #states + #x1 = x-position in a global coordinate system + #x2 = y-position in a global coordinate system + #x3 = steering angle of front wheels + #x4 = velocity in x-direction + #x5 = yaw angle + #x6 = yaw rate + + #x7 = roll angle + #x8 = roll rate + #x9 = pitch angle + #x10 = pitch rate + #x11 = velocity in y-direction + #x12 = z-position + #x13 = velocity in z-direction + + #x14 = roll angle front + #x15 = roll rate front + #x16 = velocity in y-direction front + #x17 = z-position front + #x18 = velocity in z-direction front + + #x19 = roll angle rear + #x20 = roll rate rear + #x21 = velocity in y-direction rear + #x22 = z-position rear + #x23 = velocity in z-direction rear + + #x24 = left front wheel angular speed + #x25 = right front wheel angular speed + #x26 = left rear wheel angular speed + #x27 = right rear wheel angular speed + + #x28 = delta_y_f + #x29 = delta_y_r + + #u1 = steering angle velocity of front wheels + #u2 = acceleration + + + #obtain initial states from vector + sx0 = initState[0] + sy0 = initState[1] + vel0 = initState[2] + Psi0 = initState[3] + dotPsi0 = initState[4] + beta0 = initState[5] + + + #create equivalent bicycle parameters + g = 9.81 #[m/s^2] + mu = p.tire.p_dy1 + C_Sf = -p.tire.p_ky1/p.tire.p_dy1 + C_Sr = -p.tire.p_ky1/p.tire.p_dy1 + lf = p.a + lr = p.b + + #initial steering angle from steady state of slip angle + delta0 = vel0*(lf + lr)/(C_Sf*g*lr*mu)*dotPsi0 + 1/(C_Sf*lr)*((C_Sr*lf + C_Sf*lr)*beta0 - (C_Sr - C_Sf)*lr*lf*dotPsi0/vel0) + + #auxiliary initial states + F0_z_f = p.m_s*g*p.b/((p.a + p.b)) + p.m_uf*g + F0_z_r = p.m_s*g*p.a/((p.a + p.b)) + p.m_ur*g + + #sprung mass states + x0 = [] # init initial state vector + x0.append(sx0) # x-position in a global coordinate system + x0.append(sy0) # y-position in a global coordinate system + x0.append(delta0) # steering angle of front wheels + x0.append(math.cos(beta0)*vel0) # velocity in x-direction + x0.append(Psi0) # yaw angle + x0.append(dotPsi0) # yaw rate + x0.append(0) # roll angle + x0.append(0) # roll rate + x0.append(0) # pitch angle + x0.append(0) # pitch rate + x0.append(math.sin(beta0)*vel0) # velocity in y-direction + x0.append(0) # z-position (zero height corresponds to steady state solution) + x0.append(0) # velocity in z-direction + + #unsprung mass states (front) + x0.append(0) # roll angle front + x0.append(0) # roll rate front + x0.append(math.sin(beta0)*vel0 + p.a*dotPsi0) # velocity in y-direction front + x0.append((F0_z_f)/(2*p.K_zt)) # z-position front + x0.append(0) # velocity in z-direction front + + #unsprung mass states (rear) + x0.append(0) # roll angle rear + x0.append(0) # roll rate rear + x0.append(math.sin(beta0)*vel0 - p.b*dotPsi0) # velocity in y-direction rear + x0.append((F0_z_r)/(2*p.K_zt)) # z-position rear + x0.append(0) # velocity in z-direction rear + + #wheel states + x0.append(x0[3]/(p.R_w)) # left front wheel angular speed + x0.append(x0[3]/(p.R_w)) # right front wheel angular speed + x0.append(x0[3]/(p.R_w)) # left rear wheel angular speed + x0.append(x0[3]/(p.R_w)) # right rear wheel angular speed + + x0.append(0) # delta_y_f + x0.append(0) # delta_y_r + + return x0 + + #------------- END OF CODE -------------- diff --git a/Python/init_ST.py b/Python/init_ST.py new file mode 100644 index 0000000..8f32b93 --- /dev/null +++ b/Python/init_ST.py @@ -0,0 +1,70 @@ +def init_ST(initState, p): + # init_MB - generates the initial state vector for the single-track model + # + # Syntax: + # x0 = init_ST(initState, p) + # + # Inputs: + # initState - core initial states + # p - parameter vector + # + # Outputs: + # x0 - initial state vector + # + # Example: + # + # See also: --- + + # Author: Matthias Althoff + # Written: 11-January-2017 + # Last update: --- + # Last revision:--- + + #------------- BEGIN CODE -------------- + + #states + #x1 = x-position in a global coordinate system + #x2 = y-position in a global coordinate system + #x3 = steering angle of front wheels + #x4 = velocity in x-direction + #x5 = yaw angle + #x6 = yaw rate + #x7 = slip angle at vehicle center + + #u1 = steering angle velocity of front wheels + #u2 = longitudinal acceleration + + + #obtain initial states from vector + sx0 = initState[0] + sy0 = initState[1] + vel0 = initState[2] + Psi0 = initState[3] + dotPsi0 = initState[4] + beta0 = initState[5] + + + #create equivalent bicycle parameters + g = 9.81 #[m/s^2] + mu = p.tire.p_dy1 + C_Sf = -p.tire.p_ky1/p.tire.p_dy1 + C_Sr = -p.tire.p_ky1/p.tire.p_dy1 + lf = p.a + lr = p.b + + #initial steering angle from steady state of slip angle + delta0 = vel0*(lf + lr)/(C_Sf*g*lr*mu)*dotPsi0 + 1/(C_Sf*lr)*((C_Sr*lf + C_Sf*lr)*beta0 - (C_Sr - C_Sf)*lr*lf*dotPsi0/vel0) + + #sprung mass states + x0 = [] # init initial state vector + x0.append(sx0) # x-position in a global coordinate system + x0.append(sy0) # y-position in a global coordinate system + x0.append(delta0) # steering angle of front wheels + x0.append(vel0) # velocity + x0.append(Psi0) # yaw angle + x0.append(dotPsi0) # yaw rate + x0.append(beta0) # slip angle at vehicle center + + return x0 + +#------------- END OF CODE -------------- diff --git a/Python/parameters_vehicle1.py b/Python/parameters_vehicle1.py new file mode 100644 index 0000000..ba4c22e --- /dev/null +++ b/Python/parameters_vehicle1.py @@ -0,0 +1,135 @@ +#from unitConversions.unitConversion import ft_IN_m +from unitConversions import unitConversion +from vehicleParameters import VehicleParameters + +def parameters_vehicle1(): + # parameters_vehicle1 - parameter set of the multi-body vehicle dynamics + # based on the DOT (department of transportation) vehicle dynamics + # values are taken from a Ford Escort + # + # Syntax: + # p = parameters_vehicle1() + # + # Inputs: + # --- + # + # Outputs: + # p - parameter vector + # + # Example: + # + # Subfunctions: none + # + # See also: --- + + # Author: Matthias Althoff + # Written: 15-January-2017 + # Last update: 05-July-2017 + # Last revision:--- + + #------------- BEGIN CODE -------------- + + #init vehicle parameters + p = VehicleParameters() + + #vehicle body dimensions + p.l = 4.298 #vehicle length [m] + p.w = 1.674 #vehicle width [m] + + #masses + p.m = unitConversion.lb_sec2_ft_IN_kg(84) #vehicle mass [kg] MASS + p.m_s = unitConversion.lb_sec2_ft_IN_kg(75) #sprung mass [kg] SMASS + p.m_uf = unitConversion.lb_sec2_ft_IN_kg(4.5) #unsprung mass front [kg] UMASSF + p.m_ur = unitConversion.lb_sec2_ft_IN_kg(4.5) #unsprung mass rear [kg] UMASSR + + #axes distances + p.a = unitConversion.ft_IN_m(2.9) #distance from spring mass center of gravity to front axle [m] LENA + p.b = unitConversion.ft_IN_m(4.95) #distance from spring mass center of gravity to rear axle [m] LENB + + #moments of inertia of sprung mass + p.I_Phi_s = unitConversion.lb_ft_sec2_IN_kg_m2(180) #moment of inertia for sprung mass in roll [kg m^2] IXS + p.I_y_s = unitConversion.lb_ft_sec2_IN_kg_m2(990) #moment of inertia for sprung mass in pitch [kg m^2] IYS + p.I_z = unitConversion.lb_ft_sec2_IN_kg_m2(1135) #moment of inertia for sprung mass in yaw [kg m^2] IZZ + p.I_xz_s = unitConversion.lb_ft_sec2_IN_kg_m2(0) #moment of inertia cross product [kg m^2] IXZ + + #suspension parameters + p.K_sf = unitConversion.lbs_ft_IN_N_m(1500) #suspension spring rate (front) [N/m] KSF + p.K_sdf = unitConversion.lb_sec_ft_IN_N_s_m(100) #suspension damping rate (front) [N s/m] KSDF + p.K_sr = unitConversion.lbs_ft_IN_N_m(1500) #suspension spring rate (rear) [N/m] KSR + p.K_sdr = unitConversion.lb_sec_ft_IN_N_s_m(100) #suspension damping rate (rear) [N s/m] KSDR + + #geometric parameters + p.T_f = unitConversion.ft_IN_m(4.56) #track width front [m] TRWF + p.T_r = unitConversion.ft_IN_m(4.67) #track width rear [m] TRWB + p.K_ras = unitConversion.lbs_ft_IN_N_m(12000) #lateral spring rate at compliant compliant pin joint between M_s and M_u [N/m] KRAS + + p.K_tsf = unitConversion.ft_lb_rad_IN_N_m_rad(-9500) #auxiliary torsion roll stiffness per axle (normally negative) (front) [N m/rad] KTSF + p.K_tsr = unitConversion.ft_lb_rad_IN_N_m_rad(0) #auxiliary torsion roll stiffness per axle (normally negative) (rear) [N m/rad] KTSR + p.K_rad = unitConversion.lb_sec_ft_IN_N_s_m(700) # damping rate at compliant compliant pin joint between M_s and M_u [N s/m] KRADP + p.K_zt = unitConversion.lbs_ft_IN_N_m(13000) # vertical spring rate of tire [N/m] TSPRINGR + + p.h_cg = unitConversion.ft_IN_m(1.83) #center of gravity height of total mass [m] HCG (mainly required for conversion to other vehicle models) + p.h_raf = unitConversion.ft_IN_m(0) #height of roll axis above ground (front) [m] HRAF + p.h_rar = unitConversion.ft_IN_m(0) #height of roll axis above ground (rear) [m] HRAR + + p.h_s = unitConversion.ft_IN_m(1.95) #M_s center of gravity above ground [m] HS + + p.I_uf = unitConversion.lb_ft_sec2_IN_kg_m2(24) #moment of inertia for unsprung mass about x-axis (front) [kg m^2] IXUF + p.I_ur = unitConversion.lb_ft_sec2_IN_kg_m2(24) #moment of inertia for unsprung mass about x-axis (rear) [kg m^2] IXUR + p.I_y_w = 1.7 #wheel inertia, from internet forum for 235/65 R 17 [kg m^2] + + p.K_lt = unitConversion.ft_lb_IN_m_N(0.00015) #lateral compliance rate of tire, wheel, and suspension, per tire [m/N] KLT + p.R_w = 0.344 #effective wheel/tire radius chosen as tire rolling radius RR taken from ADAMS documentation [m] + + #split of brake and engine torque + p.T_sb = 0.76 + p.T_se = 1 + + #suspension parameters + p.D_f = unitConversion.rad_ft_IN_rad_m(-0.19) #[rad/m] DF + p.D_r = unitConversion.rad_ft_IN_rad_m(-0.064) #[rad/m] DR + p.E_f = 0 #[needs conversion if nonzero] EF + p.E_r = 0 #[needs conversion if nonzero] ER + + + #tire parameters from ADAMS handbook + #longitudinal coefficients + p.tire.p_cx1 = 1.6411 #Shape factor Cfx for longitudinal force + p.tire.p_dx1 = 1.1739 #Longitudinal friction Mux at Fznom + p.tire.p_dx3 = 0 #Variation of friction Mux with camber + p.tire.p_ex1 = 0.46403 #Longitudinal curvature Efx at Fznom + p.tire.p_kx1 = 22.303 #Longitudinal slip stiffness Kfx/Fz at Fznom + p.tire.p_hx1 = 0.0012297 #Horizontal shift Shx at Fznom + p.tire.p_vx1 = -8.8098e-006 #Vertical shift Svx/Fz at Fznom + p.tire.r_bx1 = 13.276 #Slope factor for combined slip Fx reduction + p.tire.r_bx2 = -13.778 #Variation of slope Fx reduction with kappa + p.tire.r_cx1 = 1.2568 #Shape factor for combined slip Fx reduction + p.tire.r_ex1 = 0.65225 #Curvature factor of combined Fx + p.tire.r_hx1 = 0.0050722 #Shift factor for combined slip Fx reduction + + #lateral coefficients + p.tire.p_cy1 = 1.3507 #Shape factor Cfy for lateral forces + p.tire.p_dy1 = 1.0489 #Lateral friction Muy + p.tire.p_dy3 = -2.8821 #Variation of friction Muy with squared camber + p.tire.p_ey1 = -0.0074722 #Lateral curvature Efy at Fznom + p.tire.p_ky1 = -21.92 #Maximum value of stiffness Kfy/Fznom + p.tire.p_hy1 = 0.0026747 #Horizontal shift Shy at Fznom + p.tire.p_hy3 = 0.031415 #Variation of shift Shy with camber + p.tire.p_vy1 = 0.037318 #Vertical shift in Svy/Fz at Fznom + p.tire.p_vy3 = -0.32931 #Variation of shift Svy/Fz with camber + p.tire.r_by1 = 7.1433 #Slope factor for combined Fy reduction + p.tire.r_by2 = 9.1916 #Variation of slope Fy reduction with alpha + p.tire.r_by3 = -0.027856 #Shift term for alpha in slope Fy reduction + p.tire.r_cy1 = 1.0719 #Shape factor for combined Fy reduction + p.tire.r_ey1 = -0.27572 #Curvature factor of combined Fy + p.tire.r_hy1 = 5.7448e-006 #Shift factor for combined Fy reduction + p.tire.r_vy1 = -0.027825 #Kappa induced side force Svyk/Muy*Fz at Fznom + p.tire.r_vy3 = -0.27568 #Variation of Svyk/Muy*Fz with camber + p.tire.r_vy4 = 12.12 #Variation of Svyk/Muy*Fz with alpha + p.tire.r_vy5 = 1.9 #Variation of Svyk/Muy*Fz with kappa + p.tire.r_vy6 = -10.704 #Variation of Svyk/Muy*Fz with atan(kappa) + + return p + + + #------------- END OF CODE -------------- diff --git a/Python/parameters_vehicle2.py b/Python/parameters_vehicle2.py new file mode 100644 index 0000000..696b9a2 --- /dev/null +++ b/Python/parameters_vehicle2.py @@ -0,0 +1,131 @@ +from unitConversions import unitConversion +from vehicleParameters import VehicleParameters + +def parameters_vehicle2(): + # parameters_vehicle2 - parameter set of the multi-body vehicle dynamics + # based on the DOT (department of transportation) vehicle dynamics + # values are taken from a BMW 320i + # + # Syntax: + # p = parameters_vehicle2() + # + # Inputs: + # --- + # + # Outputs: + # p - parameter vector + # + # Example: + # + # See also: --- + + # Author: Matthias Althoff + # Written: 15-January-2017 + # Last update: 05-July-2017 + # Last revision:--- + + #------------- BEGIN CODE -------------- + + #init vehicle parameters + p = VehicleParameters() + + #vehicle body dimensions + p.l = 4.508 #vehicle length [m] (with US bumpers) + p.w = 1.610 #vehicle width [m] + + #masses + p.m = unitConversion.lb_sec2_ft_IN_kg(74.91452) #vehicle mass [kg] MASS + p.m_s = unitConversion.lb_sec2_ft_IN_kg(66.17221) #sprung mass [kg] SMASS + p.m_uf = unitConversion.lb_sec2_ft_IN_kg(4.371153) #unsprung mass front [kg] UMASSF + p.m_ur = unitConversion.lb_sec2_ft_IN_kg(4.371153) #unsprung mass rear [kg] UMASSR + + #axes distances + p.a = unitConversion.ft_IN_m(3.793293) #distance from spring mass center of gravity to front axle [m] LENA + p.b = unitConversion.ft_IN_m(4.667707) #distance from spring mass center of gravity to rear axle [m] LENB + + #moments of inertia of sprung mass + p.I_Phi_s = unitConversion.lb_ft_sec2_IN_kg_m2(152.871) #moment of inertia for sprung mass in roll [kg m^2] IXS + p.I_y_s = unitConversion.lb_ft_sec2_IN_kg_m2(1154.888) #moment of inertia for sprung mass in pitch [kg m^2] IYS + p.I_z = unitConversion.lb_ft_sec2_IN_kg_m2(1321.416) #moment of inertia for sprung mass in yaw [kg m^2] IZZ + p.I_xz_s = unitConversion.lb_ft_sec2_IN_kg_m2(0) #moment of inertia cross product [kg m^2] IXZ + + #suspension parameters + p.K_sf = unitConversion.lbs_ft_IN_N_m(1675) #suspension spring rate (front) [N/m] KSF + p.K_sdf = unitConversion.lb_sec_ft_IN_N_s_m(122.3966) #suspension damping rate (front) [N s/m] KSDF + p.K_sr = unitConversion.lbs_ft_IN_N_m(1345) #suspension spring rate (rear) [N/m] KSR + p.K_sdr = unitConversion.lb_sec_ft_IN_N_s_m(112.9981) #suspension damping rate (rear) [N s/m] KSDR + + #geometric parameters + p.T_f = unitConversion.ft_IN_m(4.55) #track width front [m] TRWF + p.T_r = unitConversion.ft_IN_m(4.475) #track width rear [m] TRWB + p.K_ras = unitConversion.lbs_ft_IN_N_m(12000) #lateral spring rate at compliant compliant pin joint between M_s and M_u [N/m] KRAS + + p.K_tsf = unitConversion.ft_lb_rad_IN_N_m_rad(-5100.155) #auxiliary torsion roll stiffness per axle (normally negative) (front) [N m/rad] KTSF + p.K_tsr = unitConversion.ft_lb_rad_IN_N_m_rad(-1949.82) #auxiliary torsion roll stiffness per axle (normally negative) (rear) [N m/rad] KTSR + p.K_rad = unitConversion.lb_sec_ft_IN_N_s_m(700) # damping rate at compliant compliant pin joint between M_s and M_u [N s/m] KRADP + p.K_zt = unitConversion.lbs_ft_IN_N_m(10842.89) # vertical spring rate of tire [N/m] TSPRINGR + + p.h_cg = unitConversion.ft_IN_m(1.886053) #center of gravity height of total mass [m] HCG (mainly required for conversion to other vehicle models) + p.h_raf = unitConversion.ft_IN_m(0) #height of roll axis above ground (front) [m] HRAF + p.h_rar = unitConversion.ft_IN_m(0) #height of roll axis above ground (rear) [m] HRAR + + p.h_s = unitConversion.ft_IN_m(2.01355) #M_s center of gravity above ground [m] HS + + p.I_uf = unitConversion.lb_ft_sec2_IN_kg_m2(22.62345) #moment of inertia for unsprung mass about x-axis (front) [kg m^2] IXUF + p.I_ur = unitConversion.lb_ft_sec2_IN_kg_m2(21.88377) #moment of inertia for unsprung mass about x-axis (rear) [kg m^2] IXUR + p.I_y_w = 1.7 #wheel inertia, from internet forum for 235/65 R 17 [kg m^2] + + p.K_lt = unitConversion.ft_lb_IN_m_N(2.397884e-4) #lateral compliance rate of tire, wheel, and suspension, per tire [m/N] KLT + p.R_w = 0.344 #effective wheel/tire radius chosen as tire rolling radius RR taken from ADAMS documentation [m] + + #split of brake and engine torque + p.T_sb = 0.66 + p.T_se = 0 + + #suspension parameters + p.D_f = unitConversion.rad_ft_IN_rad_m(-0.12) #[rad/m] DF + p.D_r = unitConversion.rad_ft_IN_rad_m(-0.276) #[rad/m] DR + p.E_f = 0 #[needs conversion if nonzero] EF + p.E_r = 0 #[needs conversion if nonzero] ER + + + #tire parameters from ADAMS handbook + #longitudinal coefficients + p.tire.p_cx1 = 1.6411 #Shape factor Cfx for longitudinal force + p.tire.p_dx1 = 1.1739 #Longitudinal friction Mux at Fznom + p.tire.p_dx3 = 0 #Variation of friction Mux with camber + p.tire.p_ex1 = 0.46403 #Longitudinal curvature Efx at Fznom + p.tire.p_kx1 = 22.303 #Longitudinal slip stiffness Kfx/Fz at Fznom + p.tire.p_hx1 = 0.0012297 #Horizontal shift Shx at Fznom + p.tire.p_vx1 = -8.8098e-006 #Vertical shift Svx/Fz at Fznom + p.tire.r_bx1 = 13.276 #Slope factor for combined slip Fx reduction + p.tire.r_bx2 = -13.778 #Variation of slope Fx reduction with kappa + p.tire.r_cx1 = 1.2568 #Shape factor for combined slip Fx reduction + p.tire.r_ex1 = 0.65225 #Curvature factor of combined Fx + p.tire.r_hx1 = 0.0050722 #Shift factor for combined slip Fx reduction + + #lateral coefficients + p.tire.p_cy1 = 1.3507 #Shape factor Cfy for lateral forces + p.tire.p_dy1 = 1.0489 #Lateral friction Muy + p.tire.p_dy3 = -2.8821 #Variation of friction Muy with squared camber + p.tire.p_ey1 = -0.0074722 #Lateral curvature Efy at Fznom + p.tire.p_ky1 = -21.92 #Maximum value of stiffness Kfy/Fznom + p.tire.p_hy1 = 0.0026747 #Horizontal shift Shy at Fznom + p.tire.p_hy3 = 0.031415 #Variation of shift Shy with camber + p.tire.p_vy1 = 0.037318 #Vertical shift in Svy/Fz at Fznom + p.tire.p_vy3 = -0.32931 #Variation of shift Svy/Fz with camber + p.tire.r_by1 = 7.1433 #Slope factor for combined Fy reduction + p.tire.r_by2 = 9.1916 #Variation of slope Fy reduction with alpha + p.tire.r_by3 = -0.027856 #Shift term for alpha in slope Fy reduction + p.tire.r_cy1 = 1.0719 #Shape factor for combined Fy reduction + p.tire.r_ey1 = -0.27572 #Curvature factor of combined Fy + p.tire.r_hy1 = 5.7448e-006 #Shift factor for combined Fy reduction + p.tire.r_vy1 = -0.027825 #Kappa induced side force Svyk/Muy*Fz at Fznom + p.tire.r_vy3 = -0.27568 #Variation of Svyk/Muy*Fz with camber + p.tire.r_vy4 = 12.12 #Variation of Svyk/Muy*Fz with alpha + p.tire.r_vy5 = 1.9 #Variation of Svyk/Muy*Fz with kappa + p.tire.r_vy6 = -10.704 #Variation of Svyk/Muy*Fz with atan(kappa) + + return p + + #------------- END OF CODE -------------- diff --git a/Python/parameters_vehicle3.py b/Python/parameters_vehicle3.py new file mode 100644 index 0000000..c28a1e8 --- /dev/null +++ b/Python/parameters_vehicle3.py @@ -0,0 +1,135 @@ +from unitConversions import unitConversion +from vehicleParameters import VehicleParameters + +def parameters_vehicle3(): + # parameters_vehicle3 - parameter set of the multi-body vehicle dynamics + # based on the DOT (department of transportation) vehicle dynamics + # values are taken from a VW Vanagon + # + # Syntax: + # p = parameters_vehicle3() + # + # Inputs: + # --- + # + # Outputs: + # p - parameter vector + # + # Example: + # + # Other m-files required: none + # Subfunctions: none + # MAT-files required: none + # + # See also: --- + + # Author: Matthias Althoff + # Written: 15-January-2017 + # Last update: 05-July-2017 + # Last revision:--- + + #------------- BEGIN CODE -------------- + + #init vehicle parameters + p = VehicleParameters() + + #vehicle body dimensions + p.l = 4.569 #vehicle length [m] + p.w = 1.844 #vehicle width [m] + + #masses + p.m = unitConversion.lb_sec2_ft_IN_kg(101.3367) #vehicle mass [kg] MASS + p.m_s = unitConversion.lb_sec2_ft_IN_kg(90.21635) #sprung mass [kg] SMASS + p.m_uf = unitConversion.lb_sec2_ft_IN_kg(5.56015) #unsprung mass front [kg] UMASSF + p.m_ur = unitConversion.lb_sec2_ft_IN_kg(5.56015) #unsprung mass rear [kg] UMASSR + + #axes distances + p.a = unitConversion.ft_IN_m(3.775563) #distance from spring mass center of gravity to front axle [m] LENA + p.b = unitConversion.ft_IN_m(4.334437) #distance from spring mass center of gravity to rear axle [m] LENB + + #moments of inertia of sprung mass + p.I_Phi_s = unitConversion.lb_ft_sec2_IN_kg_m2(353.9445) #moment of inertia for sprung mass in roll [kg m^2] IXS + p.I_y_s = unitConversion.lb_ft_sec2_IN_kg_m2(1625.825) #moment of inertia for sprung mass in pitch [kg m^2] IYS + p.I_z = unitConversion.lb_ft_sec2_IN_kg_m2(1824.078) #moment of inertia for sprung mass in yaw [kg m^2] IZZ + p.I_xz_s = unitConversion.lb_ft_sec2_IN_kg_m2(0) #moment of inertia cross product [kg m^2] IXZ + + #suspension parameters + p.K_sf = unitConversion.lbs_ft_IN_N_m(2300) #suspension spring rate (front) [N/m] KSF + p.K_sdf = unitConversion.lb_sec_ft_IN_N_s_m(164.8335) #suspension damping rate (front) [N s/m] KSDF + p.K_sr = unitConversion.lbs_ft_IN_N_m(2680) #suspension spring rate (rear) [N/m] KSR + p.K_sdr = unitConversion.lb_sec_ft_IN_N_s_m(189.7866) #suspension damping rate (rear) [N s/m] KSDR + + #geometric parameters + p.T_f = unitConversion.ft_IN_m(5.165) #track width front [m] TRWF + p.T_r = unitConversion.ft_IN_m(5.065) #track width rear [m] TRWB + p.K_ras = unitConversion.lbs_ft_IN_N_m(12000) #lateral spring rate at compliant compliant pin joint between M_s and M_u [N/m] KRAS + + p.K_tsf = unitConversion.ft_lb_rad_IN_N_m_rad(-25038.92) #auxiliary torsion roll stiffness per axle (normally negative) (front) [N m/rad] KTSF + p.K_tsr = unitConversion.ft_lb_rad_IN_N_m_rad(-5702.369) #auxiliary torsion roll stiffness per axle (normally negative) (rear) [N m/rad] KTSR + p.K_rad = unitConversion.lb_sec_ft_IN_N_s_m(700) # damping rate at compliant compliant pin joint between M_s and M_u [N s/m] KRADP + p.K_zt = unitConversion.lbs_ft_IN_N_m(14565.6) # vertical spring rate of tire [N/m] TSPRINGR + + p.h_cg = unitConversion.ft_IN_m(2.453467) #center of gravity height of total mass [m] HCG (mainly required for conversion to other vehicle models) + p.h_raf = unitConversion.ft_IN_m(0) #height of roll axis above ground (front) [m] HRAF + p.h_rar = unitConversion.ft_IN_m(0) #height of roll axis above ground (rear) [m] HRAR + + p.h_s = unitConversion.ft_IN_m(2.639405) #M_s center of gravity above ground [m] HS + + p.I_uf = unitConversion.lb_ft_sec2_IN_kg_m2(37.08234) #moment of inertia for unsprung mass about x-axis (front) [kg m^2] IXUF + p.I_ur = unitConversion.lb_ft_sec2_IN_kg_m2(35.66033) #moment of inertia for unsprung mass about x-axis (rear) [kg m^2] IXUR + p.I_y_w = 1.7 #wheel inertia, from internet forum for 235/65 R 17 [kg m^2] + + p.K_lt = unitConversion.ft_lb_IN_m_N(1.7850283e-04) #lateral compliance rate of tire, wheel, and suspension, per tire [m/N] KLT + p.R_w = 0.344 #effective wheel/tire radius chosen as tire rolling radius RR taken from ADAMS documentation [m] + + #split of brake and engine torque + p.T_sb = 0.64 + p.T_se = 0 + + #suspension parameters + p.D_f = unitConversion.rad_ft_IN_rad_m(-0.1) #[rad/m] DF; modified from orig. paper due to stability issues when damping is ignored + p.D_r = unitConversion.rad_ft_IN_rad_m(-0.1) #[rad/m] DR; modified from orig. paper due to stability issues when damping is ignored + p.E_f = 0 #[needs conversion if nonzero] EF + p.E_r = 0 #[needs conversion if nonzero] ER + + + #tire parameters from ADAMS handbook + #longitudinal coefficients + p.tire.p_cx1 = 1.6411 #Shape factor Cfx for longitudinal force + p.tire.p_dx1 = 1.1739 #Longitudinal friction Mux at Fznom + p.tire.p_dx3 = 0 #Variation of friction Mux with camber + p.tire.p_ex1 = 0.46403 #Longitudinal curvature Efx at Fznom + p.tire.p_kx1 = 22.303 #Longitudinal slip stiffness Kfx/Fz at Fznom + p.tire.p_hx1 = 0.0012297 #Horizontal shift Shx at Fznom + p.tire.p_vx1 = -8.8098e-006 #Vertical shift Svx/Fz at Fznom + p.tire.r_bx1 = 13.276 #Slope factor for combined slip Fx reduction + p.tire.r_bx2 = -13.778 #Variation of slope Fx reduction with kappa + p.tire.r_cx1 = 1.2568 #Shape factor for combined slip Fx reduction + p.tire.r_ex1 = 0.65225 #Curvature factor of combined Fx + p.tire.r_hx1 = 0.0050722 #Shift factor for combined slip Fx reduction + + #lateral coefficients + p.tire.p_cy1 = 1.3507 #Shape factor Cfy for lateral forces + p.tire.p_dy1 = 1.0489 #Lateral friction Muy + p.tire.p_dy3 = -2.8821 #Variation of friction Muy with squared camber + p.tire.p_ey1 = -0.0074722 #Lateral curvature Efy at Fznom + p.tire.p_ky1 = -21.92 #Maximum value of stiffness Kfy/Fznom + p.tire.p_hy1 = 0.0026747 #Horizontal shift Shy at Fznom + p.tire.p_hy3 = 0.031415 #Variation of shift Shy with camber + p.tire.p_vy1 = 0.037318 #Vertical shift in Svy/Fz at Fznom + p.tire.p_vy3 = -0.32931 #Variation of shift Svy/Fz with camber + p.tire.r_by1 = 7.1433 #Slope factor for combined Fy reduction + p.tire.r_by2 = 9.1916 #Variation of slope Fy reduction with alpha + p.tire.r_by3 = -0.027856 #Shift term for alpha in slope Fy reduction + p.tire.r_cy1 = 1.0719 #Shape factor for combined Fy reduction + p.tire.r_ey1 = -0.27572 #Curvature factor of combined Fy + p.tire.r_hy1 = 5.7448e-006 #Shift factor for combined Fy reduction + p.tire.r_vy1 = -0.027825 #Kappa induced side force Svyk/Muy*Fz at Fznom + p.tire.r_vy3 = -0.27568 #Variation of Svyk/Muy*Fz with camber + p.tire.r_vy4 = 12.12 #Variation of Svyk/Muy*Fz with alpha + p.tire.r_vy5 = 1.9 #Variation of Svyk/Muy*Fz with kappa + p.tire.r_vy6 = -10.704 #Variation of Svyk/Muy*Fz with atan(kappa) + + return p + +#------------- END OF CODE -------------- diff --git a/Python/readme.txt b/Python/readme.txt new file mode 100644 index 0000000..8ea5ee8 --- /dev/null +++ b/Python/readme.txt @@ -0,0 +1,19 @@ +To execute a test function, which produces the plots of the vehicle models documentation, run 'testVehicle.py'. + +Initialization of models------------------------------------------ +kinematic single-track model: init_KS.py +single-track model: init_ST.py +multi-body model: init_MB.py +------------------------------------------------------------------ + +Parameter sets---------------------------------------------------- +Ford Escort: parameters_vehicle1.py +BMW 320i: parameters_vehicle2.py +VW Vanagon: parameters_vehicle3.py +------------------------------------------------------------------ + +Vehicle models---------------------------------------------------- +kinematic single-track model: vehicleDynamics_KS.py +single-track model: vehicleDynamics_ST.py +multi-body model: vehicleDynamics_MB.py +------------------------------------------------------------------ diff --git a/Python/testVehicle.py b/Python/testVehicle.py new file mode 100644 index 0000000..bcc7fa9 --- /dev/null +++ b/Python/testVehicle.py @@ -0,0 +1,190 @@ +from parameters_vehicle1 import parameters_vehicle1 +from init_KS import init_KS +from init_ST import init_ST +from init_MB import init_MB +from vehicleDynamics_KS import vehicleDynamics_KS +from vehicleDynamics_ST import vehicleDynamics_ST +from vehicleDynamics_MB import vehicleDynamics_MB +from scipy.integrate import odeint +import numpy +import matplotlib.pyplot as plt + + +def func_KS(x, t, u, p): + f = vehicleDynamics_KS(x, u, p) + return f + + +def func_ST(x, t, u, p): + f = vehicleDynamics_ST(x, u, p) + return f + + +def func_MB(x, t, u, p): + f = vehicleDynamics_MB(x, u, p) + return f + + +#load parameters +p = parameters_vehicle1() +g = 9.81 #[m/s^2] + +#set options -------------------------------------------------------------- +tStart = 0 #start time +tFinal = 1 #start time + +# vel0 = 15 +# Psi0 = 0.1 +# dotPsi0 = -0.1 +# beta0 = 0.05 +# sy0 = 1 +vel0 = 15 +Psi0 = 0 +dotPsi0 = 0 +beta0 = 0 +sy0 = 0 +initialState = [0,sy0,vel0,Psi0,dotPsi0,beta0] #initial state for simulation +x0_KS = init_KS(initialState, p) #initial state for kinematic single-track model +x0_ST = init_ST(initialState, p) #initial state for single-track model +x0_MB = init_MB(initialState, p) #initial state for multi-body model +#-------------------------------------------------------------------------- +# + +t = numpy.arange(0,tFinal, 0.01) +u = [0, 0] +x = odeint(func_KS, x0_KS, t, args=(u, p)) + +print(x) + +t = numpy.arange(0,tFinal, 0.01) +u = [0, 5] +x = odeint(func_KS, x0_KS, t, args=(u, p)) + +print(x) + +#set input: rolling car (velocity should stay constant) +t = numpy.arange(0,tFinal, 0.01) +u = [0, 0] +print(x0_MB) +#simulate car +x = odeint(func_MB, x0_MB, t, args=(u, p)) +#plot velocity +plt.plot(t, [tmp[3] for tmp in x]) +plt.show() + +#set input: braking car (wheel spin and velocity should decrease similar wheel spin) +v_delta = 0.15 +acc = -0.7*g +u = [v_delta, acc] +#simulate car +x_brake = odeint(func_MB, x0_MB, t, args=(u, p)) +#position +plt.plot([tmp[0] for tmp in x_brake], [tmp[1] for tmp in x_brake]) +plt.show() +# velocity +plt.plot(t, [tmp[3] for tmp in x_brake]) +plt.show() +# wheel spin +plt.plot(t, [tmp[23] for tmp in x_brake]) +plt.plot(t, [tmp[24] for tmp in x_brake]) +plt.plot(t, [tmp[25] for tmp in x_brake]) +plt.plot(t, [tmp[26] for tmp in x_brake]) +plt.show() +# pitch +plt.plot(t, [tmp[8] for tmp in x_brake]) +plt.show() + +#set input: accelerating car (wheel spin and velocity should increase more wheel spin at rear) +v_delta = 0.15 +acc = 0.63*g +u = [v_delta, acc] +#simulate car +x_acc = odeint(func_MB, x0_MB, t, args=(u, p)) +#position +plt.plot([tmp[0] for tmp in x_acc], [tmp[1] for tmp in x_acc]) +plt.show() +# velocity +plt.plot(t, [tmp[3] for tmp in x_acc]) +plt.show() +# wheel spin +plt.plot(t, [tmp[23] for tmp in x_acc]) +plt.plot(t, [tmp[24] for tmp in x_acc]) +plt.plot(t, [tmp[25] for tmp in x_acc]) +plt.plot(t, [tmp[26] for tmp in x_acc]) +plt.show() +# pitch +plt.plot(t, [tmp[8] for tmp in x_acc]) +plt.show() +#orientation +plt.plot(t, [tmp[4] for tmp in x_acc]) +plt.show() + + +#steering to left +v_delta = 0.15 +u = [v_delta, 0] + +#simulate full car +x_left = odeint(func_MB, x0_MB, t, args=(u, p)) + +#simulate single-track model +x_left_st = odeint(func_ST, x0_ST, t, args=(u, p)) + +#simulate kinematic single-track model +x_left_ks = odeint(func_KS, x0_KS, t, args=(u, p)) + +#position +plt.plot([tmp[0] for tmp in x_left], [tmp[1] for tmp in x_left]) +plt.plot([tmp[0] for tmp in x_left_st], [tmp[1] for tmp in x_left_st]) +plt.plot([tmp[0] for tmp in x_left_ks], [tmp[1] for tmp in x_left_ks]) +plt.show() +#orientation +plt.plot(t, [tmp[4] for tmp in x_left]) +plt.plot(t, [tmp[4] for tmp in x_left_st]) +plt.plot(t, [tmp[4] for tmp in x_left_ks]) +plt.show() +#steering +plt.plot(t, [tmp[2] for tmp in x_left]) +plt.plot(t, [tmp[2] for tmp in x_left_st]) +plt.plot(t, [tmp[2] for tmp in x_left_ks]) +plt.show() +#yaw rate +plt.plot(t, [tmp[5] for tmp in x_left]) +plt.plot(t, [tmp[5] for tmp in x_left_st]) +plt.show() +#slip angle +plt.plot(t, [tmp[10]/tmp[3] for tmp in x_left]) +plt.plot(t, [tmp[6] for tmp in x_left_st]) +plt.show() + +# figure # wheel spin +# hold on +# plot(t_acc,x_acc(:,24)) +# plot(t_acc,x_acc(:,25)) +# plot(t_acc,x_acc(:,26)) +# plot(t_acc,x_acc(:,27)) + + +#compare position for braking/normal +#position +plt.plot([tmp[0] for tmp in x_left], [tmp[1] for tmp in x_left]) +plt.plot([tmp[0] for tmp in x_brake], [tmp[1] for tmp in x_brake]) +plt.plot([tmp[0] for tmp in x_acc], [tmp[1] for tmp in x_acc]) +plt.show() +#compare slip angles +plt.plot(t, [tmp[10]/tmp[3] for tmp in x_left]) +plt.plot(t, [tmp[10]/tmp[3] for tmp in x_brake]) +plt.plot(t, [tmp[10]/tmp[3] for tmp in x_acc]) +plt.show() +#orientation +plt.plot(t, [tmp[4] for tmp in x_left]) +plt.plot(t, [tmp[4] for tmp in x_brake]) +plt.plot(t, [tmp[4] for tmp in x_acc]) +plt.show() +#pitch +plt.plot(t, [tmp[8] for tmp in x_left]) +plt.plot(t, [tmp[8] for tmp in x_brake]) +plt.plot(t, [tmp[8] for tmp in x_acc]) +plt.show() + +#------------- END OF CODE -------------- diff --git a/Python/tireModel.py b/Python/tireModel.py new file mode 100644 index 0000000..29912ee --- /dev/null +++ b/Python/tireModel.py @@ -0,0 +1,106 @@ +import math + +#sign function +def sign(x): + if x > 0: + return 1 + elif x < 0: + return -1 + else: + return 0 + +#longitudinal tire forces +def mFormulaLongitudinal(kappa, gamma, F_z, p): + + #turn slip is neglected, so xi_i=1 + #all scaling factors lambda = 1 + + #coordinate system transformation + kappa = -kappa + + S_hx = p.p_hx1 + S_vx = F_z*p.p_vx1 + + kappa_x = kappa + S_hx + mu_x = p.p_dx1*(1-p.p_dx3*gamma**2) + + C_x = p.p_cx1 + D_x = mu_x*F_z + E_x = p.p_ex1 + K_x = F_z*p.p_kx1 + B_x = K_x/(C_x*D_x) + + #magic tire formula + return D_x*math.sin(C_x*math.atan(B_x*kappa_x - E_x*(B_x*kappa_x - math.atan(B_x*kappa_x))) + S_vx) + + +#lateral tire forces +def mFormulaLateral(alpha, gamma, F_z, p): + + #turn slip is neglected, so xi_i=1 + #all scaling factors lambda = 1 + + #coordinate system transformation + #alpha = -alpha + + S_hy = sign(gamma)*(p.p_hy1 + p.p_hy3*math.fabs(gamma)) + S_vy = sign(gamma)*F_z*(p.p_vy1 + p.p_vy3*math.fabs(gamma)) + + alpha_y = alpha + S_hy + mu_y = p.p_dy1*(1-p.p_dy3*gamma**2) + + C_y = p.p_cy1 + D_y = mu_y*F_z + E_y = p.p_ey1 + K_y = F_z*p.p_ky1 #simplify K_y0 to p.p_ky1*F_z + B_y = K_y/(C_y*D_y) + + #magic tire formula + F_y = D_y*math.sin(C_y*math.atan(B_y*alpha_y - E_y*(B_y*alpha_y - math.atan(B_y*alpha_y)))) + S_vy + + res = [] + res.append(F_y) + res.append(mu_y) + return res + + +#longitudinal tire forces for combined slip +def mFormulaLongitudinalComb(kappa, alpha, F0_x, p): + + #turn slip is neglected, so xi_i=1 + #all scaling factors lambda = 1 + + S_hxalpha = p.r_hx1 + + alpha_s = alpha + S_hxalpha + + B_xalpha = p.r_bx1*math.cos(math.atan(p.r_bx2*kappa)) + C_xalpha = p.r_cx1 + E_xalpha = p.r_ex1 + D_xalpha = F0_x/(math.cos(C_xalpha*math.atan(B_xalpha*S_hxalpha - E_xalpha*(B_xalpha*S_hxalpha - math.atan(B_xalpha*S_hxalpha))))) + + #magic tire formula + return D_xalpha*math.cos(C_xalpha*math.atan(B_xalpha*alpha_s - E_xalpha*(B_xalpha*alpha_s - math.atan(B_xalpha*alpha_s)))) + + + +#longitudinal tire forces for combined slip +def mFormulaLateralComb(kappa, alpha, gamma, mu_y, F_z, F0_y, p): + + #turn slip is neglected, so xi_i=1 + #all scaling factors lambda = 1 + + S_hykappa = p.r_hy1 + + kappa_s = kappa + S_hykappa + + B_ykappa = p.r_by1*math.cos(math.atan(p.r_by2*(alpha-p.r_by3))) + C_ykappa = p.r_cy1 + E_ykappa = p.r_ey1 + D_ykappa = F0_y/(math.cos(C_ykappa*math.atan(B_ykappa*S_hykappa - E_ykappa*(B_ykappa*S_hykappa - math.atan(B_ykappa*S_hykappa))))) + + D_vykappa = mu_y*F_z*(p.r_vy1 + p.r_vy3*gamma) * math.cos(math.atan(p.r_vy4*alpha)) + S_vykappa = D_vykappa*math.sin(p.r_vy5*math.atan(p.r_vy6*kappa)) + + #magic tire formula + return D_ykappa*math.cos(C_ykappa*math.atan(B_ykappa*kappa_s - E_ykappa*(B_ykappa*kappa_s - math.atan(B_ykappa*kappa_s)))) + S_vykappa diff --git a/Python/tireParameters.py b/Python/tireParameters.py new file mode 100644 index 0000000..e5c8d0a --- /dev/null +++ b/Python/tireParameters.py @@ -0,0 +1,38 @@ +class TireParameters(): + def __init__(self): + #tire parameters from ADAMS handbook + #longitudinal coefficients + self.p_cx1 = [] #Shape factor Cfx for longitudinal force + self.p_dx1 = [] #Longitudinal friction Mux at Fznom + self.p_dx3 = [] #Variation of friction Mux with camber + self.p_ex1 = [] #Longitudinal curvature Efx at Fznom + self.p_kx1 = [] #Longitudinal slip stiffness Kfx/Fz at Fznom + self.p_hx1 = [] #Horizontal shift Shx at Fznom + self.p_vx1 = [] #Vertical shift Svx/Fz at Fznom + self.r_bx1 = [] #Slope factor for combined slip Fx reduction + self.r_bx2 = [] #Variation of slope Fx reduction with kappa + self.r_cx1 = [] #Shape factor for combined slip Fx reduction + self.r_ex1 = [] #Curvature factor of combined Fx + self.r_hx1 = [] #Shift factor for combined slip Fx reduction + + #lateral coefficients + self.p_cy1 = [] #Shape factor Cfy for lateral forces + self.p_dy1 = [] #Lateral friction Muy + self.p_dy3 = [] #Variation of friction Muy with squared camber + self.p_ey1 = [] #Lateral curvature Efy at Fznom + self.p_ky1 = [] #Maximum value of stiffness Kfy/Fznom + self.p_hy1 = [] #Horizontal shift Shy at Fznom + self.p_hy3 = [] #Variation of shift Shy with camber + self.p_vy1 = [] #Vertical shift in Svy/Fz at Fznom + self.p_vy3 = [] #Variation of shift Svy/Fz with camber + self.r_by1 = [] #Slope factor for combined Fy reduction + self.r_by2 = [] #Variation of slope Fy reduction with alpha + self.r_by3 = [] #Shift term for alpha in slope Fy reduction + self.r_cy1 = [] #Shape factor for combined Fy reduction + self.r_ey1 = [] #Curvature factor of combined Fy + self.r_hy1 = [] #Shift factor for combined Fy reduction + self.r_vy1 = [] #Kappa induced side force Svyk/Muy*Fz at Fznom + self.r_vy3 = [] #Variation of Svyk/Muy*Fz with camber + self.r_vy4 = [] #Variation of Svyk/Muy*Fz with alpha + self.r_vy5 = [] #Variation of Svyk/Muy*Fz with kappa + self.r_vy6 = [] #Variation of Svyk/Muy*Fz with atan(kappa) diff --git a/Python/unitConversions/__init__.py b/Python/unitConversions/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Python/unitConversions/unitConversion.py b/Python/unitConversions/unitConversion.py new file mode 100644 index 0000000..92d625e --- /dev/null +++ b/Python/unitConversions/unitConversion.py @@ -0,0 +1,95 @@ +def lb_sec2_ft_IN_kg(prev_val): + +# 1lb is 4.4482216152605 N +# 1ft is 0.3048 m + + return 4.4482216152605/0.3048*prev_val + + +def ft_IN_m(prev_val): +#original: [ft] +#new: [m] + +# 1ft is 0.3048 m + + return 0.3048*prev_val + + +def lb_ft_sec2_IN_kg_m2(prev_val): + +#[kg m^2] = [N m sec^2] + +# 1lb is 4.4482216152605 N +# 1ft is 0.3048 m + + return 4.4482216152605*0.3048*prev_val + + +def rad_ft_lb_IN_rad_sec2_kg_m2(prev_val): + +#original: [rad/(ft lb)] +#new: [rad/(N m)] = [rad s^2/(kg m^2)] + +# 1lb is 4.4482216152605 N +# 1ft is 0.3048 m + + return 1/(4.4482216152605*0.3048)*prev_val + + +def ft2_IN_m2(prev_val): +#original: [ft^2] +#new: [m^2] + +# 1ft is 0.3048 m + + return pow(0.3048, 2)*prev_val + + +def lbs_ft_IN_N_m(prev_val): +#original: [lbs/ft] +#new: [N/m] + +# 1lbs is 0.45359237 kg +# 1kg is around 9.81 N assuming being close to sea level +# 1ft is 0.3048 m + + return 0.45359237*9.81/0.3048*prev_val + + +def lb_sec_ft_IN_N_s_m(prev_val): +#original: [lb sec/ft] +#new: [N sec/m] + +# 1lb is 4.4482216152605 N +# 1ft is 0.3048 m + + return 4.4482216152605/0.3048*prev_val + + +def ft_lb_rad_IN_N_m_rad(prev_val): +#original: [lb ft/rad] +#new: [N m/rad] + +# 1lb is 4.4482216152605 N +# 1ft is 0.3048 m + + return 4.4482216152605*0.3048*prev_val + + +def ft_lb_IN_m_N(prev_val): +#original: [ft/lb] +#new: [m/N] + +# 1lb is 4.4482216152605 N +# 1ft is 0.3048 m + + return 0.3048/4.4482216152605*prev_val + + +def rad_ft_IN_rad_m(prev_val): +#original: [rad/ft] +#new: [rad/m] + +# 1ft is 0.3048 m + + return 1/0.3048*prev_val diff --git a/Python/vehicleDynamics_KS.py b/Python/vehicleDynamics_KS.py new file mode 100644 index 0000000..eedc8ed --- /dev/null +++ b/Python/vehicleDynamics_KS.py @@ -0,0 +1,54 @@ +import math + +def vehicleDynamics_KS(x,u,p): + # vehicleDynamics_KS - kinematic single-track vehicle dynamics + # + # Syntax: + # f = vehicleDynamics_KS(x,u,p) + # + # Inputs: + # x - vehicle state vector + # u - vehicle input vector + # p - vehicle parameter vector + # + # Outputs: + # f - right-hand side of differential equations + # + # Example: + # + # Other m-files required: none + # Subfunctions: none + # MAT-files required: none + # + # See also: --- + + # Author: Matthias Althoff + # Written: 12-January-2017 + # Last update: --- + # Last revision:--- + + #------------- BEGIN CODE -------------- + + #create equivalent kinematic single-track parameters + l = p.a + p.b + + #states + #x1 = x-position in a global coordinate system + #x2 = y-position in a global coordinate system + #x3 = steering angle of front wheels + #x4 = velocity in x-direction + #x5 = yaw angle + + #u1 = steering angle velocity of front wheels + #u2 = longitudinal acceleration + + #system dynamics + f = [x[3]*math.cos(x[4]), + x[3]*math.sin(x[4]), + u[0], + u[1], + x[3]/l*math.tan(x[2])] + + return f + + #------------- END OF CODE -------------- diff --git a/Python/vehicleDynamics_MB.py b/Python/vehicleDynamics_MB.py new file mode 100644 index 0000000..504d7bb --- /dev/null +++ b/Python/vehicleDynamics_MB.py @@ -0,0 +1,287 @@ +import tireModel +import math + +def vehicleDynamics_MB(x,u,p): + # vehicleDynamics_MB - multi-body vehicle dynamics based on the DOT + # (department of transportation) vehicle dynamics + # + # Syntax: + # f = vehicleDynamics_MB(t,x,u,p) + # + # Inputs: + # x - vehicle state vector + # u - vehicle input vector + # p - vehicle parameter vector + # + # Outputs: + # f - right-hand side of differential equations + # + # Example: + # + # See also: --- + + # Author: Matthias Althoff + # Written: 05-January-2017 + # Last update: --- + # Last revision:--- + + #------------- BEGIN CODE -------------- + + # set gravity constant + g = 9.81 #[m/s^2] + + #states + #x1 = x-position in a global coordinate system + #x2 = y-position in a global coordinate system + #x3 = steering angle of front wheels + #x4 = velocity in x-direction + #x5 = yaw angle + #x6 = yaw rate + + #x7 = roll angle + #x8 = roll rate + #x9 = pitch angle + #x10 = pitch rate + #x11 = velocity in y-direction + #x12 = z-position + #x13 = velocity in z-direction + + #x14 = roll angle front + #x15 = roll rate front + #x16 = velocity in y-direction front + #x17 = z-position front + #x18 = velocity in z-direction front + + #x19 = roll angle rear + #x20 = roll rate rear + #x21 = velocity in y-direction rear + #x22 = z-position rear + #x23 = velocity in z-direction rear + + #x24 = left front wheel angular speed + #x25 = right front wheel angular speed + #x26 = left rear wheel angular speed + #x27 = right rear wheel angular speed + + #x28 = delta_y_f + #x29 = delta_y_r + + #u1 = steering angle velocity of front wheels + #u2 = acceleration + + + #compute slip angle at cg + beta = math.atan(x[10]/x[3]) + vel = math.sqrt(x[3]**2 + x[10]**2) + + #vertical tire forces + F_z_LF = (x[16] + p.R_w*(math.cos(x[13]) - 1) - 0.5*p.T_f*math.sin(x[13]))*p.K_zt + F_z_RF = (x[16] + p.R_w*(math.cos(x[13]) - 1) + 0.5*p.T_f*math.sin(x[13]))*p.K_zt + F_z_LR = (x[21] + p.R_w*(math.cos(x[18]) - 1) - 0.5*p.T_r*math.sin(x[18]))*p.K_zt + F_z_RR = (x[21] + p.R_w*(math.cos(x[18]) - 1) + 0.5*p.T_r*math.sin(x[18]))*p.K_zt + + #obtain individual tire speeds + u_w_lf = (x[3] + 0.5*p.T_f*x[5])*math.cos(x[2]) + (x[10] + p.a*x[5])*math.sin(x[2]) + u_w_rf = (x[3] - 0.5*p.T_f*x[5])*math.cos(x[2]) + (x[10] + p.a*x[5])*math.sin(x[2]) + u_w_lr = x[3] + 0.5*p.T_r*x[5] + u_w_rr = x[3] - 0.5*p.T_r*x[5] + + #compute longitudinal slip + s_lf = 1 - p.R_w*x[23]/u_w_lf + s_rf = 1 - p.R_w*x[24]/u_w_rf + s_lr = 1 - p.R_w*x[25]/u_w_lr + s_rr = 1 - p.R_w*x[26]/u_w_rr + + #lateral slip angles + alpha_LF = math.atan((x[10] + p.a*x[5] - x[14]*(p.R_w - x[16]))/(x[3] + 0.5*p.T_f*x[5])) - x[2] + alpha_RF = math.atan((x[10] + p.a*x[5] - x[14]*(p.R_w - x[16]))/(x[3] - 0.5*p.T_f*x[5])) - x[2] + alpha_LR = math.atan((x[10] - p.b*x[5] - x[19]*(p.R_w - x[21]))/(x[3] + 0.5*p.T_r*x[5])) + alpha_RR = math.atan((x[10] - p.b*x[5] - x[19]*(p.R_w - x[21]))/(x[3] - 0.5*p.T_r*x[5])) + + #auxiliary suspension movement + z_SLF = (p.h_s - p.R_w + x[16] - x[11])/math.cos(x[6]) - p.h_s + p.R_w + p.a*x[8] + 0.5*(x[6] - x[13])*p.T_f + z_SRF = (p.h_s - p.R_w + x[16] - x[11])/math.cos(x[6]) - p.h_s + p.R_w + p.a*x[8] - 0.5*(x[6] - x[13])*p.T_f + z_SLR = (p.h_s - p.R_w + x[21] - x[11])/math.cos(x[6]) - p.h_s + p.R_w - p.b*x[8] + 0.5*(x[6] - x[18])*p.T_r + z_SRR = (p.h_s - p.R_w + x[21] - x[11])/math.cos(x[6]) - p.h_s + p.R_w - p.b*x[8] - 0.5*(x[6] - x[18])*p.T_r + + dz_SLF = x[17] - x[12] + p.a*x[9] + 0.5*(x[7] - x[14])*p.T_f + dz_SRF = x[17] - x[12] + p.a*x[9] - 0.5*(x[7] - x[14])*p.T_f + dz_SLR = x[22] - x[12] - p.b*x[9] + 0.5*(x[7] - x[19])*p.T_r + dz_SRR = x[22] - x[12] - p.b*x[9] - 0.5*(x[7] - x[19])*p.T_r + + #camber angles + gamma_LF = x[6] + p.D_f*z_SLF + p.E_f*(z_SLF)**2 + gamma_RF = x[6] - p.D_f*z_SRF - p.E_f*(z_SRF)**2 + gamma_LR = x[6] + p.D_r*z_SLR + p.E_r*(z_SLR)**2 + gamma_RR = x[6] - p.D_r*z_SRR - p.E_r*(z_SRR)**2 + + #compute longitudinal tire forces using the magic formula for pure slip + F0_x_LF = tireModel.mFormulaLongitudinal(s_lf, gamma_LF, F_z_LF, p.tire) + F0_x_RF = tireModel.mFormulaLongitudinal(s_rf, gamma_RF, F_z_RF, p.tire) + F0_x_LR = tireModel.mFormulaLongitudinal(s_lr, gamma_LR, F_z_LR, p.tire) + F0_x_RR = tireModel.mFormulaLongitudinal(s_rr, gamma_RR, F_z_RR, p.tire) + + #compute lateral tire forces using the magic formula for pure slip + res = tireModel.mFormulaLateral(alpha_LF, gamma_LF, F_z_LF, p.tire) + F0_y_LF = res[0] + mu_y_LF = res[1] + res = tireModel.mFormulaLateral(alpha_RF, gamma_RF, F_z_RF, p.tire) + F0_y_RF = res[0] + mu_y_RF = res[1] + res = tireModel.mFormulaLateral(alpha_LR, gamma_LR, F_z_LR, p.tire) + F0_y_LR = res[0] + mu_y_LR = res[1] + res = tireModel.mFormulaLateral(alpha_RR, gamma_RR, F_z_RR, p.tire) + F0_y_RR = res[0] + mu_y_RR = res[1] + + #compute longitudinal tire forces using the magic formula for combined slip + F_x_LF = tireModel.mFormulaLongitudinalComb(s_lf, alpha_LF, F0_x_LF, p.tire) + F_x_RF = tireModel.mFormulaLongitudinalComb(s_rf, alpha_RF, F0_x_RF, p.tire) + F_x_LR = tireModel.mFormulaLongitudinalComb(s_lr, alpha_LR, F0_x_LR, p.tire) + F_x_RR = tireModel.mFormulaLongitudinalComb(s_rr, alpha_RR, F0_x_RR, p.tire) + + #compute lateral tire forces using the magic formula for combined slip + F_y_LF = tireModel.mFormulaLateralComb(s_lf, alpha_LF, gamma_LF, mu_y_LF, F_z_LF, F0_y_LF, p.tire) + F_y_RF = tireModel.mFormulaLateralComb(s_rf, alpha_RF, gamma_RF, mu_y_RF, F_z_RF, F0_y_RF, p.tire) + F_y_LR = tireModel.mFormulaLateralComb(s_lr, alpha_LR, gamma_LR, mu_y_LR, F_z_LR, F0_y_LR, p.tire) + F_y_RR = tireModel.mFormulaLateralComb(s_rr, alpha_RR, gamma_RR, mu_y_RR, F_z_RR, F0_y_RR, p.tire) + + #auxiliary movements for compliant joint equations + delta_z_f = p.h_s - p.R_w + x[16] - x[11] + delta_z_r = p.h_s - p.R_w + x[21] - x[11] + + delta_phi_f = x[6] - x[13] + delta_phi_r = x[6] - x[18] + + dot_delta_phi_f = x[7] - x[14] + dot_delta_phi_r = x[7] - x[19] + + dot_delta_z_f = x[17] - x[12] + dot_delta_z_r = x[22] - x[12] + + dot_delta_y_f = x[10] + p.a*x[5] - x[15] + dot_delta_y_r = x[10] - p.b*x[5] - x[20] + + delta_f = delta_z_f*math.sin(x[6]) - x[27]*math.cos(x[6]) - (p.h_raf - p.R_w)*math.sin(delta_phi_f) + delta_r = delta_z_r*math.sin(x[6]) - x[28]*math.cos(x[6]) - (p.h_rar - p.R_w)*math.sin(delta_phi_r) + + dot_delta_f = (delta_z_f*math.cos(x[6]) + x[27]*math.sin(x[6]))*x[7] + dot_delta_z_f*math.sin(x[6]) - dot_delta_y_f*math.cos(x[6]) - (p.h_raf - p.R_w)*math.cos(delta_phi_f)*dot_delta_phi_f + dot_delta_r = (delta_z_r*math.cos(x[6]) + x[28]*math.sin(x[6]))*x[7] + dot_delta_z_r*math.sin(x[6]) - dot_delta_y_r*math.cos(x[6]) - (p.h_rar - p.R_w)*math.cos(delta_phi_r)*dot_delta_phi_r + + #compliant joint forces + F_RAF = delta_f*p.K_ras + dot_delta_f*p.K_rad + F_RAR = delta_r*p.K_ras + dot_delta_r*p.K_rad + + #auxiliary suspension forces (bump stop neglected squat/lift forces neglected) + F_SLF = p.m_s*g*p.b/(2*(p.a+p.b)) - z_SLF*p.K_sf - dz_SLF*p.K_sdf + (x[6] - x[13])*p.K_tsf/p.T_f + + F_SRF = p.m_s*g*p.b/(2*(p.a+p.b)) - z_SRF*p.K_sf - dz_SRF*p.K_sdf - (x[6] - x[13])*p.K_tsf/p.T_f + + F_SLR = p.m_s*g*p.a/(2*(p.a+p.b)) - z_SLR*p.K_sr - dz_SLR*p.K_sdr + (x[6] - x[18])*p.K_tsr/p.T_r + + F_SRR = p.m_s*g*p.a/(2*(p.a+p.b)) - z_SRR*p.K_sr - dz_SRR*p.K_sdr - (x[6] - x[18])*p.K_tsr/p.T_r + + + #auxiliary variables sprung mass + sumX = F_x_LR + F_x_RR + (F_x_LF + F_x_RF)*math.cos(x[2]) - (F_y_LF + F_y_RF)*math.sin(x[2]) + + sumN = (F_y_LF + F_y_RF)*p.a*math.cos(x[2]) + (F_x_LF + F_x_RF)*p.a*math.sin(x[2]) \ + + (F_y_RF - F_y_LF)*0.5*p.T_f*math.sin(x[2]) + (F_x_LF - F_x_RF)*0.5*p.T_f*math.cos(x[2]) \ + + (F_x_LR - F_x_RR)*0.5*p.T_r - (F_y_LR + F_y_RR)*p.b + + sumY_s = (F_RAF + F_RAR)*math.cos(x[6]) + (F_SLF + F_SLR + F_SRF + F_SRR)*math.sin(x[6]) + + sumL = 0.5*F_SLF*p.T_f + 0.5*F_SLR*p.T_r - 0.5*F_SRF*p.T_f - 0.5*F_SRR*p.T_r \ + - F_RAF/math.cos(x[6])*(p.h_s - x[11] - p.R_w + x[16] - (p.h_raf - p.R_w)*math.cos(x[13])) \ + - F_RAR/math.cos(x[6])*(p.h_s - x[11] - p.R_w + x[21] - (p.h_rar - p.R_w)*math.cos(x[18])) + + sumZ_s = (F_SLF + F_SLR + F_SRF + F_SRR)*math.cos(x[6]) - (F_RAF + F_RAR)*math.sin(x[6]) + + sumM_s = p.a*(F_SLF + F_SRF) - p.b*(F_SLR + F_SRR) + ((F_x_LF + F_x_RF)*math.cos(x[2]) \ + - (F_y_LF + F_y_RF)*math.sin(x[2]) + F_x_LR + F_x_RR)*(p.h_s - x[11]) + + #auxiliary variables unsprung mass + sumL_uf = 0.5*F_SRF*p.T_f - 0.5*F_SLF*p.T_f - F_RAF*(p.h_raf - p.R_w) \ + + F_z_LF*(p.R_w*math.sin(x[13]) + 0.5*p.T_f*math.cos(x[13]) - p.K_lt*F_y_LF) \ + - F_z_RF*(-p.R_w*math.sin(x[13]) + 0.5*p.T_f*math.cos(x[13]) + p.K_lt*F_y_RF) \ + - ((F_y_LF + F_y_RF)*math.cos(x[2]) + (F_x_LF + F_x_RF)*math.sin(x[2]))*(p.R_w - x[16]) + + sumL_ur = 0.5*F_SRR*p.T_r - 0.5*F_SLR*p.T_r - F_RAR*(p.h_rar - p.R_w) \ + + F_z_LR*(p.R_w*math.sin(x[18]) + 0.5*p.T_r*math.cos(x[18]) - p.K_lt*F_y_LR) \ + - F_z_RR*(-p.R_w*math.sin(x[18]) + 0.5*p.T_r*math.cos(x[18]) + p.K_lt*F_y_RR) \ + - (F_y_LR + F_y_RR)*(p.R_w - x[21]) + + sumZ_uf = F_z_LF + F_z_RF + F_RAF*math.sin(x[6]) - (F_SLF + F_SRF)*math.cos(x[6]) + + sumZ_ur = F_z_LR + F_z_RR + F_RAR*math.sin(x[6]) - (F_SLR + F_SRR)*math.cos(x[6]) + + sumY_uf = (F_y_LF + F_y_RF)*math.cos(x[2]) + (F_x_LF + F_x_RF)*math.sin(x[2]) \ + - F_RAF*math.cos(x[6]) - (F_SLF + F_SRF)*math.sin(x[6]) + + sumY_ur = (F_y_LR + F_y_RR) \ + - F_RAR*math.cos(x[6]) - (F_SLR + F_SRR)*math.sin(x[6]) + + + #dynamics common with single-track model + f = [] # init 'right hand side' + f.append(math.cos(beta + x[4])*vel) + f.append(math.sin(beta + x[4])*vel) + f.append(u[0]) + f.append(1/p.m*sumX + x[5]*x[10]) + f.append(x[5]) + f.append(1/(p.I_z - (p.I_xz_s)**2/p.I_Phi_s)*(sumN + p.I_xz_s/p.I_Phi_s*sumL)) + + + # remaining sprung mass dynamics + f.append(x[7]) + f.append(1/(p.I_Phi_s - (p.I_xz_s)**2/p.I_z)*(p.I_xz_s/p.I_z*sumN + sumL)) + f.append(x[9]) + f.append(1/p.I_y_s*sumM_s) + f.append(1/p.m_s*sumY_s - x[5]*x[3]) + f.append(x[12]) + f.append(g - 1/p.m_s*sumZ_s) + + #unsprung mass dynamics (front) + f.append(x[14]) + f.append(1/p.I_uf*sumL_uf) + f.append(1/p.m_uf*sumY_uf - x[5]*x[3]) + f.append(x[17]) + f.append(g - 1/p.m_uf*sumZ_uf) + + #unsprung mass dynamics (rear) + f.append(x[19]) + f.append(1/p.I_ur*sumL_ur) + f.append(1/p.m_ur*sumY_ur - x[5]*x[3]) + f.append(x[22]) + f.append(g - 1/p.m_ur*sumZ_ur) + + #convert acceleration input to brake and engine torque + if u[1]>0: + T_B = 0 + T_E = p.m*p.R_w*u[1] + else: + T_B = p.m*p.R_w*u[1] + T_E = 0 + + #wheel dynamics (p.T new parameter for torque splitting) + f.append(1/p.I_y_w*(-p.R_w*F_x_LF + 0.5*p.T_sb*T_B + 0.5*p.T_se*T_E)) + f.append(1/p.I_y_w*(-p.R_w*F_x_RF + 0.5*p.T_sb*T_B + 0.5*p.T_se*T_E)) + f.append(1/p.I_y_w*(-p.R_w*F_x_LR + 0.5*(1-p.T_sb)*T_B + 0.5*(1-p.T_se)*T_E)) + f.append(1/p.I_y_w*(-p.R_w*F_x_RR + 0.5*(1-p.T_sb)*T_B + 0.5*(1-p.T_se)*T_E)) + + #negative wheel spin forbidden + for iState in range(23, 26): + if x[iState]<0: + x[iState] = 0 + f[iState] = 0 + + #compliant joint equations + f.append(dot_delta_y_f) + f.append(dot_delta_y_r) + + + return f + + + #------------- END OF CODE -------------- diff --git a/Python/vehicleDynamics_ST.py b/Python/vehicleDynamics_ST.py new file mode 100644 index 0000000..1619dff --- /dev/null +++ b/Python/vehicleDynamics_ST.py @@ -0,0 +1,73 @@ +import math + +def vehicleDynamics_ST(x,u,p): + # vehicleDynamics_ST - single-track vehicle dynamics + # + # Syntax: + # f = vehicleDynamics_ST(x,u,p) + # + # Inputs: + # x - vehicle state vector + # u - vehicle input vector + # p - vehicle parameter vector + # + # Outputs: + # f - right-hand side of differential equations + # + # Example: + # + # Other m-files required: none + # Subfunctions: none + # MAT-files required: none + # + # See also: --- + + # Author: Matthias Althoff + # Written: 12-January-2017 + # Last update: --- + # Last revision:--- + + #------------- BEGIN CODE -------------- + + # set gravity constant + g = 9.81 #[m/s^2] + + #create equivalent bicycle parameters + mu = p.tire.p_dy1 + C_Sf = -p.tire.p_ky1/p.tire.p_dy1 + C_Sr = -p.tire.p_ky1/p.tire.p_dy1 + lf = p.a + lr = p.b + h = p.h_s + m = p.m + I = p.I_z + + #states + #x1 = x-position in a global coordinate system + #x2 = y-position in a global coordinate system + #x3 = steering angle of front wheels + #x4 = velocity in x-direction + #x5 = yaw angle + #x6 = yaw rate + #x7 = slip angle at vehicle center + + #u1 = steering angle velocity of front wheels + #u2 = longitudinal acceleration + + + #system dynamics + f = [x[3]*math.cos(x[6] + x[4]), + x[3]*math.sin(x[6] + x[4]), + u[0], + u[1], + x[5], + -mu*m/(x[3]*I*(lr+lf))*(lf**2*C_Sf*(g*lr-u[1]*h) + lr**2*C_Sr*(g*lf + u[1]*h))*x[5] \ + +mu*m/(I*(lr+lf))*(lr*C_Sr*(g*lf + u[1]*h) - lf*C_Sf*(g*lr - u[1]*h))*x[6] \ + +mu*m/(I*(lr+lf))*lf*C_Sf*(g*lr - u[1]*h)*x[2], + (mu/(x[3]**2*(lr+lf))*(C_Sr*(g*lf + u[1]*h)*lr - C_Sf*(g*lr - u[1]*h)*lf)-1)*x[5] \ + -mu/(x[3]*(lr+lf))*(C_Sr*(g*lf + u[1]*h) + C_Sf*(g*lr-u[1]*h))*x[6] \ + +mu/(x[3]*(lr+lf))*(C_Sf*(g*lr-u[1]*h))*x[2]] + + return f + + #------------- END OF CODE -------------- diff --git a/Python/vehicleParameters.py b/Python/vehicleParameters.py new file mode 100644 index 0000000..30a24ae --- /dev/null +++ b/Python/vehicleParameters.py @@ -0,0 +1,65 @@ +from tireParameters import TireParameters + +class VehicleParameters(): + def __init__(self): + #vehicle body dimensions + self.l = [] + self.w = [] + + #masses + self.m = [] + self.m_s = [] + self.m_uf = [] + self.m_ur = [] + + #axes distances + self.a = [] #distance from spring mass center of gravity to front axle [m] LENA + self.b = [] #distance from spring mass center of gravity to rear axle [m] LENB + + #moments of inertia of sprung mass + self.I_Phi_s = [] #moment of inertia for sprung mass in roll [kg m^2] IXS + self.I_y_s = [] #moment of inertia for sprung mass in pitch [kg m^2] IYS + self.I_z = [] #moment of inertia for sprung mass in yaw [kg m^2] IZZ + self.I_xz_s = [] #moment of inertia cross product [kg m^2] IXZ + + #suspension parameters + self.K_sf = [] #suspension spring rate (front) [N/m] KSF + self.K_sdf = [] #suspension damping rate (front) [N s/m] KSDF + self.K_sr = [] #suspension spring rate (rear) [N/m] KSR + self.K_sdr = [] #suspension damping rate (rear) [N s/m] KSDR + + #geometric parameters + self.T_f = [] #track width front [m] TRWF + self.T_r = [] #track width rear [m] TRWB + self.K_ras = [] #lateral spring rate at compliant compliant pin joint between M_s and M_u [N/m] KRAS + + self.K_tsf = [] #auxiliary torsion roll stiffness per axle (normally negative) (front) [N m/rad] KTSF + self.K_tsr = [] #auxiliary torsion roll stiffness per axle (normally negative) (rear) [N m/rad] KTSR + self.K_rad = [] # damping rate at compliant compliant pin joint between M_s and M_u [N s/m] KRADP + self.K_zt = [] # vertical spring rate of tire [N/m] TSPRINGR + + self.h_cg = [] #center of gravity height of total mass [m] HCG (mainly required for conversion to other vehicle models) + self.h_raf = [] #height of roll axis above ground (front) [m] HRAF + self.h_rar = [] #height of roll axis above ground (rear) [m] HRAR + + self.h_s = [] #M_s center of gravity above ground [m] HS + + self.I_uf = [] #moment of inertia for unsprung mass about x-axis (front) [kg m^2] IXUF + self.I_ur = [] #moment of inertia for unsprung mass about x-axis (rear) [kg m^2] IXUR + self.I_y_w = [] #wheel inertia, from internet forum for 235/65 R 17 [kg m^2] + + self.K_lt = [] #lateral compliance rate of tire, wheel, and suspension, per tire [m/N] KLT + self.R_w = [] #effective wheel/tire radius chosen as tire rolling radius RR taken from ADAMS documentation [m] + + #split of brake and engine torque + self.T_sb = [] + self.T_se = [] + + #suspension parameters + self.D_f = [] #[rad/m] DF + self.D_r = [] #[rad/m] DR + self.E_f = [] #[needs conversion if nonzero] EF + self.E_r = [] #[needs conversion if nonzero] ER + + #tire parameters + self.tire = TireParameters() diff --git a/README.md b/README.md index d89110c..d7c0a9e 100644 --- a/README.md +++ b/README.md @@ -2,4 +2,12 @@ This repository contains all vehicle models of the [CommonRoad benchmarks](https://commonroad.in.tum.de/). -We provide implementation examples in MATLAB and Python, routines to convert initial states and parameters, simulation examples to demonstrate the advantages of more complicated models, and a detailed documentation. \ No newline at end of file +We provide implementation examples in MATLAB and Python, routines to convert initial states and parameters, simulation examples to demonstrate the advantages of more complicated models, and a detailed documentation. + +## Contribute + +If you want to contribute new vehicle models, you can create a merge request or contact us per [e-mail](mailto:commonroad-i06@in.tum.de). + +## References + +If you use CommonRoad, please cite *[M. Althoff, M. Koschi, and S. Manzinger, ''CommonRoad: Composable Benchmarks for Motion Planning on Roads,'' in Proc. of the IEEE Intelligent Vehicles Symposium, 2017, pp. 719-726](http://mediatum.ub.tum.de/doc/1379638/776321.pdf)*. \ No newline at end of file diff --git a/vehicleModels_commonRoad.pdf b/vehicleModels_commonRoad.pdf new file mode 100644 index 0000000000000000000000000000000000000000..762ef77642db239170d60869c910017ea83b6c2e GIT binary patch literal 360690 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

bJ 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

>vQ((t%?9QD+=%Be0ln?1{mq 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 M4YS`mEZLS|xf_^G336??;h)gOcH;`PbLk z!6Rpm4a?=$8P08@57U==kW{|B%d@!#3yn1ec>V|-4n|C=^dPEC7LvVCn(?4}XW%1Z z2YuM>TgCx;24M%SBXE|W)Shwtp2mysIo8134g4I{#pZzr@ouM@`B7IotMkv)Qst-g|ralh0 z*W5#oiY!l9=U6I-R!EIJo@l~lWsET+8<_9Zz-ODTUI4m|>qUHS|E)qI-?*?byVmqN`gTVa z^ZiZ23Du_V;?eXy+!?QwvE`fvRkr2TCh40^4wtg$6B8If zvTry5t-6+M<6fc4f!!RXRPvcu#%HWFccDb{27eT;hs#`I;^{p~UWU!e`FbSIcqaAw zok;80@+t{cty(J*wKuN+CUKQ;m5!i=OH8>neC$(E#B78$)AWzI&v`LTml`@JfUCLe zkh$bO6n5FW%4aHvoqe5P6a!Y>Up{p6t1D@fM|HUMncpz$T!um{a&&Qeo?P$cqHfY3 zEN>$k`mN=U30By~{Xdsl{41%dr%H@2?&i++de;0_?PpaFFE%>bz9DcK0~gKjH!MM9 z2+$k@BAb3M#1{_4I{(&IdZ86UycZ7r>Why{%ko-63xi0vEyn&+JqVAHuT=TOK-%4c zC_lS>+wxYNZhL_3iBQ{`Ol*vL&yO%Vz@OYKnP9dhEd2S5R&KceH?=Nv%WDNqX2VDE zgW!RLG9N-TurdHL8=5c+>ufq{`0BJ#DRY#|=rq=;wd`~wG*b|oUFS1y6DOOZDV)pu zFy8=Xq-fqYo!~Wic$0yXRhA44g=XB8327nYGbi(KmY0LjZKD5?VoTkFOwgRwNz%?d zRs}+Qpq|(b3i~;e+1lZp<184KO4>&8j70*plDYMzE=Bwpmvtsjj)Ftk>gmPt;l*B+ zNo-&J=YDu6@r5{w=LvUZl+N^wl2@YI~v9i%wHxu}3cuY=6xUGXZxB^=}@Nv+IxV+)O z34Z>bUo|<$J+g&2IkFG<8O4rr=Mre(Kgj4cdisOyxz8<3+zWNZUt8q#Vu)5F$i=s; zw97rDvb!*tz{Ra;7u5#QtL_Gw;^{Su^N67R2M~>~-Z1JTa4bOJ4$K{xnFBm>t(!uEAj%*6gb!>lhyKm8xg#{cM!|4708TUWxu z#`x#1falPNoGj5tDM6 z)HTtnlw)5nhr-$8HBRS?jON2#=U<)nVgzi#c;X5uSgsJyWyAYO=3f+Eh$f_HgFV5-4j`$n$o0^mPs z?G!s!qSFc}?Mnofv~ zY%AsSq!ds~VT4aC_f@QXa5?ri{yAK!Ev&py~nz5;&Z# z&qkCja&<_8wS)*_r1Ig@LMr;42olvqsPF_r`un~Uq^lwENdhAl^g*M`Za`2#z65GW zyOw16J_0`m3i)F}HIpvy$0B;f&PemzwGdJJGAy`m3Gb-`RQYcev?5C%ku+c z$sh<=hSDBxdHSHvCWC`BYCH{}YDj@?Thw2XXgWMG~nS^~w;wTGJoPMHTH`;o;c9 z%2?Tm&(sThZ<}UgCE3O-8_dsxBCWKJHjzMD>V92yuRnfL42+B4$znF z3p;fIKJ_sNcC@^@mnRP?EFQHCTRUhnc~cx{9}RK;1|w_k?^>QROd; z4It2C!{i>@G`f3~$Zv1A`zS-_r+&5LYw$3pTBrnpl@rWhl|MgK6);_$qXm+xGe8iq z9!{Kj2EwKk__DxQG=h70(IE_Xyv++&E`BF`=@Y=(#|!jJkr01l>}05YxR1f|db!s^ zC2IubiCp7$iecKEiNK;%s^UG<^c8yIJ|=*mwMrN72=nhD_m+r7_5#QPd|=V`ZCe*X zw&8u7RGJ5$mu8$LJ3{;kEKeQm{d!wqGfCqdhbx0`qN`gjI7=l3xmos+ZclwZ$0O#K zLE`AKaM~dD1Va=;zh0H0W1Clp8@QEfvbB*?#@x6?2}-(a<^)zeDA7sY3hfnO+XSFE z9+#P7tK;SE*g1i?m`>CIajM5z-bjR^$51T zZOULBL;-F%0R$(!Zc}}cp5%H~z}#j;om7Q5gk)=J#dOu!IBK6fd z-ql56H3fuLD$Hmg^`{!`|0qZKVU)m(BLSpHD7>)fbv~N18i%N(?E?l4`97a;Xfu_D zFuhz6r3tgQ=WSdM3Swu|Yf1lKC1m_>ClcbaN>T!nUk$*Q@96KR z;tb66cwY%<%zt(rG5)Fi|54%pR{sA!9OLV6|1E##>nZ+uDDl_w|A#B-ujQYg_U~;+ zf6tZwFC5Pw{+~aX@_#cM{Y$5j#n+hK>Ti9-f4PhPjnC+B4aHv)lKzyD^l!{W{}4CF zME8G+n`2^Q`g4bop$4I(c-X*0Pjna@>d1y{?(TbAu2vCRQ6IV^CM?fy3l0v*FpTs? z(uE$D;lmpP*MmpT4HhUCM5ymqv9bVbx0*k(Z+cKEtx$Q);q|88L5qB_*ka(x;y>Bs}ujbeIsYGHoA31a#$HPhR zwczzI{2bhXG%dYC2oaOSIZ_KJ3s=`9@64~ANbv_oZ0tjsdaw2F?&)9hzpY)mV5{KW zQLDtfHg&7SUPy*Es2xPTtqsfH`x@T}37sdi=m|ME+*(v^`tGJ|IvYu)>!VQ`LLJ^)yqe z$25$w7&C1RNa#*eV8%p@8FnXJ=)zJ;#z+Q2mdB{{3K=EQO^neQZk>iHA;>#15?$Tze$~P5{ z&CMe2yvoB>oQ)!D*p{VTYu;EJqTMqnkF7U(=iTz_Cti{OPC=QVp>bW@SpO`YkD{ch45?+t?8fVNXw$cxjUi75P^HbMUr$K0R zWWPB9N_|IwhyA)`pqh5%ZB!ogAz>oqBE-)14pSb1JE7&Hp6gPTD{=MOLSw`P>3~no zGW*ufQ--b6Ae{F`U>hy1ID&bXF$D~B#i;b?FJm-}O&=*5$uv5|(=43?J(gQ9?yC^L z#S$;pFSykGx#gL9XK#1yManm&&&#eJO`uqVd*~hI>v2(TNO`Z*ga7i@(a8wwyx?AH@97o3ctL4THLun&SVq64X1JEPbc0j%+mXfKaNTs zVhy^qE^LS!4AbKVDGF+K4B^*rAcRFpD;CwTNIE1==kH9~vD7uA5Y4cib3yZe;+ zHN7yq!!p=X+JUmbupF!IX;z{A!DhUwT0c=fD@L8ifhP(jg>9$w2VxZy9j&HgjBN>3 zZnW)?Q|jyi)S{#an1yZnzdJ%z;zR;KhoZ@ z!HJN!8rosny3;0R@pyi*MLg+3S@*Z7&S=jhl`ehMCRXc;T2_=+)((CR-Bx@vsq#cx zS71+hoIL6fsa1qx%`OFNsU>${HqHjZkSISCxTXZzKGm>Myf>JhU?jd&BfN5(|g3gQQV|B zTBCCQ96$yHJqEI;hCZ8SVp>qV+2;2d_h+rmx3h`uXuvv7WaCht>?cEbAxAhVDY^}iX>TG~pS9S-{S`>S`?>p9zqP#=4WVqg9tUczFpfcG;36%zSvxgQr2_7;x+d?qR-+cej-&K^i07+wM#c$Ca zO`UPB`K-v9*d%z%S)_uc^0Aztg5-iQK7r3?tb#kATn@NGH2H<}BlYKRmBKFT!GUXu zU9E}a{K7XZ#%m*IDMs96-Z?OgeW$??st%im%1x`lQd0t|hM@ z!&dx7*8`fB2~BIf-_3l@?5~aPYtH#5^~Fzb`Ch(KS#d1ywSYy=R7JbiAYxIJ+@%r_ zKEL@7QkTW=tzM;kV)`PtIS%%6r8WBE^@NM(3T{Ou$Dgq?vR>&(y(895pNj{hKwP0yPI4R&8X?>CttLV{+w3JdOvgI!bpm`RFP5Vq`~LT*|W+eQZF_o z&(FHWs+D)D5x#xH%ToMZ-SjmAdCw|B270|qijmEFz4ByjL8{=?aoW>OLQh4hC|9$3 zmufCG>%aY)np}ACIOCVz`IEidjHjoaoM<9dZmPmmrykwa{Cw__p1N$vBeWIw(9os) zc!%?+*o9ilg8h{Go^Yilaa@!BN3oKwR6OIk=^OWZ+zEIM4eosj?o!dXx z%!GBF52MwKlOlE=>wb1 z>XGr6cb{Sv^tTL;T&lUh()3Z8G5PbWu^TbtYAqbDm~c+3g$pq0f>0jM0}Z`ToPxWo zUUeBGI|sE!S??{%Z=ppcH*A?aS+x~pSYhW2i-j^r>z##YvtOjlDYahWA$+0Q)IO9F z>3U_$#+5eejrFq97{ohSQc>_iL%X>dWzAD&`smBUVL_$CVncO_k^CD&jgdqBnT6j< z+Lu?;8#`E6OG&}E_v@!TDhB%+LtgeLCH5q=Jgnd@HsN8 z8q^U@&~oQT8~lvWI5qvHL9zdXweCFI?P%5aTTzW=AJ?Y7m!&YnS5S`XE=u3nkFOgv z1vF^ZUpiy%H&I9fiEC9pL0GDmJIkzlYJTNt9|L5&AY+?DMx>>RyCKez-Ir%Zgj#oF zX1FhaAPXXVe9;;2U zAygRJducw=IboO|q>yS}O7!D(oAq0Impdw=>zM4mXyAQjZg#FZHbF?YdPy-(K=RqR zTcf>yZ#86V0xd{X+MmYsQIPV@t)IT#zM{1mun83^RKl&*o^&GFh?Aw7BEchSx*sey zDBGPPWk*;AB+F(Z14O=YHwpR{d{?>FZ^_7fj*OIu#?bYk3yIDprnyo-_%^zPre;ge zp*j=64i}Tj2B(L2p$M}i4QVpZDSFh94m}vmtCBxS#UA36yxb^LaiYD=#pOzVlHv#T z{!!CVx@X@w8LcJKsn1qqcrE35GR-|aU@)@bH)Z^I!_1$Lh1X)j_2pH{{I>^ZPUw9h zNDjj^NVXA839LS!ocOT@?u4ES&R!3pp*N7E=rj8=J@c|CC>%n3pXY7t$^fs6DgQO4 zq*O(D+Pe>4MLf8z_}B$*Hg=I!`@{1`7AfQ5KT><1+=)ylM$kO1TN_lKAHDmuEV!31 zE%Vg^cfjfa6PcfO>w4GuQ!be|Q7tZ!2KDwb*;Ufp(;sIP^H`l>68IjHk#Oi?^dWF& z36anF%VjOM$P%j+qhw>)w8Mt|qKAhtU<&@;t(p4KX2muUduHUQy+dUmN|9nt-`rAs zR*&FwpYhe}u9TwuR%{JJ7UPc79fTh1H+gBFk#tMFx^#>H9Xvx58t^py?sAU{Ppk<$ zy&%=S83RYNW*btybprGJ0(QcNAey5NCmajf4KSrk+GSSTQY;hurNkbn#(v+TH zW}tNa0qcfSWrgZm@m?!kp+&8ws292w33{S_j1$&>P(ocJefYSoI&7@yc+q0sAx*2; zqn3%xK~D#wN9Mz-&Q=geUzn#&W(-n+|5H|qE5$el_BJ-YJH}SSUOo>N-Ltm7lx0dA4}J{bPQtlBo6%W+X9tH34XcZFhw2bj35RWqQCDIT4q9FKv}zLAaLh&d zVe@q{w%UCDyCu}-i%C<> z3r!VS4-lW@udZRiv@KJ;A)ZcaB_b&ar|fQ^+;)&B{kX)lc0kNFPf&R2%u4=`RAz~6 z|6(>n>)|OWwARt&bzS-14HEAo4n$GKvJyI$KiFeGeRlOImy}R3{%SjVrlz4qX$D*>n3O-43WZtZVh(#x4!8y`gIG>jVV~b=g2&4Z<)(KRPA(zustra@Xl0m zqV!mPWvHqb{GcdYcsG%+poi)I*i~xh-h2yl|nHh?v?8IFLYYKZt!V| zhsF|czh*1mS~yiK`=eR2*>CzX#Qc^YrIWt_;h1^1^Y{CsLMJhd!#Szlsb zM}In;u65&G?A_li!utnzUk$S>>F5RfJei5NTJa3On$T)N`UkVTp8L zL?ydpj2K&@l|DWZpm&8RPJ{~O+%m*mR*?zel;z?}Et2IOEoLpQaF6&}p6ec|zbvHx z+>YKackMfQ@;TxW2PLy&N}^}Fg$|216OfwThgpZHCrD;{UW#5zKf6{h+?T~4_tLRz zB1$~=+*tb3dEUD!i zt{!ofB4m^|OWfwTuV%=?-7^p$5O(=BQ#F3CFDmLff<#_Sel-KCBNpEOatk4va$WqN- zy_>8`P*#0_m|8F=c}+YNt=vJ7ckQ*Q3Bt*chT*~?0se!OT@q@v+2XuLrW^`2i-X1Y zTUj)uVxu1Rc9qI;`E4B$JxNZy96MwFoWTLx_Wgj~qPVKxH`SNn3TsC*ypIe$2&v-p zTJK|9UQUj;w0mSecniiY_Qhyjhx9OUmCo6ctj{MSTU;mh8 z4{-4NBvPUApw0w)u{B(wJ^ggWxI{^JQ6KRi}Fzd(+9g?2P9+lT9-e-)-FP4v4t)L7tF^qf@R~ zo!RKyYVeZQgByoBd;Nx5mWU@!tjVlPWttDv4qDl**KFS+B{-Uv;WWzpUi{R}bpyl7 z@b>+SnAlz0jQ({IQ$kMr($3jQs+c|ddU59_p;4&a12H^em z%ikqSWoJu46MGj!V`Ec0mp_Y=zYjmMvjms@{^LTXgN>{6uCt8(`8Hq#1n+A0Ux5Gd zwtgrEgV?pNUs~N-UCo@fax8i>bip6488)uybun8_{OW5JM%kQqeJ&2gI!rF&6a++( zHyR10NR*C7C!WYW#^Og6eBnfzQ4q1rd{8lu!fAuGOxj#)uG=LF*`jgli6v8SQnbx; z?Y%#BV6V>=t;Q;U(7y|o0|g@2T*h8>{HQ~OjLxxNeB!SqyBa|)FCh_F_anIar6pzT zTAJA*yW|TV3T(|;>(VVN+yj<_?xgt%RKl7xl(ePH;xr75jE^_Cw38l3M094c8o5UZ zVQQvAkSalMGMYM3+Uw{Rw&E29)uPb20Bv2OoLHf_+4d3?X#($jps1SbH_KmFl zFnm&hko$**{A#o8{YoEy-YZRHgN)Gz!xju_D(uV8df7RNh5RH&{O7EnuIhv-a&QT# z&kj@F`%a$|*p$GgD^X6=S~Dr>QyT5kT*Q)JTBoC-(mr5y`#VV;p+)Fmb+$kig7}(b z;yQe*^h)zHxd)>i^K!x?_DJ7@v{&^=kLnD%^lA@;5DuN6B}`}Z9ua8_Y2tI2_A1@x zm(A9=ZA87PH$s+#VZ*L7w%oLwoEN4&^X-M}%!60&MZd+>9=sy+gkw-WEy#;wp!~mglA6 zcg+x0G{hu@k2IRk^3j8q)*lfi7o#sKj6dQp>`Hk0bv5+qqOkJW(5H9WI2iBT@pGXh z4%;GT{?fxeUF>)UJ313M?OfsO(l|!JbjL|hf9A2{iJvX{78UPEzsH+bi_#&Cw+m~Y zTiK@H&Tip@Um29+u)C;zWM0#(Ij!TB>`)ZJ!DydBfYL{*T` zbkvM0g?_1tx=xH->T^WC&~-8=lP^3dVwV+qTdz~@507pw62(5acc23!$O9wb0*v8s3OMSDp;6~X_LKSeaq>@wKimP zl{ox*m_m(7i&|RfT1m8$-{FH;iPw}r`Blo(79PfPm(J$qe48CGs2x*RFLyvb44{uZ zGsfB#&9a;Z)p2jBP)icJ!jtmQ`Eh9}qexF{1XH3p&(yqBBifcBE71a*56DLHRd82=)EkSN5K@AvBfQv(iL#f zzHnZ_$G7gD?TDaN|1lFvDME(jg_euXSK&F&s^->>`((@9l4vgb>UD3WeS5sZy$rv> zxs^k!@y@KOeJ;olL(n&ta{1F&gAds@H_keEm!0h|rHHNL>D*-TI0ZA$L$HN292}O+ z{*l3D^ue1U|Mps;B8LKT+1YDqo(CXAiyWAvbPwXo?ioQo5;`Ot)_$=9bqQTLJSZC| zca|J7IQU_J@yxhVzORcydzH*KeT1x|u&!?RSYC<2mv6%4KaCt_j=F^is_>DKMQl3d zS5`fmTDzYc)rcIa7<6ZdXA%jcYt^B>zc0n{>0=;K*XH3zIrN%xF($8b(sDgs zZ0l2#VQZr9!4{5;ZkH4KI-YY@a2RCvfdu;p78gjb-4P{THO%Yf4?_tAbuJ{#g`uE(eGUZ1| z{Pm0ia=JZbdxi-J-eToNRL&e*O@FiGG^{cbU>JMqt=)QFSz4W{<-t?N9YLarGNmM4 zeF+4u5^_d5;R?pD!^(?Z9$C3ZvjU@3V|V*O68_QaB^`#^SnnfogLtkHqx2TJ-<6ht z{mBjZ=IHnLJpY>9=v-2em%=U3s_r=#5*#e~>s&|(1YD4Ug#5Wl>;FB$!7bhXOM>&~ znyl2$6)4hzGJ>*#7r>#A@;jHM{CO;-GT2X!OND+N52shtV#j&M^)S3?^?Q+HzJmLn!|^htfvS4ENRKKO9B*D@ps6 zrv2+W@lL+>*P)a<#2j7iT}(}kY@mZ(w~1GwwMSsEO1EQC;>XyRKZMmj|86&CcYLVuP3+`{ zFg{&7CqiSL18M~R4g`lK(f)7kBqfO^!?EpKBX?|KhQELMF!|nfWKrjkobyy-<@d7c zt#6`~%2!?}AMzJR*smvqP__O%_4+&AJVC|$-0>>~vk@QwbL&{#omDFH)_BxwpROB3@R?6*<%HMEG3!Hu zZp14tOU}gX_Fmumjy!iS50dGRjQ>o}z_2#9wqR&zIFYz1`I_+XbuSU8aPN4{%qLq6 zWhcr;lkD^D6`~|0K_Ma) zrM8s$tcTW040(G{-djH639T|!W>Alm6-7yW!bSen$I1#>Sv{~X1XfsNgpPzF*lNaC z66hI8oW7x2diQj1WN6xk8bRjC(DajU!oJA3J{ixtudc-7znJc+vfa~o7fB;tdA?F% zwu*=1p7@sUH=ypCpm9%rtMZg0quFqkF9 z`+6G_;ume-GzP!L&HB6-TvlFT>@0c|_rWv6byN7-T+@edKkY2$1S(4^JsvzlDUM5c zd#=ctYZmp+l~=hvo|E;S>$iK>R(id0*0VZiyL;owYBl!2hqyHyb;{lPZI8s)qd_D>LessYX|<6z*~qx*3w@j7&Q~!Bxo7%JKQk1)*?e;g z@zMu#F3lmMg^N?)@;w7NNAWUWqw-M7kXakD&U#Tvu7B$)sHSnb0+qqjN? zv;NIxVvlQds~M&OUfuTl7{0c_%Rqitd%bI%Ag+t5>;j*@B~AQcu-)j!CS+TbwlcDm z{;72~lf}%%;_N{Q8WMp58ae9#U=ls^<3di`^Ny{zoteSL9nh zmszs5q@IAeG+Sz0oNy|Wj&TUkNLBOeA{)=RBi#BdtNRMeZ9C7e(+)<p_oMAN!#d>%IUZV(}!dQosevCpEL%yIfkXLkiTitjy)^f-Iu_`nlsx{gSB9EO{R_Ghzh=Q$I2(>Y!_rIUiqk0&cd)mXPysJ zJXYQ?Hk~>{q@$!;R-vGnYpjUkG*}dKt$kfJ&dJ&No$s0i(`bkVVZ!R!Xl4$oE+bRs zkw;UM^H+b+YaM7Mewjsk`d)BKx>@nFRX$3Qc)wepv9=^!&i>6uuRJ^aE$uk7;$vlT zy+dUlx36zKKAT>9Y4dP?z1o7w%fRO^=B_tuo^sqt~(u@75zrcfK6IvTOKLr8*x&iYj?PnTNf^+ z9m*&pre(h>x2E-y@ubKVllKY36xU|Y2>Nj3SSPh@#C9cVeUq}HqeuwBAP(h9T08h6 zC^}+C#i|F3XbTo!45^LYpFaMaOH{~rrrEDK@Bqd7KQu5qtjxiO-Z_k zdP*O9)hU;)yLA-0k5zwX@s*cT$ zONzj*AnBSu4KkH)JngE8fQ!KPjpt2yXIWOrKR?kHW4aKY3DH7ao)Qjy5KJlkEvqB+ ztrnL-TqJwA3bkK`hON2K())zD5xJIp!IxEinqH^9Z&aD8&@m{qVhRf$t<~7GRmwVF z&^;L8aEyT;`z$6o{ms+3hmJSM&gdz02k5kL_Zm8$s6R|Cdx|(>ptrZ`o-k%%rF`@m zm)TJ{lj}xPEL1}Mc2h!U87?wA7rAl_U7P18rKwh|6M9b?9dLb2MV8XD+nD*urGTFA z(@Zd7(&W;X>j*T>qiZLJ)o#f6JKBm(1=qe4;e^jKQ4jQ-3_N$9;`Q5(jZh|L&0>Ef z*Q`{nh*`{&mK@77PpU{i-Nk;Hyi!vyX>{Z8P}iNP_j#B^7Z6T19>J58c+N@`RK8`C^2f`JpblmEkQ>` z)wsp>7#1ZvI2}!R@kquexwm?rN=|R$ZnO{gepUC$(D6QSCf4e*;<=t?@M*K<0?RN> z*aSiBD8K78mtkTX(%i=bK|%hr?8byz<@VaKf>*rrN8Kr})q$&hlEdF!sPEJq)zJR- ziA~eSR0g3JdFY}=h5r1KbWh|%7qW9VqyrV*Av&~tsvYx1Oj%bmM#kkCs+ZXEz!i}n zmxi-OT@e&zvtgqu2m1srRzXsAVhE46k>Bv*{TYzkXLjY2ydta8M@H2{!=qI5#ag|0 zmNB&Gbgd1gyp0HkV?KG&Ps>kL`3oKQk(`d?_iH=fhMDWgV^!ycUwCjK;N@lhF|VHw zW~3NMn+su`DI6K6IX?TJh`3d)NcYk&xzKfN*fR8d8{@M}pi>n%3sXV@}TsLY^wkFpf*(jR_Nn+}= zsfh=a6YauYq*-~89n5=|XG2a+>9C&F_f(SQgdV~tR!1%+(8S}mAVa_%TdQys_faQi z>{)EgLsm5_Ohm<^uwp=ECNG1BQt+jR6fI!p3A?2D&4V&Y89E1`~w&K@5F z=`;nrW7s=0V!m0?`_NRP>Dup{K7HBF>ZocGXW)Z|dCv{m;1#yz=?``qsoD+Ou27^h;H^iP-huE z3clk6%eDhJRIT9iJBlK)kZtJQ9YK?B_?#U|w z1LT7}cZWY^epn^6yAXT-Tw%+>D=+Nt!p>(9t)F~z=8~7!+pFC!-d~Lo-^OWJ88>gI zUhnHSiF0~#zJ@xbt&$&0|1wtpG+&$tFIk2|lRrnaeWYyQ*W|W!UH|*fY7C#Hh!y6f zDI3HlsTV1p<<1vQly-SLrj{4OHe2jI@=WoK(!G{Vu?6A}$8NXYQVQ&FG>JLxQ1EQ} zL`?AGqF0}xOD{|99rJ{p(y|EKF0f~5t(`iy&a#Q1<(G8s>W(~JX{+%{LZ0c+0dg$@ z{Uj?4l6suQsxR+`l-EJ@P+H5+pc{#@XK%V34s&$0@{-}JA6PG^{CqXGa%ww`?3!DX zzNhHS#nmBufq|(mQ%aL11{NzRN1NW+_qP;UF0Nc(BD-%$k+G7bvfU(hK;{| zx%@QAY+e5`((=ti$^`XC--N`UDzy5GK-AwQZfy)Y47q4uqCRNg<>m5FyG+yak`<{G zYDPuVmElAxX|4(1q$EVN-*5PVkf|Qxj$@^kOV;^D?PHI=h1_{((dFDi4jq4$>Y?}` ze|3)9`mApqYh7#6)m!I5)y#UG&*^dMF@*N|^-IYY1cL~anbf~%Oy%ejw2$WLe6IF> zlK9{=+TVGCab_#v*!>z~iIV0iIO}sydtCmYoH0#P1E*xRUG6tGg_6o@h zonXAFl`!}!gFnarRnmsjF-D%a`4t9+X5Vkoln*55t>OqPmM8f#?7o?1TfX4?()#qs zd(Bw=kM?ipf8>lS2*as5C39SLABGBvFqtp^K5J^VbQ!Y9QBRAu?OlO#!dZoK0&F zwKPBIdh7P>sS(jyfybTmBUV#}+n+|xGydq>UJ-ut?!g??g3avNS|deM_{@^S!*^P3 z56AQRLpZLgG_!7%+QrR62%htqxV_c?$jwT2s@R-|och7FK1NQdPHNl1WE#14`h^#H zj^c#p(j|k_bUB|b3|J{*2BwWiarHF2MCKFEus5e(8iu_qI^82!%c9(cdSKU>XaG&HE@1I?+6=mS ze7Yiy8buTF(mIE5%9LYvj;D4(SX-SRHvMqz$%>NPDseeGCE& ze%hHVa6Xa_A=Xmw`fyn6L~1j{A&ekOD%mDk@9HPY;;H5Ll!w_-G;M|>56ee-kiyBc zyxY<@13EcpsNFSG^Rn9E@?Av=JPiKjw%7N9Ot`q;&Jp!z z^BtOMZV2l;mBtXDz_wDd!W}f#Nif|5la3}Ck8etRzS){q93Al7st+PtUPSdteIg^~ z5ZtadAo4V+-Rq?2{^?`(^CtDV)N51E@7HO_Y|I>>Gy9n|e3cD|30arP(mZ zGY>s%>Cp%{6Mri+`w;n+6N@ZoSUhN3#P};6Y3(5Au6AA#Nqpt|gW$yGh}wfo-giPR zbT+NURMcGcUx?Pw(biHr416u^o4E0kIQ|r&8;>druf~yu5UUWcDsw4_jsJ~wsFIQW zfK1|uYEfQr<_eEOS-59q>H5^l6S|Gil!r>|G<>D#Q){L-6HnYv?N;nfm>5)*lyyzA z)5*CoaF*hn(v(|KZ*9ZDs;-)c;^(8X>a_F}c~pyfdW2HzrcAWodMx*@lh(6nzCHdS zw!!;i%aUH?E6W!OjU6Avnds-2!Ax6*Y%%BdDy41FvVDk^s~+p8^4IxY9&>D6)kIGe z&tSIthfn!O^EGrnSGW_tCg)*v*(m6`qcVpfm)Z7|NB5@r6UGlUxng-D`FWb=9Daph zM^6Ew+LFOmgW)JcQr=X2^VgS+1gb|X-fvL2-U-gHDQa+g{5eG7QVem*&(lms3!yC& zQ<@3_@qwT1R$ERM8RVJABf~{2MSZ?>WhgfhjW0&8lqGSIlxJ;vA*FXu6E;6bN5Iig4XWHnvPpx#KyX;CqNkVG?e`rIXj5p%-K{s?7 zl5ymRlC*~)1Gy9lN16EYE6xk*HJ_KG4n~kvNcPnnbQWDww!iG*&uP=^xtW)&O__RG zJYLFOB3R7!O5L`89_?HEB-e}9htG1SlU5tkEH#Je9;KA-uejXLGdfpLPWthlfu)d4 zxmok}wYx((0%WXC+!EZH%?n+nNu}=m`S(8Q2=%;CyIOqFneIe)Y2EF1Dj&;tH|)47 zzD3yTxQD`y5{o~Gj#hXx-s|gg*zofw@}KAw$;~n?_|$e{&NurM{b8RU%i|8$r$WqE7D+>Wi2+7Us}L`%Fm_w#d3F8A?m zAG$}tCT7`;wK$Su6eeb)VEglJ-j6_X~e~B3P?9)jk=MeydF%J2Z4c-?HlzPb5YhVJ_sw^5jf>C1(cJgnD)$BfF1o z<=xsZhh2ktC@6bEtoj>*hfE3)T%)UDvj{%MkfVI_Zo><5wV#rsE7)QVUW2drd;UC; zaBKHCY%vQ@wH53(Xsi>Mx6rd^h4_>pZto z$5V7bFRbyI-6l_(WcNhP?P5x~FBkeyM|I~Gg9{56>lki-`sqj6CMI>oN2-M+(>|>2 zPD*Kl@)|*!_S%ZYsW8u0_nTR{!f7I+nBqI{TC6FviJYsQKdW4N3S(EvWqoj=ZoKRU z{~@~m*eT`2hiVk%tup~PxQN6q%8EcIGggzfT^)`+b7wBkHK;9ojnpvk z9?K<`yjh8%V^V#LVViog2PB`WDEdDuMs!V|p1A+q_Dh3GX13JkaU=arzk0LO28B?! zv?>35TPtOytg)x-kMh@;EckpQMX8*w-ZGcEs;n$=wNeZXzt@A#l}SG+a~w*XQt#0c zt1v#^M0D?>Q79{W_D6;8$(Y01?;(KI}7xT}AHVAogD1FWeLu=)aT%qw-@1U=7m|luYaTMSb=3hB78RcFP zY@z~xCjLc~;`{g4lqcm6J>MFYz(h5lel&JtR%&BmGJ5#>k7^4g>~fh}reD7oo69+# zAtulI%_a+m>WKFmk1~S}P0hq9#^ooDVC*BlzPp#4$da&CG3Ef*yLv`R2x+)>%lWmm zMHw3FpzTOnE5pjJpSPM)aZRe)Uy!y^Qe&iSQ&muS^j&=rovf*Vt;tQ{XVXdAG-J0m zuLiwOR6@1K3(bYacK3d&7VVkc-e`1FSYt8!F6a@i$CO~mD;1~B#L!6gp;XAJvJ@3H zl%lVFmAE-ZX1(EsfY9tFzfs8QX+N*v?{^M%8z}0Ou^as$YxlUGN##{H`e7tO>I!y2 z(A>~ot=aNO^$+MN!l9b)dQt?8{;wPu$!O4bnFf;7WYxtZG;3FFQYK9cBJR&3tzg)@ zf}IcpQOUU05Rbw~Usfn5+#-qSQ!y@ym(3d=xT-KVon=!&U}D-0n7J=VT=Z zZB$nI&S=ZG@kzFa?BqDlACIemT~N^lHYNJV^!%O#^a zd!mIE{(5zA{?lA*DmA|aLN9?s;X$(5Ym$_k8bncW9hS-K#j7UpuC5~H2i)OY;lZ)Z zlf-1->y3}I=3ICYGQ-gMT&A}9-LtxP9@DfBG!J`vW9lyq`kZLEab8P{Vp48xZs7>3 zZ0muA+|Y=0=eLo`gpc*Q*Pi!XA`x-gCJ(9ga+qBa?_qpgCSgpX+Oza@y`dE;Co`0fwhOdeyhgT zVUA&Tvg0Al@%MtRC)H?}&kKK#H8~WMkfRW@dCi(ydiMPd7rx=BRQ<0}z4FWLJ%Vlr z&uVf_$}7`IU+`gcBvv{ybHu$=I5~2p0rl+Lr5H|LRXCGRP<@KCtV)~>+l?1fXKtNa z(wWaC47IiKu(+S1sU_}kRZjVGZdILye^TB;TfEG{FCVz1K5I3iZhOL~EYJGIe0l7?tf3kYZB5YzR?z zI9&~guFsxd4)k17Q!Ji&R(=*6ptHs@Q(LTMP9(7Y{m?zSu6_vcGVO=(#8`p7NKy4ICRorUeWY{AFF%rKhkqr5r1 zIWU<`W?_QJF=q@pT~{Ps>X{Lflc`4pq^KjB^o|!9(toa@eG@AasXbBlUUg$V(fF1e zv779=WX6PG!Sf#t@sJ)ju0n5$^s>TZDpj?`DSDLd_om;z6SLvAIA8uzfisXCQYB^U zL)K<`QTGhRM@K3w)6%gSF+_CrkJD!%OrB}5?An~_Q6bNjFXhcsO}vw9nciz$Rqa(i zAso!Jt&Z+yx1^}-4XtgE=9?KMvf`S`ag}9!X{~SxLMwL7#g7X&yK6)SzmJ7SqB``- z^aA<}?eBXqFdA|CG<2sCBl>u>?oP%{Kj#&K8bUu`<9BYNbXjB&QenlcFW;p|f+l-z z^flgz?59}Uy3R#t%G$iel$^dz<-l{Pk>E+>y@!OGQmFppDOsei&xe;xhtpXOv?)E) zzq?eo$RwvW{DP3wLL%_O1@onjfsthGa8ANu`q!=^Jo%~B=ySR@y3!L>u5uQPURg4g zjA4xaj&#y5KXF+h-)00ZkS51pW z&zzQc>zkcas!DQ5QfHPfd6;hTYwJ1Ihl)3>={o~E$WE`ldgfGV{%!E`ZM#sm_G&|0 zd1i<)q=-Vz_g-PtkCaPka(6u2Sa~--Cp{J<*SryUQ?2{XQ^=B^OdgRyq~>c$k$PzS zV_`GmSf{1uj{|*#dD>Oze=hwz-|TqVPKB*TBPeN2U`11*eG)0qNug(v6ypPj7(1d> zeYXowiEJNwAvnwY-TeD^FMXXjYUTFwr{m|DNiqghg5<(WdTKg&#kaMyj!;}{f2{ak zaCNl8E$Q*xKwDI2(I;u|4t?qs-ve=>lGpd|Q-c3>FDkR3x+U1B!*$-?&KT@e2G_7U zbMNe#b^)7~jd9nq3V^F;m2pQjxq$m>aa&WspH8ONnBl+v5EH|_AGbYa*UoMSLvvFB zD6{U)fyc~(TG~3yD69Ym4#hHKAXotiILgY-)yC!upk!~%ujXRton=jmMtDUZgX? z@bDSjMGl3*3LuaOH1s#UT|K*_i#-%~=@1EQ0s=w9G04B6i2P?x5m1N#8V*Mwe=Bhp zrzku;7#1RcL84J`Br^<&6#%ERAizGsKOAWfr}!$}#VHhl1pWubf@9$R#Qek0@fEWR z3HTuJSriNefIpCS`Whz~u(bbjDHlT{8&d&eLx&xk0v5FgX%`tZ1}%U=!%=_r+g?$Rw!1*h)aIJ>C8kq`kW5(9>yJybxz)rDer zt_As5GCP(7oLCpA{Xb3TS7X2o49N6fcJ`|=Z~z$Wzk~lCo#Nx{k`@7jfjj^L#g`Ts z6$}hJ|Had9+eZq3ZrFpd%l2VdV1~f*vA;v6e;R%NR9|?l%={+b&2uc8F5FlnE(HH>?28#MCG1;YoonGHfYd0biEdYmswCT6| z??%K~z&{{DAxIFg_ZdAD1Sc5wzpeh45`ZJZ0mgsz<{m|Z&e?;rOVKEhV1nci3XPHC5(E8`7_*cS(!ukC_VS>z50FA*yP`|UmUs3^!gTwwiuiG0f zaboR8+9lThv2lkE@HSoe&TT3Gp4RTAgVV%rq<^KeOYvZg{b$U-vv6?zk}e$a-?3&d zd%%45AnjrgfdJ+X#lZg>HGZi9#}_!;?mvy_k6Z^wVR!Rg6wpwt02~gIPQ;(4fH%tH z?DZdT5ePJ}JsAA2;Rz`34|I??{|h1Op$I5-3@0H}b2{Fq^2*nvRd z5Y*mb2L_@l9GK*P=>tzRoYC&a+NBnd_Xr>n;GEsv3CthpJE`$MB7z|sg2o{JMl$%0 zIqfF6OELrk7ceo1zZ~l?mB0n?<=e&S&ZzO1^Z)JuxBv*xd$`<14F&icDom67ZoHH%w~Z5qknht zADAu{_GV@<2oz=VFUVj91?E9$_;0y(kR?r>Tw zE^FxQVCV!;aRF<$sJqxkpwR-ro*^JD`9q_>Q0+~O>}^be$p1nXfq)BOaDBg*Yk5<9 zJ0LI4kN$xu91B7e2*$rty&akgmbU*cCLCx9%=)n4!l>Q6N|+ehI{ybj2n1xA0CO*= zN+zIQVqs_l#Kig3KX3~JMG+XtJkWbpq-iiDarD4k^uGetj&N!gmcU({fKqWLup4Wa-GQkHm}%`5PR+u`(8T`Q zf1)Dc0w^&1MDG<)-QL#FnP1k>$j}LVy9UI>1)qPQj>2V=z*XUYh$$xaM|BJV+jV~E z&c}g@;QKifLl;A0K{Zz+7Y_$hK`q6Lf)`Eg%v~&)p-3d`_gDNP=iD83KB!|hGBvlf z6Xl$HQO(J0X(Gz0iByCrI-EDPu)N^uWUA(QN!{4f+8ArXc}|R2?SX;UvFyjat8ri$Lh;q8RTAB!fv>s||W@g53hJnKPp-?jz zKLq^v(P$H62*@8ypeW-%$vNy|a}Pc6AAlen5EKEALds6|Ca%V&PGTn4EFGMgd6{LE zFEYzo*gL!Y;)5Be1tKE2rz!Ccrh=&l(2|L>7#H`i|Njjj77@g;zDtxpw73iM|0Epf z;=flWu!}#mDFWIEDcYM@nt4bWx|oUq6GsD;@k3zhP>c`)DFj3FLZCtrARAswU_$`) zypt(F`@ccm)p8fAy^}hyEU}A*>ZV%EZkE9OEr2^XIhmR<InZyg7s3 zh60XFjD^hXooo$(rx-do*jO6x)OvAN3(Oq+rweXDKy1g8C2U-NJ=j>{JX6TV(9T?x z)1BYM)XdP;#)WgooN?xBV=4BlLv}C(|9T5}GR9elz0B;aDrwaEc{1{KfIFb zU)&eG=hre5cmRW)6-ceQz@vmKNMW6DPk)9(F7Dq0raN$dVhA$=h9SlU?q5G*Z29|n|$_QJsXK<DAtLFi_FPhXGaXr;7#C418Qr$=wSBwgCmxgFWqF zXc+L8y)aO}0p*FkFwhQ(yH0R7e_)9Y3X;Si;VG^9xqTZ zQ^p_PpeQiY#p`pNt>MQ5z#L+KJlLs#?vWSJ_?s~ggu4B_pm0ksyLAO{(ffTGjm6!h zwznMyg3mK>HW;X);J4eSXCN;qrtEEplMPgI_uxXnk{-UUz_TizfaE~zu#vE zAcMj4L9qPK!^wd^Zh>t*!2R)X!O*kMXRsi| z?$arlpX1vu7P!Yg9l$aB`VEDGh|dhga~{cV8Q$YPX}P9 zCVbyK0GJxS{Xuc5EglUVFZeMLOzffibp_@#`*a27Gy8M}HdpO$w?7_$ycmDJ3I(uz zc?no##?R$({Nax&U_le?I>GOA5VQB$DH0gMzIF)wTmbNb+VA^FFaz0#i^1)N-5U?U zt`U5{1ig!&^F#knVQ0@l(RS+~oIGa!MtDnGz>YlM4S7=QQv1N1VW9pe{3LIZHbcr8^F}vl^JJ@oxLu5=W?3~gRzYC6dblyWz z4@5Tl3ym8GJNjFK1?L9~{RJ#?7qBYR(|4$|R z+CNz6bzm?`zsnl>ILr}|wr@9XB!9BiT6^c%12Tv)`b%ATp!6ixfLk+(9oX+0x-Da5 zo{V8SZlPL)e_?JEu=Vq;c{na0%ENy8cJzl~3WM7^U!{D$e!gD&Wt$E#F6czN)p{r6 zLZJJ0%p?3?y|ZH!n=fJ>{Sj>Y{=hD_x56R^+lW0{gBrv3frlj>_ZV$3e<9Pru|>Pr zvfSRELM`M=ScA}G85dX7_ebJ<$^F+3_Fvo5zaZ>sTr`>BIb;5UaSFZ-1#6Rd-onfM#?xt;bELDQc~#r zg9FmwG-#HrbpOuOwMM=*4@=!n>-IRJ0BNEzXtCQ-q-f4c;8~q-!32;?)n9E&tuqb> zaZc^1xprF6{eRc**N-pH)LEYH?#{O#pMQU? zB8>Cx2QFHjvB0`O`}Fed`#@iV*rR+_&p>X>XVH e&Hr0`K5>`$XWa#UE&U)%A{v}-ZXVxXPk#V3bYHXp literal 0 HcmV?d00001 -- GitLab