From 31352381861281dcf701bd856ec70379cf65cb0c Mon Sep 17 00:00:00 2001 From: Dippold Martin <dippold@ivt.tugraz.at> Date: Thu, 28 May 2015 13:45:02 +0200 Subject: [PATCH] * Update of calculation of the CdxA value from measured drag forces * Update GenShape File --- CSE/CSE_Globals.vb | 238 +++++++++-------------- CSE/Calculation/Signal_identification.vb | 18 +- CSE/Calculation/main_calculation_call.vb | 2 +- CSE/Calculation/sub_linear_regression.vb | 172 ++++++++-------- CSE/GUI/F_Main.vb | 3 +- CSE/IO/cCriteria.vb | 4 +- CSE/IO/cJob.vb | 10 +- CSE/IO/output.vb | 50 ++--- Declaration/GenShape.shp | 22 +-- 9 files changed, 226 insertions(+), 293 deletions(-) diff --git a/CSE/CSE_Globals.vb b/CSE/CSE_Globals.vb index 09ea2fd..cc7bee0 100644 --- a/CSE/CSE_Globals.vb +++ b/CSE/CSE_Globals.vb @@ -50,9 +50,7 @@ Module CSE_Globals lati_root longi_root v_veh_c - 'vair_ic vair_uf - 'beta_ic beta_uf vwind_ha vwind_c @@ -117,7 +115,7 @@ Module CSE_Globals tq_sum_float F_trac F_res_ref - v_veh_avg + v_veh_acc a_veh_avg F_acc F_grd @@ -143,11 +141,6 @@ Module CSE_Globals rho_air t_tire p_tire - F0_ref_singleDS - F0_singleDS - F2_ref_singleDS - RRC_singleDS - CdxA_singleDS val_User val_vVeh_avg val_vVeh_1s @@ -158,36 +151,33 @@ Module CSE_Globals val_tq_1s val_beta val_dist + CdxAß_singleDS End Enum Public Enum tCompErgReg SecID DirID - F0 - F0_LS1 - F0_LS2 - F0_ref - F2_ref - F0_LS1_ref - F2_LS1_ref - F0_LS2_ref - F2_LS2_ref - rho_air_LS - beta_abs_HS - RRC - RRC_LS1 - RRC_LS2 - RRC_valid - CdxA - delta_CdxA - CdxA0 - F0_95 - F2_95 - R_sq - t_tire_LS_min - t_tire_LS_max - t_tire_HS_min - t_tire_HS_max + F0_singleMS + F2_singleMS + F0_singleMS_95 + F2_singleMS_95 + R_sq_singleMS + RRC_singleMS + F0_singleMS_LS1 + F2_singleMS_LS1 + F0_singleMS_LS2 + F2_singleMS_LS2 + beta_ave_singleMS + RRC_singleMS_LS1 + RRC_singleMS_LS2 + valid_RRC + CdxAß_ave_singleMS + delta_CdxA_singleMS + CdxA0_singleMS + t_tire_ave_LS_min + t_tire_ave_LS_max + t_tire_ave_HS_min + t_tire_ave_HS_max valid_t_tire 't_amb 't_amb_min @@ -431,7 +421,7 @@ Module CSE_Globals Case tCompCali.F_trac Return "F_trac" Case tCompCali.v_veh_acc - Return "v_veh_avg" + Return "v_veh_acc" Case tCompCali.a_veh_avg Return "a_veh_avg" Case tCompCali.F_acc @@ -604,8 +594,8 @@ Module CSE_Globals Return "tq_sum_float" Case tCompErg.F_trac Return "F_trac" - Case tCompErg.v_veh_avg - Return "v_veh_avg" + Case tCompErg.v_veh_acc + Return "v_veh_acc" Case tCompErg.a_veh_avg Return "a_veh_avg" Case tCompErg.F_acc @@ -658,16 +648,6 @@ Module CSE_Globals Return "t_tire" Case tCompErg.p_tire Return "p_tire" - Case tCompErg.F0_ref_singleDS - Return "F0_ref_singleDS" - Case tCompErg.F0_singleDS - Return "F0_singleDS" - Case tCompErg.F2_ref_singleDS - Return "F2_ref_singleDS" - Case tCompErg.RRC_singleDS - Return "RRC_singleDS" - Case tCompErg.CdxA_singleDS - Return "CdxA_singleDS" Case tCompErg.val_User Return "val_User" Case tCompErg.val_vVeh_avg @@ -688,6 +668,8 @@ Module CSE_Globals Return "val_beta" Case tCompErg.val_dist Return "val_dist" + Case tCompErg.CdxAß_singleDS + Return "CdxA(ß)_singleDS" Case Else Return "ERROR" End Select @@ -715,16 +697,12 @@ Module CSE_Globals Return "[km/h]" Case tCompErg.v_veh Return "[km/h]" - 'Case tCompErg.vair_ar - ' Return "[m/s]" Case tCompErg.vair_ic Return "[m/s]" Case tCompErg.vair_uf Return "[m/s]" Case tCompErg.vair Return "[m/s]" - 'Case tCompErg.beta_ar - ' Return "[°]" Case tCompErg.beta_ic Return "[°]" Case tCompErg.beta_uf @@ -761,7 +739,7 @@ Module CSE_Globals Return "[Nm]" Case tCompErg.F_trac Return "[N]" - Case tCompErg.v_veh_avg + Case tCompErg.v_veh_acc Return "[km/h]" Case tCompErg.a_veh_avg Return "[m/s2]" @@ -815,16 +793,6 @@ Module CSE_Globals Return "[°C]" Case tCompErg.p_tire Return "[bar]" - Case tCompErg.F0_ref_singleDS - Return "[N]" - Case tCompErg.F0_singleDS - Return "[N]" - Case tCompErg.F2_ref_singleDS - Return "[N]" - Case tCompErg.RRC_singleDS - Return "[kg/t]" - Case tCompErg.CdxA_singleDS - Return "[m2]" Case tCompErg.val_User Return "[-]" Case tCompErg.val_vVeh_avg @@ -845,6 +813,8 @@ Module CSE_Globals Return "[-]" Case tCompErg.val_dist Return "[-]" + Case tCompErg.CdxAß_singleDS + Return "[m2]" Case Else Return "ERROR" End Select @@ -856,56 +826,48 @@ Module CSE_Globals Return "SecID" Case tCompErgReg.DirID Return "DirID" - Case tCompErgReg.F0 - Return "F0" - Case tCompErgReg.F0_LS1 - Return "F0_LS1" - Case tCompErgReg.F0_LS2 - Return "F0_LS2" - Case tCompErgReg.F0_ref - Return "F0_ref" - Case tCompErgReg.F0_LS1_ref - Return "F0_LS1_ref" - Case tCompErgReg.F0_LS2_ref - Return "F0_LS2_ref" - Case tCompErgReg.F0_95 - Return "F0 (95%)" - Case tCompErgReg.F2_ref - Return "F2_ref" - Case tCompErgReg.F2_LS1_ref - Return "F2_LS1_ref" - Case tCompErgReg.F2_LS2_ref - Return "F2_LS2_ref" - Case tCompErgReg.F2_95 - Return "F2 (95%)" - Case tCompErgReg.RRC - Return "RRC" - Case tCompErgReg.RRC_LS1 - Return "RRC_LS1" - Case tCompErgReg.RRC_LS2 - Return "RRC_LS2" - Case tCompErgReg.RRC_valid - Return "RRC_valid" - Case tCompErgReg.R_sq - Return "R_sq" - Case tCompErgReg.CdxA - Return "CdxA" - Case tCompErgReg.CdxA0 - Return "CdxA0" - Case tCompErgReg.delta_CdxA - Return "delta_CdxA" - Case tCompErgReg.rho_air_LS - Return "rho_air_LS" - Case tCompErgReg.beta_abs_HS - Return "beta_abs_HS" - Case tCompErgReg.t_tire_LS_max - Return "t_tire_LS_max" - Case tCompErgReg.t_tire_LS_min - Return "t_tire_LS_min" - Case tCompErgReg.t_tire_HS_max - Return "t_tire_HS_max" - Case tCompErgReg.t_tire_HS_min - Return "t_tire_HS_min" + Case tCompErgReg.F0_singleMS + Return "F0_singleMS" + Case tCompErgReg.F0_singleMS_95 + Return "F0_singleMS (95%)" + Case tCompErgReg.F0_singleMS_LS1 + Return "F0_singleMS_LS1" + Case tCompErgReg.F0_singleMS_LS2 + Return "F0_singleMS_LS2" + Case tCompErgReg.F2_singleMS + Return "F2_singleMS" + Case tCompErgReg.F2_singleMS_95 + Return "F2_singleMS (95%)" + Case tCompErgReg.F2_singleMS_LS1 + Return "F2_singleMS_LS1" + Case tCompErgReg.F2_singleMS_LS2 + Return "F2_singleMS_LS2" + Case tCompErgReg.RRC_singleMS + Return "RRC_singleMS" + Case tCompErgReg.RRC_singleMS_LS1 + Return "RRC_singleMS_LS1" + Case tCompErgReg.RRC_singleMS_LS2 + Return "RRC_singleMS_LS2" + Case tCompErgReg.valid_RRC + Return "valid_RRC" + Case tCompErgReg.R_sq_singleMS + Return "R_sq_singleMS" + Case tCompErgReg.CdxAß_ave_singleMS + Return "CdxA(ß)_ave_singleMS" + Case tCompErgReg.CdxA0_singleMS + Return "CdxA(0)_singleMS" + Case tCompErgReg.delta_CdxA_singleMS + Return "delta_CdxA_singleMS" + Case tCompErgReg.beta_ave_singleMS + Return "beta_ave_singleMS" + Case tCompErgReg.t_tire_ave_LS_max + Return "t_tire_ave_LS_max" + Case tCompErgReg.t_tire_ave_LS_min + Return "t_tire_ave_LS_min" + Case tCompErgReg.t_tire_ave_HS_max + Return "t_tire_ave_HS_max" + Case tCompErgReg.t_tire_ave_HS_min + Return "t_tire_ave_HS_min" Case tCompErgReg.valid_t_tire Return "valid_t_tire" Case Else @@ -919,55 +881,47 @@ Module CSE_Globals Return "[-]" Case tCompErgReg.DirID Return "[-]" - Case tCompErgReg.F0 - Return "[N]" - Case tCompErgReg.F0_LS1 + Case tCompErgReg.F0_singleMS Return "[N]" - Case tCompErgReg.F0_LS2 - Return "[N]" - Case tCompErgReg.F0_ref - Return "[N]" - Case tCompErgReg.F0_LS1_ref + Case tCompErgReg.F0_singleMS_95 + Return "[%]" + Case tCompErgReg.F0_singleMS_LS1 Return "[N]" - Case tCompErgReg.F0_LS2_ref + Case tCompErgReg.F0_singleMS_LS2 Return "[N]" - Case tCompErgReg.F0_95 - Return "[%]" - Case tCompErgReg.F2_ref + Case tCompErgReg.F2_singleMS Return "[N/(m2/s2)]" - Case tCompErgReg.F2_LS1_ref + Case tCompErgReg.F2_singleMS_95 + Return "[%]" + Case tCompErgReg.F2_singleMS_LS1 Return "[N/(m2/s2)]" - Case tCompErgReg.F2_LS2_ref + Case tCompErgReg.F2_singleMS_LS2 Return "[N/(m2/s2)]" - Case tCompErgReg.F2_95 - Return "[%]" - Case tCompErgReg.RRC + Case tCompErgReg.RRC_singleMS Return "[kg/t]" - Case tCompErgReg.RRC_LS1 + Case tCompErgReg.RRC_singleMS_LS1 Return "[kg/t]" - Case tCompErgReg.RRC_LS2 + Case tCompErgReg.RRC_singleMS_LS2 Return "[kg/t]" - Case tCompErgReg.RRC_valid + Case tCompErgReg.valid_RRC Return "[-]" - Case tCompErgReg.R_sq + Case tCompErgReg.R_sq_singleMS Return "[-]" - Case tCompErgReg.CdxA + Case tCompErgReg.CdxAß_ave_singleMS Return "[m2]" - Case tCompErgReg.CdxA0 + Case tCompErgReg.CdxA0_singleMS Return "[m2]" - Case tCompErgReg.delta_CdxA + Case tCompErgReg.delta_CdxA_singleMS Return "[m2]" - Case tCompErgReg.rho_air_LS - Return "[kg/m3]" - Case tCompErgReg.beta_abs_HS + Case tCompErgReg.beta_ave_singleMS Return "[°]" - Case tCompErgReg.t_tire_LS_max + Case tCompErgReg.t_tire_ave_LS_max Return "[°]" - Case tCompErgReg.t_tire_LS_min + Case tCompErgReg.t_tire_ave_LS_min Return "[°]" - Case tCompErgReg.t_tire_HS_max + Case tCompErgReg.t_tire_ave_HS_max Return "[°]" - Case tCompErgReg.t_tire_HS_min + Case tCompErgReg.t_tire_ave_HS_min Return "[°]" Case tCompErgReg.valid_t_tire Return "[-]" diff --git a/CSE/Calculation/Signal_identification.vb b/CSE/Calculation/Signal_identification.vb index afb3c5c..9fe35f7 100644 --- a/CSE/Calculation/Signal_identification.vb +++ b/CSE/Calculation/Signal_identification.vb @@ -820,7 +820,7 @@ Module Signal_identification ErgValues(tCompErg.tq_sum_float)(run) = (CalcData(tCompCali.tq_sum_float)(i)) ErgValues(tCompErg.t_float)(run) = (CalcData(tCompCali.t_float)(i)) ErgValues(tCompErg.F_trac)(run) = (CalcData(tCompCali.F_trac)(i)) - ErgValues(tCompErg.v_veh_avg)(run) = (CalcData(tCompCali.v_veh_acc)(i)) + ErgValues(tCompErg.v_veh_acc)(run) = (CalcData(tCompCali.v_veh_acc)(i)) ErgValues(tCompErg.a_veh_avg)(run) = (CalcData(tCompCali.a_veh_avg)(i)) ErgValues(tCompErg.F_acc)(run) = (CalcData(tCompCali.F_acc)(i)) ErgValues(tCompErg.F_grd)(run) = (CalcData(tCompCali.F_grd)(i)) @@ -856,7 +856,7 @@ Module Signal_identification ErgValues(tCompErg.tq_sum_float)(run) += (CalcData(tCompCali.tq_sum_float)(i)) ErgValues(tCompErg.t_float)(run) += (CalcData(tCompCali.t_float)(i)) ErgValues(tCompErg.F_trac)(run) += (CalcData(tCompCali.F_trac)(i)) - ErgValues(tCompErg.v_veh_avg)(run) += (CalcData(tCompCali.v_veh_acc)(i)) + ErgValues(tCompErg.v_veh_acc)(run) += (CalcData(tCompCali.v_veh_acc)(i)) ErgValues(tCompErg.a_veh_avg)(run) += (CalcData(tCompCali.a_veh_avg)(i)) ErgValues(tCompErg.F_acc)(run) += (CalcData(tCompCali.F_acc)(i)) ErgValues(tCompErg.F_grd)(run) += (CalcData(tCompCali.F_grd)(i)) @@ -889,7 +889,7 @@ Module Signal_identification ErgValues(tCompErg.tq_sum_float)(run) = ErgValues(tCompErg.tq_sum_float)(run) / anz ErgValues(tCompErg.t_float)(run) = ErgValues(tCompErg.t_float)(run) / anz ErgValues(tCompErg.F_trac)(run) = ErgValues(tCompErg.F_trac)(run) / anz - ErgValues(tCompErg.v_veh_avg)(run) = ErgValues(tCompErg.v_veh_avg)(run) / anz + ErgValues(tCompErg.v_veh_acc)(run) = ErgValues(tCompErg.v_veh_acc)(run) / anz ErgValues(tCompErg.a_veh_avg)(run) = ErgValues(tCompErg.a_veh_avg)(run) / anz ErgValues(tCompErg.F_acc)(run) = ErgValues(tCompErg.F_acc)(run) / anz ErgValues(tCompErg.F_grd)(run) = ErgValues(tCompErg.F_grd)(run) / anz @@ -905,9 +905,9 @@ Module Signal_identification ErgValues(tCompErg.vp_H2O)(run) = ((ErgValues(tCompErg.rh_stat)(run) / 100) * 611 * 10 ^ ((7.5 * ErgValues(tCompErg.t_amb_stat)(run)) / (237 + ErgValues(tCompErg.t_amb_stat)(run)))) ErgValues(tCompErg.rho_air)(run) = (ErgValues(tCompErg.p_amb_stat)(run) * 100 - ErgValues(tCompErg.vp_H2O)(run)) / (287.05 * (ErgValues(tCompErg.t_amb_veh)(run) + 273.15)) + ErgValues(tCompErg.vp_H2O)(run) / (461.9 * (ErgValues(tCompErg.t_amb_veh)(run) + 273.15)) If ErgValues(tCompErg.RunID)(run) = IDHS Then - ErgValues(tCompErg.F_res_ref)(run) = ErgValues(tCompErg.F_res)(run) * f_rollHS * (Crt.rho_air_ref / ErgValues(tCompErg.rho_air)(run)) + ErgValues(tCompErg.F_res_ref)(run) = ErgValues(tCompErg.F_res)(run) * f_rollHS Else - ErgValues(tCompErg.F_res_ref)(run) = ErgValues(tCompErg.F_res)(run) * Crt.rr_corr_factor * (Crt.rho_air_ref / ErgValues(tCompErg.rho_air)(run)) + ErgValues(tCompErg.F_res_ref)(run) = ErgValues(tCompErg.F_res)(run) * Crt.rr_corr_factor End If ErgValues(tCompErg.t_tire)(run) = ErgValues(tCompErg.t_tire)(run) / anz If OptPar(1) Then ErgValues(tCompErg.p_tire)(run) = ErgValues(tCompErg.p_tire)(run) / anz @@ -924,7 +924,7 @@ Module Signal_identification ErgValues(tCompErg.tq_sum_float)(run) = (CalcData(tCompCali.tq_sum_float)(i)) ErgValues(tCompErg.t_float)(run) = (CalcData(tCompCali.t_float)(i)) ErgValues(tCompErg.F_trac)(run) = (CalcData(tCompCali.F_trac)(i)) - ErgValues(tCompErg.v_veh_avg)(run) = (CalcData(tCompCali.v_veh_acc)(i)) + ErgValues(tCompErg.v_veh_acc)(run) = (CalcData(tCompCali.v_veh_acc)(i)) ErgValues(tCompErg.a_veh_avg)(run) = (CalcData(tCompCali.a_veh_avg)(i)) ErgValues(tCompErg.F_acc)(run) = (CalcData(tCompCali.F_acc)(i)) ErgValues(tCompErg.F_grd)(run) = (CalcData(tCompCali.F_grd)(i)) @@ -960,7 +960,7 @@ Module Signal_identification ErgValues(tCompErg.tq_sum_float)(run) = ErgValues(tCompErg.tq_sum_float)(run) / anz ErgValues(tCompErg.t_float)(run) = ErgValues(tCompErg.t_float)(run) / anz ErgValues(tCompErg.F_trac)(run) = ErgValues(tCompErg.F_trac)(run) / anz - ErgValues(tCompErg.v_veh_avg)(run) = ErgValues(tCompErg.v_veh_avg)(run) / anz + ErgValues(tCompErg.v_veh_acc)(run) = ErgValues(tCompErg.v_veh_acc)(run) / anz ErgValues(tCompErg.a_veh_avg)(run) = ErgValues(tCompErg.a_veh_avg)(run) / anz ErgValues(tCompErg.F_acc)(run) = ErgValues(tCompErg.F_acc)(run) / anz ErgValues(tCompErg.F_grd)(run) = ErgValues(tCompErg.F_grd)(run) / anz @@ -976,9 +976,9 @@ Module Signal_identification ErgValues(tCompErg.vp_H2O)(run) = ((ErgValues(tCompErg.rh_stat)(run) / 100) * 611 * 10 ^ ((7.5 * ErgValues(tCompErg.t_amb_stat)(run)) / (237 + ErgValues(tCompErg.t_amb_stat)(run)))) ErgValues(tCompErg.rho_air)(run) = (ErgValues(tCompErg.p_amb_stat)(run) * 100 - ErgValues(tCompErg.vp_H2O)(run)) / (287.05 * (ErgValues(tCompErg.t_amb_veh)(run) + 273.15)) + ErgValues(tCompErg.vp_H2O)(run) / (461.9 * (ErgValues(tCompErg.t_amb_veh)(run) + 273.15)) If ErgValues(tCompErg.RunID)(run) = IDHS Then - ErgValues(tCompErg.F_res_ref)(run) = ErgValues(tCompErg.F_res)(run) * f_rollHS * (Crt.rho_air_ref / ErgValues(tCompErg.rho_air)(run)) + ErgValues(tCompErg.F_res_ref)(run) = ErgValues(tCompErg.F_res)(run) * f_rollHS Else - ErgValues(tCompErg.F_res_ref)(run) = ErgValues(tCompErg.F_res)(run) * Crt.rr_corr_factor * (Crt.rho_air_ref / ErgValues(tCompErg.rho_air)(run)) + ErgValues(tCompErg.F_res_ref)(run) = ErgValues(tCompErg.F_res)(run) * Crt.rr_corr_factor End If ErgValues(tCompErg.t_tire)(run) = ErgValues(tCompErg.t_tire)(run) / anz If OptPar(1) Then ErgValues(tCompErg.p_tire)(run) = ErgValues(tCompErg.p_tire)(run) / anz diff --git a/CSE/Calculation/main_calculation_call.vb b/CSE/Calculation/main_calculation_call.vb index 0000b2e..d8ae83d 100644 --- a/CSE/Calculation/main_calculation_call.vb +++ b/CSE/Calculation/main_calculation_call.vb @@ -150,7 +150,7 @@ Public Module main_calculation_call ' Check if all is valid For i = 0 To ErgValuesReg(tCompErgReg.SecID).Count - 1 If ErgValuesReg(tCompErgReg.valid_t_tire)(i) = 0 Then Job.valid_t_tire = False - If ErgValuesReg(tCompErgReg.RRC_valid)(i) = 0 Then Job.valid_RRC = False + If ErgValuesReg(tCompErgReg.valid_RRC)(i) = 0 Then Job.valid_RRC = False Next i ' Output of the final data diff --git a/CSE/Calculation/sub_linear_regression.vb b/CSE/Calculation/sub_linear_regression.vb index c8b1517..ef896ed 100644 --- a/CSE/Calculation/sub_linear_regression.vb +++ b/CSE/Calculation/sub_linear_regression.vb @@ -14,8 +14,8 @@ Module sub_linear_regression ' Main function for the calculate the regression Public Function fCalcReg(ByVal vehicle As cVehicle) As Boolean ' Declaration - Dim i, j, k, numLS1, numLS2, numHS, num, numT, PosHS(), lauf, t_amb_num As Integer - Dim XLS1_Array(,), XLS2_Array(,), XHS_Array(,), XHS_S(1, 1), YLS1_Array(), YLS2_Array(), YHS_Array(), YHS_S(1) As Double + Dim i, j, numLS1, numLS2, numHS, numHSg, numT, PosHS(), PosHSg(), lauf, t_amb_num As Integer + Dim XLS1_Array(,), XLS2_Array(,), XHS_Array(,), XHSg_Array(,), XHS_S(1, 1), YLS1_Array(), YLS2_Array(), YHS_Array(), YHSg_Array(), YHS_S(1) As Double Dim XLR(,), YLR(), WFLR(,), F0, F2, F095, F295, R2, Rho_air_LS1, Rho_air_LS2, t_amb_f, t_amb_max_f, t_amb_min_f As Double Dim FirstInLS1, FirstInLS2, FirstInHS, FirstInGes As Boolean Dim EnumStr As tCompErgReg @@ -31,7 +31,7 @@ Module sub_linear_regression t_amb_num = 0 FirstInGes = True ErgValuesReg = New Dictionary(Of tCompErgReg, List(Of Double)) - Job.CdxA = 0 + Job.CdxAß = 0 Job.CdxA0 = 0 Job.CdxA0_opt2 = 0 Job.delta_CdxA = 0 @@ -52,6 +52,7 @@ Module sub_linear_regression numLS1 = 0 numLS2 = 0 numHS = 0 + numHSg = 0 lauf += 1 Rho_air_LS1 = 0 Rho_air_LS2 = 0 @@ -65,12 +66,15 @@ Module sub_linear_regression ReDim YLS2_Array(0) ReDim YHS_Array(0) ReDim PosHS(0) + ReDim PosHSg(0) + ReDim XHSg_Array(1, 0) + ReDim YHSg_Array(0) ' Save the SecID and DirID in result dictionary ErgValuesReg(tCompErgReg.SecID).Add(ErgValuesComp(tCompErg.SecID)(i)) ErgValuesReg(tCompErgReg.DirID).Add(ErgValuesComp(tCompErg.DirID)(i)) - ErgValuesReg(tCompErgReg.rho_air_LS).Add(0) - ErgValuesReg(tCompErgReg.beta_abs_HS).Add(0) + ErgValuesReg(tCompErgReg.beta_ave_singleMS).Add(0) + ErgValuesReg(tCompErgReg.CdxAß_ave_singleMS).Add(0) ' Go through all measurements For j = i To ErgValuesComp(tCompErg.SecID).Count - 1 @@ -95,14 +99,13 @@ Module sub_linear_regression ' Add values for t_tire_min/max and rho_air into the result dictionary If FirstInLS1 Then - ErgValuesReg(tCompErgReg.t_tire_LS_max).Add(ErgValuesComp(tCompErg.t_tire)(j)) - ErgValuesReg(tCompErgReg.t_tire_LS_min).Add(ErgValuesComp(tCompErg.t_tire)(j)) + ErgValuesReg(tCompErgReg.t_tire_ave_LS_max).Add(ErgValuesComp(tCompErg.t_tire)(j)) + ErgValuesReg(tCompErgReg.t_tire_ave_LS_min).Add(ErgValuesComp(tCompErg.t_tire)(j)) FirstInLS1 = False Else - If ErgValuesReg(tCompErgReg.t_tire_LS_max)(lauf) < ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_LS_max)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) - If ErgValuesReg(tCompErgReg.t_tire_LS_min)(lauf) > ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_LS_min)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) + If ErgValuesReg(tCompErgReg.t_tire_ave_LS_max)(lauf) < ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_ave_LS_max)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) + If ErgValuesReg(tCompErgReg.t_tire_ave_LS_min)(lauf) > ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_ave_LS_min)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) End If - ErgValuesReg(tCompErgReg.rho_air_LS)(lauf) += ErgValuesComp(tCompErg.rho_air)(j) Rho_air_LS1 += ErgValuesComp(tCompErg.rho_air)(j) Case IDLS2 ' Initialise @@ -117,14 +120,13 @@ Module sub_linear_regression ' Add values for t_tire_min/max and rho_air into the result dictionary If FirstInLS2 Then - ErgValuesReg(tCompErgReg.t_tire_LS_max).Add(ErgValuesComp(tCompErg.t_tire)(j)) - ErgValuesReg(tCompErgReg.t_tire_LS_min).Add(ErgValuesComp(tCompErg.t_tire)(j)) + ErgValuesReg(tCompErgReg.t_tire_ave_LS_max).Add(ErgValuesComp(tCompErg.t_tire)(j)) + ErgValuesReg(tCompErgReg.t_tire_ave_LS_min).Add(ErgValuesComp(tCompErg.t_tire)(j)) FirstInLS2 = False Else - If ErgValuesReg(tCompErgReg.t_tire_LS_max)(lauf) < ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_LS_max)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) - If ErgValuesReg(tCompErgReg.t_tire_LS_min)(lauf) > ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_LS_min)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) + If ErgValuesReg(tCompErgReg.t_tire_ave_LS_max)(lauf) < ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_ave_LS_max)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) + If ErgValuesReg(tCompErgReg.t_tire_ave_LS_min)(lauf) > ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_ave_LS_min)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) End If - ErgValuesReg(tCompErgReg.rho_air_LS)(lauf) += ErgValuesComp(tCompErg.rho_air)(j) Rho_air_LS2 += ErgValuesComp(tCompErg.rho_air)(j) Case IDHS ' Initialise @@ -141,14 +143,14 @@ Module sub_linear_regression ' Add values for t_tire_min/max and beta_HS into the result dictionary If FirstInHS Then - ErgValuesReg(tCompErgReg.t_tire_HS_max).Add(ErgValuesComp(tCompErg.t_tire)(j)) - ErgValuesReg(tCompErgReg.t_tire_HS_min).Add(ErgValuesComp(tCompErg.t_tire)(j)) + ErgValuesReg(tCompErgReg.t_tire_ave_HS_max).Add(ErgValuesComp(tCompErg.t_tire)(j)) + ErgValuesReg(tCompErgReg.t_tire_ave_HS_min).Add(ErgValuesComp(tCompErg.t_tire)(j)) FirstInHS = False Else - If ErgValuesReg(tCompErgReg.t_tire_HS_max)(lauf) < ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_HS_max)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) - If ErgValuesReg(tCompErgReg.t_tire_HS_min)(lauf) > ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_HS_min)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) + If ErgValuesReg(tCompErgReg.t_tire_ave_HS_max)(lauf) < ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_ave_HS_max)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) + If ErgValuesReg(tCompErgReg.t_tire_ave_HS_min)(lauf) > ErgValuesComp(tCompErg.t_tire)(j) Then ErgValuesReg(tCompErgReg.t_tire_ave_HS_min)(lauf) = ErgValuesComp(tCompErg.t_tire)(j) End If - ErgValuesReg(tCompErgReg.beta_abs_HS)(lauf) += ErgValuesComp(tCompErg.beta_abs)(j) + ErgValuesReg(tCompErgReg.beta_ave_singleMS)(lauf) += ErgValuesComp(tCompErg.beta_abs)(j) End Select ' Add values for tempreture into the result dictionary @@ -163,6 +165,21 @@ Module sub_linear_regression If t_amb_min_f > ErgValuesComp(tCompErg.t_amb_veh)(j) Then t_amb_min_f = ErgValuesComp(tCompErg.t_amb_veh)(j) End If End If + + ' Extra calculation with not used values + If ErgValuesComp(tCompErg.RunID)(j) = IDHS Then + ' Initialise + ReDim Preserve XHSg_Array(1, UBound(XHSg_Array, 2) + 1) + ReDim Preserve YHSg_Array(UBound(YHSg_Array) + 1) + ReDim Preserve PosHSg(UBound(PosHSg) + 1) + numHSg += 1 + + ' Get the values + PosHSg(UBound(PosHSg)) = j + XHSg_Array(0, UBound(XHSg_Array, 2)) = 1 + XHSg_Array(1, UBound(XHSg_Array, 2)) = ErgValuesComp(tCompErg.v_air_sq)(j) + YHSg_Array(UBound(YHSg_Array)) = ErgValuesComp(tCompErg.F_res_ref)(j) + End If End If Next j @@ -188,42 +205,6 @@ Module sub_linear_regression End If Next j - '***** Calculate the linear regression for every detected HS - ' Redeminisionate the arrays - num = 1 - numT = numLS1 + numLS2 + 1 - ReDim XLR(1, numT) - ReDim YLR(numT) - ReDim WFLR(numT, numT) - - ' Initialise - For j = 1 To numT - For k = 1 To numT - WFLR(j, k) = 0 - Next k - Next j - - ' Start the calculation for every HS - For j = 1 To numHS - ' Fill the sigle arrays - XHS_S(0, 1) = 1 - XHS_S(1, 1) = XHS_Array(1, j) - YHS_S(1) = YHS_Array(j) - - ' Fill the linear regression arrays - fFillArray(XLS1_Array, XLS2_Array, YLS1_Array, YLS2_Array, XHS_S, YHS_S, XLR, YLR, WFLR) - - ' Do the linear regression - linear_regression(XLR, YLR, WFLR, F0, F2, F095, F295, R2) - - ' Save the values - ErgValuesComp(tCompErg.F0_ref_singleDS)(PosHS(j)) = F0 - ErgValuesComp(tCompErg.F0_singleDS)(PosHS(j)) = F0 * (ErgValuesComp(tCompErg.rho_air)(PosHS(j)) / Crt.rho_air_ref) - ErgValuesComp(tCompErg.F2_ref_singleDS)(PosHS(j)) = F2 - ErgValuesComp(tCompErg.RRC_singleDS)(PosHS(j)) = (ErgValuesComp(tCompErg.F0_singleDS)(PosHS(j)) / (vehicle.testMass * 9.81)) * 1000 - ErgValuesComp(tCompErg.CdxA_singleDS)(PosHS(j)) = 2 * F2 / Crt.rho_air_ref - Next j - '***** Calculate the linear regression for LS1 ' Redeminisionate the arrays numT = numLS1 + numHS @@ -238,10 +219,9 @@ Module sub_linear_regression linear_regression(XLR, YLR, WFLR, F0, F2, F095, F295, R2) ' Save the values - ErgValuesReg(tCompErgReg.F0_LS1_ref).Add(F0) - ErgValuesReg(tCompErgReg.F0_LS1).Add(F0 * (Rho_air_LS1 / numLS1) / Crt.rho_air_ref) - ErgValuesReg(tCompErgReg.F2_LS1_ref).Add(F2) - ErgValuesReg(tCompErgReg.RRC_LS1).Add((ErgValuesReg(tCompErgReg.F0_LS1)(lauf) / (vehicle.testMass * 9.81)) * 1000) + ErgValuesReg(tCompErgReg.F0_singleMS_LS1).Add(F0) + ErgValuesReg(tCompErgReg.F2_singleMS_LS1).Add(F2) + ErgValuesReg(tCompErgReg.RRC_singleMS_LS1).Add((ErgValuesReg(tCompErgReg.F0_singleMS_LS1)(lauf) / (vehicle.testMass * 9.81)) * 1000) '***** Calculate the linear regression for LS2 ' Redeminisionate the arrays @@ -257,15 +237,14 @@ Module sub_linear_regression linear_regression(XLR, YLR, WFLR, F0, F2, F095, F295, R2) ' Save the values - ErgValuesReg(tCompErgReg.F0_LS2_ref).Add(F0) - ErgValuesReg(tCompErgReg.F0_LS2).Add(F0 * (Rho_air_LS2 / numLS2) / Crt.rho_air_ref) - ErgValuesReg(tCompErgReg.F2_LS2_ref).Add(F2) - ErgValuesReg(tCompErgReg.RRC_LS2).Add((ErgValuesReg(tCompErgReg.F0_LS2)(lauf) / (vehicle.testMass * 9.81)) * 1000) + ErgValuesReg(tCompErgReg.F0_singleMS_LS2).Add(F0) + ErgValuesReg(tCompErgReg.F2_singleMS_LS2).Add(F2) + ErgValuesReg(tCompErgReg.RRC_singleMS_LS2).Add((ErgValuesReg(tCompErgReg.F0_singleMS_LS2)(lauf) / (vehicle.testMass * 9.81)) * 1000) - If Math.Abs(ErgValuesReg(tCompErgReg.RRC_LS1)(lauf) - ErgValuesReg(tCompErgReg.RRC_LS2)(lauf)) > Crt.delta_rr_corr_max Then - ErgValuesReg(tCompErgReg.RRC_valid).Add(0) + If Math.Abs(ErgValuesReg(tCompErgReg.RRC_singleMS_LS1)(lauf) - ErgValuesReg(tCompErgReg.RRC_singleMS_LS2)(lauf)) > Crt.delta_rr_corr_max Then + ErgValuesReg(tCompErgReg.valid_RRC).Add(0) Else - ErgValuesReg(tCompErgReg.RRC_valid).Add(1) + ErgValuesReg(tCompErgReg.valid_RRC).Add(1) End If '***** Calculate the linear regression for the MS @@ -282,53 +261,60 @@ Module sub_linear_regression linear_regression(XLR, YLR, WFLR, F0, F2, F095, F295, R2) ' Save the values - ErgValuesReg(tCompErgReg.F0_ref).Add(F0) - ErgValuesReg(tCompErgReg.F2_ref).Add(F2) - ErgValuesReg(tCompErgReg.F0_95).Add(F095) - ErgValuesReg(tCompErgReg.F2_95).Add(F295) - ErgValuesReg(tCompErgReg.R_sq).Add(R2) + ErgValuesReg(tCompErgReg.F0_singleMS).Add(F0) + ErgValuesReg(tCompErgReg.F2_singleMS).Add(F2) + ErgValuesReg(tCompErgReg.F0_singleMS_95).Add(F095) + ErgValuesReg(tCompErgReg.F2_singleMS_95).Add(F295) + ErgValuesReg(tCompErgReg.R_sq_singleMS).Add(R2) + + ' Calculate CdxAß_singleDS for each HS + For j = 1 To numHSg + ErgValuesComp(tCompErg.CdxAß_singleDS)(PosHSg(j)) = 2 * (YHSg_Array(j) - F0) / (XHSg_Array(1, j) * ErgValuesComp(tCompErg.rho_air)(PosHSg(j))) + ' Summarise only CdxAß_singleDS values that are used + If ErgValuesComp(tCompErg.used)(PosHSg(j)) = 1 Then + ErgValuesReg(tCompErgReg.CdxAß_ave_singleMS)(lauf) += ErgValuesComp(tCompErg.CdxAß_singleDS)(PosHSg(j)) + End If + Next j + ErgValuesReg(tCompErgReg.CdxAß_ave_singleMS)(lauf) = ErgValuesReg(tCompErgReg.CdxAß_ave_singleMS)(lauf) / numHS ' Calculate additional values - ErgValuesReg(tCompErgReg.rho_air_LS)(lauf) = ErgValuesReg(tCompErgReg.rho_air_LS)(lauf) / (numLS1 + numLS2) - ErgValuesReg(tCompErgReg.beta_abs_HS)(lauf) = ErgValuesReg(tCompErgReg.beta_abs_HS)(lauf) / (numHS) - ErgValuesReg(tCompErgReg.F0).Add(F0 * (ErgValuesReg(tCompErgReg.rho_air_LS)(lauf) / Crt.rho_air_ref)) - ErgValuesReg(tCompErgReg.RRC).Add(ErgValuesReg(tCompErgReg.F0)(lauf) / (vehicle.testMass * 9.81) * 1000) - ErgValuesReg(tCompErgReg.CdxA).Add(2 * F2 / Crt.rho_air_ref) - ErgValuesReg(tCompErgReg.delta_CdxA).Add(fCalcGenShp(ErgValuesReg(tCompErgReg.beta_abs_HS)(lauf), vehicle)) - ErgValuesReg(tCompErgReg.CdxA0).Add(ErgValuesReg(tCompErgReg.CdxA)(lauf) - ErgValuesReg(tCompErgReg.delta_CdxA)(lauf)) - If ErgValuesReg(tCompErgReg.t_tire_LS_min)(lauf) < (ErgValuesReg(tCompErgReg.t_tire_HS_max)(lauf) - Crt.delta_t_tyre_max) Or _ - ErgValuesReg(tCompErgReg.t_tire_LS_min)(lauf) < (ErgValuesReg(tCompErgReg.t_tire_LS_max)(lauf) - Crt.delta_t_tyre_max) Or _ - ErgValuesReg(tCompErgReg.t_tire_HS_min)(lauf) < (ErgValuesReg(tCompErgReg.t_tire_HS_max)(lauf) - Crt.delta_t_tyre_max) Then + ErgValuesReg(tCompErgReg.beta_ave_singleMS)(lauf) = ErgValuesReg(tCompErgReg.beta_ave_singleMS)(lauf) / (numHS) + ErgValuesReg(tCompErgReg.RRC_singleMS).Add(ErgValuesReg(tCompErgReg.F0_singleMS)(lauf) / (vehicle.testMass * 9.81) * 1000) + ErgValuesReg(tCompErgReg.delta_CdxA_singleMS).Add(fCalcGenShp(ErgValuesReg(tCompErgReg.beta_ave_singleMS)(lauf), vehicle)) + ErgValuesReg(tCompErgReg.CdxA0_singleMS).Add(ErgValuesReg(tCompErgReg.CdxAß_ave_singleMS)(lauf) - ErgValuesReg(tCompErgReg.delta_CdxA_singleMS)(lauf)) + + If ErgValuesReg(tCompErgReg.t_tire_ave_LS_min)(lauf) < (ErgValuesReg(tCompErgReg.t_tire_ave_HS_max)(lauf) - Crt.delta_t_tyre_max) Or _ + ErgValuesReg(tCompErgReg.t_tire_ave_LS_min)(lauf) < (ErgValuesReg(tCompErgReg.t_tire_ave_LS_max)(lauf) - Crt.delta_t_tyre_max) Or _ + ErgValuesReg(tCompErgReg.t_tire_ave_HS_min)(lauf) < (ErgValuesReg(tCompErgReg.t_tire_ave_HS_max)(lauf) - Crt.delta_t_tyre_max) Then ErgValuesReg(tCompErgReg.valid_t_tire).Add(0) Else ErgValuesReg(tCompErgReg.valid_t_tire).Add(1) End If ' Summerise for the endresults - Job.CdxA += ErgValuesReg(tCompErgReg.CdxA)(lauf) - Job.beta += ErgValuesReg(tCompErgReg.beta_abs_HS)(lauf) - Job.CdxA0_opt2 += ErgValuesReg(tCompErgReg.CdxA0)(lauf) + Job.CdxAß += ErgValuesReg(tCompErgReg.CdxAß_ave_singleMS)(lauf) + Job.beta += ErgValuesReg(tCompErgReg.beta_ave_singleMS)(lauf) + Job.CdxA0_opt2 += ErgValuesReg(tCompErgReg.CdxA0_singleMS)(lauf) Else ' Clear the data in the result dictionary ErgValuesReg(tCompErgReg.SecID).RemoveAt(lauf) ErgValuesReg(tCompErgReg.DirID).RemoveAt(lauf) - ErgValuesReg(tCompErgReg.rho_air_LS).RemoveAt(lauf) - ErgValuesReg(tCompErgReg.beta_abs_HS).RemoveAt(lauf) - ErgValuesReg(tCompErgReg.t_tire_HS_max).RemoveAt(lauf) - ErgValuesReg(tCompErgReg.t_tire_HS_min).RemoveAt(lauf) - ErgValuesReg(tCompErgReg.t_tire_LS_max).RemoveAt(lauf) - ErgValuesReg(tCompErgReg.t_tire_LS_min).RemoveAt(lauf) + ErgValuesReg(tCompErgReg.beta_ave_singleMS).RemoveAt(lauf) + ErgValuesReg(tCompErgReg.t_tire_ave_HS_max).RemoveAt(lauf) + ErgValuesReg(tCompErgReg.t_tire_ave_HS_min).RemoveAt(lauf) + ErgValuesReg(tCompErgReg.t_tire_ave_LS_max).RemoveAt(lauf) + ErgValuesReg(tCompErgReg.t_tire_ave_LS_min).RemoveAt(lauf) lauf -= 1 End If End If Next i ' Calculate the Endresults - Job.CdxA = Job.CdxA / (lauf + 1) + Job.CdxAß = Job.CdxAß / (lauf + 1) Job.beta = Job.beta / (lauf + 1) Job.delta_CdxA = fCalcGenShp(Job.beta, vehicle) Job.CdxA0_opt2 = Job.CdxA0_opt2 / (lauf + 1) - Job.CdxA0 = Job.CdxA - Job.delta_CdxA + Job.CdxA0 = Job.CdxAß - Job.delta_CdxA ' Test validation t_amb_f = t_amb_f / t_amb_num diff --git a/CSE/GUI/F_Main.vb b/CSE/GUI/F_Main.vb index f7d2840..16cfdc8 100644 --- a/CSE/GUI/F_Main.vb +++ b/CSE/GUI/F_Main.vb @@ -967,7 +967,8 @@ Public Class F_Main If Not IsNothing(JobFile) Then logme(8, False, format("The Job-file({0}) has changed because of criteria update", JobFile)) End If - Crt.accel_correction = True + 'Crt.accel_correction = True + 'Crt.hz_out = 1 UI_PopulateFromCriteria() End Sub diff --git a/CSE/IO/cCriteria.vb b/CSE/IO/cCriteria.vb index 2021db7..4213256 100644 --- a/CSE/IO/cCriteria.vb +++ b/CSE/IO/cCriteria.vb @@ -301,9 +301,9 @@ Public Class cCriteria #Region "json props" ' Processing params Public rr_corr_factor As Double - Public accel_correction As Boolean = True + Public accel_correction As Boolean '= True Public gradient_correction As Boolean = False - Public hz_out As Integer = 1 + Public hz_out As Integer '= 1 Public acc_corr_avg As Single Public dist_float As Single Public rho_air_ref As Single diff --git a/CSE/IO/cJob.vb b/CSE/IO/cJob.vb index 16f6671..ef51b26 100644 --- a/CSE/IO/cJob.vb +++ b/CSE/IO/cJob.vb @@ -40,7 +40,7 @@ Public Class cJob b.fa_pe = 1 b.fv_pe = 0 b.beta_ame = 0 - b.CdxA = 0 + b.CdxAß = 0 b.beta = 0 b.delta_CdxA = 0 b.CdxA0 = 0 @@ -122,7 +122,7 @@ Public Class cJob 'default': 0, "units": "°", }, - "CdxA": { + "CdxAß": { "type": "number", "description": "Average CdxA before yaw angle correction", 'default': 0, @@ -198,7 +198,7 @@ Public Class cJob Job.beta_ame = 0 End If - Job.CdxA = 0 + Job.CdxAß = 0 Job.beta = 0 Job.delta_CdxA = 0 Job.CdxA0 = 0 @@ -242,7 +242,7 @@ Public Class cJob Public fa_pe As Double Public fv_pe As Double Public beta_ame As Double - Public CdxA As Double + Public CdxAß As Double Public beta As Double Public delta_CdxA As Double Public CdxA0 As Double @@ -259,7 +259,7 @@ Public Class cJob b.fa_pe = Math.Round(fa_pe, 3) b.fv_pe = Math.Round(fv_pe, 3) b.beta_ame = Math.Round(beta_ame, 2) - b.CdxA = Math.Round(CdxA, 5) + b.CdxAß = Math.Round(CdxAß, 5) b.beta = Math.Round(beta, 5) b.delta_CdxA = Math.Round(delta_CdxA, 5) b.CdxA0 = Math.Round(CdxA0, 5) diff --git a/CSE/IO/output.vb b/CSE/IO/output.vb index f57ed14..9d8ef0b 100644 --- a/CSE/IO/output.vb +++ b/CSE/IO/output.vb @@ -233,7 +233,7 @@ Module output FileOut.WriteLine("# fv_pe:", Job.fv_pe, "[-] calibration factor for air speed (position error)") FileOut.WriteLine("# fa_pe:", Job.fa_pe, "[-] position error correction factor for measured air inflow angle (beta)") FileOut.WriteLine("# beta_ame:", Job.beta_ame, "[°] calibration factor for beta (misalignment)") - FileOut.WriteLine("# CdxA:", Job.CdxA, "[m²] average CdxA before yaw angle correction") + FileOut.WriteLine("# CdxA(ß):", Job.CdxAß, "[m²] average CdxA before yaw angle correction") FileOut.WriteLine("# beta:", Job.beta, "[°] average absolute yaw angle from high speed tests") FileOut.WriteLine("# delta_CdxA:", Job.delta_CdxA, "[m²] correction of CdxA for yaw angle") FileOut.WriteLine("# CdxA(0):", Job.CdxA0, "[m²] average CdxA for zero yaw angle") @@ -418,7 +418,7 @@ Module output AddToErg(tCompErg.v_veh_1s, fCompName(tCompErg.v_veh_1s), fCompUnit(tCompErg.v_veh_1s), "ErgValues") AddToErg(tCompErg.v_veh_1s_max, fCompName(tCompErg.v_veh_1s_max), fCompUnit(tCompErg.v_veh_1s_max), "ErgValues") AddToErg(tCompErg.v_veh_1s_min, fCompName(tCompErg.v_veh_1s_min), fCompUnit(tCompErg.v_veh_1s_min), "ErgValues") - AddToErg(tCompErg.v_veh_avg, fCompName(tCompErg.v_veh_avg), fCompUnit(tCompErg.v_veh_avg), "ErgValues") + AddToErg(tCompErg.v_veh_acc, fCompName(tCompErg.v_veh_acc), fCompUnit(tCompErg.v_veh_acc), "ErgValues") AddToErg(tCompErg.a_veh_avg, fCompName(tCompErg.a_veh_avg), fCompUnit(tCompErg.a_veh_avg), "ErgValues") AddToErg(tCompErg.v_veh_float, fCompName(tCompErg.v_veh_float), fCompUnit(tCompErg.v_veh_float), "ErgValues") AddToErg(tCompErg.v_veh_float_max, fCompName(tCompErg.v_veh_float_max), fCompUnit(tCompErg.v_veh_float_max), "ErgValues") @@ -431,11 +431,7 @@ Module output AddToErg(tCompErg.rho_air, fCompName(tCompErg.rho_air), fCompUnit(tCompErg.rho_air), "ErgValues") AddToErg(tCompErg.t_tire, fCompName(tCompErg.t_tire), fCompUnit(tCompErg.t_tire), "ErgValues") AddToErg(tCompErg.p_tire, fCompName(tCompErg.p_tire), fCompUnit(tCompErg.p_tire), "ErgValues") - AddToErg(tCompErg.F0_ref_singleDS, fCompName(tCompErg.F0_ref_singleDS), fCompUnit(tCompErg.F0_ref_singleDS), "ErgValues") - AddToErg(tCompErg.F2_ref_singleDS, fCompName(tCompErg.F2_ref_singleDS), fCompUnit(tCompErg.F2_ref_singleDS), "ErgValues") - AddToErg(tCompErg.F0_singleDS, fCompName(tCompErg.F0_singleDS), fCompUnit(tCompErg.F0_singleDS), "ErgValues") - AddToErg(tCompErg.CdxA_singleDS, fCompName(tCompErg.CdxA_singleDS), fCompUnit(tCompErg.CdxA_singleDS), "ErgValues") - AddToErg(tCompErg.RRC_singleDS, fCompName(tCompErg.RRC_singleDS), fCompUnit(tCompErg.RRC_singleDS), "ErgValues") + AddToErg(tCompErg.CdxAß_singleDS, fCompName(tCompErg.CdxAß_singleDS), fCompUnit(tCompErg.CdxAß_singleDS), "ErgValues") End If ' Undefined input data @@ -455,28 +451,24 @@ Module output ' Result data AddToErg(tCompErgReg.SecID, fCompName(tCompErgReg.SecID), fCompUnit(tCompErgReg.SecID), "ErgValuesReg") AddToErg(tCompErgReg.DirID, fCompName(tCompErgReg.DirID), fCompUnit(tCompErgReg.DirID), "ErgValuesReg") - AddToErg(tCompErgReg.F2_ref, fCompName(tCompErgReg.F2_ref), fCompUnit(tCompErgReg.F2_ref), "ErgValuesReg") - AddToErg(tCompErgReg.F2_LS1_ref, fCompName(tCompErgReg.F2_LS1_ref), fCompUnit(tCompErgReg.F2_LS1_ref), "ErgValuesReg") - AddToErg(tCompErgReg.F2_LS2_ref, fCompName(tCompErgReg.F2_LS2_ref), fCompUnit(tCompErgReg.F2_LS2_ref), "ErgValuesReg") - AddToErg(tCompErgReg.F0_ref, fCompName(tCompErgReg.F0_ref), fCompUnit(tCompErgReg.F0_ref), "ErgValuesReg") - AddToErg(tCompErgReg.F0, fCompName(tCompErgReg.F0), fCompUnit(tCompErgReg.F0), "ErgValuesReg") - AddToErg(tCompErgReg.F0_LS1_ref, fCompName(tCompErgReg.F0_LS1_ref), fCompUnit(tCompErgReg.F0_LS1_ref), "ErgValuesReg") - AddToErg(tCompErgReg.F0_LS1, fCompName(tCompErgReg.F0_LS1), fCompUnit(tCompErgReg.F0_LS1), "ErgValuesReg") - AddToErg(tCompErgReg.F0_LS2_ref, fCompName(tCompErgReg.F0_LS2_ref), fCompUnit(tCompErgReg.F0_LS2_ref), "ErgValuesReg") - AddToErg(tCompErgReg.F0_LS2, fCompName(tCompErgReg.F0_LS2), fCompUnit(tCompErgReg.F0_LS2), "ErgValuesReg") - AddToErg(tCompErgReg.CdxA, fCompName(tCompErgReg.CdxA), fCompUnit(tCompErgReg.CdxA), "ErgValuesReg") - AddToErg(tCompErgReg.CdxA0, fCompName(tCompErgReg.CdxA0), fCompUnit(tCompErgReg.CdxA0), "ErgValuesReg") - AddToErg(tCompErgReg.delta_CdxA, fCompName(tCompErgReg.delta_CdxA), fCompUnit(tCompErgReg.delta_CdxA), "ErgValuesReg") - AddToErg(tCompErgReg.beta_abs_HS, fCompName(tCompErgReg.beta_abs_HS), fCompUnit(tCompErgReg.beta_abs_HS), "ErgValuesReg") - AddToErg(tCompErgReg.rho_air_LS, fCompName(tCompErgReg.rho_air_LS), fCompUnit(tCompErgReg.rho_air_LS), "ErgValuesReg") - AddToErg(tCompErgReg.RRC, fCompName(tCompErgReg.RRC), fCompUnit(tCompErgReg.RRC), "ErgValuesReg") - AddToErg(tCompErgReg.RRC_LS1, fCompName(tCompErgReg.RRC_LS1), fCompUnit(tCompErgReg.RRC_LS1), "ErgValuesReg") - AddToErg(tCompErgReg.RRC_LS2, fCompName(tCompErgReg.RRC_LS2), fCompUnit(tCompErgReg.RRC_LS2), "ErgValuesReg") - AddToErg(tCompErgReg.RRC_valid, fCompName(tCompErgReg.RRC_valid), fCompUnit(tCompErgReg.RRC_valid), "ErgValuesReg") - AddToErg(tCompErgReg.t_tire_LS_min, fCompName(tCompErgReg.t_tire_LS_min), fCompUnit(tCompErgReg.t_tire_LS_min), "ErgValuesReg") - AddToErg(tCompErgReg.t_tire_LS_max, fCompName(tCompErgReg.t_tire_LS_max), fCompUnit(tCompErgReg.t_tire_LS_max), "ErgValuesReg") - AddToErg(tCompErgReg.t_tire_HS_min, fCompName(tCompErgReg.t_tire_HS_min), fCompUnit(tCompErgReg.t_tire_HS_min), "ErgValuesReg") - AddToErg(tCompErgReg.t_tire_HS_max, fCompName(tCompErgReg.t_tire_HS_max), fCompUnit(tCompErgReg.t_tire_HS_max), "ErgValuesReg") + AddToErg(tCompErgReg.F0_singleMS, fCompName(tCompErgReg.F0_singleMS), fCompUnit(tCompErgReg.F0_singleMS), "ErgValuesReg") + AddToErg(tCompErgReg.F0_singleMS_LS1, fCompName(tCompErgReg.F0_singleMS_LS1), fCompUnit(tCompErgReg.F0_singleMS_LS1), "ErgValuesReg") + AddToErg(tCompErgReg.F0_singleMS_LS2, fCompName(tCompErgReg.F0_singleMS_LS2), fCompUnit(tCompErgReg.F0_singleMS_LS2), "ErgValuesReg") + AddToErg(tCompErgReg.CdxAß_ave_singleMS, fCompName(tCompErgReg.CdxAß_ave_singleMS), fCompUnit(tCompErgReg.CdxAß_ave_singleMS), "ErgValuesReg") + AddToErg(tCompErgReg.CdxA0_singleMS, fCompName(tCompErgReg.CdxA0_singleMS), fCompUnit(tCompErgReg.CdxA0_singleMS), "ErgValuesReg") + AddToErg(tCompErgReg.delta_CdxA_singleMS, fCompName(tCompErgReg.delta_CdxA_singleMS), fCompUnit(tCompErgReg.delta_CdxA_singleMS), "ErgValuesReg") + AddToErg(tCompErgReg.beta_ave_singleMS, fCompName(tCompErgReg.beta_ave_singleMS), fCompUnit(tCompErgReg.beta_ave_singleMS), "ErgValuesReg") + AddToErg(tCompErgReg.RRC_singleMS, fCompName(tCompErgReg.RRC_singleMS), fCompUnit(tCompErgReg.RRC_singleMS), "ErgValuesReg") + AddToErg(tCompErgReg.RRC_singleMS_LS1, fCompName(tCompErgReg.RRC_singleMS_LS1), fCompUnit(tCompErgReg.RRC_singleMS_LS1), "ErgValuesReg") + AddToErg(tCompErgReg.RRC_singleMS_LS2, fCompName(tCompErgReg.RRC_singleMS_LS2), fCompUnit(tCompErgReg.RRC_singleMS_LS2), "ErgValuesReg") + AddToErg(tCompErgReg.valid_RRC, fCompName(tCompErgReg.valid_RRC), fCompUnit(tCompErgReg.valid_RRC), "ErgValuesReg") + AddToErg(tCompErgReg.t_tire_ave_LS_min, fCompName(tCompErgReg.t_tire_ave_LS_min), fCompUnit(tCompErgReg.t_tire_ave_LS_min), "ErgValuesReg") + AddToErg(tCompErgReg.t_tire_ave_LS_max, fCompName(tCompErgReg.t_tire_ave_LS_max), fCompUnit(tCompErgReg.t_tire_ave_LS_max), "ErgValuesReg") + AddToErg(tCompErgReg.t_tire_ave_HS_min, fCompName(tCompErgReg.t_tire_ave_HS_min), fCompUnit(tCompErgReg.t_tire_ave_HS_min), "ErgValuesReg") + AddToErg(tCompErgReg.t_tire_ave_HS_max, fCompName(tCompErgReg.t_tire_ave_HS_max), fCompUnit(tCompErgReg.t_tire_ave_HS_max), "ErgValuesReg") + AddToErg(tCompErgReg.F2_singleMS, fCompName(tCompErgReg.F2_singleMS), fCompUnit(tCompErgReg.F2_singleMS), "ErgValuesReg") + AddToErg(tCompErgReg.F2_singleMS_LS1, fCompName(tCompErgReg.F2_singleMS_LS1), fCompUnit(tCompErgReg.F2_singleMS_LS1), "ErgValuesReg") + AddToErg(tCompErgReg.F2_singleMS_LS2, fCompName(tCompErgReg.F2_singleMS_LS2), fCompUnit(tCompErgReg.F2_singleMS_LS2), "ErgValuesReg") End Sub ' Generate the output sequence for input data diff --git a/Declaration/GenShape.shp b/Declaration/GenShape.shp index 3e48ebf..0a38ced 100644 --- a/Declaration/GenShape.shp +++ b/Declaration/GenShape.shp @@ -1,15 +1,15 @@ -vehclass,0,,1,,2,,3,,4,,4,,5,,6,,7,,8,,9,,9,,10,,11,,12,,13,,14,,15,,16,,17,,21,,22,,23, +vehclass,0,,1,,2,,3,,4,,4,,5,,6,,7,,8,,9,,9,,10,,11,,12,,13,,14,,15,,16,,17,,21,,22,,23, vehicle configuration,0,,0,,0,,0,,0,,1,,1,,0,,0,,1,,0,,1,,0,,0,,1,,0,,1,,0,,0,,0,,0,,0,,0, fape,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1,,1, # Description,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y,X,Y delta_cdxA,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -delta_cdxA,1,0.030606,1,0.030606,1,0.030606,1,0.030606,1,0.030606,1,0.085252,1,0.068729,1,0.030606,1,0.030606,1,0.068729,1,0.030606,1,0.085252,1,0.068729,1,0.030606,1,0.068729,1,0.030606,1,0.068729,1,0.030606,1,0.030606,1,0.030606,1,0.019206,1,0.019206,1,0.019206 -delta_cdxA,2,0.092708,2,0.092708,2,0.092708,2,0.092708,2,0.092708,2,0.290166,2,0.206312,2,0.092708,2,0.092708,2,0.206312,2,0.092708,2,0.290166,2,0.206312,2,0.092708,2,0.206312,2,0.092708,2,0.206312,2,0.092708,2,0.092708,2,0.092708,2,0.074052,2,0.074052,2,0.074052 -delta_cdxA,3,0.18231,3,0.18231,3,0.18231,3,0.18231,3,0.18231,3,0.589854,3,0.399969,3,0.18231,3,0.18231,3,0.399969,3,0.18231,3,0.589854,3,0.399969,3,0.18231,3,0.399969,3,0.18231,3,0.399969,3,0.18231,3,0.18231,3,0.18231,3,0.157998,3,0.157998,3,0.157998 -delta_cdxA,4,0.295416,4,0.295416,4,0.295416,4,0.295416,4,0.295416,4,0.959428,4,0.63692,4,0.295416,4,0.295416,4,0.63692,4,0.295416,4,0.959428,4,0.63692,4,0.295416,4,0.63692,4,0.295416,4,0.63692,4,0.295416,4,0.295416,4,0.295416,4,0.264504,4,0.264504,4,0.264504 -delta_cdxA,5,0.42803,5,0.42803,5,0.42803,5,0.42803,5,0.42803,5,1.374,5,0.904385,5,0.42803,5,0.42803,5,0.904385,5,0.42803,5,1.374,5,0.904385,5,0.42803,5,0.904385,5,0.42803,5,0.904385,5,0.42803,5,0.42803,5,0.42803,5,0.38703,5,0.38703,5,0.38703 -delta_cdxA,6,0.576156,6,0.576156,6,0.576156,6,0.576156,6,0.576156,6,1.808682,6,1.189584,6,0.576156,6,0.576156,6,1.189584,6,0.576156,6,1.808682,6,1.189584,6,0.576156,6,1.189584,6,0.576156,6,1.189584,6,0.576156,6,0.576156,6,0.576156,6,0.519036,6,0.519036,6,0.519036 -delta_cdxA,7,0.735798,7,0.735798,7,0.735798,7,0.735798,7,0.735798,7,2.238586,7,1.479737,7,0.735798,7,0.735798,7,1.479737,7,0.735798,7,2.238586,7,1.479737,7,0.735798,7,1.479737,7,0.735798,7,1.479737,7,0.735798,7,0.735798,7,0.735798,7,0.653982,7,0.653982,7,0.653982 -delta_cdxA,8,0.90296,8,0.90296,8,0.90296,8,0.90296,8,0.90296,8,2.638824,8,1.762064,8,0.90296,8,0.90296,8,1.762064,8,0.90296,8,2.638824,8,1.762064,8,0.90296,8,1.762064,8,0.90296,8,1.762064,8,0.90296,8,0.90296,8,0.90296,8,0.785328,8,0.785328,8,0.785328 -delta_cdxA,9,1.073646,9,1.073646,9,1.073646,9,1.073646,9,1.073646,9,2.984508,9,2.023785,9,1.073646,9,1.073646,9,2.023785,9,1.073646,9,2.984508,9,2.023785,9,1.073646,9,2.023785,9,1.073646,9,2.023785,9,1.073646,9,1.073646,9,1.073646,9,0.906534,9,0.906534,9,0.906534 -delta_cdxA,10,1.24386,10,1.24386,10,1.24386,10,1.24386,10,1.24386,10,3.25075,10,2.25212,10,1.24386,10,1.24386,10,2.25212,10,1.24386,10,3.25075,10,2.25212,10,1.24386,10,2.25212,10,1.24386,10,2.25212,10,1.24386,10,1.24386,10,1.24386,10,1.01106,10,1.01106,10,1.01106 +delta_cdxA,1,0.030606,1,0.030606,1,0.030606,1,0.030606,1,0.030606,1,0.085252,1,0.072237,1,0.030606,1,0.030606,1,0.072237,1,0.030606,1,0.085252,1,0.072237,1,0.030606,1,0.072237,1,0.030606,1,0.072237,1,0.030606,1,0.030606,1,0.030606,1,0.019206,1,0.019206,1,0.019206 +delta_cdxA,2,0.092708,2,0.092708,2,0.092708,2,0.092708,2,0.092708,2,0.290166,2,0.211826,2,0.092708,2,0.092708,2,0.211826,2,0.092708,2,0.290166,2,0.211826,2,0.092708,2,0.211826,2,0.092708,2,0.211826,2,0.092708,2,0.092708,2,0.092708,2,0.074052,2,0.074052,2,0.074052 +delta_cdxA,3,0.18231,3,0.18231,3,0.18231,3,0.18231,3,0.18231,3,0.589854,3,0.407385,3,0.18231,3,0.18231,3,0.407385,3,0.18231,3,0.589854,3,0.407385,3,0.18231,3,0.407385,3,0.18231,3,0.407385,3,0.18231,3,0.18231,3,0.18231,3,0.157998,3,0.157998,3,0.157998 +delta_cdxA,4,0.295416,4,0.295416,4,0.295416,4,0.295416,4,0.295416,4,0.959428,4,0.647532,4,0.295416,4,0.295416,4,0.647532,4,0.295416,4,0.959428,4,0.647532,4,0.295416,4,0.647532,4,0.295416,4,0.647532,4,0.295416,4,0.295416,4,0.295416,4,0.264504,4,0.264504,4,0.264504 +delta_cdxA,5,0.42803,5,0.42803,5,0.42803,5,0.42803,5,0.42803,5,1.374,5,0.920885,5,0.42803,5,0.42803,5,0.920885,5,0.42803,5,1.374,5,0.920885,5,0.42803,5,0.920885,5,0.42803,5,0.920885,5,0.42803,5,0.42803,5,0.42803,5,0.38703,5,0.38703,5,0.38703 +delta_cdxA,6,0.576156,6,0.576156,6,0.576156,6,0.576156,6,0.576156,6,1.808682,6,1.216062,6,0.576156,6,0.576156,6,1.216062,6,0.576156,6,1.808682,6,1.216062,6,0.576156,6,1.216062,6,0.576156,6,1.216062,6,0.576156,6,0.576156,6,0.576156,6,0.519036,6,0.519036,6,0.519036 +delta_cdxA,7,0.735798,7,0.735798,7,0.735798,7,0.735798,7,0.735798,7,2.238586,7,1.521681,7,0.735798,7,0.735798,7,1.521681,7,0.735798,7,2.238586,7,1.521681,7,0.735798,7,1.521681,7,0.735798,7,1.521681,7,0.735798,7,0.735798,7,0.735798,7,0.653982,7,0.653982,7,0.653982 +delta_cdxA,8,0.90296,8,0.90296,8,0.90296,8,0.90296,8,0.90296,8,2.638824,8,1.82636,8,0.90296,8,0.90296,8,1.82636,8,0.90296,8,2.638824,8,1.82636,8,0.90296,8,1.82636,8,0.90296,8,1.82636,8,0.90296,8,0.90296,8,0.90296,8,0.785328,8,0.785328,8,0.785328 +delta_cdxA,9,1.073646,9,1.073646,9,1.073646,9,1.073646,9,1.073646,9,2.984508,9,2.118717,9,1.073646,9,1.073646,9,2.118717,9,1.073646,9,2.984508,9,2.118717,9,1.073646,9,2.118717,9,1.073646,9,2.118717,9,1.073646,9,1.073646,9,1.073646,9,0.906534,9,0.906534,9,0.906534 +delta_cdxA,10,1.24386,10,1.24386,10,1.24386,10,1.24386,10,1.24386,10,3.25075,10,2.38737,10,1.24386,10,1.24386,10,2.38737,10,1.24386,10,3.25075,10,2.38737,10,1.24386,10,2.38737,10,1.24386,10,2.38737,10,1.24386,10,1.24386,10,1.24386,10,1.01106,10,1.01106,10,1.01106 -- GitLab