A Simple Multilevel Space Vector Modulation Technique and MATLAB System Generator Built FPGA Implementation for Three-Level Neutral-Point Clamped Inverter

: The pulse width modulation (PWM) is an important segment in power electronic inverters and multilevel inverters (MLIs) design. The space vector modulation (SVM) methods own distinct advantages over other PWM methods. However, MLI SVM has involved more mathematics in their executions. Hence, the digital signal processors (DSPs) or ﬁeld programmable gate arrays (FPGAs) based digital implementations are highly preferred for MLI SVM realizations, which require exceptional properties. The conventional MLI SVMs use complex mathematical functions to solve their internal functions to identify the space vector diagram (SVD) sub-triangle and over modulation boundary switching on-times. Particularly these are the changes in the position of reference vector with respect to their sub-triangle positions involving higher mathematical functions. This paper proposes a simpliﬁed three-level MLI SVM that reduces the sub-triangle and over modulation switching on-time calculations with reduced mathematical functions. The proposed MLI SVM is derived based on two-level SVM without changing the reference vector position, unlike the traditional approaches. This helps in extending the SVM for any n-level inverter with additional LUTs. The detailed theoretical study, MATLAB-Simulink system generator simulations and Xilinx FPGA family SPARTAN-III-3A based experimental implementations are done with three-level neutral point MLI fed induction motor drive. The theoretical design, analysis, and experimentation results validate the advantages of the proposed PWM design and its implementation. In addition, the proposed implementation is executed from the MATLAB Xilinx system generator directly into target FPGA, which makes it faithful, e ﬃ cient and minimizes the time spent.

The organization of the paper is deliberate as follows: Section 2 explains the space vector PWM theory for two-level and multilevel. Section 3 deals with the proposed simplified MLI SVM, including both linear and over modulations. Section 4 accomplishes the MATLAB-Simulink implementation, and Section 5 discusses the FPGA collaborated experimentation setup of three-level MLI. Sections 6 and 7 deal with the distributed implementation of MLI SVM in FPGA MATLAB XSG-ISE and experimental results. In conclusion, the rewards of the proposed MLI SVM and its implementation are presented in Section 8. The list of abbreviations and references are given in the end. Figure 1a shows the SVD of a two-level inverter [37]. Here, every sector (represented as S i , where i = 1 to 6) is an equilateral symmetrical triangle with the height of h (= √ 3/2). Here the edge vectors (V1 to V6) are named as non-zero (active vectors) and V0 and V7 are called zero vectors. The on-time calculation of SVM switching in any sector is calculated among three nearest switching vectors (one zero vector and two active vectors). The movement of the reference or target vector V* positioning inside the sector is synthesizing the switching times. To understand the two-level switching of SVD, the sector-1 is considered here, as shown in Figure 1b. The volts-second of V* is determined by multiplication of V* and sampling time (T s ). Then the time integral of V* is estimated through the summation of products of the two of non-zero vectors (V 1 and V 2 by referring sector-1) and their time widths (T 1 and T 2 ). experimental results. In conclusion, the rewards of the proposed MLI SVM and its implementation are presented in Section 8. The list of abbreviations and references are given in the end.

Two-Level Space Vector Modulation
2. State of Art of Space Vector PWM Theory for Two-Level and Multilevel. Figure 1a shows the SVD of a two-level inverter [38]. Here, every sector (represented as Si, where i = 1 to 6) is an equilateral symmetrical triangle with the height of h (= √3/2). Here the edge vectors (V1 to V6) are named as non-zero (active vectors) and V0 and V7 are called zero vectors. The on-time calculation of SVM switching in any sector is calculated among three nearest switching vectors (one zero vector and two active vectors). The movement of the reference or target vector V* positioning inside the sector is synthesizing the switching times. To understand the two-level switching of SVD, the sector-1 is considered here, as shown in Figure 1b. The volts-second of V* is determined by multiplication of V* and sampling time (Ts). Then the time integral of V* is estimated through the summation of products of the two of non-zero vectors (V1 and V2 by referring sector-1) and their time widths (T1 and T2).

