Added structure and reorg script and first model
This commit is contained in:
commit
d5dc5129d2
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
/raw_data/*.mat
|
||||||
|
/raw_data/*/*.mat
|
||||||
|
/sorted_data
|
1
raw_data/Drop_TTC_Data_here.txt
Normal file
1
raw_data/Drop_TTC_Data_here.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Drop the TTC Data here such that all cornering runs are in subfolders
|
73
scripts/reorganize_data.m
Normal file
73
scripts/reorganize_data.m
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
function reorganize_data()
|
||||||
|
basePath = '../';
|
||||||
|
rawDataPath = fullfile(basePath, 'raw_data');
|
||||||
|
|
||||||
|
% Get all .mat files in the rawDataPath
|
||||||
|
files = dir(fullfile(rawDataPath, '**/*.mat'));
|
||||||
|
|
||||||
|
for i = 1:length(files)
|
||||||
|
filePath = fullfile(files(i).folder, files(i).name);
|
||||||
|
data = load(filePath);
|
||||||
|
|
||||||
|
if isfield(data, 'tireid') && isfield(data, 'testid')
|
||||||
|
tireid = data.tireid;
|
||||||
|
testType = formatTestType(data.testid);
|
||||||
|
newDir = fullfile('../sorted_data', tireid);
|
||||||
|
if ~exist(newDir, 'dir')
|
||||||
|
mkdir(newDir);
|
||||||
|
end
|
||||||
|
|
||||||
|
newFilePath = fullfile(newDir, sprintf('%s.mat', testType));
|
||||||
|
|
||||||
|
if exist(newFilePath, 'file')
|
||||||
|
mergeData(newFilePath, filePath);
|
||||||
|
else
|
||||||
|
copyfile(filePath, newFilePath);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
warning('Required fields not found in %s', filePath);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function testType = formatTestType(testid)
|
||||||
|
switch lower(testid)
|
||||||
|
case 'cornering'
|
||||||
|
testType = 'cornering';
|
||||||
|
case 'drive/brake/combined'
|
||||||
|
testType = 'drivebrake';
|
||||||
|
otherwise
|
||||||
|
error('Unknown testid: %s', testid);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function mergeData(mergedFilePath, newFilePath)
|
||||||
|
% Load existing and new data
|
||||||
|
existingData = load(mergedFilePath);
|
||||||
|
newData = load(newFilePath);
|
||||||
|
|
||||||
|
% Merge logic with error checking for singular values
|
||||||
|
fieldNames = fieldnames(newData);
|
||||||
|
for i = 1:length(fieldNames)
|
||||||
|
fieldName = fieldNames{i};
|
||||||
|
if isnumeric(newData.(fieldName)) || islogical(newData.(fieldName))
|
||||||
|
if numel(newData.(fieldName)) == 1 % Singular value
|
||||||
|
if isfield(existingData, fieldName) && existingData.(fieldName) ~= newData.(fieldName)
|
||||||
|
error('Mismatch in singular value for field "%s" between existing and new data.', fieldName);
|
||||||
|
end
|
||||||
|
elseif isfield(existingData, fieldName)
|
||||||
|
existingData.(fieldName) = [existingData.(fieldName); newData.(fieldName)];
|
||||||
|
else
|
||||||
|
existingData.(fieldName) = newData.(fieldName);
|
||||||
|
end
|
||||||
|
elseif ~strcmp(fieldName, 'tireid') && ~strcmp(fieldName, 'testid')
|
||||||
|
if isfield(existingData, fieldName) && ~isequal(existingData.(fieldName), newData.(fieldName))
|
||||||
|
error('Mismatch in non-array field "%s" between existing and new data.', fieldName);
|
||||||
|
end
|
||||||
|
existingData.(fieldName) = newData.(fieldName);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
% Save the merged data
|
||||||
|
save(mergedFilePath, '-struct', 'existingData');
|
||||||
|
end
|
224
tire_models/hoosier_43100_18_6_10.tir
Normal file
224
tire_models/hoosier_43100_18_6_10.tir
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
[MDI_HEADER]
|
||||||
|
FILE_TYPE = 'tir'
|
||||||
|
FILE_VERSION = 3
|
||||||
|
FILE_FORMAT = 'ASCII'
|
||||||
|
$-----------------------------------------------------------------units
|
||||||
|
[UNITS]
|
||||||
|
LENGTH = 'meter'
|
||||||
|
FORCE = 'newton'
|
||||||
|
ANGLE = 'radians'
|
||||||
|
MASS = 'kg'
|
||||||
|
TIME = 'second'
|
||||||
|
$-----------------------------------------------------------------model
|
||||||
|
[MODEL]
|
||||||
|
FITTYP = 61
|
||||||
|
TYRESIDE = 'LEFT'
|
||||||
|
LONGVL = 10
|
||||||
|
VXLOW = 1
|
||||||
|
$-------------------------------------------------------------dimension
|
||||||
|
[DIMENSION]
|
||||||
|
UNLOADED_RADIUS = 0.2286
|
||||||
|
$--------------------------------------------------operating conditions
|
||||||
|
[OPERATING_CONDITIONS]
|
||||||
|
NOMPRES = 100000
|
||||||
|
$---------------------------------------------------------------inertia
|
||||||
|
[INERTIA]
|
||||||
|
$--------------------------------------------------------------vertical
|
||||||
|
[VERTICAL]
|
||||||
|
FNOMIN = 1500
|
||||||
|
$------------------------------------------------------------structural
|
||||||
|
[STRUCTURAL]
|
||||||
|
$---------------------------------------------------------contact patch
|
||||||
|
[CONTACT_PATCH]
|
||||||
|
$----------------------------------------------inflation pressure range
|
||||||
|
[INFLATION_PRESSURE_RANGE]
|
||||||
|
$--------------------------------------------------vertical force range
|
||||||
|
[VERTICAL_FORCE_RANGE]
|
||||||
|
$-------------------------------------------------------long slip range
|
||||||
|
[LONG_SLIP_RANGE]
|
||||||
|
$------------------------------------------------------slip angle range
|
||||||
|
[SLIP_ANGLE_RANGE]
|
||||||
|
$-----------------------------------------------inclination angle range
|
||||||
|
[INCLINATION_ANGLE_RANGE]
|
||||||
|
$--------------------------------------------------scaling coefficients
|
||||||
|
[SCALING_COEFFICIENTS]
|
||||||
|
LFZO = 1
|
||||||
|
LCX = 1
|
||||||
|
LMUX = 1
|
||||||
|
LEX = 1
|
||||||
|
LKX = 1
|
||||||
|
LHX = 1
|
||||||
|
LVX = 1
|
||||||
|
LCY = 1
|
||||||
|
LMUY = 1
|
||||||
|
LEY = 1
|
||||||
|
LKY = 1
|
||||||
|
LHY = 1
|
||||||
|
LVY = 1
|
||||||
|
LTR = 1
|
||||||
|
LRES = 1
|
||||||
|
LXAL = 1
|
||||||
|
LYKA = 1
|
||||||
|
LVYKA = 1
|
||||||
|
LS = 1
|
||||||
|
LKYC = 1
|
||||||
|
LKZC = 1
|
||||||
|
LVMX = 1
|
||||||
|
LMX = 1
|
||||||
|
LMY = 1
|
||||||
|
LMP = 1
|
||||||
|
$---------------------------------------------longitudinal coefficients
|
||||||
|
[LONGITUDINAL_COEFFICIENTS]
|
||||||
|
PCX1 = 1.5
|
||||||
|
PDX1 = 1.9208
|
||||||
|
PDX2 = -0.17852
|
||||||
|
PDX3 = 3.9292
|
||||||
|
PEX1 = -0.6473
|
||||||
|
PEX2 = -0.67795
|
||||||
|
PEX3 = 0.6
|
||||||
|
PEX4 = -0.9
|
||||||
|
PKX1 = 23.6691
|
||||||
|
PKX2 = 18.5248
|
||||||
|
PKX3 = -1.6735
|
||||||
|
PHX1 = -0.0044404
|
||||||
|
PHX2 = -0.0017213
|
||||||
|
PVX1 = -0.024192
|
||||||
|
PVX2 = -0.1
|
||||||
|
PPX1 = -2.3463
|
||||||
|
PPX2 = -2.7112
|
||||||
|
PPX3 = -0.74204
|
||||||
|
PPX4 = -0.7617
|
||||||
|
RBX1 = 5.99
|
||||||
|
RBX2 = 5.99
|
||||||
|
RBX3 = 0
|
||||||
|
RCX1 = 1
|
||||||
|
REX1 = -1
|
||||||
|
REX2 = -0.1
|
||||||
|
RHX1 = 0
|
||||||
|
$----------------------------------------------overturning coefficients
|
||||||
|
[OVERTURNING_COEFFICIENTS]
|
||||||
|
QSX1 = 0
|
||||||
|
QSX2 = 1.5
|
||||||
|
QSX3 = 0.1
|
||||||
|
QSX4 = 0.1
|
||||||
|
QSX5 = 0
|
||||||
|
QSX6 = 0
|
||||||
|
QSX7 = 0.1
|
||||||
|
QSX8 = 0
|
||||||
|
QSX9 = 0
|
||||||
|
QSX10 = 0
|
||||||
|
QSX11 = 0
|
||||||
|
QSX12 = 0
|
||||||
|
QSX13 = 0
|
||||||
|
QSX14 = 0
|
||||||
|
PPMX1 = 0
|
||||||
|
$--------------------------------------------------lateral coefficients
|
||||||
|
[LATERAL_COEFFICIENTS]
|
||||||
|
PCY1 = 1.5
|
||||||
|
PDY1 = 2.4789
|
||||||
|
PDY2 = -0.5
|
||||||
|
PDY3 = 10
|
||||||
|
PEY1 = 1.2322
|
||||||
|
PEY2 = 0.47308
|
||||||
|
PEY3 = -0.3052
|
||||||
|
PEY4 = -7.8434
|
||||||
|
PEY5 = -115.0383
|
||||||
|
PKY1 = -21.5408
|
||||||
|
PKY2 = 1.2661
|
||||||
|
PKY3 = -0.59067
|
||||||
|
PKY4 = 2
|
||||||
|
PKY5 = -25.9435
|
||||||
|
PKY6 = -2.5098
|
||||||
|
PKY7 = 0.61093
|
||||||
|
PHY1 = -0.0083677
|
||||||
|
PHY2 = -0.0052997
|
||||||
|
PVY1 = -0.16592
|
||||||
|
PVY2 = 0.071875
|
||||||
|
PVY3 = -0.74422
|
||||||
|
PVY4 = -3.5858
|
||||||
|
PPY1 = 0.32063
|
||||||
|
PPY2 = 1.3726
|
||||||
|
PPY3 = -0.2143
|
||||||
|
PPY4 = -0.032422
|
||||||
|
PPY5 = -1.5161
|
||||||
|
RBY1 = 5
|
||||||
|
RBY2 = 2.99
|
||||||
|
RBY3 = 0.02
|
||||||
|
RBY4 = 0
|
||||||
|
RCY1 = 1
|
||||||
|
REY1 = -0.1
|
||||||
|
REY2 = 0.1
|
||||||
|
RHY1 = 0
|
||||||
|
RHY2 = 0
|
||||||
|
RVY1 = 0
|
||||||
|
RVY2 = 0
|
||||||
|
RVY3 = 0
|
||||||
|
RVY4 = 0
|
||||||
|
RVY5 = 0
|
||||||
|
RVY6 = 0
|
||||||
|
$--------------------------------------------------rolling coefficients
|
||||||
|
[ROLLING_COEFFICIENTS]
|
||||||
|
QSY1 = 0
|
||||||
|
QSY2 = 0
|
||||||
|
QSY3 = 0
|
||||||
|
QSY4 = 0
|
||||||
|
QSY5 = 0
|
||||||
|
QSY6 = 0
|
||||||
|
QSY7 = 0
|
||||||
|
QSY8 = 0
|
||||||
|
$-------------------------------------------------aligning coefficients
|
||||||
|
[ALIGNING_COEFFICIENTS]
|
||||||
|
QBZ1 = 0.10008
|
||||||
|
QBZ2 = 0.00023246
|
||||||
|
QBZ3 = 0.00029086
|
||||||
|
QBZ4 = -0.0031101
|
||||||
|
QBZ5 = -0.0031102
|
||||||
|
QBZ9 = 1.5088
|
||||||
|
QBZ10 = -0.19344
|
||||||
|
QCZ1 = 0.11987
|
||||||
|
QDZ1 = 0.1152
|
||||||
|
QDZ2 = 0.0047181
|
||||||
|
QDZ3 = 0.96498
|
||||||
|
QDZ4 = -0.73585
|
||||||
|
QDZ6 = -0.0036203
|
||||||
|
QDZ7 = -0.050338
|
||||||
|
QDZ8 = -0.084844
|
||||||
|
QDZ9 = 5.8235
|
||||||
|
QDZ10 = 1.612
|
||||||
|
QDZ11 = -0.47189
|
||||||
|
QEZ1 = -0.025293
|
||||||
|
QEZ2 = -0.096812
|
||||||
|
QEZ3 = -0.090171
|
||||||
|
QEZ4 = -0.0044756
|
||||||
|
QEZ5 = -0.0044755
|
||||||
|
QHZ1 = 0.01593
|
||||||
|
QHZ2 = -0.0020194
|
||||||
|
QHZ3 = -0.002358
|
||||||
|
QHZ4 = 0.0013057
|
||||||
|
PPZ1 = 0
|
||||||
|
PPZ2 = 0
|
||||||
|
SSZ1 = 0
|
||||||
|
SSZ2 = 0
|
||||||
|
SSZ3 = 0
|
||||||
|
SSZ4 = 0
|
||||||
|
$-------------------------------------------------turnslip coefficients
|
||||||
|
[TURNSLIP_COEFFICIENTS]
|
||||||
|
PDXP1 = 0
|
||||||
|
PDXP2 = 0
|
||||||
|
PDXP3 = 0
|
||||||
|
PKYP1 = 0
|
||||||
|
PDYP1 = 0
|
||||||
|
PDYP2 = 0
|
||||||
|
PDYP3 = 0
|
||||||
|
PDYP4 = 0
|
||||||
|
PHYP1 = 0
|
||||||
|
PHYP2 = 0
|
||||||
|
PHYP3 = 0
|
||||||
|
PHYP4 = 0
|
||||||
|
PECP1 = 0
|
||||||
|
PECP2 = 0
|
||||||
|
QDTP1 = 0
|
||||||
|
QCRP1 = 0
|
||||||
|
QCRP2 = 0
|
||||||
|
QBRP1 = 0
|
||||||
|
QDRP1 = 0
|
Loading…
x
Reference in New Issue
Block a user