unrecognized tire test type

Hello,
I'm trying to use the Extended Tire Features for Vehicle Dynamics Blockset to plot my tire data. When I use the autoplot funktion i get following error message:
Error using autoplot
All data sets removed due to unrecognized tire test type. Plotting function aborted.
When using the example tire data providet by MATLAB everthing works as it is supposed too. So I imagen the problem is in my data. My tire data are multiple slip angle sweeps in an tire data array. From my understandig this should be a supported tire test type, since it's one off the three types used in the example. I tryed to compare the Exammple data to my data to find any differnces that could cause this problem, but no changes yielded an improvment.
Can someone explain how the Blockset recognizeses the tire test type and with tire test types are supported, since there is no mention of the tire test type in the documentation I could find? So i can check if my tire data full fills the critierias and fix any problems.

 Respuesta aceptada

Matthew
Matthew el 25 de Nov. de 2024

1 voto

Tobias,
Is all the data in a single tireData object? I suspect the problem may be that you need to split the data into an array first. Check out the split method. Then supply the array to the plot method.
Also, you can avoid the error entirely if you provide more input arguments to better define what you want to plot.
For example:
plot(td, "DataVariableNames", ["alpha", "Fy"])
Check the plot documentation for all the optional input arguments.

6 comentarios

Tobias
Tobias el 25 de Nov. de 2024
Hello Matthew,
Thanks for the quick answer. I was splitting the Data manualy into an array allready, since i wasn't aware of the split funktion. Using the split funktion I'm now able to use the autoplot funktion.
But i don't really understand why it's working now. The Data looks the same, only the tire data opject is a 1x26 array instead of 26x1 and the CoordinateSystem is changed from ISO to SAE. Setting the correct coordinate system when creating the empty tiredata, is just ignored.
Old Code
clear all
clc
%% Daten Laden
td_FSAE = open("tireData.mat");
I detect the start and Endpoint of the sweep since the provided Data has been shortend, by removing the Data between sweeps. Resulting in the elapsed time no longer being continuos.
laenge_Daten = length(td_FSAE.ET);
toleranz = 0.02;
marker_start(1) = 1;
j = 1;
for i = 1:1:laenge_Daten-1
if td_FSAE.ET(i+1) > td_FSAE.ET(i) + toleranz
marker_end(j) = i;
marker_start(j+1)= i+1;
j = j + 1;
end
end
marker_end(j) = laenge_Daten;
anzahl_sweeps = length(marker_start);
Then I write the Data manualy in the tire data object. I add some additional values and average out the inflation presure. Seting the coordinate system in line 2 is ingored, the
for i = 1:1:anzahl_sweeps
td(i) = tireData(CoordinateSystem="SAE");
start = marker_start(i);
stop = marker_end(i);
% Daten übertragen
td(i).et = td_FSAE.ET(start : stop);
td(i).Fx = td_FSAE.FX(start : stop);
td(i).Fy = td_FSAE.FY(start : stop);
td(i).Fz = td_FSAE.FZ(start : stop);
td(i).Mx = td_FSAE.MX(start : stop);
td(i).Mz = td_FSAE.MZ(start : stop);
td(i).IP = td_FSAE.P(start : stop);
td(i).alpha = td_FSAE.SA(start : stop);
td(i).gamma = td_FSAE.IA(start : stop);
td(i).kappa = td_FSAE.SL(start : stop);
td(i).V = td_FSAE.V(start : stop);
td(i).omega = td_FSAE.N(start : stop);
td(i).RL = td_FSAE.RL(start : stop);
td(i).Re = td_FSAE.RE(start : stop);
td(i).Ta = td_FSAE.AMBTMP(start : stop);
td(i).Tsurface = td_FSAE.RST(start : stop);
td(i).TtreadI = td_FSAE.TSTI(start : stop);
td(i).TtreadC = td_FSAE.TSTC(start : stop);
td(i).TtreadO = td_FSAE.TSTO(start : stop);
td(i).TestFacility = td_FSAE.source;
td(i).Manufacturer = td_FSAE.tireid;
% Reifendruck mitteln
td(i).IP = mean(td(i).IP);
% Nominalwerte schreiben
td(i).NominalFz = abs(mean(td(i).Fz));
td(i).NominalIP = mean(td(i).IP);
td(i).NominalGamma = mean(td(i).gamma);
td(i).NominalKappa = mean(td(i).kappa);
% Zusätzliche informationen schreiben
td(i).seget = td(i).et - td(i).et(1);
td(i).segment = i;
td(i).measnumb = 1:1:length(td(i).et);
td(i).TestMethod = "Lateral";
end
plot(td)
New Code
clear all
clc
td = tireData("tireData.dat");
td = split(td,"Fz");
for i = 1:1:length(td)
td(i).IP = mean(td(i).IP);
end
plot(td)
I'm using the same Data in the new code, but in the Calspan .dat format. I was providet both formats and swithed because the easy loading off the Data depending on with methode I use.
Matthew
Matthew el 25 de Nov. de 2024
Tobias, I'm glad it's working for you now.
Without the actual data, I'm not able to troubleshoot this very much. It's possible that the algorithm for the tireData "autoplot" is sensitive to the coordinate system, which would require a fix.
Here are some additional thoughts on some items in your reply:
  • In your old code, check the units of all the channels. I wonder if alpha and gamma need to be converted from degrees to radians.
  • To revise the coordinate system prior to assigning the data, you can use the coordinateTransform method: td = coordinateTransform(td,"SAE").
  • I'm glad you find the automated Calspan data import useful!
  • You can replace the for loop in your new code by using the tireData mean method: mean(td,"IP")
