Opened 5 years ago
Last modified 5 years ago
#5940 assigned defect
MSL example model AIMC_InverterDrive fails to simulate
Reported by: | Dietmar Winkler | Owned by: | Andreas Heuermann |
---|---|---|---|
Priority: | blocker | Milestone: | 2.0.0 |
Component: | Run-time | Version: | v1.16.0-dev |
Keywords: | MSL | Cc: | Karim Adbdelhak |
Description
I noticed that the following MSL example fails to simulate:
Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_InverterDrive
Change History (17)
comment:1 by , 5 years ago
comment:2 by , 5 years ago
See the analysis in #5452. I understand the original problem reported in that ticket (i.e. wrong index reduction) was finally fixed by Karim.
If you have some more insight to report here that would be very helpful.
comment:3 by , 5 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
OK looks like this is a duplicate of #5452 then. Thanks for the pointer.
comment:4 by , 5 years ago
comment:5 by , 5 years ago
As far as i remember i managed to fix the index reduction to a point it finally recognized the static index reduction, but afterwards the simulation chattered and stopped.
My guess was that it is due to wrong handling of time events as state events, but it might be due to some other issue. Any intel is welcome here!
comment:6 by , 5 years ago
Unfortunately I don't have any more to supply other than what the coverage already is reporting:
https://libraries.openmodelica.org/branches/newInst/Modelica_3.2.3/files/Modelica_3.2.3_Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_InverterDrive.err
comment:7 by , 5 years ago
Resolution: | duplicate |
---|---|
Status: | closed → reopened |
comment:9 by , 5 years ago
OK in that case it is even worse if the simulation results log "looks fine" even if the simulation fails.
comment:10 by , 5 years ago
The first one is the log for building the simulation (which works fine). The second log is for running the simulation (which fails)
comment:11 by , 5 years ago
OK, I see. So it might help then to make the simulation run log a bit more verbose, especially when it fails. The model creates a good deal warnings and error messages in OMEdit at least.
comment:12 by , 5 years ago
Cc: | added |
---|---|
Milestone: | Future → 2.0.0 |
Priority: | high → blocker |
Indeed. The log in OMEdit is
Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found The initialization finished successfully without homotopy method. Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Error solving nonlinear system 809 at time 0.0241249 Error solving nonlinear system 809 at time 0.0241249 nonlinear system 809 fails: at t=0.0241249 [1] Real der(aimc.is[2])(start=0, nominal=1) [2] Real der(aimc.is[1])(start=0, nominal=1) [3] Real aimc.lssigma.spacePhasor_b.v_[1](start=0, nominal=1) [4] Real aimc.lssigma.spacePhasor_b.v_[2](start=0, nominal=1) [5] Real inverter.dc_p.v(start=0, nominal=1) Warning: maximal number of iteration reached but no root found [6] Real inverter.transistor_n.idealGTOThyristor[3].s(start=0, nominal=1) [7] Real inverter.diode_p.idealDiode[3].s(start=0, nominal=1) [8] Real inverter.transistor_p.idealGTOThyristor[3].s(start=0, nominal=1) [9] Real inverter.diode_n.idealDiode[3].s(start=0, nominal=1) [10] Real rectifier.diode_n.idealDiode[2].s(start=0, nominal=1) [11] Real rectifier.diode_p.idealDiode[2].s(start=0, nominal=1) [12] Real rectifier.diode_n.idealDiode[3].s(start=0, nominal=1) [13] Real rectifier.diode_p.idealDiode[3].s(start=0, nominal=1) [14] Real inverter.transistor_p.idealGTOThyristor[1].s(start=0, nominal=1) [15] Real inverter.transistor_n.idealGTOThyristor[1].s(start=0, nominal=1) Warning: maximal number of iteration reached but no root found [16] Real inverter.diode_n.idealDiode[1].s(start=0, nominal=1) [17] Real inverter.diode_p.idealDiode[1].s(start=0, nominal=1) [18] Real inverter.transistor_n.idealGTOThyristor[2].s(start=0, nominal=1) [19] Real inverter.diode_n.idealDiode[2].s(start=0, nominal=1) [20] Real inverter.transistor_p.idealGTOThyristor[2].s(start=0, nominal=1) [21] Real inverter.diode_p.idealDiode[2].s(start=0, nominal=1) [22] Real rectifier.diode_p.idealDiode[1].s(start=0, nominal=1) [23] Real rectifier.diode_n.idealDiode[1].s(start=0, nominal=1) Simulation process failed. Exited with code -1. Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found Warning: maximal number of iteration reached but no root found
and the simulation fails later at time = 0.0241249.
@sjoelund.se, @adeas31, any clue as to what are the different settings between the Jenkins run and the OMEdit run? Aren't they supposed to be the same?
comment:13 by , 5 years ago
OMEdit always run with -w and -lv=LOG_STATS as default.
Maybe the warnings are because of -w
flag.
comment:14 by , 5 years ago
I guess so. I'm not sure if it is wise to turn that on in the Jenkins scripts, since some cases could easily flood the file system with humongous log files.
follow-up: 16 comment:15 by , 5 years ago
Hmm but wouldn't that be a perfect indicator that something is really wrong and needs urgent fixing? ;-)
comment:16 by , 5 years ago
Replying to dietmarw:
Hmm but wouldn't that be a perfect indicator that something is really wrong and needs urgent fixing? ;-)
I don't think urgency should be dictated by the fact that a bug in a few of the 10000 models we test daily hangs up the server :)
Seriously, 627 tickets were fixed in 1.14.0, 1.15.0 and 1.16.0-dev. Unfortunately we still have another 497 pending, of which 145 marked as blockers. We're trying to do our best given the limited resources we have.
comment:17 by , 5 years ago
Cc: | added; removed |
---|---|
Component: | *unknown* → Run-time |
Owner: | changed from | to
Status: | reopened → assigned |
@AnHeuermann, I'm trying to figure this out. The original index reduction problem was solved by @Karim a long time ago. The Jenkins server reports
Regular simulation: ./Modelica_3.2.3_Modelica.Electrical.Machines.Examples.AsynchronousInductionMachines.AIMC_InverterDrive -abortSlowSimulation -alarm=480 -emit_protected -lv LOG_STATS LOG_SUCCESS | info | The initialization finished successfully without homotopy method. assert | debug | Solving non-linear system 809 failed at time=0.00825000000007505. | | | | For more information please use -lv LOG_NLS.
while if I use the latest nigthly in OMEdit, I get
The initialization finished successfully without homotopy method. Simulation terminated due to too many, i.e. 20, event iterations. This could either indicate an inconsistent system or an undersized limit of event iterations. The limit of event iterations can be specified using the runtime flag '–mei=<value>'.
I'm not sure what is wrong with this model and why we get different outcomes on Jenkins (with Linux) and on OMEdit (with Windows).
Could you please check?
Thanks!
After some more trial and error investigations I could isolate the problem to the PWM generation unit. Using triangle-intersection method improves the situation slightly but still gets the simulation stuck at a later point in time.
So it looks like that OMC is struggling with