index theory and structural analysis for multi-mode dae ... · overview of our approach nonstandard...

79
Index Theory and Structural Analysis for multi-mode DAE Systems Albert Benveniste Benoît Caillaud Khalil Ghorbal Mathias Malandain (Inria, Rennes) March 15, 2019 1 / 36

Upload: others

Post on 11-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Index Theoryand Structural Analysis

for multi-mode DAE Systems

Albert Benveniste Benoît CaillaudKhalil Ghorbal Mathias Malandain

(Inria, Rennes)

March 15, 2019

1 / 36

Page 2: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Motivations

An unexpected simulation example

The clutch exampleSeparate analysis of each modeThe mode transitions

The clutch example: a comprehensive approachOverview of our approachNonstandard structural analysisBack-Standardization

How to make this work in generalStructural analysisResults and code for the clutch

Standardization

Further results and conclusion

Additional materialThe railcar example

2 / 36

Page 3: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Compositionality and reuse: Simulink→ ModelicaFrom Block Diagram to Component Diagram

3 / 36

Page 4: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Compositionality and reuse: ODE→ DAE

from Simulink (ODE):HS in state space form{

x ′ = f (x , u)y = g(x , u)

the state space formdepends on the context

reuse is difficult

−→

to Modelica (DAE):HS as physical balance equations{

0 = f (x ′, x , u)0 = g(x , u)

Ohm & Kirchhoff laws, bond graphs,multi-body mechanical systems

reuse is much easier

4 / 36

Page 5: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Compositionality and reuse: ODE→ DAE

I Modeling tools supporting DAE

I Most modeling tools provide a library of predefined modelsready for assembly (Mathworks/Simscape,Siemens-LMS/AmeSim, Mathematica/NDSolve)

I Modelica comes with a full programming language that is apublic standard https://www.modelica.org/ ;

I Simscape and NDSolve use Matlab extended with “==”

I Also Spice dedicated to EDA

5 / 36

Page 6: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

A sketch of Modelica and its semantics [Fritzson]

17

Sunday, October 12, 2003

Multi-domain Modeling and Simulation with Modelica 34

Model of Resistorp.i n.i

p.v n.v

model Resistorpackage SIunits = Modelica.SIunits;package Interfaces = Modelica.Electrical.Analog.Interfaces; parameter SIunits.Resistance R = 1 "Resistance";SIunits.Voltage v "Spannungsabfall über Element";Interfaces.PositivePin p;Interfaces.NegativePin n;

equation0 = p.i + n.i;v = p.v - n.v;v = R*p.i;

end Resistor;

Sunday, October 12, 2003

Multi-domain Modeling and Simulation with Modelica 35

Summarymodel SimpleDrive

..Rotational.Inertia Inertia1 (J=0.002);

..Rotational.IdealGear IdealGear1(ratio=100)

..Basic.Resistor Resistor1 (R=0.2)...

equationconnect(Inertia1.flange_b, IdealGear1.flange_a);connect(Resistor1.n, Inductor1.p);

...end SimpleDrive;

model Resistorpackage SIunits = Modelica.SIunits; parameter SIunits.Resistance R = 1;SIunits.Voltage v;..Interfaces.PositivePin p;..Interfaces.NegativePin n;

equation0 = p.i + n.i;v = p.v - n.v;v = R*p.i;

end Resistor;

connector PositivePinpackage SIunits = Modelica.SIunits;SIunits.Voltage v;flow SIunits.Current i;

end PositivePin;

type Voltage = Real(quantity="Voltage",

unit ="V");

6 / 36

Page 7: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

A sketch of Modelica and its semantics [Fritzson]

I Modelica Reference v3.3:

“The semantics of the Modelica language is specified by means ofa set of rules for translating any class described in the Modelicalanguage to a flat Modelica structure”

I the good:

I Semantics of continuous-time 1-mode Modelica models: Cauchyproblem on the DAE resulting from the inlining of all components

I Modelica supports multi-mode systemsx*x + y*y = 1;der(x) + x + y = 0;when x <= 0 do reinit(x,1); end;when y <= 0 do reinit(y,x); end;

I the bad: What about the semantics of multi-mode systems?

I and . . . : Questionable simulations (examples later)

6 / 36

Page 8: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Examples of multi-mode systems

Cup-and-Ball game(a two-modeextension of

the pendulum)

A Clutch

A Circuit Breaker

7 / 36

Page 9: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Motivations

An unexpected simulation example

The clutch exampleSeparate analysis of each modeThe mode transitions

The clutch example: a comprehensive approachOverview of our approachNonstandard structural analysisBack-Standardization

How to make this work in generalStructural analysisResults and code for the clutch

Standardization

Further results and conclusion

Additional materialThe railcar example

8 / 36

Page 10: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Examples of unexpected results: causal loops

A case in Modelica

model schedulingReal x(start=0);Real y(start=0);

equationder(x)=1;der(y)=x;when x>=2 thenreinit(x,-3*pre(y));

end when;when x>=2 thenreinit(y,-4*pre(x));

end when;end scheduling

At the instant of reset, x and y each have avalue defined in terms of their values just priorto the reset.

9 / 36

Page 11: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Examples of unexpected results: causal loops

A case in Modelica

model schedulingReal x(start=0);Real y(start=0);

equationder(x)=1;der(y)=x;when x>=2 thenreinit(x,-3*y);

end when;when x>=2 thenreinit(y,-4*x);

end when;end scheduling

Take the pre away: At the time of reset, x and yare in cyclic dependency chain. The simulationruntime (of both OpenModelica and Dymola),chooses to reinitialize x first, with the value −6as before, and then to reinitialize y with 24.

9 / 36

Page 12: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Examples of unexpected results: causal loops

A case in Modelica

model schedulingReal x(start=0);Real y(start=0);

equationder(x)=1;der(y)=x;when x>=2 thenreinit(y,-4*x);

end when;when x>=2 thenreinit(x,-3*y);

end when;end scheduling

What happens, if we reverse the order of thetwo reinit? The simulation result changes, asshown on the bottom diagram. The same phe-nomenon occurs if the two reinit are placedunder the same when clause.

9 / 36

Page 13: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Examples of unexpected results: causal loops

A case in Modelica

I The causal version (with the pre) is scheduled properly and simulates asexpected.

I The non-causal programs are accepted as well, but the result is notsatisfactory.

I Algebraic loops cannot be rejected, even in resets, since they are justanother kind of equation. They should be accepted, but the semantics of amodel must not depend on its layout!

I Studying causality can help to understand the detail of interactions betweendiscrete and continuous code.

More strange examples later.

9 / 36

Page 14: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Motivations

An unexpected simulation example

The clutch exampleSeparate analysis of each modeThe mode transitions

The clutch example: a comprehensive approachOverview of our approachNonstandard structural analysisBack-Standardization

How to make this work in generalStructural analysisResults and code for the clutch

Standardization

Further results and conclusion

Additional materialThe railcar example

10 / 36

Page 15: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Examples of multi-mode systems

Cup-and-Ball game(a two-modeextension of

the pendulum)

⇒ A Clutch

A Circuit Breaker

11 / 36

Page 16: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: separate analysis of each mode

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3) clutch engagedand τ1 + τ2 = 0 (e4) · · ·

when not γ do τ1 = 0 (e5) clutch releasedand τ2 = 0 (e6) · · ·

Note that τ1 + τ2 = 0 holds in all modes, reflecting that the angular momentum ispreserved everywhere (we assume the system to be closed)

12 / 36

Page 17: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: separate analysis of each mode

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3) clutch engagedand τ1 + τ2 = 0 (e4) · · ·

