} //Up:numChannels*numCyc个数据,对应于原始数据的RMS
MyVal = numCyc;
Kp = 0;
for (index = 0; index 《 numChannels; index++){
Mean (&Up[Kp*numCyc], numCyc, & aUIrms[index]);
//aUIrms[0]-[5]:各Channel中各Cycle的RMS值的平均值
aUIrms[index] = aUIrms[index]*PTCT[index]; //乘以预设比例
SetCtrlVal (hTestedMotor, METERPANEL_NumU1 + index, aUIrms[index]/mtDisplay[0][index].iRat);
++Kp;} //六个电压电流值设定
}
Mean (&aUIrms[0], 3, & Uav); //电压平均值
Mean (&aUIrms[3], 3, & Iav); //电流平均值
SetCtrlVal ( hTestedMotor, METERPANEL_VOLTAGEMETER, Uav );
SetCtrlVal ( hTestedMotor, METERPANEL_CurrentMeter, Iav );
MyVal = numScans;
for (kk = 0; kk 《 3*numCyc; kk++) //功率计算
DotProduct (Upek[kk], Upek[kk+3*numCyc], numScans, &PP[kk]);
Kp = 0;
for (index = 0; index 《 numChannels/2; index++){
Mean (& PP[Kp*numCyc], numCyc, &aUIrms[6+index]);
//aUIrms[6]-[9]:三个周期功率平均
aUIrms[6+index] = PTCT[index]*PTCT[index+3]*aUIrms[6+index]/MyVal; //各点功率
SetCtrlVal (hTestedMotor,METERPANEL_NumP1+index, aUIrms[6+index]);
++Kp;
}
通过编写处理函数就可以实现对于试验数据的自动处理。根据空载试验处理的数学模型,我们编写直线-三次拟合函数
void linefit13(int datanum, double x[], double y[], double *p, double eps)
对试验数据进行曲线拟合,计算出给最后结果数据。曲线的绘制我们用库函数PlotXY输出显示在控件Graph中。如图,最后的结果数据同手工计算的结果数据定子电流103.2A,空载损耗93.424kW,铁耗37.682kW,风摩耗48.165kW相比还是比较精确的。