Two-Level Space Vector Modulation
The reference voltage V* volts-sec equation for the sector-1 is calculated as, where T1 and T2 represents time(sec) widths of adjacent switching vectors V1 and V2 correspondingly, and T0 represents as time (sec) width of zero vector (V0). This zero vector state can be either [000] or [111] switching state, or else both. The movement of V* angle (θ) within the sector is computed by The θ values sample the V* in different sector (for example, when θ is 115°, the V* approach sector-2, since sector-2 lies in an angle between 61° to 120°  According to the V* position, whether inside or outside the hexagonal SVD (see Figure 1), SVD is divided into linear modulation (where Ma ≤ 0.907) and over modulation (where Ma > 0.907), respectively.
The total period is Ts = T1 + T2 + T0. T1 and T2 are calculated from projecting V* position along αaxis and β-axis with respect to SVD origin (zero point). Henceforth, the volts-sec equations for α-axis and β-axis are V Ts = T1 + 0.5T2 and V Ts = hT2. Thus, the active vector time can be written as, T2 = Ts V /h and T1 = Ts (V − V )/2h. From the given switching frequency, the T1 and T2 help to find the zero voltage time T0. The reference voltage V* volts-sec equation for the sector-1 is calculated as, where T 1 and T 2 represents time(sec) widths of adjacent switching vectors V 1 and V 2 correspondingly, and T 0 represents as time (sec) width of zero vector (V 0 ). This zero vector state can be either [000] or [111] switching state, or else both. The movement of V* angle (θ) within the sector is computed by The θ values sample the V* in different sector (for example, when θ is 115 • , the V* approach sector-2, since sector-2 lies in an angle between 61 • to 120 • ).
According to the V* position, whether inside or outside the hexagonal SVD (see Figure 1), SVD is divided into linear modulation (where M a ≤ 0.907) and over modulation (where M a > 0.907), respectively. The total period is T s = T 1 + T 2 + T 0 . T 1 and T 2 are calculated from projecting V* position along α-axis and β-axis with respect to SVD origin (zero point). Henceforth, the volts-sec equations for α-axis and β-axis are V s α0 T s = T 1 + 0.5T 2 and V s β0 T s = hT 2 . Thus, the active vector time can be written as, T 2 = T s V s β0 /h and T 1 = T s (V s α0 − V s β0 )/2h. From the given switching frequency, the T 1 and T 2 help to find the zero voltage time T 0 .

Multilevel Space Vector Modulation
Realizing SVM for more than two-level inverter (conventional six-switch inverter) is called MLI SVM. Numerous MLI SVM are developed and employed in MLIs for different applications [4,6,12,20]. The difficulty in the multilevel SVM is its complex mathematical needs to locate the V* and find the individual vectors. The interesting techniques are proposed in the literature to reduce the complexity of implementing the MLI SVM with reasonable inverter performances.
Any of the three-phase n-level SVD can be separated into six sectors (S i ), where i = 1 to 6. These sectors are further separated into (n−1) 2 sub-triangles (∆ i , j ) where j = 0 to 3 and i = 1 to 6. Hence, the n-level SVD consists of n 3 switching states. For example, considering the three-level MLI SVD, as shown in Figure 2, it has 27-switching states (3 3 = 27) and 24-sub-triangles (No. of sub-triangles in each sector is (3−1) 2 = 4; therefore, 4 × 6 = 24) [6,9]. The switching vector for any level MLI is categorized into zero vector (ZV), short vector (SV) large vector (LV), and medium vector (MV). Here the ZV, MV and LV lie in the origin and boundary of the SVD, whereas, SV is multiple in numbers and placed in the middle portion of the SVD.

Multilevel Space Vector Modulation
Realizing SVM for more than two-level inverter (conventional six-switch inverter) is called MLI SVM. Numerous MLI SVM are developed and employed in MLIs for different applications [6,4,12,20]. The difficulty in the multilevel SVM is its complex mathematical needs to locate the V* and find the individual vectors. The interesting techniques are proposed in the literature to reduce the complexity of implementing the MLI SVM with reasonable inverter performances.
Any of the three-phase n-level SVD can be separated into six sectors (Si), where i = 1 to 6. These sectors are further separated into (n−1) 2 sub-triangles (Δi,j) where j = 0 to 3 and i = 1 to 6. Hence, the nlevel SVD consists of n 3 switching states. For example, considering the three-level MLI SVD, as shown in Figure 2, it has 27-switching states (3 3 = 27) and 24-sub-triangles (No. of sub-triangles in each sector is (3−1) 2 = 4; therefore, 4 × 6 = 24) [6,9]. The switching vector for any level MLI is categorized into zero vector (ZV), short vector (SV) large vector (LV), and medium vector (MV). Here the ZV, MV and LV lie in the origin and boundary of the SVD, whereas, SV is multiple in numbers and placed in the middle portion of the SVD.   In three-level SVD, the SVs and ZVs have redundancy-switching states that are two for SVs and three for ZVs. When the MLI level is increased, the number of redundancy-switching states for ZVs and SVs are increased.
The switching states and their on-time calculations are calculated based on the rotating reference vector, V* position in any one of the four sub-triangles in the particular sector. For example, when V* lies in the fouth sub-triangle of first sector (Δ1,4), then the nearest three vectors VS2, VM1 and VL2,  In three-level SVD, the SVs and ZVs have redundancy-switching states that are two for SVs and three for ZVs. When the MLI level is increased, the number of redundancy-switching states for ZVs and SVs are increased.
The switching states and their on-time calculations are calculated based on the rotating reference vector, V* position in any one of the four sub-triangles in the particular sector. For example, when V* lies in the fouth sub-triangle of first sector (∆ 1,4 ), then the nearest three vectors V S2 , V M1 and V L2 , switching state are used to synthesize the V*. The duty cycle of the above nearest switching vectors δ VS2 , δ VM2 and δ VL2 can be calculated and applied to the pulse generations.
Fixing the V* in the sub-triangle is the most difficult task in the SVD realizations. Few mathematical approaches have been developed for finding V* at sub-triangle, which needed high-end digital controllers to implement them [4,7,8,16]. In addition, considering the over modulation operation in MLI, the complexity is further increased to project the trajectory location in SVD. Once the vector moves outside the hexagonal boundary of the SVD, positioning the vector in the non-linear region (unstructured boundary) is predicted from the available switching vector and its on-times. The MLI SVD over modulation implementations differ from two-level SVD [19,29,30]. In MLI SVD over modulation, the OVM boundary is operating through the crux of MVs and LVs, whereas, in two-level SVD OVM the LVs only play to synthesis the on-time calculation of OVM pulses.

Proposed Simplified MLI SVM for Entire Modulation Index
One of the important contributions of this paper is to propose the simple mathematical approach to find out the V* sub-triangle position of MLI SVM. The proposed MLI SVM is developed based on standard two-level SVM for three-level MLI, and it can be extended for n-level using simple additional equations. In addition to proposed sub-triangle calculation, the reduced mathematical functions for calculating OVM switching on-times is achieved by just adding the compensated on-time gain in over modulation region with LM on-time. Hence, the proposed SVM reduces the implementation burden, since the complex part of MLI SVM calculations of sub-triangle position and OVM on-times are minimized. Figure 3 shows the three-level MLI SVM generation flowchart. Like two-level SVM, the MLI SVM takes the three-phase signal to calculate two-phase voltage vectors stationary reference frame (V α ,V β ) [20]. Then, the V α , V β are converted into reference voltage vector in polar form as V * ∠ θ, where 'V * ' is the voltage magnitude, and 'θ' is the angle of the V*.

Procedure in Generating MLI SVM in Linear Modulation
Using V* and θ, the reference vector sector position is calculated. Here, based on the V* magnitude the SVD operation regions (either LM or OVM) are calculated. In Figure 3, the flow chart is handling only LM MLI SVM, where the proposed sub-triangle calculations are the same for LM and OVM.
The V* sub-triangle location calculation with-in the sector is calculated through orthogonal time slope mathematical function in V α , V β plane. The stationary plane of V s αo and V s βo are calculated for every T s and then mapping for the reference vector V* located in sub-triangle is done by comparing V s αi and V s βi . These logical expressions can be applied for any level for identifying the V* sub-triangle. The next section explains the proposed sub-triangle calculations. Energies 2019, 11, x FOR PEER REVIEW comparing V and V . These logical expressions can be applied for any level for identifying the V* sub-triangle. The next section explains the proposed sub-triangle calculations.

Sub-triangle Identification using Lookup
Three-Phase to Two-Phase Conversion

Proposed Sub-Triangle Calculations
Considering the three-level multilevel SVD, shown in Figure 4, the sub-triangle 1 and 4 (type-1 triangles) can be directly calculated from the V* magnitude, sector number and its respective sector angle (γ), γ = rem(θ/60).
However, this calculation does not support to calculate sub-triangle 2 and 3 (type-2 triangles). Hence, in order to handle type-1 and type-2 triangles searching progress, a simple look-up table and a searching process is developed directly from V s αi and V s βi . Once the V* sub-triangle is identified, that particular sub-triangle can be considered as a sector and then two-level SVM is applied to calculate the respective sub-triangle switching states on-time calculation. The same procedure is applied to all sectors in the particular M a and f s . The proposed sub-triangle calculation is explained through sector-1 (∆ 1,j ) as illustrated in Figure 4. Fixing the V* in the sub-triangle is the most difficult task in the SVD realizations. Few mathematical approaches have been developed for finding V* at sub-triangle, which needed high-end digital controllers to implement them [4,7,8,16]. In addition, considering the over modulation operation in MLI, the complexity is further increased to project the trajectory location in SVD. Once the vector moves outside the hexagonal boundary of the SVD, positioning the vector in the non-linear region (unstructured boundary) is predicted from the available switching vector and its on-times. The MLI SVD over modulation implementations differ from two-level SVD [19,29,30]. In MLI SVD over modulation, the OVM boundary is operating through the crux of MVs and LVs, whereas, in two-level SVD OVM the LVs only play to synthesis the on-time calculation of OVM pulses.

Proposed Simplified MLI SVM for Entire Modulation Index.
One of the important contributions of this paper is to propose the simple mathematical approach to find out the V* sub-triangle position of MLI SVM. The proposed MLI SVM is developed based on standard two-level SVM for three-level MLI, and it can be extended for n-level using simple additional equations. In addition to proposed sub-triangle calculation, the reduced mathematical functions for calculating OVM switching on-times is achieved by just adding the compensated on-time gain in over modulation region with LM on-time. Hence, the proposed SVM reduces the implementation burden, since the complex part of MLI SVM calculations of sub-triangle position and OVM on-times are minimized. Figure 4 shows the three-level MLI SVM generation flowchart. Like two-level SVM, the MLI SVM takes the three-phase signal to calculate two-phase voltage vectors stationary reference frame (Vα,Vβ) [20]. Then, the Vα, Vβ are converted into reference voltage vector in polar form as V * ∠ θ, where 'V * ' is the voltage magnitude, and 'θ' is the angle of the V*.

Procedure in Generating MLI SVM in Linear Modulation
Using V* and θ, the reference vector sector position is calculated. Here, based on the V* magnitude the SVD operation regions (either LM or OVM) are calculated. In Figure 4, the flow chart is handling only LM MLI SVM, where the proposed sub-triangle calculations are the same for LM and OVM.
The V* sub-triangle location calculation with-in the sector is calculated through orthogonal time slope mathematical function in Vα, Vβ plane. The stationary plane of V and V are calculated for every Ts and then mapping for the reference vector V* located in sub-triangle is done by The calculation of proposed sub-triangle involves two approaches: (1) Type-1 sub-triangles, (2) Type-2 sub-triangles. The V* position for Type-1 triangles ∆ 1,1 and ∆ 1,4 can be calculated directly from V s αi and V s βi . However, the calculation of Type-2 triangles ∆ 1,3 and ∆ 1,2 (orange colored area in Figure 5b) portions are challenging. Figure 5 shows the V* location identification for Type-1 and Type-2 triangles. According to that, the search process of the triangle of V* can be narrowed down using the two zones in SVD (Zone-1 and Zone-2). The coordinates (V α0 , V β0 ) of these triangles are calculated using two integer calculations of Zone-1 and Zone-2 as follows, In Equation (4), Zone-1 integer denotes the portion of the sector among the two lines joining the vertices divided by distance 'h' and inclined at 120 • with respect to α-axis. In Figure 5b, Zone-1 is valued as zero, it indicates that the point V* is below the line B and C. The Zone-1 appears that the point V* lies between the points A and B and D and F. The Zone-2 denotes the part of the sector between the two lines joining the vertices separated by distance 'h' and parallel to α-axis. When the Zone-2 is valued as zero, it indicates that the reference vector tip V* is positioned between the lines A and D and C and E. When the Zone-2 is valued as integer one, it indicates that the point V* lies above Energies 2019, 12, 4332 9 of 24 the line C and D. Geometrically, the Zone-1 and Zone-2 values are acquired at an intersection of two rectangular regions (rhombus). Here, the V* may be positioned either in triangle ∆ 1,2 or ∆ 1,3 .
In Equation (4), Zone-1 integer denotes the portion of the sector among the two lines joining the vertices divided by distance 'h' and inclined at 120 • with respect to α-axis. In Figure 5b, Zone-1 is valued as zero, it indicates that the point V* is below the line B and C. The Zone-1 appears that the point V* lies between the points A and B and D and F. The Zone-2 denotes the part of the sector between the two lines joining the vertices separated by distance 'h' and parallel to α-axis. When the Zone-2 is valued as zero, it indicates that the reference vector tip V* is positioned between the lines A and D and C and E. When the Zone-2 is valued as integer one, it indicates that the point V* lies above the line C and D. Geometrically, the Zone-1 and Zone-2 values are acquired at an intersection of two rectangular regions (rhombus). Here, the V* may be positioned either in triangle Δ1,2 or Δ1,3. Hence, the V* position in type -1 triangles (Δ1,1 and Δ14) is directly identified from Zone-1 and Zone-2 integer values. The Zone-1 and Zone-2 receipts zero integer, when the V* is located in a triangle Δ1,1. The Zone-1 and Zone-2 receipts integer one when the V* is located in triangle Δ1,4. However, the other options from the Zone-1 and Zone-2 (integers of Zone-1 is zero and Zone-2 is one or Zone-1 is one and Zone-2 is zero) are not assisting in identifying the Δ1,2 and Δ1,3. Hence, the V* position in type -1 triangles (∆ 1,1 and ∆ 14 ) is directly identified from Zone-1 and Zone-2 integer values. The Zone-1 and Zone-2 receipts zero integer, when the V* is located in a triangle ∆ 1,1 . The Zone-1 and Zone-2 receipts integer one when the V* is located in triangle ∆ 1,4 . However, the other options from the Zone-1 and Zone-2 (integers of Zone-1 is zero and Zone-2 is one or Zone-1 is one and Zone-2 is zero) are not assisting in identifying the ∆ 1,2 and ∆ 1 , 3 .
Hence, the Type-2 sub-triangles (∆ 1,2 and ∆ 1 , 3. ) are calculated in rhombus using diagonal slope coordinate comparisons. The V* co-ordinates point with respect to rhombus point B can be written as, Figure 6a shows the sub-triangle ∆ 1,2 and ∆ 1 , 3 rhombus and its slope calculations. The sub-triangle, anywhere in reference vector V* is situated by relating the slope of B and slope of BE. The slope B and BE can be written as, Now, comparing the Equation (8) inequality of the Type-2 sub-triangles (∆ 1,2 and ∆ 1 , 3 .) is identified.
Energies 2019, 11, x FOR PEER REVIEW Hence, the Type-2 sub-triangles (Δ1,2 and Δ1,3.) are calculated in rhombus using diagonal slope coordinate comparisons. The V* co-ordinates point with respect to rhombus point B can be written as, Figure 6a shows the sub-triangle Δ1,2 and Δ1,3 rhombus and its slope calculations. The subtriangle, anywhere in reference vector V* is situated by relating the slope of B and slope of BE. The slope B and BE can be written as, Now, comparing the Equation (8) inequality of the Type-2 sub-triangles (Δ1,2 and Δ1,3.) is identified.

Sub-Triangle Switching On-time Calculations
The flowchart (See Figure 4) shows the complete interpretation of the sub-triangle lookup table (LUT) identification for Zone-1 and Zone-2. To simplify the switching on-time calculations, all subtriangles are further considered into two categories based on their base position either bottom or top. The first category is called as group-1 triangles (Δ1,1, Δ1,2 and Δ1,4), where it has a base at the bottom. Similarly, group-1 triangle (Δ1,3) is placed in SVD with the base side at the top. Figure 7 shows the

Sub-Triangle Switching On-time Calculations
The flowchart (See Figure 3) shows the complete interpretation of the sub-triangle lookup table (LUT) identification for Zone-1 and Zone-2. To simplify the switching on-time calculations, all sub-triangles are further considered into two categories based on their base position either bottom or top. The first category is called as group-1 triangles (∆ 1,1 , ∆ 1,2 and ∆ 1 , 4 ), where it has a base at the bottom. Similarly, group-1 triangle (∆ 1,3 ) is placed in SVD with the base side at the top. Figure 7 shows the group-1 and group-2 triangle for the calculation of switching on-times. For the group-1 and group-2 triangle valuations, the proposed SVM uses simply the calculation by using Zone-1 and Zone-2 triangle positions.

Extending to Over Modulation
To move the V* from LM to OVM region, the V* is moved to outside the hexagonal trajectory. During this circumstance, the Ma is valued more than 0.9 and the V* moves outside SVD hexagonal boundary. Thus, the synthetization of V* in the OVM region is unrealistic (non-linear nature movement). As a result, to achieve the OVM region operation and calculating its switching state ontimes, the traditional approach used trigonometric functions to calculate the OVM voltage vector switching state on-times [20,24,30]. These methods consume more mathematical and implementation complexity. In addition, these methods are producing higher low frequency harmonics. The proposed OVM method has a straightforward nature to realize switching on-time from the LM switching time. Hence the non-linearly can be minimized, which helps to avoid the additional lower frequency harmonics. The OVM region is operated in two zones as OVM-1 (V* is lies from 0.908 to 0.958) and OVM-2 (V* is lies from 0.958 to one).
In the OVM-1 region, as shown in Figure 8, there would be portions of the OVM line cycle, which are placed partly within the SVD hexagon and partly outside the hexagon. Hence the two relations are derived for calculating the on-time for V* circular region and hexagonal region. To differentiate these two boundaries, the crossover angle (θC) is calculated from the reference vector Ma, Now the V* angle θ fulfills the position θ ≤ θ < Π/3 − θ , the V* remains in hexagonal trajectory, and another portion follows the circular trajectory (0 ≤ θ <θ to Π/3 − θ ≤ θ < Π/3). Based on the V* position in SVD, the OVM-1 coordinates (Vα and Vβ) of V* can be calculated from θ and level (n), The group-1 triangle is determined by solving the following Equations (9) and (10), int(zone1) 2 + 2 int (zone2); either ∆ 1,1 , ∆ 1,3 and ∆ 1,4 Else, int(zone1) 2 + 2 int (zone2) + 1; either∆ 1,2 Thus the coordinates of group-1 triangle and group-2 triangles can be calculated as V s αi , V s βi and 0.5 V s αi , h−V s βi . From the individual sub-triangle α, β coordinates, the switching states on-time of each subtriangle can be calculated similarly to two-level SVM.
This calculation can be used for n-level MLI by the accumulation of the group sub-triangles.

Extending to Over Modulation
To move the V* from LM to OVM region, the V* is moved to outside the hexagonal trajectory. During this circumstance, the M a is valued more than 0.9 and the V* moves outside SVD hexagonal boundary. Thus, the synthetization of V* in the OVM region is unrealistic (non-linear nature movement). As a result, to achieve the OVM region operation and calculating its switching state on-times, the traditional approach used trigonometric functions to calculate the OVM voltage vector switching state on-times [20,24,30]. These methods consume more mathematical and implementation complexity. In addition, these methods are producing higher low frequency harmonics. The proposed OVM method has a straightforward nature to realize switching on-time from the LM switching time. Hence the non-linearly can be minimized, which helps to avoid the additional lower frequency harmonics. The OVM region is operated in two zones as OVM-1 (V* is lies from 0.908 to 0.958) and OVM-2 (V* is lies from 0.958 to one).
In the OVM-1 region, as shown in Figure 8, there would be portions of the OVM line cycle, which are placed partly within the SVD hexagon and partly outside the hexagon. Hence the two relations are derived for calculating the on-time for V* circular region and hexagonal region. To differentiate these two boundaries, the crossover angle (θ C ) is calculated from the reference vector M a , Now the V* angle θ fulfills the position θ C ≤ θ < Π/3 − θ C , the V* remains in hexagonal trajectory, and another portion follows the circular trajectory (0 ≤ θ <θ C to Π/3 − θ C ≤ θ < Π/3). Based on the V* position in SVD, the OVM-1 coordinates (V α and V β ) of V* can be calculated from θ and level (n), From the V α and V β , the V s αo and V s βo are calculated for deriving modified switching on-time, To realize the circular trajectory and hexagonal trajectory switching on-times, the gain factor (G t ) can be calculated from the OVM-1 maximum boundary and its actual M a values. The maximum volt-seconds loss in OVM-1 region is proportional to (0.9535 − 0.907). Hence, the G t can be obtained from LM M a as, Adding and subtracting the G t with T 0 , T 1 and T 2 , the circular trajectory and hexagonal trajectory switching on-time can be calculated by modifying the V*. Now from Equations (11), (12), and (17), the hexagonal trajectory switching on-time is derived as, Similarly, the circular trajectory switching on-time is derived as, When the V* modulation index M a is more than 0.9535, then the V* is entered into OVM-2 region. During this time the V* is allowed only in the hexagonal trajectory (beyond the OVM-1 HT), and only six LVs are needed to operate. Hence, the holding angle (θ h ) is derived using a similar strategy [9] to keep the V* at one of the large vectors. The relations 0 ≤ θ < θ h and Π/3 − θ h ≤ θ < θ h help to find one of the LV in the particular sector with changing V* position. The on-time equations of OVM-2 are obtained as, The proposed LM and OVM do not change V* position. Hence, it allows simple implementations.
Similarly, the circular trajectory switching on-time is derived as, When the V* modulation index Ma is more than 0.9535, then the V* is entered into OVM-2 region. During this time the V* is allowed only in the hexagonal trajectory (beyond the OVM-1 HT), and only six LVs are needed to operate. Hence, the holding angle (θ ) is derived using a similar strategy [9] to keep the V* at one of the large vectors. The relations 0 ≤ θ < θ and Π/3 − θ ≤ θ < θ help to find one of the LV in the particular sector with changing V* position. The on-time equations of OVM-2 are obtained as, 0 ≤ θ < θ ; T = T , T = T = 0, The proposed LM and OVM do not change V* position. Hence, it allows simple implementations.

MATLAB-Simulink Implementation of Three-level SVM
The proposed MLI SVM design is established using MATLAB 13.b Simulink with five subsystems that are connected through In and Out Xilinx SG that helps to implement the MLI SVM directly from MATLAB-Simulink (.mdl) file to target FPGA. Figure 9 illustrates the detailed MATLAB-Simulink design flow of proposed MLI SVM.

MATLAB-Simulink Implementation of Three-level SVM
The proposed MLI SVM design is established using MATLAB 13.b Simulink with five subsystems that are connected through In and Out Xilinx SG that helps to implement the MLI SVM directly from MATLAB-Simulink (.mdl) file to target FPGA. Figure 9 illustrates the detailed MATLAB-Simulink design flow of proposed MLI SVM.

1)
The first block is the "Clarke's transformation", in which the three-phase reference rotating frame are converted into V α , V β . 2) The 2nd block named 'Sector and γ identifier' block holds four sub-systems namely reference vector M a , θ, sector and γ.
3) The next block is calculating the local vector reference frame ( V s α0 and V s β0 ) and finding the sub-triangle. Then the switching on-times T 1 , T 2 , and T 0 are calculated (based on two-level SVM).