when not γ do τ1 = 0 (e5) clutch releasedand τ2 = 0 (e6) · · ·

Mode γ = F: it is just an ODE system, nothing fancyω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)τ1 = 0 (e5)τ2 = 0 (e6)

12 / 36

Page 18: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: separate analysis of each mode

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3) clutch engagedand τ1 + τ2 = 0 (e4) · · ·

when not γ do τ1 = 0 (e5) clutch releasedand τ2 = 0 (e6) · · ·

Mode γ = T: it is now a DAE systemω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)ω1 − ω2 = 0 (e3)ω•1 = ω•2 (e•3 )τ1 + τ2 = 0 (e4)

Looking for an execution scheme? Try a 1st-order Euler scheme

12 / 36

Page 19: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: separate analysis of each mode

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3) clutch engagedand τ1 + τ2 = 0 (e4) · · ·

when not γ do τ1 = 0 (e5) clutch releasedand τ2 = 0 (e6) · · ·

Mode γ = T: it is now a dAE systemω•1 = ω1 + δ.f1(ω1, τ1) (eδ1)ω•2 = ω2 + δ.f2(ω2, τ2) (eδ2)ω1 − ω2 = 0 (e3)ω•1 = ω•2 (e•3 )τ1 + τ2 = 0 (e4)

(1)

Regard (1) as a transition system: for a given (ω1, ω2) satisfying (e3),find (ω•1 , ω

•2 , τ1, τ2) using eqns (eδ1 , e

δ2 , e4).

We have 4 unknowns but only 3 eqns: it does not work!

12 / 36

Page 20: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: separate analysis of each mode

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3) clutch engagedand τ1 + τ2 = 0 (e4) · · ·

when not γ do τ1 = 0 (e5) clutch releasedand τ2 = 0 (e6) · · ·

Mode γ = T: it is now a dAE systemω•1 = ω1 + δ.f1(ω1, τ1) (eδ1)ω•2 = ω2 + δ.f2(ω2, τ2) (eδ2)ω1 − ω2 = 0 (e3)ω•1 = ω•2 (e•3 )τ1 + τ2 = 0 (e4)

(2)

Regard (2) as an algebraic system of eqns: for a given (ω1, ω2) satisfying (e3),find (ω•1 , ω

•2 , τ1, τ2) using eqns (eδ1 , e

δ2 , e•3 , e4): structurally nonsingular.

12 / 36

Page 21: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: separate analysis of each mode

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3) clutch engagedand τ1 + τ2 = 0 (e4) · · ·

when not γ do τ1 = 0 (e5) clutch releasedand τ2 = 0 (e6) · · ·

Mode γ = T: it is now a DAE systemω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)ω1 − ω2 = 0 (e3)ω′1 = ω′2 (e′3)τ1 + τ2 = 0 (e4)

(3)

Regard (3) as an algebraic system of eqns: for a given (ω1, ω2) satisfying (e3),find (ω′1, ω

′2, τ1, τ2) using eqns (e1, e2, e′3, e4): structurally nonsingular.

12 / 36

Page 22: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: separate analysis of each mode

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3) clutch engagedand τ1 + τ2 = 0 (e4) · · ·

when not γ do τ1 = 0 (e5) clutch releasedand τ2 = 0 (e6) · · ·

Mode γ = T: it is now a DAE systemω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)ω1 − ω2 = 0 (e3)ω′1 = ω′2 (e′3)τ1 + τ2 = 0 (e4)

(4)

I The structural analyses we performed

I in continuous time, andI in discrete time using Euler schemes

mirror each other (this is a general fact)12 / 36

Page 23: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: mode transitions

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3)and ω′1 − ω′2 = 0 (e′3)and τ1 + τ2 = 0 (e4)

when not γ do τ1 = 0 (e5)and τ2 = 0 (e6)

I Intuition: structural analysis in each mode is enough

I Problems:

I reset 6= initialization(initialization has 1 degree of freedom in mode γ = T)

I transition released→ engaged has impulsive torques(to adjust the rotation speeds in zero time)

The results obtained by Modelica and Mathematica are interesting

13 / 36

Page 24: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: mode transitions

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3)and ω′1 − ω′2 = 0 (e′3)and τ1 + τ2 = 0 (e4)

when not γ do τ1 = 0 (e5)and τ2 = 0 (e6)

