Opened 11 years ago

Closed 11 years ago

#2324 closed defect (fixed)

Linear Tearing produces wrong simulation results

Reported by: Patrick Täuber Owned by: Lennart Ochel
Priority: high Milestone: 1.9.0
Component: Run-time Version: trunk
Keywords: Cc: Lennart Ochel, Jens Frenkel, Volker Waurich

Description

model Tearing 
  "Example from Book Continous System Simulation by F. Cellier page 263"
   Real u0;
   Real i1(start=1);
  Real i2(start=1);
  Real i3(start=1);
   Real u1(start=1);
  Real u2(start=1);
  Real u3(start=1);
   parameter Real r1=10;
   parameter Real r2=10;
   parameter Real r3=10;
equation 
   u0 = sin(time)*10;
   u1-r1*i1=0;
   u2-r2*i2=0;
   u3-r3*i3=0;
   u1+u3=u0;
   u2-u3=0;
   i1-i2-i3=0;
end Tearing;

Using linear Tearing produces the following values for time=0:

[4] Real u1(start=1, nominal=1) = -10 (pre: 1)
[7] Real i1(start=1, nominal=1) = 2 (pre: 1)
Eq2: u1-r1*i1 <> 0;

Example from:
testsuite/simulation/modelica/tearing/Tearing.mo

Change History (5)

comment:1 by Patrick Täuber, 11 years ago

Cc: Jens Frenkel Volker Waurich added

comment:2 by Jens Frenkel, 11 years ago

I have checked the symbolic changes and the generated code. It looks like a reintroduced bug by implementing the lates solve nonlinear system interfaces. For the torn systems it is essential to call the so called "other equations" once again after solving the nonlinear systems. If this is not done the lates values in the so called "other variables" (this are the variables calculated from tearing variables" have not the right values. This is because the solvers last call to residualFunc was not with the solution values.

Willi should confirm that.

comment:3 by Jens Frenkel, 11 years ago

Owner: changed from somebody to Willi Braun
Status: newassigned

comment:4 by Lennart Ochel, 11 years ago

Owner: changed from Willi Braun to Lennart Ochel

comment:5 by Lennart Ochel, 11 years ago

Resolution: fixed
Status: assignedclosed

fixed in r16921

Note: See TracTickets for help on using tickets.