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) // Volt
dac128s.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/A
dac128s.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/A
dac128s.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/A
datalogObj->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”表達(dá)式窗口中調(diào)整 motorVars_M1.overCurrent_A 的值,以觸發(fā)過流故障,如圖 3-34 所示。
使用 DAC128S085EVM 與示波器來監(jiān)測電機(jī)的三相檢測電流,并使用電流探頭將采樣值與測量值進(jìn)行比較,如圖 3-35 所示。
使用 DAC128S085EVM 和示波器來監(jiān)測電機(jī)的三相檢測電壓,并通過將 motorVars_M1.svmMode 設(shè)置為 SVM_COM_C 來使用共模 SVPWM,如圖 3-36 所示。
搭配使用 DAC128S085EVM 和示波器來監(jiān)測電機(jī)的三相檢測電壓,并通過將 motorVars_M1.svmMode 設(shè)置為 SVM_MIN_C 來使用最小模式 SVPWM,如圖 3-37 所示。
搭配使用 DAC128S085EVM 與示波器來從角度發(fā)生器監(jiān)控電機(jī)的轉(zhuǎn)子角度和 FAST 估算器的角度,如圖 3-38 所示。
將 DATALOG 與圖形工具一起使用,以監(jiān)測電機(jī)的三相檢測電流,如圖 3-39 所示。
使用數(shù)據(jù)記錄器和圖形工具監(jiān)測電機(jī)的三相檢測電壓,如圖 3-40 所示。
將 Datalog 與圖形工具配合使用,從角度發(fā)生器監(jiān)視電機(jī)的轉(zhuǎn)子角度以及 FAST 估算器的角度,如圖 3-41 所示。