I Intuition: structural analysis in each mode is enough

I Problems:

I reset 6= initialization(initialization has 1 degree of freedom in mode γ = T)

I transition released→ engaged has impulsive torques(to adjust the rotation speeds in zero time)

The results obtained by Modelica and Mathematica are interesting

13 / 36

Page 25: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: mode transitions

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3)and ω′1 − ω′2 = 0 (e′3)and τ1 + τ2 = 0 (e4)

when not γ do τ1 = 0 (e5)and τ2 = 0 (e6)

I Intuition: structural analysis in each mode is enough

I Problems:

I reset 6= initialization(initialization has 1 degree of freedom in mode γ = T)

I transition released→ engaged has impulsive torques(to adjust the rotation speeds in zero time)

The results obtained by Modelica and Mathematica are interesting

13 / 36

Page 26: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch example: mode transitions

ω′1 = f1(ω1, τ1) (e1)ω′2 = f2(ω2, τ2) (e2)

when γ do ω1 − ω2 = 0 (e3)and ω′1 − ω′2 = 0 (e′3)and τ1 + τ2 = 0 (e4)

when not γ do τ1 = 0 (e5)and τ2 = 0 (e6)

I Intuition: structural analysis in each mode is enough

I Problems:

I reset 6= initialization(initialization has 1 degree of freedom in mode γ = T)

I transition released→ engaged has impulsive torques(to adjust the rotation speeds in zero time)

The results obtained by Modelica and Mathematica are interesting

13 / 36

Page 27: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch in Modelica and Mathematica

Clutch

ω′1 = f1(ω1, τ1)ω′2 = f2(ω2, τ2)

when γ do ω1 − ω2 = 0and τ1 + τ2 = 0

when not γ do τ1 = 0and τ2 = 0

Changes γ : F → T → F at t = 5, 10

When the clutch gets engaged, an impulsivetorque occurs if the two rotation speeds dif-fered before the engagement. The commonspeed after engagement should sit betweenthe two speeds before it.

14 / 36

Page 28: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch in Modelica and Mathematica

Clutch in Modelica

ω′1 = f1(ω1, τ1)ω′2 = f2(ω2, τ2)

when γ do ω1 − ω2 = 0and τ1 + τ2 = 0

when not γ do τ1 = 0and τ2 = 0

Changes γ : F → T → F at t = 5, 10

The following error was detected at time:5.002Error: Singular inconsistent scalar systemfor f1 = ((if g then w1-w2 else 0.0))/(-(ifg then 0.0 else 1.0)) = -0.502621/-0Integration terminated before reaching"StopTime" at T = 5

model ClutchBasicparameter Real w01=1;parameter Real w02=1.5;parameter Real j1=1;parameter Real j2=2;parameter Real k1=0.01;parameter Real k2=0.0125;parameter Real t1=5;parameter Real t2=7;Real t(start=0, fixed=true);Boolean g(start=false);Real w1(start = w01, fixed=true);Real w2(start = w02, fixed=true);Real f1;Real f2;

equationder(t) = 1;g = (t >= t1) and (t <= t2);j1*der(w1) = -k1*w1 + f1;j2*der(w2) = -k2*w2 + f2;0 = if g then w1-w2 else f1;f1 + f2 = 0;

end ClutchBasic;

14 / 36

Page 29: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch in Modelica and Mathematica

Clutch in Modelica

ω′1 = f1(ω1, τ1)ω′2 = f2(ω2, τ2)

when γ do ω1 − ω2 = 0and τ1 + τ2 = 0

when not γ do τ1 = 0and τ2 = 0

Changes γ : F → T → F at t = 5, 10

The reason is that Dymola has symbolicallypivoted the system of equations, regardlessof the mode.By doing so, it has produced an equationdefining f1 that is singular in mode g.

model ClutchBasicparameter Real w01=1;parameter Real w02=1.5;parameter Real j1=1;parameter Real j2=2;parameter Real k1=0.01;parameter Real k2=0.0125;parameter Real t1=5;parameter Real t2=7;Real t(start=0, fixed=true);Boolean g(start=false);Real w1(start = w01, fixed=true);Real w2(start = w02, fixed=true);Real f1;Real f2;

equationder(t) = 1;g = (t >= t1) and (t <= t2);j1*der(w1) = -k1*w1 + f1;j2*der(w2) = -k2*w2 + f2;0 = if g then w1-w2 else f1;f1 + f2 = 0;

end ClutchBasic;

14 / 36

Page 30: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The clutch in Modelica and Mathematica

Clutch in Mathematica

ω′1 = f1(ω1, τ1)ω′2 = f2(ω2, τ2)

when γ do ω1 − ω2 = 0and τ1 + τ2 = 0

when not γ do τ1 = 0and τ2 = 0

Changes γ : F → T → F at t = 5, 10

The simulation does not crash but yieldsmeaningless results highly sensitive to littlevariations of some parameters.Suggests that a cold restart, not a reset, isperformed.

NDSolve[{w1’[t] == -0.01 w1[t] + t1[t],2 w2’[t] == -0.0125 w2[t] + t2[t],t1[t] + t2[t] == 0,s[t] (w1[t] - w2[t]) + (1 - s[t]) t1[t] == 0,w1[0] == 1.0, w2[0] == 1.5, s[0] == 0,WhenEvent[t == 5,

s[t] -> 1] },

w1, w2, t1, t2,s,t, 0, 7, DiscreteVariables -> s]

14 / 36

Page 31: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Motivations

An unexpected simulation example

The clutch exampleSeparate analysis of each modeThe mode transitions

The clutch example: a comprehensive approachOverview of our approachNonstandard structural analysisBack-Standardization

How to make this work in generalStructural analysisResults and code for the clutch

Standardization

Further results and conclusion

Additional materialThe railcar example

15 / 36

Page 32: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Overview of our approach

mdAEmDAEdomain

nonstandardmapping to

causality analysislatent equations

