numerical simulation of dynamic systems xv

122
Numerical Simulation of Dynamic Systems XV Numerical Simulation of Dynamic Systems XV Prof. Dr. Fran¸ cois E. Cellier Department of Computer Science ETH Zurich April 16, 2013

Upload: others

Post on 07-Jan-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Prof. Dr. Francois E. CellierDepartment of Computer Science

ETH Zurich

April 16, 2013

Page 2: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops

Unfortunately, the approach proposed in the previous presentation doesn’t always work:

Page 3: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops

Unfortunately, the approach proposed in the previous presentation doesn’t always work:

U0=

10

R=20L=

0.00

15

Ground

R=1

00

+

-

R1

R2

R3

L

U0

i0 u1

i1

u2

i2

u3

i3

uL

iL

Page 4: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops

Unfortunately, the approach proposed in the previous presentation doesn’t always work:

U0=

10

R=20L=

0.00

15

Ground

R=1

00

+

-

R1

R2

R3

L

U0

i0 u1

i1

u2

i2

u3

i3

uL

iL 1: u0 = f (t)2: u1 = R1 · i13: u2 = R2 · i24: u3 = R3 · i35: uL = L · diL

dt

6: u0 = u1 + u3

7: uL = u1 + u2

8: u3 = u2

9: i0 = i1 + iL10: i1 = i2 + i3

Page 5: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops

Unfortunately, the approach proposed in the previous presentation doesn’t always work:

U0=

10

R=20L=

0.00

15

Ground

R=1

00

+

-

R1

R2

R3

L

U0

i0 u1

i1

u2

i2

u3

i3

uL

iL 1: u0 = f (t)2: u1 = R1 · i13: u2 = R2 · i24: u3 = R3 · i35: uL = L · diL

dt

6: u0 = u1 + u3

7: uL = u1 + u2

8: u3 = u2

9: i0 = i1 + iL10: i1 = i2 + i3

⇒ We got again 10 implicitlyformulated DAEs in 10 unknowns.

Page 6: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops II

Let us try the same approach. The structure digraph of the DAE system can be drawnas follows:

Eq.(1)

Eq.(2)

Eq.(3)

Eq.(4)

Eq.(5)

Eq.(6)

Eq.(7)

Eq.(8)

Eq.(9)

Eq.(10)

u0

i0

u1

i1

u2

i2

uL

diL/dt

u3

i3

Page 7: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops III

After a few steps of causalization:

Page 8: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops III

After a few steps of causalization:

Eq.(1)

Eq.( )

Eq.( )

Eq.( )

Eq.(9)

Eq.( )

Eq.(8)

Eq.( )

Eq.(10)

Eq.( )

u0

i0

u1

i1

u2

i2

uL

diL/dt

u3

i3

Page 9: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops III

After a few steps of causalization:

Eq.(1)

Eq.( )

Eq.( )

Eq.( )

Eq.(9)

Eq.( )

Eq.(8)

Eq.( )

Eq.(10)

Eq.( )

u0

i0

u1

i1

u2

i2

uL

diL/dt

u3

i3

� After four causalization steps, thealgorithm stalls.

Page 10: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops III

After a few steps of causalization:

Eq.(1)

Eq.( )

Eq.( )

Eq.( )

Eq.(9)

Eq.( )

Eq.(8)

Eq.( )

Eq.(10)

Eq.( )

u0

i0

u1

i1

u2

i2

uL

diL/dt

u3

i3

� After four causalization steps, thealgorithm stalls.

� Every remaining acausal equationhas at least two black lines attached,i.e., contains at least two unknowns.

Page 11: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops III

After a few steps of causalization:

Eq.(1)

Eq.( )

Eq.( )

Eq.( )

Eq.(9)

Eq.( )

Eq.(8)

Eq.( )

Eq.(10)

Eq.( )

u0

i0

u1

i1

u2

i2

uL

diL/dt

u3

i3

� After four causalization steps, thealgorithm stalls.

� Every remaining acausal equationhas at least two black lines attached,i.e., contains at least two unknowns.

� Every remaining non-causalizedvariable has at least two black linesattached, i.e., appears in at least twodifferent equations.

Page 12: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops III

After a few steps of causalization:

Eq.(1)

Eq.( )

Eq.( )

Eq.( )

Eq.(9)

Eq.( )

Eq.(8)

Eq.( )

Eq.(10)

Eq.( )

u0

i0

u1

i1

u2

i2

uL

diL/dt

u3

i3

� After four causalization steps, thealgorithm stalls.

� Every remaining acausal equationhas at least two black lines attached,i.e., contains at least two unknowns.

� Every remaining non-causalizedvariable has at least two black linesattached, i.e., appears in at least twodifferent equations.

� The remaining acausal equationsform an algebraic loop.

Page 13: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops IV

Let us read out the partially causalized equations from the structure digraph. I placedall unknowns of the acausal equations to the left of the equal sign:

u0 = f (t)

u1 − R1 · i1 = 0

u2 − R2 · i2 = 0

u3 − R3 · i3 = 0

u1 + u3 = u0

u2 − u3 = 0

i1 − i2 − i3 = 0

uL = u1 + u2

diL

dt= uL/L

i0 = i1 + iL

Page 14: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops IV

Let us read out the partially causalized equations from the structure digraph. I placedall unknowns of the acausal equations to the left of the equal sign:

u0 = f (t)

u1 − R1 · i1 = 0

u2 − R2 · i2 = 0

u3 − R3 · i3 = 0

u1 + u3 = u0

u2 − u3 = 0

i1 − i2 − i3 = 0

uL = u1 + u2

diL

dt= uL/L

i0 = i1 + iL

There is a group of six equations in six unknowns that have not yet been causalizedand that need to be solved together, because they form an algebraic loop.

Page 15: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops V

The structure incidence matrix of the partially sorted equations is in block lowertriangular (BLT) form:

S =

⎡⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎣

u0 u1 i1 u2 i2 u3 i3 uLdiLdt

i0

1: 1 | 0 0 0 0 0 0 0 0 0− + − − − − − − .

2: 0 | 1 1 0 0 0 0 | 0 0 03: 0 | 0 0 1 1 0 0 | 0 0 04: 0 | 0 0 0 0 1 1 | 0 0 05: 1 | 1 0 0 0 1 0 | 0 0 06: 0 | 0 0 1 0 1 0 | 0 0 07: 0 | 0 1 0 1 0 1 | 0 0 0

. − − − − − − + − .8: 0 1 0 1 0 0 0 | 1 | 0 0

. − + − .9: 0 0 0 0 1 0 0 1 | 1 | 0

. − + −10: 0 0 1 0 0 0 0 0 0 | 1

