Doubts in vissim examples using SVM outputs and ePWM inputs

I see that SVM in vissim is making use of pulse centered SVM approach. Hence, it is getting different output(-1 to 1 range) than the normal non pulse centered SVM aprpoach. Note that there is also a small relationship where Vissim_PC_SVM_output. = 1- 2* NPC_SVM_output.

But I did not understand the logic behind the scaling block between SVM and ePWM block. To reproduce the above problem, use the „acim_vf_openloop50Hz_sim.vsm“ and „acim_vf_openloop50Hz_sim.vsm“. Here if f= 0.7, then v= 0.789, SVMop = (-0.789 to +.789), ScalingOp = (+0.106 to 0.895) and not (0 to +.789) Again if f= 0.2, then v= 0.5789, SVMop = (-0.58 to +.58), ScalingOp = (+0.21 to 0.79) and not (0 to +.58)

I could not get clarifications for the below questions:

  1. Is this scaling correct? Here is my concern: I see a relationship viz. Scaled output =0.5 +0.5Vissim_PC_SVM_output. (i.e. pulse centered output using general TI document). But also Vissim_PC_SVM_output. = 1- 2 NPC_SVM_output (i.e. Non pulse centered output using general TI document). That means Scaled output =1 - Vissim_PC_SVM_output.

a. Clearly this scaled output is giving toggle value of the non pulse centered output. So, why are we doing this?

b. Also, I see that in the example of „acim_vf_openloop50Hz_sim.vsm“, the output from scaling block are fed directly to the ePWM blocks. But, the example uses the following configuration for the action qualifier,
ePWMA: CA Up: 0 ; CA Down: 1
ePWMB: CA Up: 1 ; CA Down: 0

However, as per TI documentation (pg 80), we should use the below config:
ePWMA: CA Up: 0 ; CA Down: 1
ePWMB: CA Up: 1 ; CA Down: 0

So, are we using output of duty cycles as cmpa signals (when in fact cmpa signal and duty cycles are complementary)?

c. Also, we are again converting a pulse centered switching sequence into a non pulse centered switching sequence (although with a toggle status). Are we then not losing the advantage of the PC output approach?

  1. Is there any way that I can have a non-pulse centered output instead of getting PC output directly from SVM? How do we do that? Then we do not need any scaling for ePWM.


The TI space vector block

The TI space vector block produces values from +1 to -1. These correspond to +Vbus and -Vbus in motor switching. The VisSim PWM block input takes values from 0 (full off) to 1 (full on). You can't have a negative on time for the PWM pulse. The scaling of +1 .. -1 to 0 .. 1 is therefore necessary to interface to the PWM unit which is used to drive inverter hardware. Typically, a single output from the SVM will drive two PWM signals controlling upper and lower half H-bridge legs, the center of the H is tied to a motor phase. One PWM modulates the MOSFET/IGBT tied to +Vbus and the other is tied to -Vbus. At 50% duty cycle each one is on half the time (but they are never both on at the same time to avoid burn out). This gives an average voltage of 0 and corresponds to the SVM 0 output. At 100% duty cycle, +VBus is on full and -VBus is off and so on. The dead band unit on the TI PWM will drive the lower PWM signal to automatically be complementary to the the upper leg to avoid "shoot through". Since devices like IGBTs and MOSFETs have turn off delays, it is important to wait a bit after turning off one leg before turning on the other leg. This so called "dead band" setting is handled by the TI hardware and settable in the VisSim dialog box. If you enable the automatic complementary switching of leg B, then the PWM B input to the PWM block in VisSim is ignored.
The pulse centered PWM has to do with choosing an up/down count mode instead of a pure saw-tooth up count mode and has no effect on the scaling.