DAE modelcontinuous modes

reset equationsat events

standardizationimpulse analysisstandardization

16 / 36

Page 33: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Nonstandard structural analysis

mDAE

DAE modelcontinuous modes

reset equationsat events

standardizationimpulse analysisstandardization

causality analysislatent equations

mdAE

mapping tononstandard

domain

17 / 36

Page 34: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Nonstandard structural analysis

Nonstandard analysisI Nonstandard reals ?R ⊃ R: conservative extension offering infinitesimals

(smaller in size than any ε>0) and infinities; +,×, etc. extend to ?R

I Standardization: say x ≈ y if x − y is infinitesimalEach finite x ∈ ?R has a unique standard part st(x) ∈ R such that x ≈ st(x)

I Nonstandard integers ?Z ⊃ Z: conservative extension offering infinities

Using itI Pick ∂ > 0 infinitesimal and consider T = {n∂ | n ∈ ?Z}; T is both

I discrete: each n∂ has a predecessor (n−1)∂ and a successor (n+1)∂I dense in R: each t ∈ R has a τ ∈ T such that t ≈ τ

I We will “faithfully” approximate multimode DAE systems by multimode dAEsystems over T; reverse mapping by performing standardization

I “faithful” means “up to an infinitesimal error”I this way we unify continuous dynamics and mode changes

18 / 36

Page 35: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Nonstandard structural analysis

Nonstandard analysisI Nonstandard reals ?R ⊃ R: conservative extension offering infinitesimals

(smaller in size than any ε>0) and infinities; +,×, etc. extend to ?R

I Standardization: say x ≈ y if x − y is infinitesimalEach finite x ∈ ?R has a unique standard part st(x) ∈ R such that x ≈ st(x)

I Nonstandard integers ?Z ⊃ Z: conservative extension offering infinities

Using itI Pick ∂ > 0 infinitesimal and consider T = {n∂ | n ∈ ?Z}; T is both

I discrete: each n∂ has a predecessor (n−1)∂ and a successor (n+1)∂I dense in R: each t ∈ R has a τ ∈ T such that t ≈ τ

I We will “faithfully” approximate multimode DAE systems by multimode dAEsystems over T; reverse mapping by performing standardization

I “faithful” means “up to an infinitesimal error”I this way we unify continuous dynamics and mode changes

18 / 36

Page 36: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Nonstandard structural analysis

∂ infinitesimal; ?T =def {n.∂ | n ∈ ?N}; nonstandard clutch model:

ω•1 = ω1 + ∂.f1(ω1, τ1) (e∂1 )ω•2 = ω2 + ∂.f2(ω2, τ2) (e∂2 )

when γ do ω1 − ω2 = 0 (e3)and ω•1 − ω•2 = 0 (e•3 )and τ1 + τ2 = 0 (e4)

when not γ do τ1 = 0 (e5)and τ2 = 0 (e6)

Latent equations were added for each mode

19 / 36

Page 37: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Nonstandard structural analysis

∂ infinitesimal; ?T =def {n.∂ | n ∈ ?N}; nonstandard clutch model:

ω•1 = ω1 + ∂.f1(ω1, τ1) (e∂1 )ω•2 = ω2 + ∂.f2(ω2, τ2) (e∂2 )

when γ do ω1 − ω2 = 0 (e3)and ω•1 − ω•2 = 0 (e•3 )and τ1 + τ2 = 0 (e4)

when not γ do τ1 = 0 (e5)and τ2 = 0 (e6)

Latent equations were added for each mode

OK inside each of the two modes:

I γ=T: activate (e3, e•3 , e4) and disable (e5, e6)

I γ=F: disable (e3, e•3 , e4) and activate (e5, e6)

19 / 36

Page 38: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Nonstandard structural analysis

∂ infinitesimal; ?T =def {n.∂ | n ∈ ?N}; nonstandard clutch model:

ω•1 = ω1 + ∂.f1(ω1, τ1) (e∂1 )ω•2 = ω2 + ∂.f2(ω2, τ2) (e∂2 )

when γ do ω1 − ω2 = 0 (e3)and ω•1 − ω•2 = 0 (e•3 )and τ1 + τ2 = 0 (e4)

when not γ do τ1 = 0 (e5)and τ2 = 0 (e6)

Latent equations were added for each mode

Conflict at mode change γ : F → T between:

I (e3) at instant of mode change, requires ω1 = ω2

I (e∂1 , e∂2 ) at previous instant, sets ω•1 , ω

•2 with no guarantee that ω•1 = ω•2

19 / 36

Page 39: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Nonstandard structural analysis

∂ infinitesimal; ?T =def {n.∂ | n ∈ ?N}; nonstandard clutch model:

ω•1 = ω1 + ∂.f1(ω1, τ1) (e∂1 )ω•2 = ω2 + ∂.f2(ω2, τ2) (e∂2 )

when γ do ω1 − ω2 = 0 (e3)and ω•1 − ω•2 = 0 (e•3 )and τ1 + τ2 = 0 (e4)

when not γ do τ1 = 0 (e5)and τ2 = 0 (e6)

Latent equations were added for each mode

Solve the conflict at mode change γ : F → T based on causality (no UNDO)

I (e3) at instant of mode change, requires ω1 = ω2 inhibited

I (e∂1 , e∂2 ) at previous instant, sets ω•1 , ω

•2 with no guarantee that ω•1 = ω•2

19 / 36

Page 40: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Nonstandard structural analysis

∂ infinitesimal; ?T =def {n.∂ | n ∈ ?N}; nonstandard clutch model:

ω1 = •ω1 + ∂.f1(•ω1,•τ1) (•e∂1 )

ω2 = •ω2 + ∂.f2(•ω2,•τ2) (•e∂2 )

ω•1 = ω1 + ∂.f1(ω1, τ1) (e∂1 )ω•2 = ω2 + ∂.f2(ω2, τ2) (e∂2 )