⎤⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎦

Page 16: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops VI

How do we solve the loop equations?

Page 17: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops VI

How do we solve the loop equations?

� If the equations are linear in the unknown variables, we can use matrixtechniques. In the above example:

⎛⎜⎜⎜⎜⎜⎝

1 −R1 0 0 0 00 0 1 −R2 0 00 0 0 0 1 −R3

1 0 0 0 1 00 0 1 0 −1 00 1 0 −1 0 −1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u1

i1u2

i2u3

i3

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

000u0

00

⎞⎟⎟⎟⎟⎟⎠

Page 18: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops VI

How do we solve the loop equations?

� If the equations are linear in the unknown variables, we can use matrixtechniques. In the above example:

⎛⎜⎜⎜⎜⎜⎝

1 −R1 0 0 0 00 0 1 −R2 0 00 0 0 0 1 −R3

1 0 0 0 1 00 0 1 0 −1 00 1 0 −1 0 −1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u1

i1u2

i2u3

i3

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

000u0

00

⎞⎟⎟⎟⎟⎟⎠

� If the equations are non-linear in the unknown variables, we can use Newtoniteration.

Page 19: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops VI

How do we solve the loop equations?

� If the equations are linear in the unknown variables, we can use matrixtechniques. In the above example:

⎛⎜⎜⎜⎜⎜⎝

1 −R1 0 0 0 00 0 1 −R2 0 00 0 0 0 1 −R3

1 0 0 0 1 00 0 1 0 −1 00 1 0 −1 0 −1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u1

i1u2

i2u3

i3

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

000u0

00

⎞⎟⎟⎟⎟⎟⎠

� If the equations are non-linear in the unknown variables, we can use Newtoniteration.

However in either case, we are still dealing with too many unnecessary loop variables.

Page 20: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Algebraic Loops

Algebraic Loops VI

How do we solve the loop equations?

� If the equations are linear in the unknown variables, we can use matrixtechniques. In the above example:

⎛⎜⎜⎜⎜⎜⎝

1 −R1 0 0 0 00 0 1 −R2 0 00 0 0 0 1 −R3

1 0 0 0 1 00 0 1 0 −1 00 1 0 −1 0 −1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u1

i1u2

i2u3

i3

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

000u0

00

⎞⎟⎟⎟⎟⎟⎠

� If the equations are non-linear in the unknown variables, we can use Newtoniteration.

However in either case, we are still dealing with too many unnecessary loop variables.

We shall discuss next, how the number of loop (iteration) variables can be reduced.

Page 21: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm

Let us look more closely at the algebraic loop found earlier. The equations were:

u1 − R1 · i1 = 0

u2 − R2 · i2 = 0

u3 − R3 · i3 = 0

u1 + u3 = u0

u2 − u3 = 0

i1 − i2 − i3 = 0

Page 22: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm

Let us look more closely at the algebraic loop found earlier. The equations were:

u1 − R1 · i1 = 0

u2 − R2 · i2 = 0

u3 − R3 · i3 = 0

u1 + u3 = u0

u2 − u3 = 0

i1 − i2 − i3 = 0

with the structure digraph:

Eq.(1)

Eq.(2)

Eq.(3)

Eq.(4)

Eq.(5)

Eq.(6)

u1

i1

u2

i2

u3

i3

Page 23: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm II

Clearly, every equation contains at least two unknowns, and every unknown appears inat least two equations.

Page 24: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm II

Clearly, every equation contains at least two unknowns, and every unknown appears inat least two equations.

Let me assume, we can solve the former Eq.(6) for the unknown i3. This assumptionis reflected in the partially causalized structure digraph below:

Eq.( )

Eq.( )

Eq.( )

Eq.( )

Eq.( )

Eq.(1)

u1

i1

u2

i2

u3

i3

Page 25: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm II

Clearly, every equation contains at least two unknowns, and every unknown appears inat least two equations.

Let me assume, we can solve the former Eq.(6) for the unknown i3. This assumptionis reflected in the partially causalized structure digraph below:

Eq.( )

Eq.( )

Eq.( )

Eq.( )

Eq.( )

Eq.(1)

u1

i1

u2

i2

u3

i3

We cannot use that same equation to also compute one of the other two unknowns, i1or i2, and we can also not compute i3 from the former Eq.(3). Hence the blue lines inthe structure digraph.

Page 26: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm III

Now, everything is settled, and we can causalize the remaining equations without anydifficulties:

Eq.(5)

Eq.(6)

Eq.(2)

Eq.(3)

Eq.(4)

Eq.(1)

u1

i1

u2

i2

u3

i3

Page 27: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm III

Now, everything is settled, and we can causalize the remaining equations without anydifficulties:

Eq.(5)

Eq.(6)

Eq.(2)

Eq.(3)

Eq.(4)

Eq.(1)

u1

i1

u2

i2

u3

i3

⇒ i3 = i1 − i2

u3 = R3 · i3

u1 = u0 − u3

u2 = u3

i1 = u1/R1

i2 = u2/R2

Page 28: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm IV

Of course, it is all only a pipe dream, because in reality, we do not know either i1 or i2,and therefore, we cannot compute i3. Or is it not?Let us substitute the equations into each other, starting with the equation that definesi3:

i3 = i1 − i2

=1

R1

· u1 − 1

R2

· u2

=1

R1

· u0 − 1

R1

· u3 − 1

R2

· u3

=1

R1

· u0 − R1 + R2

R1 · R2

· u3

=1

R1

· u0 − R3 · (R1 + R2)

R1 · R2

· i3

and thus: [1 +

R3 · (R1 + R2)

R1 · R2

]· i3 =

1

R1

· u0

or:R1 · R2 + R1 · R3 + R2 · R3

R2

· i3 = u0

Page 29: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm V

We can solve for i3:

i3 =R2

R1 · R2 + R1 · R3 + R2 · R3

· u0

Page 30: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm V

We can solve for i3:

i3 =R2

R1 · R2 + R1 · R3 + R2 · R3

· u0

We can plug this equation back into the original equation system, replacing theoriginal Eq.(6) by it, and obtain the perfectly causal set of equations:

i3 =R2

R1 · R2 + R1 · R3 + R2 · R3

· u0

u3 = R3 · i3

u1 = u0 − u3

u2 = u3

i1 = u1/R1

i2 = u2/R2

Page 31: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm V

We can solve for i3:

i3 =R2

R1 · R2 + R1 · R3 + R2 · R3

· u0

We can plug this equation back into the original equation system, replacing theoriginal Eq.(6) by it, and obtain the perfectly causal set of equations:

i3 =R2

R1 · R2 + R1 · R3 + R2 · R3

· u0

