Modelica_StateGraph2.Examples.BasicStateGraphs

Examples demonstrating the various modeling possibilities with Modelica_StateGraph2 components

Package Content

NameDescription
Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample FirstExample A first simple Modelica_StateGraph2 example
Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant2 FirstExample_Variant2 Same as FirstExample, but using an autonomous Parallel step to start the graph and not an initial step
Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant3 FirstExample_Variant3 Same as FirstExample, but formulating the transition condition of T2 with logical blocks
Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant4 FirstExample_Variant4 Same as FirstExample_Variant3, but without a delayed transition (by switching the check off)
Modelica_StateGraph2.Examples.BasicStateGraphs.Sequence Sequence Example to demonstrate a sequence of simple steps
Modelica_StateGraph2.Examples.BasicStateGraphs.Composite1 Composite1 Example of a composite step
Modelica_StateGraph2.Examples.BasicStateGraphs.Composite2 Composite2 Example of a composite step as submodel
Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelBranches ParallelBranches Example to demonstrate parallel execution paths
Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelWithSuspendAndNoResume ParallelWithSuspendAndNoResume Same as example ParallelBranches, but the parallel execution path is suspended and then resumed from the inPort
Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelInsideDelay ParallelInsideDelay Demonstrates that a delay in one branch of a Parallel is sufficient so that no infinite event looping occurs
Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelOutsideDelay ParallelOutsideDelay Demonstrates that a delay outside of a Parallel is sufficient so that no infinite event looping occurs
Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelAutonomous ParallelAutonomous Demonstrates Parallel that runs autonomously
Modelica_StateGraph2.Examples.BasicStateGraphs.Actions1 Actions1 Demonstrates MultiSwitch and ShowValue
Modelica_StateGraph2.Examples.BasicStateGraphs.Actions2 Actions2 Demonstrates rising and falling edge action blocks
Modelica_StateGraph2.Examples.BasicStateGraphs.Actions3 Actions3 Demonstrates usage of TriggeredAdd action block
Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelWithActions ParallelWithActions Demonstrates usage of MultiSwitch block for branches executing in parallel
Modelica_StateGraph2.Examples.BasicStateGraphs.Utilities Utilities Utility models used in the examples


Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample

A first simple Modelica_StateGraph2 example

Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample

