ZHCUBZ5A September 2021 – April 2024
#define USER_MOTOR1_FREQ_LOW_HZ (5.0) // Hz
#define USER_MOTOR1_FREQ_HIGH_HZ (400.0) // Hz
#define USER_MOTOR1_VOLT_MIN_V (1.0) // Volt
#define USER_MOTOR1_VOLT_MAX_V (24.0) // Voltdac128s.ptrData[0] = &motorVars_M1.adcData.I_A.value[0]; // CH_A
dac128s.ptrData[1] = &motorVars_M1.adcData.I_A.value[1]; // CH_B
dac128s.ptrData[2] = &motorVars_M1.adcData.I_A.value[2]; // CH_C
dac128s.ptrData[3] = &motorVars_M1.angleGen_rad; // CH_D
dac128s.ptrData[4] = &motorVars_M1.angleEST_rad; // CH_E, N/A
dac128s.ptrData[5] = &motorVars_M1.adcData.V_V.value[0]; // CH_F, N/A
dac128s.ptrData[6] = &motorVars_M1.adcData.V_V.value[1]; // CH_G, N/A
dac128s.ptrData[7] = &motorVars_M1.adcData.V_V.value[2]; // CH_H, N/A
dac128s.gain[0] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_CURRENT_A;
dac128s.gain[1] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_CURRENT_A;
dac128s.gain[2] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_CURRENT_A;
dac128s.gain[3] = 4096.0f / MATH_TWO_PI;
dac128s.gain[4] = 4096.0f / MATH_TWO_PI; // NA
dac128s.gain[5] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_VOLTAGE_V; // N/A
dac128s.gain[6] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_VOLTAGE_V; // N/A
dac128s.gain[7] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_VOLTAGE_V; // N/A
... ...
dac128s.offset[0] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[1] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[2] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[3] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[4] = (uint16_t)(0.5f * 4096.0f); // N/A
dac128s.offset[5] = (uint16_t)(0.5f * 4096.0f); // N/A
dac128s.offset[6] = (uint16_t)(0.5f * 4096.0f); // N/A
dac128s.offset[7] = (uint16_t)(0.5f * 4096.0f); // N/Adac128s.ptrData[0] = &motorVars_M1.adcData.V_V.value[0]; // CH_A
dac128s.ptrData[1] = &motorVars_M1.adcData.V_V.value[1]; // CH_B
dac128s.ptrData[2] = &motorVars_M1.adcData.V_V.value[2]; // CH_C
dac128s.ptrData[3] = &motorVars_M1.angleGen_rad; // CH_D
dac128s.ptrData[4] = &motorVars_M1.angleEST_rad; // CH_E, N/A
dac128s.ptrData[5] = &motorVars_M1.adcData.I_A.value[0]; // CH_F, N/A
dac128s.ptrData[6] = &motorVars_M1.adcData.I_A.value[1]; // CH_G, N/A
dac128s.ptrData[7] = &motorVars_M1.adcData.I_A.value[2]; // CH_H, N/A
dac128s.gain[0] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_VOLTAGE_V;
dac128s.gain[1] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_VOLTAGE_V;
dac128s.gain[2] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_VOLTAGE_V;
dac128s.gain[3] = 4096.0f / MATH_TWO_PI;
dac128s.gain[4] = 4096.0f / MATH_TWO_PI; // N/A
dac128s.gain[5] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_CURRENT_A; // N/A
dac128s.gain[6] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_CURRENT_A; // N/A
dac128s.gain[7] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_CURRENT_A; // N/A
... ...
dac128s.offset[0] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[1] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[2] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[3] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[4] = (uint16_t)(0.5f * 4096.0f); // N/A
dac128s.offset[5] = (uint16_t)(0.5f * 4096.0f); // N/A
dac128s.offset[6] = (uint16_t)(0.5f * 4096.0f); // N/A
dac128s.offset[7] = (uint16_t)(0.5f * 4096.0f); // N/Adac128s.ptrData[0] = &motorVars_M1.angleGen_rad; // CH_A
dac128s.ptrData[1] = &motorVars_M1.angleEST_rad; // CH_B
dac128s.ptrData[2] = &motorVars_M1.anglePLL_rad; // CH_C
dac128s.ptrData[3] = &motorVars_M1.adcData.I_A.value[0]; // CH_D
dac128s.ptrData[4] = &motorVars_M1.adcData.V_V.value[0]; // CH_E, N/A
dac128s.ptrData[5] = &motorVars_M1.adcData.I_A.value[1]; // CH_F, N/A
dac128s.ptrData[6] = &motorVars_M1.adcData.I_A.value[2]; // CH_G, N/A
dac128s.ptrData[7] = &motorVars_M1.adcData.V_V.value[1]; // CH_H, N/A
dac128s.gain[0] = 4096.0f / MATH_TWO_PI;
dac128s.gain[1] = 4096.0f / MATH_TWO_PI;
dac128s.gain[2] = 4096.0f / MATH_TWO_PI;
dac128s.gain[3] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_CURRENT_A;
dac128s.gain[4] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_VOLTAGE_V; // N/A
dac128s.gain[5] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_CURRENT_A; // N/A
dac128s.gain[6] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_CURRENT_A; // N/A
dac128s.gain[7] = 2.0f * 4096.0f / USER_M1_ADC_FULL_SCALE_VOLTAGE_V; // N/A
dac128s.offset[0] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[1] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[2] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[3] = (uint16_t)(0.5f * 4096.0f);
dac128s.offset[4] = (uint16_t)(0.5f * 4096.0f); // N/A
dac128s.offset[5] = (uint16_t)(0.5f * 4096.0f); // N/A
dac128s.offset[6] = (uint16_t)(0.5f * 4096.0f); // N/A
dac128s.offset[7] = (uint16_t)(0.5f * 4096.0f); // N/AdatalogObj->iptr[0] = &motorVars_M1.adcData.I_A.value[0];
datalogObj->iptr[1] = &motorVars_M1.adcData.I_A.value[1];datalogObj->iptr[0] = &motorVars_M1.adcData.V_V.value[0];
datalogObj->iptr[1] = &motorVars_M1.adcData.V_V.value[1];datalogObj->iptr[0] = &motorVars_M1.angleFOC_rad;
datalogObj->iptr[1] = &motorVars_M1.angleEST_rad;在“Expression”表达式窗口中调整 motorVars_M1.overCurrent_A 的值,以触发过流故障,如图 3-34 所示。
使用 DAC128S085EVM 与示波器来监测电机的三相检测电流,并使用电流探头将采样值与测量值进行比较,如图 3-35 所示。
使用 DAC128S085EVM 和示波器来监测电机的三相检测电压,并通过将 motorVars_M1.svmMode 设置为 SVM_COM_C 来使用共模 SVPWM,如图 3-36 所示。
搭配使用 DAC128S085EVM 和示波器来监测电机的三相检测电压,并通过将 motorVars_M1.svmMode 设置为 SVM_MIN_C 来使用最小模式 SVPWM,如图 3-37 所示。
搭配使用 DAC128S085EVM 与示波器来从角度发生器监控电机的转子角度和 FAST 估算器的角度,如图 3-38 所示。
将 DATALOG 与图形工具一起使用,以监测电机的三相检测电流,如图 3-39 所示。
使用数据记录器和图形工具监测电机的三相检测电压,如图 3-40 所示。
将 Datalog 与图形工具配合使用,从角度发生器监视电机的转子角度以及 FAST 估算器的角度,如图 3-41 所示。