u3 = R3 · i3

u1 = u0 − u3

u2 = u3

i1 = u1/R1

i2 = u2/R2

Evidently, it hadn’t been a pipe dream after all.

Page 32: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VI

� After substituting the equations into each other in the proposed form, we endedup with one equation in one unknown, instead of six equations in six unknowns.This is clearly much more economical.

Page 33: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VI

� After substituting the equations into each other in the proposed form, we endedup with one equation in one unknown, instead of six equations in six unknowns.This is clearly much more economical.

� We call i3 in the above example a tearing variable, and we call the equationfrom which the tearing variable is being solved a residual equation.

Page 34: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VI

� After substituting the equations into each other in the proposed form, we endedup with one equation in one unknown, instead of six equations in six unknowns.This is clearly much more economical.

� We call i3 in the above example a tearing variable, and we call the equationfrom which the tearing variable is being solved a residual equation.

� Had the equations been non-linear in the variable i3, everything would haveworked exactly the same way, except for the very last step, where we would havehad to involve a Newton iteration to solve for i3, rather than solving for i3explicitly.

Page 35: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VI

� After substituting the equations into each other in the proposed form, we endedup with one equation in one unknown, instead of six equations in six unknowns.This is clearly much more economical.

� We call i3 in the above example a tearing variable, and we call the equationfrom which the tearing variable is being solved a residual equation.

� Had the equations been non-linear in the variable i3, everything would haveworked exactly the same way, except for the very last step, where we would havehad to involve a Newton iteration to solve for i3, rather than solving for i3explicitly.

� Only the tearing variables are included in the set of iteration variables.

Page 36: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VI

� After substituting the equations into each other in the proposed form, we endedup with one equation in one unknown, instead of six equations in six unknowns.This is clearly much more economical.

� We call i3 in the above example a tearing variable, and we call the equationfrom which the tearing variable is being solved a residual equation.

� Had the equations been non-linear in the variable i3, everything would haveworked exactly the same way, except for the very last step, where we would havehad to involve a Newton iteration to solve for i3, rather than solving for i3explicitly.

� Only the tearing variables are included in the set of iteration variables.

� Substituting equations into each other may actually be a bad idea. Thesubstituted equations may grow in size, and the same expressions may appear inthem multiple times. It may be a better idea to iterate over the entire set ofequations, but treat only i3 as an iteration variable in the Newton iterationalgorithm.

Page 37: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VII

Given the set of equations:

u3 = R3 · i3

u1 = u0 − u3

i1 = u1/R1

u2 = u3

i2 = u2/R2

i3new = i1 − i2

where i3 is an initial guess, and i3new is an improved version of that same variable.

Page 38: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VII

Given the set of equations:

u3 = R3 · i3

u1 = u0 − u3

i1 = u1/R1

u2 = u3

i2 = u2/R2

i3new = i1 − i2

where i3 is an initial guess, and i3new is an improved version of that same variable.

We can set up the following zero function:

F = i3new − i3 = 0.0

Page 39: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VII

Given the set of equations:

u3 = R3 · i3

u1 = u0 − u3

i1 = u1/R1

u2 = u3

i2 = u2/R2

i3new = i1 − i2

where i3 is an initial guess, and i3new is an improved version of that same variable.

We can set up the following zero function:

F = i3new − i3 = 0.0

Since F is a scalar, also the Hessian is a scalar:

H =∂F∂i3

Page 40: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VIII

A convenient way to compute the Hessian H is by means of algebraic differentiation:

du3 = R3

du1 = −du3

di1 = du1/R1

du2 = du3

di2 = du2/R2

di3new = di1 − di2

H = di3new − 1

Page 41: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VIII

A convenient way to compute the Hessian H is by means of algebraic differentiation:

du3 = R3

du1 = −du3

di1 = du1/R1

du2 = du3

di2 = du2/R2

di3new = di1 − di2

H = di3new − 1

We can then compute the next version of i3 as:

i3 = i3 − H\F

Page 42: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm VIII

A convenient way to compute the Hessian H is by means of algebraic differentiation:

du3 = R3

du1 = −du3

di1 = du1/R1

du2 = du3

di2 = du2/R2

di3new = di1 − di2

H = di3new − 1

We can then compute the next version of i3 as:

i3 = i3 − H\F

If the set of equations is linear, the Newton iteration converges in a single step.Hence it will not be terribly inefficient to employ Newton iteration even in thelinear case.

Page 43: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm IX

� The algorithm that we just described is a so-called tearing algorithm, as the setof equations is torn apart by making an assumption about one variable orpossibly several variables to be known.

Page 44: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm IX

� The algorithm that we just described is a so-called tearing algorithm, as the setof equations is torn apart by making an assumption about one variable orpossibly several variables to be known.

� The variables that are assumed known, such as i3 in the above example, arecalled tearing variables.

Page 45: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm IX

� The algorithm that we just described is a so-called tearing algorithm, as the setof equations is torn apart by making an assumption about one variable orpossibly several variables to be known.

� The variables that are assumed known, such as i3 in the above example, arecalled tearing variables.

� The equations, from which the tearing variables are to be computed are calledresidual equations.

Page 46: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm IX

� The algorithm that we just described is a so-called tearing algorithm, as the setof equations is torn apart by making an assumption about one variable orpossibly several variables to be known.

� The variables that are assumed known, such as i3 in the above example, arecalled tearing variables.

� The equations, from which the tearing variables are to be computed are calledresidual equations.

� A version of tearing similar to the one described in this presentation has beenimplemented in Dymola to accompany the Tarjan algorithm used in the efficientsolution of algebraic equation systems resulting from the automated symbolicconversion of DAE systems to ODE form. The Tarjan algorithm, agraph-theoretical algorithm, had been introduced in the previous presentationfor the causalization of equation systems.

Page 47: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm X

How did we know to choose i3 as tearing variable and Eq.(6) as residual equation?What would have happened if we had chosen i1 as the tearing variable and Eq.(1) asthe residual equation?

Page 48: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm X

How did we know to choose i3 as tearing variable and Eq.(6) as residual equation?What would have happened if we had chosen i1 as the tearing variable and Eq.(1) asthe residual equation?

The initial situation is depicted below:

Eq.(1)

Eq.( )

Eq.( )

Eq.( )

Eq.( )

Eq.( )

u1

i1

u2

i2

u3

i3

Page 49: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XI

We apply the Tarjan algorithm to the structure digraph. Unfortunately, the algorithmstalls once again after only one more step:

Eq.(1)

Eq.( )

Eq.( )

Eq.(6)

Eq.( )

Eq.( )

u1

i1

u2

i2

u3

i3

Page 50: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XI