Information



Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model FirstExample "A first simple Modelica_StateGraph2 example"
  extends Modelica.Icons.Example;
  Modelica_StateGraph2.Step initialStep(
  nIn=1,
  nOut=1,
  initialStep=true);
  Modelica_StateGraph2.Transition T1(
                condition=time > 2);
  Modelica_StateGraph2.Step step2(
             nIn=1, nOut=1);
  Modelica_StateGraph2.Transition T2(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Step step3(
             nIn=1, nOut=1);
  Modelica_StateGraph2.Transition T3(
                delayedTransition=true, waitTime=1);
equation 
connect(initialStep.outPort[1], T1.inPort);
  connect(T1.outPort, step2.inPort[1]);
  connect(step2.outPort[1], T2.inPort);
  connect(T2.outPort, step3.inPort[1]);
  connect(step3.outPort[1], T3.inPort);
connect(T3.outPort, initialStep.inPort[1]);
end FirstExample;

Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant2 Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant2

Same as FirstExample, but using an autonomous Parallel step to start the graph and not an initial step

Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant2

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model FirstExample_Variant2 
  "Same as FirstExample, but using an autonomous Parallel step to start the graph and not an initial step"
  extends Modelica.Icons.Example;

  Parallel parallel(                               use_inPort=true,
                    nEntry=1, nIn=1,
    initialStep=false);
  Modelica_StateGraph2.Step initialStep(
                   nIn=2, nOut=1);
  Modelica_StateGraph2.Transition T1(
                condition=time > 2);
  Modelica_StateGraph2.Step step2(
             nIn=1, nOut=1);
  Modelica_StateGraph2.Transition T2(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Step step3(
             nIn=1, nOut=1);
  Modelica_StateGraph2.Transition T3(
                delayedTransition=true, waitTime=1);
Modelica_StateGraph2.Step step1(
           initialStep=true, nOut=1);
Modelica_StateGraph2.Transition T4;
equation 

connect(parallel.entry[1], initialStep.inPort[1]);
connect(initialStep.outPort[1], T1.inPort);
  connect(T1.outPort, step2.inPort[1]);
  connect(step2.outPort[1], T2.inPort);
  connect(T2.outPort, step3.inPort[1]);
  connect(step3.outPort[1], T3.inPort);
connect(T3.outPort, initialStep.inPort[2]);
connect(step1.outPort[1], T4.inPort);
connect(T4.outPort, parallel.inPort[1]);
end FirstExample_Variant2;

Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant3 Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant3

Same as FirstExample, but formulating the transition condition of T2 with logical blocks

Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant3

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model FirstExample_Variant3 
  "Same as FirstExample, but formulating the transition condition of T2 with logical blocks"
  extends Modelica.Icons.Example;
  Modelica_StateGraph2.Step initialStep(
  nIn=1,
  initialStep=true,
  use_activePort=false,
  nOut=1);
  Modelica_StateGraph2.Transition T1(
                use_conditionPort=false, condition=time > 2);
  Modelica_StateGraph2.Step step2(
    use_activePort=true,
  nIn=1,
  nOut=1);
  Modelica_StateGraph2.Transition T2(
                use_conditionPort=true, delayedTransition=false);
  Modelica_StateGraph2.Step step3(
                    nOut=1, nIn=1);
  Modelica_StateGraph2.Transition T3(
                delayedTransition=true, waitTime=1);
Blocks.MathBoolean.OnDelay onDelay(delayTime=1);
equation 
  connect(step3.outPort[1], T3.inPort);
connect(T3.outPort, initialStep.inPort[1]);
connect(initialStep.outPort[1], T1.inPort);
connect(T1.outPort, step2.inPort[1]);
connect(step2.outPort[1], T2.inPort);
connect(T2.outPort, step3.inPort[1]);
connect(onDelay.y, T2.conditionPort);
connect(step2.activePort, onDelay.u);
end FirstExample_Variant3;

Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant4 Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant4

Same as FirstExample_Variant3, but without a delayed transition (by switching the check off)

Modelica_StateGraph2.Examples.BasicStateGraphs.FirstExample_Variant4

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model FirstExample_Variant4 
  "Same as FirstExample_Variant3, but without a delayed transition (by switching the check off)"
  extends Modelica.Icons.Example;
  Modelica_StateGraph2.Step initialStep(
  nIn=1,
  initialStep=true,
  use_activePort=false,
  nOut=1);
  Modelica_StateGraph2.Transition T1(
                use_conditionPort=false, condition=time > 2);
  Modelica_StateGraph2.Step step2(
    use_activePort=true,
  nIn=1,
  nOut=1);
  Modelica_StateGraph2.Transition T2(
                use_conditionPort=true, delayedTransition=false);
  Modelica_StateGraph2.Step step3(
    use_activePort=true,
  nIn=1,
  nOut=1);
  Modelica_StateGraph2.Transition T3(
                delayedTransition=false, loopCheck=false);
  Modelica.Blocks.Logical.Timer timer1;
  Modelica.Blocks.Logical.GreaterEqualThreshold greaterEqual(threshold=1);
  Modelica_StateGraph2.Step step4(
                    nOut=1,
  use_activePort=false,
  nIn=1);
  Modelica_StateGraph2.Transition T4(
                use_conditionPort=true, delayedTransition=false);
  Modelica.Blocks.Logical.Timer timer2;
  Modelica.Blocks.Logical.GreaterEqualThreshold greaterEqual1(
                                                             threshold=1);
equation 

connect(T3.outPort, initialStep.inPort[1]);
  connect(timer1.y, greaterEqual.u);
  connect(greaterEqual.y, T2.conditionPort);
  connect(step2.activePort, timer1.u);
  connect(step4.outPort[1], T3.inPort);
  connect(timer2.y, greaterEqual1.u);
  connect(greaterEqual1.y, T4.conditionPort);
  connect(step3.activePort, timer2.u);
connect(initialStep.outPort[1], T1.inPort);
connect(T1.outPort, step2.inPort[1]);
connect(step2.outPort[1], T2.inPort);
connect(T2.outPort, step3.inPort[1]);
connect(step3.outPort[1], T4.inPort);
connect(T4.outPort, step4.inPort[1]);
end FirstExample_Variant4;

Modelica_StateGraph2.Examples.BasicStateGraphs.Sequence Modelica_StateGraph2.Examples.BasicStateGraphs.Sequence

Example to demonstrate a sequence of simple steps

Modelica_StateGraph2.Examples.BasicStateGraphs.Sequence

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Sequence "Example to demonstrate a sequence of simple steps"
  extends Modelica.Icons.Example;

  Modelica_StateGraph2.Step step1(
                     initialStep=true, nOut=1);
  Modelica_StateGraph2.Transition T1(
                condition=time > 1);
  Modelica_StateGraph2.Step step2(           nIn=1, nOut=1);
  Modelica_StateGraph2.Transition T2(
                condition=time > 2);
  Modelica_StateGraph2.Step step3(           nIn=1);
equation 
connect(step1.outPort[1], T1.inPort);
connect(T1.outPort, step2.inPort[1]);
connect(step2.outPort[1], T2.inPort);
connect(T2.outPort, step3.inPort[1]);
end Sequence;

Modelica_StateGraph2.Examples.BasicStateGraphs.Composite1 Modelica_StateGraph2.Examples.BasicStateGraphs.Composite1

Example of a composite step

Modelica_StateGraph2.Examples.BasicStateGraphs.Composite1

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Composite1 "Example of a composite step"
   extends Modelica.Icons.Example;

  Modelica_StateGraph2.Step step1(
    initialStep=true,
    nIn=1,
  nOut=1);
  Parallel parallel(
    initialStep=false,
    use_inPort=true,
    use_outPort=true,
    nEntry=1,
    nOut=1,
    use_suspend=true,
    nResume=1,
    nExit=1,
    nSuspend=1,
  nIn=1);
  Modelica_StateGraph2.Transition T1(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Step step3(
                     nIn=2, nOut=1);
  Modelica_StateGraph2.Transition T2(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Step step4(
             nOut=2, nIn=1);
  Modelica_StateGraph2.Transition T3(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Transition T4(           condition=time > 3.5 and 
      time <= 4.5);
  Modelica_StateGraph2.Step step5(           nOut=1, nIn=1);
  Modelica_StateGraph2.Transition T5(
                delayedTransition=true, waitTime=2);
  Modelica_StateGraph2.Transition T6(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Step step6(           nIn=1, nOut=1);
  Modelica_StateGraph2.Transition T7(    waitTime=1,
    delayedTransition=false,
    condition=time > 2.5 and time < 4.5);
equation 
  connect(parallel.entry[1], step3.inPort[1]);
  connect(parallel.outPort[1], T3.inPort);
  connect(T3.outPort, step1.inPort[1]);
  connect(T5.outPort, parallel.resume[1]);
  connect(T6.inPort, step4.outPort[1]);
  connect(step4.outPort[2], T7.inPort);
  connect(T7.outPort, step3.inPort[2]);
  connect(T4.inPort, parallel.suspend[1]);
  connect(step5.outPort[1], T5.inPort);
  connect(T4.outPort, step5.inPort[1]);
  connect(T6.outPort, step6.inPort[1]);
  connect(step6.outPort[1], parallel.exit[1]);
  connect(step3.outPort[1], T2.inPort);
  connect(T2.outPort, step4.inPort[1]);
connect(T1.outPort, parallel.inPort[1]);
connect(step1.outPort[1], T1.inPort);
end Composite1;

Modelica_StateGraph2.Examples.BasicStateGraphs.Composite2 Modelica_StateGraph2.Examples.BasicStateGraphs.Composite2

Example of a composite step as submodel

Modelica_StateGraph2.Examples.BasicStateGraphs.Composite2

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Composite2 "Example of a composite step as submodel"
   extends Modelica.Icons.Example;

  Modelica_StateGraph2.Step step1(
    nOut=1,
    initialStep=true,
    nIn=1);
  Modelica_StateGraph2.Transition T1(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Transition T3(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Transition T4(
                condition=time > 3.5 and time <= 4.5);
  Modelica_StateGraph2.Step step5(
             nIn=1, nOut=1);
  Modelica_StateGraph2.Transition T5(
                delayedTransition=true, waitTime=2);
  Utilities.Composite2_Subgraph step2(
    initialStep=false,
    use_suspend=true,
    nIn=1,
    nOut=1,
    nSuspend=1,
    nResume=1);
equation 
  connect(step1.outPort[1], T1.inPort);
  connect(T3.outPort, step1.inPort[1]);
  connect(step5.outPort[1], T5.inPort);
  connect(T4.outPort, step5.inPort[1]);
  connect(T1.outPort, step2.inPort[1]);
  connect(step2.outPort[1], T3.inPort);
  connect(step2.suspend[1], T4.inPort);
  connect(step2.resume[1], T5.outPort);
end Composite2;

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelBranches Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelBranches

Example to demonstrate parallel execution paths

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelBranches

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model ParallelBranches 
  "Example to demonstrate parallel execution paths"
   extends Modelica.Icons.Example;

  Modelica_StateGraph2.Step step1(
    nOut=1,
    initialStep=true,
    nIn=1);
  Parallel parallel(
    initialStep=false,
    use_inPort=true,
    use_outPort=true,
    nIn=1,
    nEntry=2,
    nOut=1,
    nExit=2);
  Modelica_StateGraph2.Transition T1(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Step step2(
             nIn=1, nOut=1);
  Modelica_StateGraph2.Step step3(
             nOut=1, nIn=1);
  Modelica_StateGraph2.Transition T2(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Step step4(
             nOut=1, nIn=1);
  Modelica_StateGraph2.Transition T3(
                delayedTransition=true, waitTime=1);
equation 
  connect(step1.outPort[1], T1.inPort);
  connect(T1.outPort, parallel.inPort[1]);
  connect(step3.outPort[1], T2.inPort);
  connect(parallel.entry[1], step2.inPort[1]);
  connect(parallel.entry[2], step3.inPort[1]);
  connect(T2.outPort, step4.inPort[1]);
  connect(parallel.outPort[1], T3.inPort);
  connect(T3.outPort, step1.inPort[1]);
  connect(step2.outPort[1], parallel.exit[1]);
  connect(step4.outPort[1], parallel.exit[2]);
end ParallelBranches;

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelWithSuspendAndNoResume Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelWithSuspendAndNoResume

Same as example ParallelBranches, but the parallel execution path is suspended and then resumed from the inPort

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelWithSuspendAndNoResume

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model ParallelWithSuspendAndNoResume 
  "Same as example ParallelBranches, but the parallel execution path is suspended and then resumed from the inPort"
   extends Modelica.Icons.Example;

  Modelica_StateGraph2.Step step1(
    nOut=1,
    initialStep=true,
    nIn=1);
  Parallel parallel(
    initialStep=false,
    use_inPort=true,
    use_outPort=true,
    nIn=2,
    nEntry=2,
    nOut=1,
    use_suspend=true,
    nSuspend=1,
    nResume=0,
    nExit=2);
  Modelica_StateGraph2.Transition T1(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Step step2(
             nIn=1, nOut=1);
  Modelica_StateGraph2.Step step3(
             nOut=1, nIn=1);
  Modelica_StateGraph2.Transition T2(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Step step4(
             nOut=1, nIn=1);
  Modelica_StateGraph2.Transition T3(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Transition T4(
                condition=time > 2.5 and time <= 4);
  Modelica_StateGraph2.Step step5(
             nIn=1, nOut=1);
  Modelica_StateGraph2.Transition T5(
                delayedTransition=true, waitTime=2);
  Modelica_StateGraph2.Transition T6(
                delayedTransition=true, waitTime=1);
  Modelica_StateGraph2.Step step6(
             nOut=1, nIn=1);
equation 
  connect(step1.outPort[1], T1.inPort);
  connect(T1.outPort, parallel.inPort[1]);
  connect(step3.outPort[1], T2.inPort);
  connect(parallel.entry[1], step2.inPort[1]);
  connect(parallel.entry[2], step3.inPort[1]);
  connect(T2.outPort, step4.inPort[1]);
  connect(parallel.outPort[1], T3.inPort);
  connect(T3.outPort, step1.inPort[1]);
  connect(step5.outPort[1], T5.inPort);
  connect(T4.outPort, step5.inPort[1]);
  connect(parallel.suspend[1], T4.inPort);
  connect(step4.outPort[1], T6.inPort);
  connect(T6.outPort, step6.inPort[1]);
  connect(T5.outPort, parallel.inPort[2]);
  connect(step2.outPort[1], parallel.exit[1]);
  connect(step6.outPort[1], parallel.exit[2]);
end ParallelWithSuspendAndNoResume;

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelInsideDelay Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelInsideDelay

Demonstrates that a delay in one branch of a Parallel is sufficient so that no infinite event looping occurs

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelInsideDelay

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model ParallelInsideDelay 
  "Demonstrates that a delay in one branch of a Parallel is sufficient so that no infinite event looping occurs"
   extends Modelica.Icons.Example;

  Modelica_StateGraph2.Step step1(
    nOut=1,
    initialStep=true,
    nIn=1);
  Parallel parallel(
    initialStep=false,
    use_inPort=true,
    use_outPort=true,
    nIn=1,
    nEntry=2,
    nOut=1,
    nExit=2);
  Modelica_StateGraph2.Transition T1(    waitTime=1, delayedTransition=
      false);
  Modelica_StateGraph2.Step step2(
             nIn=1, nOut=1);
  Modelica_StateGraph2.Step step3(
             nOut=1, nIn=1);
  Modelica_StateGraph2.Transition T2(    waitTime=1, delayedTransition=
      true);
  Modelica_StateGraph2.Step step4(
             nOut=1, nIn=1);
  Modelica_StateGraph2.Transition T3(    waitTime=1, delayedTransition=
      false);
  Modelica_StateGraph2.Transition T4(    waitTime=1, delayedTransition=
      false);
  Modelica_StateGraph2.Step step5(
             nIn=1, nOut=1);
equation 
  connect(step1.outPort[1],T1. inPort);
  connect(T1.outPort,parallel. inPort[1]);
  connect(step3.outPort[1],T2. inPort);
  connect(parallel.entry[1],step2. inPort[1]);
  connect(parallel.entry[2],step3. inPort[1]);
  connect(T2.outPort,step4. inPort[1]);
  connect(parallel.outPort[1],T3. inPort);
  connect(T3.outPort,step1. inPort[1]);

connect(step2.outPort[1], T4.inPort);

connect(T4.outPort, step5.inPort[1]);
connect(step5.outPort[1], parallel.exit[1]);
connect(step4.outPort[1], parallel.exit[2]);
end ParallelInsideDelay;

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelOutsideDelay Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelOutsideDelay

Demonstrates that a delay outside of a Parallel is sufficient so that no infinite event looping occurs

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelOutsideDelay

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model ParallelOutsideDelay 
  "Demonstrates that a delay outside of a Parallel is sufficient so that no infinite event looping occurs"
   extends Modelica.Icons.Example;

  Modelica_StateGraph2.Step step1(
    nOut=1,
    initialStep=true,
    nIn=1);
  Parallel parallel(
    initialStep=false,
    use_inPort=true,
    use_outPort=true,
    nIn=1,
    nEntry=2,
    nOut=1,
    nExit=2);
  Modelica_StateGraph2.Transition T1(    waitTime=1, delayedTransition=
      false);
  Modelica_StateGraph2.Step step2(
             nIn=1, nOut=1);
  Modelica_StateGraph2.Step step3(
             nOut=1, nIn=1);
  Modelica_StateGraph2.Transition T2(
                           delayedTransition=false);
  Modelica_StateGraph2.Step step4(
             nOut=1, nIn=1);
  Modelica_StateGraph2.Transition T3(    waitTime=1, delayedTransition=
      true);
  Modelica_StateGraph2.Transition T4(    waitTime=1, delayedTransition=
      false);
  Modelica_StateGraph2.Step step5(
             nIn=1, nOut=1);
equation 

  connect(step1.outPort[1],T1. inPort);

  connect(T1.outPort,parallel. inPort[1]);
  connect(step3.outPort[1],T2. inPort);
  connect(parallel.entry[1],step2. inPort[1]);
  connect(parallel.entry[2],step3. inPort[1]);
  connect(T2.outPort,step4. inPort[1]);
  connect(parallel.outPort[1],T3. inPort);
  connect(T3.outPort,step1. inPort[1]);
connect(step2.outPort[1],T4. inPort);
connect(T4.outPort,step5. inPort[1]);
connect(step5.outPort[1],parallel. exit[1]);
connect(step4.outPort[1],parallel. exit[2]);
end ParallelOutsideDelay;

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelAutonomous Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelAutonomous

Demonstrates Parallel that runs autonomously

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelAutonomous

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model ParallelAutonomous 
  "Demonstrates Parallel that runs autonomously"
    extends Modelica.Icons.Example;

  Parallel parallel(
    use_inPort=false,
    use_outPort=false,
    initialStep=true,
  nEntry=2);
  Modelica_StateGraph2.Step step2(
             nIn=2, nOut=1);
  Modelica_StateGraph2.Step step3(           nIn=2, nOut=1);
  Modelica_StateGraph2.Transition T2(    waitTime=1, delayedTransition=
      false);
  Modelica_StateGraph2.Step step4(           nIn=1, nOut=1);
  Modelica_StateGraph2.Transition T1(    waitTime=1, delayedTransition=
      false);
  Modelica_StateGraph2.Step step1(           nIn=1, nOut=1);
  Modelica_StateGraph2.Transition T3(    waitTime=1, delayedTransition=
      true);
  Modelica_StateGraph2.Transition T4(    waitTime=1, delayedTransition=
      true);
equation 

connect(step2.outPort[1], T1.inPort);

connect(T1.outPort, step1.inPort[1]);
connect(step1.outPort[1], T3.inPort);
connect(T3.outPort, step2.inPort[1]);
connect(parallel.entry[1], step2.inPort[2]);
connect(parallel.entry[2], step3.inPort[1]);
connect(step3.outPort[1], T2.inPort);
connect(T2.outPort, step4.inPort[1]);
connect(step4.outPort[1], T4.inPort);
connect(T4.outPort, step3.inPort[2]);
end ParallelAutonomous;

Modelica_StateGraph2.Examples.BasicStateGraphs.Actions1 Modelica_StateGraph2.Examples.BasicStateGraphs.Actions1

Demonstrates MultiSwitch and ShowValue

Modelica_StateGraph2.Examples.BasicStateGraphs.Actions1

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Actions1 "Demonstrates MultiSwitch and ShowValue"
     extends Modelica.Icons.Example;

  Modelica_StateGraph2.Step initialStep(
  nIn=1,
  nOut=1,
  initialStep=true,
  use_activePort=true);
  Modelica_StateGraph2.Transition T1(
                use_conditionPort=false,
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Step step2(
             nIn=1, nOut=1,
    use_activePort=true);
  Modelica_StateGraph2.Transition T2(
  use_conditionPort=false,
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Step step3(
             nIn=1, nOut=1,
  use_activePort=true);
  Modelica_StateGraph2.Transition T3(
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Step step4(
             nIn=1, nOut=1,
    use_activePort=true);
  Modelica_StateGraph2.Transition T4(
  use_conditionPort=false,
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Transition T5(
  use_conditionPort=false,
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Step step5(
             nIn=1, nOut=1,
  use_activePort=true);
Modelica_StateGraph2.Blocks.MathBoolean.Or or1(
                      nu=2);
Modelica_StateGraph2.Blocks.MathReal.MultiSwitch multiSwitch1(nu=2, expr={2.2,4.4});

Modelica_StateGraph2.Blocks.MathInteger.MultiSwitch multiSwitch2(nu=2, expr={2,4});

Modelica_StateGraph2.Blocks.MathBoolean.MultiSwitch multiSwitch3(nu=2, expr={true,
        true});
Modelica_StateGraph2.Blocks.MathReal.ShowValue showValue1(
                                 use_numberPort=false, number=multiSwitch1.y);
Modelica_StateGraph2.Blocks.MathReal.ShowValue showValue;
Modelica_StateGraph2.Blocks.MathBoolean.ShowValue showValue2(
                                    use_activePort=false, active=multiSwitch3.y);

Modelica_StateGraph2.Blocks.MathBoolean.ShowValue showValue3;
Modelica_StateGraph2.Blocks.MathInteger.ShowValue showValue4;
Modelica_StateGraph2.Blocks.MathInteger.ShowValue showValue5(
                                    use_numberPort=false, number=multiSwitch2.y);

equation 
connect(initialStep.outPort[1],T1. inPort);
  connect(T1.outPort,step2. inPort[1]);
  connect(step2.outPort[1],T2. inPort);
  connect(T2.outPort,step3. inPort[1]);
connect(T3.outPort,initialStep. inPort[1]);
  connect(step3.outPort[1],T4. inPort);
  connect(T4.outPort,step4. inPort[1]);

connect(step4.outPort[1], T5.inPort);

connect(T5.outPort,step5. inPort[1]);
connect(step5.outPort[1], T3.inPort);
connect(step5.activePort, or1.u[1]);
  connect(initialStep.activePort, multiSwitch1.u[1]);
  connect(step2.activePort, multiSwitch1.u[2]);
  connect(step3.activePort, multiSwitch2.u[1]);
  connect(step5.activePort, multiSwitch2.u[2]);
  connect(step2.activePort, multiSwitch3.u[1]);
  connect(step3.activePort, multiSwitch3.u[2]);
  connect(multiSwitch1.y, showValue.numberPort);
  connect(multiSwitch3.y, showValue3.activePort);
  connect(multiSwitch2.y, showValue4.numberPort);
connect(initialStep.activePort, or1.u[2]);
end Actions1;

Modelica_StateGraph2.Examples.BasicStateGraphs.Actions2 Modelica_StateGraph2.Examples.BasicStateGraphs.Actions2

Demonstrates rising and falling edge action blocks

Modelica_StateGraph2.Examples.BasicStateGraphs.Actions2

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Actions2 "Demonstrates rising and falling edge action blocks"
     extends Modelica.Icons.Example;

  Modelica_StateGraph2.Step initialStep(
  nIn=1,
  nOut=1,
  initialStep=true,
  use_activePort=true);
  Modelica_StateGraph2.Transition T1(
                use_conditionPort=false,
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Step step2(
             nIn=1, nOut=1,
  use_activePort=false);
  Modelica_StateGraph2.Transition T2(
  use_conditionPort=false,
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Step step3(
             nIn=1, nOut=1,
  use_activePort=true);
  Modelica_StateGraph2.Transition T3(
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Step step4(
             nIn=1, nOut=1,
  use_activePort=false);
  Modelica_StateGraph2.Transition T4(
  use_conditionPort=false,
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Transition T5(
  use_conditionPort=false,
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Step step1(
             nIn=1, nOut=1,
  use_activePort=true);
Blocks.MathBoolean.RisingEdge risingEdge;
Blocks.MathBoolean.MultiSwitch set1(nu=2, expr={true,false});
Blocks.MathBoolean.FallingEdge fallingEdge;
equation 

connect(initialStep.outPort[1],T1. inPort);
  connect(T1.outPort,step2. inPort[1]);
  connect(step2.outPort[1],T2. inPort);
  connect(T2.outPort,step3. inPort[1]);
connect(T3.outPort,initialStep. inPort[1]);
  connect(step3.outPort[1],T4. inPort);
  connect(T4.outPort,step4. inPort[1]);

connect(step4.outPort[1], T5.inPort);

connect(T5.outPort, step1.inPort[1]);
connect(step1.outPort[1], T3.inPort);
connect(initialStep.activePort, risingEdge.u);
connect(risingEdge.y, set1.u[1]);
connect(step3.activePort, fallingEdge.u);
connect(fallingEdge.y, set1.u[2]);
end Actions2;

Modelica_StateGraph2.Examples.BasicStateGraphs.Actions3 Modelica_StateGraph2.Examples.BasicStateGraphs.Actions3

Demonstrates usage of TriggeredAdd action block

Modelica_StateGraph2.Examples.BasicStateGraphs.Actions3

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model Actions3 "Demonstrates usage of TriggeredAdd action block"
  extends Modelica.Icons.Example;
  Modelica_StateGraph2.Step initialStep(
  nIn=1,
  nOut=1,
  initialStep=true,
  use_activePort=true);
  Modelica_StateGraph2.Transition T1(
                use_conditionPort=false,
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Step step2(
             nIn=1, nOut=1,
  use_activePort=true);
  Modelica_StateGraph2.Transition T2(
  use_conditionPort=false,
  delayedTransition=true,
  waitTime=1,
  use_firePort=true);
  Modelica_StateGraph2.Step step3(
             nIn=1, nOut=1,
  use_activePort=true);
  Modelica_StateGraph2.Transition T3(
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Step step4(
             nIn=1, nOut=1,
  use_activePort=false);
  Modelica_StateGraph2.Transition T4(
  use_conditionPort=false,
  delayedTransition=true,
  waitTime=1);
  Modelica_StateGraph2.Transition T5(
  use_conditionPort=false,
  delayedTransition=true,
  waitTime=1,
  use_firePort=true);
  Modelica_StateGraph2.Step step1(
             nIn=1, nOut=1,
  use_activePort=true);
Modelica_StateGraph2.Blocks.MathInteger.TriggeredAdd add1(    use_reset=
      true);
Modelica_StateGraph2.Blocks.MathInteger.MultiSwitch set1(
                                      nu=2, expr={11,12});
equation 

connect(initialStep.outPort[1],T1. inPort);
  connect(T1.outPort,step2. inPort[1]);
  connect(step2.outPort[1],T2. inPort);
  connect(T2.outPort,step3. inPort[1]);
connect(T3.outPort,initialStep. inPort[1]);
  connect(step3.outPort[1],T4. inPort);
  connect(T4.outPort,step4. inPort[1]);
connect(step4.outPort[1],T5. inPort);
connect(T5.outPort,step1. inPort[1]);
connect(step1.outPort[1],T3. inPort);

connect(T2.firePort, add1.trigger);

connect(T5.firePort, add1.reset);
connect(initialStep.activePort, set1.u[1]);
connect(step2.activePort, set1.u[2]);
connect(set1.y, add1.u);
end Actions3;

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelWithActions Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelWithActions

Demonstrates usage of MultiSwitch block for branches executing in parallel

Modelica_StateGraph2.Examples.BasicStateGraphs.ParallelWithActions

Information

Extends from Modelica.Icons.Example (Icon for runnable examples).

Modelica definition

model ParallelWithActions 
  "Demonstrates usage of MultiSwitch block for branches executing in parallel"
    extends Modelica.Icons.Example;

Parallel parallel(
  initialStep=false,
  use_outPort=true,
  nEntry=2,
  nOut=1,
  nIn=1,
  nExit=2,
  use_inPort=true);
Modelica_StateGraph2.Step step1(
                      nOut=1, nIn=1);
Modelica_StateGraph2.Blocks.MathInteger.MultiSwitch set1(
  use_pre_as_default=false,
  nu=2,
  expr={2,3});
Modelica_StateGraph2.Transition T1(
                         delayedTransition=true, waitTime=1);
Modelica_StateGraph2.Step step2(
  nOut=1,
  nIn=1,
  use_activePort=true);
Modelica_StateGraph2.Transition T2(
                         delayedTransition=true, waitTime=4);
Modelica_StateGraph2.Step step3(
                      nIn=1, nOut=1);
Modelica_StateGraph2.Step step4(
  nOut=1,
  nIn=1,
  use_activePort=true);
Modelica_StateGraph2.Transition T3(
                         delayedTransition=true, waitTime=2);
Modelica_StateGraph2.Step step5(
                      nOut=1, nIn=1);
Modelica_StateGraph2.Transition T4(
                         delayedTransition=true, waitTime=4);
Modelica_StateGraph2.Step step6(
                      nIn=1, nOut=1);
Modelica_StateGraph2.Transition T5;
Modelica_StateGraph2.Step step7(
  nOut=1,
  nIn=1,
  initialStep=true);
Modelica_StateGraph2.Transition T6;
equation 

connect(step1.outPort[1], T1.inPort);

connect(T1.outPort, step2.inPort[1]);
connect(step2.outPort[1], T2.inPort);
connect(T2.outPort, step3.inPort[1]);
connect(step1.inPort[1], parallel.entry[1]);
connect(step4.inPort[1], parallel.entry[2]);
connect(step4.outPort[1], T3.inPort);
connect(T3.outPort, step5.inPort[1]);
connect(step5.outPort[1], T4.inPort);
connect(T4.outPort, step6.inPort[1]);
connect(step4.activePort, set1.u[1]);
connect(step2.activePort, set1.u[2]);
connect(parallel.outPort[1], T5.inPort);
connect(step7.outPort[1], T6.inPort);
connect(T6.outPort, parallel.inPort[1]);
connect(T5.outPort, step7.inPort[1]);
connect(step3.outPort[1], parallel.exit[1]);

connect(step6.outPort[1], parallel.exit[2]);
end ParallelWithActions;

Automatically generated Fri Nov 12 17:26:49 2010.