when γ do ω1 − ω2 = 0 (e3)when iiiiiiitγ do ω•1 − ω•2 = 0 (e•3 )

and τ1 + τ2 = 0 (e4)

Resulting code at mode change γ : F → T:

I context inherited from the past

I latent equations

I other equations

19 / 36

Page 41: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Nonstandard structural analysis: summary

I Each continuous mode comes with its structural analysis

I Conflicts may occur at mode changes

I Resolve conflicts by removing, at the current instant,the equations conflicting with the past

I Conflicts disappear in finitely many (nonstandard) instants,i.e., in zero (standard) time

20 / 36

Page 42: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Back-Standardization

time:?R; both x•, x ′

mdAEmDAEdomain

nonstandardmapping to

causality analysislatent equations

impulse analysisstandardizationstandardization

DAE model reset equationsat eventscontinuous modes

time: R; derivatives x ′ time: discrete; shift x•

21 / 36

Page 43: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Back-Standardization

∂ infinitesimal; ?T =def {n.∂ | n ∈ ?N}; nonstandard clutch model:

ω•1 = ω1 + ∂.f1(ω1, τ1) (e∂1 )ω•2 = ω2 + ∂.f2(ω2, τ2) (e∂2 )

when γ do ω1 − ω2 = 0 (e3)and ω•1 − ω•2 = 0 (e•3 )and τ1 + τ2 = 0 (e4)

when not γ do τ1 = 0 (e5)and τ2 = 0 (e6)

OK inside each individual mode:

I Apply usual continuous time structural analysis for each mode, separately

I This can be justified by standardization of the nonstandard model;

consists in moving backward, from nonstandard Euler scheme to DAE

I The usual numerical schemes for DAE can then be applied

22 / 36

Page 44: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Back-Standardization

∂ infinitesimal; ?T =def {n.∂ | n ∈ ?N}; nonstandard clutch model:ω•1 = ω1 + ∂.f1(ω1, τ1) (e∂1 )ω•2 = ω2 + ∂.f2(ω2, τ2) (e∂2 )ω•1 − ω•2 = 0 (e•3 )τ1 + τ2 = 0 (e4)

This is the nonstandard dynamics at mode change γ : F → T.

How to map it to effective code?

I again by standardization, by, however

I targeting discrete time dynamics (for stepwise computing restart values)

I the issue: getting rid of the infinitesimal ∂ acting in space in (e∂1 , e∂2 )

Let us proceed for the simple case where fi (ωi , τi ) = aiωi + biτi

22 / 36

Page 45: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Back-Standardization

∂ infinitesimal; ?T =def {n.∂ | n ∈ ?N}; nonstandard clutch model: ω•1 = ω1 + ∂(a1ω1 + b1τ) (e∂1 )ω•2 = ω2 + ∂(a2ω2 − b2τ) (e∂2 )ω•1 − ω•2 = 0 (e•3 )

1st step: impulse analysis

I because of ∂ in (e∂1 , e∂2 ), ω•1 − ω•2 = 0 and ω1 − ω2 6= 0 together requires

either (a1ω1 + b1τ) or (a2ω2 − b2τ) to be infinite (in nonstandard setting)

I requires τ to be infinite, expressing that τ is impulsive

22 / 36

Page 46: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Back-Standardization

∂ infinitesimal; ?T =def {n.∂ | n ∈ ?N}; nonstandard clutch model: ω•1 = ω1 + ∂(a1ω1 + b1τ) (e∂1 )ω•2 = ω2 + ∂(a2ω2 − b2τ) (e∂2 )ω•1 − ω•2 = 0 (e•3 )

2nd step: eliminating impulsive variables

I because of ∂ in (e∂1 , e∂2 ), ω•1 − ω•2 = 0 and ω1 − ω2 6= 0 together requires

either (a1ω1 + b1τ) or (a2ω2 − b2τ) to be infinite (in nonstandard setting)

I requires τ to be infinite, expressing that τ is impulsive

I we cannot directly set ∂ ← 0 because we get a conflict!

⇒ we first need to eliminate τ . Yields, with ω• =def ω•1 = ω•2 :

(b1 + b2)ω• = b2(1+∂.a1)ω1 + b1(1+∂.a2)ω2

22 / 36

Page 47: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Back-Standardization

∂ infinitesimal; ?T =def {n.∂ | n ∈ ?N}; nonstandard clutch model: ω•1 = ω1 + ∂(a1ω1 + b1τ) (e∂1 )ω•2 = ω2 + ∂(a2ω2 − b2τ) (e∂2 )ω•1 − ω•2 = 0 (e•3 )

3rd step: perform safe standardization of

(b1 + b2)ω• = b2(1+∂.a1)ω1 + b1(1+∂.a2)ω2

Now we can safely set ∂ ← 0, which yields

(b1 + b2)ω• = b2ω1 + b1ω2

which we interpret as the restart equation for the velocities:

(b1 + b2)ω+ = b2ω−1 + b1ω

−2

22 / 36

Page 48: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Our simulation results

mode changes γ : F → T → F at t = 5, 10

23 / 36

Page 49: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Motivations

An unexpected simulation example

The clutch exampleSeparate analysis of each modeThe mode transitions

The clutch example: a comprehensive approachOverview of our approachNonstandard structural analysisBack-Standardization

How to make this work in generalStructural analysisResults and code for the clutch

Standardization

Further results and conclusion

Additional materialThe railcar example

24 / 36

Page 50: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Extending the structural analysis

The new issues wrt (single-mode) DAE systems

I Maybe not all guards are known at the start of an instant. Then:

I Need to handle partial models, possibly non-square(more variables than equations)

I Need to extend structural analysis to non-square DAE systems

I How to resolve conflicts between past and present, structurally?

25 / 36

Page 51: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Extending the structural analysis

Background on the Σ-method [Pryce2001] for square DAE systems

I Consider F=0, where F = vec(fj ) and fj (the xi and their derivatives)

I GF weighted bipartite graph of F=0

