RS485 and algorithm in central controller are ok
This commit is contained in:
parent
9f84b5a233
commit
0e2cdea4bf
|
|
@ -9,29 +9,29 @@ void get_weights_scores_range(GetFeatureValue* feature)
|
||||||
{
|
{
|
||||||
// 填充 weights_normal
|
// 填充 weights_normal
|
||||||
float weights_normal[ROWS][COLS_NORMAL] = {
|
float weights_normal[ROWS][COLS_NORMAL] = {
|
||||||
{0.02782361153708092f, 0.07425339118419849f, 0.12759042354281214f, 0.12291090933910485f, 0.057825758510349136f},
|
{0.02536112373147522f,0.05512614321141711f,0.14267535646902674f,0.16133346206755558f,0.10950333816620461f},
|
||||||
{0.027564071230094304f, 0.034914011597243846f, 0.03428079481697248f, 0.01543479395828397f, 0.07718536996417004f},
|
{0.022501814070676942f,0.04732276804576742f,0.04194724344174091f,0.02621574442760558f,0.047215370581991545f},
|
||||||
{0.019488141538371105f, 0.03279628785143933f, 0.07694254491891732f, 0.010422855733018327f, 0.022348371109245885f},
|
{0.018003586497350618f,0.0431656287153646f,0.07865669397927093f,0.017026200202278845f,0.003652478376425392f},
|
||||||
{0.30791780437151484f, 0.0433871871689603f, 0.03287291407974492f, 0.22075997995717458f, 0.11441410143843696f},
|
{0.32024982967117427f,0.035535672541306684f,0.031030858413814488f,0.24429833563710904f,0.09967948230006361f},
|
||||||
{0.041967380936312006f, 0.03073173344712312f, 0.10570414834976417f, 0.038395937926823887f, 0.4457716705304025f},
|
{0.029334689721561346f,0.02969550083218594f,0.09925900579103232f,0.029629006919347025f,0.4357667452203222f},
|
||||||
{0.08006381221588085f, 0.016748822025924905f, 0.02814835728381258f, 0.06657550807501712f, 8.589391929335013e-15f},
|
{0.05787595533854885f,0.01554478121686156f,0.028520717142108763f,0.07200373575215642f,0.0006793460069581621f},
|
||||||
{0.08219625282668795f, 0.010732292674554226f, 0.030018966581668607f, 0.09360232815172899f, 0.081724331840547f},
|
{0.11164004553402096f,0.021488846081792058f,0.027015323736423267f,0.06835601650464118f,0.06507896606999451f},
|
||||||
{0.029540427522817107f, 0.04301860142552467f, 0.02658344150030427f, 0.12924826197604972f, 0.012136341727289321f},
|
{0.03512378851112017f,0.04353279811744198f,0.02353244436926462f,0.11985817699670917f,0.026400101174232783f},
|
||||||
{0.07933570776110352f, 0.014970424884683423f, 0.055678037816256847f, 0.04312882532615478f, 0.01724498153241749f},
|
{0.0679031765133709f,0.015229294191235638f,0.02114050815724666f,0.047639082979661976f,0.04478038713658755f},
|
||||||
{0.13425223325463498f, 0.20821822793072117f, 0.18170578370731505f, 0.07162196775825218f, 0.05237352825266105f},
|
{0.1406890147631353f,0.1880250839886159f,0.20847554840928026f,0.0810319935793325f,0.04348556994313417f},
|
||||||
{0.03346582696060625f, 0.031537897016211264f, 0.07854916838700497f, 0.038058057152586464f, 0.018421685430336208f},
|
{0.03156489452065363f,0.022497648211455456f,0.07162434867943443f,0.035050436098907636f,0.013979034047182124f},
|
||||||
{0.02450787860501228f, 0.020163834961829358f, 0.032592734764566145f, 0.027770217521932265f, 0.06720024464681389f},
|
{0.016102335088496025f,0.015524545028903453f,0.0472261768209504f,0.024201430458576385f,0.05320423374249968f},
|
||||||
{0.02270181024144438f, 0.151882044343984f, 0.05846495235235432f, 0.0692621315241782f, 0.03335361501730471f},
|
{0.02532395637816995f,0.13180297364581464f,0.05950058091445133f,0.0459745429704959f,0.031178515883672587f},
|
||||||
{0.02469783116319416f, 0.24075458769337896f, 0.09324354614973776f, 0.04024389436146122f, 8.589391929335013e-15f},
|
{0.02299058880568741f,0.2719675224112871f,0.09280615745629113f,0.015702128841647265f,0.008980547313484886f},
|
||||||
{0.0644772098352455f, 0.04589065579422297f, 0.03762418574876846f, 0.012564331238233306f, 8.589391929335013e-15f}
|
{0.07533520085455829f,0.06354079376055055f,0.026589036219663745f,0.011679706563975762f,0.01641588403724634f}
|
||||||
};
|
};
|
||||||
// 填充 weights_abnormal
|
// 填充 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] = {
|
float min_values[ROWS] = {
|
||||||
|
|
@ -48,7 +48,8 @@ void get_weights_scores_range(GetFeatureValue* feature)
|
||||||
0.0f, // 转速幅度最小值
|
0.0f, // 转速幅度最小值
|
||||||
0.0f, // 转速方差最小值
|
0.0f, // 转速方差最小值
|
||||||
0.0f, // X振动严重性最小值
|
0.0f, // X振动严重性最小值
|
||||||
0.0f // Y振动严重性最小值
|
0.0f, // Y振动严重性最小值
|
||||||
|
0.0f // Z振动严重性最小值
|
||||||
};
|
};
|
||||||
|
|
||||||
float max_values[ROWS] = {
|
float max_values[ROWS] = {
|
||||||
|
|
@ -65,7 +66,8 @@ void get_weights_scores_range(GetFeatureValue* feature)
|
||||||
30.0f, // 转速幅度最大值
|
30.0f, // 转速幅度最大值
|
||||||
3150.0f, // 转速方差最大值
|
3150.0f, // 转速方差最大值
|
||||||
5.0f, // X振动严重性最大值
|
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_RPM = DataValeNear.Mean_RPM; //转速平均值
|
||||||
float Mean_InTemprature = DataValeNear.Mean_InTemprature; //管内温度平均值
|
float Mean_InTemprature = DataValeNear.Mean_InTemprature; //管内温度平均值
|
||||||
float Mean_OutTemprature = DataValeNear.Mean_OutTemprature; //环空温度平均值
|
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 Different_Press = DataValeNear.Different_Press; //压力差值
|
||||||
float Energy_InPress = DataValeNear.Energy_InPress; //内压能量值
|
float Energy_InPress = DataValeNear.Energy_InPress; //内压能量值
|
||||||
float Energy_OutPress = DataValeNear.Energy_OutPress; //外压能量值
|
float Energy_OutPress = DataValeNear.Energy_OutPress; //外压能量值
|
||||||
|
|
@ -191,23 +187,23 @@ unsigned char Get_MeasureData(GetDataValue DataValeNear) {
|
||||||
|
|
||||||
int con_result = Zuanjin_weights_judge(data, &dataFeature);
|
int con_result = Zuanjin_weights_judge(data, &dataFeature);
|
||||||
|
|
||||||
if (con_result == 1)
|
if (con_result == 0)
|
||||||
{
|
{
|
||||||
Temp = 'A';
|
Temp = 'A';
|
||||||
};
|
};
|
||||||
if (con_result == 2)
|
if (con_result == 1)
|
||||||
{
|
{
|
||||||
Temp = 'B';
|
Temp = 'B';
|
||||||
}
|
}
|
||||||
if (con_result == 3)
|
if (con_result == 2)
|
||||||
{
|
{
|
||||||
Temp = 'C';
|
Temp = 'C';
|
||||||
}
|
}
|
||||||
if (con_result == 4)
|
if (con_result == 3)
|
||||||
{
|
{
|
||||||
Temp = 'D';
|
Temp = 'D';
|
||||||
}
|
}
|
||||||
if (con_result == 5)
|
if (con_result == 4)
|
||||||
{
|
{
|
||||||
Temp = 'E';
|
Temp = 'E';
|
||||||
}
|
}
|
||||||
|
|
@ -229,11 +225,6 @@ void DataCompute(void)
|
||||||
.Mean_RPM = 4.293f,
|
.Mean_RPM = 4.293f,
|
||||||
.Mean_InTemprature = 22.74f,
|
.Mean_InTemprature = 22.74f,
|
||||||
.Mean_OutTemprature = 0.93f,
|
.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,
|
.Different_Press = 2.5f,
|
||||||
.Energy_InPress = 10.0f,
|
.Energy_InPress = 10.0f,
|
||||||
.Energy_OutPress = 8.5f,
|
.Energy_OutPress = 8.5f,
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,8 @@ typedef struct VibrateData
|
||||||
// int ViaZ_Data; //zÖá
|
// int ViaZ_Data; //zÖá
|
||||||
//}VIBRA_DATA;
|
//}VIBRA_DATA;
|
||||||
|
|
||||||
//#define DATALENG 15 // 假设 DATALENG 的值为25
|
//#define DATALENG 15 // ?? DATALENG ???25
|
||||||
#define DATALENG 25 // 假设 DATALENG 的值为25
|
#define DATALENG 26 // ?? DATALENG ???25
|
||||||
#define ROWS 15
|
#define ROWS 15
|
||||||
#define COLS_NORMAL 5
|
#define COLS_NORMAL 5
|
||||||
#define COLS_ABNORMAL 1
|
#define COLS_ABNORMAL 1
|
||||||
|
|
@ -62,32 +62,42 @@ typedef union tuGetDataValue
|
||||||
float DataValue[DATALENG];
|
float DataValue[DATALENG];
|
||||||
unsigned char ucDataValueBuf[DATALENG*4];
|
unsigned char ucDataValueBuf[DATALENG*4];
|
||||||
struct{
|
struct{
|
||||||
float Mean_InPress; //内压平均值
|
float Different_Press; //????
|
||||||
float Mean_OutPress; //外压平均值
|
float Mean_InPress; //?????
|
||||||
float Mean_WOB; //钻压平均值
|
float Mean_OutPress; //?????
|
||||||
float Mean_Torque; //扭矩平均值
|
float Energy_InPress; //?????
|
||||||
float Mean_RPM; //转速平均值
|
float Energy_OutPress; //?????
|
||||||
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 Mean_WOB; //?????
|
||||||
float Amplitude_WOB; //钻压幅度值
|
float Amplitude_WOB; //?????
|
||||||
float Variance_WOB; //钻压方差
|
float Variance_WOB; //????
|
||||||
float Amplitude_Torque; //扭矩幅度值
|
|
||||||
float Variance_Torque; //扭矩方差
|
float Mean_Torque; //?????
|
||||||
float Amplitude_RPM; //转速幅度值
|
float Amplitude_Torque; //?????
|
||||||
float Variance_RPM; //转速方差
|
float Variance_Torque; //????
|
||||||
float Vibration_AxisX; //X轴振动严重性
|
|
||||||
float Vibration_AxisY; //Y轴振动严重性
|
|
||||||
float Vibration_AxisZ; //Z轴振动严重性
|
float Mean_RPM; //?????
|
||||||
float Variance_Vibration; //振动方差
|
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;
|
}GetDataValue;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -282,6 +282,7 @@ void GetData(void)
|
||||||
switch(s_Data.ReceiveBuf[3])
|
switch(s_Data.ReceiveBuf[3])
|
||||||
{
|
{
|
||||||
case 0x40: //获取近端工程参数数据
|
case 0x40: //获取近端工程参数数据
|
||||||
|
#if 0
|
||||||
for(i=0;i<12;i++) //赋值压力差值,内压能量,外压能量 48-59 6-17 3
|
for(i=0;i<12;i++) //赋值压力差值,内压能量,外压能量 48-59 6-17 3
|
||||||
{
|
{
|
||||||
MeasurementData_Nearbit.ucDataValueBuf[i+48] = s_Data.ReceiveBuf[6+i];
|
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[i] = s_Data.ReceiveBuf[6+i];
|
||||||
// }
|
// }
|
||||||
// MeasurementData_Nearbit.ucDataValueBuf[]
|
// 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;
|
break;
|
||||||
case 0x41: //获取远端工程参数数据
|
case 0x41: //获取远端工程参数数据
|
||||||
for(i=0;i<12;i++) //赋值压力差值,内压能量,外压能量 48-59 6-17 3
|
for(i=0;i<12;i++) //赋值压力差值,内压能量,外压能量 48-59 6-17 3
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue