diff --git a/Drivers/BSP/DataProcess.c b/Drivers/BSP/DataProcess.c index f9c5b9f..1b73c4a 100644 --- a/Drivers/BSP/DataProcess.c +++ b/Drivers/BSP/DataProcess.c @@ -9,29 +9,29 @@ void get_weights_scores_range(GetFeatureValue* feature) { // 填充 weights_normal float weights_normal[ROWS][COLS_NORMAL] = { - {0.02782361153708092f, 0.07425339118419849f, 0.12759042354281214f, 0.12291090933910485f, 0.057825758510349136f}, - {0.027564071230094304f, 0.034914011597243846f, 0.03428079481697248f, 0.01543479395828397f, 0.07718536996417004f}, - {0.019488141538371105f, 0.03279628785143933f, 0.07694254491891732f, 0.010422855733018327f, 0.022348371109245885f}, - {0.30791780437151484f, 0.0433871871689603f, 0.03287291407974492f, 0.22075997995717458f, 0.11441410143843696f}, - {0.041967380936312006f, 0.03073173344712312f, 0.10570414834976417f, 0.038395937926823887f, 0.4457716705304025f}, - {0.08006381221588085f, 0.016748822025924905f, 0.02814835728381258f, 0.06657550807501712f, 8.589391929335013e-15f}, - {0.08219625282668795f, 0.010732292674554226f, 0.030018966581668607f, 0.09360232815172899f, 0.081724331840547f}, - {0.029540427522817107f, 0.04301860142552467f, 0.02658344150030427f, 0.12924826197604972f, 0.012136341727289321f}, - {0.07933570776110352f, 0.014970424884683423f, 0.055678037816256847f, 0.04312882532615478f, 0.01724498153241749f}, - {0.13425223325463498f, 0.20821822793072117f, 0.18170578370731505f, 0.07162196775825218f, 0.05237352825266105f}, - {0.03346582696060625f, 0.031537897016211264f, 0.07854916838700497f, 0.038058057152586464f, 0.018421685430336208f}, - {0.02450787860501228f, 0.020163834961829358f, 0.032592734764566145f, 0.027770217521932265f, 0.06720024464681389f}, - {0.02270181024144438f, 0.151882044343984f, 0.05846495235235432f, 0.0692621315241782f, 0.03335361501730471f}, - {0.02469783116319416f, 0.24075458769337896f, 0.09324354614973776f, 0.04024389436146122f, 8.589391929335013e-15f}, - {0.0644772098352455f, 0.04589065579422297f, 0.03762418574876846f, 0.012564331238233306f, 8.589391929335013e-15f} + {0.02536112373147522f,0.05512614321141711f,0.14267535646902674f,0.16133346206755558f,0.10950333816620461f}, + {0.022501814070676942f,0.04732276804576742f,0.04194724344174091f,0.02621574442760558f,0.047215370581991545f}, + {0.018003586497350618f,0.0431656287153646f,0.07865669397927093f,0.017026200202278845f,0.003652478376425392f}, + {0.32024982967117427f,0.035535672541306684f,0.031030858413814488f,0.24429833563710904f,0.09967948230006361f}, + {0.029334689721561346f,0.02969550083218594f,0.09925900579103232f,0.029629006919347025f,0.4357667452203222f}, + {0.05787595533854885f,0.01554478121686156f,0.028520717142108763f,0.07200373575215642f,0.0006793460069581621f}, + {0.11164004553402096f,0.021488846081792058f,0.027015323736423267f,0.06835601650464118f,0.06507896606999451f}, + {0.03512378851112017f,0.04353279811744198f,0.02353244436926462f,0.11985817699670917f,0.026400101174232783f}, + {0.0679031765133709f,0.015229294191235638f,0.02114050815724666f,0.047639082979661976f,0.04478038713658755f}, + {0.1406890147631353f,0.1880250839886159f,0.20847554840928026f,0.0810319935793325f,0.04348556994313417f}, + {0.03156489452065363f,0.022497648211455456f,0.07162434867943443f,0.035050436098907636f,0.013979034047182124f}, + {0.016102335088496025f,0.015524545028903453f,0.0472261768209504f,0.024201430458576385f,0.05320423374249968f}, + {0.02532395637816995f,0.13180297364581464f,0.05950058091445133f,0.0459745429704959f,0.031178515883672587f}, + {0.02299058880568741f,0.2719675224112871f,0.09280615745629113f,0.015702128841647265f,0.008980547313484886f}, + {0.07533520085455829f,0.06354079376055055f,0.026589036219663745f,0.011679706563975762f,0.01641588403724634f} }; // 填充 weights_abnormal // 填充标准分数 - float std_scores_normal[COLS_NORMAL] = { 4.3300748832172875f,1.0124176131894556f,1.2331122890852892f,2.2906345596071116f,1.8271316432346785f }; + float std_scores_normal[COLS_NORMAL] = {4.426009220352611f,1.0100249366124394f,1.229524185950373f,2.5243247379778886f,1.8966734702247467f}; // 填充范围值 - float range_values[COLS_NORMAL] = { 0.14035106713875936f,0.07188706493959258f,0.34388788541653376f,0.6280178217431671f,0.30525313799525955f }; + float range_values[COLS_NORMAL] = {0.14035106713875936f,0.07188706493959258f,0.34388788541653376f,0.6280178217431671f,0.30525313799525955f}; // 填充最小和最大值 float min_values[ROWS] = { @@ -48,7 +48,8 @@ void get_weights_scores_range(GetFeatureValue* feature) 0.0f, // 转速幅度最小值 0.0f, // 转速方差最小值 0.0f, // X振动严重性最小值 - 0.0f // Y振动严重性最小值 + 0.0f, // Y振动严重性最小值 + 0.0f // Z振动严重性最小值 }; float max_values[ROWS] = { @@ -65,7 +66,8 @@ void get_weights_scores_range(GetFeatureValue* feature) 30.0f, // 转速幅度最大值 3150.0f, // 转速方差最大值 5.0f, // X振动严重性最大值 - 5.0f // Y振动严重性最大值 + 5.0f, // Y振动严重性最大值 + 5.0f // Z振动严重性最大值 }; // 将数据赋值到结构体 @@ -152,12 +154,6 @@ unsigned char Get_MeasureData(GetDataValue DataValeNear) { float Mean_RPM = DataValeNear.Mean_RPM; //转速平均值 float Mean_InTemprature = DataValeNear.Mean_InTemprature; //管内温度平均值 float Mean_OutTemprature = DataValeNear.Mean_OutTemprature; //环空温度平均值 - float Mean_AxisX = DataValeNear.Mean_AxisX; //X轴振动平均值 - float Mean_AxisY = DataValeNear.Mean_AxisY; //Y轴振动平均值 - float Mean_AxisZ = DataValeNear.Mean_AxisZ; //Z轴振动平均值 - float Mean_InDielectric = DataValeNear.Mean_InDielectric; //管内介电平均值 - float Mean_OutDielectric = DataValeNear.Mean_OutDielectric; //环空介电平均值 - float Different_Press = DataValeNear.Different_Press; //压力差值 float Energy_InPress = DataValeNear.Energy_InPress; //内压能量值 float Energy_OutPress = DataValeNear.Energy_OutPress; //外压能量值 @@ -191,23 +187,23 @@ unsigned char Get_MeasureData(GetDataValue DataValeNear) { int con_result = Zuanjin_weights_judge(data, &dataFeature); - if (con_result == 1) + if (con_result == 0) { Temp = 'A'; }; - if (con_result == 2) + if (con_result == 1) { Temp = 'B'; } - if (con_result == 3) + if (con_result == 2) { Temp = 'C'; } - if (con_result == 4) + if (con_result == 3) { Temp = 'D'; } - if (con_result == 5) + if (con_result == 4) { Temp = 'E'; } @@ -229,11 +225,6 @@ void DataCompute(void) .Mean_RPM = 4.293f, .Mean_InTemprature = 22.74f, .Mean_OutTemprature = 0.93f, - .Mean_AxisX = 1.08f, - .Mean_AxisY = 0.32f, - .Mean_AxisZ = 0.3f, - .Mean_InDielectric = 4.2f, - .Mean_OutDielectric = 3.8f, .Different_Press = 2.5f, .Energy_InPress = 10.0f, .Energy_OutPress = 8.5f, diff --git a/Drivers/BSP/DataProcess.h b/Drivers/BSP/DataProcess.h index ec24c5b..cc53d61 100644 --- a/Drivers/BSP/DataProcess.h +++ b/Drivers/BSP/DataProcess.h @@ -51,8 +51,8 @@ typedef struct VibrateData // int ViaZ_Data; //z轴 //}VIBRA_DATA; -//#define DATALENG 15 // 假设 DATALENG 的值为25 -#define DATALENG 25 // 假设 DATALENG 的值为25 +//#define DATALENG 15 // ?? DATALENG ???25 +#define DATALENG 26 // ?? DATALENG ???25 #define ROWS 15 #define COLS_NORMAL 5 #define COLS_ABNORMAL 1 @@ -62,32 +62,42 @@ typedef union tuGetDataValue float DataValue[DATALENG]; unsigned char ucDataValueBuf[DATALENG*4]; struct{ - float Mean_InPress; //内压平均值 - float Mean_OutPress; //外压平均值 - float Mean_WOB; //钻压平均值 - float Mean_Torque; //扭矩平均值 - float Mean_RPM; //转速平均值 - float Mean_InTemprature; //管内温度平均值 - float Mean_OutTemprature; //环空温度平均值 - float Mean_AxisX; //X轴振动平均值 - float Mean_AxisY; //X轴振动平均值 - float Mean_AxisZ; //X轴振动平均值 - float Mean_InDielectric; //管内介电平均值 - float Mean_OutDielectric; //环空介电平均值 - - float Different_Press; //压力差值 - float Energy_InPress; //内压能量值 - float Energy_OutPress; //外压能量值 - float Amplitude_WOB; //钻压幅度值 - float Variance_WOB; //钻压方差 - float Amplitude_Torque; //扭矩幅度值 - float Variance_Torque; //扭矩方差 - float Amplitude_RPM; //转速幅度值 - float Variance_RPM; //转速方差 - float Vibration_AxisX; //X轴振动严重性 - float Vibration_AxisY; //Y轴振动严重性 - float Vibration_AxisZ; //Z轴振动严重性 - float Variance_Vibration; //振动方差 + float Different_Press; //???? + float Mean_InPress; //????? + float Mean_OutPress; //????? + float Energy_InPress; //????? + float Energy_OutPress; //????? + + + + float Mean_WOB; //????? + float Amplitude_WOB; //????? + float Variance_WOB; //???? + + float Mean_Torque; //????? + float Amplitude_Torque; //????? + float Variance_Torque; //???? + + + float Mean_RPM; //????? + float Amplitude_RPM; //????? + float Variance_RPM; //???? + float Min_RPM; //????? + float Max_RPM; //????? + + + float Variance_Vibration; //?????? + float Vibration_AxisX; //X?????? + float Vibration_AxisY; //Y?????? + float Vibration_AxisZ; //Z?????? + + int count_greater_than_10; // Z?????10g??? + float Mean_InTemprature; //??????? + float Mean_OutTemprature; //??????? + + float Variance_AxisX; //X????? + float Variance_AxisY; //Y????? + float Variance_AxisZ; //Z????? }; }GetDataValue; diff --git a/Drivers/BSP/agreement.c b/Drivers/BSP/agreement.c index de2624e..9024a67 100644 --- a/Drivers/BSP/agreement.c +++ b/Drivers/BSP/agreement.c @@ -282,6 +282,7 @@ void GetData(void) switch(s_Data.ReceiveBuf[3]) { case 0x40: //获取近端工程参数数据 +#if 0 for(i=0;i<12;i++) //赋值压力差值,内压能量,外压能量 48-59 6-17 3 { MeasurementData_Nearbit.ucDataValueBuf[i+48] = s_Data.ReceiveBuf[6+i]; @@ -315,6 +316,12 @@ void GetData(void) // MeasurementData_Nearbit.ucDataValueBuf[i] = s_Data.ReceiveBuf[6+i]; // } // MeasurementData_Nearbit.ucDataValueBuf[] +#else + for(i = 0; i < 26*4; i++) //赋值压力差值,内压能量,外压能量 48-59 6-17 3 + { + MeasurementData_Nearbit.ucDataValueBuf[i] = s_Data.ReceiveBuf[6+i]; + } +#endif break; case 0x41: //获取远端工程参数数据 for(i=0;i<12;i++) //赋值压力差值,内压能量,外压能量 48-59 6-17 3