4) The fouth subsystem is calculating the LM and OVM boundary based on the reference vector M a .
The subsystem receives the sub-triangles, V s α0 and V s β0 to sample switching pulse period for the T s . The switching events of all 27 switching states are stored in LUT. 5) Finally, based on the sector number, sub-triangle number, and M a boundary, the switching on-times are calculated and mapped into the corresponding switching states.
The performance of the MLI SVM for 0< M a ≤0.99 is simulated on a three-level NPC-MLI drive with 460V DC-link, two 470 µF DC-link capacitors, and 10 kHz switching frequency. The 2.45 kW, 1440 rpm, four poles, and 50 Hz induction motor is used as a load. Figure 10  the SVs and ZVs have participated in the switching sequence. Hence, the V uv resulted in 2-level output was 147.8 V with THD value of 13.06 %. Next, the same simulation study is extended for the higher modulation ranges (more than 0.5) and resulting in increased voltage magnitude. When the inverter is operated at maximum LM range of 0.907, the V uv resulted is 268.4 V, as shown in Figure 10. As expected, the fundamental voltage is increasing linearly by increasing M a . Here the line voltage at M a = 0.950 and M a = 0.990 is observed as 282 V and 295 V, respectively. 1) The first block is the "Clarke's transformation", in which the three-phase reference rotating frame are converted into Vα, Vβ.
2) The 2 nd ʽ block named Sector and γ identifier' block holds four sub-systems namely reference vector Ma, θ, sector and γ.
3) The next block is calculating the local vector reference frame ( V and V ) and finding the subtriangle. Then the switching on-times T1, T2, and T0 are calculated (based on two-level SVM).