Tobias
Tobias el 25 de Nov. de 2024
Hello Metthew,
  • Indeed the unit for the the angels was the problem. It's understandable the plot function doesn't wanna work, when it's thinking my tire is daning like a figure skater on the test rig. It would be usefull if ther would be a warning or error message if the slip angle is higher then one rotation.
  • Changing the coordinate system works as you discript. The plot funktion works with both coordinate systems.
  • The automated immport is awsome, the diverence in code length to achieve the same thing speaks for itself.
  • Thanks for the tipp with the mean methode
Is there a way to change the units for the plots? I'm more used to degrees, radiant is great for calculations, but I have no idea how big the angel is with out converting.
Matthew
Matthew el 25 de Nov. de 2024
There is currently not an option to change the units for the plots. This has been requested previously and is on the docket for a future enhancement.
Thanks for your valuable feedback!
Aloys
Aloys el 8 de Mzo. de 2025
Hello,
I have the exact same error, but I have to admit that I don't know how to resolve the issue even with your answer. I'm loading .dat files from calspan (fsae ttc), and it tells me the same error. I also have the following warning :
Warning: Unrecognized tire test type for index '1,2,3,4,5,6,7,8,9,10'. Removed from plot function.
Warning: Data channel 'IP' must be steady-state for automatic plotting. Data index '1,2,3,4,5,6,7,8,9,10' removed from plot function.
Here is the code :
tirepath = pwd;
tydexdir = dir(fullfile(tirepath,"Tire_Data", "*.dat"));
tydexstr = join([{tydexdir.folder}',{tydexdir.name}'],filesep);
td = tireData(tydexstr);
td = mean(td, "Fz");
td.summaryTable;
td.summaryTable("DataStat","max");
plot(td)
And if I just don't plot it, I can't fit the data neither.
Thank you very much
Matthew
Matthew el 10 de Mzo. de 2025
Hi Aloys,
I'm sorry you're encountering the warning. The plot method, without any additional input arguments, will attempt to create common plots based on the underlying data, but it doesn't always recognize the type of tire test maneuver.;
I encourage you to review the doc for plot and provide additional input arguments.
For example, try:
plot(td, "DataVariableNames",["alpha","Fy"])

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Wheels and Tires en Centro de ayuda y File Exchange.

Productos

Versión

R2024b

Preguntada:

el 25 de Nov. de 2024

Comentada:

el 10 de Mzo. de 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by