(e, n, x) ∈ GF iff x has differentiation degree n in equation e; let dex := n

25 / 36

Page 52: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Extending the structural analysis

Background on the Σ-method [Pryce2001] for square DAE systems

I Consider F=0, where F = vec(fj ) and fj (the xi and their derivatives)

I GF weighted bipartite graph of F=0

(e, n, x) ∈ GF iff x has differentiation degree n in equation e; let dex := n

I Find a complete matchingM⊆ GF (bijection F 7→ X )

and integer offsets (ce)e∈F and (dx )x∈X , such that

dx − ce ≥ dex with equality iff (e, dex , x) ∈Mce ≥ 0

25 / 36

Page 53: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Extending the structural analysis

Background on the Σ-method [Pryce2001] for square DAE systems

I Consider F=0, where F = vec(fj ) and fj (the xi and their derivatives)

I GF weighted bipartite graph of F=0

(e, n, x) ∈ GF iff x has differentiation degree n in equation e; let dex := n

I Find a complete matchingM⊆ GF (bijection F 7→ X )

and integer offsets (ce)e∈F and (dx )x∈X , such that

dx − ce ≥ dex with equality iff (e, dex , x) ∈Mce ≥ 0

(5)

I Differentiating ce times each e yields an algebraic systemFΣ(leading/other vars) = 0 that is structurally nonsingular wrt leading(FΣ is equivalent to an ODE)

I John Pryce found a linear programming problem equivalent to (5)

25 / 36

Page 54: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Extending the structural analysis

Extending the Σ-method to non-square systems

F = 0 possibly non-square in:

1. Find an equation complete matching of GF (injection F 7→ X ); if success then

2. Applying Σ-method to GF yields a FΣ, possibly non regular (non-square!)

3. Dulmage-Mendelsohn decomposition:

FΣ = FH︸ ︷︷ ︸underdetermined

] FS︸ ︷︷ ︸regular

] FV︸ ︷︷ ︸overdetermined: ∅

4. If F was not empty but FS is, we are stuck and report underspecification

5. Otherwise, return FS as a partial DAE model for solving,which, hopefully, enables evaluating additional variables and guards

25 / 36

Page 55: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Extending the structural analysis

Resolving conflicts between past and present, structurally

1. W dependent variables in: F (W ,X ) = F past(W ,X ) ] F pres(W ,X )

2. Dulmage-Mendelsohn decomposition:

F = FH︸ ︷︷ ︸underdetermined

] FS︸ ︷︷ ︸regular

] FV︸ ︷︷ ︸overdetermined

3. Remove, from F , the present part of FV , i.e., F pres ∩ FV

Since F past had no overdetermined part, so has the reduced F

4. The final question is: is the so reduced F structurally regular?

I Yes: we solve F=0, which opens the way to evaluating more guardsI No: the model lacks information and we return this info to the designer

25 / 36

Page 56: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Clutch: structural analysis

ω1, ω2start

γ, ω1, ω2,e3, e4

γ, ω1, ω2,τ1, τ2, ω

•1 , ω

•2 ,

e∂1 , e∂2 , e3,

e4, e5, e6

γ, ω1, ω2,e5, e6

γ, ω1, ω2,τ1, τ2, ω

•1 , ω

•2 ,

e∂1 , e∂2 , e•3 ,

e4, e5, e6

ω1, ω2, ]e3

γ, ω1, ω2,e3, e4

γ, ω1, ω2,τ1, τ2, ω

•1 , ω

•2 ,

e∂1 , e∂2 , e3,

e4, e5, e6

γ, ω1, ω2,e3, e5, e6

γ, ω1, ω2,τ1, τ2, ω

•1 , ω

•2 ,

e∂1 , e∂2 , e3, e•3 ,

e4, e5, e6

γ; e3; e4

γ; e5; e6

e5; e6;e∂1 ; e∂2

Tick

e∂1 + e∂2 + e•3 + e4

Tickγ; e3; e4

γ; e5; e6; PR(e3)

e5; e6; e∂1 ; e∂2

Tick

e∂1 + e∂2 +e•3 + e4

Tick

26 / 36

Page 57: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Motivations

An unexpected simulation example

The clutch exampleSeparate analysis of each modeThe mode transitions

The clutch example: a comprehensive approachOverview of our approachNonstandard structural analysisBack-Standardization

How to make this work in generalStructural analysisResults and code for the clutch

Standardization

Further results and conclusion

Additional materialThe railcar example

27 / 36

Page 58: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Clutch: (standard) executable code

Our executable code yields this simulation

28 / 36

Page 59: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Clutch: (standard) executable code

mode ¬γ : index 0τ1 = 0; τ2 = 0;ω′1 = a1ω1 + b1τ1;ω′2 = a2ω2 + b2τ2

start

mode γ : index 1τ1 = (a2ω2 − a1ω1)/(b1 + b2); τ2 = −τ1;ω′1 = a1ω1 + b1τ1; ω′2 = a2ω2 + b2τ2;constraint ω1 − ω2 = 0

when γ doτ1 = NaN; τ2 = NaN;

ω+1 = ω+

2 =b2ω

−1 + b1ω

−2

b1 + b2done

when ¬γ doτ1 = 0; τ2 = 0;ω+

1 = ω−1 ;ω+

2 = ω−2done

How do we obtain this in general?

28 / 36

Page 60: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Clutch: (standard) executable code

Standardization:

I Inside each continuous mode: target continuous time and map backward

x• − x∂

7→ x ′

I At mode changes:

I We target discrete time and must get rid of ∂ in space

I Setting ∂ ← 0 generally yields a structurally singular system

I This is due to impulsive variablesIdentify them by performing impulse analysisand then eliminate them (if possible)

I Having done this we can safely set ∂ ← 0 and produce the codethat computes restart values for non impulsive variables (enough)

28 / 36

Page 61: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Motivations

An unexpected simulation example

The clutch exampleSeparate analysis of each modeThe mode transitions