4) The fouth subsystem is calculating the LM and OVM boundary based on the reference vector Ma.
The subsystem receives the sub-triangles, V and V to sample switching pulse period for the Ts.
The switching events of all 27 switching states are stored in LUT.

5)
Finally, based on the sector number, sub-triangle number, and Ma boundary, the switching ontimes are calculated and mapped into the corresponding switching states.
The performance of the MLI SVM for 0˂ Ma ≤0.99 is simulated on a three-level NPC-MLI drive with 460V DC-link, two 470 μF DC-link capacitors, and 10 kHz switching frequency. The 2.45 kW, 1440 rpm, four poles, and 50 Hz induction motor is used as a load. Figure 10 shows the inverter line voltage (Vuv) waveform for LM, OVM-1 and OVM-2 operations. Initially, the simulation studies are conducted for Ma = 0.5. Here the line voltage (Vuv) is measured as a 2-level output, because only the SVs and ZVs have participated in the switching sequence. Hence, the Vuv resulted in 2-level output was 147.8 V with THD value of 13.06 %. Next, the same simulation study is extended for the higher modulation ranges (more than 0.5) and resulting in increased voltage magnitude. When the inverter is operated at maximum LM range of 0.907, the Vuv resulted is 268.4 V, as shown in Figure 10

FPGA Collaborated Experimentation Setup of Three-Level MLI
The experimental setup diagram and FPGA are collaborated Three-phase three-level NPC MLI is shown in Figure 11. The NPC-MLI is designed with three integrated surface-mounted SK100MLIO66T-SEMIKRON four IGBT modules.