We apply the Tarjan algorithm to the structure digraph. Unfortunately, the algorithmstalls once again after only one more step:

Eq.(1)

Eq.( )

Eq.( )

Eq.(6)

Eq.( )

Eq.( )

u1

i1

u2

i2

u3

i3

Once again, we are faced with an algebraic loop, this time in four equations and fourunknowns, and therefore have to choose a second tearing variable and a secondresidual equation.

Page 51: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XII

Let us chose u2 as the second tearing variable and the former Eq.(2) as the secondresidual equation.

Page 52: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XII

Let us chose u2 as the second tearing variable and the former Eq.(2) as the secondresidual equation.

The new situation is depicted below:

Eq.(1)

Eq.(2)

Eq.( )

Eq.(6)

Eq.( )

Eq.( )

u1

i1

u2

i2

u3

i3

Page 53: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XIII

We once more apply the Tarjan algorithm to the structure digraph. This time around,we can complete the causalization:

Eq.(1)

Eq.(2)

Eq.(4)

Eq.(6)

Eq.(3)

Eq.(5)

u1

i1

u2

i2

u3

i3

Page 54: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XIII

We once more apply the Tarjan algorithm to the structure digraph. This time around,we can complete the causalization:

Eq.(1)

Eq.(2)

Eq.(4)

Eq.(6)

Eq.(3)

Eq.(5)

u1

i1

u2

i2

u3

i3

The completely causalized equations are:

i1 = u1/R1

u2 = R2 · i2

u3 = u2

i3 = u3/R3

i2 = i1 − i3

u1 = u0 − u3

Page 55: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XIV

Let us apply substitution. We begin with the first residual equation. We substitute allvariables except for the tearing variables.

i1 = u1/R1

=1

R1

· u0 − 1

R1

· u3

=1

R1

· u0 − 1

R1

· u2

and consequently:R1 · i1 + u2 = u0

Page 56: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XV

For the second residual equation, we find:

u2 = R2 · i2

= R2 · i1 − R2 · i3

= R2 · i1 − R2

R3

· u3

= R2 · i1 − R2

R3

· u2

Thus: [1 +

R2

R3

]· u2 = R2 · i1

or:R2 · R3 · i1 − (R2 + R3) · u2 = 0

Page 57: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XVI

We ended up with two equations in two unknowns, i.e., the two tearing variables:

(R1 1

R2 · R3 −(R2 + R3)

)·(

i1u2

)=

(u0

0

)

which can be solved for i1 and u2.

Page 58: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XVI

We ended up with two equations in two unknowns, i.e., the two tearing variables:

(R1 1

R2 · R3 −(R2 + R3)

)·(

i1u2

)=

(u0

0

)

which can be solved for i1 and u2.

� Instead of solving six linear equations in six unknowns, we have “pushed thezeros out of the matrix,” and ended up with two equations in two unknowns.

Page 59: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XVI

We ended up with two equations in two unknowns, i.e., the two tearing variables:

(R1 1

R2 · R3 −(R2 + R3)

)·(

i1u2

)=

(u0

0

)

which can be solved for i1 and u2.

� Instead of solving six linear equations in six unknowns, we have “pushed thezeros out of the matrix,” and ended up with two equations in two unknowns.

� In this sense, tearing can be considered a symbolic sparse matrix technique.

Page 60: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XVII

If we use Newton iteration instead of equation substitution, we need to place theresidual equations at the end of each set, rather than at the beginning. The set ofequations now takes the form:

u3 = u2

i3 = u3/R3

i2 = i1 − i3

u2new = R2 · i2

u1 = u0 − u3

i1new = u1/R1

Page 61: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XVII

If we use Newton iteration instead of equation substitution, we need to place theresidual equations at the end of each set, rather than at the beginning. The set ofequations now takes the form:

u3 = u2

i3 = u3/R3

i2 = i1 − i3

u2new = R2 · i2

u1 = u0 − u3

i1new = u1/R1

We can formulate the following set of zero functions:

F =

(f1f2

)=

(i1new − i1u2new − u2

)=

(00

)

Page 62: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XVII

If we use Newton iteration instead of equation substitution, we need to place theresidual equations at the end of each set, rather than at the beginning. The set ofequations now takes the form:

u3 = u2

i3 = u3/R3

i2 = i1 − i3

u2new = R2 · i2

u1 = u0 − u3

i1new = u1/R1

We can formulate the following set of zero functions:

F =

(f1f2

)=

(i1new − i1u2new − u2

)=

(00

)

Hence the Hessian is a matrix of size 2 × 2:

H =

(h11 h12

h21 h22

)=

(∂f1/∂i1 ∂f1/∂u2

∂f2/∂i1 ∂f2/∂u2

)

Page 63: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XVIII

Using algebraic differentiation:

d1u3 = 0

d1 i3 = d1u3/R3

d1 i2 = 1 − d1 i3

d1u2new = R2 · d1 i2

d1u1 = −d1u3

d1 i1new = d1u1/R1

d2u3 = 1

d2 i3 = d2u3/R3

d2 i2 = −d2 i3

d2u2new = R2 · d2 i2

d2u1 = −d2u3

d2 i1new = d2u1/R1

h11 = d1 i1new − 1

h12 = d2 i1new

h21 = d1u2new

h22 = d2u2new − 1

Page 64: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XVIII

Using algebraic differentiation:

d1u3 = 0

d1 i3 = d1u3/R3

d1 i2 = 1 − d1 i3

d1u2new = R2 · d1 i2

d1u1 = −d1u3

d1 i1new = d1u1/R1

d2u3 = 1

d2 i3 = d2u3/R3

d2 i2 = −d2 i3

d2u2new = R2 · d2 i2

d2u1 = −d2u3

d2 i1new = d2u1/R1

h11 = d1 i1new − 1

h12 = d2 i1new

h21 = d1u2new

h22 = d2u2new − 1

� The prefix d1 stands for the partialderivative with respect to the first tearingvariable, i1, and d2 stands for the partialderivative with respect to the secondtearing variable, u2. Since i1 and u2 aremutually independent in this context, thepartial derivative of i1 with respect to u2

is zero, and vice-versa.

Page 65: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XVIII

Using algebraic differentiation:

d1u3 = 0

d1 i3 = d1u3/R3

d1 i2 = 1 − d1 i3

d1u2new = R2 · d1 i2

d1u1 = −d1u3

d1 i1new = d1u1/R1

d2u3 = 1

d2 i3 = d2u3/R3

d2 i2 = −d2 i3

d2u2new = R2 · d2 i2

d2u1 = −d2u3

d2 i1new = d2u1/R1

h11 = d1 i1new − 1

h12 = d2 i1new

h21 = d1u2new

h22 = d2u2new − 1