The clutch example: a comprehensive approachOverview of our approachNonstandard structural analysisBack-Standardization

How to make this work in generalStructural analysisResults and code for the clutch

Standardization

Further results and conclusion

Additional materialThe railcar example

29 / 36

Page 62: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Further results

I We used the following nonstandard interpretation of the derivative:

x ′ ← x• − x∂

What if we use instead

x ′ ← 1∂

∑n

αn (x• − x)•n where∑

n

αn = 1

Theorem: Provided we can eliminate impulsive variables, nothing dependson the particular choice of (αn)M≤n≤N

I While performing structural analysis, we can equally well differentiate orshift forward equations—both transform the bipartite graph the same way

There are strategies to take the best option for an easier standardization(work in progress)

30 / 36

Page 63: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Further results

I We used the following nonstandard interpretation of the derivative:

x ′ ← x• − x∂

What if we use instead

x ′ ← 1∂

∑n

αn (x• − x)•n where∑

n

αn = 1

Theorem: Provided we can eliminate impulsive variables, nothing dependson the particular choice of (αn)M≤n≤N

I While performing structural analysis, we can equally well differentiate orshift forward equations—both transform the bipartite graph the same way

There are strategies to take the best option for an easier standardization(work in progress)

30 / 36

Page 64: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Concluding remarks

I We proposed a systematic approach for the compilation of multimodeDAE system models, from source specification to simulation code

I Our approach is physics-agnostics (better than multi-physics?)

I We reject some models, considered “spurious” by the structural analysis:

I overconstrained (within modes or at mode changes)I underspecified (some missing information at restart events)I causality cycle: var→guard→eqn→var,

a fixpoint equation that we do not support (new to multi-mode)

I One particular key condition is: being able to eliminate impulsive variables:

I Is this a restriction?I How does it relate to physics?

31 / 36

Page 65: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Concluding remarks

I We proposed a systematic approach for the compilation of multimodeDAE system models, from source specification to simulation code

I Our approach is physics-agnostics (better than multi-physics?)

I We reject some models, considered “spurious” by the structural analysis:

I overconstrained (within modes or at mode changes)I underspecified (some missing information at restart events)I causality cycle: var→guard→eqn→var,

a fixpoint equation that we do not support (new to multi-mode)

I One particular key condition is: being able to eliminate impulsive variables:

I Is this a restriction?I How does it relate to physics?

31 / 36

Page 66: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Concluding remarks

I We proposed a systematic approach for the compilation of multimodeDAE system models, from source specification to simulation code

I Our approach is physics-agnostics (better than multi-physics?)

I We reject some models, considered “spurious” by the structural analysis:

I overconstrained (within modes or at mode changes)I underspecified (some missing information at restart events)I causality cycle: var→guard→eqn→var,

a fixpoint equation that we do not support (new to multi-mode)

I One particular key condition is: being able to eliminate impulsive variables:

I Is this a restriction?I How does it relate to physics?

31 / 36

Page 67: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Thank you

32 / 36

Page 68: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Motivations

An unexpected simulation example

The clutch exampleSeparate analysis of each modeThe mode transitions

The clutch example: a comprehensive approachOverview of our approachNonstandard structural analysisBack-Standardization

How to make this work in generalStructural analysisResults and code for the clutch

Standardization

Further results and conclusion

Additional materialThe railcar example

33 / 36

Page 69: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The Railcar example

The model

R=10

restriction1

R=10

restriction2

valve

C=0.001

piston

C=0.020

tank

ground1

R=100000

leakage

V

brakeForce

pin_p pin_n

v

boundary conditions: vn=vp=0

class RailcarFlatparameter Real R1 = 10.0;parameter Real R2 = 10.0;parameter Real R3 = 100000.0;parameter Real C1 = 0.001;parameter Real C2 = 0.02;Boolean g;Real u2(start=0,fixed=true);Real u1(start=0,fixed=true);equationv1 = R1 * ip;v1 = vp - u1 - u2;v2 = R2 * (- in);v2 = u1 + u2 - vn;g = s < 0.0;u1 = s * (if g then 1.0 else 0.0);i = s * (if g then 0.0 else 1.0);i1 = C1 * der(u1);i2 = C2 * der(u2);u1 = R3 * j;ip + in - i - i1 - j = 0.0;i + i1 - i2 + j = 0.0;end RailcarFlat;

34 / 36

Page 70: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The Railcar example

0 = v1 − R1ip (e1)0 = v1 + u1 + u2 (e2)0 = v2 + R2in (e3)0 = v2 − u1 − u2 (e4)0 = u1 − R3j (e5)0 = ip + in − i − i1 − j (e6)0 = i + i1 − i2 + j (e7)0 = i1 − C1u′1 (e8)0 = i2 − C2u′2 (e9)γ = [s < 0] (e10)

when γ do 0 = u1 − s (e11)and 0 = i (e12)

when not γ do 0 = u1 (e13)and 0 = i − s (e14)

34 / 36

Page 71: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The Railcar example

0 = v1 − R1ip (e1)0 = v1 + u1 + u2 (e2)0 = v2 + R2in (e3)0 = v2 − u1 − u2 (e4)0 = u1 − R3j (e5)0 = ip + in − i − i1 − j (e6)0 = i + i1 − i2 + j (e7)0 = i1 − C1u′1 (e8)0 = i2 − C2u′2 (e9)γ = [s < 0] (e10)

when γ do 0 = u1 − s (e11)and 0 = i (e12)

when not γ do 0 = u1 (e13)and 0 = i − s (e14)

34 / 36

Page 72: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The Railcar example

(e1) : v1, ip(e2) : v1

(e3) : v2, in(e4) : v2

(e5) : j(e6) : ip, in, i , i1, j(e7) : i , i1, i2, j(e8) : i1, u′1(e9) : i2, u′2

.

(e6) : ip, in, i , i1, j(e7) : i , i1, i2, j(e8) : i1, u′1

βu (e9) : i2, u′2======= =========βe (e3) : v2, in