FPGA Collaborated Experimentation Setup of Three-Level MLI
The experimental setup diagram and FPGA are collaborated Three-phase three-level NPC MLI is shown in Figure 11. The NPC-MLI is designed with three integrated surface-mounted SK100MLIO66T-SEMIKRON four IGBT modules.   Two 100 µF, 1000 V rating DC-link capacitors are used for providing DC-link voltage of the MLI. The switching module used HCPL4506 opto-isolator to provide the isolation between the FPGA controller, and IGBT. The Xilinx family SPARTAN-III-3A XC3SD1800A-FG676 DSP-FPGA controller is used to implement and generate the proposed SVM. The 2.45 kW, 1440 r/min, 50 Hz, 4-pole three-phase squirrel-cage induction motor (SCIM) drive is used as a load. The YOKOGAWA spectrum analyzer is used for capturing the experimental results.

MATLAB-Simulink built FPGA Habitat for Hardware Implementation
The MATLAB-Simulink support Xilinx ISE project navigator system generator (SG) tool is used for the proposed SVM implementations as it allows the minimization of the time spent for design and cost of implementation.
The architecture of the proposed SVM FPGA implementation is shown in Figure 12. The FPGA core contains the two main modules: (1) The processing unit; and (2) switching and its mapping unit, as shown in Figure 13. These modules can perform in parallel that helps to minimize the processing time. The processing unit comprises functional blocks to calculate the V*, sector, sub-triangle, αβ coordinates for LM and OVM trajectory, and logical routes. The mapping unit consists of switching vectors for the corresponding sub-triangles. The switching vector-mapping unit uses memory (LUT). It maps the pre-stored switching sequence for the MLI based on sector, sub-triangle. Two 100 μF, 1000 V rating DC-link capacitors are used for providing DC-link voltage of the MLI. The switching module used HCPL4506 opto-isolator to provide the isolation between the FPGA controller, and IGBT. The Xilinx family SPARTAN-III-3A XC3SD1800A-FG676 DSP-FPGA controller is used to implement and generate the proposed SVM. The 2.45 kW, 1440 r/min, 50 Hz, 4-pole threephase squirrel-cage induction motor (SCIM) drive is used as a load. The YOKOGAWA spectrum analyzer is used for capturing the experimental results.