� The prefix d1 stands for the partialderivative with respect to the first tearingvariable, i1, and d2 stands for the partialderivative with respect to the secondtearing variable, u2. Since i1 and u2 aremutually independent in this context, thepartial derivative of i1 with respect to u2

is zero, and vice-versa.

� For each additional tearing variable, thecausal model equations are replicatedonce in the computation of the Hessian.Hence given a system of n algebraicequations in k < n tearing variables, werequire n · k + k2 equations to explicitlycompute the Hessian in symbolic form.

Page 66: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XIX

How can we determine the minimum number of tearing variables required?

Page 67: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XIX

How can we determine the minimum number of tearing variables required?

� Unfortunately, this is a hard problem. It can be shown that this problem isnp-complete, i.e., the computational effort grows exponentially in the number ofequations forming the algebraic loop. Consequently, finding the minimal numberof tearing variables is not practical.

Page 68: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XIX

How can we determine the minimum number of tearing variables required?

� Unfortunately, this is a hard problem. It can be shown that this problem isnp-complete, i.e., the computational effort grows exponentially in the number ofequations forming the algebraic loop. Consequently, finding the minimal numberof tearing variables is not practical.

� Yet, it is possible to design a heuristic procedure that always results in a smallnumber of tearing variables. It often results in the minimal number, but thiscannot be guaranteed. The advantage of this heuristic procedure is that itscomputational effort grows quadratically rather than exponentially in the size ofthe algebraic system for most applications.

Page 69: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XIX

How can we determine the minimum number of tearing variables required?

� Unfortunately, this is a hard problem. It can be shown that this problem isnp-complete, i.e., the computational effort grows exponentially in the number ofequations forming the algebraic loop. Consequently, finding the minimal numberof tearing variables is not practical.

� Yet, it is possible to design a heuristic procedure that always results in a smallnumber of tearing variables. It often results in the minimal number, but thiscannot be guaranteed. The advantage of this heuristic procedure is that itscomputational effort grows quadratically rather than exponentially in the size ofthe algebraic system for most applications.

� Dymola implemented a set of heuristics for the efficient selection of tearingvariables as part of its model compiler. Yet, their heuristics have never beenpublished. These heuristics are treated as a trade secret, as this is considered tooffer a commercial advantage to the company.

Page 70: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XIX

How can we determine the minimum number of tearing variables required?

� Unfortunately, this is a hard problem. It can be shown that this problem isnp-complete, i.e., the computational effort grows exponentially in the number ofequations forming the algebraic loop. Consequently, finding the minimal numberof tearing variables is not practical.

� Yet, it is possible to design a heuristic procedure that always results in a smallnumber of tearing variables. It often results in the minimal number, but thiscannot be guaranteed. The advantage of this heuristic procedure is that itscomputational effort grows quadratically rather than exponentially in the size ofthe algebraic system for most applications.

� Dymola implemented a set of heuristics for the efficient selection of tearingvariables as part of its model compiler. Yet, their heuristics have never beenpublished. These heuristics are treated as a trade secret, as this is considered tooffer a commercial advantage to the company.

� Dirk Zimmer has implemented an alternative set of heuristics in the modelcompiler of his experimental Sol language as part of his Ph.D. dissertation.These heuristics have been disclosed in his dissertation and are thus openlyavailable to all modeling and simulation researchers.

Page 71: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XX

Here is a very simple set of heuristics that works most of the time but not always. Thealgorithm sometimes maneuvers itself into a corner.

Page 72: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XX

Here is a very simple set of heuristics that works most of the time but not always. Thealgorithm sometimes maneuvers itself into a corner.

1. Using the structure digraph, determine the equations with the largest number ofblack lines attached to them.

Page 73: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XX

Here is a very simple set of heuristics that works most of the time but not always. Thealgorithm sometimes maneuvers itself into a corner.

1. Using the structure digraph, determine the equations with the largest number ofblack lines attached to them.

2. For every one of these equations, follow its black lines, and determine thosevariables with the largest number of black lines attached to them.

Page 74: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XX

Here is a very simple set of heuristics that works most of the time but not always. Thealgorithm sometimes maneuvers itself into a corner.

1. Using the structure digraph, determine the equations with the largest number ofblack lines attached to them.

2. For every one of these equations, follow its black lines, and determine thosevariables with the largest number of black lines attached to them.

3. For every one of these variables, determine how many additional equations canbe made causal if that variable is assumed to be known.

Page 75: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Tearing Algorithm

The Tearing Algorithm XX

Here is a very simple set of heuristics that works most of the time but not always. Thealgorithm sometimes maneuvers itself into a corner.

1. Using the structure digraph, determine the equations with the largest number ofblack lines attached to them.

2. For every one of these equations, follow its black lines, and determine thosevariables with the largest number of black lines attached to them.

3. For every one of these variables, determine how many additional equations canbe made causal if that variable is assumed to be known.

4. Choose one of those variables as the next tearing variable that allows the largestnumber of additional equations to be made causal.

Page 76: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm

There is a second symbolic algorithm for the solution of algebraic systems of equationsto be discussed that we call relaxation algorithm.

Page 77: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm

There is a second symbolic algorithm for the solution of algebraic systems of equationsto be discussed that we call relaxation algorithm.

Contrary to the tearing algorithm, a general algorithm that can be applied to allalgebraic equation structures, the relaxation algorithm is limited to the solution oflinear algebraic equation systems only.

Page 78: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm

There is a second symbolic algorithm for the solution of algebraic systems of equationsto be discussed that we call relaxation algorithm.

Contrary to the tearing algorithm, a general algorithm that can be applied to allalgebraic equation structures, the relaxation algorithm is limited to the solution oflinear algebraic equation systems only.

Yet, linear algebraic systems assume a special role within the set of algebraic equationsystems, and deserve special attention.

Page 79: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm

There is a second symbolic algorithm for the solution of algebraic systems of equationsto be discussed that we call relaxation algorithm.

Contrary to the tearing algorithm, a general algorithm that can be applied to allalgebraic equation structures, the relaxation algorithm is limited to the solution oflinear algebraic equation systems only.

Yet, linear algebraic systems assume a special role within the set of algebraic equationsystems, and deserve special attention.

Within each Newton iteration of a non-linear algebraic equation system, there isalways a linear algebraic equation system to be solved.

Page 80: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm II

When we write the Newton iteration as:

xnew = xold −H\F

we are effectively saying that:xnew = xold − dx

where dx is the solution of the linear algebraic equation system:

H · dx = F

Page 81: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm II

When we write the Newton iteration as:

xnew = xold −H\F

we are effectively saying that:xnew = xold − dx

where dx is the solution of the linear algebraic equation system:

H · dx = F

