modelica-3rdparty / PowerSystems

Free (standard conform) library that is intended to model electrical power systems at different levels of detail both in transient and steady-state mode.
67 stars 36 forks source link

Division by zero in PowerSystems.Examples.AC3ph.Generation.Islanding #54

Open maltelenz opened 9 months ago

maltelenz commented 9 months ago

The Islanding example:

https://github.com/modelica-3rdparty/PowerSystems/blob/67d22eba4d869276f4d3196bf525c2255d615c98/PowerSystems/Examples/AC3ph/Generation.mo#L1129-L1135

has a division by zero problem.

Through a series of extends, we end up in PowerSystems.AC3ph.Machines.Partials.SynchronBase, specifically this line:

https://github.com/modelica-3rdparty/PowerSystems/blob/67d22eba4d869276f4d3196bf525c2255d615c98/PowerSystems/AC3ph/Machines.mo#L1008

In this context, c.wf is 0. It is computed here:

https://github.com/modelica-3rdparty/PowerSystems/blob/67d22eba4d869276f4d3196bf525c2255d615c98/PowerSystems/Utilities/Precalculation.mo#L493

In this context, p is PowerSystems.Examples.Data.Machines.Synchron_pm560V_100kVA, which has:

https://github.com/modelica-3rdparty/PowerSystems/blob/67d22eba4d869276f4d3196bf525c2255d615c98/PowerSystems/Examples/Data/Machines.mo#L253