diff --git a/README.md b/README.md index fb12afa..2ebe14a 100644 --- a/README.md +++ b/README.md @@ -34,5 +34,20 @@ Features: ![only if you want a second -yaxis select the option "plot with 2nd yAxis](tutorial/3.png) - press reset subplot to delete the selected graph + +Presets: +Adapting a preset: +- sortdata creates an struct pltData with all necessary data for plot_settings + - easiest case: the data from the vectorlogger has the same fieldnames as last season -> probably no changes necessary, unless you want to plot different things + - vectorlogger fieldnames changed: adapt the fieldname to the updated name + - otherwise: add missing data with pltData.XXX = +- plot_settings: uses the data given from pltData to plot, adapt as you see fit + - plotData currently hands over all data that use the following strings: + - "ABX*","Shunt*","AMS_Status*","INV*","XSens* + - which can make problems (e.g. FT23 and FT25 use XSens, FT24 uses VN200) + not working: -- x Axis might not be avaible for everything +- x Axis settings might not be available for everything +- to workspace only exports the entire matrix from sortdata (entire timerange) and the selected data in custom subplots within the selected timerange +- Presets still need to be reconfigured for all seasons, but might work +- currently no preset data selection for different seasons exists (might add later) \ No newline at end of file diff --git a/app.mlapp b/app.mlapp index 35bd298..6f105a9 100644 Binary files a/app.mlapp and b/app.mlapp differ diff --git a/legacy/Data Analysis.zip b/legacy/Data Analysis.zip new file mode 100644 index 0000000..81d2ed4 Binary files /dev/null and b/legacy/Data Analysis.zip differ diff --git a/season/FT23/sortdata.m b/season/FT23/sortdata.m index dedf2af..401ef26 100644 --- a/season/FT23/sortdata.m +++ b/season/FT23/sortdata.m @@ -5,7 +5,6 @@ function [pltData] = sortdata(data,start,stop) time_s = time_s - time_s(1); % set beginning of session to 0 % x-Axis: - pltData.Time = data.Time(start:stop); pltData.time_s = time_s(start:stop)-time_s(start); pltData.time_hms = time_hms(start:stop); @@ -51,36 +50,36 @@ function [pltData] = sortdata(data,start,stop) %% Dampers % damper positions - pltData.damper_FL_mm = data.ABX_Dampers_ABX_Damper_FL(start:stop); %Heave_F - pltData.damper_FR_mm = data.ABX_Dampers_ABX_Damper_FR(start:stop); %Roll_F - pltData.damper_RL_mm = data.ABX_Dampers_ABX_Damper_RL(start:stop); %Heave_R - pltData.damper_RR_mm = data.ABX_Dampers_ABX_Damper_RR(start:stop); %Roll_R + pltData.damperHeaveFront_mm = data.ABX_Dampers_ABX_DamperHeave_F(start:stop); + pltData.damperRollFront_mm = data.ABX_Dampers_ABX_DamperRoll_F(start:stop); + pltData.damperHeaveRear_mm = data.ABX_Dampers_ABX_DamperHeave_R(start:stop); + pltData.damperRollRear_mm = data.ABX_Dampers_ABX_DamperRoll_R(start:stop); % calculate damper velocities - pltData.velocity_FL_mmps(1) = 0; - pltData.velocity_FR_mmps(1) = 0; - pltData.velocity_RL_mmps(1) = 0; - pltData.velocity_RR_mmps(1) = 0; + pltData.velocityHeaveFront_mmps(1) = 0; + pltData.velocityRollFront_mmps(1) = 0; + pltData.velocityHeaveRear_mmps(1) = 0; + pltData.velocityRollRear_mmps(1) = 0; for i = 2:length(pltData.time_s) timestep = pltData.time_s(i)-pltData.time_s(i-1); - pltData.velocity_FL_mmps(i) = pltData.damper_FL_mm(i)-pltData.damper_FL_mm(i-1)/timestep; - pltData.velocity_FR_mmps(i) = pltData.damper_FR_mm(i)-pltData.damper_FR_mm(i-1)/timestep; - pltData.velocity_RL_mmps(i) = pltData.damper_RL_mm(i)-pltData.damper_RL_mm(i-1)/timestep; - pltData.velocity_RR_mmps(i) = pltData.damper_RR_mm(i)-pltData.damper_RR_mm(i-1)/timestep; + pltData.velocityHeaveFront_mmps(i) = pltData.damperHeaveFront_mm(i)-pltData.damperHeaveFront_mm(i-1)/timestep; + pltData.velocityRollFront_mmps(i) = pltData.damperRollFront_mm(i)-pltData.damperRollFront_mm(i-1)/timestep; + pltData.velocityHeaveRear_mmps(i) = pltData.damperHeaveRear_mm(i)-pltData.damperHeaveRear_mm(i-1)/timestep; + pltData.velocityRollRear_mmps(i) = pltData.damperRollRear_mm(i)-pltData.damperRollRear_mm(i-1)/timestep; end % filter damper velocities ??? bessere Berechnung über mittelwert aus mehreren werten? Vorfilterung? - pltData.velocity_FL_mmps = movmean(pltData.velocity_FL_mmps,100); - pltData.velocity_FR_mmps = movmean(pltData.velocity_FR_mmps,100); - pltData.velocity_RL_mmps = movmean(pltData.velocity_RL_mmps,100); - pltData.velocity_RR_mmps = movmean(pltData.velocity_RR_mmps,100); + pltData.velocityHeaveFront_mmps = movmean(pltData.velocityHeaveFront_mmps,100); + pltData.velocityRollFront_mmps = movmean(pltData.velocityRollFront_mmps,100); + pltData.velocityHeaveRear_mmps = movmean(pltData.velocityHeaveRear_mmps,100); + pltData.velocityRollRear_mmps = movmean(pltData.velocityRollRear_mmps,100); %% IMU % Acceleration - % pltData.acc_long_g = movmean(data.XSens_Acceleration_XSens_accX(start:stop),100)/9.81; - % pltData.acc_lat_g = movmean(data.XSens_Acceleration_XSens_accY(start:stop),100)/9.81; + pltData.acc_long_g = movmean(data.XSens_Acceleration_XSens_accX(start:stop),100)/9.81; + pltData.acc_lat_g = movmean(data.XSens_Acceleration_XSens_accY(start:stop),100)/9.81; % Rate of turn - % pltData.rot_roll_degps = movmean(data.XSens_RateOfTurn_XSens_gyrX(start:stop),100); - % pltData.rot_pitch_degps = movmean(data.XSens_RateOfTurn_XSens_gyrY(start:stop),100); - % pltData.rot_yaw_degps = movmean(data.XSens_RateOfTurn_XSens_gyrZ(start:stop),100); + pltData.rot_roll_degps = movmean(data.XSens_RateOfTurn_XSens_gyrX(start:stop),100); + pltData.rot_pitch_degps = movmean(data.XSens_RateOfTurn_XSens_gyrY(start:stop),100); + pltData.rot_yaw_degps = movmean(data.XSens_RateOfTurn_XSens_gyrZ(start:stop),100); %% Inverters % inverter temperatures diff --git a/season/FT23/sortdata_XSens.m b/season/FT23/sortdata_XSens.m deleted file mode 100644 index 401ef26..0000000 --- a/season/FT23/sortdata_XSens.m +++ /dev/null @@ -1,122 +0,0 @@ -function [pltData] = sortdata(data,start,stop) - date = dateshift(data.Time(1),'start','day'); - time_hms = data.Time-date; - time_s = seconds(time_hms); - time_s = time_s - time_s(1); % set beginning of session to 0 - - % x-Axis: - pltData.time_s = time_s(start:stop)-time_s(start); - pltData.time_hms = time_hms(start:stop); - - % distance calculation - speed_mps = movmean(data.ABX_Driver_ABX_Speed(start:stop),50); % TODO: test different speed filters for distance calculation - pltData.distance(1) = 0; - for i = 2:length(speed_mps) - pltData.distance(i) = speed_mps(i)*(pltData.time_s(i)-pltData.time_s(i-1)) + pltData.distance(i-1); - end - pltData.xAxis = pltData.time_s; % set time as default x-Axis for plotting - - %% Misc - pltData.app_percent = data.ABX_Driver_ABX_APPS_percent(start:stop); - pltData.speed_kph = 3.6*movmean(data.ABX_Driver_ABX_Speed(start:stop),50); % same filter as for distance calculation ??? - pltData.steering_deg = data.ABX_Driver_ABX_Steering_Angle(start:stop); - - %% AMS: - pltData.ams_soc = data.AMS_Status_SOC(start:stop); - pltData.ams_tmax = data.AMS_Status_Max_cell_temp(start:stop); - pltData.ams_utot = data.Shunt_Voltage1_Shunt_Voltage1(start:stop); - pltData.ams_itot = data.Shunt_Current_Shunt_Current(start:stop); - % calculations: - pltData.ams_ptot = pltData.ams_utot.*pltData.ams_itot/1000; - - %% Brakes - % brake pressure - pltData.brakePFront_bar = data.ABX_Driver_ABX_BrakeP_F(start:stop); - pltData.brakePRear_bar = data.ABX_Driver_ABX_BrakeP_R(start:stop); - % brake disc temperatures - pltData.brakeTFrontLeft_degC = data.ABX_BrakeT_ABX_BrakeT_FL(start:stop); - pltData.brakeTFrontRight_degC = data.ABX_BrakeT_ABX_BrakeT_FR(start:stop); - pltData.brakeTRearLeft_degC = data.ABX_BrakeT_ABX_BrakeT_RL(start:stop); - pltData.brakeTRearRight_degC = data.ABX_BrakeT_ABX_BrakeT_RR(start:stop); - % calculate brake bias [%] - minBrakeP = 5; % minimum brake pressure to avoid artifacts due to sensor noise near 0 bar - brakePFront = pltData.brakePFront_bar; - brakePFront(brakePFront < minBrakeP) = minBrakeP; - brakePRear = pltData.brakePRear_bar; - brakePRear(brakePRear < minBrakeP) = minBrakeP; - pltData.brakeBias_perc = 100*brakePFront./brakePRear; % check calculation! - - %% Cooling system - - %% Dampers - % damper positions - pltData.damperHeaveFront_mm = data.ABX_Dampers_ABX_DamperHeave_F(start:stop); - pltData.damperRollFront_mm = data.ABX_Dampers_ABX_DamperRoll_F(start:stop); - pltData.damperHeaveRear_mm = data.ABX_Dampers_ABX_DamperHeave_R(start:stop); - pltData.damperRollRear_mm = data.ABX_Dampers_ABX_DamperRoll_R(start:stop); - % calculate damper velocities - pltData.velocityHeaveFront_mmps(1) = 0; - pltData.velocityRollFront_mmps(1) = 0; - pltData.velocityHeaveRear_mmps(1) = 0; - pltData.velocityRollRear_mmps(1) = 0; - for i = 2:length(pltData.time_s) - timestep = pltData.time_s(i)-pltData.time_s(i-1); - pltData.velocityHeaveFront_mmps(i) = pltData.damperHeaveFront_mm(i)-pltData.damperHeaveFront_mm(i-1)/timestep; - pltData.velocityRollFront_mmps(i) = pltData.damperRollFront_mm(i)-pltData.damperRollFront_mm(i-1)/timestep; - pltData.velocityHeaveRear_mmps(i) = pltData.damperHeaveRear_mm(i)-pltData.damperHeaveRear_mm(i-1)/timestep; - pltData.velocityRollRear_mmps(i) = pltData.damperRollRear_mm(i)-pltData.damperRollRear_mm(i-1)/timestep; - end - % filter damper velocities ??? bessere Berechnung über mittelwert aus mehreren werten? Vorfilterung? - pltData.velocityHeaveFront_mmps = movmean(pltData.velocityHeaveFront_mmps,100); - pltData.velocityRollFront_mmps = movmean(pltData.velocityRollFront_mmps,100); - pltData.velocityHeaveRear_mmps = movmean(pltData.velocityHeaveRear_mmps,100); - pltData.velocityRollRear_mmps = movmean(pltData.velocityRollRear_mmps,100); - - %% IMU - % Acceleration - pltData.acc_long_g = movmean(data.XSens_Acceleration_XSens_accX(start:stop),100)/9.81; - pltData.acc_lat_g = movmean(data.XSens_Acceleration_XSens_accY(start:stop),100)/9.81; - % Rate of turn - pltData.rot_roll_degps = movmean(data.XSens_RateOfTurn_XSens_gyrX(start:stop),100); - pltData.rot_pitch_degps = movmean(data.XSens_RateOfTurn_XSens_gyrY(start:stop),100); - pltData.rot_yaw_degps = movmean(data.XSens_RateOfTurn_XSens_gyrZ(start:stop),100); - - %% Inverters - % inverter temperatures - pltData.invL_temp = data.INV_L_TxPDO_1_T_Inv_L(start:stop); - pltData.invR_temp = data.INV_R_TxPDO_1_T_Inv_R(start:stop); - % motor temperatures - pltData.motL_temp = data.INV_L_TxPDO_1_T_Mot_L(start:stop); - pltData.motR_temp = data.INV_R_TxPDO_1_T_Mot_R(start:stop); - % motor velocities - pltData.motL_vel_rpm = 60*data.INV_L_TxPDO_4_Velocity_L(start:stop); - pltData.motR_vel_rpm = 60*data.INV_R_TxPDO_4_Velocity_R(start:stop); - % inverter torque demand - pltData.invL_torqueDemand = data.INV_L_TxPDO_3_DemandedTorque_L(start:stop)/10; % /10 to match autobox torque - pltData.invR_torqueDemand = data.INV_R_TxPDO_3_DemandedTorque_R(start:stop)/10; - % inverter actual torque - pltData.invL_torqueActual = data.INV_L_TxPDO_3_ActualTorque_L(start:stop)/10; - pltData.invR_torqueActual = data.INV_R_TxPDO_3_ActualTorque_R(start:stop)/10; - - %% Wheelspeed - - - - - %% Statistics: - power_regen_kw = pltData.ams_ptot; - power_regen_kw(power_regen_kw > 0) = 0; - power_used_kw = pltData.ams_ptot; - power_used_kw(power_used_kw < 0) = 0; - pltData.energy_kwh = trapz(pltData.time_s, pltData.ams_ptot)/3600; - pltData.energy_regen_kwh = trapz(pltData.time_s, power_regen_kw)/3600; - pltData.energy_used_kwh = trapz(pltData.time_s, power_used_kw)/3600; - pltData.distanceTotal_km = trapz(pltData.time_s, pltData.speed_kph./3.6)/1000; % 1/3.6 for km/h to m/s and /1000 for km output - pltData.peakPower_kw = max(pltData.ams_ptot); - pltData.peakPowerMean_kw = max(movmean(pltData.ams_ptot,500)); - - pltData.maxSpeed_kph = max(pltData.speed_kph); - pltData.startTime = time_hms(start); - pltData.stopTime = time_hms(stop); -end - diff --git a/season/FT24/plot_settings/plot_suspension_histogram.m b/season/FT24/plot_settings/plot_suspension_histogram.m index ed6363f..19a65db 100644 --- a/season/FT24/plot_settings/plot_suspension_histogram.m +++ b/season/FT24/plot_settings/plot_suspension_histogram.m @@ -5,26 +5,26 @@ function [outputArg] = plot_suspension_histogram(panel, start, stop, pltData) ax1 = nexttile(tl); hold(ax1, "on") grid(ax1, "on") - title(ax1, "Heave Front [mm/s]") - histogram(ax1, pltData.velocityHeaveFront_mmps(start:stop),"Normalization","percentage") + title(ax1, "Front left [mm/s]") + histogram(ax1, pltData.velocity_FL_mmps(start:stop),"Normalization","percentage") % plot 2: position roll front [mm/s] ax2 = nexttile(tl); hold(ax2, "on") grid(ax2, "on") - title(ax2, "Roll Front [mm/s]") - histogram(ax2, pltData.velocityHeaveFront_mmps(start:stop),"Normalization","percentage") + title(ax2, "Front right [mm/s]") + histogram(ax2, pltData.velocity_FR_mmps(start:stop),"Normalization","percentage") % plot 3: position heave front [mm/s] ax3 = nexttile(tl); hold(ax3, "on") grid(ax3, "on") - title(ax3, "Heave Rear [mm/s]") - histogram(ax3, pltData.velocityHeaveFront_mmps(start:stop),"Normalization","percentage") + title(ax3, "Rear left [mm/s]") + histogram(ax3, pltData.velocity_RL_mmps(start:stop),"Normalization","percentage") % plot 4: position roll front [mm/s] ax4 = nexttile(tl); hold(ax4, "on") grid(ax4, "on") - title(ax4, "Roll Rear [mm/s]") - histogram(ax4, pltData.velocityHeaveFront_mmps(start:stop),"Normalization","percentage") + title(ax4, "Rear right [mm/s]") + histogram(ax4, pltData.velocity_RR_mmps(start:stop),"Normalization","percentage") linkaxes([ax1, ax2, ax3, ax4],"x") % return null (not relevant for plots!) diff --git a/season/FT24/plot_settings/plot_suspension_positions.m b/season/FT24/plot_settings/plot_suspension_positions.m index 49c1ea6..2369dac 100644 --- a/season/FT24/plot_settings/plot_suspension_positions.m +++ b/season/FT24/plot_settings/plot_suspension_positions.m @@ -1,30 +1,30 @@ function [outputArg] = plot_suspension_positions(panel, start, stop, pltData) % create tiledlayout (R2023a and newer) tl = tiledlayout(panel,"vertical"); - % plot 1: position heave front [mm] + % plot 1: position front left [mm] ax1 = nexttile(tl); hold(ax1, "on") grid(ax1, "on") - title(ax1, "Heave Front [mm]") - plot(ax1, pltData.xAxis(start:stop),pltData.damperHeaveFront_mm(start:stop)) - % plot 2: position roll front [mm] + title(ax1, "Damper Position Front left [mm] !!!check sortdata calculation!!!") + plot(ax1, pltData.xAxis(start:stop),pltData.damper_FL_mm(start:stop)) + % plot 2: position front right [mm] ax2 = nexttile(tl); hold(ax2, "on") grid(ax2, "on") - title(ax2, "Roll Front [mm]") - plot(ax2, pltData.xAxis(start:stop),pltData.damperRollFront_mm(start:stop)) - % plot 3: position heave front [mm] + title(ax2, "Damper Position Front right [mm]") + plot(ax2, pltData.xAxis(start:stop),pltData.damper_FR_mm(start:stop)) + % plot 3: position rear left [mm] ax3 = nexttile(tl); hold(ax3, "on") grid(ax3, "on") - title(ax3, "Heave Rear [mm]") - plot(ax3, pltData.xAxis(start:stop),pltData.damperHeaveRear_mm(start:stop)) - % plot 4: position roll front [mm] + title(ax3, "Damper Position Rear left [mm]") + plot(ax3, pltData.xAxis(start:stop),pltData.damper_RL_mm(start:stop)) + % plot 4: position rear right [mm] ax4 = nexttile(tl); hold(ax4, "on") grid(ax4, "on") - title(ax4, "Roll Rear [mm]") - plot(ax4, pltData.xAxis(start:stop),pltData.damperRollRear_mm(start:stop)) + title(ax4, "Damper Position Rear right [mm]") + plot(ax4, pltData.xAxis(start:stop),pltData.damper_RR_mm(start:stop)) linkaxes([ax1, ax2, ax3, ax4],"x") % return null (not relevant for plots!) diff --git a/season/FT24/plot_settings/plot_suspension_velocities.m b/season/FT24/plot_settings/plot_suspension_velocities.m index a64a10e..221bb41 100644 --- a/season/FT24/plot_settings/plot_suspension_velocities.m +++ b/season/FT24/plot_settings/plot_suspension_velocities.m @@ -1,30 +1,30 @@ function [outputArg] = plot_suspension_velocities(panel, start, stop, pltData) % create tiledlayout (R2023a and newer) tl = tiledlayout(panel,"vertical"); - % plot 1: velocity heave front [mm/s] + % plot 1: velocity front left [mm/s] ax1 = nexttile(tl); hold(ax1, "on") grid(ax1, "on") - title(ax1, "Heave Front [mm/s]") - plot(ax1, pltData.xAxis(start:stop), pltData.velocityHeaveFront_mmps(start:stop)) - % plot 2: velocity roll front [mm/s] + title(ax1, "Damper Front Left Velocity [mm/s] !!!check sortdata calculation!!!") + plot(ax1, pltData.xAxis(start:stop), pltData.velocity_FL_mmps(start:stop)) + % plot 2: velocity front right [mm/s] ax2 = nexttile(tl); hold(ax2, "on") grid(ax2, "on") - title(ax2, "Roll Front [mm/s]") - plot(ax2, pltData.xAxis(start:stop), pltData.velocityRollFront_mmps(start:stop)) - % plot 3: velocity heave front [mm/s] + title(ax2, "Damper Front Right Velocity [mm/s]") + plot(ax2, pltData.xAxis(start:stop), pltData.velocity_FR_mmps(start:stop)) + % plot 3: velocity rear left [mm/s] ax3 = nexttile(tl); hold(ax3, "on") grid(ax3, "on") - title(ax3, "Heave Rear [mm/s]") - plot(ax3, pltData.xAxis(start:stop), pltData.velocityHeaveRear_mmps(start:stop)) - % plot 4: velocity roll front [mm/s] + title(ax3, "Damper Rear Left Velocity [mm/s]") + plot(ax3, pltData.xAxis(start:stop), pltData.velocity_RL_mmps(start:stop)) + % plot 4: velocity rear right [mm/s] ax4 = nexttile(tl); hold(ax4, "on") grid(ax4, "on") - title(ax4, "Roll Rear [mm/s]") - plot(ax4, pltData.xAxis(start:stop), pltData.velocityRollRear_mmps(start:stop)) + title(ax4, "Damper Rear Right Velocity [mm/s]") + plot(ax4, pltData.xAxis(start:stop), pltData.velocity_RR_mmps(start:stop)) linkaxes([ax1, ax2, ax3, ax4],"x") % return null (not relevant for plots!) diff --git a/season/FT24/sortdata.m b/season/FT24/sortdata.m index dedf2af..c3314ce 100644 --- a/season/FT24/sortdata.m +++ b/season/FT24/sortdata.m @@ -73,7 +73,7 @@ function [pltData] = sortdata(data,start,stop) pltData.velocity_RL_mmps = movmean(pltData.velocity_RL_mmps,100); pltData.velocity_RR_mmps = movmean(pltData.velocity_RR_mmps,100); - %% IMU + %% IMU - VN200, no need to implement didnt work well anyway % Acceleration % pltData.acc_long_g = movmean(data.XSens_Acceleration_XSens_accX(start:stop),100)/9.81; % pltData.acc_lat_g = movmean(data.XSens_Acceleration_XSens_accY(start:stop),100)/9.81; diff --git a/season/FT25/plot_settings/plot_suspension_histogram.m b/season/FT25/plot_settings/plot_suspension_histogram.m index ed6363f..19a65db 100644 --- a/season/FT25/plot_settings/plot_suspension_histogram.m +++ b/season/FT25/plot_settings/plot_suspension_histogram.m @@ -5,26 +5,26 @@ function [outputArg] = plot_suspension_histogram(panel, start, stop, pltData) ax1 = nexttile(tl); hold(ax1, "on") grid(ax1, "on") - title(ax1, "Heave Front [mm/s]") - histogram(ax1, pltData.velocityHeaveFront_mmps(start:stop),"Normalization","percentage") + title(ax1, "Front left [mm/s]") + histogram(ax1, pltData.velocity_FL_mmps(start:stop),"Normalization","percentage") % plot 2: position roll front [mm/s] ax2 = nexttile(tl); hold(ax2, "on") grid(ax2, "on") - title(ax2, "Roll Front [mm/s]") - histogram(ax2, pltData.velocityHeaveFront_mmps(start:stop),"Normalization","percentage") + title(ax2, "Front right [mm/s]") + histogram(ax2, pltData.velocity_FR_mmps(start:stop),"Normalization","percentage") % plot 3: position heave front [mm/s] ax3 = nexttile(tl); hold(ax3, "on") grid(ax3, "on") - title(ax3, "Heave Rear [mm/s]") - histogram(ax3, pltData.velocityHeaveFront_mmps(start:stop),"Normalization","percentage") + title(ax3, "Rear left [mm/s]") + histogram(ax3, pltData.velocity_RL_mmps(start:stop),"Normalization","percentage") % plot 4: position roll front [mm/s] ax4 = nexttile(tl); hold(ax4, "on") grid(ax4, "on") - title(ax4, "Roll Rear [mm/s]") - histogram(ax4, pltData.velocityHeaveFront_mmps(start:stop),"Normalization","percentage") + title(ax4, "Rear right [mm/s]") + histogram(ax4, pltData.velocity_RR_mmps(start:stop),"Normalization","percentage") linkaxes([ax1, ax2, ax3, ax4],"x") % return null (not relevant for plots!) diff --git a/season/FT25/plot_settings/plot_suspension_positions.m b/season/FT25/plot_settings/plot_suspension_positions.m index 49c1ea6..2369dac 100644 --- a/season/FT25/plot_settings/plot_suspension_positions.m +++ b/season/FT25/plot_settings/plot_suspension_positions.m @@ -1,30 +1,30 @@ function [outputArg] = plot_suspension_positions(panel, start, stop, pltData) % create tiledlayout (R2023a and newer) tl = tiledlayout(panel,"vertical"); - % plot 1: position heave front [mm] + % plot 1: position front left [mm] ax1 = nexttile(tl); hold(ax1, "on") grid(ax1, "on") - title(ax1, "Heave Front [mm]") - plot(ax1, pltData.xAxis(start:stop),pltData.damperHeaveFront_mm(start:stop)) - % plot 2: position roll front [mm] + title(ax1, "Damper Position Front left [mm] !!!check sortdata calculation!!!") + plot(ax1, pltData.xAxis(start:stop),pltData.damper_FL_mm(start:stop)) + % plot 2: position front right [mm] ax2 = nexttile(tl); hold(ax2, "on") grid(ax2, "on") - title(ax2, "Roll Front [mm]") - plot(ax2, pltData.xAxis(start:stop),pltData.damperRollFront_mm(start:stop)) - % plot 3: position heave front [mm] + title(ax2, "Damper Position Front right [mm]") + plot(ax2, pltData.xAxis(start:stop),pltData.damper_FR_mm(start:stop)) + % plot 3: position rear left [mm] ax3 = nexttile(tl); hold(ax3, "on") grid(ax3, "on") - title(ax3, "Heave Rear [mm]") - plot(ax3, pltData.xAxis(start:stop),pltData.damperHeaveRear_mm(start:stop)) - % plot 4: position roll front [mm] + title(ax3, "Damper Position Rear left [mm]") + plot(ax3, pltData.xAxis(start:stop),pltData.damper_RL_mm(start:stop)) + % plot 4: position rear right [mm] ax4 = nexttile(tl); hold(ax4, "on") grid(ax4, "on") - title(ax4, "Roll Rear [mm]") - plot(ax4, pltData.xAxis(start:stop),pltData.damperRollRear_mm(start:stop)) + title(ax4, "Damper Position Rear right [mm]") + plot(ax4, pltData.xAxis(start:stop),pltData.damper_RR_mm(start:stop)) linkaxes([ax1, ax2, ax3, ax4],"x") % return null (not relevant for plots!) diff --git a/season/FT25/plot_settings/plot_suspension_velocities.m b/season/FT25/plot_settings/plot_suspension_velocities.m index a64a10e..221bb41 100644 --- a/season/FT25/plot_settings/plot_suspension_velocities.m +++ b/season/FT25/plot_settings/plot_suspension_velocities.m @@ -1,30 +1,30 @@ function [outputArg] = plot_suspension_velocities(panel, start, stop, pltData) % create tiledlayout (R2023a and newer) tl = tiledlayout(panel,"vertical"); - % plot 1: velocity heave front [mm/s] + % plot 1: velocity front left [mm/s] ax1 = nexttile(tl); hold(ax1, "on") grid(ax1, "on") - title(ax1, "Heave Front [mm/s]") - plot(ax1, pltData.xAxis(start:stop), pltData.velocityHeaveFront_mmps(start:stop)) - % plot 2: velocity roll front [mm/s] + title(ax1, "Damper Front Left Velocity [mm/s] !!!check sortdata calculation!!!") + plot(ax1, pltData.xAxis(start:stop), pltData.velocity_FL_mmps(start:stop)) + % plot 2: velocity front right [mm/s] ax2 = nexttile(tl); hold(ax2, "on") grid(ax2, "on") - title(ax2, "Roll Front [mm/s]") - plot(ax2, pltData.xAxis(start:stop), pltData.velocityRollFront_mmps(start:stop)) - % plot 3: velocity heave front [mm/s] + title(ax2, "Damper Front Right Velocity [mm/s]") + plot(ax2, pltData.xAxis(start:stop), pltData.velocity_FR_mmps(start:stop)) + % plot 3: velocity rear left [mm/s] ax3 = nexttile(tl); hold(ax3, "on") grid(ax3, "on") - title(ax3, "Heave Rear [mm/s]") - plot(ax3, pltData.xAxis(start:stop), pltData.velocityHeaveRear_mmps(start:stop)) - % plot 4: velocity roll front [mm/s] + title(ax3, "Damper Rear Left Velocity [mm/s]") + plot(ax3, pltData.xAxis(start:stop), pltData.velocity_RL_mmps(start:stop)) + % plot 4: velocity rear right [mm/s] ax4 = nexttile(tl); hold(ax4, "on") grid(ax4, "on") - title(ax4, "Roll Rear [mm/s]") - plot(ax4, pltData.xAxis(start:stop), pltData.velocityRollRear_mmps(start:stop)) + title(ax4, "Damper Rear Right Velocity [mm/s]") + plot(ax4, pltData.xAxis(start:stop), pltData.velocity_RR_mmps(start:stop)) linkaxes([ax1, ax2, ax3, ax4],"x") % return null (not relevant for plots!) diff --git a/season/FT25/sortdata.m b/season/FT25/sortdata.m index dedf2af..7a933be 100644 --- a/season/FT25/sortdata.m +++ b/season/FT25/sortdata.m @@ -75,12 +75,12 @@ function [pltData] = sortdata(data,start,stop) %% IMU % Acceleration - % pltData.acc_long_g = movmean(data.XSens_Acceleration_XSens_accX(start:stop),100)/9.81; - % pltData.acc_lat_g = movmean(data.XSens_Acceleration_XSens_accY(start:stop),100)/9.81; + pltData.acc_long_g = movmean(data.XSens_Acceleration_XSens_accX(start:stop),100)/9.81; + pltData.acc_lat_g = movmean(data.XSens_Acceleration_XSens_accY(start:stop),100)/9.81; % Rate of turn - % pltData.rot_roll_degps = movmean(data.XSens_RateOfTurn_XSens_gyrX(start:stop),100); - % pltData.rot_pitch_degps = movmean(data.XSens_RateOfTurn_XSens_gyrY(start:stop),100); - % pltData.rot_yaw_degps = movmean(data.XSens_RateOfTurn_XSens_gyrZ(start:stop),100); + pltData.rot_roll_degps = movmean(data.XSens_RateOfTurn_XSens_gyrX(start:stop),100); + pltData.rot_pitch_degps = movmean(data.XSens_RateOfTurn_XSens_gyrY(start:stop),100); + pltData.rot_yaw_degps = movmean(data.XSens_RateOfTurn_XSens_gyrZ(start:stop),100); %% Inverters % inverter temperatures