Hence indeed, a linear algebraic equation system must be solved within each Newtoniteration step of the original non-linear algebraic equation system.

Page 82: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm III

Relaxation is a symbolic implementation of the Gaussian elimination algorithmwithout pivoting.

Page 83: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm III

Relaxation is a symbolic implementation of the Gaussian elimination algorithmwithout pivoting.

Let us demonstrate how the relaxation algorithm works by means of the same exampleof a linear algebraic equation system in six equations and six unknowns that we hadused previously:

⎛⎜⎜⎜⎜⎜⎝

1 −R1 0 0 0 00 0 1 −R2 0 00 0 0 0 1 −R3

1 0 0 0 1 00 0 1 0 −1 00 1 0 −1 0 −1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u1

i1u2

i2u3

i3

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

000u0

00

⎞⎟⎟⎟⎟⎟⎠

Page 84: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm III

Relaxation is a symbolic implementation of the Gaussian elimination algorithmwithout pivoting.

Let us demonstrate how the relaxation algorithm works by means of the same exampleof a linear algebraic equation system in six equations and six unknowns that we hadused previously:

⎛⎜⎜⎜⎜⎜⎝

1 −R1 0 0 0 00 0 1 −R2 0 00 0 0 0 1 −R3

1 0 0 0 1 00 0 1 0 −1 00 1 0 −1 0 −1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u1

i1u2

i2u3

i3

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

000u0

00

⎞⎟⎟⎟⎟⎟⎠

It is our goal to minimize the number of non-zero elements in the matrix above thediagonal.

Page 85: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm IV

To this end, we sort the equations in the same way as we did for the tearing algorithmwith Newton iteration:

u3 = R3 · i3

u1 = u0 − u3

i1 =u1

R1

u2 = u3

i2 =u2

R2

i3 = i1 − i2

Page 86: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm IV

To this end, we sort the equations in the same way as we did for the tearing algorithmwith Newton iteration:

u3 = R3 · i3

u1 = u0 − u3

i1 =u1

R1

u2 = u3

i2 =u2

R2

i3 = i1 − i2

We now move all the unknowns to the left side of the equal sign and all the knows tothe right side. At the same time, we eliminate the denominators:

u3 − R3 · i3 = 0

u1 + u3 = u0

R1 · i1 − u1 = 0

u2 − u3 = 0

R2 · i2 − u2 = 0

i3 − i1 + i2 = 0

Page 87: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm V

We now rewrite these equations in a matrix-vector form, whereby we number theequations in the same order as above and list the variables in the same order as in thecausal equations:

⎛⎜⎜⎜⎜⎜⎝

1 0 0 0 0 −R3

1 1 0 0 0 00 −1 R1 0 0 0−1 0 0 1 0 00 0 0 −1 R2 00 0 −1 0 1 1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u3

u1

i1u2

i2i3

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

0u0

0000

⎞⎟⎟⎟⎟⎟⎠

Page 88: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm V

We now rewrite these equations in a matrix-vector form, whereby we number theequations in the same order as above and list the variables in the same order as in thecausal equations:

⎛⎜⎜⎜⎜⎜⎝

1 0 0 0 0 −R3

1 1 0 0 0 00 −1 R1 0 0 0−1 0 0 1 0 00 0 0 −1 R2 00 0 −1 0 1 1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u3

u1

i1u2

i2i3

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

0u0

0000

⎞⎟⎟⎟⎟⎟⎠

There is now only a single non-zero element above the diagonal, and none of thediagonal elements are zero.

Page 89: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm VI

We can now apply Gaussian elimination without pivoting:

A(n+1)ij = A

(n)ij − A

(n)ik · A(n)

kk

−1 · A(n)kj

b(n+1)i = b

(n)i − A

(n)ik · A(n)

kk

−1 · b(n)k

Page 90: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm VI

We can now apply Gaussian elimination without pivoting:

A(n+1)ij = A

(n)ij − A

(n)ik · A(n)

kk

−1 · A(n)kj

b(n+1)i = b

(n)i − A

(n)ik · A(n)

kk

−1 · b(n)k

We can apply this algorithm symbolically. After each step, we eliminate the first rowand the first column, i.e., the pivot row and the pivot column. Rather thansubstituting expressions into the matrix, we introduce auxiliary variables where needed.

Page 91: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm VI

We can now apply Gaussian elimination without pivoting:

A(n+1)ij = A

(n)ij − A

(n)ik · A(n)

kk

−1 · A(n)kj

b(n+1)i = b

(n)i − A

(n)ik · A(n)

kk

−1 · b(n)k

We can apply this algorithm symbolically. After each step, we eliminate the first rowand the first column, i.e., the pivot row and the pivot column. Rather thansubstituting expressions into the matrix, we introduce auxiliary variables where needed.

� If an element in the top row is zero, the elements underneath it don’t change atall during the iteration.

Page 92: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm VI

We can now apply Gaussian elimination without pivoting:

A(n+1)ij = A

(n)ij − A

(n)ik · A(n)

kk

−1 · A(n)kj

b(n+1)i = b

(n)i − A

(n)ik · A(n)

kk

−1 · b(n)k

We can apply this algorithm symbolically. After each step, we eliminate the first rowand the first column, i.e., the pivot row and the pivot column. Rather thansubstituting expressions into the matrix, we introduce auxiliary variables where needed.

� If an element in the top row is zero, the elements underneath it don’t change atall during the iteration.

� If an element in the leftmost column is zero, the elements to the right of itdon’t change.

Page 93: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm VI

We can now apply Gaussian elimination without pivoting:

A(n+1)ij = A

(n)ij − A

(n)ik · A(n)

kk

−1 · A(n)kj

b(n+1)i = b

(n)i − A

(n)ik · A(n)

kk

−1 · b(n)k

We can apply this algorithm symbolically. After each step, we eliminate the first rowand the first column, i.e., the pivot row and the pivot column. Rather thansubstituting expressions into the matrix, we introduce auxiliary variables where needed.

� If an element in the top row is zero, the elements underneath it don’t change atall during the iteration.

� If an element in the leftmost column is zero, the elements to the right of itdon’t change.

� For all other elements, we introduce new symbolic constants.

Page 94: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm VII

⎛⎜⎜⎜⎜⎜⎝

1 0 0 0 0 −R3

1 1 0 0 0 00 −1 R1 0 0 0−1 0 0 1 0 00 0 0 −1 R2 00 0 −1 0 1 1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u3

u1

i1u2

i2i3

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

0u0

0000

⎞⎟⎟⎟⎟⎟⎠

Page 95: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm VII

⎛⎜⎜⎜⎜⎜⎝

1 0 0 0 0 −R3

