TMS320F28379D: How to Identify the Ma Impact in Sinewave, Tested on the Power Board

Part Number: TMS320F28379D

Tool/software:

Hello Forms,

I Have Implemented Sinewave based on theta which is given to a sinewave, when modulation Index is less than 0.5, the AC Voltage Observed, as Follows.

Here is the Code Snippet, worked Sinewave Implementation Reference in Google Sheet Snippet, where the PWM frequency is set to 10KHz.

But when verified with AC Voltage is Observed at Modulation Index at 0.1, with SIne Frequency of 500Hz.

Theta 1 phase 2 Phase 3 Phase PWM_Compare1 PWM_Compare2 PWM_Compare3
0.3141592654 0.3090169944 -0.9781476007 0.6691306064 1288 1127 1333
0.6283185307 0.5877852523 -0.9945218954 0.4067366431 1322 1125 1300
0.9424777961 0.8090169944 -0.9135454576 0.1045284633 1350 1135 1262
1.256637061 0.9510565163 -0.7431448255 -0.2079116908 1368 1156 1223
1.570796327 1 -0.5 -0.5 1374 1187 1187
1.884955592 0.9510565163 -0.2079116908 -0.7431448255 1368 1223 1156
2.199114858 0.8090169944 0.1045284633 -0.9135454576 1350 1262 1135
2.513274123 0.5877852523 0.4067366431 -0.9945218954 1322 1300 1125
2.827433388 0.3090169944 0.6691306064 -0.9781476007 1288 1333 1127
3.141592654 0 0.8660254038 -0.8660254038 1249 1357 1141
3.455751919 -0.3090169944 0.9781476007 -0.6691306064 1210 1371 1165
3.769911184 -0.5877852523 0.9945218954 -0.4067366431 1176 1373 1198
4.08407045 -0.8090169944 0.9135454576 -0.1045284633 1148 1363 1236
4.398229715 -0.9510565163 0.7431448255 0.2079116908 1130 1342 1275
4.71238898 -1 0.5 0.5 1124 1312 1312
5.026548246 -0.9510565163 0.2079116908 0.7431448255 1130 1275 1342
5.340707511 -0.8090169944 -0.1045284633 0.9135454576 1148 1236 1363
5.654866776 -0.5877852523 -0.4067366431 0.9945218954 1176 1198 1373
5.969026042 -0.3090169944 -0.6691306064 0.9781476007 1210 1165 1371
6.283185307 0 -0.8660254038 0.8660254038 1249 1141 1357

But When Verified the Output AC Voltage is between line to line Voltage as Follows U-V : 0.928VAC, U-W : 1.445VAC, V-W: 0.806VAC.
But according to Calculation as Follows: Input Voltage is 48V, Modulation Index : 0.1
AC Output Voltage  = Vdc*Ma*sqrt(3)/2
                                = 48*0.1*sqrt(3)/2

                                =(RMS) 2.94V.

I have Conducted Multiple Iterations Between the Different modulation Indexes: Found that from Modulation Index 0.6 onwards, I was able to Find the Voltages are Observed/Noted are much accurate.

Here Comes the Code snippet.

        pastdelta = (SineFrequency * 0.00005); // 2*TBPRD*Interrupt Frequency
        Currentdelta += pastdelta;
 
        Temp_Rad = Currentdelta * 12.56637061;
        // OverFlow Protection
        if(Temp_Rad >= TWO_PI)
        {
            Currentdelta = 0;
        }

        Compa1 = modulation_index * sinf(Temp_Rad);
        Compa2 = modulation_index * sinf((Temp_Rad - 2.094395f));
        Compa3 =  -Compa1 - Compa2;
   
        pVabc_pu.value[0] = (uint16_t)((Compa1 * (amplitude_scale_1)) +
                                   (amplitude_scale_1));
        pVabc_pu.value[1] = (uint16_t)((Compa2 * (amplitude_scale_2)) +
                                   (amplitude_scale_2));
        pVabc_pu.value[2] = (uint16_t)((Compa3 * (amplitude_scale_3)) +
                                   (amplitude_scale_3));



pVabc_pu.value[0],pVabc_pu.value[1], and pVabc_pu.value[2] are Compare values given to EPWM. 





Thanks In Advance,
Soumitri Kumar