MATLAB-Simulink built FPGA Habitat for Hardware Implementation
The MATLAB-Simulink support Xilinx ISE project navigator system generator (SG) tool is used for the proposed SVM implementations as it allows the minimization of the time spent for design and cost of implementation.  The architecture of the proposed SVM FPGA implementation is shown in Figure 12. The FPGA core contains the two main modules: (1) The processing unit; and (2) switching and its mapping unit, as shown in Figure 13. These modules can perform in parallel that helps to minimize the processing time. The processing unit comprises functional blocks to calculate the V*, sector, sub-triangle, αβ coordinates for LM and OVM trajectory, and logical routes. The mapping unit consists of switching vectors for the corresponding sub-triangles. The switching vector-mapping unit uses memory (LUT). It maps the pre-stored switching sequence for the MLI based on sector, sub-triangle.
The core also considers some key design measures for improving computation accuracy and simplifying hardware design and the fixed-point arithmetic unit is adopted for implementing the The core also considers some key design measures for improving computation accuracy and simplifying hardware design and the fixed-point arithmetic unit is adopted for implementing the calculations. The IP core is designed to operate at 20MHz clock frequency, and high switching To simplify the interface with the processor, commands to these registers are routed through a decoder and interface circuit. The clock is acting as a base time for PWM generator and is operated at 100MHz. The overflow flag from PWM generator unit indicates the value of PWM counter when it reaches the maximum count, which can be used to trigger events for the inverter.