1 1 0 0 0 00 −1 R1 0 0 0−1 0 0 1 0 00 0 0 −1 R2 00 0 −1 0 1 1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u3

u1

i1u2

i2i3

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

0u0

0000

⎞⎟⎟⎟⎟⎟⎠

⎛⎜⎜⎜⎝

1 0 0 0 c1

−1 R1 0 0 00 0 1 0 c2

0 0 −1 R2 00 −1 0 1 1

⎞⎟⎟⎟⎠ ·

⎛⎜⎜⎜⎝

u1

i1u2

i2i3

⎞⎟⎟⎟⎠ =

⎛⎜⎜⎜⎝

u0

0000

⎞⎟⎟⎟⎠

where c1 = R3, and c2 = −R3.

Page 96: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm VIII

⎛⎜⎜⎜⎝

1 0 0 0 c1

−1 R1 0 0 00 0 1 0 c2

0 0 −1 R2 00 −1 0 1 1

⎞⎟⎟⎟⎠ ·

⎛⎜⎜⎜⎝

u1

i1u2

i2i3

⎞⎟⎟⎟⎠ =

⎛⎜⎜⎜⎝

u0

0000

⎞⎟⎟⎟⎠

Page 97: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm VIII

⎛⎜⎜⎜⎝

1 0 0 0 c1

−1 R1 0 0 00 0 1 0 c2

0 0 −1 R2 00 −1 0 1 1

⎞⎟⎟⎟⎠ ·

⎛⎜⎜⎜⎝

u1

i1u2

i2i3

⎞⎟⎟⎟⎠ =

⎛⎜⎜⎜⎝

u0

0000

⎞⎟⎟⎟⎠

⎛⎜⎜⎝

R1 0 0 c3

0 1 0 c2

0 −1 R2 0−1 0 1 1

⎞⎟⎟⎠ ·

⎛⎜⎜⎝

i1u2

i2i3

⎞⎟⎟⎠ =

⎛⎜⎜⎝

c4

000

⎞⎟⎟⎠

where c3 = c1, and c4 = u0.

Page 98: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm IX

⎛⎜⎜⎝

R1 0 0 c3

0 1 0 c2

0 −1 R2 0−1 0 1 1

⎞⎟⎟⎠ ·

⎛⎜⎜⎝

i1u2

i2i3

⎞⎟⎟⎠ =

⎛⎜⎜⎝

c4

000

⎞⎟⎟⎠

Page 99: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm IX

⎛⎜⎜⎝

R1 0 0 c3

0 1 0 c2

0 −1 R2 0−1 0 1 1

⎞⎟⎟⎠ ·

⎛⎜⎜⎝

i1u2

i2i3

⎞⎟⎟⎠ =

⎛⎜⎜⎝

c4

000

⎞⎟⎟⎠

⇒⎛⎝ 1 0 c2

−1 R2 00 1 c5

⎞⎠ ·

⎛⎝u2

i2i3

⎞⎠ =

⎛⎝ 0

0c6

⎞⎠

where c5 = 1 + c3R1

, and c6 = c4R1

.

Page 100: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm X

⎛⎝ 1 0 c2

−1 R2 00 1 c5

⎞⎠ ·

⎛⎝u2

i2i3

⎞⎠ =

⎛⎝ 0

0c6

⎞⎠

Page 101: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm X

⎛⎝ 1 0 c2

−1 R2 00 1 c5

⎞⎠ ·

⎛⎝u2

i2i3

⎞⎠ =

⎛⎝ 0

0c6

⎞⎠

⇒(

R2 c7

1 c5

)·(

i2i3

)=

(0c6

)

where c7 = c2.

Page 102: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm X

⎛⎝ 1 0 c2

−1 R2 00 1 c5

⎞⎠ ·

⎛⎝u2

i2i3

⎞⎠ =

⎛⎝ 0

0c6

⎞⎠

⇒(

R2 c7

1 c5

)·(

i2i3

)=

(0c6

)

where c7 = c2.

⇒ (c8

) · (i3

)=

(c6

)where c8 = c5 − c7

R2.

Page 103: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XI

Hence we can replace the original set of equations by:

c1 = R3

c2 = −R3

c3 = c1

c4 = u0

c5 = 1 +c3

R1

c6 =c4

R1

c7 = c2

c8 = c5 − c7

R2

Page 104: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XI

Hence we can replace the original set of equations by:

c1 = R3

c2 = −R3

c3 = c1

c4 = u0

c5 = 1 +c3

R1

c6 =c4

R1

c7 = c2

c8 = c5 − c7

R2

i3 =c6

c8

i2 = − c7 · i3R2

u2 = −c2 · i3i1 =

c4 − c3 · i3R1

u1 = u0 − c1 · i3u3 = R3 · i3

Page 105: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XI

Hence we can replace the original set of equations by:

c1 = R3

c2 = −R3

c3 = c1

c4 = u0

c5 = 1 +c3

R1

c6 =c4

R1

c7 = c2

c8 = c5 − c7

R2

i3 =c6

c8

i2 = − c7 · i3R2

u2 = −c2 · i3i1 =

c4 − c3 · i3R1

u1 = u0 − c1 · i3u3 = R3 · i3

which can be easily coded in Matlab.

Page 106: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XII

However, there is no need to proceed with back-substitution beyond the determinationof the tearing variables. The remaining variables can be taken just as easily from theoriginal set of equations:

c1 = R3

c2 = −R3

c3 = c1

c4 = u0

c5 = 1 +c3

R1

c6 =c4

R1

c7 = c2

c8 = c5 − c7

R2

Page 107: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XII

However, there is no need to proceed with back-substitution beyond the determinationof the tearing variables. The remaining variables can be taken just as easily from theoriginal set of equations:

c1 = R3

c2 = −R3

c3 = c1

c4 = u0

c5 = 1 +c3

R1

c6 =c4

R1

c7 = c2

c8 = c5 − c7

R2

i3 =c6

c8

u3 = R3 · i3u1 = u0 − u3

i1 =u1

R1

u2 = u3

i2 =u2

R2

Page 108: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XIII

What would have happened if we had started out with the second set of causalequations, i.e., those involving two tearing variables?

u3 = u2

i3 =u3

R3

i2 = i1 − i3

u2 = R2 · i2

u1 = u0 − u3

i1 =u1

R1

Page 109: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XIII

What would have happened if we had started out with the second set of causalequations, i.e., those involving two tearing variables?

u3 = u2

i3 =u3

R3

i2 = i1 − i3

u2 = R2 · i2

u1 = u0 − u3

i1 =u1

R1

Moving all unknowns to the left side of the equal sign, we obtain:

u3 − u2 = 0

R3 · i3 − u3 = 0

