0 votes

Hello,

I would like to investigate different modulation strategies for a 3-LVL-ANPC-SiC topology under different operating points in terms of overall efficiency and power dissipation (temperature) per switch.

To generate the switching points I use the carrier based PWM method (switching signals by comparing a sine reference voltage with 2 triangle comparative voltages). Same-side clamping, opposite-side clamping and full path clamping are used as modulation strategies.

The control of the switches and the generation of a three-phase sinusoidal current in the load works for the majority of the operating points under investigation. The occurrence of losses per switch is also in line with the values expected from theory.

In order to model the temperature-dependent R_DS_on of the Sic MOSFET, I set the Ron in Parameters to 0 and inserted a variable resistor, which uses a 2D look-up table to output a suitable Rds-on depending on the I_DS current and MOSFET junction temperature.

However, due to the variable resistor, I now get the following warning in every of the 18 switch models:

"Detected an algebraic loop comprising the following components:

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/MOSFET

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/2D-Table1

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Product

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Subtract

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Algebraic Component

As mentioned at the beginning, this is not a problem for the majority of operating points.

However, the warning above develops into the following error:

Could not solve the algebraic loop comprising the following components:

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/MOSFET

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/2D-Table1

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Product

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Subtract

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Algebraic Component

This leads to immediate termination of the simulation and occurs in particular at operating points with a very small power factor (=large phase shift) and always during the transient process in the very beginning.

Hence my question: is there a way to avoid the error or to change a setting so that the algebraic loop remains (warning) but can be solved?

I would really appreciate an answer. I have attached pictures to illustrate the problem.

Kind regards

THK

I would like to investigate different modulation strategies for a 3-LVL-ANPC-SiC topology under different operating points in terms of overall efficiency and power dissipation (temperature) per switch.

To generate the switching points I use the carrier based PWM method (switching signals by comparing a sine reference voltage with 2 triangle comparative voltages). Same-side clamping, opposite-side clamping and full path clamping are used as modulation strategies.

The control of the switches and the generation of a three-phase sinusoidal current in the load works for the majority of the operating points under investigation. The occurrence of losses per switch is also in line with the values expected from theory.

In order to model the temperature-dependent R_DS_on of the Sic MOSFET, I set the Ron in Parameters to 0 and inserted a variable resistor, which uses a 2D look-up table to output a suitable Rds-on depending on the I_DS current and MOSFET junction temperature.

However, due to the variable resistor, I now get the following warning in every of the 18 switch models:

"Detected an algebraic loop comprising the following components:

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/MOSFET

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/2D-Table1

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Product

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Subtract

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Algebraic Component

As mentioned at the beginning, this is not a problem for the majority of operating points.

However, the warning above develops into the following error:

Could not solve the algebraic loop comprising the following components:

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/MOSFET

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/2D-Table1

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Product

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Subtract

3_LVL_ANPC_SiC_VSI_Ron_Erec/S1a/R/Algebraic Component

This leads to immediate termination of the simulation and occurs in particular at operating points with a very small power factor (=large phase shift) and always during the transient process in the very beginning.

Hence my question: is there a way to avoid the error or to change a setting so that the algebraic loop remains (warning) but can be solved?

I would really appreciate an answer. I have attached pictures to illustrate the problem.

Kind regards

THK

0 votes

The answer to this is model dependent. The general approaches I would recommend are:

- The interaction between algebraic-loops within the different switches can be quite complex. If the variable Rdson is useful, is it necessary to have all the switches in your converter modeled with a variable Rdson? I recommend only using the variable Rdson in a sub-set of switches in the converter.
- It may be advantageous to convert the the look-up table into a continuous algebraic expression. Can you use a polynomial expression to capture the relationship between Rdson(i,T)?

At a higher-level, does modeling the variable nature of the Rdson truly improve the accuracy of the results? If not, then this may be a case of "over-modeling". Using a constant resistance representative of the expected operating region will make your model more numerically stable and result in a faster simulation.

Glad to hear that was helpful.

> Is this a valid approach? What are the potential risks of such a low Relative tolerance?

The downside can be slower simulations in some instances.

Normally state discontinuities with large errors (e.g. inductor current from 10A -> 0A) point to the issues described in this FAQ link. State discontinuities with small errors can be due to solver accuracy as you have identified.

If the state value is not close to zero, then the "Relative Tolerance" setting is the value I would typically adjust.

If the state value is very close to zero (as is the case in your model) then I would change the "Absolute Tolerance" from "auto" to a small value (e.g. 1e-3, but depends on the minimum reasonable state value) and adjust this setting from there.

...

Thank you for your answer. Now I implemented the variable R_DS_on only in Phase a of my 3-phase VSI. Thanks to this, the sim time is a lot faster and there are less errors due to algebraic loops.

But I have observed another error that leads to the cancelation of the simulation:

State discontinuity after switching. The current through inductor 3_LVL_ANPC_SiC_VSI_Ron_Erec/L1 is forced to jump from 1.06399e-05 to 7.09323e-06.

Since this problem has been discussed before ( https://forum.plexim.com/7672/state-disconuity-after-switching-error?show=7672#q7672 ) I changed the Relative tolerance on the solver settings to 1e-9 (1e-6 was not enough).

The simulation runs now fine and there are, as far as I can tell, no strange outliers regarding Losses, Currents, Voltages etc.

Is this a valid approach? What are the potential risks of such a low Relative tolerance?

Best regards

THK