(e4) : u1, u2, v2

−−− −−−−−−−(e1) : v1, ip(e2) : u1, u2, v1

−−− −−−−−−−(e5) : u1, j︸ ︷︷ ︸Dulmage−Mendelsohn

1. we solve βe,which determinesin, v2, ip, v1, j .

2. we return to βu,which remainsunderdeterminedsince i isunmatched.

3. we get stuck:the program isrejected(underdetermined)with diagnosis

34 / 36

Page 73: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The Railcar example

(e1) : v1, ip(e2) : v1

(e3) : v2, in(e4) : v2

(e5) : j(e6) : ip, in, i , i1, j(e7) : i , i1, i2, j(e8) : i1, u′1(e9) : i2, u′2

.

(e6) : ip, in, i , i1, j(e7) : i , i1, i2, j(e8) : i1, u′1

βu (e9) : i2, u′2======= =========βe (e3) : v2, in

(e4) : u1, u2, v2

−−− −−−−−−−(e1) : v1, ip(e2) : u1, u2, v1

−−− −−−−−−−(e5) : u1, j︸ ︷︷ ︸Dulmage−Mendelsohn

1. we solve βe,which determinesin, v2, ip, v1, j .

2. we return to βu,which remainsunderdeterminedsince i isunmatched.

3. we get stuck:the program isrejected(underdetermined)with diagnosis

34 / 36

Page 74: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The Railcar example

(e1) : v1, ip(e2) : v1

(e3) : v2, in(e4) : v2

(e5) : j(e6) : ip, in, i , i1, j(e7) : i , i1, i2, j(e8) : i1, u′1(e9) : i2, u′2

.

(e6) : ip, in, i , i1, j(e7) : i , i1, i2, j(e8) : i1, u′1

βu (e9) : i2, u′2======= =========βe (e3) : v2, in

(e4) : u1, u2, v2

−−− −−−−−−−(e1) : v1, ip(e2) : u1, u2, v1

−−− −−−−−−−(e5) : u1, j︸ ︷︷ ︸Dulmage−Mendelsohn

1. we solve βe,which determinesin, v2, ip, v1, j .

2. we return to βu,which remainsunderdeterminedsince i isunmatched.

3. we get stuck:the program isrejected(underdetermined)with diagnosis

34 / 36

Page 75: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The Railcar example, corrected

0 = v1 − R1ip (e1)0 = v1 + u1 + u2 (e2)0 = v2 + R2in (e3)0 = v2 − u1 − u2 (e4)0 = u1 − R3j (e5)0 = ip + in − i − i1 − j (e6)0 = i + i1 − i2 + j (e7)0 = i1 − C1u′1 (e8)0 = i2 − C2u′2 (e9)γ• = [s < 0]; γ(0) = T (e10)

when γ do 0 = u1 − s (e11)and 0 = i (e12)

when not γ do 0 = u1 (e13)and 0 = i − s (e14)

35 / 36

Page 76: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The Railcar example, corrected

0 = v1 − R1ip (e1)0 = v1 + u1 + u2 (e2)0 = v2 + R2in (e3)0 = v2 − u1 − u2 (e4)0 = u1 − R3j (e5)0 = ip + in − i − i1 − j (e6)0 = i + i1 − i2 + j (e7)0 = i1 − C1u′1 (e8)0 = i2 − C2u′2 (e9)γ• = [s < 0]; γ(0) = T (e10)

when γ do 0 = u1 − s (e11)and 0 = i (e12)

when not γ do 0 = u1 (e13)and 0 = i − s (e14)

Case γ = T.

1. We solve (e1, ..., e9, e11, e12) (structurally nonsingular)

2. We evaluate γ• and we are done

35 / 36

Page 77: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The Railcar example, corrected

0 = v1 − R1ip (e1)0 = v1 + u1 + u2 (e2)0 = v2 + R2in (e3)0 = v2 − u1 − u2 (e4)0 = u1 − R3j (e5)0 = ip + in − i − i1 − j (e6)0 = i + i1 − i2 + j (e7)0 = i1 − C1u′1 (e8)0 = i2 − C2u′2 (e9)γ• = [s < 0]; γ(0) = T (e10)

when γ do 0 = u1 − s (e11)and 0 = i (e12)

when not γ do 0 = u1 (e13)and 0 = i − s (e14)

Case γ = F. (e13) causes an index problem.

35 / 36

Page 78: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

The Railcar example, corrected

0 = v1 − R1ip (e1)0 = v1 + u1 + u2 (e2)0 = v2 + R2in (e3)0 = v2 − u1 − u2 (e4)0 = u1 − R3j (e5)0 = ip + in − i − i1 − j (e6)0 = i + i1 − i2 + j (e7)0 = i1 − C1u′1 (e8)0 = i2 − C2u′2 (e9)γ• = [s < 0]; γ(0) = T (e10)

when γ do 0 = u1 − s (e11)and 0 = i (e12)

when not γ do 0 = u1 (e13)when not γ do 0 = u•1 (e•13)

and 0 = i − s (e14)

1. •γ = F: we replace (e13) by (e•13) and solve the system

2. •γ = T: (e13) causes conflict with the past and is thus deleted. And so on35 / 36

Page 79: Index Theory and Structural Analysis for multi-mode DAE ... · Overview of our approach Nonstandard structural analysis Back-Standardization How to make this work in general Structural

Discussion

I We can go ahead with standardization and generate final code:

I Impulse analysis finds that i, i1, s are impulsive at mode change γ:T→FI We eliminate them and get reinit code for this mode changeI Other modes or mode changes raise no problem.

I However, there is no physical reason for having index reduction norimpulsive variables at mode change γ:T→F.

I Intelligent solution:

I s = 0 holds at mode changes, ignored by our structural algorithmI add this info via a mechanism of assertion, used by our algorithm

when γ and not •γ assert s = 0

when not γ and •γ assert s = 0

I Stupid solution: what we did. Gives same reinit code after standardization.

36 / 36