Implementation of the Proposed MLI SVM Scheme in FPGA
The XSG FPGA environment implementation is divided into five stages as follows: MATLAB code generation through XSG, VHDL code generation and its simulation, register transfer level (RTL) file and bit file generation, synthesis and download into target FPGA. Once the RTL file is generated, the proposed SMV architecture RTL view (shown in Figure 14) and off-line simulation is done to view the generated inverter pulses using ModelSim 5.8e. Figure 15 shows the ModelSim simulation results for the proposed MLI SVM. It ensures the desired pulse pattern, t d values. After successful synthesis, the device utilization and power utilization report is generated. It provides the number of logical blocks, LUTs and FFs to be used in architecture. The proposed MLI SVM uses only 3.7% LUT memory space in the FPGA, since it uses simple 2-level SVM, and hence, does not require any additional calculations for calculating the switching on-time. It also minimizes the processing time for LM and OVM operations. Figure 16a shows the internal structure based on the described SVM implementation design. After RTL synthesis, the net list is saved as an NGC file. Afterwards, the JTAG serial mode ("IEEE Standard 1149.1") configuration interface card is used to download the code to the Target FPGA SPARTAN-III-3A XC3SD1800A-FG676. The JTAG configuration is through the independent boundary scan selection. Then the regenerated bit file is generated. Finally, the developed RTL is converted to bit stream format, and then the UCF is written for pin assignment for the mapping process. Mapping is done to fit the design into the available resource of the target FPGA processor. Finally, placing the code in target FPGA is done.
("IEEE Standard 1149.1") configuration interface card is used to download the code to the Target FPGA SPARTAN-III-3A XC3SD1800A-FG676. The JTAG configuration is through the independent boundary scan selection. Then the regenerated bit file is generated. Finally, the developed RTL is converted to bit stream format, and then the UCF is written for pin assignment for the mapping process. Mapping is done to fit the design into the available resource of the target FPGA processor. Finally, placing the code in target FPGA is done.

MLI SVM FPGA Implementation Results
There are three types of floor views that are generated for the SVM IC, which are overall floor view of device utilization, input port assign view, and output port assign view. From Figure 16a, it is observed that the proposed code occupies very less resource/area. Figure 16b shows the input and output port of the proposed implementation. The proposed PWM design I/O's are mapped properly FPGA SPARTAN-III-3A XC3SD1800A-FG676. The JTAG configuration is through the independent boundary scan selection. Then the regenerated bit file is generated. Finally, the developed RTL is converted to bit stream format, and then the UCF is written for pin assignment for the mapping process. Mapping is done to fit the design into the available resource of the target FPGA processor. Finally, placing the code in target FPGA is done.

MLI SVM FPGA Implementation Results
There are three types of floor views that are generated for the SVM IC, which are overall floor view of device utilization, input port assign view, and output port assign view. From Figure 16a, it is observed that the proposed code occupies very less resource/area. Figure 16b shows the input and output port of the proposed implementation. The proposed PWM design I/O's are mapped properly Due to the simplification of sub-triangle calculations and OVM-1 switching mapping, the overall device utilization of the proposed SVM implementation becomes 5.88%, which is less than the earlier implementations [14,23,41,46]. The simplified calculation to find the rhombus sub-triangles selection and OVM-1 on-time calculations are the primary reasons for the memory reduction (around 0.17%), while considering the implementation reported in [23]. The additional reductions are achieved by way of reducing the LUT usage for operation by repeating switching states. The processing time of the proposed implementation for LM OVM-1, and OVM-2 are calculated using [38], and the values are 13.017 μs, 14.561 μs, and 15.532 μs, respectively. From the results, it can be understood that the proposed FPGA implementations are taking the same time for all LM values as 13.017 μs, since sub-system calculation is same for all the range of LM from 0.5 to 0.907. However, during over modulation operations, the processing time for the proposed implementation is increased. The increase in time is because of Gt calculation for the new on-times. Nevertheless, when compared to the early implementations, the time taken for OVM is less for the proposed method [23], and it is expected while implementing with other family FPGAs. Similarly, considering the device utilization (memory occupied) on FPGA for the proposed implementations, it is considerably lesser. From the above analysis and results, it is clear that the proposed MLI SVM algorithm and its Sparten-3 FPGA implementation improved in terms of their owning mathematical complexity and implementation. Hence, due to this reduced mathematical burden, less device utilization and processing time, the proposed implementations fit to be considered as an IP core that can be incorporated into a System On-Chip with other IP cores and it can greatly reduce the area of a PCB

MLI SVM FPGA Implementation Results
There are three types of floor views that are generated for the SVM IC, which are overall floor view of device utilization, input port assign view, and output port assign view. From Figure 16a, it is observed that the proposed code occupies very less resource/area. Figure 16b shows the input and output port of the proposed implementation. The proposed PWM design I/O's are mapped properly using UCF based on reduction of the power losses. The implementation consumes only 0.13 W power utilization for one cyclic operation of pulse generation.
Due to the simplification of sub-triangle calculations and OVM-1 switching mapping, the overall device utilization of the proposed SVM implementation becomes 5.88%, which is less than the earlier implementations [14,23,40,45]. The simplified calculation to find the rhombus sub-triangles selection and OVM-1 on-time calculations are the primary reasons for the memory reduction (around 0.17%), while considering the implementation reported in [23]. The additional reductions are achieved by way of reducing the LUT usage for operation by repeating switching states.
The processing time of the proposed implementation for LM OVM-1, and OVM-2 are calculated using [37], and the values are 13.017 µs, 14.561 µs, and 15.532 µs, respectively. From the results, it can be understood that the proposed FPGA implementations are taking the same time for all LM values as 13.017 µs, since sub-system calculation is same for all the range of LM from 0.5 to 0.907. However, during over modulation operations, the processing time for the proposed implementation is increased. The increase in time is because of G t calculation for the new on-times. Nevertheless, when compared to the early implementations, the time taken for OVM is less for the proposed method [23], and it is expected while implementing with other family FPGAs. Similarly, considering the device utilization (memory occupied) on FPGA for the proposed implementations, it is considerably lesser. From the above analysis and results, it is clear that the proposed MLI SVM algorithm and its Sparten-3 FPGA implementation improved in terms of their owning mathematical complexity and implementation. Hence, due to this reduced mathematical burden, less device utilization and processing time, the proposed implementations fit to be considered as an IP core that can be incorporated into a System On-Chip with other IP cores and it can greatly reduce the area of a PCB and improve the immunity to interferences for the power converters design.

