Fit a Tire Model to Tire Data
Use the fit
method to fit tire model parameters to tire data. The fit
method optimizes parameter values of a tire model to match the tire model response to the target tire data as closely as possible.
First, import tire data. Then, choose a model as the seed for fitting a new tire model parameter set. You can import an existing tire model or create a new tire model from default parameters for the seed model. Finally, fit the tire model parameter sets by specifying the fitType
argument of the fit method. For more information on the fit types available, see fitType.
This example requires the Extended Tire Features for Vehicle Dynamics Blockset™ support package. See Install Support Package.
Note that using a built-in tire model as a seed model is not supported.
Import Tire Data
Build a string array from the TYDEX filenames that contain the tire data.
tirepath = pwd; tydexdir = dir(fullfile(tirepath,"data_tydex_files","*.tdx")); tydexstr = join([{tydexdir.folder}',{tydexdir.name}'],filesep);
Import the tire data into an array of tireData
objects from the files specified in the string array tydexstr
. The length of the tireData
objects array is the same length as the input string array. Data from each file is stored in a tireData
object. For more information on tire data permitted, see Example Tire Data.
td = tireData(tydexstr);
Use the mean
function to preprocess the Fz
data channel to remove noise and variation.
td = mean(td, "Fz");
Create tireModel Object
Create a Magic Formula 6.2 tire model type with default parameters to use as the seed model. Then, name the new model.
tm = tireModel.new("MF"); tm.Name = "New Fitted Model";
Set Dimensions, Nominal Test Conditions, and Model Limits
Manually set the nominal test conditions to match the test data supplied to fit the tire model.
tm.INFLPRES = 262000; tm.NOMPRES = 262000; tm.FNOMIN = 4300;
Manually set the size of the tire tested.
tm.TireSize = "245/45R18";
Specify the fitType
as Dimensions
to automatically set the dimensional properties of the tire to match the test data supplied to the model.
[tm, diffTable] = fit(tm, td, "Dimensions");
View the diffTable
variable to inspect which variables were revised.
diffTable
diffTable=5×8 table
Parameter Initial Value Final Value Difference % Difference Lower Bounds Upper Bounds Parameter Description
_________________ _____________ ___________ __________ ____________ ____________ ____________ ___________________________________
"UNLOADED_RADIUS" 0.3135 0.33454 0.021045 6.7 0 Inf "Free tire radius"
"WIDTH" 0.205 0.235 0.03 14.6 0 Inf "Nominal section width of the tire"
"ASPECT_RATIO" 0.6 0.45 -0.15 -25 0 Inf "Nominal aspect ratio"
"RIM_RADIUS" 0.1905 0.2286 0.0381 20 0 Inf "Nominal rim radius"
"RIM_WIDTH" 0.152 0.2032 0.0512 33.7 0 Inf "Rim width"
Specify the fitType
as Limits
to automatically set the model limits to match the test data supplied to fit the model. Keep the FZMIN parameter value constant when these limits are applied by setting the FixedParameters
argument to FZMIN
.
[tm, diffTable] = fit(tm, td, "Limits", FixedParameters="FZMIN");
View the diffTable
variable to inspect which variables were revised.
diffTable
diffTable=9×8 table
Parameter Initial Value Final Value Difference % Difference Lower Bounds Upper Bounds Parameter Description
_________ _____________ ___________ __________ ____________ ____________ ____________ _______________________________________
"PRESMIN" 10000 2.62e+05 2.52e+05 2520 0 Inf "Minimum valid tire inflation pressure"
"PRESMAX" 1e+06 2.62e+05 -7.38e+05 -73.8 -Inf Inf "Maximum valid tire inflation pressure"
"FZMAX" 12000 6526 -5474 -45.6 -Inf Inf "Maximum allowed wheel load"
"KPUMIN" -1.5 -0.4808 1.0192 -67.9 -Inf Inf "Minimum valid wheel slip"
"KPUMAX" 1.5 0.4811 -1.0189 -67.9 -Inf Inf "Maximum valid wheel slip"
"ALPMIN" -0.7854 -0.3265 0.4589 -58.4 -Inf Inf "Minimum valid slip angle"
"ALPMAX" 0.7854 0.3239 -0.4615 -58.8 -Inf Inf "Maximum valid slip angle"
"CAMMIN" -0.17453 -0.1052 0.06933 -39.7 -Inf Inf "Minimum valid camber angle"
"CAMMAX" 0.17453 0.1052 -0.06933 -39.7 -Inf Inf "Maximum valid camber angle"
Fit Different Parameter Sets
Follow these steps to fit different tire model parameter sets.
Note that this section provides steps for only some of the available parameter sets. You can use these steps to fit all of the available parameter options.
Fit Pure Fx
Parameters
Extract the longitudinal data from the tire data.
longitudinal_data = td([td.TestMethod] == "Longitudinal");
Using the fit
function, set the fitType
argument to "Fx Pure"
, and set the PlotFit
argument to true
to plot the result.
For additional information available for a fit, see Output Arguments.
[tm, diffTable] = fit(tm,longitudinal_data,"Fx Pure",PlotFit=true);
Local minimum possible. Constraints satisfied. fmincon stopped because the size of the current step is less than the value of the step size tolerance and constraints are satisfied to within the value of the constraint tolerance.
View the diffTable
variable to inspect which variables were optimized.
diffTable
diffTable=19×8 table
Parameter Initial Value Final Value Difference % Difference Lower Bounds Upper Bounds Parameter Description
_________ _____________ ___________ ___________ ____________ ____________ ____________ _______________________________________________________________________
"PCX1" 1.579 1.5138 -0.065167 -4.1 -Inf Inf "Shape factor Cfx for longitudinal force"
"PDX1" 1.0422 1.1786 0.13637 13.1 -Inf Inf "Longitudinal friction Mux at Fznom"
"PDX2" -0.08285 -0.040475 0.042375 -51.1 -Inf Inf "Variation of friction Mux with load"
"PDX3" 0 0.070743 0.070743 Inf -Inf Inf "Variation of friction Mux with camber"
"PEX1" 0.11113 0.33671 0.22558 203 -Inf Inf "Longitudinal curvature Efx at Fznom"
"PEX2" 0.3143 -0.49929 -0.81359 -258.9 -Inf Inf "Variation of curvature Efx with load"
"PEX3" 0 0.16845 0.16845 Inf -Inf Inf "Variation of curvature Efx with load squared"
"PEX4" 0.001719 -0.098787 -0.10051 -5846.8 -Inf Inf "Factor in curvature Efx while driving"
"PKX1" 21.687 46.607 24.92 114.9 -Inf Inf "Longitudinal slip stiffness Kfx/Fz at Fznom"
"PKX2" 13.728 -0.00026746 -13.728 -100 -Inf Inf "Variation of slip stiffness Kfx/Fz with load"
"PKX3" -0.4098 0.10057 0.51037 -124.5 -Inf Inf "Exponent in slip stiffness Kfx/Fz with load"
"PHX1" 0.00021615 -0.00098607 -0.0012022 -556.2 -Inf Inf "Horizontal shift Shx at Fznom"
"PHX2" 0.0011598 0.00048149 -0.00067831 -58.5 -Inf Inf "Variation of shift Shx with load"
"PVX1" 2.0283e-05 0.049022 0.049002 2.4159e+05 -Inf Inf "Vertical shift Svx/Fz at Fznom"
"PVX2" 0.00010568 -0.0070435 -0.0071492 -6764.9 -Inf Inf "Variation of shift Svx/Fz with load"
"PPX1" -0.3485 -0.3485 0 0 -Inf Inf "Linear influence of inflation pressure on longitudinal slip stiffness"
⋮
Fit Pure Fy
Parameters
Extract the lateral data from the tire data.
lateral_data = td([td.TestMethod] == "Lateral");
Using the fit
function, set the fitType
argument to "Fy Pure"
, and set the PlotFit
argument to true
to plot the result.
For additional information available for a fit, see Output Arguments.
[tm, diffTable] = fit(tm,lateral_data,"Fy Pure",PlotFit=true);
Local minimum possible. Constraints satisfied. fmincon stopped because the size of the current step is less than the value of the step size tolerance and constraints are satisfied to within the value of the constraint tolerance.
View the diffTable
variable to inspect which variables were optimized.
diffTable
diffTable=27×8 table
Parameter Initial Value Final Value Difference % Difference Lower Bounds Upper Bounds Parameter Description
_________ _____________ ___________ __________ ____________ ____________ ____________ ________________________________________________
"PCY1" 1.338 1.4671 0.1291 9.6 -Inf Inf "Shape factor Cfy for lateral forces"
"PDY1" 0.8785 1.086 0.20754 23.6 -Inf Inf "Lateral friction Muy"
"PDY2" -0.06452 -0.12512 -0.060598 93.9 -Inf Inf "Variation of friction Muy with load"
"PDY3" 0 1.8336 1.8336 Inf -Inf Inf "Variation of friction Muy with squared camber"
"PEY1" -0.8057 -1.2623 -0.45663 56.7 -Inf Inf "Lateral curvature Efy at Fznom"
"PEY2" -0.6046 -1.6085 -1.0039 166 -Inf Inf "Variation of curvature Efy with load"
"PEY3" 0.09854 0.040037 -0.058503 -59.4 -Inf Inf "Zero order camber dependency of curvature Efy"
"PEY4" -6.697 -9.113 -2.416 36.1 -Inf Inf "Variation of curvature Efy with camber"
"PEY5" 0 38.025 38.025 Inf -Inf Inf "Variation of curvature Efy with camber squared"
"PKY1" -15.324 -34.635 -19.311 126 -Inf Inf "Maximum value of stiffness Kfy/Fznom"
"PKY2" 1.715 1.9465 0.23153 13.5 -Inf Inf "Load at which Kfy reaches maximum value"
"PKY3" 0.3695 1.271 0.9015 244 -Inf Inf "Variation of Kfy/Fznom with camber"
"PKY4" 2.0005 1.5178 -0.48274 -24.1 -Inf Inf "Curvature of stiffness Kfy"
"PKY5" 0 -27.426 -27.426 -Inf -Inf Inf "Peak stiffness variation with camber squared"
"PKY6" -0.8987 -1.1743 -0.27558 30.7 -Inf Inf "Fy camber stiffness factor"
"PKY7" -0.23303 -0.54366 -0.31063 133.3 -Inf Inf "Vertical load dependency of camber stiffness"
⋮
Fit Combined Fx
Parameters
Extract the combined data from the tire data.
combined_data = td([td.TestMethod] == "Combined");
Using the fit
function, set the fitType
argument to "Fx Combined"
, and set the PlotFit
argument to true
to plot the result.
For additional information available for a fit, see Output Arguments.
[tm, diffTable] = fit(tm,combined_data,"Fx Combined",PlotFit=true);
Local minimum possible. Constraints satisfied. fmincon stopped because the size of the current step is less than the value of the step size tolerance and constraints are satisfied to within the value of the constraint tolerance.
View the diffTable
variable to inspect which variables were optimized.
diffTable
diffTable=7×8 table
Parameter Initial Value Final Value Difference % Difference Lower Bounds Upper Bounds Parameter Description
_________ _____________ ___________ __________ ____________ ____________ ____________ __________________________________________________
"RBX1" 13.046 26.396 13.35 102.3 -Inf Inf "Slope factor for combined slip Fx reduction"
"RBX2" 9.718 24.341 14.623 150.5 -Inf Inf "Variation of slope Fx reduction with kappa"
"RBX3" 0 237.52 237.52 Inf -Inf Inf "Influence of camber on stiffness for Fx combined"
"RCX1" 0.9995 1.0661 0.066593 6.7 -Inf Inf "Shape factor for combined slip Fx reduction"
"REX1" -0.4403 0.14933 0.58963 -133.9 -Inf Inf "Curvature factor of combined Fx"
"REX2" -0.4663 -0.021368 0.44493 -95.4 -Inf Inf "Curvature factor of combined Fx with load"
"RHX1" -9.968e-05 0.002952 0.0030516 -3061.4 -Inf Inf "Shift factor for combined slip Fx reduction"
Fit Mx
Parameters
Using the fit
function, set the fitType
argument to "Mx"
, use the combined
data, and set the PlotFit
argument to true
to plot the result.
For additional information available for a fit, see Output Arguments.
[tm, diffTable] = fit(tm, lateral_data,"Mx",PlotFit=true);
Local minimum possible. Constraints satisfied. fmincon stopped because the size of the current step is less than the value of the step size tolerance and constraints are satisfied to within the value of the constraint tolerance.
View the diffTable
variable to inspect which variables were optimized.
diffTable
diffTable=11×8 table
Parameter Initial Value Final Value Difference % Difference Lower Bounds Upper Bounds Parameter Description
_________ _____________ ___________ __________ ____________ ____________ ____________ _________________________________________________
"QSX1" -0.007764 -0.00036964 0.0073944 -95.2 -Inf Inf "Vertical shift of overturning moment"
"QSX2" 1.1915 106.04 104.85 8799.6 -Inf Inf "Camber induced overturning couple"
"QSX3" 0.013948 0.0061915 -0.0077565 -55.6 -Inf Inf "Fy induced overturning couple"
"QSX4" 4.912 97.209 92.297 1879 -Inf Inf "Mixed load lateral force and camber on Mx"
"QSX5" 1.02 1.0939 0.073941 7.2 -Inf Inf "Load effect on Mx with lateral force and camber"
"QSX6" 22.83 639.6 616.77 2701.6 -Inf Inf "B-factor of load with Mx"
"QSX7" 0.7104 -8.33 -9.0404 -1272.6 -Inf Inf "Camber with load on Mx"
"QSX8" -0.023393 0.0016263 0.025019 -107 -Inf Inf "Lateral force with load on Mx"
"QSX9" 0.6581 3.4757 2.8176 428.1 -Inf Inf "B-factor of lateral force with load on Mx"
"QSX10" 0.2824 79.587 79.305 28082 -Inf Inf "Vertical force with camber on Mx"
"QSX11" 5.349 0.0056543 -5.3433 -99.9 -Inf Inf "B-factor of vertical force with camber on Mx"
Continue Fitting Parameter Sets
Use the steps established in the preceding sections to continue fitting the model using the remaining fit types.
Plot Fitted Tire Model Response
After fitting all available fit types, use the plot
method to plot the results and compare to the original default model.
plot([tm,tireModel.new("MF")],"Data",td);