i2 − i1 + i3 = 0

u2 − R2 · i2 = 0

u1 + u3 = u0

R1 · i1 − u1 = 0

Page 110: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XIV

In matrix-vector form:

⎛⎜⎜⎜⎜⎜⎝

1 0 0 −1 0 0−1 R3 0 0 0 00 1 1 0 0 −10 0 −R2 1 0 01 0 0 0 1 00 0 0 0 −1 R1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u3

i3i2u2

u1

i1

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

0000u0

0

⎞⎟⎟⎟⎟⎟⎠

Page 111: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XIV

In matrix-vector form:

⎛⎜⎜⎜⎜⎜⎝

1 0 0 −1 0 0−1 R3 0 0 0 00 1 1 0 0 −10 0 −R2 1 0 01 0 0 0 1 00 0 0 0 −1 R1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u3

i3i2u2

u1

i1

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

0000u0

0

⎞⎟⎟⎟⎟⎟⎠

� This time around, there are two non-zero elements above the diagonal, oneinvolving the tearing variable u2, the other involving the tearing variable i1.

Page 112: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XIV

In matrix-vector form:

⎛⎜⎜⎜⎜⎜⎝

1 0 0 −1 0 0−1 R3 0 0 0 00 1 1 0 0 −10 0 −R2 1 0 01 0 0 0 1 00 0 0 0 −1 R1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u3

i3i2u2

u1

i1

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

0000u0

0

⎞⎟⎟⎟⎟⎟⎠

� This time around, there are two non-zero elements above the diagonal, oneinvolving the tearing variable u2, the other involving the tearing variable i1.

� As there are more non-zero elements above the diagonal, we shall in alllikelihood have to introduce more new constants into the matrix in the processof symbolic Gaussian elimination.

Page 113: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XIV

In matrix-vector form:

⎛⎜⎜⎜⎜⎜⎝

1 0 0 −1 0 0−1 R3 0 0 0 00 1 1 0 0 −10 0 −R2 1 0 01 0 0 0 1 00 0 0 0 −1 R1

⎞⎟⎟⎟⎟⎟⎠

·

⎛⎜⎜⎜⎜⎜⎝

u3

i3i2u2

u1

i1

⎞⎟⎟⎟⎟⎟⎠

=

⎛⎜⎜⎜⎜⎜⎝

0000u0

0

⎞⎟⎟⎟⎟⎟⎠

� This time around, there are two non-zero elements above the diagonal, oneinvolving the tearing variable u2, the other involving the tearing variable i1.

� As there are more non-zero elements above the diagonal, we shall in alllikelihood have to introduce more new constants into the matrix in the processof symbolic Gaussian elimination.

� Consequently, the number of resulting equations will grow, and the solution willbe less efficient.

Page 114: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XV

� Finding a minimal set of non-zero elements above the diagonal of the matrix isidentical to finding a minimal set of tearing variables.

Page 115: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XV

� Finding a minimal set of non-zero elements above the diagonal of the matrix isidentical to finding a minimal set of tearing variables.

� Hence also this problem is np-complete.

Page 116: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

The Relaxation Algorithm

The Relaxation Algorithm XV

� Finding a minimal set of non-zero elements above the diagonal of the matrix isidentical to finding a minimal set of tearing variables.

� Hence also this problem is np-complete.

� The same heuristic procedure that was proposed for tackling the problem offinding a small (though not necessarily the minimal) set of tearing variables canalso be used to find a small (though not necessarily the smallest) set of non-zeroelements above the diagonal of the linear equation matrix for the relaxationalgorithm.

Page 117: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Conclusions

Conclusions

� In this presentation, we looked at the problem of algebraic loops contained inthe set of DAEs extracted from an object-oriented description of the system tobe simulated.

Page 118: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Conclusions

Conclusions

� In this presentation, we looked at the problem of algebraic loops contained inthe set of DAEs extracted from an object-oriented description of the system tobe simulated.

� We demonstrated that the Tarjan algorithm for the causalization of theequations will get stuck in this case. The equations forming the loop need to besolved together.

Page 119: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Conclusions

Conclusions

� In this presentation, we looked at the problem of algebraic loops contained inthe set of DAEs extracted from an object-oriented description of the system tobe simulated.

� We demonstrated that the Tarjan algorithm for the causalization of theequations will get stuck in this case. The equations forming the loop need to besolved together.

� We then introduced two separate symbolic formula manipulation algorithms thatcan be used for “squeezing the zeros out of the loop equations.” These are twodifferent symbolic sparse system solvers.

Page 120: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Conclusions

Conclusions

� In this presentation, we looked at the problem of algebraic loops contained inthe set of DAEs extracted from an object-oriented description of the system tobe simulated.

� We demonstrated that the Tarjan algorithm for the causalization of theequations will get stuck in this case. The equations forming the loop need to besolved together.

� We then introduced two separate symbolic formula manipulation algorithms thatcan be used for “squeezing the zeros out of the loop equations.” These are twodifferent symbolic sparse system solvers.

� One of these algorithms, the relaxation algorithm, can only be applied in thecase of linear systems, whereas the other, the tearing algorithm, is applicablealso for non-linear systems.

Page 121: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

Conclusions

Conclusions

� In this presentation, we looked at the problem of algebraic loops contained inthe set of DAEs extracted from an object-oriented description of the system tobe simulated.

� We demonstrated that the Tarjan algorithm for the causalization of theequations will get stuck in this case. The equations forming the loop need to besolved together.

� We then introduced two separate symbolic formula manipulation algorithms thatcan be used for “squeezing the zeros out of the loop equations.” These are twodifferent symbolic sparse system solvers.

� One of these algorithms, the relaxation algorithm, can only be applied in thecase of linear systems, whereas the other, the tearing algorithm, is applicablealso for non-linear systems.

� The relaxation algorithm is more efficient in the case of linear systems, and forthis reason, it has its place. Yet due to the greater generality of the tearingapproach, Dymola and Sol only make use of tearing.

Page 122: Numerical Simulation of Dynamic Systems XV

Numerical Simulation of Dynamic Systems XV

Differential Algebraic Equations II

References

References

1. Otter, M., H. Elmqvist, and F.E. Cellier (1996), “ ‘Relaxing’ - A SymbolicSparse Matrix Method Exploiting the Model Structure in Generating EfficientSimulation Code,” Proc. Symposium on Modelling, Analysis, and Simulation,CESA’96, IMACS MultiConference on Computational Engineering in SystemsApplications, Lille, France, vol.1, pp.1-12.

2. Zimmer, Dirk (2010), Equation-based Modeling of Variable-structure Systems,Ph.D. Dissertation, Dept. of Computer Science, ETH Zurich, Switzerland.