Experimental Results and Analysis
In order to validate the proposed MLI SVM FPGA implementation, the experimentation study is conducted for 2.3 kW three-phase induction motor supplied from three-phase three-level NPC-MLI. The DC-link voltage of the NPC-MLI is maintained at 560 V through an uncontrolled rectifier. The two 100 µF DC-link capacitors C 1 and C 2 are connected with DC-link to clamp the voltage. The switching frequency of 10 kHz and dead time of 6µsec is used between two complementary switches. The experiment study is performed with modulation index value from 0.7 to maximum over modulation range (M a = 0.99). During the study, the speed of the motor is recorded using digital tacho-generator. Figure 17a-d depicts the experimental results of MLI line-voltage (V uv ) and corresponding current (I u ) for M a = 0.7, M a = 0.9, M a = 0.95, and M a = 0.99, respectively. In the LM region, the inverter output voltage is obtained as 205.2 V and 262.4 V for M a = 0.7 and M a = 0.9, respectively. However, while increasing the M a from LM to OVM, the fundamental voltage is increased linearly. The V ab for M a = 0.7 and M a = 0.9 is obtained as 280.3 V and 292.5 V, respectively. From the results, it can be seen that the inverter voltage and current waveforms are changing based on the modulation index value.
However, the voltage and current waveforms are smooth in all the range of modulation indices. This demonstrates that the proposed SVM is working with full control degree of freedom in the linear and over modulation region. Figure 18a-d shows the voltage and current harmonics spectrum. The voltage and its corresponding current harmonics in the LM are lesser when compared with those in the OVM regions. The line voltage percentage THD is observed as 10.2%, 12.9%, and 13.5% for M a = 0.9, M a = 0.95 and M a = 0.99, respectively. This increase is due to the non-linearity in the switching on-times in the OVM region operation. Similarly, the current percentage THD in OVM is higher than that in LM. When compared with the other multicarrier and selective harmonics elimination PWM methods, the proposed SVM has lower current and voltage THD in both LM and OVM. In addition, while changing the inverter operation from one region to another region, the voltage and current waveforms are smooth, and there are no abrupt changes.  However, the voltage and current waveforms are smooth in all the range of modulation indices. This demonstrates that the proposed SVM is working with full control degree of freedom in the linear and over modulation region. Figure 18a-d shows the voltage and current harmonics spectrum. The voltage and its corresponding current harmonics in the LM are lesser when compared with those in the OVM regions. The line voltage percentage THD is observed as 10.2%, 12.9%, and 13.5% for Ma = 0.9, Ma = 0.95 and Ma = 0.99, respectively. This increase is due to the non-linearity in the switching ontimes in the OVM region operation. Similarly, the current percentage THD in OVM is higher than that in LM. When compared with the other multicarrier and selective harmonics elimination PWM methods, the proposed SVM has lower current and voltage THD in both LM and OVM. In addition, while changing the inverter operation from one region to another region, the voltage and current waveforms are smooth, and there are no abrupt changes.
The induction motor speed variations for the modulation index range from Ma = 0.7 to Ma = 0.99 are measured and plotted in Figure 19. From the results, it can be seen that the motor speed changes in linear with the SVM modulation index. This illustrates that the proposed SVM can be directly employed to open-loop drives. In closed-loop operation, depending on the control requirement, the proposed SVM voltage reference magnitude and frequency can be changed easily without any additional mathematical calculations. The induction motor speed variations for the modulation index range from M a = 0.7 to M a = 0.99 are measured and plotted in Figure 19. From the results, it can be seen that the motor speed changes in linear with the SVM modulation index. This illustrates that the proposed SVM can be directly employed to open-loop drives. In closed-loop operation, depending on the control requirement, the proposed SVM voltage reference magnitude and frequency can be changed easily without any additional mathematical calculations.  Figure 19. Motor speed response while changing modulation index.

Conclusions
In this paper, the detailed theoretical analytical study on MLI SVM and its digital implementation practices are explained. In addition to the previous method of SVM, the paper has also proposed a simplified mathematical approach to find out the MLI SVD sub-triangles, switching on-time

Conclusions
In this paper, the detailed theoretical analytical study on MLI SVM and its digital implementation practices are explained. In addition to the previous method of SVM, the paper has also proposed a simplified mathematical approach to find out the MLI SVD sub-triangles, switching on-time calculation in both linear and over modulation. The proposed three-level MLI-SVM is exhibited based on two-level SVM without changing the reference vector position, unlike the traditional approaches. Hence, it can be easily prolonged with additional LUTs for any n-level inverter without any significant increase in computations. The proposed MLI SVM is comprehensively analyzed and validated for implementation in Xilinx family SPARTAN-III-3A XC3SD1800A-FG676 FPGA. The mathematical procedure involved in the proposed MLI SVM is reduced compared to the early attempts; hence, the device utilization and processing time are considerably reduced. The MATLAB-Simulink SG based simulation and SPARTAN-III-3A XC3SD1800A-FG676 FPGA implementation are performed to validate the proposed SVM with 2 kW three-phase three-level NPC MLI fed induction motor drive system. The presented results are confirming the performance of the MLI SVM at different modulation depths of the NPC MLI. The proposed implementation fits to be considered as an IP core that can be incorporated into a System On-Chip with other IP cores.
Author Contributions: All authors are involved in developing the concept, simulation and experimental validation and to make the article error free technical outcome for the set investigation work.
Funding: This research received no external funding.

Conflicts of Interest:
The authors declare no conflict of interest.